/* IRCfs - IRC FileServ for *nix. * Copyright (C) 2002 Nick 'Zaf' Clifford * For licensing details, refer to the LICENSE file in the source * code directory. */ #ifndef __include_servint_h__ #define __include_servint_h__ struct server_code_msg { struct server *s; int code; int argc; char **argv; int count; }; struct server_command_msg { struct server *s; char *command; int argc; char **argv; int count; }; /* This is stored as a number hash */ struct server_code_handler_list { int code; struct list *handlers; struct server_code_handler *defhandler; }; struct server_code_handler { int code; server_code_handler_func func; const char *parm_filter; int parm_filter_num; void *appdata; }; /* This is stored as a string hash */ struct server_command_handler_list { char *command; struct list *handlers; struct server_command_handler *defhandler; }; struct server_command_handler { char *command; const char *parm_filter; int parm_filter_num; server_command_handler_func func; void *appdata; }; enum server_states { server_state_disconnected, server_state_connecting, server_state_connected, server_state_error }; struct server { POOL pool; const char *host; unsigned short port; const char *servername; const char *network; const char *my_nick; const char *my_info; const char *my_username; const char *my_ip; struct user *me; int last_nick_tried; /* Index of last nick tried in nicks conf array */ int network_hunt_id; struct socket *socket; struct str_hash_table *command_handler_list; struct server_command_handler *def_command_handler; struct num_hash_table *code_handler_list; struct server_code_handler *def_code_handler; struct str_hash_table *module_list; enum server_states state; }; int server_raise_event(struct server *s, enum server_events event); int server_me_changed_nick(struct eventmsg *em); int server_me_destroyed(struct eventmsg *em); extern DEBUG server_debug; #endif