]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/s_user.c
Add two missing colons for sendto_one_notice().
[irc/rqf/shadowircd.git] / src / s_user.c
index 91f30dd83c8d4786b840589f77097f75b20b73d9..58b05681a686ee9c4a7775ceb5543998edfab0a5 100644 (file)
@@ -21,7 +21,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_user.c 3414 2007-04-15 16:54:50Z jilles $
+ *  $Id: s_user.c 3586 2007-11-20 11:16:43Z nenolod $
  */
 
 #include "stdinc.h"
@@ -147,6 +147,14 @@ int user_modes[256] = {
 int
 show_lusers(struct Client *source_p)
 {
+       if(dlink_list_length(&lclient_list) > (unsigned long)MaxClientCount)
+               MaxClientCount = dlink_list_length(&lclient_list);
+
+       if((dlink_list_length(&lclient_list) + dlink_list_length(&serv_list)) >
+          (unsigned long)MaxConnectionCount)
+               MaxConnectionCount = dlink_list_length(&lclient_list) + 
+                                       dlink_list_length(&serv_list);
+
        sendto_one_numeric(source_p, RPL_LUSERCLIENT, form_str(RPL_LUSERCLIENT),
                           (Count.total - Count.invisi),
                           Count.invisi, dlink_list_length(&global_serv_list));
@@ -185,14 +193,6 @@ show_lusers(struct Client *source_p)
                           MaxConnectionCount, MaxClientCount, 
                           Count.totalrestartcount);
 
-       if(dlink_list_length(&lclient_list) > (unsigned long)MaxClientCount)
-               MaxClientCount = dlink_list_length(&lclient_list);
-
-       if((dlink_list_length(&lclient_list) + dlink_list_length(&serv_list)) >
-          (unsigned long)MaxConnectionCount)
-               MaxConnectionCount = dlink_list_length(&lclient_list) + 
-                                       dlink_list_length(&serv_list);
-
        return 0;
 }
 
@@ -223,7 +223,7 @@ show_lusers(struct Client *source_p)
 int
 register_local_user(struct Client *client_p, struct Client *source_p, const char *username)
 {
-       struct ConfItem *aconf;
+       struct ConfItem *aconf, *xconf;
        struct User *user = source_p->user;
        char tmpstr2[IRCD_BUFSIZE];
        char ipaddr[HOSTIPLEN];
@@ -250,14 +250,14 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char
                        source_p->flags |= FLAGS_PINGSENT;
                        return -1;
                }
-               if(!(source_p->flags2 & FLAGS2_PING_COOKIE))
+               if(!(source_p->flags & FLAGS_PING_COOKIE))
                {
                        return -1;
                }
        }
 
        /* hasnt finished client cap negotiation */
-       if(source_p->flags2 & FLAGS2_CLICAP)
+       if(source_p->flags & FLAGS_CLICAP)
                return -1;
 
        /* still has DNSbls to validate against */
@@ -296,7 +296,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char
                del_from_client_hash(source_p->name, source_p);
                strlcpy(source_p->name, source_p->preClient->spoofnick, NICKLEN + 1);
                add_to_client_hash(source_p->name, source_p);
-               comm_note(source_p->localClient->fd, "Nick: %s", source_p->name);
+               comm_note(source_p->localClient->F->fd, "Nick: %s", source_p->name);
        }
 
        if(!valid_hostname(source_p->host))
@@ -304,11 +304,6 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char
                sendto_one_notice(source_p, ":*** Notice -- You have an illegal character in your hostname");
 
                strlcpy(source_p->host, source_p->sockhost, sizeof(source_p->host));
-
-#ifdef IPV6
-               if(ConfigFileEntry.dot_in_ip6_addr == 1)
-                       strlcat(source_p->host, ".", sizeof(source_p->host));
-#endif
        }
  
 
@@ -415,10 +410,10 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char
 
        /* kline exemption extends to xline too */
        if(!IsExemptKline(source_p) &&
-          find_xline(source_p->info, 1) != NULL)
+          (xconf = find_xline(source_p->info, 1)) != NULL)
        {
                ServerStats->is_ref++;
-               add_reject(source_p);
+               add_reject(source_p, xconf->name, NULL);
                exit_client(client_p, source_p, &me, "Bad user info");
                return CLIENT_EXITED;
        }
@@ -450,7 +445,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char
                        sendto_one_notice(source_p, ":*** Your IP address %s is listed in %s",
                                        source_p->sockhost, source_p->preClient->dnsbl_listed->host);
                        source_p->preClient->dnsbl_listed->hits++;
-                       add_reject(source_p);
+                       add_reject(source_p, NULL, NULL);
                        exit_client(client_p, source_p, &me, "*** Banned (DNS blacklist)");
                        return CLIENT_EXITED;
                }
@@ -464,6 +459,8 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char
                                     "Invalid username: %s (%s@%s)",
                                     source_p->name, source_p->username, source_p->host);
                ServerStats->is_ref++;
+               sendto_one_notice(source_p, ":*** Your username is invalid. Please make sure that your username contains "
+                                           "only alphanumeric characters.");
                ircsprintf(tmpstr2, "Invalid username [%s]", source_p->username);
                exit_client(client_p, source_p, &me, tmpstr2);
                return (CLIENT_EXITED);
@@ -528,15 +525,17 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char
                Count.invisi++;
 
        s_assert(!IsClient(source_p));
+       del_unknown_ip(source_p);
        dlinkMoveNode(&source_p->localClient->tnode, &unknown_list, &lclient_list);
        SetClient(source_p);
 
-       /* XXX source_p->servptr is &me, since local client */
-       source_p->servptr = find_server(NULL, user->server);
+       source_p->servptr = &me;
        dlinkAdd(source_p, &source_p->lnode, &source_p->servptr->serv->users);
+
        /* Increment our total user count here */
        if(++Count.total > Count.max_tot)
                Count.max_tot = Count.total;
+
        source_p->localClient->allow_read = MAX_FLOOD_BURST;
 
        Count.totalrestartcount++;
@@ -633,7 +632,7 @@ introduce_client(struct Client *client_p, struct Client *source_p, struct User *
                              nick, source_p->hopcount + 1,
                              (long) source_p->tsinfo,
                              ubuf, source_p->username, source_p->host,
-                             user->server, source_p->info);
+                             source_p->servptr->name, source_p->info);
        }
        else
                sendto_server(client_p, NULL, NOCAPS, NOCAPS,
@@ -641,7 +640,7 @@ introduce_client(struct Client *client_p, struct Client *source_p, struct User *
                              nick, source_p->hopcount + 1,
                              (long) source_p->tsinfo,
                              ubuf, source_p->username, source_p->host,
-                             user->server, source_p->info);
+                             source_p->servptr->name, source_p->info);
 
        if (IsDynSpoof(source_p))
        {
@@ -833,14 +832,7 @@ report_and_set_user_flags(struct Client *source_p, struct ConfItem *aconf)
        if(IsConfExemptLimits(aconf))
        {
                SetExemptLimits(source_p);
-               sendto_one_notice(source_p, "*** You are exempt from user limits. congrats.");
-       }
-
-       /* If this user is exempt from idle time outs */
-       if(IsConfIdlelined(aconf))
-       {
-               SetIdlelined(source_p);
-               sendto_one_notice(source_p, ":*** You are exempt from idle limits. congrats.");
+               sendto_one_notice(source_p, ":*** You are exempt from user limits. congrats.");
        }
 
        if(IsConfExemptFlood(aconf))
@@ -1085,7 +1077,7 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, const char
 
        if(MyClient(source_p) && (source_p->snomask & SNO_NCHANGE) && !IsOperN(source_p))
        {
-               sendto_one_notice(source_p, ":*** You need oper and N flag for +s +n");
+               sendto_one_notice(source_p, ":*** You need oper and nick_changes flag for +s +n");
                source_p->snomask &= ~SNO_NCHANGE;      /* only tcm's really need this */
        }
 
@@ -1098,7 +1090,7 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, const char
        if(MyConnect(source_p) && (source_p->umodes & UMODE_ADMIN) &&
           (!IsOperAdmin(source_p) || IsOperHiddenAdmin(source_p)))
        {
-               sendto_one_notice(source_p, ":*** You need oper and A flag for +a");
+               sendto_one_notice(source_p, ":*** You need oper and admin flag for +a");
                source_p->umodes &= ~UMODE_ADMIN;
        }