X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fusers.cpp;h=f51656a55f388e791ced3d559dc10e90da79871d;hb=9dd72b7003963d868a23da930a91300b49ab4959;hp=ffa3d544357abbc805e5c271c80b0c1b0e6c8465;hpb=b7a9d06fb646561bed6ec3239e462411a91928b3;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/users.cpp b/src/users.cpp index ffa3d5443..f51656a55 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -110,20 +110,44 @@ bool DoneClassesAndTypes(const char* tag) return true; } +bool userrec::IsModeSet(unsigned char m) +{ + return (modes[m-65]); +} + +void userrec::SetMode(unsigned char m, bool value) +{ + modes[m-65] = value; +} + +const char* userrec::FormatModes() +{ + static char data[MAXBUF]; + int offset = 0; + for (int n = 0; n < 64; n++) + { + if (modes[n]) + data[offset++] = n+65; + } + data[offset] = 0; + return data; +} + userrec::userrec() { // the PROPER way to do it, AVOID bzero at *ALL* costs - *password = *nick = *ident = *host = *dhost = *fullname = *modes = *awaymsg = *oper = 0; + *password = *nick = *ident = *host = *dhost = *fullname = *awaymsg = *oper = 0; server = (char*)FindServerNamePtr(Config->ServerName); reset_due = TIME; lines_in = fd = lastping = signon = idle_lastmsg = nping = registered = 0; - modebits = timeout = flood = port = bytes_in = bytes_out = cmds_in = cmds_out = 0; + timeout = flood = port = bytes_in = bytes_out = cmds_in = cmds_out = 0; haspassed = dns_done = false; recvq = ""; sendq = ""; chans.clear(); invites.clear(); chans.resize(MAXCHANS); + memset(modes,0,sizeof(modes)); for (unsigned int n = 0; n < MAXCHANS; n++) { @@ -481,7 +505,7 @@ void kill_link(userrec *user,const char* r) char reason[MAXBUF]; strlcpy(reason,r,MAXQUIT-1); - log(DEBUG,"kill_link: %s '%s'",user->nick,reason); + log(DEBUG,"kill_link: %s %d '%s'",user->nick,user->fd,reason); if (IS_LOCAL(user)) Write(user->fd,"ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,reason);