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