diff options
author | shennetsind <ind@henn.et> | 2014-02-19 14:45:58 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2014-02-19 14:45:58 -0300 |
commit | 01e3ab933f54432a07247f3babede749b6455129 (patch) | |
tree | e7e926637dbdc844909b4ae2cc0b851615cf36a0 | |
parent | a180d7f8f651fa7a79efdd275cd707559025c388 (diff) | |
download | hercules-01e3ab933f54432a07247f3babede749b6455129.tar.gz hercules-01e3ab933f54432a07247f3babede749b6455129.tar.bz2 hercules-01e3ab933f54432a07247f3babede749b6455129.tar.xz hercules-01e3ab933f54432a07247f3babede749b6455129.zip |
Fixed Bug 8031
way to check for char server connection fixed
Special Thanks to FeNixZ!
http://hercules.ws/board/tracker/issue-8031-map-server-crash-save-scdata-single-del-scdata-single/
Signed-off-by: shennetsind <ind@henn.et>
-rw-r--r-- | src/map/chrif.c | 5 | ||||
-rw-r--r-- | src/map/intif.c | 2 |
2 files changed, 3 insertions, 4 deletions
diff --git a/src/map/chrif.c b/src/map/chrif.c index 9f968d35b..d6f0e5ef8 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -457,7 +457,6 @@ int chrif_reconnect(DBKey key, DBData *data, va_list ap) { chrif->changemapserver(sd, ip, port); else //too much lag/timeout is the closest explanation for this error. clif->authfail_fd(sd->fd, 3); - break; } } @@ -1565,7 +1564,7 @@ void chrif_send_report(char* buf, int len) { **/ void chrif_save_scdata_single(int account_id, int char_id, short type, struct status_change_entry *sce) { - if( !chrif->fd ) + if( !chrif->isconnected() ) return; WFIFOHEAD(chrif->fd, 28); @@ -1587,7 +1586,7 @@ void chrif_save_scdata_single(int account_id, int char_id, short type, struct st **/ void chrif_del_scdata_single(int account_id, int char_id, short type) { - if( !chrif->fd ) { + if( !chrif->isconnected() ) { ShowError("MAYDAY! failed to delete status %d from CID:%d/AID:%d\n",type,char_id,account_id); return; } diff --git a/src/map/intif.c b/src/map/intif.c index 49fbe4721..f04ec4015 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -273,7 +273,7 @@ int intif_saveregistry(struct map_session_data *sd) { int plen = 0; size_t len; - if (intif->CheckForCharServer()) + if (intif->CheckForCharServer() || !sd->var_db) return -1; WFIFOHEAD(inter_fd, 60000 + 300); |