Renamed all "struct user" to hub_user in order to resolve a naming conflict on OpenWRT.

Basically: sed -i 's/struct user/struct hub_user/g' `find -type f`
This commit is contained in:
Jan Vidar Krey 2009-07-26 01:47:17 +02:00
parent 2ac5cc19cb
commit 367871e476
25 changed files with 249 additions and 249 deletions

View File

@ -10,8 +10,8 @@ static void create_test_user()
if (g_user) if (g_user)
return; return;
g_user = (struct user*) malloc(sizeof(struct user)); g_user = (struct hub_user*) malloc(sizeof(struct hub_user));
memset(g_user, 0, sizeof(struct user)); memset(g_user, 0, sizeof(struct hub_user));
memcpy(g_user->id.nick, "exotic-tester", 13); memcpy(g_user->id.nick, "exotic-tester", 13);
g_user->sid = 1; g_user->sid = 1;
} }

View File

@ -5,15 +5,15 @@
#define USER_NICK "Friend" #define USER_NICK "Friend"
#define USER_SID "AAAB" #define USER_SID "AAAB"
static struct user* inf_user = 0; static struct hub_user* inf_user = 0;
static struct hub_info* inf_hub = 0; static struct hub_info* inf_hub = 0;
extern int hub_handle_info_login(struct hub_info* hub, struct user* user, struct adc_message* cmd); extern int hub_handle_info_login(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd);
static void inf_create_hub() static void inf_create_hub()
{ {
inf_hub = (struct hub_info*) hub_malloc_zero(sizeof(struct hub_info)); inf_hub = (struct hub_info*) hub_malloc_zero(sizeof(struct hub_info));
inf_hub->users = (struct user_manager*) hub_malloc_zero(sizeof(struct user_manager)); inf_hub->users = (struct hub_user_manager*) hub_malloc_zero(sizeof(struct hub_user_manager));
inf_hub->users->list = list_create(); inf_hub->users->list = list_create();
inf_hub->users->free_sid = 1; inf_hub->users->free_sid = 1;
@ -40,7 +40,7 @@ static void inf_destroy_hub()
static void inf_create_user() static void inf_create_user()
{ {
if (inf_user) return; if (inf_user) return;
inf_user = (struct user*) hub_malloc_zero(sizeof(struct user)); inf_user = (struct hub_user*) hub_malloc_zero(sizeof(struct hub_user));
inf_user->id.sid = 1; inf_user->id.sid = 1;
inf_user->net.sd = -1; inf_user->net.sd = -1;
inf_user->limits.upload_slots = 1; inf_user->limits.upload_slots = 1;

View File

@ -1,5 +1,5 @@
#include <uhub.h> #include <uhub.h>
static struct user* g_user = 0; static struct hub_user* g_user = 0;
static const char* test_string1 = "IINF AAfoo BBbar CCwhat\n"; static const char* test_string1 = "IINF AAfoo BBbar CCwhat\n";
static const char* test_string2 = "BMSG AAAB Hello\\sWorld!\n"; static const char* test_string2 = "BMSG AAAB Hello\\sWorld!\n";
static const char* test_string3 = "BINF AAAB IDAN7ZMSLIEBL53OPTM7WXGSTXUS3XOY6KQS5LBGX NIFriend DEstuff SL3 SS0 SF0 VEQuickDC/0.4.17 US6430 SUADC0,TCP4,UDP4 I4127.0.0.1 HO5 HN1 AW\n"; static const char* test_string3 = "BINF AAAB IDAN7ZMSLIEBL53OPTM7WXGSTXUS3XOY6KQS5LBGX NIFriend DEstuff SL3 SS0 SF0 VEQuickDC/0.4.17 US6430 SUADC0,TCP4,UDP4 I4127.0.0.1 HO5 HN1 AW\n";
@ -11,8 +11,8 @@ static void create_test_user()
if (g_user) if (g_user)
return; return;
g_user = (struct user*) malloc(sizeof(struct user)); g_user = (struct hub_user*) malloc(sizeof(struct hub_user));
memset(g_user, 0, sizeof(struct user)); memset(g_user, 0, sizeof(struct hub_user));
memcpy(g_user->id.nick, "exotic-tester", 13); memcpy(g_user->id.nick, "exotic-tester", 13);
g_user->id.sid = 1; g_user->id.sid = 1;
} }

View File

@ -3,7 +3,7 @@
#define MAX_USERS 64 #define MAX_USERS 64
static struct hub_info um_hub; static struct hub_info um_hub;
static struct user um_user[MAX_USERS]; static struct hub_user um_user[MAX_USERS];
EXO_TEST(um_test_setup, { EXO_TEST(um_test_setup, {
int i = 0; int i = 0;
@ -11,7 +11,7 @@ EXO_TEST(um_test_setup, {
for (i = 0; i < MAX_USERS; i++) for (i = 0; i < MAX_USERS; i++)
{ {
memset(&um_user[i], 0, sizeof(struct user)); memset(&um_user[i], 0, sizeof(struct hub_user));
um_user[i].id.sid = i+1; um_user[i].id.sid = i+1;
um_user[i].net.sd = -1; um_user[i].net.sd = -1;
} }

View File

@ -235,7 +235,7 @@ struct adc_message* adc_msg_copy(const struct adc_message* cmd)
} }
struct adc_message* adc_msg_parse_verify(struct user* u, const char* line, size_t length) struct adc_message* adc_msg_parse_verify(struct hub_user* u, const char* line, size_t length)
{ {
struct adc_message* command = adc_msg_parse(line, length); struct adc_message* command = adc_msg_parse(line, length);

View File

@ -20,7 +20,7 @@
#ifndef HAVE_UHUB_COMMAND_H #ifndef HAVE_UHUB_COMMAND_H
#define HAVE_UHUB_COMMAND_H #define HAVE_UHUB_COMMAND_H
struct user; struct hub_user;
struct adc_message struct adc_message
{ {
@ -70,7 +70,7 @@ extern struct adc_message* adc_msg_copy(const struct adc_message* cmd);
* The message is only considered valid if the user who sent it * The message is only considered valid if the user who sent it
* is the rightful origin of the message. * 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 hub_user* u, const char* string, size_t length);
/** /**
* This will parse 'string' and return it as a adc_message struct, or * This will parse 'string' and return it as a adc_message struct, or

View File

@ -28,7 +28,7 @@ extern sid_t string_to_sid(const char* sid);
struct sid_map struct sid_map
{ {
struct user* ptr; struct hub_user* ptr;
struct sid_map* next; struct sid_map* next;
}; };
@ -58,7 +58,7 @@ struct sid_pool
extern void sid_initialize(struct sid_pool*); 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 hub_user*);
extern void sid_free(struct sid_pool*, sid_t); extern void sid_free(struct sid_pool*, sid_t);

View File

@ -70,7 +70,7 @@ static int check_cmd_user(const char* cmd, int status, struct linked_list* list,
{ {
char* data; char* data;
char* data_extra; char* data_extra;
struct user_access_info* info = 0; struct hub_user_access_info* info = 0;
if (!strncmp(line, cmd, strlen(cmd))) if (!strncmp(line, cmd, strlen(cmd)))
{ {
@ -86,7 +86,7 @@ static int check_cmd_user(const char* cmd, int status, struct linked_list* list,
return -1; return -1;
} }
info = hub_malloc_zero(sizeof(struct user_access_info)); info = hub_malloc_zero(sizeof(struct hub_user_access_info));
if (!info) if (!info)
{ {
@ -336,7 +336,7 @@ int acl_initialize(struct hub_config* config, struct acl_handle* handle)
static void acl_free_access_info(void* ptr) static void acl_free_access_info(void* ptr)
{ {
struct user_access_info* info = (struct user_access_info*) ptr; struct hub_user_access_info* info = (struct hub_user_access_info*) ptr;
if (info) if (info)
{ {
hub_free(info->username); hub_free(info->username);
@ -400,16 +400,16 @@ int acl_shutdown(struct acl_handle* handle)
} }
struct user_access_info* acl_get_access_info(struct acl_handle* handle, const char* name) struct hub_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 hub_user_access_info* info = (struct hub_user_access_info*) list_get_first(handle->users);
while (info) while (info)
{ {
if (strcasecmp(info->username, name) == 0) if (strcasecmp(info->username, name) == 0)
{ {
return info; return info;
} }
info = (struct user_access_info*) list_get_next(handle->users); info = (struct hub_user_access_info*) list_get_next(handle->users);
} }
return NULL; return NULL;
} }
@ -444,7 +444,7 @@ int acl_is_user_denied(struct acl_handle* handle, const char* data)
int acl_user_ban_nick(struct acl_handle* handle, const char* nick) int acl_user_ban_nick(struct acl_handle* handle, const char* nick)
{ {
struct user_access_info* info = hub_malloc_zero(sizeof(struct user_access_info)); struct hub_user_access_info* info = hub_malloc_zero(sizeof(struct hub_user_access_info));
if (!info) if (!info)
{ {
LOG_ERROR("ACL error: Out of memory!"); LOG_ERROR("ACL error: Out of memory!");
@ -456,7 +456,7 @@ int acl_user_ban_nick(struct acl_handle* handle, const char* nick)
int acl_user_ban_cid(struct acl_handle* handle, const char* cid) int acl_user_ban_cid(struct acl_handle* handle, const char* cid)
{ {
struct user_access_info* info = hub_malloc_zero(sizeof(struct user_access_info)); struct hub_user_access_info* info = hub_malloc_zero(sizeof(struct hub_user_access_info));
if (!info) if (!info)
{ {
LOG_ERROR("ACL error: Out of memory!"); LOG_ERROR("ACL error: Out of memory!");
@ -523,7 +523,7 @@ int acl_check_ip_range(struct ip_addr_encap* addr, struct ip_ban_record* info)
* seconds since the unix epoch (modulus 1 million) * seconds since the unix epoch (modulus 1 million)
* and the SID of the user (0-1 million). * and the SID of the user (0-1 million).
*/ */
const char* acl_password_generate_challenge(struct acl_handle* acl, struct user* user) const char* acl_password_generate_challenge(struct acl_handle* acl, struct hub_user* user)
{ {
char buf[32]; char buf[32];
uint64_t tiger_res[3]; uint64_t tiger_res[3];
@ -538,10 +538,10 @@ const char* acl_password_generate_challenge(struct acl_handle* acl, struct user*
} }
int acl_password_verify(struct acl_handle* acl, struct user* user, const char* password) int acl_password_verify(struct acl_handle* acl, struct hub_user* user, const char* password)
{ {
char buf[1024]; char buf[1024];
struct user_access_info* access; struct hub_user_access_info* access;
const char* challenge; const char* challenge;
char raw_challenge[64]; char raw_challenge[64];
char password_calc[64]; char password_calc[64];

View File

@ -21,7 +21,7 @@
#define HAVE_UHUB_ACL_H #define HAVE_UHUB_ACL_H
struct hub_config; struct hub_config;
struct user; struct hub_user;
struct ip_addr_encap; struct ip_addr_encap;
enum user_credentials enum user_credentials
@ -38,7 +38,7 @@ enum user_credentials
const char* get_user_credential_string(enum user_credentials cred); const char* get_user_credential_string(enum user_credentials cred);
struct user_access_info struct hub_user_access_info
{ {
char* username; /* name of user, cid or IP range */ char* username; /* name of user, cid or IP range */
char* password; /* password */ char* password; /* password */
@ -65,7 +65,7 @@ struct acl_handle
extern int acl_initialize(struct hub_config* config, struct acl_handle* handle); extern int acl_initialize(struct hub_config* config, struct acl_handle* handle);
extern int acl_shutdown(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 hub_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_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_banned(struct acl_handle* handle, const char* ip_address);
extern int acl_is_ip_nat_override(struct acl_handle* handle, const char* ip_address); extern int acl_is_ip_nat_override(struct acl_handle* handle, const char* ip_address);
@ -80,7 +80,7 @@ extern int acl_user_unban_cid(struct acl_handle* handle, const char* cid);
extern int acl_check_ip_range(struct ip_addr_encap* addr, struct ip_ban_record* info); extern int acl_check_ip_range(struct ip_addr_encap* addr, struct ip_ban_record* info);
extern const char* acl_password_generate_challenge(struct acl_handle* acl, struct user* user); extern const char* acl_password_generate_challenge(struct acl_handle* acl, struct hub_user* user);
/** /**
* Verify a password. * Verify a password.
@ -88,6 +88,6 @@ extern const char* acl_password_generate_challenge(struct acl_handle* acl, struc
* @param password the hashed password (based on the nonce). * @param password the hashed password (based on the nonce).
* @return 1 if the password matches, or 0 if the password is incorrect. * @return 1 if the password matches, or 0 if the password is incorrect.
*/ */
extern int acl_password_verify(struct acl_handle* acl, struct user* user, const char* password); extern int acl_password_verify(struct acl_handle* acl, struct hub_user* user, const char* password);
#endif /* HAVE_UHUB_ACL_H */ #endif /* HAVE_UHUB_ACL_H */

View File

@ -33,7 +33,7 @@ struct hub_command
struct linked_list* args; struct linked_list* args;
}; };
typedef int (*command_handler)(struct hub_info* hub, struct user* user, struct hub_command*); typedef int (*command_handler)(struct hub_info* hub, struct hub_user* user, struct hub_command*);
struct commands_handler struct commands_handler
{ {
@ -92,7 +92,7 @@ static struct hub_command* command_create(const char* message)
return cmd; return cmd;
} }
static void send_message(struct hub_info* hub, struct user* user, const char* message) static void send_message(struct hub_info* hub, struct hub_user* user, const char* message)
{ {
char* buffer = adc_msg_escape(message); char* buffer = adc_msg_escape(message);
struct adc_message* command = adc_msg_construct(ADC_CMD_IMSG, strlen(buffer) + 6); struct adc_message* command = adc_msg_construct(ADC_CMD_IMSG, strlen(buffer) + 6);
@ -102,7 +102,7 @@ static void send_message(struct hub_info* hub, struct user* user, const char* me
hub_free(buffer); hub_free(buffer);
} }
static int command_access_denied(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_access_denied(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
char temp[128]; char temp[128];
snprintf(temp, 128, "*** %s: Access denied.", cmd->prefix); snprintf(temp, 128, "*** %s: Access denied.", cmd->prefix);
@ -110,7 +110,7 @@ static int command_access_denied(struct hub_info* hub, struct user* user, struct
return 0; return 0;
} }
static int command_not_found(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_not_found(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
char temp[128]; char temp[128];
snprintf(temp, 128, "*** %s: Command not found", cmd->prefix); snprintf(temp, 128, "*** %s: Command not found", cmd->prefix);
@ -118,7 +118,7 @@ static int command_not_found(struct hub_info* hub, struct user* user, struct hub
return 0; return 0;
} }
static int command_status_user_not_found(struct hub_info* hub, struct user* user, struct hub_command* cmd, const char* nick) static int command_status_user_not_found(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd, const char* nick)
{ {
char temp[128]; char temp[128];
snprintf(temp, 128, "*** %s: No user \"%s\"", cmd->prefix, nick); snprintf(temp, 128, "*** %s: No user \"%s\"", cmd->prefix, nick);
@ -147,7 +147,7 @@ const char* command_get_syntax(struct commands_handler* handler)
return args; return args;
} }
static int command_arg_mismatch(struct hub_info* hub, struct user* user, struct hub_command* cmd, struct commands_handler* handler) static int command_arg_mismatch(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd, struct commands_handler* handler)
{ {
char temp[256]; char temp[256];
const char* args = command_get_syntax(handler); const char* args = command_get_syntax(handler);
@ -157,7 +157,7 @@ static int command_arg_mismatch(struct hub_info* hub, struct user* user, struct
return 0; return 0;
} }
static int command_status(struct hub_info* hub, struct user* user, struct hub_command* cmd, const char* message) static int command_status(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd, const char* message)
{ {
char temp[1024]; char temp[1024];
snprintf(temp, 1024, "*** %s: %s", cmd->prefix, message); snprintf(temp, 1024, "*** %s: %s", cmd->prefix, message);
@ -165,7 +165,7 @@ static int command_status(struct hub_info* hub, struct user* user, struct hub_co
return 0; return 0;
} }
static int command_stats(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_stats(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
char temp[128]; char temp[128];
snprintf(temp, 128, "%zu users, peak: %zu. Network (up/down): %d/%d KB/s, peak: %d/%d KB/s", snprintf(temp, 128, "%zu users, peak: %zu. Network (up/down): %d/%d KB/s, peak: %d/%d KB/s",
@ -178,7 +178,7 @@ static int command_stats(struct hub_info* hub, struct user* user, struct hub_com
return command_status(hub, user, cmd, temp); return command_status(hub, user, cmd, temp);
} }
static int command_help(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_help(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
size_t n; size_t n;
char msg[MAX_HELP_MSG]; char msg[MAX_HELP_MSG];
@ -199,7 +199,7 @@ static int command_help(struct hub_info* hub, struct user* user, struct hub_comm
return command_status(hub, user, cmd, msg); return command_status(hub, user, cmd, msg);
} }
static int command_uptime(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_uptime(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
char tmp[128]; char tmp[128];
size_t d; size_t d;
@ -231,10 +231,10 @@ static int command_uptime(struct hub_info* hub, struct user* user, struct hub_co
return command_status(hub, user, cmd, tmp); return command_status(hub, user, cmd, tmp);
} }
static int command_kick(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_kick(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
char* nick = list_get_first(cmd->args); char* nick = list_get_first(cmd->args);
struct user* target = uman_get_user_by_nick(hub, nick); struct hub_user* target = uman_get_user_by_nick(hub, nick);
if (!target) if (!target)
return command_status_user_not_found(hub, user, cmd, nick); return command_status_user_not_found(hub, user, cmd, nick);
@ -246,10 +246,10 @@ static int command_kick(struct hub_info* hub, struct user* user, struct hub_comm
return command_status(hub, user, cmd, nick); return command_status(hub, user, cmd, nick);
} }
static int command_ban(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_ban(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
char* nick = list_get_first(cmd->args); char* nick = list_get_first(cmd->args);
struct user* target = uman_get_user_by_nick(hub, nick); struct hub_user* target = uman_get_user_by_nick(hub, nick);
if (!target) if (!target)
return command_status_user_not_found(hub, user, cmd, nick); return command_status_user_not_found(hub, user, cmd, nick);
@ -264,41 +264,41 @@ static int command_ban(struct hub_info* hub, struct user* user, struct hub_comma
return command_status(hub, user, cmd, nick); return command_status(hub, user, cmd, nick);
} }
static int command_unban(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_unban(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
return command_status(hub, user, cmd, "Not implemented"); return command_status(hub, user, cmd, "Not implemented");
} }
static int command_reload(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_reload(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
hub->status = hub_status_restart; hub->status = hub_status_restart;
return command_status(hub, user, cmd, "Reloading configuration..."); return command_status(hub, user, cmd, "Reloading configuration...");
} }
static int command_shutdown(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_shutdown(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
hub->status = hub_status_shutdown; hub->status = hub_status_shutdown;
return command_status(hub, user, cmd, "Hub shutting down..."); return command_status(hub, user, cmd, "Hub shutting down...");
} }
static int command_version(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_version(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
return command_status(hub, user, cmd, "Powered by " PRODUCT "/" VERSION); return command_status(hub, user, cmd, "Powered by " PRODUCT "/" VERSION);
} }
static int command_myip(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_myip(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
char tmp[128]; char tmp[128];
snprintf(tmp, 128, "Your address is \"%s\"", ip_convert_to_string(&user->net.ipaddr)); snprintf(tmp, 128, "Your address is \"%s\"", ip_convert_to_string(&user->net.ipaddr));
return command_status(hub, user, cmd, tmp); return command_status(hub, user, cmd, tmp);
} }
static int command_getip(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_getip(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
char tmp[128]; char tmp[128];
char* nick = list_get_first(cmd->args); char* nick = list_get_first(cmd->args);
struct user* target = uman_get_user_by_nick(hub, nick); struct hub_user* target = uman_get_user_by_nick(hub, nick);
if (!target) if (!target)
return command_status_user_not_found(hub, user, cmd, nick); return command_status_user_not_found(hub, user, cmd, nick);
@ -308,7 +308,7 @@ static int command_getip(struct hub_info* hub, struct user* user, struct hub_com
} }
#ifdef CRASH_DEBUG #ifdef CRASH_DEBUG
static int command_crash(struct hub_info* hub, struct user* user, struct hub_command* cmd) static int command_crash(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd)
{ {
void (*crash)(void) = NULL; void (*crash)(void) = NULL;
crash(); crash();
@ -316,7 +316,7 @@ static int command_crash(struct hub_info* hub, struct user* user, struct hub_com
} }
#endif #endif
int command_dipatcher(struct hub_info* hub, struct user* user, const char* message) int command_dipatcher(struct hub_info* hub, struct hub_user* user, const char* message)
{ {
size_t n = 0; size_t n = 0;
int rc; int rc;

View File

@ -23,7 +23,7 @@
#define CHAT_MSG_IGNORED 0 #define CHAT_MSG_IGNORED 0
#define CHAT_MSG_INVALID -1 #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 hub_user*, struct adc_message*);
struct command_info struct command_info
{ {
@ -32,4 +32,4 @@ struct command_info
plugin_event_chat_message function; plugin_event_chat_message function;
}; };
int command_dipatcher(struct hub_info* hub, struct user* user, const char* message); int command_dipatcher(struct hub_info* hub, struct hub_user* user, const char* message);

View File

@ -21,7 +21,7 @@
struct hub_info* g_hub = 0; struct hub_info* g_hub = 0;
int hub_handle_message(struct hub_info* hub, struct user* u, const char* line, size_t length) int hub_handle_message(struct hub_info* hub, struct hub_user* u, const char* line, size_t length)
{ {
int ret = 0; int ret = 0;
struct adc_message* cmd = 0; struct adc_message* cmd = 0;
@ -92,7 +92,7 @@ int hub_handle_message(struct hub_info* hub, struct user* u, const char* line, s
} }
int hub_handle_support(struct hub_info* hub, struct user* u, struct adc_message* cmd) int hub_handle_support(struct hub_info* hub, struct hub_user* u, struct adc_message* cmd)
{ {
int ret = 0; int ret = 0;
int index = 0; int index = 0;
@ -155,7 +155,7 @@ int hub_handle_support(struct hub_info* hub, struct user* u, struct adc_message*
} }
int hub_handle_password(struct hub_info* hub, struct user* u, struct adc_message* cmd) int hub_handle_password(struct hub_info* hub, struct hub_user* u, struct adc_message* cmd)
{ {
char* password = adc_msg_get_argument(cmd, 0); char* password = adc_msg_get_argument(cmd, 0);
int ret = 0; int ret = 0;
@ -178,7 +178,7 @@ int hub_handle_password(struct hub_info* hub, struct user* u, struct adc_message
} }
int hub_handle_chat_message(struct hub_info* hub, struct user* u, struct adc_message* cmd) int hub_handle_chat_message(struct hub_info* hub, struct hub_user* u, struct adc_message* cmd)
{ {
char* message = adc_msg_get_argument(cmd, 0); char* message = adc_msg_get_argument(cmd, 0);
int ret = 0; int ret = 0;
@ -204,7 +204,7 @@ int hub_handle_chat_message(struct hub_info* hub, struct user* u, struct adc_mes
return ret; return ret;
} }
void hub_send_support(struct hub_info* hub, struct user* u) void hub_send_support(struct hub_info* hub, struct hub_user* u)
{ {
if (user_is_connecting(u) || user_is_logged_in(u)) if (user_is_connecting(u) || user_is_logged_in(u))
{ {
@ -213,7 +213,7 @@ void hub_send_support(struct hub_info* hub, struct user* u)
} }
void hub_send_sid(struct hub_info* hub, struct user* u) void hub_send_sid(struct hub_info* hub, struct hub_user* u)
{ {
struct adc_message* command; struct adc_message* command;
if (user_is_connecting(u)) if (user_is_connecting(u))
@ -227,7 +227,7 @@ void hub_send_sid(struct hub_info* hub, struct user* u)
} }
void hub_send_ping(struct hub_info* hub, struct user* user) void hub_send_ping(struct hub_info* hub, struct hub_user* user)
{ {
/* This will just send a newline, despite appearing to do more below. */ /* This will just send a newline, despite appearing to do more below. */
struct adc_message* ping = adc_msg_construct(0, 0); struct adc_message* ping = adc_msg_construct(0, 0);
@ -240,7 +240,7 @@ void hub_send_ping(struct hub_info* hub, struct user* user)
} }
void hub_send_hubinfo(struct hub_info* hub, struct user* u) void hub_send_hubinfo(struct hub_info* hub, struct hub_user* u)
{ {
struct adc_message* info = adc_msg_copy(hub->command_info); struct adc_message* info = adc_msg_copy(hub->command_info);
int value = 0; int value = 0;
@ -306,7 +306,7 @@ void hub_send_hubinfo(struct hub_info* hub, struct user* u)
} }
} }
void hub_send_handshake(struct hub_info* hub, struct user* u) void hub_send_handshake(struct hub_info* hub, struct hub_user* u)
{ {
user_flag_set(u, flag_pipeline); user_flag_set(u, flag_pipeline);
hub_send_support(hub, u); hub_send_support(hub, u);
@ -320,7 +320,7 @@ void hub_send_handshake(struct hub_info* hub, struct user* u)
} }
} }
void hub_send_motd(struct hub_info* hub, struct user* u) void hub_send_motd(struct hub_info* hub, struct hub_user* u)
{ {
if (hub->command_motd) if (hub->command_motd)
{ {
@ -328,7 +328,7 @@ void hub_send_motd(struct hub_info* hub, struct user* u)
} }
} }
void hub_send_password_challenge(struct hub_info* hub, struct user* u) void hub_send_password_challenge(struct hub_info* hub, struct hub_user* u)
{ {
struct adc_message* igpa; struct adc_message* igpa;
igpa = adc_msg_construct(ADC_CMD_IGPA, 38); igpa = adc_msg_construct(ADC_CMD_IGPA, 38);
@ -341,7 +341,7 @@ void hub_send_password_challenge(struct hub_info* hub, struct user* u)
static void hub_event_dispatcher(void* callback_data, struct event_data* message) static void hub_event_dispatcher(void* callback_data, struct event_data* message)
{ {
struct hub_info* hub = (struct hub_info*) callback_data; struct hub_info* hub = (struct hub_info*) callback_data;
struct user* user = (struct user*) message->ptr; struct hub_user* user = (struct hub_user*) message->ptr;
assert(hub != NULL); assert(hub != NULL);
switch (message->id) switch (message->id)
@ -633,7 +633,7 @@ void hub_free_variables(struct hub_info* hub)
*/ */
static inline int is_nick_in_use(struct hub_info* hub, const char* nick) static inline int is_nick_in_use(struct hub_info* hub, const char* nick)
{ {
struct user* lookup = uman_get_user_by_nick(hub, nick); struct hub_user* lookup = uman_get_user_by_nick(hub, nick);
if (lookup) if (lookup)
{ {
return 1; return 1;
@ -647,7 +647,7 @@ static inline int is_nick_in_use(struct hub_info* hub, const char* nick)
*/ */
static inline int is_cid_in_use(struct hub_info* hub, const char* cid) static inline int is_cid_in_use(struct hub_info* hub, const char* cid)
{ {
struct user* lookup = uman_get_user_by_cid(hub, cid); struct hub_user* lookup = uman_get_user_by_cid(hub, cid);
if (lookup) if (lookup)
{ {
return 1; return 1;
@ -672,7 +672,7 @@ static void set_status_code(enum msg_status_level level, int code, char buffer[4
* @param msg See enum status_message * @param msg See enum status_message
* @param level See enum status_level * @param level See enum status_level
*/ */
void hub_send_status(struct hub_info* hub, struct user* user, enum status_message msg, enum msg_status_level level) void hub_send_status(struct hub_info* hub, struct hub_user* user, enum status_message msg, enum msg_status_level level)
{ {
struct hub_config* cfg = hub->config; struct hub_config* cfg = hub->config;
struct adc_message* cmd = adc_msg_construct(ADC_CMD_ISTA, 6); struct adc_message* cmd = adc_msg_construct(ADC_CMD_ISTA, 6);
@ -910,7 +910,7 @@ void hub_event_loop(struct hub_info* hub)
while (hub->status == hub_status_running || hub->status == hub_status_disabled); while (hub->status == hub_status_running || hub->status == hub_status_disabled);
} }
void hub_schedule_destroy_user(struct hub_info* hub, struct user* user) void hub_schedule_destroy_user(struct hub_info* hub, struct hub_user* user)
{ {
struct event_data post; struct event_data post;
memset(&post, 0, sizeof(post)); memset(&post, 0, sizeof(post));
@ -919,7 +919,7 @@ void hub_schedule_destroy_user(struct hub_info* hub, struct user* user)
event_queue_post(hub->queue, &post); event_queue_post(hub->queue, &post);
} }
void hub_disconnect_user(struct hub_info* hub, struct user* user, int reason) void hub_disconnect_user(struct hub_info* hub, struct hub_user* user, int reason)
{ {
struct event_data post; struct event_data post;
int need_notify = 0; int need_notify = 0;

View File

@ -88,7 +88,7 @@ struct hub_info
struct event_queue* queue; struct event_queue* queue;
struct event_base* evbase; struct event_base* evbase;
struct hub_config* config; struct hub_config* config;
struct user_manager* users; struct hub_user_manager* users;
struct acl_handle* acl; struct acl_handle* acl;
struct adc_message* command_info; /* The hub's INF command */ struct adc_message* command_info; /* The hub's INF command */
struct adc_message* command_support; /* The hub's SUP command */ struct adc_message* command_support; /* The hub's SUP command */
@ -113,87 +113,87 @@ struct hub_info
* *
* @return 0 on success, -1 on error * @return 0 on success, -1 on error
*/ */
extern int hub_handle_message(struct hub_info* hub, struct user* u, const char* message, size_t length); extern int hub_handle_message(struct hub_info* hub, struct hub_user* u, const char* message, size_t length);
/** /**
* Handle protocol support/subscription messages received clients. * Handle protocol support/subscription messages received clients.
* *
* @return 0 on success, -1 on error * @return 0 on success, -1 on error
*/ */
extern int hub_handle_support(struct hub_info* hub, struct user* u, struct adc_message* cmd); extern int hub_handle_support(struct hub_info* hub, struct hub_user* u, struct adc_message* cmd);
/** /**
* Handle password messages received from clients. * Handle password messages received from clients.
* *
* @return 0 on success, -1 on error * @return 0 on success, -1 on error
*/ */
extern int hub_handle_password(struct hub_info* hub, struct user* u, struct adc_message* cmd); extern int hub_handle_password(struct hub_info* hub, struct hub_user* u, struct adc_message* cmd);
/** /**
* Handle chat messages received from clients. * Handle chat messages received from clients.
* @return 0 on success, -1 on error. * @return 0 on success, -1 on error.
*/ */
extern int hub_handle_chat_message(struct hub_info* hub, struct user* u, struct adc_message* cmd); extern int hub_handle_chat_message(struct hub_info* hub, struct hub_user* u, struct adc_message* cmd);
/** /**
* Used internally by hub_handle_info * Used internally by hub_handle_info
* @return 1 if nickname is OK, or 0 if nickname is not accepted. * @return 1 if nickname is OK, or 0 if nickname is not accepted.
*/ */
extern int hub_handle_info_check_nick(struct hub_info* hub, struct user* u, struct adc_message* cmd); extern int hub_handle_info_check_nick(struct hub_info* hub, struct hub_user* u, struct adc_message* cmd);
/** /**
* Used internally by hub_handle_info * Used internally by hub_handle_info
* @return 1 if CID/PID is OK, or 0 if not valid. * @return 1 if CID/PID is OK, or 0 if not valid.
*/ */
extern int hub_handle_info_check_cid(struct hub_info* hub, struct user* u, struct adc_message* cmd); extern int hub_handle_info_check_cid(struct hub_info* hub, struct hub_user* u, struct adc_message* cmd);
/** /**
* Send the support line for the hub to a particular user. * Send the support line for the hub to a particular user.
* Only used during the initial handshake. * Only used during the initial handshake.
*/ */
extern void hub_send_support(struct hub_info* hub, struct user* u); extern void hub_send_support(struct hub_info* hub, struct hub_user* u);
/** /**
* Send a message assigning a SID for a user. * Send a message assigning a SID for a user.
* This is only sent after hub_send_support() during initial handshake. * This is only sent after hub_send_support() during initial handshake.
*/ */
extern void hub_send_sid(struct hub_info* hub, struct user* u); extern void hub_send_sid(struct hub_info* hub, struct hub_user* u);
/** /**
* Send a 'ping' message to user. * Send a 'ping' message to user.
*/ */
extern void hub_send_ping(struct hub_info* hub, struct user* user); extern void hub_send_ping(struct hub_info* hub, struct hub_user* user);
/** /**
* Send a message containing hub information to a particular user. * Send a message containing hub information to a particular user.
* This is sent during user connection, but can safely be sent at any * This is sent during user connection, but can safely be sent at any
* point later. * point later.
*/ */
extern void hub_send_hubinfo(struct hub_info* hub, struct user* u); extern void hub_send_hubinfo(struct hub_info* hub, struct hub_user* u);
/** /**
* Send handshake. This basically calls * Send handshake. This basically calls
* hub_send_support() and hub_send_sid() * hub_send_support() and hub_send_sid()
*/ */
extern void hub_send_handshake(struct hub_info* hub, struct user* u); extern void hub_send_handshake(struct hub_info* hub, struct hub_user* u);
/** /**
* Send a welcome message containing the message of the day to * Send a welcome message containing the message of the day to
* one particular user. This can be sent in any point in time. * one particular user. This can be sent in any point in time.
*/ */
extern void hub_send_motd(struct hub_info* hub, struct user* u); extern void hub_send_motd(struct hub_info* hub, struct hub_user* u);
/** /**
* Send a password challenge to a user. * Send a password challenge to a user.
* This is only used if the user tries to access the hub using a * This is only used if the user tries to access the hub using a
* password protected nick name. * password protected nick name.
*/ */
extern void hub_send_password_challenge(struct hub_info* hub, struct user* u); extern void hub_send_password_challenge(struct hub_info* hub, struct hub_user* u);
/** /**
* Sends a status_message to a user. * Sends a status_message to a user.
*/ */
extern void hub_send_status(struct hub_info*, struct user* user, enum status_message msg, enum msg_status_level level); extern void hub_send_status(struct hub_info*, struct hub_user* user, enum status_message msg, enum msg_status_level level);
/** /**
* Allocates memory, initializes the hub based on the configuration, * Allocates memory, initializes the hub based on the configuration,
@ -324,12 +324,12 @@ extern void hub_event_loop(struct hub_info* hub);
/** /**
* Schedule destroying a user. * Schedule destroying a user.
*/ */
extern void hub_schedule_destroy_user(struct hub_info* hub, struct user* user); extern void hub_schedule_destroy_user(struct hub_info* hub, struct hub_user* user);
/** /**
* Disconnect a user from the hub. * Disconnect a user from the hub.
*/ */
extern void hub_disconnect_user(struct hub_info* hub, struct user* user, int reason); extern void hub_disconnect_user(struct hub_info* hub, struct hub_user* user, int reason);
#endif /* HAVE_UHUB_HUB_H */ #endif /* HAVE_UHUB_HUB_H */

View File

@ -19,27 +19,27 @@
#include "uhub.h" #include "uhub.h"
static void log_user_login(struct user* u) static void log_user_login(struct hub_user* u)
{ {
const char* cred = get_user_credential_string(u->credentials); const char* cred = get_user_credential_string(u->credentials);
const char* addr = ip_convert_to_string(&u->net.ipaddr); const char* addr = ip_convert_to_string(&u->net.ipaddr);
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); 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 hub_user* u, enum status_message msg)
{ {
const char* addr = ip_convert_to_string(&u->net.ipaddr); const char* addr = ip_convert_to_string(&u->net.ipaddr);
const char* message = hub_get_status_message_log(u->hub, msg); const char* message = hub_get_status_message_log(u->hub, msg);
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); 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 hub_user* u, const char* message)
{ {
const char* addr = ip_convert_to_string(&u->net.ipaddr); const char* addr = ip_convert_to_string(&u->net.ipaddr);
LOG_USER("Logout %s/%s %s \"%s\" (%s)", sid_to_string(u->id.sid), u->id.cid, addr, u->id.nick, message); 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 hub_user* u, const char* nick)
{ {
const char* addr = ip_convert_to_string(&u->net.ipaddr); const char* addr = ip_convert_to_string(&u->net.ipaddr);
LOG_USER("NickChange %s/%s %s \"%s\" -> \"%s\"", sid_to_string(u->id.sid), u->id.cid, addr, u->id.nick, nick); 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 @@ static void log_user_nick_change(struct user* u, const char* nick)
/* Send MOTD, do logging etc */ /* Send MOTD, do logging etc */
void on_login_success(struct hub_info* hub, struct user* u) void on_login_success(struct hub_info* hub, struct hub_user* u)
{ {
/* Send user list of all existing users */ /* Send user list of all existing users */
if (!uman_send_user_list(hub, u)) if (!uman_send_user_list(hub, u))
@ -72,14 +72,14 @@ void on_login_success(struct hub_info* hub, struct user* u)
user_set_timeout(u, TIMEOUT_IDLE); user_set_timeout(u, TIMEOUT_IDLE);
} }
void on_login_failure(struct hub_info* hub, struct user* u, enum status_message msg) void on_login_failure(struct hub_info* hub, struct hub_user* u, enum status_message msg)
{ {
log_user_login_error(u, msg); log_user_login_error(u, msg);
hub_send_status(hub, u, msg, status_level_fatal); hub_send_status(hub, u, msg, status_level_fatal);
hub_disconnect_user(hub, u, quit_logon_error); hub_disconnect_user(hub, u, quit_logon_error);
} }
void on_nick_change(struct hub_info* hub, struct user* u, const char* nick) void on_nick_change(struct hub_info* hub, struct hub_user* u, const char* nick)
{ {
if (user_is_logged_in(u)) if (user_is_logged_in(u))
{ {
@ -87,7 +87,7 @@ void on_nick_change(struct hub_info* hub, struct user* u, const char* nick)
} }
} }
void on_logout_user(struct hub_info* hub, struct user* user) void on_logout_user(struct hub_info* hub, struct hub_user* user)
{ {
const char* reason = ""; const char* reason = "";

View File

@ -23,22 +23,22 @@
/** /**
* This event is triggered whenever a user successfully logs in to the hub. * This event is triggered whenever a user successfully logs in to the hub.
*/ */
extern void on_login_success(struct hub_info* hub, struct user* u); extern void on_login_success(struct hub_info* hub, struct hub_user* u);
/** /**
* This event is triggered whenever a user failed to log in to the hub. * This event is triggered whenever a user failed to log in to the hub.
*/ */
extern void on_login_failure(struct hub_info* hub, struct user* u, enum status_message msg); extern void on_login_failure(struct hub_info* hub, struct hub_user* u, enum status_message msg);
/** /**
* This event is triggered whenever a previously logged in user leaves the hub. * This event is triggered whenever a previously logged in user leaves the hub.
*/ */
extern void on_logout_user(struct hub_info* hub, struct user* u); extern void on_logout_user(struct hub_info* hub, struct hub_user* u);
/** /**
* This event is triggered whenever a user changes his/her nickname. * This event is triggered whenever a user changes his/her nickname.
*/ */
extern void on_nick_change(struct hub_info* hub, struct user* u, const char* nick); extern void on_nick_change(struct hub_info* hub, struct hub_user* u, const char* nick);
#endif /* HAVE_UHUB_HUB_EVENT_H */ #endif /* HAVE_UHUB_HUB_EVENT_H */

View File

@ -39,7 +39,7 @@ static void remove_server_restricted_flags(struct adc_message* cmd)
adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_REFERER); adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_REFERER);
} }
static int set_feature_cast_supports(struct user* u, struct adc_message* cmd) static int set_feature_cast_supports(struct hub_user* u, struct adc_message* cmd)
{ {
char *it, *tmp; char *it, *tmp;
@ -87,7 +87,7 @@ static int check_hash_tiger(const char* cid, const char* pid)
/* /*
* FIXME: Only works for tiger hash. If a client doesnt support tiger we cannot let it in! * FIXME: Only works for tiger hash. If a client doesnt support tiger we cannot let it in!
*/ */
static int check_cid(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int check_cid(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
size_t pos; size_t pos;
char* cid = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_CLIENT_ID); char* cid = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_CLIENT_ID);
@ -148,7 +148,7 @@ static int check_cid(struct hub_info* hub, struct user* user, struct adc_message
} }
static int check_required_login_flags(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int check_required_login_flags(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
int num = 0; int num = 0;
@ -184,7 +184,7 @@ static int check_required_login_flags(struct hub_info* hub, struct user* user, s
* remove any wrong address, and replace it with the correct one * remove any wrong address, and replace it with the correct one
* as seen by the hub. * as seen by the hub.
*/ */
int check_network(struct hub_info* hub, struct user* user, struct adc_message* cmd) int check_network(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
const char* address = ip_convert_to_string(&user->net.ipaddr); const char* address = ip_convert_to_string(&user->net.ipaddr);
@ -220,7 +220,7 @@ int check_network(struct hub_info* hub, struct user* user, struct adc_message* c
return 0; return 0;
} }
void strip_network(struct user* user, struct adc_message* cmd) void strip_network(struct hub_user* user, struct adc_message* cmd)
{ {
adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_IPV6_ADDR); adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_IPV6_ADDR);
adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_IPV6_UDP_PORT); adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_IPV6_UDP_PORT);
@ -274,7 +274,7 @@ static int nick_is_utf8(const char* nick)
} }
static int check_nick(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int check_nick(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
char* nick; char* nick;
char* tmp; char* tmp;
@ -322,10 +322,10 @@ static int check_nick(struct hub_info* hub, struct user* user, struct adc_messag
} }
static int check_logged_in(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int check_logged_in(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
struct user* lookup1 = uman_get_user_by_nick(hub, user->id.nick); struct hub_user* lookup1 = uman_get_user_by_nick(hub, user->id.nick);
struct user* lookup2 = uman_get_user_by_cid(hub, user->id.cid); struct hub_user* lookup2 = uman_get_user_by_cid(hub, user->id.cid);
if (lookup1 == user) if (lookup1 == user)
{ {
@ -363,7 +363,7 @@ static int check_logged_in(struct hub_info* hub, struct user* user, struct adc_m
* But this is not something we want to do, and is deprecated in the ADC specification. * But this is not something we want to do, and is deprecated in the ADC specification.
* One should rather look at capabilities/features. * One should rather look at capabilities/features.
*/ */
static int check_user_agent(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int check_user_agent(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
char* ua_encoded = 0; char* ua_encoded = 0;
char* ua = 0; char* ua = 0;
@ -384,7 +384,7 @@ static int check_user_agent(struct hub_info* hub, struct user* user, struct adc_
} }
static int check_acl(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int check_acl(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
if (acl_is_cid_banned(hub->acl, user->id.cid)) if (acl_is_cid_banned(hub->acl, user->id.cid))
{ {
@ -404,7 +404,7 @@ static int check_acl(struct hub_info* hub, struct user* user, struct adc_message
return 0; return 0;
} }
static int check_limits(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int check_limits(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
char* arg = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_SHARED_SIZE); char* arg = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_SHARED_SIZE);
if (arg) if (arg)
@ -530,10 +530,10 @@ static int check_limits(struct hub_info* hub, struct user* user, struct adc_mess
* If the hub is configured to allow only registered users and the user * If the hub is configured to allow only registered users and the user
* is not recognized this will return 1. * is not recognized this will return 1.
*/ */
static int set_credentials(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int set_credentials(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
int ret = 0; int ret = 0;
struct user_access_info* info = acl_get_access_info(hub->acl, user->id.nick); struct hub_user_access_info* info = acl_get_access_info(hub->acl, user->id.nick);
if (info) if (info)
{ {
@ -583,7 +583,7 @@ static int set_credentials(struct hub_info* hub, struct user* user, struct adc_m
static int check_is_hub_full(struct hub_info* hub, struct user* user) static int check_is_hub_full(struct hub_info* hub, struct hub_user* user)
{ {
/* /*
* If hub is full, don't let users in, but we still want to allow * If hub is full, don't let users in, but we still want to allow
@ -597,7 +597,7 @@ static int check_is_hub_full(struct hub_info* hub, struct user* user)
} }
static int check_registered_users_only(struct hub_info* hub, struct user* user) static int check_registered_users_only(struct hub_info* hub, struct hub_user* user)
{ {
if (hub->config->registered_users_only && !user_is_registered(user)) if (hub->config->registered_users_only && !user_is_registered(user))
{ {
@ -606,7 +606,7 @@ static int check_registered_users_only(struct hub_info* hub, struct user* user)
return 0; return 0;
} }
static int hub_handle_info_common(struct user* user, struct adc_message* cmd) static int hub_handle_info_common(struct hub_user* user, struct adc_message* cmd)
{ {
/* Remove server restricted flags */ /* Remove server restricted flags */
remove_server_restricted_flags(cmd); remove_server_restricted_flags(cmd);
@ -617,7 +617,7 @@ static int hub_handle_info_common(struct user* user, struct adc_message* cmd)
return 0; return 0;
} }
static int hub_handle_info_low_bandwidth(struct hub_info* hub, struct user* user, struct adc_message* cmd) static int hub_handle_info_low_bandwidth(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
if (hub->config->low_bandwidth_mode) if (hub->config->low_bandwidth_mode)
{ {
@ -645,7 +645,7 @@ static int hub_handle_info_low_bandwidth(struct hub_info* hub, struct user* user
return ret; \ return ret; \
} while(0) } while(0)
int hub_perform_login_checks(struct hub_info* hub, struct user* user, struct adc_message* cmd) int hub_perform_login_checks(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
/* Make syntax checks. */ /* Make syntax checks. */
INF_CHECK(check_required_login_flags, hub, user, cmd); INF_CHECK(check_required_login_flags, hub, user, cmd);
@ -664,7 +664,7 @@ int hub_perform_login_checks(struct hub_info* hub, struct user* user, struct adc
* *
* @return 0 if success, <0 if error, >0 if authentication needed. * @return 0 if success, <0 if error, >0 if authentication needed.
*/ */
int hub_handle_info_login(struct hub_info* hub, struct user* user, struct adc_message* cmd) int hub_handle_info_login(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{ {
int code = 0; int code = 0;
@ -711,7 +711,7 @@ int hub_handle_info_login(struct hub_info* hub, struct user* user, struct adc_me
* - CID/PID (valid, not taken, etc). * - CID/PID (valid, not taken, etc).
* - IP addresses (IPv4 and IPv6) * - IP addresses (IPv4 and IPv6)
*/ */
int hub_handle_info(struct hub_info* hub, struct user* user, const struct adc_message* cmd_unmodified) int hub_handle_info(struct hub_info* hub, struct hub_user* user, const struct adc_message* cmd_unmodified)
{ {
struct adc_message* cmd = adc_msg_copy(cmd_unmodified); struct adc_message* cmd = adc_msg_copy(cmd_unmodified);
if (!cmd) return -1; /* OOM */ if (!cmd) return -1; /* OOM */

View File

@ -47,7 +47,7 @@ enum nick_status
* *
* @return 0 on success, -1 on error * @return 0 on success, -1 on error
*/ */
extern int hub_handle_info(struct hub_info* hub, struct user* u, const struct adc_message* cmd); extern int hub_handle_info(struct hub_info* hub, struct hub_user* u, const struct adc_message* cmd);
#endif /* HAVE_UHUB_INF_PARSER_H */ #endif /* HAVE_UHUB_INF_PARSER_H */

View File

@ -24,7 +24,7 @@
extern struct hub_info* g_hub; extern struct hub_info* g_hub;
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
void debug_sendq_send(struct user* user, int sent, int total) void debug_sendq_send(struct hub_user* user, int sent, int total)
{ {
LOG_DUMP("SEND: sd=%d, %d/%d bytes\n", user->net.sd, sent, total); LOG_DUMP("SEND: sd=%d, %d/%d bytes\n", user->net.sd, sent, total);
if (sent == -1) if (sent == -1)
@ -34,7 +34,7 @@ void debug_sendq_send(struct user* user, int sent, int total)
} }
} }
void debug_sendq_recv(struct user* user, int received, int max, const char* buffer) void debug_sendq_recv(struct hub_user* user, int received, int max, const char* buffer)
{ {
LOG_DUMP("RECV: %d/%d bytes\n", received, (int) max); LOG_DUMP("RECV: %d/%d bytes\n", received, (int) max);
if (received == -1) if (received == -1)
@ -54,7 +54,7 @@ void debug_sendq_recv(struct user* user, int received, int max, const char* buff
int net_user_send(void* ptr, const void* buf, size_t len) int net_user_send(void* ptr, const void* buf, size_t len)
{ {
struct user* user = (struct user*) ptr; struct hub_user* user = (struct hub_user*) ptr;
int ret = net_send(user->net.sd, buf, len, UHUB_SEND_SIGNAL); int ret = net_send(user->net.sd, buf, len, UHUB_SEND_SIGNAL);
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
debug_sendq_send(user, ret, len); debug_sendq_send(user, ret, len);
@ -78,7 +78,7 @@ int net_user_send(void* ptr, const void* buf, size_t len)
#ifdef SSL_SUPPORT #ifdef SSL_SUPPORT
int net_user_send_ssl(void* ptr, const void* buf, size_t len) int net_user_send_ssl(void* ptr, const void* buf, size_t len)
{ {
struct user* user = (struct user*) ptr; struct hub_user* user = (struct hub_user*) ptr;
int ret = SSL_write(user->net.ssl, buf, (int) len); int ret = SSL_write(user->net.ssl, buf, (int) len);
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
debug_sendq_send(user, ret, len); debug_sendq_send(user, ret, len);
@ -102,7 +102,7 @@ int net_user_send_ssl(void* ptr, const void* buf, size_t len)
int net_user_recv(void* ptr, void* buf, size_t len) int net_user_recv(void* ptr, void* buf, size_t len)
{ {
struct user* user = (struct user*) ptr; struct hub_user* user = (struct hub_user*) ptr;
int ret = net_recv(user->net.sd, buf, len, 0); int ret = net_recv(user->net.sd, buf, len, 0);
if (ret > 0) if (ret > 0)
{ {
@ -118,7 +118,7 @@ int net_user_recv(void* ptr, void* buf, size_t len)
#ifdef SSL_SUPPORT #ifdef SSL_SUPPORT
int net_user_recv_ssl(void* ptr, void* buf, size_t len) int net_user_recv_ssl(void* ptr, void* buf, size_t len)
{ {
struct user* user = (struct user*) ptr; struct hub_user* user = (struct hub_user*) ptr;
int ret = SSL_read(user->net.ssl, buf, len); int ret = SSL_read(user->net.ssl, buf, len);
if (ret > 0) if (ret > 0)
{ {
@ -131,7 +131,7 @@ int net_user_recv_ssl(void* ptr, void* buf, size_t len)
} }
#endif #endif
int handle_net_read(struct user* user) int handle_net_read(struct hub_user* user)
{ {
static char buf[MAX_RECV_BUF]; static char buf[MAX_RECV_BUF];
struct hub_recvq* q = user->net.recv_queue; struct hub_recvq* q = user->net.recv_queue;
@ -210,7 +210,7 @@ int handle_net_read(struct user* user)
return 0; return 0;
} }
int handle_net_write(struct user* user) int handle_net_write(struct hub_user* user)
{ {
while (hub_sendq_get_bytes(user->net.send_queue)) while (hub_sendq_get_bytes(user->net.send_queue))
{ {
@ -235,7 +235,7 @@ int handle_net_write(struct user* user)
void net_event(int fd, short ev, void *arg) void net_event(int fd, short ev, void *arg)
{ {
struct user* user = (struct user*) arg; struct hub_user* user = (struct hub_user*) arg;
int flag_close = 0; int flag_close = 0;
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
@ -272,7 +272,7 @@ void net_event(int fd, short ev, void *arg)
} }
static void prepare_user_net(struct hub_info* hub, struct user* user) static void prepare_user_net(struct hub_info* hub, struct hub_user* user)
{ {
int fd = user->net.sd; int fd = user->net.sd;
@ -300,7 +300,7 @@ static void prepare_user_net(struct hub_info* hub, struct user* user)
void net_on_accept(int server_fd, short ev, void *arg) void net_on_accept(int server_fd, short ev, void *arg)
{ {
struct hub_info* hub = (struct hub_info*) arg; struct hub_info* hub = (struct hub_info*) arg;
struct user* user = 0; struct hub_user* user = 0;
struct ip_addr_encap ipaddr; struct ip_addr_encap ipaddr;
const char* addr; const char* addr;

View File

@ -27,8 +27,8 @@ extern void net_on_accept(int fd, short ev, void *arg);
extern void net_event(int fd, short ev, void *arg); extern void net_event(int fd, short ev, void *arg);
extern int handle_net_read(struct user* user); extern int handle_net_read(struct hub_user* user);
extern int handle_net_write(struct user* user); extern int handle_net_write(struct hub_user* user);
#endif /* HAVE_UHUB_NET_EVENT_H */ #endif /* HAVE_UHUB_NET_EVENT_H */

View File

@ -19,9 +19,9 @@
#include "uhub.h" #include "uhub.h"
int route_message(struct hub_info* hub, struct user* u, struct adc_message* msg) int route_message(struct hub_info* hub, struct hub_user* u, struct adc_message* msg)
{ {
struct user* target = NULL; struct hub_user* target = NULL;
switch (msg->cache[0]) switch (msg->cache[0])
{ {
@ -75,7 +75,7 @@ static inline size_t get_max_send_queue_soft(struct hub_info* hub)
* -1 if send queue is overflowed * -1 if send queue is overflowed
* 0 if soft send queue is overflowed (not implemented at the moment) * 0 if soft send queue is overflowed (not implemented at the moment)
*/ */
static inline int check_send_queue(struct hub_info* hub, struct user* user, struct adc_message* msg) static inline int check_send_queue(struct hub_info* hub, struct hub_user* user, struct adc_message* msg)
{ {
if (user_flag_get(user, flag_user_list)) if (user_flag_get(user, flag_user_list))
return 1; return 1;
@ -89,7 +89,7 @@ static inline int check_send_queue(struct hub_info* hub, struct user* user, stru
return 1; return 1;
} }
int route_to_user(struct hub_info* hub, struct user* user, struct adc_message* msg) int route_to_user(struct hub_info* hub, struct hub_user* user, struct adc_message* msg)
{ {
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
char* data = strndup(msg->cache, msg->length-1); char* data = strndup(msg->cache, msg->length-1);
@ -115,7 +115,7 @@ int route_to_user(struct hub_info* hub, struct user* user, struct adc_message* m
return 1; return 1;
} }
int route_flush_pipeline(struct hub_info* hub, struct user* u) int route_flush_pipeline(struct hub_info* hub, struct hub_user* u)
{ {
if (hub_sendq_is_empty(u->net.send_queue)) if (hub_sendq_is_empty(u->net.send_queue))
return 0; return 0;
@ -128,11 +128,11 @@ int route_flush_pipeline(struct hub_info* hub, struct user* u)
int route_to_all(struct hub_info* hub, struct adc_message* command) /* iterate users */ 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 hub_user* user = (struct hub_user*) list_get_first(hub->users->list);
while (user) while (user)
{ {
route_to_user(hub, user, command); route_to_user(hub, user, command);
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
} }
return 0; return 0;
@ -143,7 +143,7 @@ int route_to_subscribers(struct hub_info* hub, struct adc_message* command) /* i
int do_send; int do_send;
char* tmp; char* tmp;
struct user* user = (struct user*) list_get_first(hub->users->list); struct hub_user* user = (struct hub_user*) list_get_first(hub->users->list);
while (user) while (user)
{ {
if (user->feature_cast) if (user->feature_cast)
@ -162,7 +162,7 @@ int route_to_subscribers(struct hub_info* hub, struct adc_message* command) /* i
} }
if (!do_send) { if (!do_send) {
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
continue; continue;
} }
@ -182,13 +182,13 @@ int route_to_subscribers(struct hub_info* hub, struct adc_message* command) /* i
route_to_user(hub, user, command); route_to_user(hub, user, command);
} }
} }
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
} }
return 0; return 0;
} }
int route_info_message(struct hub_info* hub, struct user* u) int route_info_message(struct hub_info* hub, struct hub_user* u)
{ {
if (!user_is_nat_override(u)) if (!user_is_nat_override(u))
{ {
@ -198,12 +198,12 @@ int route_info_message(struct hub_info* hub, struct user* u)
{ {
struct adc_message* cmd = adc_msg_copy(u->info); struct adc_message* cmd = adc_msg_copy(u->info);
const char* address = ip_convert_to_string(&u->net.ipaddr); const char* address = ip_convert_to_string(&u->net.ipaddr);
struct user* user = 0; struct hub_user* user = 0;
adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_IPV4_ADDR); adc_msg_remove_named_argument(cmd, ADC_INF_FLAG_IPV4_ADDR);
adc_msg_add_named_argument(cmd, ADC_INF_FLAG_IPV4_ADDR, address); adc_msg_add_named_argument(cmd, ADC_INF_FLAG_IPV4_ADDR, address);
user = (struct user*) list_get_first(hub->users->list); user = (struct hub_user*) list_get_first(hub->users->list);
while (user) while (user)
{ {
if (user_is_nat_override(user)) if (user_is_nat_override(user))
@ -211,7 +211,7 @@ int route_info_message(struct hub_info* hub, struct user* u)
else else
route_to_user(hub, user, u->info); route_to_user(hub, user, u->info);
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
} }
adc_msg_free(cmd); adc_msg_free(cmd);
} }

View File

@ -23,17 +23,17 @@
/** /**
* Route a message by sending it to it's final destination. * Route a message by sending it to it's final destination.
*/ */
extern int route_message(struct hub_info* hub, struct user* u, struct adc_message* msg); extern int route_message(struct hub_info* hub, struct hub_user* u, struct adc_message* msg);
/** /**
* Send queued messages. * Send queued messages.
*/ */
extern int route_flush_pipeline(struct hub_info* hub, struct user* u); extern int route_flush_pipeline(struct hub_info* hub, struct hub_user* u);
/** /**
* Transmit message directly to one user. * Transmit message directly to one user.
*/ */
extern int route_to_user(struct hub_info* hub, struct user*, struct adc_message* command); extern int route_to_user(struct hub_info* hub, struct hub_user*, struct adc_message* command);
/** /**
* Broadcast message to all users. * Broadcast message to all users.
@ -50,7 +50,7 @@ extern int route_to_subscribers(struct hub_info* hub, struct adc_message* comman
* This will ensure the correct IP is seen by other users * This will ensure the correct IP is seen by other users
* in case nat override is in use. * in case nat override is in use.
*/ */
extern int route_info_message(struct hub_info* hub, struct user* user); extern int route_info_message(struct hub_info* hub, struct hub_user* user);
#endif /* HAVE_UHUB_ROUTE_H */ #endif /* HAVE_UHUB_ROUTE_H */

View File

@ -20,7 +20,7 @@
#include "uhub.h" #include "uhub.h"
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
static const char* user_log_str(struct user* user) static const char* user_log_str(struct hub_user* user)
{ {
static char buf[128]; static char buf[128];
if (user) if (user)
@ -35,13 +35,13 @@ static const char* user_log_str(struct user* user)
} }
#endif #endif
struct user* user_create(struct hub_info* hub, int sd) struct hub_user* user_create(struct hub_info* hub, int sd)
{ {
struct user* user = NULL; struct hub_user* user = NULL;
LOG_TRACE("user_create(), hub=%p, sd=%d", hub, sd); LOG_TRACE("user_create(), hub=%p, sd=%d", hub, sd);
user = (struct user*) hub_malloc_zero(sizeof(struct user)); user = (struct hub_user*) hub_malloc_zero(sizeof(struct hub_user));
if (user == NULL) if (user == NULL)
return NULL; /* OOM */ return NULL; /* OOM */
@ -66,7 +66,7 @@ struct user* user_create(struct hub_info* hub, int sd)
} }
void user_destroy(struct user* user) void user_destroy(struct hub_user* user)
{ {
LOG_TRACE("user_destroy(), user=%p", user); LOG_TRACE("user_destroy(), user=%p", user);
@ -82,7 +82,7 @@ void user_destroy(struct user* user)
hub_free(user); hub_free(user);
} }
void user_set_state(struct user* user, enum user_state state) void user_set_state(struct hub_user* user, enum user_state state)
{ {
if ((user->state == state_cleanup && state != state_disconnected) || (user->state == state_disconnected)) if ((user->state == state_cleanup && state != state_disconnected) || (user->state == state_disconnected))
{ {
@ -92,13 +92,13 @@ void user_set_state(struct user* user, enum user_state state)
user->state = state; user->state = state;
} }
void user_set_info(struct user* user, struct adc_message* cmd) void user_set_info(struct hub_user* user, struct adc_message* cmd)
{ {
adc_msg_free(user->info); adc_msg_free(user->info);
user->info = adc_msg_incref(cmd); user->info = adc_msg_incref(cmd);
} }
void user_update_info(struct user* u, struct adc_message* cmd) void user_update_info(struct hub_user* u, struct adc_message* cmd)
{ {
char prefix[2]; char prefix[2];
char* argument; char* argument;
@ -178,50 +178,50 @@ static int convert_support_fourcc(int fourcc)
} }
} }
void user_support_add(struct user* user, int fourcc) void user_support_add(struct hub_user* user, int fourcc)
{ {
int feature_mask = convert_support_fourcc(fourcc); int feature_mask = convert_support_fourcc(fourcc);
user->flags |= feature_mask; user->flags |= feature_mask;
} }
int user_flag_get(struct user* user, enum user_flags flag) int user_flag_get(struct hub_user* user, enum user_flags flag)
{ {
return user->flags & flag; return user->flags & flag;
} }
void user_flag_set(struct user* user, enum user_flags flag) void user_flag_set(struct hub_user* user, enum user_flags flag)
{ {
user->flags |= flag; user->flags |= flag;
} }
void user_flag_unset(struct user* user, enum user_flags flag) void user_flag_unset(struct hub_user* user, enum user_flags flag)
{ {
user->flags &= ~flag; user->flags &= ~flag;
} }
void user_set_nat_override(struct user* user) void user_set_nat_override(struct hub_user* user)
{ {
user_flag_set(user, flag_nat); user_flag_set(user, flag_nat);
} }
int user_is_nat_override(struct user* user) int user_is_nat_override(struct hub_user* user)
{ {
return user_flag_get(user, flag_nat); return user_flag_get(user, flag_nat);
} }
void user_support_remove(struct user* user, int fourcc) void user_support_remove(struct hub_user* user, int fourcc)
{ {
int feature_mask = convert_support_fourcc(fourcc); int feature_mask = convert_support_fourcc(fourcc);
user->flags &= ~feature_mask; user->flags &= ~feature_mask;
} }
void user_disconnect(struct user* user, int reason) void user_disconnect(struct hub_user* user, int reason)
{ {
} }
int user_have_feature_cast_support(struct user* user, char feature[4]) int user_have_feature_cast_support(struct hub_user* user, char feature[4])
{ {
char* tmp = list_get_first(user->feature_cast); char* tmp = list_get_first(user->feature_cast);
while (tmp) while (tmp)
@ -235,7 +235,7 @@ int user_have_feature_cast_support(struct user* user, char feature[4])
return 0; return 0;
} }
int user_set_feature_cast_support(struct user* u, char feature[4]) int user_set_feature_cast_support(struct hub_user* u, char feature[4])
{ {
if (!u->feature_cast) if (!u->feature_cast)
{ {
@ -251,7 +251,7 @@ int user_set_feature_cast_support(struct user* u, char feature[4])
return 1; return 1;
} }
void user_clear_feature_cast_support(struct user* u) void user_clear_feature_cast_support(struct hub_user* u)
{ {
if (u->feature_cast) if (u->feature_cast)
{ {
@ -261,35 +261,35 @@ void user_clear_feature_cast_support(struct user* u)
} }
} }
int user_is_logged_in(struct user* user) int user_is_logged_in(struct hub_user* user)
{ {
if (user->state == state_normal) if (user->state == state_normal)
return 1; return 1;
return 0; return 0;
} }
int user_is_connecting(struct user* user) int user_is_connecting(struct hub_user* user)
{ {
if (user->state == state_protocol || user->state == state_identify || user->state == state_verify) if (user->state == state_protocol || user->state == state_identify || user->state == state_verify)
return 1; return 1;
return 0; return 0;
} }
int user_is_protocol_negotiating(struct user* user) int user_is_protocol_negotiating(struct hub_user* user)
{ {
if (user->state == state_protocol) if (user->state == state_protocol)
return 1; return 1;
return 0; return 0;
} }
int user_is_disconnecting(struct user* user) int user_is_disconnecting(struct hub_user* user)
{ {
if (user->state == state_cleanup || user->state == state_disconnected) if (user->state == state_cleanup || user->state == state_disconnected)
return 1; return 1;
return 0; return 0;
} }
int user_is_protected(struct user* user) int user_is_protected(struct hub_user* user)
{ {
switch (user->credentials) switch (user->credentials)
{ {
@ -310,7 +310,7 @@ int user_is_protected(struct user* user)
* Only registered users will be let in if the hub is configured for registered * Only registered users will be let in if the hub is configured for registered
* users only. * users only.
*/ */
int user_is_registered(struct user* user) int user_is_registered(struct hub_user* user)
{ {
switch (user->credentials) switch (user->credentials)
{ {
@ -327,7 +327,7 @@ int user_is_registered(struct user* user)
return 0; return 0;
} }
void user_net_io_want_write(struct user* user) void user_net_io_want_write(struct hub_user* user)
{ {
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
LOG_TRACE("user_net_io_want_write: %s (pending: %d)", user_log_str(user), event_pending(&user->net.event, EV_READ | EV_WRITE, 0)); LOG_TRACE("user_net_io_want_write: %s (pending: %d)", user_log_str(user), event_pending(&user->net.event, EV_READ | EV_WRITE, 0));
@ -339,7 +339,7 @@ void user_net_io_want_write(struct user* user)
event_add(&user->net.event, 0); event_add(&user->net.event, 0);
} }
void user_net_io_want_read(struct user* user) void user_net_io_want_read(struct hub_user* user)
{ {
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
LOG_TRACE("user_net_io_want_read: %s (pending: %d)", user_log_str(user), event_pending(&user->net.event, EV_READ | EV_WRITE, 0)); LOG_TRACE("user_net_io_want_read: %s (pending: %d)", user_log_str(user), event_pending(&user->net.event, EV_READ | EV_WRITE, 0));
@ -351,17 +351,17 @@ void user_net_io_want_read(struct user* user)
event_add(&user->net.event, 0); event_add(&user->net.event, 0);
} }
void user_reset_last_write(struct user* user) void user_reset_last_write(struct hub_user* user)
{ {
user->net.tm_last_write = time(NULL); user->net.tm_last_write = time(NULL);
} }
void user_reset_last_read(struct user* user) void user_reset_last_read(struct hub_user* user)
{ {
user->net.tm_last_read = time(NULL); user->net.tm_last_read = time(NULL);
} }
void user_set_timeout(struct user* user, int seconds) void user_set_timeout(struct hub_user* user, int seconds)
{ {
#ifdef DEBUG_SENDQ #ifdef DEBUG_SENDQ
LOG_TRACE("user_set_timeout to %d seconds: %s", seconds, user_log_str(user)); LOG_TRACE("user_set_timeout to %d seconds: %s", seconds, user_log_str(user));

View File

@ -70,7 +70,7 @@ enum user_quit_reason
quit_ghost_timeout = 11, /** The user is a ghost, and trying to login from another connection */ quit_ghost_timeout = 11, /** The user is a ghost, and trying to login from another connection */
}; };
struct user_info struct hub_user_info
{ {
sid_t sid; /** session ID */ sid_t sid; /** session ID */
char cid[MAX_CID_LEN+1]; /** global client ID */ char cid[MAX_CID_LEN+1]; /** global client ID */
@ -82,7 +82,7 @@ struct user_info
* as the number of bytes and files shared, and the number of hubs the * as the number of bytes and files shared, and the number of hubs the
* user is connected to, etc. * user is connected to, etc.
*/ */
struct user_limits struct hub_user_limits
{ {
uint64_t shared_size; /** Shared size in bytes */ uint64_t shared_size; /** Shared size in bytes */
size_t shared_files; /** The number of shared files */ size_t shared_files; /** The number of shared files */
@ -93,7 +93,7 @@ struct user_limits
size_t hub_count_total; /** The number of hubs connected to in total */ size_t hub_count_total; /** The number of hubs connected to in total */
}; };
struct user_net_io struct hub_user_net_io
{ {
int sd; /** socket descriptor */ int sd; /** socket descriptor */
struct event event; /** libevent struct for read/write events */ struct event event; /** libevent struct for read/write events */
@ -111,18 +111,18 @@ struct user_net_io
#endif /* SSL_SUPPORT */ #endif /* SSL_SUPPORT */
}; };
struct user struct hub_user
{ {
struct user_net_io net; /** Network information data */ struct hub_user_net_io net; /** Network information data */
enum user_state state; /** see enum user_state */ enum user_state state; /** see enum user_state */
enum user_credentials credentials; /** see enum user_credentials */ enum user_credentials credentials; /** see enum user_credentials */
struct user_info id; /** Contains nick name and CID */ struct hub_user_info id; /** Contains nick name and CID */
int flags; /** see enum user_features */ int flags; /** see enum user_features */
char user_agent[MAX_UA_LEN+1];/** User agent string */ char user_agent[MAX_UA_LEN+1];/** User agent string */
struct linked_list* feature_cast; /** Features supported by feature cast */ struct linked_list* feature_cast; /** Features supported by feature cast */
struct adc_message* info; /** ADC 'INF' message (broadcasted to everyone joining the hub) */ struct adc_message* info; /** ADC 'INF' message (broadcasted to everyone joining the hub) */
struct hub_info* hub; /** The hub instance this user belong to */ struct hub_info* hub; /** The hub instance this user belong to */
struct user_limits limits; /** Data used for limitation */ struct hub_user_limits limits; /** Data used for limitation */
int quit_reason; /** Quit reason (see user_quit_reason) */ int quit_reason; /** Quit reason (see user_quit_reason) */
}; };
@ -138,14 +138,14 @@ struct user
* @param sd socket descriptor associated with the user * @param sd socket descriptor associated with the user
* @return User object or NULL if not enough memory is available. * @return User object or NULL if not enough memory is available.
*/ */
extern struct user* user_create(struct hub_info* hub, int sd); extern struct hub_user* user_create(struct hub_info* hub, int sd);
/** /**
* Delete a user. * Delete a user.
* *
* !WRONG! If the user is logged in a quit message is issued. * !WRONG! If the user is logged in a quit message is issued.
*/ */
extern void user_destroy(struct user* user); extern void user_destroy(struct hub_user* user);
/** /**
* Disconnect a user. * Disconnect a user.
@ -161,7 +161,7 @@ extern void user_destroy(struct user* user);
* @param user User to disconnect * @param user User to disconnect
* @param reason See enum user_quit_reason * @param reason See enum user_quit_reason
*/ */
extern void user_disconnect(struct user* user, int reason); extern void user_disconnect(struct hub_user* user, int reason);
/** /**
* This associates a INF message to the user. * This associates a INF message to the user.
@ -170,53 +170,53 @@ extern void user_disconnect(struct user* user, int reason);
* *
* @param info new inf message (can be NULL) * @param info new inf message (can be NULL)
*/ */
extern void user_set_info(struct user* user, struct adc_message* info); extern void user_set_info(struct hub_user* user, struct adc_message* info);
/** /**
* Update a user's INF message. * Update a user's INF message.
* Will parse replace all ellements in the user's inf message with * Will parse replace all ellements in the user's inf message with
* the parameters from the cmd (merge operation). * the parameters from the cmd (merge operation).
*/ */
extern void user_update_info(struct user* user, struct adc_message* cmd); extern void user_update_info(struct hub_user* user, struct adc_message* cmd);
/** /**
* Specify a user's state. * Specify a user's state.
* NOTE: DON'T, unless you know what you are doing. * 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 hub_user* user, enum user_state);
/** /**
* Returns 1 if the user is in state state_normal, or 0 otherwise. * 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 hub_user* user);
/** /**
* Returns 1 if the user is in state_protocol. * Returns 1 if the user is in state_protocol.
* Returns 0 otherwise. * Returns 0 otherwise.
*/ */
extern int user_is_protocol_negotiating(struct user* user); extern int user_is_protocol_negotiating(struct hub_user* user);
/** /**
* Returns 1 if the user is in state_protocol, state_identify or state_verify. * Returns 1 if the user is in state_protocol, state_identify or state_verify.
* Returns 0 otherwise. * Returns 0 otherwise.
*/ */
extern int user_is_connecting(struct user* user); extern int user_is_connecting(struct hub_user* user);
/** /**
* Returns 1 only if the user is in state_cleanup or state_disconnected. * 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 hub_user* user);
/** /**
* Returns 1 if a user is protected, which includes users * Returns 1 if a user is protected, which includes users
* having any form of elevated privileges. * having any form of elevated privileges.
*/ */
extern int user_is_protected(struct user* user); extern int user_is_protected(struct hub_user* user);
/** /**
* Returns 1 if a user is registered, with or without privileges. * Returns 1 if a user is registered, with or without privileges.
*/ */
extern int user_is_registered(struct user* user); extern int user_is_registered(struct hub_user* user);
/** /**
* User supports the protocol extension as given in fourcc. * User supports the protocol extension as given in fourcc.
@ -226,7 +226,7 @@ extern int user_is_registered(struct user* user);
* *
* @see enum user_flags * @see enum user_flags
*/ */
extern void user_support_add(struct user* user, int fourcc); extern void user_support_add(struct hub_user* user, int fourcc);
/** /**
* User no longer supports the protocol extension as given in fourcc. * User no longer supports the protocol extension as given in fourcc.
@ -234,26 +234,26 @@ extern void user_support_add(struct user* user, int fourcc);
* the hub. * the hub.
* @see enum user_flags * @see enum user_flags
*/ */
extern void user_support_remove(struct user* user, int fourcc); extern void user_support_remove(struct hub_user* user, int fourcc);
/** /**
* Sets the nat override flag for a user, this allows users on the same * 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 * subnet as a natted hub to spoof their IP in order to use active mode
* on a natted hub. * on a natted hub.
*/ */
extern void user_set_nat_override(struct user* user); extern void user_set_nat_override(struct hub_user* user);
extern int user_is_nat_override(struct user* user); extern int user_is_nat_override(struct hub_user* user);
/** /**
* Set a flag. @see enum user_flags * Set a flag. @see enum user_flags
*/ */
extern void user_flag_set(struct user* user, enum user_flags flag); extern void user_flag_set(struct hub_user* user, enum user_flags flag);
extern void user_flag_unset(struct user* user, enum user_flags flag); extern void user_flag_unset(struct hub_user* user, enum user_flags flag);
/** /**
* Get a flag. @see enum user_flags * 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 hub_user* user, enum user_flags flag);
/** /**
* Check if a user supports 'feature' for feature casting (basis for 'Fxxx' messages) * Check if a user supports 'feature' for feature casting (basis for 'Fxxx' messages)
@ -263,7 +263,7 @@ extern int user_flag_get(struct user* user, enum user_flags flag);
* @param feature a feature to lookup (example: 'TCP4' or 'UDP4') * @param feature a feature to lookup (example: 'TCP4' or 'UDP4')
* @return 1 if 'feature' supported, or 0 otherwise * @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 hub_user* user, char feature[4]);
/** /**
* Set feature cast support for feature. * Set feature cast support for feature.
@ -271,38 +271,38 @@ extern int user_have_feature_cast_support(struct user* user, char feature[4]);
* @param feature a feature to lookup (example: 'TCP4' or 'UDP4') * @param feature a feature to lookup (example: 'TCP4' or 'UDP4')
* @return 1 if 'feature' supported, or 0 otherwise * @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 hub_user* u, char feature[4]);
/** /**
* Remove all feature cast support features. * Remove all feature cast support features.
*/ */
extern void user_clear_feature_cast_support(struct user* u); extern void user_clear_feature_cast_support(struct hub_user* u);
/** /**
* Mark the user with a want-write flag, meaning it should poll for writability. * Mark the user with a want-write flag, meaning it should poll for writability.
*/ */
extern void user_net_io_want_write(struct user* user); extern void user_net_io_want_write(struct hub_user* user);
/** /**
* Mark the user with a want read flag, meaning it should poll for readability. * Mark the user with a want read flag, meaning it should poll for readability.
*/ */
extern void user_net_io_want_read(struct user* user); extern void user_net_io_want_read(struct hub_user* user);
/** /**
* Set timeout for connetion. * Set timeout for connetion.
* @param seconds the number of seconds into the future. * @param seconds the number of seconds into the future.
*/ */
extern void user_set_timeout(struct user* user, int seconds); extern void user_set_timeout(struct hub_user* user, int seconds);
/** /**
* Reset the last-write timer. * Reset the last-write timer.
*/ */
extern void user_reset_last_write(struct user* user); extern void user_reset_last_write(struct hub_user* user);
/** /**
* Reset the last-write timer. * Reset the last-write timer.
*/ */
extern void user_reset_last_read(struct user* user); extern void user_reset_last_read(struct hub_user* user);
#endif /* HAVE_UHUB_USER_H */ #endif /* HAVE_UHUB_USER_H */

View File

@ -29,7 +29,7 @@ static void clear_user_list_callback(void* ptr)
{ {
if (ptr) if (ptr)
{ {
struct user* u = (struct user*) ptr; struct hub_user* u = (struct hub_user*) ptr;
/* Mark the user as already being disconnected. /* Mark the user as already being disconnected.
* This prevents the hub from trying to send * This prevents the hub from trying to send
@ -85,14 +85,14 @@ static void timer_statistics(int fd, short ev, void *arg)
int uman_init(struct hub_info* hub) int uman_init(struct hub_info* hub)
{ {
struct user_manager* users = NULL; struct hub_user_manager* users = NULL;
#ifdef USERMANAGER_TIMER #ifdef USERMANAGER_TIMER
struct timeval timeout = { TIMEOUT_STATS, 0 }; struct timeval timeout = { TIMEOUT_STATS, 0 };
#endif #endif
if (!hub) if (!hub)
return -1; return -1;
users = (struct user_manager*) hub_malloc_zero(sizeof(struct user_manager)); users = (struct hub_user_manager*) hub_malloc_zero(sizeof(struct hub_user_manager));
if (!users) if (!users)
return -1; return -1;
@ -140,7 +140,7 @@ int uman_shutdown(struct hub_info* hub)
} }
int uman_add(struct hub_info* hub, struct user* user) int uman_add(struct hub_info* hub, struct hub_user* user)
{ {
if (!hub || !user) if (!hub || !user)
return -1; return -1;
@ -159,7 +159,7 @@ int uman_add(struct hub_info* hub, struct user* user)
return 0; return 0;
} }
int uman_remove(struct hub_info* hub, struct user* user) int uman_remove(struct hub_info* hub, struct hub_user* user)
{ {
if (!hub || !user) if (!hub || !user)
return -1; return -1;
@ -184,50 +184,50 @@ int uman_remove(struct hub_info* hub, struct user* user)
} }
struct user* uman_get_user_by_sid(struct hub_info* hub, sid_t sid) struct hub_user* uman_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 hub_user* user = (struct hub_user*) list_get_first(hub->users->list); /* iterate users */
while (user) while (user)
{ {
if (user->id.sid == sid) if (user->id.sid == sid)
return user; return user;
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
} }
return NULL; return NULL;
} }
struct user* uman_get_user_by_cid(struct hub_info* hub, const char* cid) struct hub_user* uman_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 hub_user* user = (struct hub_user*) list_get_first(hub->users->list); /* iterate users - only on incoming INF msg */
while (user) while (user)
{ {
if (strcmp(user->id.cid, cid) == 0) if (strcmp(user->id.cid, cid) == 0)
return user; return user;
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
} }
return NULL; return NULL;
} }
struct user* uman_get_user_by_nick(struct hub_info* hub, const char* nick) struct hub_user* uman_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 hub_user* user = (struct hub_user*) list_get_first(hub->users->list); /* iterate users - only on incoming INF msg */
while (user) while (user)
{ {
if (strcmp(user->id.nick, nick) == 0) if (strcmp(user->id.nick, nick) == 0)
return user; return user;
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
} }
return NULL; return NULL;
} }
int uman_send_user_list(struct hub_info* hub, struct user* target) int uman_send_user_list(struct hub_info* hub, struct hub_user* target)
{ {
int ret = 1; int ret = 1;
user_flag_set(target, flag_user_list); user_flag_set(target, flag_user_list);
struct user* user = (struct user*) list_get_first(hub->users->list); /* iterate users - only on INF or PAS msg */ struct hub_user* user = (struct hub_user*) list_get_first(hub->users->list); /* iterate users - only on INF or PAS msg */
while (user) while (user)
{ {
if (user_is_logged_in(user)) if (user_is_logged_in(user))
@ -236,7 +236,7 @@ int uman_send_user_list(struct hub_info* hub, struct user* target)
if (!ret) if (!ret)
break; break;
} }
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
} }
#if 0 #if 0
@ -250,7 +250,7 @@ int uman_send_user_list(struct hub_info* hub, struct user* target)
} }
void uman_send_quit_message(struct hub_info* hub, struct user* leaving) void uman_send_quit_message(struct hub_info* hub, struct hub_user* leaving)
{ {
struct adc_message* command = adc_msg_construct(ADC_CMD_IQUI, 6); struct adc_message* command = adc_msg_construct(ADC_CMD_IQUI, 6);
adc_msg_add_argument(command, (const char*) sid_to_string(leaving->id.sid)); adc_msg_add_argument(command, (const char*) sid_to_string(leaving->id.sid));
@ -268,8 +268,8 @@ void uman_send_quit_message(struct hub_info* hub, struct user* leaving)
sid_t uman_get_free_sid(struct hub_info* hub) sid_t uman_get_free_sid(struct hub_info* hub)
{ {
#if 0 #if 0
struct user* user; struct hub_user* user;
user = (struct user*) list_get_first(hub->users->list); /* iterate normal users */ user = (struct hub_user*) list_get_first(hub->users->list); /* iterate normal users */
while (user) while (user)
{ {
if (user->sid == hub->users->free_sid) if (user->sid == hub->users->free_sid)
@ -278,7 +278,7 @@ sid_t uman_get_free_sid(struct hub_info* hub)
if (hub->users->free_sid >= SID_MAX) hub->users->free_sid = 1; if (hub->users->free_sid >= SID_MAX) hub->users->free_sid = 1;
break; break;
} }
user = (struct user*) list_get_next(hub->users->list); user = (struct hub_user*) list_get_next(hub->users->list);
} }
#endif #endif
return hub->users->free_sid++; return hub->users->free_sid++;

View File

@ -20,7 +20,7 @@
#ifndef HAVE_UHUB_USER_MANAGER_H #ifndef HAVE_UHUB_USER_MANAGER_H
#define HAVE_UHUB_USER_MANAGER_H #define HAVE_UHUB_USER_MANAGER_H
struct user_manager struct hub_user_manager
{ {
size_t count; /**<< "Number of all fully connected and logged in users" */ size_t count; /**<< "Number of all fully connected and logged in users" */
size_t count_peak; /**<< "Peak number of users" */ size_t count_peak; /**<< "Peak number of users" */
@ -56,7 +56,7 @@ extern void uman_print_stats(struct hub_info* hub);
* @param hub The hub to add the user to * @param hub The hub to add the user to
* @param user The user to be added to the hub. * @param user The user to be added to the hub.
*/ */
extern int uman_add(struct hub_info* hub, struct user* user); extern int uman_add(struct hub_info* hub, struct hub_user* user);
/** /**
* Remove a user from the user manager. * Remove a user from the user manager.
@ -65,7 +65,7 @@ extern int uman_add(struct hub_info* hub, struct user* user);
* *
* @return 0 if successfully removed, -1 if error. * @return 0 if successfully removed, -1 if error.
*/ */
extern int uman_remove(struct hub_info* hub, struct user* user); extern int uman_remove(struct hub_info* hub, struct hub_user* user);
/** /**
* Returns and allocates an unused session ID (SID). * Returns and allocates an unused session ID (SID).
@ -85,19 +85,19 @@ extern sid_t uman_get_free_sid(struct hub_info* hub);
* *
* @return a user if found, or NULL if not found * @return a user if found, or NULL if not found
*/ */
extern struct user* uman_get_user_by_sid(struct hub_info* hub, sid_t sid); extern struct hub_user* uman_get_user_by_sid(struct hub_info* hub, sid_t sid);
/** /**
* Lookup a user based on the client ID (CID). * Lookup a user based on the client ID (CID).
* @return a user if found, or NULL if not found * @return a user if found, or NULL if not found
*/ */
extern struct user* uman_get_user_by_cid(struct hub_info* hub, const char* cid); extern struct hub_user* uman_get_user_by_cid(struct hub_info* hub, const char* cid);
/** /**
* Lookup a user based on the nick name. * Lookup a user based on the nick name.
* @return a user if found, or NULL if not found * @return a user if found, or NULL if not found
*/ */
extern struct user* uman_get_user_by_nick(struct hub_info* hub, const char* nick); extern struct hub_user* uman_get_user_by_nick(struct hub_info* hub, const char* nick);
/** /**
* Send the user list of connected clients to 'user'. * Send the user list of connected clients to 'user'.
@ -105,13 +105,13 @@ extern struct user* uman_get_user_by_nick(struct hub_info* hub, const char* nick
* *
* @return 1 if sending the user list succeeded, 0 otherwise. * @return 1 if sending the user list succeeded, 0 otherwise.
*/ */
extern int uman_send_user_list(struct hub_info* hub, struct user* user); extern int uman_send_user_list(struct hub_info* hub, struct hub_user* user);
/** /**
* Send a quit message to all connected users when 'user' is * Send a quit message to all connected users when 'user' is
* leaving the hub (for whatever reason). * leaving the hub (for whatever reason).
*/ */
extern void uman_send_quit_message(struct hub_info* hub, struct user* user); extern void uman_send_quit_message(struct hub_info* hub, struct hub_user* user);
#endif /* HAVE_UHUB_USER_MANAGER_H */ #endif /* HAVE_UHUB_USER_MANAGER_H */