[Spice-devel] [PATCH spice 04/18] reds-stream: add reds_stream_is_plain_unix()

Marc-André Lureau marcandre.lureau at gmail.com
Tue Dec 15 15:49:18 PST 2015


From: Marc-André Lureau <mlureau at redhat.com>

Utility function used in follow-up code.

Signed-off-by: Marc-André Lureau <marcandre.lureau at gmail.com>
---
 server/reds-stream.c | 18 ++++++++++++++++++
 server/reds-stream.h |  1 +
 2 files changed, 19 insertions(+)

diff --git a/server/reds-stream.c b/server/reds-stream.c
index c0f443b..d87cb23 100644
--- a/server/reds-stream.c
+++ b/server/reds-stream.c
@@ -236,6 +236,24 @@ int reds_stream_get_family(const RedsStream *s)
     return s->priv->info->laddr_ext.ss_family;
 }
 
+int reds_stream_is_plain_unix(const RedsStream *s)
+{
+    spice_return_val_if_fail(s != NULL, FALSE);
+
+    if (reds_stream_get_family(s) != AF_UNIX)
+        return FALSE;
+
+#if HAVE_SASL
+    if (s->priv->sasl.conn)
+        return FALSE;
+#endif
+    if (s->priv->ssl)
+        return FALSE;
+
+    return TRUE;
+
+}
+
 ssize_t reds_stream_writev(RedsStream *s, const struct iovec *iov, int iovcnt)
 {
     int i;
diff --git a/server/reds-stream.h b/server/reds-stream.h
index 8e0edb0..9e53b22 100644
--- a/server/reds-stream.h
+++ b/server/reds-stream.h
@@ -73,6 +73,7 @@ RedsStreamSslStatus reds_stream_ssl_accept(RedsStream *stream);
 int reds_stream_enable_ssl(RedsStream *stream, SSL_CTX *ctx);
 void reds_stream_set_info_flag(RedsStream *stream, unsigned int flag);
 int reds_stream_get_family(const RedsStream *stream);
+int reds_stream_is_plain_unix(const RedsStream *stream);
 
 typedef enum {
     REDS_SASL_ERROR_OK,
-- 
2.5.0



More information about the Spice-devel mailing list