diff --git a/src/sbbs3/answer.cpp b/src/sbbs3/answer.cpp index d2952b9e85d60ef64b958c31d71ceb0a2d222adf..34ea886662c5dd19d403b081bb127bbe7adda544 100644 --- a/src/sbbs3/answer.cpp +++ b/src/sbbs3/answer.cpp @@ -452,7 +452,7 @@ bool sbbs_t::answer() SAFECOPY(useron.ipaddr, client_ipaddr); SAFECOPY(useron.comp, client_name); useron.logons++; - putuserdat(&cfg,&useron); + putuserdat(&useron); snprintf(str, sizeof(str), "(%04u) %-25s %s Logon" ,useron.number, useron.alias, client.protocol); logline("++", str); diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 8115f23d819209648aa77dec9268b0b72c4eae3c..216752481fb3e99bbc89810a84a9f4a9306684a8 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -2628,7 +2628,9 @@ static void ctrl_thread(void* arg) SAFECOPY(user.comp,host_name); SAFECOPY(user.ipaddr,host_ip); user.logontime=(time32_t)logintime; - putuserdat(&scfg, &user); + if((result = putuserdat(&scfg, &user)) != 0) + lprintf(LOG_ERR, "%04d [%s] <%s> !Error %d writing user data for user #%d" + ,sock, host_ip, user.alias, result, user.number); mqtt_user_login(&mqtt, &client); #ifdef _WIN32 diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp index 711fbefbd0f01f099a0ee4b27d02202bc83fed5e..41721fe5c9021e3ed3d629ad2df9091f04dbdbd2 100644 --- a/src/sbbs3/logon.cpp +++ b/src/sbbs3/logon.cpp @@ -443,7 +443,7 @@ bool sbbs_t::logon() SAFECOPY(useron.ipaddr, client_ipaddr); SAFECOPY(useron.comp, client_name); useron.logons++; - putuserdat(&cfg,&useron); + putuserdat(&useron); getmsgptrs(); sys_status|=SS_USERON; /* moved from further down */ diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 3ef8e9faf67a38b49d1b46febd0f3a78ac34c085..a3e705215d71a2e1706d9ce418469dcae1c83ab8 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -1322,6 +1322,7 @@ public: int searchdn(char *search,int usernum); void maindflts(user_t* user); void purgeuser(int usernumber); + void putuserdat(user_t*); /* ver.cpp */ void ver(void); diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c index 2cff60677b6aa859af3784094ba2c5b26fdc8c26..bc8a3540acccd3dba3fe3b6a39f44aebff84ca77 100644 --- a/src/sbbs3/services.c +++ b/src/sbbs3/services.c @@ -475,7 +475,12 @@ js_login(JSContext *cx, uintN argc, jsval *arglist) client->user.ltoday++; } - putuserdat(&scfg,&client->user); + int result = putuserdat(&scfg,&client->user); + if(result != 0) { + lprintf(LOG_ERR, "%04d %s !Error %d writing user data for user #%d" + ,client->socket,client->service->protocol + ,result, client->user.number); + } if(client->subscan==NULL) { client->subscan=(subscan_t*)calloc(scfg.total_subs, sizeof(subscan_t)); if(client->subscan==NULL) diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp index 768f8ad1b64e8e20a76fd1332849e09540f84bec..54b9fa17d35e9d01968e848ae91578dcac265cf7 100644 --- a/src/sbbs3/useredit.cpp +++ b/src/sbbs3/useredit.cpp @@ -78,7 +78,7 @@ void sbbs_t::useredit(int usernumber) if(strcmp(str,tmp) && user.ltoday) { user.ltoday=user.ttoday=user.ptoday=user.etoday=user.textra=0; user.freecdt=cfg.level_freecdtperday[user.level]; - putuserdat(&cfg,&user); /* Leave alone */ + putuserdat(&user); /* Leave alone */ } char user_pass[LEN_PASS + 1]; SAFECOPY(user_pass, user.pass); @@ -494,7 +494,7 @@ void sbbs_t::useredit(int usernumber) else user.expire+=((long)cfg.val_expire[i]*24L*60L*60L); } - putuserdat(&cfg,&user); + putuserdat(&user); break; case 'W': bputs(text[UeditPassword]); @@ -516,7 +516,7 @@ void sbbs_t::useredit(int usernumber) if((int)i>0) { user.number=i; putusername(&cfg,user.number,user.alias); - putuserdat(&cfg,&user); + putuserdat(&user); } } break; @@ -1170,3 +1170,14 @@ void sbbs_t::purgeuser(int usernumber) putusername(&cfg,usernumber,nulstr); putusermisc(usernumber, user.misc | DELETED); } + +/****************************************************************************/ +/* An error checking/logging wrapper for userdat.c putuserdat() */ +/****************************************************************************/ +void sbbs_t::putuserdat(user_t* user) +{ + int result = ::putuserdat(&cfg, user); + if(result != 0) + lprintf(LOG_ERR, "!Error %d writing user data for user #%d" + ,result, user->number); +} diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index f7fc816aeb41a63e0eb07b60c6417994d3758161..9783a8af95f9fa038d29ec50d31bb6aea450a53a 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -1654,7 +1654,12 @@ void http_logon(http_session_t * session, user_t *usr) SAFECOPY(session->user.comp, session->host_name); SAFECOPY(session->user.ipaddr, session->host_ip); session->user.logontime = (time32_t)session->logon_time; - putuserdat(&scfg, &session->user); + int result = putuserdat(&scfg, &session->user); + if(result != 0) + lprintf(LOG_ERR, "%04d %s [%s] <%s> !Error %d writing user data for user #%d" + ,session->socket, session->client.protocol, session->host_ip + ,session->username, session->user.number); + } SAFECOPY(session->client.user, session->username); session->client.usernum = session->user.number;