Send and receive Unix creds.
[doldaconnect.git] / daemon / net.h
index 106ac81..f9b7a29 100644 (file)
@@ -20,6 +20,7 @@
 #define _NET_H
 
 #include <sys/socket.h>
+#include <sys/un.h>
 
 #define SOCK_LST 0 /* Listening */
 #define SOCK_SYN 1 /* Connecting */
@@ -54,6 +55,7 @@ struct socket
     int close;
     struct sockaddr *remote;
     socklen_t remotelen;
+    struct ucred ucred;
     union
     {
        struct
@@ -92,6 +94,7 @@ void putsock(struct socket *sk);
 void getsock(struct socket *sk);
 struct socket *netcslisten(int type, struct sockaddr *name, socklen_t namelen, void (*func)(struct socket *, struct socket *, void *), void *data);
 struct socket *netcslistenlocal(int type, struct sockaddr *name, socklen_t namelen, void (*func)(struct socket *, struct socket *, void *), void *data);
+struct socket *netcstcplisten(int port, int local, void (*func)(struct socket *, struct socket *, void *), void *data);
 struct socket *netcsconn(struct sockaddr *addr, socklen_t addrlen, void (*func)(struct socket *, int, void *), void *data);
 int pollsocks(int timeout);
 void sockqueue(struct socket *sk, void *data, size_t size);
@@ -102,6 +105,7 @@ struct socket *netdupsock(struct socket *sk);
 void netdgramconn(struct socket *sk, struct sockaddr *addr, socklen_t addrlen);
 int sockgetlocalname(struct socket *sk, struct sockaddr **namebuf, socklen_t *lenbuf);
 int sockgetremotename(struct socket *sk, struct sockaddr **namebuf, socklen_t *lenbuf);
+int sockgetremotename2(struct socket *sk, struct socket *sk2, struct sockaddr **namebuf, socklen_t *lenbuf);
 void closesock(struct socket *sk);
 void *sockgetinbuf(struct socket *sk, size_t *size);
 struct socket *wrapsock(int fd);