--- a/src/auth.c +++ b/src/auth.c @@ -70,7 +70,7 @@ { char* data; char* data_extra; - struct user_access_info* info = 0; + struct uhub_user_access_info* info = 0; if (!strncmp(line, cmd, strlen(cmd))) { @@ -86,7 +86,7 @@ return -1; } - info = hub_malloc_zero(sizeof(struct user_access_info)); + info = hub_malloc_zero(sizeof(struct uhub_user_access_info)); if (!info) { @@ -340,7 +340,7 @@ static void acl_free_access_info(void* ptr) { - struct user_access_info* info = (struct user_access_info*) ptr; + struct uhub_user_access_info* info = (struct uhub_user_access_info*) ptr; if (info) { hub_free(info->username); @@ -404,16 +404,16 @@ } -struct user_access_info* acl_get_access_info(struct acl_handle* handle, const char* name) +struct uhub_user_access_info* acl_get_access_info(struct acl_handle* handle, const char* name) { - struct user_access_info* info = (struct user_access_info*) list_get_first(handle->users); + struct uhub_user_access_info* info = (struct uhub_user_access_info*) list_get_first(handle->users); while (info) { if (strcasecmp(info->username, name) == 0) { return info; } - info = (struct user_access_info*) list_get_next(handle->users); + info = (struct uhub_user_access_info*) list_get_next(handle->users); } return NULL; } @@ -492,7 +492,7 @@ * seconds since the unix epoch (modulus 1 million) * and the SID of the user (0-1 million). */ -const char* password_generate_challenge(struct user* user) +const char* password_generate_challenge(struct uhub_user* user) { char buf[32]; uint64_t tiger_res[3]; @@ -511,10 +511,10 @@ } -int password_verify(struct user* user, const char* password) +int password_verify(struct uhub_user* user, const char* password) { char buf[1024]; - struct user_access_info* access; + struct uhub_user_access_info* access; const char* challenge; char raw_challenge[64]; char password_calc[64]; --- a/src/auth.h +++ b/src/auth.h @@ -21,7 +21,7 @@ #define HAVE_UHUB_ACL_H struct hub_config; -struct user; +struct uhub_user; struct ip_addr_encap; enum password_status @@ -50,7 +50,7 @@ const char* get_user_credential_string(enum user_credentials cred); -struct user_access_info +struct uhub_user_access_info { char* username; /* name of user, cid or IP range */ char* password; /* password */ @@ -77,7 +77,7 @@ extern int acl_initialize(struct hub_config* config, struct acl_handle* handle); extern int acl_shutdown(struct acl_handle* handle); -extern struct user_access_info* acl_get_access_info(struct acl_handle* handle, const char* name); +extern struct uhub_user_access_info* acl_get_access_info(struct acl_handle* handle, const char* name); extern int acl_is_cid_banned(struct acl_handle* handle, const char* cid); extern int acl_is_ip_banned(struct acl_handle* handle, const char* ip_address); extern int acl_is_ip_nat_override(struct acl_handle* handle, const char* ip_address); @@ -87,7 +87,7 @@ extern int acl_check_ip_range(struct ip_addr_encap* addr, struct ip_ban_record* info); -extern const char* password_generate_challenge(struct user* user); -extern int password_verify(struct user* user, const char* password); +extern const char* password_generate_challenge(struct uhub_user* user); +extern int password_verify(struct uhub_user* user, const char* password); #endif /* HAVE_UHUB_ACL_H */ --- a/src/commands.c +++ b/src/commands.c @@ -19,7 +19,7 @@ #include "uhub.h" -typedef int (*command_handler)(struct user* user, const char* message); +typedef int (*command_handler)(struct uhub_user* user, const char* message); struct commands_handler { @@ -32,7 +32,7 @@ static struct commands_handler command_handlers[]; -static void send_message(struct user* user, const char* message) +static void send_message(struct uhub_user* user, const char* message) { char* buffer = adc_msg_escape(message); struct adc_message* command = adc_msg_construct(ADC_CMD_IMSG, strlen(buffer) + 6); @@ -42,7 +42,7 @@ hub_free(buffer); } -static int command_access_denied(struct user* user, const char* command) +static int command_access_denied(struct uhub_user* user, const char* command) { char temp[64]; snprintf(temp, 64, "*** Access denied: \"%s\"", command); @@ -51,7 +51,7 @@ } -static int command_stats(struct user* user, const char* message) +static int command_stats(struct uhub_user* user, const char* message) { char temp[128]; snprintf(temp, 128, "*** Stats: %zu users, peak: %zu. Network (up/down): %d/%d KB/s, peak: %d/%d KB/s", @@ -67,7 +67,7 @@ } -static int command_help(struct user* user, const char* message) +static int command_help(struct uhub_user* user, const char* message) { #define MAX_HELP_MSG 1024 size_t n; @@ -89,7 +89,7 @@ return 0; } -static int command_uptime(struct user* user, const char* message) +static int command_uptime(struct uhub_user* user, const char* message) { char tmp[128]; size_t d; @@ -124,20 +124,20 @@ return 0; } -static int command_kick(struct user* user, const char* message) +static int command_kick(struct uhub_user* user, const char* message) { send_message(user, "*** Kick not implemented!"); return 0; } -static int command_reload(struct user* user, const char* message) +static int command_reload(struct uhub_user* user, const char* message) { send_message(user, "*** Reloading configuration"); user->hub->status = hub_status_restart; return 0; } -static int command_shutdown(struct user* user, const char* message) +static int command_shutdown(struct uhub_user* user, const char* message) { send_message(user, "*** Hub shuting down..."); user->hub->status = hub_status_shutdown; @@ -145,13 +145,13 @@ } -static int command_version(struct user* user, const char* message) +static int command_version(struct uhub_user* user, const char* message) { send_message(user, "*** Powered by " PRODUCT "/" VERSION); return 0; } -static int command_myip(struct user* user, const char* message) +static int command_myip(struct uhub_user* user, const char* message) { char tmp[128]; snprintf(tmp, 128, "*** Your IP: %s", ip_convert_to_string(&user->ipaddr)); @@ -159,7 +159,7 @@ return 0; } -int command_dipatcher(struct user* user, const char* message) +int command_dipatcher(struct uhub_user* user, const char* message) { size_t n = 0; for (n = 0; command_handlers[n].prefix; n++) --- a/src/commands.h +++ b/src/commands.h @@ -23,7 +23,7 @@ #define CHAT_MSG_IGNORED 0 #define CHAT_MSG_INVALID -1 -typedef int (*plugin_event_chat_message)(struct hub_info*, struct user*, struct adc_message*); +typedef int (*plugin_event_chat_message)(struct hub_info*, struct uhub_user*, struct adc_message*); struct command_info { @@ -32,4 +32,4 @@ plugin_event_chat_message function; }; -int command_dipatcher(struct user* user, const char* message); +int command_dipatcher(struct uhub_user* user, const char* message); --- a/src/hub.c +++ b/src/hub.c @@ -19,7 +19,7 @@ #include "uhub.h" -int hub_handle_message(struct user* u, const char* line, size_t length) +int hub_handle_message(struct uhub_user* u, const char* line, size_t length) { int ret = 0; struct adc_message* cmd = 0; @@ -96,7 +96,7 @@ } -int hub_handle_support(struct user* u, struct adc_message* cmd) +int hub_handle_support(struct uhub_user* u, struct adc_message* cmd) { int ret = 0; int index = 0; @@ -161,7 +161,7 @@ } -int hub_handle_password(struct user* u, struct adc_message* cmd) +int hub_handle_password(struct uhub_user* u, struct adc_message* cmd) { char* password = adc_msg_get_argument(cmd, 0); int ret = 0; @@ -184,7 +184,7 @@ } -int hub_handle_chat_message(struct user* u, struct adc_message* cmd) +int hub_handle_chat_message(struct uhub_user* u, struct adc_message* cmd) { char* message = adc_msg_get_argument(cmd, 0); int ret = 0; @@ -206,14 +206,14 @@ return ret; } -int on_kick(struct user* u, struct adc_message* cmd) +int on_kick(struct uhub_user* u, struct adc_message* cmd) { hub_log(log_error, "on_kick() not implemented"); return -1; } #ifdef ADC_UDP_OPERATION -int hub_handle_autocheck(struct user* u, struct adc_message* cmd) +int hub_handle_autocheck(struct uhub_user* u, struct adc_message* cmd) { char* port_str = adc_msg_get_argument(cmd, 0); char* token = adc_msg_get_argument(cmd, 1); @@ -245,13 +245,13 @@ #endif -void hub_send_autocheck(struct user* u, uint16_t port, const char* token) +void hub_send_autocheck(struct uhub_user* u, uint16_t port, const char* token) { } -void hub_send_support(struct user* u) +void hub_send_support(struct uhub_user* u) { if (user_is_connecting(u) || user_is_logged_in(u)) { @@ -260,7 +260,7 @@ } -void hub_send_sid(struct user* u) +void hub_send_sid(struct uhub_user* u) { struct adc_message* command; if (user_is_connecting(u)) @@ -274,7 +274,7 @@ } -void hub_send_ping(struct user* user) +void hub_send_ping(struct uhub_user* user) { /* This will just send a newline, despite appearing to do more below. */ struct adc_message* ping = adc_msg_construct(0, 0); @@ -287,7 +287,7 @@ } -void hub_send_hubinfo(struct user* u) +void hub_send_hubinfo(struct uhub_user* u) { struct adc_message* info = adc_msg_copy(u->hub->command_info); int value = 0; @@ -356,7 +356,7 @@ } -void hub_send_handshake(struct user* u) +void hub_send_handshake(struct uhub_user* u) { hub_send_support(u); hub_send_sid(u); @@ -369,7 +369,7 @@ } -void hub_send_motd(struct user* u) +void hub_send_motd(struct uhub_user* u) { if (u->hub->command_motd) { @@ -378,7 +378,7 @@ } -void hub_send_password_challenge(struct user* u) +void hub_send_password_challenge(struct uhub_user* u) { struct adc_message* igpa; igpa = adc_msg_construct(ADC_CMD_IGPA, 38); @@ -399,33 +399,33 @@ { case UHUB_EVENT_USER_JOIN: { - if (user_is_disconnecting((struct user*) message->ptr)) + if (user_is_disconnecting((struct uhub_user*) message->ptr)) break; if (message->flags) { - hub_send_password_challenge((struct user*) message->ptr); + hub_send_password_challenge((struct uhub_user*) message->ptr); } else { - on_login_success((struct user*) message->ptr); + on_login_success((struct uhub_user*) message->ptr); } break; } case UHUB_EVENT_USER_QUIT: { - user_manager_remove((struct user*) message->ptr); - send_quit_message((struct user*) message->ptr); - on_logout_user((struct user*) message->ptr); - user_schedule_destroy((struct user*) message->ptr); + user_manager_remove((struct uhub_user*) message->ptr); + send_quit_message((struct uhub_user*) message->ptr); + on_logout_user((struct uhub_user*) message->ptr); + user_schedule_destroy((struct uhub_user*) message->ptr); break; } case UHUB_EVENT_USER_DESTROY: { hub_log(log_trace, "hub_event_dispatcher: UHUB_EVENT_USER_DESTROY (ptr=%p)", message->ptr); - user_destroy((struct user*) message->ptr); + user_destroy((struct uhub_user*) message->ptr); break; } @@ -757,7 +757,7 @@ */ static inline int is_nick_in_use(struct hub_info* hub, const char* nick) { - struct user* lookup = get_user_by_nick(hub, nick); + struct uhub_user* lookup = get_user_by_nick(hub, nick); if (lookup) { return 1; @@ -771,7 +771,7 @@ */ static inline int is_cid_in_use(struct hub_info* hub, const char* cid) { - struct user* lookup = get_user_by_cid(hub, cid); + struct uhub_user* lookup = get_user_by_cid(hub, cid); if (lookup) { return 1; @@ -796,7 +796,7 @@ * @param msg See enum status_message * @param level See enum status_level */ -void hub_send_status(struct user* user, enum status_message msg, enum msg_status_level level) +void hub_send_status(struct uhub_user* user, enum status_message msg, enum msg_status_level level) { struct hub_config* cfg = user->hub->config; struct adc_message* cmd = adc_msg_construct(ADC_CMD_ISTA, 6); --- a/src/hubevent.c +++ b/src/hubevent.c @@ -19,27 +19,27 @@ #include "uhub.h" -static void log_user_login(struct user* u) +static void log_user_login(struct uhub_user* u) { const char* cred = get_user_credential_string(u->credentials); const char* addr = ip_convert_to_string(&u->ipaddr); hub_log(log_user, "LoginOK %s/%s %s \"%s\" (%s) \"%s\"", sid_to_string(u->id.sid), u->id.cid, addr, u->id.nick, cred, u->user_agent); } -static void log_user_login_error(struct user* u, enum status_message msg) +static void log_user_login_error(struct uhub_user* u, enum status_message msg) { const char* addr = ip_convert_to_string(&u->ipaddr); const char* message = hub_get_status_message_log(u->hub, msg); hub_log(log_user, "LoginError %s/%s %s \"%s\" (%s) \"%s\"", sid_to_string(u->id.sid), u->id.cid, addr, u->id.nick, message, u->user_agent); } -static void log_user_logout(struct user* u, const char* message) +static void log_user_logout(struct uhub_user* u, const char* message) { const char* addr = ip_convert_to_string(&u->ipaddr); hub_log(log_user, "Logout %s/%s %s \"%s\" (%s)", sid_to_string(u->id.sid), u->id.cid, addr, u->id.nick, message); } -static void log_user_nick_change(struct user* u, const char* nick) +static void log_user_nick_change(struct uhub_user* u, const char* nick) { const char* addr = ip_convert_to_string(&u->ipaddr); hub_log(log_user, "NickChange %s/%s %s \"%s\" -> \"%s\"", sid_to_string(u->id.sid), u->id.cid, addr, u->id.nick, nick); @@ -47,7 +47,7 @@ /* Send MOTD, do logging etc */ -void on_login_success(struct user* u) +void on_login_success(struct uhub_user* u) { struct timeval timeout = { TIMEOUT_IDLE, 0 }; @@ -75,14 +75,14 @@ event_add(u->ev_read, &timeout); } -void on_login_failure(struct user* u, enum status_message msg) +void on_login_failure(struct uhub_user* u, enum status_message msg) { log_user_login_error(u, msg); hub_send_status(u, msg, status_level_fatal); user_disconnect(u, quit_logon_error); } -void on_nick_change(struct user* u, const char* nick) +void on_nick_change(struct uhub_user* u, const char* nick) { if (user_is_logged_in(u)) { @@ -90,7 +90,7 @@ } } -void on_logout_user(struct user* user) +void on_logout_user(struct uhub_user* user) { const char* reason = ""; --- a/src/hubevent.h +++ b/src/hubevent.h @@ -23,22 +23,22 @@ /** * This event is triggered whenever a user successfully logs in to the hub. */ -extern void on_login_success(struct user* u); +extern void on_login_success(struct uhub_user* u); /** * This event is triggered whenever a user failed to log in to the hub. */ -extern void on_login_failure(struct user* u, enum status_message msg); +extern void on_login_failure(struct uhub_user* u, enum status_message msg); /** * This event is triggered whenever a previously logged in user leaves the hub. */ -extern void on_logout_user(struct user* u); +extern void on_logout_user(struct uhub_user* u); /** * This event is triggered whenever a user changes his/her nickname. */ -extern void on_nick_change(struct user* u, const char* nick); +extern void on_nick_change(struct uhub_user* u, const char* nick); #endif /* HAVE_UHUB_HUB_EVENT_H */ --- a/src/hub.h +++ b/src/hub.h @@ -94,7 +94,7 @@ struct event_queue* queue; struct event_base* evbase; struct hub_config* config; - struct user_manager* users; + struct uhub_user_manager* users; struct acl_handle* acl; struct adc_message* command_info; /* The hub's INF command */ struct adc_message* command_support; /* The hub's SUP command */ @@ -116,103 +116,103 @@ * * @return 0 on success, -1 on error */ -extern int hub_handle_message(struct user* u, const char* message, size_t length); +extern int hub_handle_message(struct uhub_user* u, const char* message, size_t length); /** * Handle protocol support/subscription messages received clients. * * @return 0 on success, -1 on error */ -extern int hub_handle_support(struct user* u, struct adc_message* cmd); +extern int hub_handle_support(struct uhub_user* u, struct adc_message* cmd); /** * Handle password messages received from clients. * * @return 0 on success, -1 on error */ -extern int hub_handle_password(struct user* u, struct adc_message* cmd); +extern int hub_handle_password(struct uhub_user* u, struct adc_message* cmd); /** * Handle chat messages received from clients. * @return 0 on success, -1 on error. */ -extern int hub_handle_chat_message(struct user* u, struct adc_message* cmd); +extern int hub_handle_chat_message(struct uhub_user* u, struct adc_message* cmd); /** * Used internally by hub_handle_info * @return 1 if nickname is OK, or 0 if nickname is not accepted. */ -extern int hub_handle_info_check_nick(struct user* u, struct adc_message* cmd); +extern int hub_handle_info_check_nick(struct uhub_user* u, struct adc_message* cmd); /** * Used internally by hub_handle_info * @return 1 if CID/PID is OK, or 0 if not valid. */ -extern int hub_handle_info_check_cid(struct user* u, struct adc_message* cmd); +extern int hub_handle_info_check_cid(struct uhub_user* u, struct adc_message* cmd); /** * Can only be used by administrators or operators. * * @return 0 on success, -1 on error */ -extern int hub_handle_kick(struct user* u, struct adc_message* cmd); +extern int hub_handle_kick(struct uhub_user* u, struct adc_message* cmd); #ifdef ADC_UDP_OPERATION /** * Handle incoming autocheck message. */ -extern int hub_handle_autocheck(struct user* u, struct adc_message* cmd); +extern int hub_handle_autocheck(struct uhub_user* u, struct adc_message* cmd); #endif /** * Send the support line for the hub to a particular user. * Only used during the initial handshake. */ -extern void hub_send_support(struct user* u); +extern void hub_send_support(struct uhub_user* u); /** * Send a message assigning a SID for a user. * This is only sent after hub_send_support() during initial handshake. */ -extern void hub_send_sid(struct user* u); +extern void hub_send_sid(struct uhub_user* u); /** * Send a 'ping' message to user. */ -extern void hub_send_ping(struct user* user); +extern void hub_send_ping(struct uhub_user* user); /** * Send a message containing hub information to a particular user. * This is sent during user connection, but can safely be sent at any * point later. */ -extern void hub_send_hubinfo(struct user* u); +extern void hub_send_hubinfo(struct uhub_user* u); /** * Send handshake. This basically calls * hub_send_support() and hub_send_sid() */ -extern void hub_send_handshake(struct user* u); +extern void hub_send_handshake(struct uhub_user* u); /** * Send a welcome message containing the message of the day to * one particular user. This can be sent in any point in time. */ -extern void hub_send_motd(struct user* u); +extern void hub_send_motd(struct uhub_user* u); /** * Send a password challenge to a user. * This is only used if the user tries to access the hub using a * password protected nick name. */ -extern void hub_send_password_challenge(struct user* u); +extern void hub_send_password_challenge(struct uhub_user* u); /** * Send an autocheck message to a user. * This is basically a UDP message. The user's client can then determine * if UDP communication works by either hole punching or configuring UPnP. */ -extern void hub_send_autocheck(struct user* u, uint16_t port, const char* token); +extern void hub_send_autocheck(struct uhub_user* u, uint16_t port, const char* token); /** * This starts the hub. @@ -244,7 +244,7 @@ /** * Sends a status_message to a user. */ -extern void hub_send_status(struct user* user, enum status_message msg, enum msg_status_level level); +extern void hub_send_status(struct uhub_user* user, enum status_message msg, enum msg_status_level level); /** * Returns the number of logged in users on the hub. --- a/src/inf.c +++ b/src/inf.c @@ -39,9 +39,9 @@ adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_REFERER); } -static int user_is_protected(struct user* user); +static int user_is_protected(struct uhub_user* user); -static int set_feature_cast_supports(struct user* u, struct adc_message* cmd) +static int set_feature_cast_supports(struct uhub_user* u, struct adc_message* cmd) { char *it, *tmp; @@ -89,7 +89,7 @@ /* * FIXME: Only works for tiger hash. If a client doesnt support tiger we cannot let it in! */ -static int check_cid(struct user* user, struct adc_message* cmd) +static int check_cid(struct uhub_user* user, struct adc_message* cmd) { size_t pos; char* cid = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_CLIENT_ID); @@ -150,7 +150,7 @@ } -static int check_required_login_flags(struct user* user, struct adc_message* cmd) +static int check_required_login_flags(struct uhub_user* user, struct adc_message* cmd) { int num = 0; @@ -186,7 +186,7 @@ * remove any wrong address, and replace it with the correct one * as seen by the hub. */ -int check_network(struct user* user, struct adc_message* cmd) +int check_network(struct uhub_user* user, struct adc_message* cmd) { const char* address = ip_convert_to_string(&user->ipaddr); @@ -269,7 +269,7 @@ } -static int check_nick(struct user* user, struct adc_message* cmd) +static int check_nick(struct uhub_user* user, struct adc_message* cmd) { char* nick; char* tmp; @@ -317,10 +317,10 @@ } -static int check_logged_in(struct user* user, struct adc_message* cmd) +static int check_logged_in(struct uhub_user* user, struct adc_message* cmd) { - struct user* lookup1 = get_user_by_nick(user->hub, user->id.nick); - struct user* lookup2 = get_user_by_cid(user->hub, user->id.cid); + struct uhub_user* lookup1 = get_user_by_nick(user->hub, user->id.nick); + struct uhub_user* lookup2 = get_user_by_cid(user->hub, user->id.cid); if (lookup1 == user) { @@ -358,7 +358,7 @@ * But this is not something we want to do, and is deprecated in the ADC specification. * One should rather look at capabilities/features. */ -static int check_user_agent(struct user* user, struct adc_message* cmd) +static int check_user_agent(struct uhub_user* user, struct adc_message* cmd) { char* ua_encoded = 0; char* ua = 0; @@ -379,7 +379,7 @@ } -static int check_acl(struct user* user, struct adc_message* cmd) +static int check_acl(struct uhub_user* user, struct adc_message* cmd) { if (acl_is_cid_banned(user->hub->acl, user->id.cid)) { @@ -399,7 +399,7 @@ return 0; } -static int check_limits(struct user* user, struct adc_message* cmd) +static int check_limits(struct uhub_user* user, struct adc_message* cmd) { char* arg = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_SHARED_SIZE); if (arg) @@ -525,10 +525,10 @@ * If the hub is configured to allow only registered users and the user * is not recognized this will return 1. */ -static int set_credentials(struct user* user, struct adc_message* cmd) +static int set_credentials(struct uhub_user* user, struct adc_message* cmd) { int ret = 0; - struct user_access_info* info = acl_get_access_info(user->hub->acl, user->id.nick); + struct uhub_user_access_info* info = acl_get_access_info(user->hub->acl, user->id.nick); if (info) { @@ -580,7 +580,7 @@ /** * Determines if a user is to be let into the hub even if the hub is "full". */ -static int user_is_protected(struct user* user) +static int user_is_protected(struct uhub_user* user) { switch (user->credentials) { @@ -601,7 +601,7 @@ * Only registered users will be let in if the hub is configured for registered * users only. */ -static int user_is_registered(struct user* user) +static int user_is_registered(struct uhub_user* user) { switch (user->credentials) { @@ -619,7 +619,7 @@ } -void update_user_info(struct user* u, struct adc_message* cmd) +void update_user_info(struct uhub_user* u, struct adc_message* cmd) { char prefix[2]; char* argument; @@ -649,7 +649,7 @@ } -static int check_is_hub_full(struct user* user) +static int check_is_hub_full(struct uhub_user* user) { /* * If hub is full, don't let users in, but we still want to allow @@ -663,7 +663,7 @@ } -static int check_registered_users_only(struct user* user) +static int check_registered_users_only(struct uhub_user* user) { if (user->hub->config->registered_users_only && !user_is_registered(user)) { @@ -679,7 +679,7 @@ return ret; \ } while(0) -static int hub_handle_info_common(struct user* user, struct adc_message* cmd) +static int hub_handle_info_common(struct uhub_user* user, struct adc_message* cmd) { /* Remove server restricted flags */ remove_server_restricted_flags(cmd); @@ -690,7 +690,7 @@ return 0; } -static int hub_handle_info_low_bandwidth(struct user* user, struct adc_message* cmd) +static int hub_handle_info_low_bandwidth(struct uhub_user* user, struct adc_message* cmd) { if (user->hub->config->low_bandwidth_mode) { @@ -711,7 +711,7 @@ return 0; } -int hub_handle_info_login(struct user* user, struct adc_message* cmd) +int hub_handle_info_login(struct uhub_user* user, struct adc_message* cmd) { int need_auth = 0; @@ -765,7 +765,7 @@ * - CID/PID (valid, not taken, etc). * - IP addresses (IPv4 and IPv6) */ -int hub_handle_info(struct user* user, const struct adc_message* cmd_unmodified) +int hub_handle_info(struct uhub_user* user, const struct adc_message* cmd_unmodified) { struct adc_message* cmd = adc_msg_copy(cmd_unmodified); if (!cmd) return -1; /* OOM */ --- a/src/inf.h +++ b/src/inf.h @@ -47,7 +47,7 @@ * * @return 0 on success, -1 on error */ -extern int hub_handle_info(struct user* u, const struct adc_message* cmd); +extern int hub_handle_info(struct uhub_user* u, const struct adc_message* cmd); #endif /* HAVE_UHUB_INF_PARSER_H */ --- a/src/message.c +++ b/src/message.c @@ -234,7 +234,7 @@ } -struct adc_message* adc_msg_parse_verify(struct user* u, const char* line, size_t length) +struct adc_message* adc_msg_parse_verify(struct uhub_user* u, const char* line, size_t length) { struct adc_message* command = adc_msg_parse(line, length); --- a/src/message.h +++ b/src/message.h @@ -20,7 +20,7 @@ #ifndef HAVE_UHUB_COMMAND_H #define HAVE_UHUB_COMMAND_H -struct user; +struct uhub_user; struct adc_message { @@ -70,7 +70,7 @@ * The message is only considered valid if the user who sent it * is the rightful origin of the message. */ -extern struct adc_message* adc_msg_parse_verify(struct user* u, const char* string, size_t length); +extern struct adc_message* adc_msg_parse_verify(struct uhub_user* u, const char* string, size_t length); /** * This will parse 'string' and return it as a adc_message struct, or --- a/src/netevent.c +++ b/src/netevent.c @@ -23,7 +23,7 @@ void net_on_read(int fd, short ev, void *arg) { static char buf[MAX_RECV_BUF]; - struct user* user = (struct user*) arg; + struct uhub_user* user = (struct uhub_user*) arg; char* pos; size_t offset; size_t buflen; @@ -168,7 +168,7 @@ void net_on_write(int fd, short ev, void *arg) { - struct user* user = (struct user*) arg; + struct uhub_user* user = (struct uhub_user*) arg; struct adc_message* msg; int ret; int length; @@ -259,7 +259,7 @@ void net_on_accept(int server_fd, short ev, void *arg) { struct hub_info* hub = (struct hub_info*) arg; - struct user* user = 0; + struct uhub_user* user = 0; struct ip_addr_encap ipaddr; const char* addr; struct timeval timeout = { TIMEOUT_CONNECTED, 0 }; @@ -320,7 +320,7 @@ { static char buffer[1024] = {0,}; // struct hub_info* hub = (struct hub_info*) arg; - // struct user* user = 0; + // struct uhub_user* user = 0; ssize_t size; struct sockaddr_storage from; socklen_t fromlen; --- a/src/plugin.h +++ b/src/plugin.h @@ -19,12 +19,12 @@ typedef void (*plugin_event_startup)(struct hub*); typedef void (*plugin_event_shutdown)(struct hub*); -typedef void (*plugin_event_user_login)(struct hub*, struct user*); -typedef void (*plugin_event_user_logout)(struct hub*, struct user*); +typedef void (*plugin_event_user_login)(struct hub*, struct uhub_user*); +typedef void (*plugin_event_user_logout)(struct hub*, struct uhub_user*); typedef int (*plugin_event_connect)(struct hub*, struct ip_addr_encap); -typedef void (*plugin_event_disconnect)(struct hub*, struct user*); -typedef int (*plugin_event_message)(struct hub*, struct user*, struct adc_message*); -typedef void (*plugin_event_support)(struct hub*, struct user*, int); +typedef void (*plugin_event_disconnect)(struct hub*, struct uhub_user*); +typedef int (*plugin_event_message)(struct hub*, struct uhub_user*, struct adc_message*); +typedef void (*plugin_event_support)(struct hub*, struct uhub_user*, int); struct uhub_plugin { --- a/src/route.c +++ b/src/route.c @@ -20,9 +20,9 @@ #include "uhub.h" -int route_message(struct user* u, struct adc_message* msg) +int route_message(struct uhub_user* u, struct adc_message* msg) { - struct user* target = NULL; + struct uhub_user* target = NULL; switch (msg->cache[0]) { @@ -59,7 +59,7 @@ } -static void queue_command(struct user* user, struct adc_message* msg__, int offset) +static void queue_command(struct uhub_user* user, struct adc_message* msg__, int offset) { struct adc_message* msg = adc_msg_incref(msg__); list_append(user->send_queue, msg); @@ -97,7 +97,7 @@ * -1 if send queue is overflowed * 0 if soft send queue is overflowed (not implemented at the moment) */ -static int check_send_queue(struct user* user, struct adc_message* msg) +static int check_send_queue(struct uhub_user* user, struct adc_message* msg) { if (user_flag_get(user, flag_user_list)) return 1; @@ -111,7 +111,7 @@ return 1; } -int route_to_user(struct user* user, struct adc_message* msg) +int route_to_user(struct uhub_user* user, struct adc_message* msg) { int ret; @@ -174,11 +174,11 @@ int route_to_all(struct hub_info* hub, struct adc_message* command) /* iterate users */ { - struct user* user = (struct user*) list_get_first(hub->users->list); + struct uhub_user* user = (struct uhub_user*) list_get_first(hub->users->list); while (user) { route_to_user(user, command); - user = (struct user*) list_get_next(hub->users->list); + user = (struct uhub_user*) list_get_next(hub->users->list); } return 0; @@ -190,7 +190,7 @@ int do_send; char* tmp; - struct user* user = (struct user*) list_get_first(hub->users->list); + struct uhub_user* user = (struct uhub_user*) list_get_first(hub->users->list); while (user) { if (user->feature_cast) @@ -209,7 +209,7 @@ } if (!do_send) { - user = (struct user*) list_get_next(hub->users->list); + user = (struct uhub_user*) list_get_next(hub->users->list); continue; } @@ -229,13 +229,13 @@ route_to_user(user, command); } } - user = (struct user*) list_get_next(hub->users->list); + user = (struct uhub_user*) list_get_next(hub->users->list); } return 0; } -int route_info_message(struct user* u) +int route_info_message(struct uhub_user* u) { if (!user_is_nat_override(u)) { @@ -245,12 +245,12 @@ { struct adc_message* cmd = adc_msg_copy(u->info); const char* address = ip_convert_to_string(&u->ipaddr); - struct user* user = 0; + struct uhub_user* user = 0; adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_IPV4_ADDR); adc_msg_add_named_argument(cmd, ADC_INF_FLAG_IPV4_ADDR, address); - user = (struct user*) list_get_first(u->hub->users->list); + user = (struct uhub_user*) list_get_first(u->hub->users->list); while (user) { if (user_is_nat_override(user)) @@ -258,7 +258,7 @@ else route_to_user(user, u->info); - user = (struct user*) list_get_next(u->hub->users->list); + user = (struct uhub_user*) list_get_next(u->hub->users->list); } adc_msg_free(cmd); } --- a/src/route.h +++ b/src/route.h @@ -23,12 +23,12 @@ /** * Route a message by sending it to it's final destination. */ -extern int route_message(struct user* u, struct adc_message* msg); +extern int route_message(struct uhub_user* u, struct adc_message* msg); /** * Transmit message directly to one user. */ -extern int route_to_user(struct user*, struct adc_message* command); +extern int route_to_user(struct uhub_user*, struct adc_message* command); /** * Broadcast message to all users. @@ -45,7 +45,7 @@ * This will ensure the correct IP is seen by other users * in case nat override is in use. */ -extern int route_info_message(struct user* user); +extern int route_info_message(struct uhub_user* user); #endif /* HAVE_UHUB_ROUTE_H */ --- a/src/sid.h +++ b/src/sid.h @@ -28,7 +28,7 @@ struct sid_map { - struct user* ptr; + struct uhub_user* ptr; struct sid_map* next; }; @@ -58,7 +58,7 @@ extern void sid_initialize(struct sid_pool*); -extern sid_t sid_alloc(struct sid_pool*, struct user*); +extern sid_t sid_alloc(struct sid_pool*, struct uhub_user*); extern void sid_free(struct sid_pool*, sid_t); --- a/src/user.c +++ b/src/user.c @@ -19,13 +19,13 @@ #include "uhub.h" -struct user* user_create(struct hub_info* hub, int sd) +struct uhub_user* user_create(struct hub_info* hub, int sd) { - struct user* user = NULL; + struct uhub_user* user = NULL; hub_log(log_trace, "user_create(), hub=%p, sd=%d", hub, sd); - user = (struct user*) hub_malloc_zero(sizeof(struct user)); + user = (struct uhub_user*) hub_malloc_zero(sizeof(struct uhub_user)); if (user == NULL) return NULL; /* OOM */ @@ -61,7 +61,7 @@ adc_msg_free((struct adc_message*) ptr); } -void user_destroy(struct user* user) +void user_destroy(struct uhub_user* user) { hub_log(log_trace, "user_destroy(), user=%p", user); @@ -98,7 +98,7 @@ hub_free(user); } -void user_set_state(struct user* user, enum user_state state) +void user_set_state(struct uhub_user* user, enum user_state state) { if ((user->state == state_cleanup && state != state_disconnected) || (user->state == state_disconnected)) { @@ -109,7 +109,7 @@ user->state = state; } -void user_set_info(struct user* user, struct adc_message* cmd) +void user_set_info(struct uhub_user* user, struct adc_message* cmd) { adc_msg_free(user->info); user->info = adc_msg_incref(cmd); @@ -156,44 +156,44 @@ } } -void user_support_add(struct user* user, int fourcc) +void user_support_add(struct uhub_user* user, int fourcc) { int feature_mask = convert_support_fourcc(fourcc); user->flags |= feature_mask; } -int user_flag_get(struct user* user, enum user_flags flag) +int user_flag_get(struct uhub_user* user, enum user_flags flag) { return user->flags & flag; } -void user_flag_set(struct user* user, enum user_flags flag) +void user_flag_set(struct uhub_user* user, enum user_flags flag) { user->flags |= flag; } -void user_flag_unset(struct user* user, enum user_flags flag) +void user_flag_unset(struct uhub_user* user, enum user_flags flag) { user->flags &= ~flag; } -void user_set_nat_override(struct user* user) +void user_set_nat_override(struct uhub_user* user) { user_flag_set(user, flag_nat); } -int user_is_nat_override(struct user* user) +int user_is_nat_override(struct uhub_user* user) { return user_flag_get(user, flag_nat); } -void user_support_remove(struct user* user, int fourcc) +void user_support_remove(struct uhub_user* user, int fourcc) { int feature_mask = convert_support_fourcc(fourcc); user->flags &= ~feature_mask; } -void user_schedule_destroy(struct user* user) +void user_schedule_destroy(struct uhub_user* user) { struct event_data post; memset(&post, 0, sizeof(post)); @@ -202,7 +202,7 @@ event_queue_post(user->hub->queue, &post); } -void user_disconnect(struct user* user, int reason) +void user_disconnect(struct uhub_user* user, int reason) { struct event_data post; int need_notify = 0; @@ -242,7 +242,7 @@ } -int user_have_feature_cast_support(struct user* user, char feature[4]) +int user_have_feature_cast_support(struct uhub_user* user, char feature[4]) { char* tmp = list_get_first(user->feature_cast); while (tmp) @@ -256,7 +256,7 @@ return 0; } -int user_set_feature_cast_support(struct user* u, char feature[4]) +int user_set_feature_cast_support(struct uhub_user* u, char feature[4]) { if (!u->feature_cast) { @@ -272,7 +272,7 @@ return 1; } -void user_clear_feature_cast_support(struct user* u) +void user_clear_feature_cast_support(struct uhub_user* u) { if (u->feature_cast) { @@ -282,21 +282,21 @@ } } -int user_is_logged_in(struct user* user) +int user_is_logged_in(struct uhub_user* user) { if (user->state == state_normal) return 1; return 0; } -int user_is_connecting(struct user* user) +int user_is_connecting(struct uhub_user* user) { if (user->state == state_protocol || user->state == state_identify || user->state == state_verify) return 1; return 0; } -int user_is_disconnecting(struct user* user) +int user_is_disconnecting(struct uhub_user* user) { if (user->state == state_cleanup || user->state == state_disconnected) return 1; --- a/src/user.h +++ b/src/user.h @@ -73,7 +73,7 @@ }; -struct user_info +struct uhub_user_info { sid_t sid; /** session ID */ char cid[MAX_CID_LEN+1]; /** global client ID */ @@ -85,7 +85,7 @@ * as the number of bytes and files shared, and the number of hubs the * user is connected to, etc. */ -struct user_counts +struct uhub_user_counts { uint64_t shared_size; /** Shared size in bytes */ size_t shared_files; /** The number of shared files */ @@ -96,14 +96,14 @@ size_t hub_count_total; /** The number of hubs connected to in total */ }; -struct user +struct uhub_user { int sd; /** socket descriptor */ struct event* ev_read; /** libevent struct for read events */ struct event* ev_write; /** libevent struct for write events */ enum user_state state; /** see enum user_state */ enum user_credentials credentials; /** see enum user_credentials */ - struct user_info id; /** Contains nick name and CID */ + struct uhub_user_info id; /** Contains nick name and CID */ int flags; /** see enum user_features */ char user_agent[MAX_UA_LEN+1];/** User agent string */ time_t tm_connected; /** time when user connected */ @@ -120,7 +120,7 @@ struct hub_info* hub; /** The hub instance this user belong to */ int quit_reason; /** Quit reason (see user_quit_reason) */ struct ip_addr_encap ipaddr; /** IP address of connected user */ - struct user_counts limits; /** Data used for limitation */ + struct uhub_user_counts limits; /** Data used for limitation */ #ifdef SSL_SUPPORT SSL* ssl; /** SSL handle */ #endif /* SSL_SUPPORT */ @@ -137,19 +137,19 @@ * @param sd socket descriptor associated with the user * @return User object or NULL if not enough memory is available. */ -extern struct user* user_create(struct hub_info* hub, int sd); +extern struct uhub_user* user_create(struct hub_info* hub, int sd); /** * Delete a user. * * !WRONG! If the user is logged in a quit message is issued. */ -extern void user_destroy(struct user* user); +extern void user_destroy(struct uhub_user* user); /** * Will post a message that will delete the user later. */ -extern void user_schedule_destroy(struct user* user); +extern void user_schedule_destroy(struct uhub_user* user); /** * Disconnect a user. @@ -165,36 +165,36 @@ * @param user User to disconnect * @param reason See enum user_quit_reason */ -extern void user_disconnect(struct user* user, int reason); +extern void user_disconnect(struct uhub_user* user, int reason); /** * This associates a INF message to the user. * If the user already has a INF message associated, then this is * released before setting the new one. */ -extern void user_set_info(struct user* user, struct adc_message* info); +extern void user_set_info(struct uhub_user* user, struct adc_message* info); /** * Specify a user's state. * NOTE: DON'T, unless you know what you are doing. */ -extern void user_set_state(struct user* user, enum user_state); +extern void user_set_state(struct uhub_user* user, enum user_state); /** * Returns 1 if the user is in state state_normal, or 0 otherwise. */ -extern int user_is_logged_in(struct user* user); +extern int user_is_logged_in(struct uhub_user* user); /** * Returns 1 if the user is in state_protocol, state_identify or state_verify. * Returns 0 otherwise. */ -extern int user_is_connecting(struct user* user); +extern int user_is_connecting(struct uhub_user* user); /** * Returns 1 only if the user is in state_cleanup or state_disconnected. */ -extern int user_is_disconnecting(struct user* user); +extern int user_is_disconnecting(struct uhub_user* user); /** * User supports the protocol extension as given in fourcc. @@ -204,7 +204,7 @@ * * @see enum user_flags */ -extern void user_support_add(struct user* user, int fourcc); +extern void user_support_add(struct uhub_user* user, int fourcc); /** * User no longer supports the protocol extension as given in fourcc. @@ -212,26 +212,26 @@ * the hub. * @see enum user_flags */ -extern void user_support_remove(struct user* user, int fourcc); +extern void user_support_remove(struct uhub_user* user, int fourcc); /** * Sets the nat override flag for a user, this allows users on the same * subnet as a natted hub to spoof their IP in order to use active mode * on a natted hub. */ -extern void user_set_nat_override(struct user* user); -extern int user_is_nat_override(struct user* user); +extern void user_set_nat_override(struct uhub_user* user); +extern int user_is_nat_override(struct uhub_user* user); /** * Set a flag. @see enum user_flags */ -extern void user_flag_set(struct user* user, enum user_flags flag); -extern void user_flag_unset(struct user* user, enum user_flags flag); +extern void user_flag_set(struct uhub_user* user, enum user_flags flag); +extern void user_flag_unset(struct uhub_user* user, enum user_flags flag); /** * Get a flag. @see enum user_flags */ -extern int user_flag_get(struct user* user, enum user_flags flag); +extern int user_flag_get(struct uhub_user* user, enum user_flags flag); /** * Check if a user supports 'feature' for feature casting (basis for 'Fxxx' messages) @@ -241,7 +241,7 @@ * @param feature a feature to lookup (example: 'TCP4' or 'UDP4') * @return 1 if 'feature' supported, or 0 otherwise */ -extern int user_have_feature_cast_support(struct user* user, char feature[4]); +extern int user_have_feature_cast_support(struct uhub_user* user, char feature[4]); /** * Set feature cast support for feature. @@ -249,12 +249,12 @@ * @param feature a feature to lookup (example: 'TCP4' or 'UDP4') * @return 1 if 'feature' supported, or 0 otherwise */ -extern int user_set_feature_cast_support(struct user* u, char feature[4]); +extern int user_set_feature_cast_support(struct uhub_user* u, char feature[4]); /** * Remove all feature cast support features. */ -extern void user_clear_feature_cast_support(struct user* u); +extern void user_clear_feature_cast_support(struct uhub_user* u); --- a/src/usermanager.c +++ b/src/usermanager.c @@ -27,7 +27,7 @@ { if (ptr) { - struct user* u = (struct user*) ptr; + struct uhub_user* u = (struct uhub_user*) ptr; /* Mark the user as already being disconnected. * This prevents the hub from trying to send @@ -81,10 +81,10 @@ int user_manager_init(struct hub_info* hub) { - struct user_manager* users = NULL; + struct uhub_user_manager* users = NULL; struct timeval timeout = { TIMEOUT_STATS, 0 }; - users = (struct user_manager*) hub_malloc_zero(sizeof(struct user_manager)); + users = (struct uhub_user_manager*) hub_malloc_zero(sizeof(struct uhub_user_manager)); users->list = list_create(); users->free_sid = 1; @@ -106,7 +106,7 @@ void user_manager_shutdown(struct hub_info* hub) { - struct user_manager* users = hub->users; + struct uhub_user_manager* users = hub->users; event_del(&hub->ev_timer); list_clear(users->list, &clear_user_list_callback); @@ -115,7 +115,7 @@ } -void user_manager_add(struct user* user) +void user_manager_add(struct uhub_user* user) { list_append(user->hub->users->list, user); user->hub->users->count++; @@ -125,7 +125,7 @@ user->hub->users->shared_files += user->limits.shared_files; } -void user_manager_remove(struct user* user) +void user_manager_remove(struct uhub_user* user) { list_remove(user->hub->users->list, user); user->hub->users->count--; @@ -135,50 +135,50 @@ } -struct user* get_user_by_sid(struct hub_info* hub, sid_t sid) +struct uhub_user* get_user_by_sid(struct hub_info* hub, sid_t sid) { - struct user* user = (struct user*) list_get_first(hub->users->list); /* iterate users */ + struct uhub_user* user = (struct uhub_user*) list_get_first(hub->users->list); /* iterate users */ while (user) { if (user->id.sid == sid) return user; - user = (struct user*) list_get_next(hub->users->list); + user = (struct uhub_user*) list_get_next(hub->users->list); } return NULL; } -struct user* get_user_by_cid(struct hub_info* hub, const char* cid) +struct uhub_user* get_user_by_cid(struct hub_info* hub, const char* cid) { - struct user* user = (struct user*) list_get_first(hub->users->list); /* iterate users - only on incoming INF msg */ + struct uhub_user* user = (struct uhub_user*) list_get_first(hub->users->list); /* iterate users - only on incoming INF msg */ while (user) { if (strcmp(user->id.cid, cid) == 0) return user; - user = (struct user*) list_get_next(hub->users->list); + user = (struct uhub_user*) list_get_next(hub->users->list); } return NULL; } -struct user* get_user_by_nick(struct hub_info* hub, const char* nick) +struct uhub_user* get_user_by_nick(struct hub_info* hub, const char* nick) { - struct user* user = (struct user*) list_get_first(hub->users->list); /* iterate users - only on incoming INF msg */ + struct uhub_user* user = (struct uhub_user*) list_get_first(hub->users->list); /* iterate users - only on incoming INF msg */ while (user) { if (strcmp(user->id.nick, nick) == 0) return user; - user = (struct user*) list_get_next(hub->users->list); + user = (struct uhub_user*) list_get_next(hub->users->list); } return NULL; } -int send_user_list(struct user* target) +int send_user_list(struct uhub_user* target) { int ret = 1; user_flag_set(target, flag_user_list); - struct user* user = (struct user*) list_get_first(target->hub->users->list); /* iterate users - only on INF or PAS msg */ + struct uhub_user* user = (struct uhub_user*) list_get_first(target->hub->users->list); /* iterate users - only on INF or PAS msg */ while (user) { if (user_is_logged_in(user)) @@ -187,7 +187,7 @@ if (!ret) break; } - user = (struct user*) list_get_next(user->hub->users->list); + user = (struct uhub_user*) list_get_next(user->hub->users->list); } if (!target->send_queue_size) @@ -198,7 +198,7 @@ } -void send_quit_message(struct user* leaving) +void send_quit_message(struct uhub_user* leaving) { struct adc_message* command = adc_msg_construct(ADC_CMD_IQUI, 6); adc_msg_add_argument(command, (const char*) sid_to_string(leaving->id.sid)); @@ -216,8 +216,8 @@ sid_t user_manager_get_free_sid(struct hub_info* hub) { #if 0 - struct user* user; - user = (struct user*) list_get_first(hub->users->list); /* iterate normal users */ + struct uhub_user* user; + user = (struct uhub_user*) list_get_first(hub->users->list); /* iterate normal users */ while (user) { if (user->sid == hub->users->free_sid) @@ -226,7 +226,7 @@ if (hub->users->free_sid >= SID_MAX) hub->users->free_sid = 1; break; } - user = (struct user*) list_get_next(hub->users->list); + user = (struct uhub_user*) list_get_next(hub->users->list); } #endif return hub->users->free_sid++; --- a/src/usermanager.h +++ b/src/usermanager.h @@ -20,7 +20,7 @@ #ifndef HAVE_UHUB_USER_MANAGER_H #define HAVE_UHUB_USER_MANAGER_H -struct user_manager +struct uhub_user_manager { size_t count; /**<< "Number of all fully connected and logged in users" */ size_t count_peak; /**<< "Peak number of users" */ @@ -51,14 +51,14 @@ /** * Add a new user to the user manager. */ -extern void user_manager_add(struct user* user); +extern void user_manager_add(struct uhub_user* user); /** * Remove a user from the user manager. * This user is connected, and will be moved to the leaving queue, pending * all messages in the message queue, and resource cleanup. */ -extern void user_manager_remove(struct user* user); +extern void user_manager_remove(struct uhub_user* user); /** * Returns a free sid for a new user. @@ -70,19 +70,19 @@ * NOTE: This will only search connected users. * @return a user if found, or NULL if not found */ -extern struct user* get_user_by_sid(struct hub_info* hub, sid_t sid); +extern struct uhub_user* get_user_by_sid(struct hub_info* hub, sid_t sid); /** * Lookup a user based on the client ID (cid). * @return a user if found, or NULL if not found */ -extern struct user* get_user_by_cid(struct hub_info* hub, const char* cid); +extern struct uhub_user* get_user_by_cid(struct hub_info* hub, const char* cid); /** * Lookup a user based on the nick name. * @return a user if found, or NULL if not found */ -extern struct user* get_user_by_nick(struct hub_info* hub, const char* nick); +extern struct uhub_user* get_user_by_nick(struct hub_info* hub, const char* nick); /** * Send the user list of connected clients to 'user'. @@ -90,13 +90,13 @@ * * @return 1 if sending the user list succeeded, 0 otherwise. */ -extern int send_user_list(struct user* user); +extern int send_user_list(struct uhub_user* user); /** * Send a quit message to all connected users when 'user' is * leaving the hub (for whatever reason). */ -extern void send_quit_message(struct user* user); +extern void send_quit_message(struct uhub_user* user); #endif /* HAVE_UHUB_USER_MANAGER_H */