Module init and fini API tidy up
This commit is contained in:
parent
54b4afb0ae
commit
afde9e4320
14 changed files with 81 additions and 56 deletions
|
@ -3,7 +3,10 @@ NeoStats 3.x ChangeLog
|
|||
Anything we add/remove/fix/change is in here (even our rants)
|
||||
Fish (F), Mark (M)
|
||||
===============================================================================
|
||||
* NeoStats * Version 3.0.prealpha3-dev
|
||||
* NeoStats * Version 3.0.a1-dev
|
||||
- Add ModFini return value so modules can return errors if required. (M)
|
||||
- Remove ModInit parameter since it is now redundant. (M)
|
||||
- Command processor code split up. (M)
|
||||
- Add SET_VALIDATE stage to allow a module to override core SET validation and
|
||||
to potentially react to the previous setting prior to SET_CHANGE. (M)
|
||||
- Command processor code split up. (M)
|
||||
|
|
|
@ -1388,9 +1388,9 @@ EXPORTFUNC void os_free( void *ptr );
|
|||
*/
|
||||
/* Module Basic Interface */
|
||||
MODULEVAR extern ModuleInfo module_info;
|
||||
MODULEFUNC int ModInit( Module *mod_ptr );
|
||||
MODULEFUNC int ModInit( void );
|
||||
MODULEFUNC int ModSynch( void );
|
||||
MODULEFUNC void ModFini( void );
|
||||
MODULEFUNC int ModFini( void );
|
||||
/* Module Event Interface */
|
||||
MODULEVAR extern ModuleEvent module_events[];
|
||||
/* Module Auth Interface */
|
||||
|
|
|
@ -204,12 +204,12 @@ ModeDef OperSmodes[] =
|
|||
* Init handler
|
||||
* Loads connectserv configuration
|
||||
*
|
||||
* @param pointer to my module
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit( Module *mod_ptr )
|
||||
int ModInit( void )
|
||||
{
|
||||
/* Load stored configuration */
|
||||
ModuleConfig( cs_settings );
|
||||
|
@ -244,11 +244,12 @@ int ModSynch( void )
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini( void )
|
||||
int ModFini (void)
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
/** @brief cs_report
|
||||
|
|
|
@ -259,12 +259,12 @@ static int ea_cmd_access( CmdParams *cmdparams )
|
|||
*
|
||||
* Init handler
|
||||
*
|
||||
* @param pointer to my module
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit( Module *modptr )
|
||||
int ModInit( void )
|
||||
{
|
||||
LoadAccessList();
|
||||
return NS_SUCCESS;
|
||||
|
@ -294,12 +294,13 @@ int ModSynch( void )
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini( void )
|
||||
int ModFini (void)
|
||||
{
|
||||
del_services_cmd_list( extauth_commands );
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
/** @brief ModAuthUser
|
||||
|
|
|
@ -410,12 +410,12 @@ static int hs_event_umode (CmdParams *cmdparams)
|
|||
*
|
||||
* Init handler
|
||||
*
|
||||
* @param pointer to my module
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit (Module *mod_ptr)
|
||||
int ModInit( void )
|
||||
{
|
||||
vhost_list = list_create(-1);
|
||||
if (!vhost_list) {
|
||||
|
@ -465,10 +465,10 @@ int ModSynch (void)
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini (void)
|
||||
int ModFini (void)
|
||||
{
|
||||
banentry *ban;
|
||||
hnode_t *hn;
|
||||
|
@ -483,6 +483,7 @@ void ModFini (void)
|
|||
}
|
||||
hash_destroy(banhash);
|
||||
list_destroy_auto (vhost_list);
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
/** @brief new_vhost
|
||||
|
@ -548,6 +549,8 @@ static int hs_cmd_bans_list (CmdParams *cmdparams)
|
|||
* Command handler for BANS ADD
|
||||
*
|
||||
* @param cmdparams
|
||||
* cmdparams->av[1] = ban host mask
|
||||
* cmdparams->av[2 - cmdparams->ac-1] = reason
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds, else NS_FAILURE
|
||||
*/
|
||||
|
@ -583,6 +586,7 @@ static int hs_cmd_bans_add (CmdParams *cmdparams)
|
|||
* Command handler for BANS DEL
|
||||
*
|
||||
* @param cmdparams
|
||||
* cmdparams->av[1] = ban host mask
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds, else NS_FAILURE
|
||||
*/
|
||||
|
@ -619,6 +623,7 @@ static int hs_cmd_bans_del (CmdParams *cmdparams)
|
|||
* Command handler for BANS
|
||||
*
|
||||
* @param cmdparams
|
||||
* cmdparams->av[0] = sub command
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds, else NS_FAILURE
|
||||
*/
|
||||
|
@ -646,6 +651,9 @@ static int hs_cmd_bans (CmdParams *cmdparams)
|
|||
* Command handler for CHPASS
|
||||
*
|
||||
* @param cmdparams
|
||||
* cmdparams->av[0] = login
|
||||
* cmdparams->av[1] = old password
|
||||
* cmdparams->av[2] = new password
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds, else NS_FAILURE
|
||||
*/
|
||||
|
@ -669,7 +677,6 @@ static int hs_cmd_chpass (CmdParams *cmdparams)
|
|||
CommandReport(hs_bot, "%s changed the password for %s",
|
||||
cmdparams->source->name, vhe->nick);
|
||||
SaveVhost (vhe);
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
@ -686,6 +693,10 @@ static int hs_cmd_chpass (CmdParams *cmdparams)
|
|||
* Command handler for ADD
|
||||
*
|
||||
* @param cmdparams
|
||||
* cmdparams->av[0] = login
|
||||
* cmdparams->av[1] = real host mask
|
||||
* cmdparams->av[2] = vhost
|
||||
* cmdparams->av[3] = password
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds, else NS_FAILURE
|
||||
*/
|
||||
|
@ -756,6 +767,7 @@ static int hs_cmd_add (CmdParams *cmdparams)
|
|||
* Command handler for LIST
|
||||
*
|
||||
* @param cmdparams
|
||||
* cmdparams->av[0] = optionally max number to display
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds, else NS_FAILURE
|
||||
*/
|
||||
|
@ -816,6 +828,7 @@ static int hs_cmd_list (CmdParams *cmdparams)
|
|||
* Command handler for VIEW
|
||||
*
|
||||
* @param cmdparams
|
||||
* cmdparams->av[0] = login to view
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds, else NS_FAILURE
|
||||
*/
|
||||
|
@ -847,6 +860,7 @@ static int hs_cmd_view (CmdParams *cmdparams)
|
|||
/** @brief hs_cmd_del
|
||||
*
|
||||
* Command handler for DEL
|
||||
* cmdparams->av[0] = login to delete
|
||||
*
|
||||
* @param cmdparams
|
||||
*
|
||||
|
@ -882,6 +896,8 @@ static int hs_cmd_del (CmdParams *cmdparams)
|
|||
* Command handler for LOGIN
|
||||
*
|
||||
* @param cmdparams
|
||||
* cmdparams->av[0] = login
|
||||
* cmdparams->av[1] = password
|
||||
*
|
||||
* @return NS_SUCCESS if succeeds, else NS_FAILURE
|
||||
*/
|
||||
|
@ -889,19 +905,15 @@ static int hs_cmd_del (CmdParams *cmdparams)
|
|||
static int hs_cmd_login (CmdParams *cmdparams)
|
||||
{
|
||||
vhostentry *vhe;
|
||||
char *login;
|
||||
char *pass;
|
||||
|
||||
SET_SEGV_LOCATION();
|
||||
login = cmdparams->av[0];
|
||||
pass = cmdparams->av[1];
|
||||
/* Check HostName Against Data Contained in vhosts.data */
|
||||
vhe = lnode_find (vhost_list, login, findnick);
|
||||
vhe = lnode_find (vhost_list, cmdparams->av[0], findnick);
|
||||
if (vhe) {
|
||||
if (!ircstrcasecmp (vhe->passwd, pass)) {
|
||||
if (!ircstrcasecmp (vhe->passwd, cmdparams->av[1])) {
|
||||
irc_svshost (hs_bot, cmdparams->source, vhe->vhost);
|
||||
irc_prefmsg (hs_bot, cmdparams->source,
|
||||
"Your vhost %s has been set.", vhe->vhost);
|
||||
"Your vhost has been set to %s", vhe->vhost);
|
||||
nlog (LOG_NORMAL, "%s used LOGIN to obtain vhost of %s",
|
||||
cmdparams->source->name, vhe->vhost);
|
||||
if( hs_cfg.verbose ) {
|
||||
|
|
|
@ -140,12 +140,12 @@ bot_cmd ircdauth_commands[] =
|
|||
*
|
||||
* Init handler
|
||||
*
|
||||
* @param pointer to my module
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit( Module *modptr )
|
||||
int ModInit( void )
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
@ -174,12 +174,13 @@ int ModSynch( void )
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini( void )
|
||||
int ModFini (void)
|
||||
{
|
||||
del_services_cmd_list( ircdauth_commands );
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
/** @brief ModAuthUser
|
||||
|
|
|
@ -95,12 +95,12 @@ static BotInfo ls_botinfo =
|
|||
*
|
||||
* Init handler
|
||||
*
|
||||
* @param pointer to my module
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit( Module *mod_ptr )
|
||||
int ModInit( void )
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
@ -131,11 +131,12 @@ int ModSynch( void )
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini( void )
|
||||
int ModFini (void)
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
/** @brief ls_rose
|
||||
|
|
|
@ -141,11 +141,11 @@ configuration and starting databases.
|
|||
*
|
||||
* Init module
|
||||
*
|
||||
* @param pointer to our module structure
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
int ModInit (Module *mod_ptr)
|
||||
int ModInit( void )
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
@ -165,7 +165,7 @@ where you would init a bot if you wanted one.
|
|||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModSynch (void)
|
||||
int ModSynch( void )
|
||||
{
|
||||
/* Introduce a bot onto the network saving the bot handle */
|
||||
template_bot = AddBot (&template_bot_info);
|
||||
|
@ -184,11 +184,12 @@ databases.
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini (void)
|
||||
int ModFini (void)
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
NeoStats provides an API to send commands over IRC. These are designed
|
||||
|
|
|
@ -90,12 +90,12 @@ static BotInfo ms_botinfo =
|
|||
*
|
||||
* Init handler
|
||||
*
|
||||
* @param pointer to my module
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit( Module *mod_ptr )
|
||||
int ModInit( void )
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
@ -126,11 +126,12 @@ int ModSynch( void )
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini( void )
|
||||
int ModFini (void)
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
/** @brief ms_hail
|
||||
|
|
|
@ -148,12 +148,12 @@ int SaveStats(void)
|
|||
*
|
||||
* Init handler
|
||||
*
|
||||
* @param pointer to my module
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit (Module *mod_ptr)
|
||||
int ModInit( void )
|
||||
{
|
||||
SET_SEGV_LOCATION();
|
||||
StatServ.shutdown = 0;
|
||||
|
@ -220,10 +220,10 @@ int ModSynch (void)
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini (void)
|
||||
int ModFini (void)
|
||||
{
|
||||
StatServ.shutdown = 1;
|
||||
FiniServerStats ();
|
||||
|
@ -235,6 +235,7 @@ void ModFini (void)
|
|||
#ifdef USE_BERKELEY
|
||||
DBACloseTable();
|
||||
#endif
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
static int ss_set_html_cb (CmdParams *cmdparams, SET_REASON reason)
|
||||
|
|
|
@ -256,7 +256,7 @@ ModuleEvent module_events[] =
|
|||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
int ModInit( Module *mod_ptr )
|
||||
int ModInit( void )
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
@ -288,10 +288,11 @@ int ModSynch( void )
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini( void )
|
||||
int ModFini (void)
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -59,12 +59,12 @@ ModuleInfo module_info =
|
|||
*
|
||||
* Init handler
|
||||
*
|
||||
* @param pointer to my module
|
||||
* @param none
|
||||
*
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit( Module *modptr )
|
||||
int ModInit( void )
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
@ -92,8 +92,9 @@ int ModSynch( void )
|
|||
* @return none
|
||||
*/
|
||||
|
||||
void ModFini( void )
|
||||
int ModFini (void)
|
||||
{
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
|
||||
/** @brief ModAuthUser
|
||||
|
|
|
@ -255,7 +255,7 @@ load_module (const char *modfilename, Client * u)
|
|||
ModuleInfo *info_ptr = NULL;
|
||||
ModuleEvent *event_ptr = NULL;
|
||||
Module *mod_ptr = NULL;
|
||||
int (*ModInit) (Module *module_ptr);
|
||||
int (*ModInit) (void);
|
||||
CmdParams *cmdparams;
|
||||
|
||||
SET_SEGV_LOCATION();
|
||||
|
@ -339,7 +339,7 @@ load_module (const char *modfilename, Client * u)
|
|||
SET_SEGV_LOCATION();
|
||||
SET_RUN_LEVEL(mod_ptr);
|
||||
DBAOpenDatabase ();
|
||||
err = (*ModInit) (mod_ptr);
|
||||
err = (*ModInit) ();
|
||||
RESET_RUN_LEVEL();
|
||||
if (err < 1 || mod_ptr->error) {
|
||||
load_module_error (u, __("Unable to load module: %s. See %s.log for further information.",u), mod_ptr->info->name, mod_ptr->info->name);
|
||||
|
@ -410,7 +410,7 @@ unload_module (const char *modname, Client * u)
|
|||
Module *mod_ptr;
|
||||
hnode_t *modnode;
|
||||
int moduleindex;
|
||||
void (*ModFini) ();
|
||||
int (*ModFini) ( void );
|
||||
CmdParams *cmdparams;
|
||||
|
||||
SET_SEGV_LOCATION();
|
||||
|
|
|
@ -498,7 +498,7 @@ ModuleInfo module_info = {
|
|||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
int ModInit (Module *modptr)
|
||||
int ModInit (void)
|
||||
{
|
||||
ModuleConfig (rta_settings);
|
||||
if (InitRTAServ () != NS_SUCCESS) {
|
||||
|
@ -530,12 +530,13 @@ int ModSynch (void)
|
|||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
* @return NS_SUCCESS if suceeds else NS_FAILURE
|
||||
*/
|
||||
|
||||
void ModFini (void)
|
||||
int ModFini (void)
|
||||
{
|
||||
del_services_set_list (rta_settings);
|
||||
return NS_SUCCESS;
|
||||
}
|
||||
#else
|
||||
|
||||
|
|
Reference in a new issue