[NeoStats-Devel] [Commits] r2692 - in trunk: include modules/hostserv modules/statserv src
[email protected] Tue, 9 Aug 2005 16:51:25 +1000
| Newsgroups | gmane.comp.neostats.devel |
|---|---|
| Message-ID | <[email protected]> |
Author: Fish
Date: Tue Aug 9 14:51:21 2005
New Revision: 2692
Modified:
trunk/include/neostats.h
trunk/modules/hostserv/hostserv.c
trunk/modules/statserv/channel.c
trunk/modules/statserv/channel.h
trunk/modules/statserv/htmlstats.c
trunk/modules/statserv/htmlstats.h
trunk/modules/statserv/server.c
trunk/modules/statserv/stats.c
trunk/modules/statserv/stats.h
trunk/modules/statserv/statserv.c
trunk/src/perl.c
trunk/src/timer.c
Log:
AddTimer now takes a userptr so we can reference it when the handler is called for a timer (good for onshots that might be for different user structs)
Modified: trunk/include/neostats.h
==============================================================================
--- trunk/include/neostats.h (original)
+++ trunk/include/neostats.h Tue Aug 9 14:51:21 2005
@@ -831,7 +831,7 @@
/** @brief Message function types
*
*/
-typedef int (*timer_handler) ( void );
+typedef int (*timer_handler) ( void* );
/* Event system flags */
#define EVENT_FLAG_DISABLED 0x00000001 /* Event is disabled */
@@ -1094,6 +1094,8 @@
time_t lastrun;
/** Timer handler */
timer_handler handler;
+ /** Pointer to user suplied context */
+ void *userptr;
} Timer;
/** @brief BotInfo structure
@@ -1149,7 +1151,7 @@
EXPORTFUNC int ModuleConfig( bot_setting *bot_settings );
/* Add a new timer callback to NeoStats */
-EXPORTFUNC int AddTimer( TIMER_TYPE type, timer_handler handler, const char *name, int interval );
+EXPORTFUNC int AddTimer( TIMER_TYPE type, timer_handler handler, const char *name, int interval, void *userptr );
/* Delete a timer callback from NeoStats */
EXPORTFUNC int DelTimer( const char *timer_name );
/* Change timer callback interval counter */
Modified: trunk/modules/hostserv/hostserv.c
==============================================================================
--- trunk/modules/hostserv/hostserv.c (original)
+++ trunk/modules/hostserv/hostserv.c Tue Aug 9 14:51:21 2005
@@ -180,7 +180,7 @@
* @return NS_SUCCESS if succeeds, else NS_FAILURE
*/
-int ExpireOldHosts( void )
+int ExpireOldHosts( void *userptr )
{
lnode_t *hn, *hn2;
vhostentry *vhe;
@@ -320,7 +320,7 @@
if( reason == SET_CHANGE )
{
if( hs_cfg.expire ) {
- AddTimer( TIMER_TYPE_INTERVAL, ExpireOldHosts, "ExpireOldHosts", 7200 );
+ AddTimer( TIMER_TYPE_INTERVAL, ExpireOldHosts, "ExpireOldHosts", 7200, NULL );
} else {
DelTimer( "ExpireOldHosts" );
}
@@ -455,7 +455,7 @@
return NS_FAILURE;
}
if( hs_cfg.expire ) {
- AddTimer( TIMER_TYPE_INTERVAL, ExpireOldHosts, "ExpireOldHosts", 7200 );
+ AddTimer( TIMER_TYPE_INTERVAL, ExpireOldHosts, "ExpireOldHosts", 7200, NULL );
}
if( !HaveUmodeRegNick() )
{
Modified: trunk/modules/statserv/channel.c
==============================================================================
--- trunk/modules/statserv/channel.c (original)
+++ trunk/modules/statserv/channel.c Tue Aug 9 14:51:21 2005
@@ -389,7 +389,7 @@
return NS_FALSE;
}
-int DelOldChan( void )
+int DelOldChan( void *userptr )
{
time_t start;
Modified: trunk/modules/statserv/channel.h
==============================================================================
--- trunk/modules/statserv/channel.h (original)
+++ trunk/modules/statserv/channel.h Tue Aug 9 14:51:21 2005
@@ -62,7 +62,7 @@
int ss_event_topic( CmdParams *cmdparams );
int ss_event_kick( CmdParams *cmdparams );
int ss_cmd_channel( CmdParams *cmdparams );
-int DelOldChan( void );
+int DelOldChan( void* );
void InitChannelStats( void );
void FiniChannelStats( void );
void SaveChanStats( void );
Modified: trunk/modules/statserv/htmlstats.c
==============================================================================
--- trunk/modules/statserv/htmlstats.c (original)
+++ trunk/modules/statserv/htmlstats.c Tue Aug 9 14:51:21 2005
@@ -142,9 +142,9 @@
( int )ss->highest_ping, sftime( ss->ts_highest_ping ) );
if( ss->s )
os_fprintf( opf, "<tr><td>Current Ping</td><td colspan = 2>%d</td></tr>",
- ss->s->server->ping );
+ (int)ss->s->server->ping );
os_fprintf( opf, "<tr><td>Server Splits</td><td colspan = 2>%d</td></tr>",
- ss->splits.alltime.runningtotal );
+ (int)ss->splits.alltime.runningtotal );
}
static void html_srvlistdet( void )
@@ -402,7 +402,7 @@
os_fprintf( opf, "<table border=0><tr><th>Server Name</th><th>Users/Max</th><th>Opers/Max</th><th>Ping/Max</th></tr>" );
os_fprintf( opf, "<tr><td>%s</td><td>%d/%d</td><td>%d/%d</td><td>%d/%d</td></tr>\n",
ss->name, s->server->users, ss->users.alltime.max, ss->opers.current, ss->opers.alltime.max,
- s->server->ping,( int )ss->highest_ping );
+ (int)s->server->ping,( int )ss->highest_ping );
get_map( s->name, level + 1 );
} else if( ( level > 0 ) && !ircstrcasecmp( uplink, s->uplinkname ) ) {
if( StatServ.exclusions && IsExcluded( s ) ) {
@@ -413,7 +413,7 @@
{
os_fprintf( opf, "<tr><td>%s</td><td>%d/%d</td><td>%d/%d</td><td>%d/%d</td></tr>\n",
ss->name, s->server->users, ss->users.alltime.max, ss->opers.current, ss->opers.alltime.max,
- s->server->ping,( int )ss->highest_ping );
+ (int)s->server->ping,( int )ss->highest_ping );
}
else
{
@@ -423,7 +423,7 @@
}
os_fprintf( opf, "<tr><td>%s\\_%s</td><td>%d/%d</td><td>%d/%d</td><td>%d/%d</td></tr>\n",
buf, ss->name, s->server->users, ss->users.alltime.max, ss->opers.current, ss->opers.alltime.max,
- s->server->ping,( int )ss->highest_ping );
+ (int)s->server->ping,( int )ss->highest_ping );
}
get_map( s->name, level + 1 );
}
@@ -436,7 +436,7 @@
os_fputs( "</TABLE>\n", opf );
}
-int ss_html( void )
+int ss_html( void *userptr )
{
#define HTMLREADBUFSIZE 512
static char buf[HTMLREADBUFSIZE];
@@ -495,6 +495,6 @@
{
nlog( LOG_NOTICE, "%s!%s@%s forced an update of the HTML file.",
cmdparams->source->name, cmdparams->source->user->username, cmdparams->source->user->hostname );
- ss_html();
+ ss_html( NULL);
return NS_SUCCESS;
}
Modified: trunk/modules/statserv/htmlstats.h
==============================================================================
--- trunk/modules/statserv/htmlstats.h (original)
+++ trunk/modules/statserv/htmlstats.h Tue Aug 9 14:51:21 2005
@@ -25,6 +25,6 @@
#define _HTMLSTATS_H_
int ss_cmd_forcehtml (CmdParams *cmdparams);
-int ss_html (void);
+int ss_html (void *);
#endif /* _HTMLSTATS_H_ */
Modified: trunk/modules/statserv/server.c
==============================================================================
--- trunk/modules/statserv/server.c (original)
+++ trunk/modules/statserv/server.c Tue Aug 9 14:51:21 2005
@@ -215,7 +215,7 @@
irc_prefmsg (ss_bot, u,
"\2%-45s [ %d/%d ] [ %d/%d ] [ %d/%ld ]",
ss->name, s->server->users, (int)ss->users.alltime.max,
- ss->opers.current, ss->opers.alltime.max, s->server->ping, ss->highest_ping);
+ ss->opers.current, ss->opers.alltime.max, (int)s->server->ping, ss->highest_ping);
makemap(s->name, u, level + 1);
} else if ((level > 0) && (s->uplink) && !ircstrcasecmp (s->uplink->name, uplink)) {
if (StatServ.exclusions && IsExcluded(s)) {
@@ -227,7 +227,7 @@
irc_prefmsg (ss_bot, u,
"\2%-40s [ %d/%d ] [ %d/%d ] [ %d/%ld ]",
ss->name, s->server->users, (int)ss->users.alltime.max,
- ss->opers.current, ss->opers.alltime.max, s->server->ping, ss->highest_ping);
+ ss->opers.current, ss->opers.alltime.max, (int)s->server->ping, ss->highest_ping);
}
else
{
@@ -238,7 +238,7 @@
irc_prefmsg (ss_bot, u,
"%s \\_\2%-40s [ %d/%d ] [ %d/%d ] [ %d/%ld ]",
buf, ss->name, s->server->users, (int)ss->users.alltime.max,
- ss->opers.current, ss->opers.alltime.max, s->server->ping, ss->highest_ping);
+ ss->opers.current, ss->opers.alltime.max, (int)s->server->ping, ss->highest_ping);
}
makemap(s->name, u, level + 1);
}
@@ -386,7 +386,7 @@
irc_prefmsg (ss_bot, cmdparams->source, "Higest ping: %-3d at %s",
(int)ss->highest_ping, sftime(ss->ts_highest_ping));
if (s) {
- irc_prefmsg (ss_bot, cmdparams->source, "Current Ping: %-3d", s->server->ping);
+ irc_prefmsg (ss_bot, cmdparams->source, "Current Ping: %-3d", (int)s->server->ping);
}
if (ss->splits.alltime.runningtotal >= 1) {
irc_prefmsg (ss_bot, cmdparams->source,
Modified: trunk/modules/statserv/stats.c
==============================================================================
--- trunk/modules/statserv/stats.c (original)
+++ trunk/modules/statserv/stats.c Tue Aug 9 14:51:21 2005
@@ -241,7 +241,7 @@
announce(StatServ.lagalert, announce_buf);
}
-int ResetStatistics (void)
+int ResetStatistics (void *userptr)
{
SET_SEGV_LOCATION();
dlog (DEBUG1, "Reset Statistics");
@@ -252,7 +252,7 @@
return NS_SUCCESS;
}
-int AverageStatistics (void)
+int AverageStatistics (void *userptr)
{
SET_SEGV_LOCATION();
dlog (DEBUG1, "Average Statistics");
Modified: trunk/modules/statserv/stats.h
==============================================================================
--- trunk/modules/statserv/stats.h (original)
+++ trunk/modules/statserv/stats.h Tue Aug 9 14:51:21 2005
@@ -44,10 +44,10 @@
void AverageStatisticEntry (statisticentry *stat, unsigned int current);
void AverageStatistic (statistic *stat);
-int AverageStatistics (void);
+int AverageStatistics (void *);
void ResetStatisticEntry (statisticentry *stat, unsigned int current);
void ResetStatistic (statistic *stat);
-int ResetStatistics (void);
+int ResetStatistics (void *);
int IncStatisticEntry (statisticentry *stat, unsigned int current);
int IncStatistic (statistic *stat);
void DecStatisticEntry (statisticentry *stat, unsigned int current);
Modified: trunk/modules/statserv/statserv.c
==============================================================================
--- trunk/modules/statserv/statserv.c (original)
+++ trunk/modules/statserv/statserv.c Tue Aug 9 14:51:21 2005
@@ -135,7 +135,7 @@
ss_settings,
};
-int SaveStats(void)
+int SaveStats(void *userptr)
{
SET_SEGV_LOCATION();
SaveServerStats ();
@@ -191,21 +191,21 @@
return NS_FAILURE;
}
/* Timer to save the database */
- AddTimer (TIMER_TYPE_INTERVAL, SaveStats, "SaveStats", DBSAVETIME);
+ AddTimer (TIMER_TYPE_INTERVAL, SaveStats, "SaveStats", DBSAVETIME, NULL);
/* Timer to output html */
if (StatServ.html) {
- AddTimer (TIMER_TYPE_INTERVAL, ss_html, "ss_html", StatServ.htmltime);
+ AddTimer (TIMER_TYPE_INTERVAL, ss_html, "ss_html", StatServ.htmltime, NULL);
/* Initial output at load */
- ss_html ();
+ ss_html ( NULL );
}
/* Timer to reset timeslice stats */
- AddTimer (TIMER_TYPE_MIDNIGHT, ResetStatistics, "ResetStatistics", 0);
+ AddTimer (TIMER_TYPE_MIDNIGHT, ResetStatistics, "ResetStatistics", 0, NULL);
/* Timer to average stats */
- AddTimer (TIMER_TYPE_INTERVAL, AverageStatistics, "AverageStatistics", TS_ONE_HOUR);
+ AddTimer (TIMER_TYPE_INTERVAL, AverageStatistics, "AverageStatistics", TS_ONE_HOUR, NULL);
/* Initial average at load */
- AverageStatistics();
+ AverageStatistics( NULL );
/* Timer to delete old channels */
- AddTimer (TIMER_TYPE_INTERVAL, DelOldChan, "DelOldChan", TS_ONE_HOUR);
+ AddTimer (TIMER_TYPE_INTERVAL, DelOldChan, "DelOldChan", TS_ONE_HOUR, NULL);
return NS_SUCCESS;
}
@@ -240,7 +240,7 @@
return NS_SUCCESS;
}
if (StatServ.html) {
- AddTimer (TIMER_TYPE_INTERVAL, ss_html, "ss_html", StatServ.htmltime);
+ AddTimer (TIMER_TYPE_INTERVAL, ss_html, "ss_html", StatServ.htmltime, NULL);
} else {
DelTimer ("ss_html");
}
@@ -261,7 +261,7 @@
return NS_SUCCESS;
}
fclose (opf);
- ss_html ();
+ ss_html (NULL);
}
return NS_SUCCESS;
}
Modified: trunk/src/perl.c
==============================================================================
--- trunk/src/perl.c (original)
+++ trunk/src/perl.c Tue Aug 9 14:51:21 2005
@@ -1467,7 +1467,14 @@
newCONSTSUB (stash, "NS_ERR_PARAM_OUT_OF_RANGE", newSViv(NS_ERR_PARAM_OUT_OF_RANGE));
newCONSTSUB (stash, "NS_ERR_UNKNOWN_COMMAND", newSViv(NS_ERR_UNKNOWN_COMMAND));
newCONSTSUB (stash, "NS_ERR_NO_PERMISSION", newSViv(NS_ERR_NO_PERMISSION));
-
+
+ newCONSTSUB (stash, "TIMER_TYPE_INTERVAL", newSViv(TIMER_TYPE_INTERVAL));
+ newCONSTSUB (stash, "TIMER_TYPE_MIDNIGHT", newSViv(TIMER_TYPE_MIDNIGHT));
+ newCONSTSUB (stash, "TIMER_TYPE_DAILY", newSViv(TIMER_TYPE_DAILY));
+ newCONSTSUB (stash, "TIMER_TYPE_WEEKLY", newSViv(TIMER_TYPE_WEEKLY));
+ newCONSTSUB (stash, "TIMER_TYPE_MONTHLY", newSViv(TIMER_TYPE_MONTHLY));
+ newCONSTSUB (stash, "TIMER_TYPE_COUNTDOWN", newSViv(TIMER_TYPE_COUNTDOWN));
+
newCONSTSUB (stash, "NS_SUCCESS", newSViv (NS_SUCCESS));
Modified: trunk/src/timer.c
==============================================================================
--- trunk/src/timer.c (original)
+++ trunk/src/timer.c Tue Aug 9 14:51:21 2005
@@ -179,7 +179,7 @@
* @return NS_SUCCESS if added, NS_FAILURE if not
*/
int
-AddTimer (TIMER_TYPE type, timer_handler handler, const char *name, int interval)
+AddTimer (TIMER_TYPE type, timer_handler handler, const char *name, int interval, void *userptr)
{
Timer *timer;
Module* moduleptr;
@@ -201,6 +201,7 @@
timer->lastrun = me.now;
timer->moduleptr = moduleptr;
timer->handler = handler;
+ timer->userptr = userptr;
dlog (DEBUG2, "AddTimer: Module %s added timer %s", moduleptr->info->name, name);
return NS_SUCCESS;
}
@@ -373,7 +374,7 @@
if (setjmp (sigvbuf) == 0) {
dlog (DEBUG3, "run_mod_timers: Running timer %s for module %s", timer->name, timer->moduleptr->info->name);
SET_RUN_LEVEL (timer->moduleptr);
- if (timer->handler () < 0) {
+ if (timer->handler (timer->userptr) < 0) {
dlog (DEBUG2, "run_mod_timers: Deleting Timer %s for Module %s as requested", timer->name, timer->moduleptr->info->name);
hash_scan_delete (timerhash, tn);
hnode_destroy (tn);