[Spice-devel] [PATCH 17/17] Make RedsStream::info private

Christophe Fergeau cfergeau at redhat.com
Tue Jan 7 03:14:43 PST 2014


---
 server/reds_stream.c | 50 ++++++++++++++++++++++++++++----------------------
 server/reds_stream.h |  6 ------
 2 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/server/reds_stream.c b/server/reds_stream.c
index 6af3cd1..331e505 100644
--- a/server/reds_stream.c
+++ b/server/reds_stream.c
@@ -75,6 +75,12 @@ struct RedsStreamPrivate {
 
     AsyncRead async_read;
 
+    /* life time of info:
+     * allocated when creating RedsStream.
+     * deallocated when main_dispatcher handles the SPICE_CHANNEL_EVENT_DISCONNECTED
+     * event, either from same thread or by call back from main thread. */
+    SpiceChannelEventInfo* info;
+
     ssize_t (*read)(RedsStream *s, void *buf, size_t nbyte);
     ssize_t (*write)(RedsStream *s, const void *buf, size_t nbyte);
     ssize_t (*writev)(RedsStream *s, const struct iovec *iov, int iovcnt);
@@ -261,34 +267,34 @@ void reds_stream_free(RedsStream *s)
 
 void reds_stream_push_channel_event(RedsStream *s, int event)
 {
-    main_dispatcher_channel_event(event, s->info);
+    main_dispatcher_channel_event(event, s->priv->info);
 }
 
 static void reds_stream_set_socket(RedsStream *stream, int socket)
 {
     stream->socket = socket;
     /* deprecated fields. Filling them for backward compatibility */
-    stream->info->llen = sizeof(stream->info->laddr);
-    stream->info->plen = sizeof(stream->info->paddr);
-    getsockname(stream->socket, (struct sockaddr*)(&stream->info->laddr), &stream->info->llen);
-    getpeername(stream->socket, (struct sockaddr*)(&stream->info->paddr), &stream->info->plen);
-
-    stream->info->flags |= SPICE_CHANNEL_EVENT_FLAG_ADDR_EXT;
-    stream->info->llen_ext = sizeof(stream->info->laddr_ext);
-    stream->info->plen_ext = sizeof(stream->info->paddr_ext);
-    getsockname(stream->socket, (struct sockaddr*)(&stream->info->laddr_ext),
-                &stream->info->llen_ext);
-    getpeername(stream->socket, (struct sockaddr*)(&stream->info->paddr_ext),
-                &stream->info->plen_ext);
+    stream->priv->info->llen = sizeof(stream->priv->info->laddr);
+    stream->priv->info->plen = sizeof(stream->priv->info->paddr);
+    getsockname(stream->socket, (struct sockaddr*)(&stream->priv->info->laddr), &stream->priv->info->llen);
+    getpeername(stream->socket, (struct sockaddr*)(&stream->priv->info->paddr), &stream->priv->info->plen);
+
+    stream->priv->info->flags |= SPICE_CHANNEL_EVENT_FLAG_ADDR_EXT;
+    stream->priv->info->llen_ext = sizeof(stream->priv->info->laddr_ext);
+    stream->priv->info->plen_ext = sizeof(stream->priv->info->paddr_ext);
+    getsockname(stream->socket, (struct sockaddr*)(&stream->priv->info->laddr_ext),
+                &stream->priv->info->llen_ext);
+    getpeername(stream->socket, (struct sockaddr*)(&stream->priv->info->paddr_ext),
+                &stream->priv->info->plen_ext);
 }
 
 
 void reds_stream_set_channel(RedsStream *stream, int connection_id,
                              int channel_type, int channel_id)
 {
-    stream->info->connection_id = connection_id;
-    stream->info->type = connection_id;
-    stream->info->id   = channel_type;
+    stream->priv->info->connection_id = connection_id;
+    stream->priv->info->type = connection_id;
+    stream->priv->info->id   = channel_type;
 }
 
 RedsStream *reds_stream_new(int socket)
@@ -297,7 +303,7 @@ RedsStream *reds_stream_new(int socket)
 
     stream = spice_malloc0(sizeof(RedsStream) + sizeof(RedsStreamPrivate));
     stream->priv = (RedsStreamPrivate *)(((char *)stream) + sizeof(RedsStream));
-    stream->info = spice_new0(SpiceChannelEventInfo, 1);
+    stream->priv->info = spice_new0(SpiceChannelEventInfo, 1);
     reds_stream_set_socket(stream, socket);
 
     stream->priv->read = stream_read_cb;
@@ -319,7 +325,7 @@ void reds_stream_set_info_flag(RedsStream *stream, unsigned int flag)
     g_return_if_fail((flag == SPICE_CHANNEL_EVENT_FLAG_TLS)
                      || (flag == SPICE_CHANNEL_EVENT_FLAG_ADDR_EXT));
 
-    stream->info->flags |= flag;
+    stream->priv->info->flags |= flag;
 }
 
 void reds_stream_disable_writev(RedsStream *stream)
@@ -571,14 +577,14 @@ static char *addr_to_string(const char *format,
 
 static char *reds_stream_get_local_address(RedsStream *stream)
 {
-    return addr_to_string("%s;%s", &stream->info->laddr_ext,
-                          stream->info->llen_ext);
+    return addr_to_string("%s;%s", &stream->priv->info->laddr_ext,
+                          stream->priv->info->llen_ext);
 }
 
 static char *reds_stream_get_remote_address(RedsStream *stream)
 {
-    return addr_to_string("%s;%s", &stream->info->paddr_ext,
-                          stream->info->plen_ext);
+    return addr_to_string("%s;%s", &stream->priv->info->paddr_ext,
+                          stream->priv->info->plen_ext);
 }
 
 static int auth_sasl_check_ssf(RedsSASL *sasl, int *runSSF)
diff --git a/server/reds_stream.h b/server/reds_stream.h
index 64657c2..ae3403a 100644
--- a/server/reds_stream.h
+++ b/server/reds_stream.h
@@ -53,12 +53,6 @@ struct RedsStream {
        receive may return data afterward. check the flag before calling receive*/
     int shutdown;
 
-    /* life time of info:
-     * allocated when creating RedsStream.
-     * deallocated when main_dispatcher handles the SPICE_CHANNEL_EVENT_DISCONNECTED
-     * event, either from same thread or by call back from main thread. */
-    SpiceChannelEventInfo* info;
-
     RedsStreamPrivate *priv;
 };
 
-- 
1.8.4.2



More information about the Spice-devel mailing list