#include <stdio.h>
#include <sys/poll.h>
#include <stdarg.h>
+#include <assert.h>
void csdb_updateauthinfo(reguser *rup) {
char eschost[2*HOSTLEN+1];
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);
}
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);
}
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,
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) {