X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fusers.cpp;h=f51656a55f388e791ced3d559dc10e90da79871d;hb=db07867e945deb72ce103f796e20104a27c5f68a;hp=87dfca4abc0c41cc3a5cb88d8c2e5f240433c778;hpb=820a8b8f9a21cb2ea2d8f7ad1c64ffe001f0a7cb;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/users.cpp b/src/users.cpp index 87dfca4ab..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++) {