X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fnet.h;h=2e7e2d9f0855358c08aea3e76a7884dbe469f502;hb=refs%2Fheads%2Fjava;hp=da96315c8d575ede3e9f53bf8ab8fe27374fb191;hpb=5ec60e4217863b0e2d6a86ba3f60f60c68608227;p=doldaconnect.git diff --git a/daemon/net.h b/daemon/net.h index da96315..2e7e2d9 100644 --- a/daemon/net.h +++ b/daemon/net.h @@ -1,6 +1,6 @@ /* * Dolda Connect - Modular multiuser Direct Connect-style client - * Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com) + * Copyright (C) 2004 Fredrik Tolf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,8 +20,7 @@ #define _NET_H #include - -#include +#include #define SOCK_LST 0 /* Listening */ #define SOCK_SYN 1 /* Connecting */ @@ -56,6 +55,11 @@ struct socket int close; struct sockaddr *remote; socklen_t remotelen; + struct + { + uid_t uid; + gid_t gid; + } ucred; union { struct @@ -82,27 +86,20 @@ struct socket size_t datasize; } s; } inbuf; - /* void (*conncb)(struct socket *sk, int err, void *data); void (*errcb)(struct socket *sk, int err, void *data); void (*readcb)(struct socket *sk, void *data); void (*writecb)(struct socket *sk, void *data); void (*acceptcb)(struct socket *sk, struct socket *newsk, void *data); void *data; - */ - CBCHAIN(socket_conn, struct socket *sk, int err); - CBCHAIN(socket_err, struct socket *sk, int err); - CBCHAIN(socket_read, struct socket *sk); - CBCHAIN(socket_write, struct socket *sk); - CBCHAIN(socket_accept, struct socket *sk, struct socket *newsk); }; void putsock(struct socket *sk); void getsock(struct socket *sk); -struct socket *netcslisten(int type, struct sockaddr *name, socklen_t namelen, int (*func)(struct socket *, struct socket *, void *), void *data); -struct socket *netcslistenlocal(int type, struct sockaddr *name, socklen_t namelen, int (*func)(struct socket *, struct socket *, void *), void *data); -struct socket *netcstcplisten(int port, int local, int (*func)(struct socket *, struct socket *, void *), void *data); -struct socket *netcsconn(struct sockaddr *addr, socklen_t addrlen, int (*func)(struct socket *, int, void *), void *data); +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); size_t sockqueuesize(struct socket *sk);