*/
#include "stdinc.h"
-#include "tools.h"
#include "s_user.h"
#include "channel.h"
#include "class.h"
#include "listener.h"
#include "msg.h"
#include "numeric.h"
-#include "commio.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"
#include "send.h"
#include "supported.h"
#include "whowas.h"
-#include "memory.h"
#include "packet.h"
#include "reject.h"
#include "cache.h"
0, /* W */
0, /* X */
0, /* Y */
- 0, /* Z */
+ UMODE_SSLCLIENT, /* Z */
/* 0x5B */ 0, 0, 0, 0, 0, 0, /* 0x60 */
UMODE_ADMIN, /* a */
0, /* b */
if(rb_dlink_list_length(&source_p->preClient->dnsbl_queries) > 0)
return -1;
- client_p->localClient->last = CurrentTime;
+ client_p->localClient->last = rb_current_time();
/* Straight up the maximum rate of flooding... */
source_p->localClient->allow_read = MAX_FLOOD_BURST;
/* Apply nick override */
if(*source_p->preClient->spoofnick)
{
+ char note[NICKLEN + 10];
+
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);
- rb_note(source_p->localClient->F->fd, "Nick: %s", source_p->name);
+
+ rb_snprintf(note, NICKLEN + 10, "Nick: %s", source_p->name);
+ rb_note(source_p->localClient->F, note);
}
if(!valid_hostname(source_p->host))
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);
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);
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);
if(source_p->localClient->passwd)
{
memset(source_p->localClient->passwd, 0, strlen(source_p->localClient->passwd));
- MyFree(source_p->localClient->passwd);
+ rb_free(source_p->localClient->passwd);
source_p->localClient->passwd = NULL;
}
}
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);
}
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;
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,
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);
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++;
source_p->localClient->passwd);
}
memset(source_p->localClient->passwd, 0, strlen(source_p->localClient->passwd));
- MyFree(source_p->localClient->passwd);
+ rb_free(source_p->localClient->passwd);
source_p->localClient->passwd = NULL;
}
}
source_p->flags2 &= ~OPER_FLAGS;
- MyFree(source_p->localClient->opername);
+ rb_free(source_p->localClient->opername);
source_p->localClient->opername = NULL;
rb_dlinkFindDestroy(source_p, &local_oper_list);
/* can only be set on burst */
case 'S':
+ case 'Z':
case ' ':
case '\n':
case '\r':
send_umode(NULL, source_p, old, 0, buf);
- DLINK_FOREACH(ptr, serv_list.head)
+ RB_DLINK_FOREACH(ptr, serv_list.head)
{
target_p = ptr->data;
SetExemptKline(source_p);
source_p->flags2 |= oper_p->flags;
- DupString(source_p->localClient->opername, oper_p->name);
+ source_p->localClient->opername = rb_strdup(oper_p->name);
rb_dlinkAddAlloc(source_p, &local_oper_list);
rb_dlinkAddAlloc(source_p, &oper_list);
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;
target_p->name, target_p->username, target_p->host,
reason);
- DLINK_FOREACH(ptr, target_p->user->channel.head)
+ RB_DLINK_FOREACH(ptr, target_p->user->channel.head)
{
mscptr = ptr->data;
chptr = mscptr->chptr;