From 01e3ab933f54432a07247f3babede749b6455129 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Wed, 19 Feb 2014 14:45:58 -0300 Subject: 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 --- src/map/chrif.c | 5 ++--- 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); -- cgit v1.2.3-60-g2f50