X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/24e572a95ac1b295c18a24c13da7b448a7eb2d22..28aa186de14dc4fa7488866e70beb6ae933dde79:/chanserv/chanservdb_updates.c?ds=sidebyside diff --git a/chanserv/chanservdb_updates.c b/chanserv/chanservdb_updates.c index 43de9571..91a40e38 100644 --- a/chanserv/chanservdb_updates.c +++ b/chanserv/chanservdb_updates.c @@ -14,6 +14,7 @@ #include #include #include +#include void csdb_updateauthinfo(reguser *rup) { char eschost[2*HOSTLEN+1]; @@ -216,9 +217,11 @@ void csdb_updateuser(reguser *rup) { dbquery("UPDATE chanserv.users SET lastauth=%lu, lastemailchng=%lu, flags=%u," "language=%u, suspendby=%u, suspendexp=%lu, suspendtime=%lu, lockuntil=%lu, password='%s', email='%s'," - "lastuserhost='%s', suspendreason='%s', comment='%s', info='%s', lastemail='%s' WHERE ID=%u", + "lastuserhost='%s', suspendreason='%s', comment='%s', info='%s', lastemail='%s', lastpasschng=%lu " + " WHERE ID=%u", rup->lastauth, rup->lastemailchange, rup->flags, rup->languageid, rup->suspendby, rup->suspendexp, rup->suspendtime, rup->lockuntil, escpassword, escemail, esclastuserhost, escreason, esccomment, escinfo, esclastemail, + rup->lastpasschange, rup->ID); } @@ -267,11 +270,12 @@ void csdb_createuser(reguser *rup) { dbquery("INSERT INTO chanserv.users (ID, username, created, lastauth, lastemailchng, " "flags, language, suspendby, suspendexp, suspendtime, lockuntil, password, email, lastuserhost, " - "suspendreason, comment, info, lastemail) VALUES (%u,'%s',%lu,%lu,%lu,%u,%u,%u,%lu,%lu,%lu,'%s','%s'," - "'%s','%s','%s','%s','%s')", + "suspendreason, comment, info, lastemail, lastpasschng)" + "VALUES (%u,'%s',%lu,%lu,%lu,%u,%u,%u,%lu,%lu,%lu,'%s','%s','%s','%s','%s','%s','%s',%lu)", rup->ID, escusername, rup->created, rup->lastauth, rup->lastemailchange, rup->flags, rup->languageid, rup->suspendby, rup->suspendexp, rup->suspendtime, rup->lockuntil, - escpassword, escemail, esclastuserhost, escreason, esccomment, escinfo, esclastemail); + escpassword, escemail, esclastuserhost, escreason, esccomment, escinfo, esclastemail, + rup->lastpasschange); } @@ -382,6 +386,7 @@ void csdb_updatemaildomain(maildomain *mdp) { void csdb_chanlevhistory_insert(regchan *rcp, nick *np, reguser *trup, flag_t oldflags, flag_t newflags) { reguser *rup=getreguserfromnick(np); + assert(rup != NULL); dbquery("INSERT INTO chanserv.chanlevhistory (userID, channelID, targetID, changetime, authtime, " "oldflags, newflags) VALUES (%u, %u, %u, %lu, %lu, %u, %u)", rup->ID, rcp->ID, trup->ID, getnettime(), np->accountts, @@ -422,13 +427,11 @@ void csdb_accounthistory_insert(nick *np, char *oldpass, char *newpass, char *ol escoldemail, escnewemail); } -void csdb_cleanuphistories() { - time_t expire_time=getnettime()-604800; - +void csdb_cleanuphistories(time_t expire_time) { Error("chanserv", ERR_INFO, "Cleaning histories."); - dbquery("DELETE FROM chanserv.authhistory WHERE authtime < %lu", expire_time); - dbquery("DELETE FROM chanserv.chanlevhistory WHERE changetime < %lu", expire_time); - dbquery("DELETE FROM chanserv.accounthistory WHERE changetime < %lu", expire_time); + dbquery("DELETE FROM chanserv.authhistory WHERE disconnecttime < %lu AND disconnecttime <> 0", expire_time); + dbquery("DELETE FROM chanserv.chanlevhistory WHERE authtime < %lu", expire_time); + dbquery("DELETE FROM chanserv.accounthistory WHERE authtime < %lu", expire_time); } void csdb_deletemaillock(maillock *mlp) {