X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fnet.h;h=adf48315600c904987969ece6561744f1f55d6f1;hb=40c21c4f1f82cf12f15afc2be824d8ec836fbccc;hp=23275b3ccef3109d6fd55f9d77fcb157357a0f61;hpb=2b9a1911defbd6f0295b74cd7b41a2a5328d9e6a;p=doldaconnect.git diff --git a/daemon/net.h b/daemon/net.h index 23275b3..adf4831 100644 --- a/daemon/net.h +++ b/daemon/net.h @@ -43,8 +43,9 @@ struct socket { int refcount; int state; - int block; int dgram; + int eos; + struct socket *back, *pnext; union { struct @@ -70,27 +71,27 @@ 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 lport *netcslisten(int type, struct sockaddr *name, socklen_t namelen, void (*func)(struct socket *, struct socket *, void *), void *data); -struct lport *netcslistenlocal(int type, struct sockaddr *name, socklen_t namelen, void (*func)(struct socket *, struct socket *, void *), void *data); -struct lport *netcstcplisten(int port, int local, void (*func)(struct socket *, struct socket *, void *), void *data); +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); struct socket *netcsconn(struct sockaddr *addr, socklen_t addrlen, void (*func)(struct socket *, int, void *), void *data); int pollsocks(int timeout); +void freedgbuf(struct dgrambuf *dg); void sockqueue(struct socket *sk, void *data, size_t size); +void sockerror(struct socket *sk, int en); size_t sockqueuesize(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);