Incremental work on excorcising the transfer iface.
[doldaconnect.git] / daemon / net.h
index b985ee9..9ae9650 100644 (file)
@@ -43,10 +43,10 @@ struct socket
 {
     int refcount;
     int state;
-    int block;
     int dgram;
     int eos;
-    struct socket *back;
+    size_t maxbuf;
+    struct socket *back, *pnext;
     union
     {
        struct
@@ -72,12 +72,12 @@ struct lport {
     struct ufd *ufd;
     void (*acceptcb)(struct lport *lp, struct socket *newsk, void *data);
     void (*errcb)(struct lport *lp, int err, void *data);
-    void (*close)(struct lport *lp);
     void *data;
 };
 
 void putsock(struct socket *sk);
 void getsock(struct socket *sk);
+struct socket *netsockpipe(void);
 struct lport *netcslisten(int type, struct sockaddr *name, socklen_t namelen, void (*func)(struct lport *, struct socket *, void *), void *data);
 struct lport *netcslistenlocal(int type, struct sockaddr *name, socklen_t namelen, void (*func)(struct lport *, struct socket *, void *), void *data);
 struct lport *netcstcplisten(int port, int local, void (*func)(struct lport *, struct socket *, void *), void *data);
@@ -85,16 +85,16 @@ struct socket *netcsconn(struct sockaddr *addr, socklen_t addrlen, void (*func)(
 int pollsocks(int timeout);
 void freedgbuf(struct dgrambuf *dg);
 void sockqueue(struct socket *sk, void *data, size_t size);
-void sockeos(struct socket *sk);
-size_t sockqueuesize(struct socket *sk);
+void sockerror(struct socket *sk, int en);
+/* size_t sockqueuesize(struct socket *sk); */
+ssize_t sockqueueleft(struct socket *sk);
 int netresolve(char *addr, void (*callback)(struct sockaddr *addr, int addrlen, void *data), void *data);
 struct socket *netcsdgram(struct sockaddr *name, socklen_t namelen);
 struct socket *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);
-int getremotename(struct lport *lp, struct sockaddr **namebuf, socklen_t *lenbuf);
-int getremotename2(struct lport *lp, struct socket *sk, struct sockaddr **namebuf, socklen_t *lenbuf);
+int lstgetremotename(struct lport *lp, struct sockaddr **namebuf, socklen_t *lenbuf);
+int lstgetremotename2(struct lport *lp, struct socket *sk, struct sockaddr **namebuf, socklen_t *lenbuf);
 void closesock(struct socket *sk);
 void closelport(struct lport *lp);
 void *sockgetinbuf(struct socket *sk, size_t *size);
@@ -105,7 +105,7 @@ int addreq(struct sockaddr *x, struct sockaddr *y);
 char *formataddress(struct sockaddr *arg, socklen_t arglen);
 char *formatsockpeer(struct socket *sk);
 void sockpushdata(struct socket *sk, void *buf, size_t size);
-void sockblock(struct socket *sk, int block);
+/* void sockblock(struct socket *sk, int block); */
 int sockpeeraddr(struct socket *sk, struct sockaddr **namebuf, socklen_t *lenbuf);
 int getucred(struct socket *sk, uid_t *uid, gid_t *gid);
 int sockfamily(struct socket *sk);