X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/68876ea24b3d1782d404a39989ad855b328e5304..907468c485f837cb8442c32509c8efec8f3f43b1:/src/s_user.c diff --git a/src/s_user.c b/src/s_user.c index 2428c85..57cf9ec 100644 --- a/src/s_user.c +++ b/src/s_user.c @@ -39,7 +39,7 @@ #include "numeric.h" #include "s_conf.h" #include "s_newconf.h" -#include "s_log.h" +#include "logger.h" #include "s_serv.h" #include "s_stats.h" #include "scache.h" @@ -94,7 +94,7 @@ int user_modes[256] = { 0, /* W */ 0, /* X */ 0, /* Y */ - 0, /* Z */ + UMODE_SSLCLIENT, /* Z */ /* 0x5B */ 0, 0, 0, 0, 0, 0, /* 0x60 */ UMODE_ADMIN, /* a */ 0, /* b */ @@ -293,7 +293,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char char note[NICKLEN + 10]; del_from_client_hash(source_p->name, source_p); - strlcpy(source_p->name, source_p->preClient->spoofnick, NICKLEN + 1); + rb_strlcpy(source_p->name, source_p->preClient->spoofnick, NICKLEN + 1); add_to_client_hash(source_p->name, source_p); rb_snprintf(note, NICKLEN + 10, "Nick: %s", source_p->name); @@ -304,7 +304,7 @@ 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)); + rb_strlcpy(source_p->host, source_p->sockhost, sizeof(source_p->host)); } @@ -323,7 +323,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char if(IsNeedIdentd(aconf)) { - ServerStats->is_ref++; + ServerStats.is_ref++; sendto_one_notice(source_p, ":*** Notice -- You need to install identd to use this server"); exit_client(client_p, source_p, &me, "Install identd"); return (CLIENT_EXITED); @@ -350,7 +350,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char if(IsNeedSasl(aconf) && !*user->suser) { - ServerStats->is_ref++; + ServerStats.is_ref++; sendto_one_notice(source_p, ":*** Notice -- You need to identify via SASL to use this server"); exit_client(client_p, source_p, &me, "SASL access only"); return (CLIENT_EXITED); @@ -370,7 +370,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char if(strcmp(encr, aconf->passwd)) { - ServerStats->is_ref++; + ServerStats.is_ref++; sendto_one(source_p, form_str(ERR_PASSWDMISMATCH), me.name, source_p->name); exit_client(client_p, source_p, &me, "Bad Password"); return (CLIENT_EXITED); @@ -404,7 +404,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char sendto_realops_snomask(SNO_FULL, L_ALL, "Too many clients, rejecting %s[%s].", source_p->name, source_p->host); - ServerStats->is_ref++; + ServerStats.is_ref++; exit_client(client_p, source_p, &me, "Sorry, server is full - try later"); return (CLIENT_EXITED); } @@ -413,7 +413,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char if(!IsExemptKline(source_p) && (xconf = find_xline(source_p->info, 1)) != NULL) { - ServerStats->is_ref++; + ServerStats.is_ref++; add_reject(source_p, xconf->name, NULL); exit_client(client_p, source_p, &me, "Bad user info"); return CLIENT_EXITED; @@ -435,7 +435,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char substitution_append_var(&varlist, "dnsbl-host", source_p->preClient->dnsbl_listed->host); substitution_append_var(&varlist, "network-name", ServerInfo.network_name); - ServerStats->is_ref++; + ServerStats.is_ref++; sendto_one(source_p, form_str(ERR_YOUREBANNEDCREEP), me.name, source_p->name, @@ -459,7 +459,7 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char sendto_realops_snomask(SNO_REJ, L_ALL, "Invalid username: %s (%s@%s)", source_p->name, source_p->username, source_p->host); - ServerStats->is_ref++; + ServerStats.is_ref++; sendto_one_notice(source_p, ":*** Your username is invalid. Please make sure that your username contains " "only alphanumeric characters."); rb_sprintf(tmpstr2, "Invalid username [%s]", source_p->username); @@ -470,14 +470,14 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char /* end of valid user name check */ /* Store original hostname -- jilles */ - strlcpy(source_p->orighost, source_p->host, HOSTLEN + 1); + rb_strlcpy(source_p->orighost, source_p->host, HOSTLEN + 1); /* Spoof user@host */ if(*source_p->preClient->spoofuser) - strlcpy(source_p->username, source_p->preClient->spoofuser, USERLEN + 1); + rb_strlcpy(source_p->username, source_p->preClient->spoofuser, USERLEN + 1); if(*source_p->preClient->spoofhost) { - strlcpy(source_p->host, source_p->preClient->spoofhost, HOSTLEN + 1); + rb_strlcpy(source_p->host, source_p->preClient->spoofhost, HOSTLEN + 1); if (irccmp(source_p->host, source_p->orighost)) SetDynSpoof(source_p); } @@ -522,6 +522,9 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char add_to_id_hash(source_p->id, source_p); } + if (IsSSL(source_p)) + source_p->umodes |= UMODE_SSLCLIENT; + if (source_p->umodes & UMODE_INVISIBLE) Count.invisi++; @@ -812,16 +815,7 @@ report_and_set_user_flags(struct Client *source_p, struct ConfItem *aconf) if(IsConfExemptKline(aconf)) { SetExemptKline(source_p); - sendto_one_notice(source_p, ":*** You are exempt from K/G/X lines. congrats."); - } - - if(IsConfExemptGline(aconf)) - { - SetExemptGline(source_p); - - /* dont send both a kline and gline exempt notice */ - if(!IsConfExemptKline(aconf)) - sendto_one_notice(source_p, ":*** You are exempt from G lines."); + sendto_one_notice(source_p, ":*** You are exempt from K/X lines. congrats."); } if(IsConfExemptDNSBL(aconf)) @@ -1007,6 +1001,7 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, const char /* can only be set on burst */ case 'S': + case 'Z': case ' ': case '\n': case '\r': @@ -1369,7 +1364,7 @@ construct_umodebuf(void) void change_nick_user_host(struct Client *target_p, const char *nick, const char *user, - const char *host, int newts, char *format, ...) + const char *host, int newts, const char *format, ...) { rb_dlink_node *ptr; struct Channel *chptr; @@ -1442,14 +1437,14 @@ change_nick_user_host(struct Client *target_p, const char *nick, const char *use target_p->host, nick); } - strlcpy(target_p->username, user, sizeof target_p->username); - strlcpy(target_p->host, host, sizeof target_p->host); + rb_strlcpy(target_p->username, user, sizeof target_p->username); + rb_strlcpy(target_p->host, host, sizeof target_p->host); if (changed) add_history(target_p, 1); del_from_client_hash(target_p->name, target_p); - strlcpy(target_p->name, nick, NICKLEN); + rb_strlcpy(target_p->name, nick, NICKLEN); add_to_client_hash(target_p->name, target_p); if(changed)