X-Git-Url: http://dolda2000.com/gitweb/?p=doldaconnect.git;a=blobdiff_plain;f=daemon%2Fnet.h;h=9ae9650d100fd50248d86472ff2e45fc078bc3c7;hp=b985ee9d80e65fb156cc29f1cee83883f9e52ba5;hb=1ce5968e27a19937a0e54f118d91e1a22438a0eb;hpb=02a705adbd87e20f15a1a2e43cf9f9ed53a19f72 diff --git a/daemon/net.h b/daemon/net.h index b985ee9..9ae9650 100644 --- a/daemon/net.h +++ b/daemon/net.h @@ -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);