X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=include%2Fs_bsd.h;fp=include%2Fs_bsd.h;h=8b2231dcd3c3a121741d6c267eb4acc6ae61f5bf;hp=0000000000000000000000000000000000000000;hb=0400a5a6479398d82526785c18c0df8bc8b92dce;hpb=d17e10da972ce5776c60b4c317267c6abe0e1ead diff --git a/include/s_bsd.h b/include/s_bsd.h new file mode 100644 index 0000000..8b2231d --- /dev/null +++ b/include/s_bsd.h @@ -0,0 +1,73 @@ +/** @file s_bsd.h + * @brief Wrapper functions to avoid direct use of BSD APIs. + * @version $Id$ + */ +#ifndef INCLUDED_s_bsd_h +#define INCLUDED_s_bsd_h +#ifndef INCLUDED_sys_types_h +#include /* size_t, time_t */ +#define INCLUDED_sys_types_h +#endif +#ifndef INCLUDED_netinet_in_h +#include +#define INCLUDED_netinet_in_h +#endif + +struct Client; +struct ConfItem; +struct Listener; +struct MsgQ; +struct irc_in_addr; + +/* + * TCP window sizes + * Set server window to a large value for fat pipes, + * set client to a smaller size to allow TCP flow control + * to reduce flooding + */ +/** Default TCP window size for server connections. */ +#define SERVER_TCP_WINDOW 61440 +/** Default TCP window size for client connections. */ +#define CLIENT_TCP_WINDOW 2048 + +extern void report_error(const char* text, const char* who, int err); +/* + * text for report_error + */ +extern const char* const BIND_ERROR_MSG; +extern const char* const LISTEN_ERROR_MSG; +extern const char* const NONB_ERROR_MSG; +extern const char* const REUSEADDR_ERROR_MSG; +extern const char* const SOCKET_ERROR_MSG; +extern const char* const CONNLIMIT_ERROR_MSG; +extern const char* const ACCEPT_ERROR_MSG; +extern const char* const PEERNAME_ERROR_MSG; +extern const char* const POLL_ERROR_MSG; +extern const char* const SELECT_ERROR_MSG; +extern const char* const CONNECT_ERROR_MSG; +extern const char* const SETBUFS_ERROR_MSG; +extern const char* const TOS_ERROR_MSG; +extern const char* const REGISTER_ERROR_MSG; + +extern int HighestFd; +extern struct Client* LocalClientArray[MAXCONNECTIONS]; +extern struct irc_sockaddr VirtualHost_v4; +extern struct irc_sockaddr VirtualHost_v6; +extern struct irc_sockaddr VirtualHost_dns_v4; +extern struct irc_sockaddr VirtualHost_dns_v6; + +/* + * Proto types + */ +extern unsigned int deliver_it(struct Client *cptr, struct MsgQ *buf); +extern int connect_server(struct ConfItem* aconf, struct Client* by); +extern int net_close_unregistered_connections(struct Client* source); +extern void close_connection(struct Client *cptr); +extern void add_connection(struct Listener* listener, int fd); +extern int read_message(time_t delay); +extern void init_server_identity(void); +extern void close_connections(int close_stderr); +extern int init_connection_limits(void); +extern void update_write(struct Client* cptr); + +#endif /* INCLUDED_s_bsd_h */