rcp->founder, rcp->addedby, rcp->suspendby, rcp->suspendtime,
rcp->chantype,rcp->totaljoins,rcp->tripjoins,
rcp->maxusers,rcp->tripusers,
- escwelcome,esctopic,esckey,escreason,esccomment,rcp->ltimestamp,rcp->ID);
+ escwelcome,esctopic,esckey,escreason,esccomment,(intmax_t)rcp->ltimestamp,rcp->ID);
}
void csdb_updatechannelcounters(regchan *rcp) {
void csdb_updatechanneltimestamp(regchan *rcp) {
dbquery("UPDATE chanserv.channels SET "
"lasttimestamp=%jd WHERE ID=%u",
- rcp->ltimestamp, rcp->ID);
+ (intmax_t)rcp->ltimestamp, rcp->ID);
}
void csdb_createchannel(regchan *rcp) {
rcp->founder, rcp->addedby, rcp->suspendby, rcp->suspendtime,
rcp->chantype,rcp->totaljoins,rcp->tripjoins,
rcp->maxusers,rcp->tripusers,
- escwelcome,esctopic,esckey,escreason,esccomment,rcp->ltimestamp);
+ escwelcome,esctopic,esckey,escreason,esccomment,(intmax_t)rcp->ltimestamp);
}
void csdb_deletechannel(regchan *rcp) {
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);
}
oldflags, newflags);
}
-void csdb_accounthistory_insert(nick *np, char *oldpass, char *newpass, sstring *oldemail, sstring *newemail) {
+void csdb_accounthistory_insert(nick *np, char *oldpass, char *newpass, char *oldemail, char *newemail) {
reguser *rup=getreguserfromnick(np);
- char escoldpass[30];
- char escnewpass[30];
- char escoldemail[130];
- char escnewemail[130];
+ char escoldpass[PASSLEN*2+5];
+ char escnewpass[PASSLEN*2+5];
+ char escoldemail[EMAILLEN*2+5];
+ char escnewemail[EMAILLEN*2+5];
if (!rup || UHasOperPriv(rup))
return;
if (oldpass)
- dbescapestring(escoldpass, oldpass, strlen(oldpass));
+ dbescapestring(escoldpass, oldpass, CSMIN(strlen(oldpass), PASSLEN));
else
escoldpass[0]='\0';
if (newpass)
- dbescapestring(escnewpass, newpass, strlen(newpass));
+ dbescapestring(escnewpass, newpass, CSMIN(strlen(newpass), PASSLEN));
else
escnewpass[0]='\0';
if (oldemail)
- dbescapestring(escoldemail, oldemail->content, oldemail->length);
+ dbescapestring(escoldemail, oldemail, CSMIN(strlen(oldemail), EMAILLEN));
else
escoldemail[0]='\0';
if (newemail)
- dbescapestring(escnewemail, newemail->content, newemail->length);
+ dbescapestring(escnewemail, newemail, CSMIN(strlen(newemail), EMAILLEN));
else
escnewemail[0]='\0';
dbquery("INSERT INTO chanserv.accounthistory (userID, changetime, authtime, oldpassword, newpassword, oldemail, "
"newemail) VALUES (%u, %lu, %lu, '%s', '%s', '%s', '%s')", rup->ID, getnettime(), np->accountts, escoldpass, escnewpass,
escoldemail, escnewemail);
-
- if (newemail)
- freesstring(newemail);
}
-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) {
escreason[0]='\0';
dbquery("INSERT INTO chanserv.maillocks (id, pattern, reason, createdby, created) VALUES(%u, '%s', '%s', %u, %jd)",
- mlp->id,escpattern,escreason,mlp->createdby,mlp->created);
+ mlp->id,escpattern,escreason,mlp->createdby,(intmax_t)mlp->created);
}
void csdb_updatemaillock(maillock *mlp) {
else
escreason[0]='\0';
- dbquery("UPDATE chanserv.maillocks SET pattern='%s', reason='%s', createdby=%u, created=%jd WHERE ID=%u", escpattern, escreason, mlp->createdby, mlp->created, mlp->id);
+ dbquery("UPDATE chanserv.maillocks SET pattern='%s', reason='%s', createdby=%u, created=%jd WHERE ID=%u", escpattern, escreason, mlp->createdby, (intmax_t)mlp->created, mlp->id);
}