diff options
author | Haru <haru@dotalux.com> | 2019-04-07 23:10:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-07 23:10:55 +0200 |
commit | ab975f47579e1522dd6da8996913ac31c2e72207 (patch) | |
tree | 3954ed57ab46f4e403d83215822d6ca4a9e24189 /src/common/socket.c | |
parent | 4c571d8382418024ef39640f231ced878919e58e (diff) | |
parent | e610e222c57c1268fce72bc9578b42f655c18545 (diff) | |
download | hercules-ab975f47579e1522dd6da8996913ac31c2e72207.tar.gz hercules-ab975f47579e1522dd6da8996913ac31c2e72207.tar.bz2 hercules-ab975f47579e1522dd6da8996913ac31c2e72207.tar.xz hercules-ab975f47579e1522dd6da8996913ac31c2e72207.zip |
Merge pull request #2406 from 4144/updatepackets
Update packets and messages up to 2019-04-03
Diffstat (limited to 'src/common/socket.c')
-rw-r--r-- | src/common/socket.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/common/socket.c b/src/common/socket.c index faf57f412..dc5b06da0 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -488,11 +488,12 @@ static int send_from_fifo(int fd) return 0; } - if( len > 0 ) + if (len > 0) { + sockt->session[fd]->wdata_tick = sockt->last_tick; // some data could not be transferred? // shift unsent data to the beginning of the queue - if( (size_t)len < sockt->session[fd]->wdata_size ) + if ((size_t)len < sockt->session[fd]->wdata_size) memmove(sockt->session[fd]->wdata, sockt->session[fd]->wdata + len, sockt->session[fd]->wdata_size - len); sockt->session[fd]->wdata_size -= len; @@ -649,6 +650,7 @@ static int make_listen_bind(uint32 ip, uint16 port) create_session(fd, sockt->connect_client, null_send, null_parse); sockt->session[fd]->client_addr = 0; // just listens sockt->session[fd]->rdata_tick = 0; // disable timeouts on this socket + sockt->session[fd]->wdata_tick = 0; return fd; } @@ -731,6 +733,7 @@ static int create_session(int fd, RecvFunc func_recv, SendFunc func_send, ParseF sockt->session[fd]->func_send = func_send; sockt->session[fd]->func_parse = func_parse; sockt->session[fd]->rdata_tick = sockt->last_tick; + sockt->session[fd]->wdata_tick = sockt->last_tick; sockt->session[fd]->session_data = NULL; sockt->session[fd]->hdata = NULL; return 0; |