From 9b572796285a3319612975d4b8ab7d3b3a25c16d Mon Sep 17 00:00:00 2001 From: Jan Vidar Krey Date: Sun, 2 Jan 2011 02:39:25 +0100 Subject: [PATCH] Many Visual C++ compile warnings and errors fixed. --- src/adc/message.c | 6 +-- src/adc/sid.c | 5 +- src/core/commands.c | 102 ++++++++++++++++++++++++++-------------- src/core/hub.c | 15 +++--- src/core/inf.c | 12 ++--- src/core/main.c | 2 + src/core/netevent.c | 2 +- src/core/plugininvoke.c | 48 ++++++++++--------- src/core/pluginloader.c | 3 +- src/core/route.c | 6 +-- src/network/backend.h | 2 +- src/network/network.c | 6 ++- src/network/network.h | 2 +- src/network/select.c | 3 +- src/network/timeout.c | 2 +- src/system.h | 47 +++++++++--------- src/uhub.h | 2 + src/util/config_token.c | 6 +-- src/util/ipcalc.c | 2 +- src/util/misc.h | 5 -- 20 files changed, 163 insertions(+), 115 deletions(-) diff --git a/src/adc/message.c b/src/adc/message.c index 7342296..2d91c07 100644 --- a/src/adc/message.c +++ b/src/adc/message.c @@ -600,7 +600,7 @@ int adc_msg_has_named_argument(struct adc_message* cmd, const char prefix_[2]) while (start) { count++; - if ((&start[0] - &cmd->cache[0]) < 1+cmd->length) + if ((size_t) (&start[0] - &cmd->cache[0]) < 1+cmd->length) start = memmem(&start[1], (&cmd->cache[cmd->length] - &start[0]), prefix, 3); else start = NULL; @@ -881,8 +881,8 @@ char* adc_msg_unescape(const char* string) char* adc_msg_escape(const char* string) { char* str = hub_malloc(adc_msg_escape_length(string)+1); - int n = 0; - int i = 0; + size_t n = 0; + size_t i = 0; for (i = 0; i < strlen(string); i++) { switch (string[i]) { diff --git a/src/adc/sid.c b/src/adc/sid.c index 5531bec..85f43bb 100644 --- a/src/adc/sid.c +++ b/src/adc/sid.c @@ -119,6 +119,8 @@ void sid_pool_destroy(struct sid_pool* pool) sid_t sid_alloc(struct sid_pool* pool, struct hub_user* user) { + sid_t n; + if (pool->count >= (pool->max - pool->min)) { #ifdef DEBUG_SID @@ -127,7 +129,8 @@ sid_t sid_alloc(struct sid_pool* pool, struct hub_user* user) return 0; } - sid_t n = (++pool->count); + n = ++pool->count; + for (; (pool->map[n % pool->max]); n++) ; #ifdef DEBUG_SID diff --git a/src/core/commands.c b/src/core/commands.c index 34828e6..c86fe2f 100644 --- a/src/core/commands.c +++ b/src/core/commands.c @@ -45,7 +45,69 @@ struct commands_handler const char* description; }; -static struct commands_handler command_handlers[]; +#define FORWARD_DECL_CMD(X) static int X(struct hub_info* hub, struct hub_user* user, struct hub_command* cmd) + +FORWARD_DECL_CMD(command_ban); +FORWARD_DECL_CMD(command_broadcast); +FORWARD_DECL_CMD(command_crash); +FORWARD_DECL_CMD(command_getip); +FORWARD_DECL_CMD(command_help); +FORWARD_DECL_CMD(command_history); +FORWARD_DECL_CMD(command_kick); +FORWARD_DECL_CMD(command_log); +FORWARD_DECL_CMD(command_motd); +FORWARD_DECL_CMD(command_mute); +FORWARD_DECL_CMD(command_myip); +FORWARD_DECL_CMD(command_register); +FORWARD_DECL_CMD(command_reload); +FORWARD_DECL_CMD(command_rules); +FORWARD_DECL_CMD(command_password); +FORWARD_DECL_CMD(command_shutdown); +FORWARD_DECL_CMD(command_stats); +FORWARD_DECL_CMD(command_unban); +FORWARD_DECL_CMD(command_uptime); +FORWARD_DECL_CMD(command_useradd); +FORWARD_DECL_CMD(command_userdel); +FORWARD_DECL_CMD(command_userinfo); +FORWARD_DECL_CMD(command_usermod); +FORWARD_DECL_CMD(command_userpass); +FORWARD_DECL_CMD(command_version); +FORWARD_DECL_CMD(command_whoip); + +#undef FORWARD_DECL_CMD + +static struct commands_handler command_handlers[] = { + { "ban", 3, "n", auth_cred_operator, command_ban, "Ban a user" }, + { "broadcast", 9, "m", auth_cred_operator, command_broadcast,"Send a message to all users" }, +#ifdef CRASH_DEBUG + { "crash", 5, 0, auth_cred_admin, command_crash, "Crash the hub (DEBUG)." }, +#endif + { "getip", 5, "n", auth_cred_operator, command_getip, "Show IP address for a user" }, + { "help", 4, "?c",auth_cred_guest, command_help, "Show this help message." }, + { "history", 7, "?N",auth_cred_guest, command_history, "Show the last chat messages." }, + { "kick", 4, "n", auth_cred_operator, command_kick, "Kick a user" }, + { "log", 3, 0, auth_cred_operator, command_log, "Display log" }, + { "motd", 4, 0, auth_cred_guest, command_motd, "Show the message of the day" }, + { "mute", 4, "n", auth_cred_operator, command_mute, "Mute user" }, + { "myip", 4, 0, auth_cred_guest, command_myip, "Show your own IP." }, + { "register", 8, "p", auth_cred_guest, command_register, "Register your username." }, + { "reload", 6, 0, auth_cred_admin, command_reload, "Reload configuration files." }, + { "rules", 5, 0, auth_cred_guest, command_rules, "Show the hub rules" }, + { "password", 8, "p", auth_cred_user, command_password, "Change your own password." }, + { "shutdown", 8, 0, auth_cred_admin, command_shutdown, "Shutdown hub." }, + { "stats", 5, 0, auth_cred_super, command_stats, "Show hub statistics." }, + { "unban", 5, "n", auth_cred_operator, command_unban, "Lift ban on a user" }, + { "unmute", 6, "n", auth_cred_operator, command_mute, "Unmute user" }, + { "uptime", 6, 0, auth_cred_guest, command_uptime, "Display hub uptime info." }, + { "useradd", 7, "np",auth_cred_operator, command_useradd, "Register a new user." }, + { "userdel", 7, "n", auth_cred_operator, command_userdel, "Delete a registered user." }, + { "userinfo", 8, "n", auth_cred_operator, command_userinfo, "Show registered user info." }, + { "usermod", 7, "nC",auth_cred_admin, command_usermod, "Modify user credentials." }, + { "userpass", 8, "np",auth_cred_operator, command_userpass, "Change password for a user." }, + { "version", 7, 0, auth_cred_guest, command_version, "Show hub version info." }, + { "whoip", 5, "a", auth_cred_operator, command_whoip, "Show users matching IP range" }, + { 0, 0, 0, auth_cred_none, command_help, "" } +}; static void command_destroy(struct hub_command* cmd) { @@ -219,8 +281,8 @@ static int command_help(struct hub_info* hub, struct hub_user* user, struct hub_ { size_t n; char msg[MAX_HELP_MSG]; - msg[0] = 0; char* command = list_get_first(cmd->args); + msg[0] = 0; if (!command) { @@ -495,11 +557,12 @@ static int command_broadcast(struct hub_info* hub, struct hub_user* user, struct char from_sid[5]; char buffer[128]; size_t recipients = 0; + struct hub_user* target; memcpy(from_sid, sid_to_string(user->id.sid), sizeof(from_sid)); memcpy(pm_flag + 2, from_sid, sizeof(from_sid)); - struct hub_user* target = (struct hub_user*) list_get_first(hub->users->list); + target = (struct hub_user*) list_get_first(hub->users->list); while (target) { if (target != user) @@ -835,36 +898,3 @@ int command_dipatcher(struct hub_info* hub, struct hub_user* user, const char* m return 0; } -static struct commands_handler command_handlers[] = { - { "ban", 3, "n", auth_cred_operator, command_ban, "Ban a user" }, - { "broadcast", 9, "m", auth_cred_operator, command_broadcast,"Send a message to all users" }, -#ifdef CRASH_DEBUG - { "crash", 5, 0, auth_cred_admin, command_crash, "Crash the hub (DEBUG)." }, -#endif - { "getip", 5, "n", auth_cred_operator, command_getip, "Show IP address for a user" }, - { "help", 4, "?c",auth_cred_guest, command_help, "Show this help message." }, - { "history", 7, "?N",auth_cred_guest, command_history, "Show the last chat messages." }, - { "kick", 4, "n", auth_cred_operator, command_kick, "Kick a user" }, - { "log", 3, 0, auth_cred_operator, command_log, "Display log" }, - { "motd", 4, 0, auth_cred_guest, command_motd, "Show the message of the day" }, - { "mute", 4, "n", auth_cred_operator, command_mute, "Mute user" }, - { "myip", 4, 0, auth_cred_guest, command_myip, "Show your own IP." }, - { "register", 8, "p", auth_cred_guest, command_register, "Register your username." }, - { "reload", 6, 0, auth_cred_admin, command_reload, "Reload configuration files." }, - { "rules", 5, 0, auth_cred_guest, command_rules, "Show the hub rules" }, - { "password", 8, "p", auth_cred_user, command_password, "Change your own password." }, - { "shutdown", 8, 0, auth_cred_admin, command_shutdown, "Shutdown hub." }, - { "stats", 5, 0, auth_cred_super, command_stats, "Show hub statistics." }, - { "unban", 5, "n", auth_cred_operator, command_unban, "Lift ban on a user" }, - { "unmute", 6, "n", auth_cred_operator, command_mute, "Unmute user" }, - { "uptime", 6, 0, auth_cred_guest, command_uptime, "Display hub uptime info." }, - { "useradd", 7, "np",auth_cred_operator, command_useradd, "Register a new user." }, - { "userdel", 7, "n", auth_cred_operator, command_userdel, "Delete a registered user." }, - { "userinfo", 8, "n", auth_cred_operator, command_userinfo, "Show registered user info." }, - { "usermod", 7, "nC",auth_cred_admin, command_usermod, "Modify user credentials." }, - { "userpass", 8, "np",auth_cred_operator, command_userpass, "Change password for a user." }, - { "version", 7, 0, auth_cred_guest, command_version, "Show hub version info." }, - { "whoip", 5, "a", auth_cred_operator, command_whoip, "Show users matching IP range" }, - { 0, 0, 0, auth_cred_none, command_help, "" } -}; - diff --git a/src/core/hub.c b/src/core/hub.c index 45e4e9f..1a911e0 100644 --- a/src/core/hub.c +++ b/src/core/hub.c @@ -396,6 +396,7 @@ void hub_send_hubinfo(struct hub_info* hub, struct hub_user* u) { struct adc_message* info = adc_msg_copy(hub->command_info); int value = 0; + uint64_t size = 0; if (user_flag_get(u, feature_ping)) { @@ -409,13 +410,13 @@ void hub_send_hubinfo(struct hub_info* hub, struct hub_user* u) adc_msg_add_named_argument(info, "UC", uhub_itoa(hub_get_user_count(hub))); adc_msg_add_named_argument(info, "MC", uhub_itoa(hub_get_max_user_count(hub))); adc_msg_add_named_argument(info, "SS", uhub_ulltoa(hub_get_shared_size(hub))); - adc_msg_add_named_argument(info, "SF", uhub_itoa(hub_get_shared_files(hub))); + adc_msg_add_named_argument(info, "SF", uhub_ulltoa(hub_get_shared_files(hub))); /* Maximum/minimum share size */ - value = hub_get_max_share(hub); - if (value) adc_msg_add_named_argument(info, "XS", uhub_itoa(value)); - value = hub_get_min_share(hub); - if (value) adc_msg_add_named_argument(info, "MS", uhub_itoa(value)); + size = hub_get_max_share(hub); + if (size) adc_msg_add_named_argument(info, "XS", uhub_ulltoa(size)); + size = hub_get_min_share(hub); + if (size) adc_msg_add_named_argument(info, "MS", uhub_ulltoa(size)); /* Maximum/minimum upload slots allowed per user */ value = hub_get_max_slots(hub); @@ -972,7 +973,7 @@ void hub_free_variables(struct hub_info* hub) /** * @return 1 if nickname is in use, or 0 if not used. */ -static inline int is_nick_in_use(struct hub_info* hub, const char* nick) +static int is_nick_in_use(struct hub_info* hub, const char* nick) { struct hub_user* lookup = uman_get_user_by_nick(hub, nick); if (lookup) @@ -986,7 +987,7 @@ static inline int is_nick_in_use(struct hub_info* hub, const char* nick) /** * @return 1 if CID is in use, or 0 if not used. */ -static inline int is_cid_in_use(struct hub_info* hub, const char* cid) +static int is_cid_in_use(struct hub_info* hub, const char* cid) { struct hub_user* lookup = uman_get_user_by_cid(hub, cid); if (lookup) diff --git a/src/core/inf.c b/src/core/inf.c index 7b3e08d..e68513e 100644 --- a/src/core/inf.c +++ b/src/core/inf.c @@ -429,7 +429,7 @@ static int check_limits(struct hub_info* hub, struct hub_user* user, struct adc_ arg = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_SHARED_FILES); if (arg) { - ssize_t shared_files = atoll(arg); + int shared_files = atoi(arg); if (shared_files < 0) shared_files = 0; @@ -446,7 +446,7 @@ static int check_limits(struct hub_info* hub, struct hub_user* user, struct adc_ arg = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_COUNT_HUB_NORMAL); if (arg) { - ssize_t num = atoll(arg); + int num = atoi(arg); if (num < 0) num = 0; user->limits.hub_count_user = num; hub_free(arg); @@ -456,7 +456,7 @@ static int check_limits(struct hub_info* hub, struct hub_user* user, struct adc_ arg = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_COUNT_HUB_REGISTER); if (arg) { - ssize_t num = atoll(arg); + int num = atoi(arg); if (num < 0) num = 0; user->limits.hub_count_registered = num; hub_free(arg); @@ -466,7 +466,7 @@ static int check_limits(struct hub_info* hub, struct hub_user* user, struct adc_ arg = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_COUNT_HUB_OPERATOR); if (arg) { - ssize_t num = atoll(arg); + int num = atoi(arg); if (num < 0) num = 0; user->limits.hub_count_operator = num; hub_free(arg); @@ -476,7 +476,7 @@ static int check_limits(struct hub_info* hub, struct hub_user* user, struct adc_ arg = adc_msg_get_named_argument(cmd, ADC_INF_FLAG_UPLOAD_SLOTS); if (arg) { - ssize_t num = atoll(arg); + int num = atoi(arg); if (num < 0) num = 0; user->limits.upload_slots = num; hub_free(arg); @@ -591,7 +591,7 @@ 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 * operators and admins to enter the hub. */ - if (hub->config->max_users && hub->users->count >= hub->config->max_users && !user_is_protected(user)) + if (hub->config->max_users && hub->users->count >= (size_t) hub->config->max_users && !user_is_protected(user)) { return 1; } diff --git a/src/core/main.c b/src/core/main.c index 978769d..41c631d 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -231,6 +231,7 @@ void print_usage(char* program) void parse_command_line(int argc, char** argv) { +#ifdef HAVE_GETOPT int opt; while ((opt = getopt(argc, argv, "vqfc:l:hu:g:VCsSLp:")) != -1) { @@ -301,6 +302,7 @@ void parse_command_line(int argc, char** argv) break; } } +#endif /* HAVE_GETOPT */ if (arg_config == NULL) { diff --git a/src/core/netevent.c b/src/core/netevent.c index 37a1964..06b75c4 100644 --- a/src/core/netevent.c +++ b/src/core/netevent.c @@ -88,7 +88,7 @@ int handle_net_read(struct hub_user* user) if (lastPos || remaining) { - if (remaining < g_hub->config->max_recv_buffer) + if (remaining < (size_t) g_hub->config->max_recv_buffer) { hub_recvq_set(q, lastPos ? lastPos : buf, remaining); } diff --git a/src/core/plugininvoke.c b/src/core/plugininvoke.c index 7e3c9a8..683c572 100644 --- a/src/core/plugininvoke.c +++ b/src/core/plugininvoke.c @@ -37,31 +37,37 @@ } #define PLUGIN_INVOKE_STATUS_1(HUB, FUNCNAME, ARG1) \ - plugin_st status = st_default; \ - INVOKE(HUB, FUNCNAME, { \ - status = plugin->funcs.FUNCNAME(plugin, ARG1); \ - if (status != st_default) \ - break; \ - }); \ - return status + do { \ + plugin_st status = st_default; \ + INVOKE(HUB, FUNCNAME, { \ + status = plugin->funcs.FUNCNAME(plugin, ARG1); \ + if (status != st_default) \ + break; \ + }); \ + return status; \ + } while(0) #define PLUGIN_INVOKE_STATUS_2(HUB, FUNCNAME, ARG1, ARG2) \ - plugin_st status = st_default; \ - INVOKE(HUB, FUNCNAME, { \ - status = plugin->funcs.FUNCNAME(plugin, ARG1, ARG2); \ - if (status != st_default) \ - break; \ - }); \ - return status + do { \ + plugin_st status = st_default; \ + INVOKE(HUB, FUNCNAME, { \ + status = plugin->funcs.FUNCNAME(plugin, ARG1, ARG2); \ + if (status != st_default) \ + break; \ + }); \ + return status; \ + } while(0) #define PLUGIN_INVOKE_STATUS_3(HUB, FUNCNAME, ARG1, ARG2, ARG3) \ - plugin_st status = st_default; \ - INVOKE(HUB, FUNCNAME, { \ - status = plugin->funcs.FUNCNAME(plugin, ARG1, ARG2, ARG3); \ - if (status != st_default) \ - break; \ - }); \ - return status + do { \ + plugin_st status = st_default; \ + INVOKE(HUB, FUNCNAME, { \ + status = plugin->funcs.FUNCNAME(plugin, ARG1, ARG2, ARG3); \ + if (status != st_default) \ + break; \ + }); \ + return status; \ + } while(0) #define PLUGIN_INVOKE_1(HUB, FUNCNAME, ARG1) INVOKE(HUB, FUNCNAME, { plugin->funcs.FUNCNAME(plugin, ARG1); }) #define PLUGIN_INVOKE_2(HUB, FUNCNAME, ARG1, ARG2) INVOKE(HUB, FUNCNAME, { plugin->funcs.FUNCNAME(plugin, ARG1, ARG2); }) diff --git a/src/core/pluginloader.c b/src/core/pluginloader.c index 51995d7..fec9256 100644 --- a/src/core/pluginloader.c +++ b/src/core/pluginloader.c @@ -123,6 +123,7 @@ void plugin_unload(struct plugin_handle* plugin) static int plugin_parse_line(char* line, int line_count, void* ptr_data) { struct uhub_plugins* handle = (struct uhub_plugins*) ptr_data; + struct plugin_handle* plugin; struct cfg_tokens* tokens = cfg_tokenize(line); char *directive, *soname, *params; @@ -148,7 +149,7 @@ static int plugin_parse_line(char* line, int line_count, void* ptr_data) params = ""; LOG_TRACE("Load plugin: \"%s\", params=\"%s\"", soname, params); - struct plugin_handle* plugin = plugin_load(soname, params); + plugin = plugin_load(soname, params); if (plugin) { list_append(handle->loaded, plugin); diff --git a/src/core/route.c b/src/core/route.c index 1670991..6901025 100644 --- a/src/core/route.c +++ b/src/core/route.c @@ -57,7 +57,7 @@ int route_message(struct hub_info* hub, struct hub_user* u, struct adc_message* return 0; } -static inline size_t get_max_send_queue(struct hub_info* hub) +static size_t get_max_send_queue(struct hub_info* hub) { /* TODO: More dynamic send queue limit, for instance: * return MAX(hub->config->max_send_buffer, (hub->config->max_recv_buffer * hub_get_user_count(hub))); @@ -65,7 +65,7 @@ static inline size_t get_max_send_queue(struct hub_info* hub) return hub->config->max_send_buffer; } -static inline size_t get_max_send_queue_soft(struct hub_info* hub) +static size_t get_max_send_queue_soft(struct hub_info* hub) { return hub->config->max_send_buffer_soft; } @@ -75,7 +75,7 @@ static inline size_t get_max_send_queue_soft(struct hub_info* hub) * -1 if send queue is overflowed * 0 if soft send queue is overflowed (not implemented at the moment) */ -static inline int check_send_queue(struct hub_info* hub, struct hub_user* user, struct adc_message* msg) +static int check_send_queue(struct hub_info* hub, struct hub_user* user, struct adc_message* msg) { if (user_flag_get(user, flag_user_list)) return 1; diff --git a/src/network/backend.h b/src/network/backend.h index cabe755..ba5febe 100644 --- a/src/network/backend.h +++ b/src/network/backend.h @@ -38,7 +38,7 @@ typedef void (*net_con_backend_init)(struct net_backend*, struct net_connection* typedef void (*net_con_backend_add)(struct net_backend*, struct net_connection*, int mask); typedef void (*net_con_backend_mod)(struct net_backend*, struct net_connection*, int mask); typedef void (*net_con_backend_del)(struct net_backend*,struct net_connection*); -typedef const char* (*net_con_backend_name)(void); +typedef const char* (*net_con_backend_name)(); struct net_backend_handler { diff --git a/src/network/network.c b/src/network/network.c index 18c82b1..5602821 100644 --- a/src/network/network.c +++ b/src/network/network.c @@ -34,12 +34,14 @@ static struct net_statistics stats_total; int net_initialize() { +#ifdef WINSOCK + struct WSAData wsa; +#endif if (!net_initialized) { LOG_TRACE("Initializing network monitor."); #ifdef WINSOCK - struct WSAData wsa; if (WSAStartup(MAKEWORD(2, 2), &wsa) != NO_ERROR) { LOG_ERROR("Unable to initialize winsock."); @@ -528,7 +530,7 @@ const char* net_address_to_string(int af, const void* src, char* dst, socklen_t return NULL; } - if (WSAAddressToString(addr, size, NULL, dst, &len) == 0) + if (WSAAddressToStringA(addr, size, NULL, dst, &len) == 0) { return dst; } diff --git a/src/network/network.h b/src/network/network.h index c1a1066..f370aab 100644 --- a/src/network/network.h +++ b/src/network/network.h @@ -255,7 +255,7 @@ extern int net_stats_timeout(); extern void net_stats_get(struct net_statistics** intermediate, struct net_statistics** total); -#if defined(WINSOCK) && !defined(__CYGWIN__) +#if defined(WINSOCK) && !defined(__CYGWIN__) && !defined(_MSC_VER) #define EWOULDBLOCK WSAEWOULDBLOCK #define EINPROGRESS WSAEINPROGRESS diff --git a/src/network/select.c b/src/network/select.c index 14327e2..bd57cc6 100644 --- a/src/network/select.c +++ b/src/network/select.c @@ -48,7 +48,8 @@ const char* net_backend_name_select() int net_backend_poll_select(struct net_backend* data, int ms) { - int found, res, n; + int res; + size_t n, found; struct timeval tval; struct net_backend_select* backend = (struct net_backend_select*) data; diff --git a/src/network/timeout.c b/src/network/timeout.c index 47e63cb..1efc6f5 100644 --- a/src/network/timeout.c +++ b/src/network/timeout.c @@ -54,7 +54,7 @@ void timeout_queue_shutdown(struct timeout_queue* t) size_t timeout_queue_process(struct timeout_queue* t, time_t now) { - size_t pos = t->last; + size_t pos = (size_t) t->last; size_t events = 0; struct timeout_evt* evt = 0; t->last = now; diff --git a/src/system.h b/src/system.h index 716741c..5ca96fd 100644 --- a/src/system.h +++ b/src/system.h @@ -22,24 +22,6 @@ #define _FILE_OFFSET_BITS 64 -#if USE_REGPARM && __GNUC__ >= 3 -#define REGPRM1 __attribute__((regparm(1))) -#define REGPRM2 __attribute__((regparm(2))) -#define REGPRM3 __attribute__((regparm(3))) -#else -#define REGPRM1 -#define REGPRM2 -#define REGPRM3 -#endif - -#ifndef FORCEINLINE -#if __GNUC__ < 3 -#define FORCEINLINE inline -#else -#define FORCEINLINE inline __attribute__((always_inline)) -#endif -#endif - #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif @@ -48,7 +30,7 @@ #define BSD_LIKE #endif -#if defined(__CYGWIN__) || defined(__MINGW32__) +#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(_MSC_VER) #ifndef WINSOCK #define WINSOCK #endif @@ -72,7 +54,6 @@ #include #ifndef __sun__ -#include #include #endif @@ -82,14 +63,16 @@ #include #include #include -#include #if !defined(WIN32) +#include #include #include #include #define HAVE_STRNDUP #define HAVE_DLOPEN +#define HAVE_GETOPT +#define HAVE_SSIZE_T #include #ifndef __HAIKU__ #define HAVE_MEMMEM @@ -134,6 +117,9 @@ #undef HAVE_MEMMEM #endif +#ifdef HAVE_GETOPT +#include +#endif /* * Detect operating system info. @@ -243,4 +229,23 @@ #define MAX(a, b) ((a) > (b) ? (a) : (b)) #endif +#ifndef HAVE_SSIZE_T +typedef int ssize_t; +#define HAVE_SSIZE_T +#endif + +#ifdef _MSC_VER +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; +#endif + + +#ifdef _MSC_VER +#define strdup _strdup +#define snprintf _snprintf +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#define atoll _atoi64 +#endif + #endif /* HAVE_UHUB_SYSTEM_H */ diff --git a/src/uhub.h b/src/uhub.h index 3c5e896..1cc107b 100644 --- a/src/uhub.h +++ b/src/uhub.h @@ -25,6 +25,8 @@ /* #define MEMORY_DEBUG */ /* #define DEBUG_SENDQ 1 */ +#define PLUGIN_SUPPORT + #include "system.h" #ifndef WIN32 diff --git a/src/util/config_token.c b/src/util/config_token.c index 6c7373b..4c9fae0 100644 --- a/src/util/config_token.c +++ b/src/util/config_token.c @@ -29,15 +29,15 @@ struct cfg_tokens struct cfg_tokens* cfg_tokenize(const char* line) { - struct cfg_tokens* tokens = hub_malloc_zero(sizeof(struct cfg_tokens)); - tokens->list = list_create(); - char* buffer = hub_malloc_zero(strlen(line)); + struct cfg_tokens* tokens = (struct cfg_tokens*) hub_malloc_zero(sizeof(struct cfg_tokens)); + char* buffer = (char*) hub_malloc_zero(strlen(line)); char* out = buffer; const char* p = line; int backslash = 0; char quote = 0; size_t token_count = 0; size_t token_size = 0; + tokens->list = list_create(); for (; *p; p++) { diff --git a/src/util/ipcalc.c b/src/util/ipcalc.c index 9c386a8..11737ae 100644 --- a/src/util/ipcalc.c +++ b/src/util/ipcalc.c @@ -21,7 +21,7 @@ int ip_is_valid_ipv4(const char* address) { - int i = 0; /* address index */ + size_t i = 0; /* address index */ int o = 0; /* octet number */ int n = 0; /* numbers after each dot */ int d = 0; /* dots */ diff --git a/src/util/misc.h b/src/util/misc.h index 10eb967..d399151 100644 --- a/src/util/misc.h +++ b/src/util/misc.h @@ -53,11 +53,6 @@ extern const char* uhub_ulltoa(uint64_t val); extern int uhub_atoi(const char* value); -#ifdef NEED_ATOLL -extern int atoll(const char* value); -#endif - - #ifndef HAVE_STRNDUP extern char* strndup(const char* string, size_t n); #endif