X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_account.c;h=5040a528333ee6c090b5d319ec641653bc79b9c3;hb=refs%2Fheads%2Fupstream-ssl;hp=f5615e5360f909be92af44a3214384cf27b8ab87;hpb=cc05a230ac079fa15a2e43e6e68ef7126128cefd;p=ircu2.10.12-pk.git diff --git a/ircd/m_account.c b/ircd/m_account.c index f5615e5..5040a52 100644 --- a/ircd/m_account.c +++ b/ircd/m_account.c @@ -82,14 +82,18 @@ #include "client.h" #include "ircd.h" +#include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" #include "msg.h" #include "numnicks.h" +#include "s_debug.h" #include "s_user.h" #include "send.h" -#include +/* #include -- Now using assert in ircd_log.h */ +#include +#include /* * ms_account - server message handler @@ -120,11 +124,25 @@ int ms_account(struct Client* cptr, struct Client* sptr, int parc, assert(0 == cli_user(acptr)->account[0]); + if (strlen(parv[2]) > ACCOUNTLEN) + return protocol_violation(cptr, + "Received account (%s) longer than %d for %s; " + "ignoring.", + parv[2], ACCOUNTLEN, cli_name(acptr)); + + if (parc > 3) { + cli_user(acptr)->acc_create = atoi(parv[3]); + Debug((DEBUG_DEBUG, "Received timestamped account: account \"%s\", " + "timestamp %Tu", parv[2], cli_user(acptr)->acc_create)); + } + ircd_strncpy(cli_user(acptr)->account, parv[2], ACCOUNTLEN); - hide_hostmask(acptr, FLAGS_ACCOUNT); + hide_hostmask(acptr, FLAG_ACCOUNT); - sendcmdto_serv_butone(sptr, CMD_ACCOUNT, cptr, "%C %s", acptr, - cli_user(acptr)->account); + sendcmdto_serv_butone(sptr, CMD_ACCOUNT, cptr, + cli_user(acptr)->acc_create ? "%C %s %Tu" : "%C %s", + acptr, cli_user(acptr)->account, + cli_user(acptr)->acc_create); return 0; }