summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-03-11 12:14:45 +0100
committerAlexander Larsson <alexl@redhat.com>2010-03-18 10:26:01 +0100
commitb5f25486ef9be30bb7805101fb295cd0ae088e2d (patch)
tree81bfd2e0ca9c4e0554de5e26514d23f6462733be /server
parent7c1c66a10e7741f021178a10298c89ee867cbc13 (diff)
downloadspice-b5f25486ef9be30bb7805101fb295cd0ae088e2d.tar.gz
spice-b5f25486ef9be30bb7805101fb295cd0ae088e2d.tar.xz
spice-b5f25486ef9be30bb7805101fb295cd0ae088e2d.zip
new libspice api: spice_server_add_get_{sock, peer}_info()
Diffstat (limited to 'server')
-rw-r--r--server/reds.c24
-rw-r--r--server/spice.h4
2 files changed, 28 insertions, 0 deletions
diff --git a/server/reds.c b/server/reds.c
index 3f3ada49..68c95a4b 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -5584,6 +5584,30 @@ int spice_server_set_mouse_absolute(SpiceServer *s, int absolute)
return 0;
}
+int spice_server_get_sock_info(SpiceServer *s, struct sockaddr *sa, socklen_t *salen)
+{
+ ASSERT(reds == s);
+ if (!reds->peer) {
+ return -1;
+ }
+ if (getsockname(reds->peer->socket, sa, salen) < 0) {
+ return -1;
+ }
+ return 0;
+}
+
+int spice_server_get_peer_info(SpiceServer *s, struct sockaddr *sa, socklen_t *salen)
+{
+ ASSERT(reds == s);
+ if (!reds->peer) {
+ return -1;
+ }
+ if (getpeername(reds->peer->socket, sa, salen) < 0) {
+ return -1;
+ }
+ return 0;
+}
+
int spice_server_add_renderer(SpiceServer *s, const char *name)
{
ASSERT(reds == s);
diff --git a/server/spice.h b/server/spice.h
index beba61c7..8dd55e73 100644
--- a/server/spice.h
+++ b/server/spice.h
@@ -18,6 +18,7 @@
#ifndef _H_SPICE
#define _H_SPICE
+#include <sys/socket.h>
#include "vd_interface.h"
/* old interface */
@@ -86,4 +87,7 @@ int spice_server_set_mouse_absolute(SpiceServer *s, int absolute);
int spice_server_add_renderer(SpiceServer *s, const char *name);
+int spice_server_get_sock_info(SpiceServer *s, struct sockaddr *sa, socklen_t *salen);
+int spice_server_get_peer_info(SpiceServer *s, struct sockaddr *sa, socklen_t *salen);
+
#endif