diff options
author | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-02-07 20:30:22 +0000 |
---|---|---|
committer | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-02-07 20:30:22 +0000 |
commit | ff28bd5e88ed683f73022dcf10f00a67898536ed (patch) | |
tree | b9dc41bfdbc71da5c73c77697e4c0d13a25e5431 /src | |
parent | ec70b501945e9c74c83a07f43ffc2c3a4cc97019 (diff) | |
download | hercules-ff28bd5e88ed683f73022dcf10f00a67898536ed.tar.gz hercules-ff28bd5e88ed683f73022dcf10f00a67898536ed.tar.bz2 hercules-ff28bd5e88ed683f73022dcf10f00a67898536ed.tar.xz hercules-ff28bd5e88ed683f73022dcf10f00a67898536ed.zip |
Wiped out the poorly written parse code from r2211
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9819 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/common/plugins.c | 1 | ||||
-rw-r--r-- | src/common/socket.c | 35 | ||||
-rw-r--r-- | src/common/socket.h | 17 |
3 files changed, 1 insertions, 52 deletions
diff --git a/src/common/plugins.c b/src/common/plugins.c index ac8c4a7ee..2fa151a49 100644 --- a/src/common/plugins.c +++ b/src/common/plugins.c @@ -337,7 +337,6 @@ void plugins_init(void) register_plugin_func(EVENT_ATHENA_FINAL); // networking - export_symbol(func_parse_table, SYMBOL_FUNC_PARSE_TABLE); export_symbol(RFIFOSKIP, SYMBOL_RFIFOSKIP); export_symbol(WFIFOSET, SYMBOL_WFIFOSET); export_symbol(delete_session, SYMBOL_DELETE_SESSION); diff --git a/src/common/socket.c b/src/common/socket.c index dc7dbbca0..6063fcb77 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -282,7 +282,6 @@ static int connect_client(int listen_fd) session[fd]->func_parse = (session[listen_fd]->func_parse) ? session[listen_fd]->func_parse : default_func_parse; session[fd]->client_addr = client_address; session[fd]->rdata_tick = last_tick; - session[fd]->type = SESSION_UNKNOWN; // undefined type //ShowMessage("new_session : %d %d\n",fd,session[fd]->eof); return fd; @@ -339,31 +338,6 @@ int make_listen_port(int port) return make_listen_bind(INADDR_ANY,port); } -// function parse table -// To-do: -- use dynamic arrays -// -- add a register_parse_func(); -struct func_parse_table func_parse_table[SESSION_MAX]; - -int default_func_check (struct socket_data *sd) { return 1; } - -void func_parse_check (struct socket_data *sd) -{ - int i; - for (i = SESSION_HTTP; i < SESSION_MAX; i++) { - if (func_parse_table[i].func && - func_parse_table[i].check && - func_parse_table[i].check(sd) != 0) - { - sd->type = i; - sd->func_parse = func_parse_table[i].func; - return; - } - } - - // undefined -- treat as raw socket (using default parse) - sd->type = SESSION_RAW; -} - int make_connection(long ip,int port) { struct sockaddr_in server_address; @@ -675,10 +649,7 @@ int do_parsepacket(void) } if(sd->rdata_size == 0 && sd->eof == 0) continue; - if(sd->func_parse){ - if(sd->type == SESSION_UNKNOWN) - func_parse_check(sd); - if(sd->type != SESSION_UNKNOWN) + if(sd->func_parse) { sd->func_parse(i); if(!session[i]) continue; @@ -1201,10 +1172,6 @@ void socket_init(void) session[0]->max_rdata = 2*rfifo_size; session[0]->max_wdata = 2*wfifo_size; - memset(func_parse_table, 0, sizeof(func_parse_table)); - func_parse_table[SESSION_RAW].check = default_func_check; - func_parse_table[SESSION_RAW].func = default_func_parse; - #ifndef MINICORE // Delete old connection history every 5 minutes memset(connect_history, 0, sizeof(connect_history)); diff --git a/src/common/socket.h b/src/common/socket.h index 65c18a5a6..7a07a3770 100644 --- a/src/common/socket.h +++ b/src/common/socket.h @@ -69,15 +69,6 @@ #define TOL(n) ((uint32)((n)&UINT32_MAX)) -// Session type -enum SessionType { - SESSION_UNKNOWN = -1, - SESSION_RAW = 0, - SESSION_HTTP = 1, -//----------------- - SESSION_MAX = 2 -}; - // Struct declaration struct socket_data { @@ -93,15 +84,7 @@ struct socket_data { int (*func_parse)(int); void* session_data; void* session_data2; - enum SessionType type; -}; - -// Parse functions table -struct func_parse_table { - int (*func)(int); - int (*check)(struct socket_data *); }; -extern struct func_parse_table func_parse_table[SESSION_MAX]; // Data prototype declaration |