#include "snomask.h"
#include "blacklist.h"
#include "substitution.h"
+#include "chmode.h"
static void report_and_set_user_flags(struct Client *, struct ConfItem *);
void user_welcome(struct Client *source_p);
-extern char *crypt();
-
char umodebuf[128];
static int orphaned_umodes = 0;
return (CLIENT_EXITED);
}
+ if(IsConfSSLNeeded(aconf) && !IsSSL(source_p))
+ {
+ ServerStats.is_ref++;
+ sendto_one_notice(source_p, ":*** Notice -- You need to use SSL/TLS to use this server");
+ exit_client(client_p, source_p, &me, "Use SSL/TLS");
+ return (CLIENT_EXITED);
+ }
+
if(!IsGotId(source_p))
{
const char *p;
if(EmptyString(source_p->localClient->passwd))
encr = "";
else if(IsConfEncrypted(aconf))
- encr = crypt(source_p->localClient->passwd, aconf->passwd);
+ encr = rb_crypt(source_p->localClient->passwd, aconf->passwd);
else
encr = source_p->localClient->passwd;
Count.invisi++;
s_assert(!IsClient(source_p));
- del_unknown_ip(source_p);
rb_dlinkMoveNode(&source_p->localClient->tnode, &unknown_list, &lclient_list);
SetClient(source_p);
else
identifyservice_p = NULL;
if (identifyservice_p != NULL)
- sendto_one(identifyservice_p, ":%s PRIVMSG %s :%s %s",
- get_id(source_p, identifyservice_p),
- ConfigFileEntry.identifyservice,
- ConfigFileEntry.identifycommand,
- source_p->localClient->passwd);
+ {
+ if (!EmptyString(source_p->localClient->auth_user))
+ sendto_one(identifyservice_p, ":%s PRIVMSG %s :%s %s %s",
+ get_id(source_p, identifyservice_p),
+ ConfigFileEntry.identifyservice,
+ ConfigFileEntry.identifycommand,
+ source_p->localClient->auth_user,
+ source_p->localClient->passwd);
+ else
+ sendto_one(identifyservice_p, ":%s PRIVMSG %s :%s %s",
+ get_id(source_p, identifyservice_p),
+ ConfigFileEntry.identifyservice,
+ ConfigFileEntry.identifycommand,
+ source_p->localClient->passwd);
+ }
}
memset(source_p->localClient->passwd, 0, strlen(source_p->localClient->passwd));
rb_free(source_p->localClient->passwd);
source_p->localClient->opername = NULL;
rb_dlinkFindDestroy(source_p, &local_oper_list);
+ privilegeset_unref(source_p->localClient->privset);
+ source_p->localClient->privset = NULL;
}
rb_dlinkFindDestroy(source_p, &oper_list);
sendto_one_numeric(source_p, RPL_YOURHOST, form_str(RPL_YOURHOST),
get_listener_name(source_p->localClient->listener), ircd_version);
sendto_one_numeric(source_p, RPL_CREATED, form_str(RPL_CREATED), creation);
- sendto_one_numeric(source_p, RPL_MYINFO, form_str(RPL_MYINFO), me.name, ircd_version, umodebuf);
+ sendto_one_numeric(source_p, RPL_MYINFO, form_str(RPL_MYINFO), me.name, ircd_version, umodebuf, cflagsmyinfo);
show_isupport(source_p);
source_p->flags2 |= oper_p->flags;
source_p->localClient->opername = rb_strdup(oper_p->name);
+ source_p->localClient->privset = privilegeset_ref(oper_p->privset);
rb_dlinkAddAlloc(source_p, &local_oper_list);
rb_dlinkAddAlloc(source_p, &oper_list);
sendto_one_numeric(source_p, RPL_SNOMASK, form_str(RPL_SNOMASK),
construct_snobuf(source_p->snomask));
sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, source_p->name);
- sendto_one_notice(source_p, ":*** Oper privs are %s", get_oper_privs(oper_p->flags));
+ sendto_one_notice(source_p, ":*** Oper privilege set is %s", oper_p->privset->name);
+ sendto_one_notice(source_p, ":*** Oper privs are %s", oper_p->privset->privs);
send_oper_motd(source_p);
return (1);