stream: add support for UNIX streams
[strongswan.git] / src / libstrongswan / networking / streams / stream.h
index 4e0a67a..842ad8e 100644 (file)
@@ -25,6 +25,8 @@ typedef struct stream_t stream_t;
 
 #include <library.h>
 
+#include <sys/un.h>
+
 /**
  * Constructor function prototype for stream_t.
  *
@@ -122,6 +124,28 @@ struct stream_t {
 };
 
 /**
+ * Create a stream for UNIX sockets.
+ *
+ * UNIX URIs start with unix://, followed by the socket path. For absolute
+ * paths, an URI looks something like:
+ *
+ *   unix:///path/to/socket
+ *
+ * @param uri          UNIX socket specific URI, must start with "unix://"
+ * @return                     stream instance, NULL on failure
+ */
+stream_t *stream_create_unix(char *uri);
+
+/**
+ * Helper function to parse a unix:// URI to a sockaddr
+ *
+ * @param uri          URI
+ * @param addr         sockaddr
+ * @return                     length of sockaddr, -1 on error
+ */
+int stream_parse_uri_unix(char *uri, struct sockaddr_un *addr);
+
+/**
  * Create a stream from a file descriptor.
  *
  * The file descriptor MUST be a socket for non-blocking operation.