From 3f4b15c2cfe51a654b5167273f5a95b29e757cf1 Mon Sep 17 00:00:00 2001 From: brain Date: Thu, 14 Apr 2005 21:13:24 +0000 Subject: New documentation on today's new methods etc git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1096 e03df62e-2008-0410-955e-edbf42e46eb7 --- docs/module-doc/modules_8cpp-source.html | 889 ++++++++++++++++--------------- 1 file changed, 461 insertions(+), 428 deletions(-) (limited to 'docs/module-doc/modules_8cpp-source.html') diff --git a/docs/module-doc/modules_8cpp-source.html b/docs/module-doc/modules_8cpp-source.html index e96be8f92..77272f2aa 100644 --- a/docs/module-doc/modules_8cpp-source.html +++ b/docs/module-doc/modules_8cpp-source.html @@ -323,424 +323,424 @@ 00316 int Module::OnUserPreJoin(userrec* user, chanrec* chan, const char* cname) { return 0; } 00317 int Module::OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list &params) { return false; } 00318 Version Module::GetVersion() { return Version(1,0,0,0,VF_VENDOR); } -00319 void Module::OnOper(userrec* user) { }; -00320 void Module::OnInfo(userrec* user) { }; -00321 void Module::OnWhois(userrec* source, userrec* dest) { }; -00322 int Module::OnUserPreInvite(userrec* source,userrec* dest,chanrec* channel) { return 0; }; -00323 int Module::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text) { return 0; }; -00324 int Module::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text) { return 0; }; -00325 int Module::OnUserPreNick(userrec* user, std::string newnick) { return 0; }; -00326 void Module::OnUserPostNick(userrec* user, std::string oldnick) { }; -00327 int Module::OnAccessCheck(userrec* source,userrec* dest,chanrec* channel,int access_type) { return ACR_DEFAULT; }; -00328 string_list Module::OnUserSync(userrec* user) { string_list empty; return empty; } -00329 string_list Module::OnChannelSync(chanrec* chan) { string_list empty; return empty; } -00330 void Module::On005Numeric(std::string &output) { }; -00331 int Module::OnKill(userrec* source, userrec* dest, std::string reason) { return 0; }; -00332 void Module::OnLoadModule(Module* mod,std::string name) { }; -00333 void Module::OnBackgroundTimer(time_t curtime) { }; -00334 void Module::OnSendList(userrec* user, chanrec* channel, char mode) { }; -00335 -00336 // server is a wrapper class that provides methods to all of the C-style -00337 // exports in the core -00338 // -00339 -00340 Server::Server() -00341 { -00342 } -00343 -00344 Server::~Server() -00345 { -00346 } -00347 -00348 void Server::SendOpers(std::string s) -00349 { -00350 WriteOpers("%s",s.c_str()); +00319 void Module::OnOper(userrec* user) { }; +00320 void Module::OnInfo(userrec* user) { }; +00321 void Module::OnWhois(userrec* source, userrec* dest) { }; +00322 int Module::OnUserPreInvite(userrec* source,userrec* dest,chanrec* channel) { return 0; }; +00323 int Module::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text) { return 0; }; +00324 int Module::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text) { return 0; }; +00325 int Module::OnUserPreNick(userrec* user, std::string newnick) { return 0; }; +00326 void Module::OnUserPostNick(userrec* user, std::string oldnick) { }; +00327 int Module::OnAccessCheck(userrec* source,userrec* dest,chanrec* channel,int access_type) { return ACR_DEFAULT; }; +00328 string_list Module::OnUserSync(userrec* user) { string_list empty; return empty; } +00329 string_list Module::OnChannelSync(chanrec* chan) { string_list empty; return empty; } +00330 void Module::On005Numeric(std::string &output) { }; +00331 int Module::OnKill(userrec* source, userrec* dest, std::string reason) { return 0; }; +00332 void Module::OnLoadModule(Module* mod,std::string name) { }; +00333 void Module::OnBackgroundTimer(time_t curtime) { }; +00334 void Module::OnSendList(userrec* user, chanrec* channel, char mode) { }; +00335 int Module::OnPreCommand(std::string command, char **parameters, int pcnt, userrec *user) { return 0; }; +00336 bool Module::OnCheckReady(userrec* user) { return true; }; +00337 void Module::OnUserRegister(userrec* user) { }; +00338 int Module::OnUserPreKick(userrec* source, userrec* user, chanrec* chan, std::string reason) { return 0; }; +00339 void Module::OnUserKick(userrec* source, userrec* user, chanrec* chan, std::string reason) { }; +00340 +00341 // server is a wrapper class that provides methods to all of the C-style +00342 // exports in the core +00343 // +00344 +00345 Server::Server() +00346 { +00347 } +00348 +00349 Server::~Server() +00350 { 00351 } 00352 -00353 bool Server::MatchText(std::string sliteral, std::string spattern) +00353 void Server::SendOpers(std::string s) 00354 { -00355 char literal[MAXBUF],pattern[MAXBUF]; -00356 strlcpy(literal,sliteral.c_str(),MAXBUF); -00357 strlcpy(pattern,spattern.c_str(),MAXBUF); -00358 return match(literal,pattern); -00359 } -00360 -00361 void Server::SendToModeMask(std::string modes, int flags, std::string text) -00362 { -00363 WriteMode(modes.c_str(),flags,"%s",text.c_str()); +00355 WriteOpers("%s",s.c_str()); +00356 } +00357 +00358 bool Server::MatchText(std::string sliteral, std::string spattern) +00359 { +00360 char literal[MAXBUF],pattern[MAXBUF]; +00361 strlcpy(literal,sliteral.c_str(),MAXBUF); +00362 strlcpy(pattern,spattern.c_str(),MAXBUF); +00363 return match(literal,pattern); 00364 } 00365 -00366 chanrec* Server::JoinUserToChannel(userrec* user, std::string cname, std::string key) +00366 void Server::SendToModeMask(std::string modes, int flags, std::string text) 00367 { -00368 return add_channel(user,cname.c_str(),key.c_str(),true); +00368 WriteMode(modes.c_str(),flags,"%s",text.c_str()); 00369 } 00370 -00371 chanrec* Server::PartUserFromChannel(userrec* user, std::string cname, std::string reason) +00371 chanrec* Server::JoinUserToChannel(userrec* user, std::string cname, std::string key) 00372 { -00373 return del_channel(user,cname.c_str(),reason.c_str(),false); +00373 return add_channel(user,cname.c_str(),key.c_str(),true); 00374 } 00375 -00376 chanuserlist Server::GetUsers(chanrec* chan) +00376 chanrec* Server::PartUserFromChannel(userrec* user, std::string cname, std::string reason) 00377 { -00378 chanuserlist userl; -00379 userl.clear(); -00380 for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++) -00381 { -00382 if (i->second) -00383 { -00384 if (has_channel(i->second,chan)) -00385 { -00386 if (isnick(i->second->nick)) -00387 { -00388 userl.push_back(i->second); -00389 } -00390 } -00391 } -00392 } -00393 return userl; -00394 } -00395 void Server::ChangeUserNick(userrec* user, std::string nickname) -00396 { -00397 force_nickchange(user,nickname.c_str()); -00398 } -00399 -00400 void Server::QuitUser(userrec* user, std::string reason) +00378 return del_channel(user,cname.c_str(),reason.c_str(),false); +00379 } +00380 +00381 chanuserlist Server::GetUsers(chanrec* chan) +00382 { +00383 chanuserlist userl; +00384 userl.clear(); +00385 for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++) +00386 { +00387 if (i->second) +00388 { +00389 if (has_channel(i->second,chan)) +00390 { +00391 if (isnick(i->second->nick)) +00392 { +00393 userl.push_back(i->second); +00394 } +00395 } +00396 } +00397 } +00398 return userl; +00399 } +00400 void Server::ChangeUserNick(userrec* user, std::string nickname) 00401 { -00402 send_network_quit(user->nick,reason.c_str()); -00403 kill_link(user,reason.c_str()); -00404 } -00405 -00406 bool Server::IsUlined(std::string server) -00407 { -00408 return is_uline(server.c_str()); +00402 force_nickchange(user,nickname.c_str()); +00403 } +00404 +00405 void Server::QuitUser(userrec* user, std::string reason) +00406 { +00407 send_network_quit(user->nick,reason.c_str()); +00408 kill_link(user,reason.c_str()); 00409 } 00410 -00411 void Server::CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user) +00411 bool Server::IsUlined(std::string server) 00412 { -00413 call_handler(commandname.c_str(),parameters,pcnt,user); +00413 return is_uline(server.c_str()); 00414 } 00415 -00416 void Server::Log(int level, std::string s) +00416 void Server::CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user) 00417 { -00418 log(level,"%s",s.c_str()); +00418 call_handler(commandname.c_str(),parameters,pcnt,user); 00419 } 00420 -00421 void Server::AddCommand(char* cmd, handlerfunc f, char flags, int minparams, char* source) +00421 void Server::Log(int level, std::string s) 00422 { -00423 createcommand(cmd,f,flags,minparams,source); +00423 log(level,"%s",s.c_str()); 00424 } 00425 -00426 void Server::SendMode(char **parameters, int pcnt, userrec *user) +00426 void Server::AddCommand(char* cmd, handlerfunc f, char flags, int minparams, char* source) 00427 { -00428 server_mode(parameters,pcnt,user); +00428 createcommand(cmd,f,flags,minparams,source); 00429 } 00430 -00431 void Server::Send(int Socket, std::string s) +00431 void Server::SendMode(char **parameters, int pcnt, userrec *user) 00432 { -00433 Write(Socket,"%s",s.c_str()); +00433 server_mode(parameters,pcnt,user); 00434 } 00435 -00436 void Server::SendServ(int Socket, std::string s) +00436 void Server::Send(int Socket, std::string s) 00437 { -00438 WriteServ(Socket,"%s",s.c_str()); +00438 Write(Socket,"%s",s.c_str()); 00439 } 00440 -00441 void Server::SendFrom(int Socket, userrec* User, std::string s) +00441 void Server::SendServ(int Socket, std::string s) 00442 { -00443 WriteFrom(Socket,User,"%s",s.c_str()); +00443 WriteServ(Socket,"%s",s.c_str()); 00444 } 00445 -00446 void Server::SendTo(userrec* Source, userrec* Dest, std::string s) +00446 void Server::SendFrom(int Socket, userrec* User, std::string s) 00447 { -00448 if (!Source) -00449 { -00450 // if source is NULL, then the message originates from the local server -00451 Write(Dest->fd,":%s %s",this->GetServerName().c_str(),s.c_str()); -00452 } -00453 else +00448 WriteFrom(Socket,User,"%s",s.c_str()); +00449 } +00450 +00451 void Server::SendTo(userrec* Source, userrec* Dest, std::string s) +00452 { +00453 if (!Source) 00454 { -00455 // otherwise it comes from the user specified -00456 WriteTo(Source,Dest,"%s",s.c_str()); +00455 // if source is NULL, then the message originates from the local server +00456 Write(Dest->fd,":%s %s",this->GetServerName().c_str(),s.c_str()); 00457 } -00458 } -00459 -00460 void Server::SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender) -00461 { -00462 if (IncludeSender) -00463 { -00464 WriteChannel(Channel,User,"%s",s.c_str()); -00465 } -00466 else -00467 { -00468 ChanExceptSender(Channel,User,"%s",s.c_str()); -00469 } -00470 } -00471 -00472 bool Server::CommonChannels(userrec* u1, userrec* u2) -00473 { -00474 return (common_channels(u1,u2) != 0); +00458 else +00459 { +00460 // otherwise it comes from the user specified +00461 WriteTo(Source,Dest,"%s",s.c_str()); +00462 } +00463 } +00464 +00465 void Server::SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender) +00466 { +00467 if (IncludeSender) +00468 { +00469 WriteChannel(Channel,User,"%s",s.c_str()); +00470 } +00471 else +00472 { +00473 ChanExceptSender(Channel,User,"%s",s.c_str()); +00474 } 00475 } 00476 -00477 void Server::SendCommon(userrec* User, std::string text,bool IncludeSender) +00477 bool Server::CommonChannels(userrec* u1, userrec* u2) 00478 { -00479 if (IncludeSender) -00480 { -00481 WriteCommon(User,"%s",text.c_str()); -00482 } -00483 else -00484 { -00485 WriteCommonExcept(User,"%s",text.c_str()); -00486 } -00487 } -00488 -00489 void Server::SendWallops(userrec* User, std::string text) -00490 { -00491 WriteWallOps(User,false,"%s",text.c_str()); +00479 return (common_channels(u1,u2) != 0); +00480 } +00481 +00482 void Server::SendCommon(userrec* User, std::string text,bool IncludeSender) +00483 { +00484 if (IncludeSender) +00485 { +00486 WriteCommon(User,"%s",text.c_str()); +00487 } +00488 else +00489 { +00490 WriteCommonExcept(User,"%s",text.c_str()); +00491 } 00492 } 00493 -00494 void Server::ChangeHost(userrec* user, std::string host) +00494 void Server::SendWallops(userrec* User, std::string text) 00495 { -00496 ChangeDisplayedHost(user,host.c_str()); +00496 WriteWallOps(User,false,"%s",text.c_str()); 00497 } 00498 -00499 void Server::ChangeGECOS(userrec* user, std::string gecos) +00499 void Server::ChangeHost(userrec* user, std::string host) 00500 { -00501 ChangeName(user,gecos.c_str()); +00501 ChangeDisplayedHost(user,host.c_str()); 00502 } 00503 -00504 bool Server::IsNick(std::string nick) +00504 void Server::ChangeGECOS(userrec* user, std::string gecos) 00505 { -00506 return (isnick(nick.c_str()) != 0); +00506 ChangeName(user,gecos.c_str()); 00507 } 00508 -00509 userrec* Server::FindNick(std::string nick) +00509 bool Server::IsNick(std::string nick) 00510 { -00511 return Find(nick); +00511 return (isnick(nick.c_str()) != 0); 00512 } 00513 -00514 chanrec* Server::FindChannel(std::string channel) +00514 userrec* Server::FindNick(std::string nick) 00515 { -00516 return FindChan(channel.c_str()); +00516 return Find(nick); 00517 } 00518 -00519 std::string Server::ChanMode(userrec* User, chanrec* Chan) +00519 chanrec* Server::FindChannel(std::string channel) 00520 { -00521 return cmode(User,Chan); +00521 return FindChan(channel.c_str()); 00522 } 00523 -00524 bool Server::IsOnChannel(userrec* User, chanrec* Chan) +00524 std::string Server::ChanMode(userrec* User, chanrec* Chan) 00525 { -00526 return has_channel(User,Chan); +00526 return cmode(User,Chan); 00527 } 00528 -00529 std::string Server::GetServerName() +00529 bool Server::IsOnChannel(userrec* User, chanrec* Chan) 00530 { -00531 return getservername(); +00531 return has_channel(User,Chan); 00532 } 00533 -00534 std::string Server::GetNetworkName() +00534 std::string Server::GetServerName() 00535 { -00536 return getnetworkname(); +00536 return getservername(); 00537 } 00538 -00539 Admin Server::GetAdmin() +00539 std::string Server::GetNetworkName() 00540 { -00541 return Admin(getadminname(),getadminemail(),getadminnick()); +00541 return getnetworkname(); 00542 } 00543 -00544 -00545 -00546 bool Server::AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off) -00547 { -00548 if (type == MT_SERVER) -00549 { -00550 log(DEBUG,"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"); -00551 return false; -00552 } -00553 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT)) +00544 Admin Server::GetAdmin() +00545 { +00546 return Admin(getadminname(),getadminemail(),getadminnick()); +00547 } +00548 +00549 +00550 +00551 bool Server::AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off) +00552 { +00553 if (type == MT_SERVER) 00554 { -00555 log(DEBUG,"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"); +00555 log(DEBUG,"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"); 00556 return false; 00557 } -00558 if ((params_when_on>1) || (params_when_off>1)) +00558 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT)) 00559 { -00560 log(DEBUG,"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"); +00560 log(DEBUG,"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"); 00561 return false; 00562 } -00563 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off); -00564 } -00565 -00566 bool Server::AddExtendedListMode(char modechar) -00567 { -00568 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1); -00569 if (res) -00570 ModeMakeList(modechar); -00571 return res; -00572 } -00573 -00574 int Server::CountUsers(chanrec* c) -00575 { -00576 return usercount(c); +00563 if ((params_when_on>1) || (params_when_off>1)) +00564 { +00565 log(DEBUG,"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"); +00566 return false; +00567 } +00568 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off); +00569 } +00570 +00571 bool Server::AddExtendedListMode(char modechar) +00572 { +00573 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1); +00574 if (res) +00575 ModeMakeList(modechar); +00576 return res; 00577 } 00578 -00579 -00580 bool Server::UserToPseudo(userrec* user,std::string message) -00581 { -00582 unsigned int old_fd = user->fd; -00583 user->fd = FD_MAGIC_NUMBER; -00584 Write(old_fd,"ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,message.c_str()); -00585 close(old_fd); -00586 shutdown (old_fd,2); -00587 } -00588 -00589 bool Server::PseudoToUser(userrec* alive,userrec* zombie,std::string message) -00590 { -00591 zombie->fd = alive->fd; -00592 alive->fd = FD_MAGIC_NUMBER; -00593 Write(zombie->fd,":%s!%s@%s NICK %s",alive->nick,alive->ident,alive->host,zombie->nick); -00594 kill_link(alive,message.c_str()); -00595 for (int i = 0; i != MAXCHANS; i++) -00596 { -00597 if (zombie->chans[i].channel != NULL) -00598 { -00599 if (zombie->chans[i].channel->name) -00600 { -00601 chanrec* Ptr = zombie->chans[i].channel; -00602 WriteFrom(zombie->fd,zombie,"JOIN %s",Ptr->name); -00603 if (Ptr->topicset) -00604 { -00605 WriteServ(zombie->fd,"332 %s %s :%s", zombie->nick, Ptr->name, Ptr->topic); -00606 WriteServ(zombie->fd,"333 %s %s %s %d", zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset); -00607 } -00608 userlist(zombie,Ptr); -00609 WriteServ(zombie->fd,"366 %s %s :End of /NAMES list.", zombie->nick, Ptr->name); -00610 WriteServ(zombie->fd,"324 %s %s +%s",zombie->nick, Ptr->name,chanmodes(Ptr)); -00611 WriteServ(zombie->fd,"329 %s %s %d", zombie->nick, Ptr->name, Ptr->created); -00612 -00613 } -00614 } -00615 } -00616 -00617 } -00618 -00619 void Server::AddGLine(long duration, std::string source, std::string reason, std::string hostmask) -00620 { -00621 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +00579 int Server::CountUsers(chanrec* c) +00580 { +00581 return usercount(c); +00582 } +00583 +00584 +00585 bool Server::UserToPseudo(userrec* user,std::string message) +00586 { +00587 unsigned int old_fd = user->fd; +00588 user->fd = FD_MAGIC_NUMBER; +00589 Write(old_fd,"ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,message.c_str()); +00590 close(old_fd); +00591 shutdown (old_fd,2); +00592 } +00593 +00594 bool Server::PseudoToUser(userrec* alive,userrec* zombie,std::string message) +00595 { +00596 zombie->fd = alive->fd; +00597 alive->fd = FD_MAGIC_NUMBER; +00598 Write(zombie->fd,":%s!%s@%s NICK %s",alive->nick,alive->ident,alive->host,zombie->nick); +00599 kill_link(alive,message.c_str()); +00600 for (int i = 0; i != MAXCHANS; i++) +00601 { +00602 if (zombie->chans[i].channel != NULL) +00603 { +00604 if (zombie->chans[i].channel->name) +00605 { +00606 chanrec* Ptr = zombie->chans[i].channel; +00607 WriteFrom(zombie->fd,zombie,"JOIN %s",Ptr->name); +00608 if (Ptr->topicset) +00609 { +00610 WriteServ(zombie->fd,"332 %s %s :%s", zombie->nick, Ptr->name, Ptr->topic); +00611 WriteServ(zombie->fd,"333 %s %s %s %d", zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset); +00612 } +00613 userlist(zombie,Ptr); +00614 WriteServ(zombie->fd,"366 %s %s :End of /NAMES list.", zombie->nick, Ptr->name); +00615 WriteServ(zombie->fd,"324 %s %s +%s",zombie->nick, Ptr->name,chanmodes(Ptr)); +00616 WriteServ(zombie->fd,"329 %s %s %d", zombie->nick, Ptr->name, Ptr->created); +00617 +00618 } +00619 } +00620 } +00621 00622 } 00623 -00624 void Server::AddQLine(long duration, std::string source, std::string reason, std::string nickname) +00624 void Server::AddGLine(long duration, std::string source, std::string reason, std::string hostmask) 00625 { -00626 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str()); +00626 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); 00627 } 00628 -00629 void Server::AddZLine(long duration, std::string source, std::string reason, std::string ipaddr) +00629 void Server::AddQLine(long duration, std::string source, std::string reason, std::string nickname) 00630 { -00631 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str()); +00631 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str()); 00632 } 00633 -00634 void Server::AddKLine(long duration, std::string source, std::string reason, std::string hostmask) +00634 void Server::AddZLine(long duration, std::string source, std::string reason, std::string ipaddr) 00635 { -00636 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +00636 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str()); 00637 } 00638 -00639 void Server::AddELine(long duration, std::string source, std::string reason, std::string hostmask) +00639 void Server::AddKLine(long duration, std::string source, std::string reason, std::string hostmask) 00640 { -00641 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +00641 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); 00642 } 00643 -00644 bool Server::DelGLine(std::string hostmask) +00644 void Server::AddELine(long duration, std::string source, std::string reason, std::string hostmask) 00645 { -00646 del_gline(hostmask.c_str()); +00646 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); 00647 } 00648 -00649 bool Server::DelQLine(std::string nickname) +00649 bool Server::DelGLine(std::string hostmask) 00650 { -00651 del_qline(nickname.c_str()); +00651 del_gline(hostmask.c_str()); 00652 } 00653 -00654 bool Server::DelZLine(std::string ipaddr) +00654 bool Server::DelQLine(std::string nickname) 00655 { -00656 del_zline(ipaddr.c_str()); +00656 del_qline(nickname.c_str()); 00657 } 00658 -00659 bool Server::DelKLine(std::string hostmask) +00659 bool Server::DelZLine(std::string ipaddr) 00660 { -00661 del_kline(hostmask.c_str()); +00661 del_zline(ipaddr.c_str()); 00662 } 00663 -00664 bool Server::DelELine(std::string hostmask) +00664 bool Server::DelKLine(std::string hostmask) 00665 { -00666 del_eline(hostmask.c_str()); +00666 del_kline(hostmask.c_str()); 00667 } 00668 -00669 long Server::CalcDuration(std::string delta) +00669 bool Server::DelELine(std::string hostmask) 00670 { -00671 return duration(delta.c_str()); +00671 del_eline(hostmask.c_str()); 00672 } 00673 -00674 -00675 ConfigReader::ConfigReader() -00676 { -00677 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); -00678 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); -00679 this->readerror = LoadConf(CONFIG_FILE,this->cache,this->errorlog); -00680 if (!this->readerror) -00681 this->error = CONF_FILE_NOT_FOUND; -00682 } -00683 -00684 -00685 ConfigReader::~ConfigReader() -00686 { -00687 if (this->cache) -00688 delete this->cache; -00689 if (this->errorlog) -00690 delete this->errorlog; -00691 } -00692 -00693 -00694 ConfigReader::ConfigReader(std::string filename) -00695 { -00696 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); -00697 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); -00698 this->readerror = LoadConf(filename.c_str(),this->cache,this->errorlog); -00699 if (!this->readerror) -00700 this->error = CONF_FILE_NOT_FOUND; -00701 }; -00702 -00703 std::string ConfigReader::ReadValue(std::string tag, std::string name, int index) -00704 { -00705 char val[MAXBUF]; -00706 char t[MAXBUF]; -00707 char n[MAXBUF]; -00708 strlcpy(t,tag.c_str(),MAXBUF); -00709 strlcpy(n,name.c_str(),MAXBUF); -00710 int res = ReadConf(cache,t,n,index,val); -00711 if (!res) -00712 { -00713 this->error = CONF_VALUE_NOT_FOUND; -00714 return ""; -00715 } -00716 return std::string(val); -00717 } -00718 -00719 bool ConfigReader::ReadFlag(std::string tag, std::string name, int index) -00720 { -00721 char val[MAXBUF]; -00722 char t[MAXBUF]; -00723 char n[MAXBUF]; -00724 strlcpy(t,tag.c_str(),MAXBUF); -00725 strlcpy(n,name.c_str(),MAXBUF); -00726 int res = ReadConf(cache,t,n,index,val); -00727 if (!res) -00728 { -00729 this->error = CONF_VALUE_NOT_FOUND; -00730 return false; -00731 } -00732 std::string s = val; -00733 return ((s == "yes") || (s == "YES") || (s == "true") || (s == "TRUE") || (s == "1")); -00734 } +00674 long Server::CalcDuration(std::string delta) +00675 { +00676 return duration(delta.c_str()); +00677 } +00678 +00679 bool Server::IsValidMask(std::string mask) +00680 { +00681 const char* dest = mask.c_str(); +00682 if (strchr(dest,'!')==0) +00683 return false; +00684 if (strchr(dest,'@')==0) +00685 return false; +00686 for (int i = 0; i < strlen(dest); i++) +00687 if (dest[i] < 32) +00688 return false; +00689 for (int i = 0; i < strlen(dest); i++) +00690 if (dest[i] > 126) +00691 return false; +00692 int c = 0; +00693 for (int i = 0; i < strlen(dest); i++) +00694 if (dest[i] == '!') +00695 c++; +00696 if (c>1) +00697 return false; +00698 c = 0; +00699 for (int i = 0; i < strlen(dest); i++) +00700 if (dest[i] == '@') +00701 c++; +00702 if (c>1) +00703 return false; +00704 +00705 return true; +00706 } +00707 +00708 ConfigReader::ConfigReader() +00709 { +00710 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); +00711 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); +00712 this->readerror = LoadConf(CONFIG_FILE,this->cache,this->errorlog); +00713 if (!this->readerror) +00714 this->error = CONF_FILE_NOT_FOUND; +00715 } +00716 +00717 +00718 ConfigReader::~ConfigReader() +00719 { +00720 if (this->cache) +00721 delete this->cache; +00722 if (this->errorlog) +00723 delete this->errorlog; +00724 } +00725 +00726 +00727 ConfigReader::ConfigReader(std::string filename) +00728 { +00729 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); +00730 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); +00731 this->readerror = LoadConf(filename.c_str(),this->cache,this->errorlog); +00732 if (!this->readerror) +00733 this->error = CONF_FILE_NOT_FOUND; +00734 }; 00735 -00736 long ConfigReader::ReadInteger(std::string tag, std::string name, int index, bool needs_unsigned) +00736 std::string ConfigReader::ReadValue(std::string tag, std::string name, int index) 00737 { 00738 char val[MAXBUF]; 00739 char t[MAXBUF]; @@ -751,135 +751,168 @@ 00744 if (!res) 00745 { 00746 this->error = CONF_VALUE_NOT_FOUND; -00747 return 0; +00747 return ""; 00748 } -00749 for (int i = 0; i < strlen(val); i++) -00750 { -00751 if (!isdigit(val[i])) -00752 { -00753 this->error = CONF_NOT_A_NUMBER; -00754 return 0; -00755 } -00756 } -00757 if ((needs_unsigned) && (atoi(val)<0)) -00758 { -00759 this->error = CONF_NOT_UNSIGNED; -00760 return 0; -00761 } -00762 return atoi(val); -00763 } -00764 -00765 long ConfigReader::GetError() -00766 { -00767 long olderr = this->error; -00768 this->error = 0; -00769 return olderr; -00770 } -00771 -00772 void ConfigReader::DumpErrors(bool bail, userrec* user) -00773 { -00774 if (bail) -00775 { -00776 printf("There were errors in your configuration:\n%s",errorlog->str().c_str()); -00777 exit(0); -00778 } -00779 else -00780 { -00781 char dataline[1024]; -00782 if (user) -00783 { -00784 WriteServ(user->fd,"NOTICE %s :There were errors in the configuration file:",user->nick); -00785 while (!errorlog->eof()) -00786 { -00787 errorlog->getline(dataline,1024); -00788 WriteServ(user->fd,"NOTICE %s :%s",user->nick,dataline); -00789 } -00790 } -00791 else -00792 { -00793 WriteOpers("There were errors in the configuration file:",user->nick); -00794 while (!errorlog->eof()) -00795 { -00796 errorlog->getline(dataline,1024); -00797 WriteOpers(dataline); -00798 } -00799 } -00800 return; -00801 } -00802 } -00803 +00749 return std::string(val); +00750 } +00751 +00752 bool ConfigReader::ReadFlag(std::string tag, std::string name, int index) +00753 { +00754 char val[MAXBUF]; +00755 char t[MAXBUF]; +00756 char n[MAXBUF]; +00757 strlcpy(t,tag.c_str(),MAXBUF); +00758 strlcpy(n,name.c_str(),MAXBUF); +00759 int res = ReadConf(cache,t,n,index,val); +00760 if (!res) +00761 { +00762 this->error = CONF_VALUE_NOT_FOUND; +00763 return false; +00764 } +00765 std::string s = val; +00766 return ((s == "yes") || (s == "YES") || (s == "true") || (s == "TRUE") || (s == "1")); +00767 } +00768 +00769 long ConfigReader::ReadInteger(std::string tag, std::string name, int index, bool needs_unsigned) +00770 { +00771 char val[MAXBUF]; +00772 char t[MAXBUF]; +00773 char n[MAXBUF]; +00774 strlcpy(t,tag.c_str(),MAXBUF); +00775 strlcpy(n,name.c_str(),MAXBUF); +00776 int res = ReadConf(cache,t,n,index,val); +00777 if (!res) +00778 { +00779 this->error = CONF_VALUE_NOT_FOUND; +00780 return 0; +00781 } +00782 for (int i = 0; i < strlen(val); i++) +00783 { +00784 if (!isdigit(val[i])) +00785 { +00786 this->error = CONF_NOT_A_NUMBER; +00787 return 0; +00788 } +00789 } +00790 if ((needs_unsigned) && (atoi(val)<0)) +00791 { +00792 this->error = CONF_NOT_UNSIGNED; +00793 return 0; +00794 } +00795 return atoi(val); +00796 } +00797 +00798 long ConfigReader::GetError() +00799 { +00800 long olderr = this->error; +00801 this->error = 0; +00802 return olderr; +00803 } 00804 -00805 int ConfigReader::Enumerate(std::string tag) +00805 void ConfigReader::DumpErrors(bool bail, userrec* user) 00806 { -00807 return EnumConf(cache,tag.c_str()); -00808 } -00809 -00810 int ConfigReader::EnumerateValues(std::string tag, int index) -00811 { -00812 return EnumValues(cache, tag.c_str(), index); -00813 } -00814 -00815 bool ConfigReader::Verify() -00816 { -00817 return this->readerror; -00818 } -00819 -00820 -00821 FileReader::FileReader(std::string filename) -00822 { -00823 file_cache c; -00824 readfile(c,filename.c_str()); -00825 this->fc = c; -00826 } -00827 -00828 FileReader::FileReader() -00829 { -00830 } -00831 -00832 void FileReader::LoadFile(std::string filename) -00833 { -00834 file_cache c; -00835 readfile(c,filename.c_str()); -00836 this->fc = c; -00837 } -00838 -00839 -00840 FileReader::~FileReader() -00841 { -00842 } -00843 -00844 bool FileReader::Exists() -00845 { -00846 if (fc.size() == 0) -00847 { -00848 return(false); -00849 } -00850 else -00851 { -00852 return(true); -00853 } -00854 } -00855 -00856 std::string FileReader::GetLine(int x) -00857 { -00858 if ((x<0) || (x>fc.size())) -00859 return ""; -00860 return fc[x]; -00861 } -00862 -00863 int FileReader::FileSize() -00864 { -00865 return fc.size(); -00866 } -00867 -00868 -00869 std::vector<Module*> modules(255); -00870 std::vector<ircd_module*> factory(255); +00807 if (bail) +00808 { +00809 printf("There were errors in your configuration:\n%s",errorlog->str().c_str()); +00810 exit(0); +00811 } +00812 else +00813 { +00814 char dataline[1024]; +00815 if (user) +00816 { +00817 WriteServ(user->fd,"NOTICE %s :There were errors in the configuration file:",user->nick); +00818 while (!errorlog->eof()) +00819 { +00820 errorlog->getline(dataline,1024); +00821 WriteServ(user->fd,"NOTICE %s :%s",user->nick,dataline); +00822 } +00823 } +00824 else +00825 { +00826 WriteOpers("There were errors in the configuration file:",user->nick); +00827 while (!errorlog->eof()) +00828 { +00829 errorlog->getline(dataline,1024); +00830 WriteOpers(dataline); +00831 } +00832 } +00833 return; +00834 } +00835 } +00836 +00837 +00838 int ConfigReader::Enumerate(std::string tag) +00839 { +00840 return EnumConf(cache,tag.c_str()); +00841 } +00842 +00843 int ConfigReader::EnumerateValues(std::string tag, int index) +00844 { +00845 return EnumValues(cache, tag.c_str(), index); +00846 } +00847 +00848 bool ConfigReader::Verify() +00849 { +00850 return this->readerror; +00851 } +00852 +00853 +00854 FileReader::FileReader(std::string filename) +00855 { +00856 file_cache c; +00857 readfile(c,filename.c_str()); +00858 this->fc = c; +00859 } +00860 +00861 FileReader::FileReader() +00862 { +00863 } +00864 +00865 void FileReader::LoadFile(std::string filename) +00866 { +00867 file_cache c; +00868 readfile(c,filename.c_str()); +00869 this->fc = c; +00870 } 00871 -00872 int MODCOUNT = -1; -00873 -00874 -
Generated on Wed Apr 13 13:06:54 2005 for InspIRCd by +00872 +00873 FileReader::~FileReader() +00874 { +00875 } +00876 +00877 bool FileReader::Exists() +00878 { +00879 if (fc.size() == 0) +00880 { +00881 return(false); +00882 } +00883 else +00884 { +00885 return(true); +00886 } +00887 } +00888 +00889 std::string FileReader::GetLine(int x) +00890 { +00891 if ((x<0) || (x>fc.size())) +00892 return ""; +00893 return fc[x]; +00894 } +00895 +00896 int FileReader::FileSize() +00897 { +00898 return fc.size(); +00899 } +00900 +00901 +00902 std::vector<Module*> modules(255); +00903 std::vector<ircd_module*> factory(255); +00904 +00905 int MODCOUNT = -1; +00906 +00907 +
Generated on Thu Apr 14 21:12:05 2005 for InspIRCd by doxygen 1.3.3
-- cgit v1.2.3