extern user_hash clientlist;
extern chan_hash chanlist;
-extern whowas_hash whowas;
extern std::vector<userrec*> all_opers;
extern std::vector<userrec*> local_users;
/* XXX - these really belong in helperfuncs perhaps -- w00t */
bool is_uline(const char* server)
{
- char ServName[MAXBUF];
-
if (!server)
return false;
- if (!(*server))
+ if (!*server)
return true;
- for (int i = 0; i < Config->ConfValueEnum("uline",&Config->config_f); i++)
- {
- Config->ConfValue("uline","server",i,ServName,&Config->config_f);
- if (!strcasecmp(server,ServName))
- {
- return true;
- }
- }
- return false;
+ return (find(Config->ulines.begin(),Config->ulines.end(),server) != Config->ulines.end());
}
int operstrcmp(char* data,char* input)
/* All other ircds when doing this check usually just look for a string of *@* or *. We're smarter than that, though. */
-bool host_matches_everyone(std::string mask, userrec* user)
+bool host_matches_everyone(const std::string &mask, userrec* user)
{
char insanemasks[MAXBUF];
char buffer[MAXBUF];
for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
{
strlcpy(buffer,u->second->ident,MAXBUF);
- strlcat(buffer,"@",MAXBUF);
+ charlcat(buffer,'@',MAXBUF);
strlcat(buffer,u->second->host,MAXBUF);
if (match(buffer,mask.c_str()))
matches++;
return false;
}
-bool ip_matches_everyone(std::string ip, userrec* user)
+bool ip_matches_everyone(const std::string &ip, userrec* user)
{
char insanemasks[MAXBUF];
char itrigger[MAXBUF];
return false;
}
-bool nick_matches_everyone(std::string nick, userrec* user)
+bool nick_matches_everyone(const std::string &nick, userrec* user)
{
char insanemasks[MAXBUF];
char itrigger[MAXBUF];