diff options
Diffstat (limited to 'networking/tcpudp_perhost.h')
-rw-r--r-- | networking/tcpudp_perhost.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/networking/tcpudp_perhost.h b/networking/tcpudp_perhost.h new file mode 100644 index 0000000..2e093c1 --- /dev/null +++ b/networking/tcpudp_perhost.h @@ -0,0 +1,37 @@ +/* Based on ipsvd utilities written by Gerrit Pape <pape@smarden.org> + * which are released into public domain by the author. + * Homepage: http://smarden.sunsite.dk/ipsvd/ + * + * Copyright (C) 2007 Denys Vlasenko. + * + * Licensed under GPLv2, see file LICENSE in this tarball for details. + */ + +#if __GNUC_PREREQ(4,1) +# pragma GCC visibility push(hidden) +#endif + +struct hcc { + char *ip; + int pid; +}; + +void ipsvd_perhost_init(unsigned); + +/* Returns number of already opened connects to this ips, including this one. + * ip should be a malloc'ed ptr. + * If return value is <= maxconn, ip is inserted into the table + * and pointer to table entry if stored in *hccpp + * (useful for storing pid later). + * Else ip is NOT inserted (you must take care of it - free() etc) */ +unsigned ipsvd_perhost_add(char *ip, unsigned maxconn, struct hcc **hccpp); + +/* Finds and frees element with pid */ +void ipsvd_perhost_remove(int pid); + +//unsigned ipsvd_perhost_setpid(int pid); +//void ipsvd_perhost_free(void); + +#if __GNUC_PREREQ(4,1) +# pragma GCC visibility pop +#endif |