[NeoStats-Devel] [Commits] r2766 - in trunk: include modules/hostserv modules/statserv src
[email protected] Tue, 23 Aug 2005 06:38:57 +1000
| Newsgroups | gmane.comp.neostats.devel |
|---|---|
| Message-ID | <[email protected]> |
Author: Mark
Date: Tue Aug 23 04:38:47 2005
New Revision: 2766
Modified:
trunk/include/list.h
trunk/include/neostats.h
trunk/modules/hostserv/hostserv.c
trunk/modules/statserv/channel.c
trunk/modules/statserv/htmlstats.c
trunk/modules/statserv/network.c
trunk/modules/statserv/server.c
trunk/modules/statserv/tld.c
trunk/modules/statserv/user.c
trunk/src/bans.c
trunk/src/channels.c
trunk/src/dcc.c
trunk/src/dns.c
trunk/src/exclude.c
trunk/src/list.c
trunk/src/modes.c
trunk/src/modules.c
trunk/src/nsevents.c
trunk/src/servers.c
trunk/src/services.c
trunk/src/users.c
Log:
Isolate primary lists and hashes from module code plus some API additions for me structure data
Modified: trunk/include/list.h
==============================================================================
--- trunk/include/list.h (original)
+++ trunk/include/list.h Tue Aug 23 04:38:47 2005
@@ -178,6 +178,7 @@
EXPORTFUNC lnode_t *lnode_create_append (list_t *, void *);
EXPORTFUNC lnode_t *lnode_create_prepend (list_t *list, void *data);
EXPORTFUNC void *lnode_find (list_t * list, const void *key, int compare (const void *, const void *));
+EXPORTFUNC void list_delete_destroy_node( list_t * list, lnode_t * del );
#ifdef __cplusplus
}
Modified: trunk/include/neostats.h
==============================================================================
--- trunk/include/neostats.h (original)
+++ trunk/include/neostats.h Tue Aug 23 04:38:47 2005
@@ -633,8 +633,10 @@
EXPORTVAR extern tme me;
-
-
+#define NSGetChannelCount() me.channelcount
+#define NSGetServerCount() me.servercount
+#define NSGetUserCount() me.usercount
+#define NSGetAwayCount() me.awaycount
/** @brief Bans structure
*
@@ -1327,7 +1329,7 @@
EXPORTFUNC int IsChannelMember( const Channel *c, const Client *u );
EXPORTFUNC int test_cumode( const char *chan, const char *nick, const int flag );
EXPORTFUNC Channel *GetRandomChannel( void );
-EXPORTFUNC Client *GetRandomChannelMember( int uge, Channel *c );
+EXPORTFUNC Client *GetRandomChannelMember( Channel *c, int uge );
EXPORTFUNC char *GetRandomChannelKey( int length );
#define IsChanOp( chan, nick ) test_cumode( chan, nick, CUMODE_CHANOP )
@@ -1482,25 +1484,21 @@
/* List walk handler type */
typedef int (*ChannelListHandler) ( Channel *c, void *v );
-EXPORTFUNC int GetChannelList( ChannelListHandler handler, void *v );
+EXPORTFUNC int ProcessChannelList( ChannelListHandler handler, void *v );
/* List walk handler type */
-typedef int (*ChannelMemberHandler) ( Channel *c, ChannelMember *m, void *v );
-EXPORTFUNC int GetChannelMembers( Channel *c, ChannelMemberHandler handler, void *v );
+typedef int (*ChannelMemberListHandler) ( Channel *c, ChannelMember *m, void *v );
+EXPORTFUNC int ProcessChannelMembers( Channel *c, ChannelMemberListHandler handler, void *v );
/* List walk handler type */
typedef int (*UserListHandler) ( Client *u, void *v );
-EXPORTFUNC int GetUserList( UserListHandler handler, void *v );
+EXPORTFUNC int ProcessUserList( UserListHandler handler, void *v );
/* List walk handler type */
typedef int (*ServerListHandler) ( Client *s, void *v );
-EXPORTFUNC int GetServerList( ServerListHandler handler, void *v );
+EXPORTFUNC int ProcessServerList( ServerListHandler handler, void *v );
/* List walk handler type */
typedef int (*ModuleListHandler) ( Module *module_ptr, void *v );
-EXPORTFUNC int GetModuleList (ModuleListHandler handler, void *v );
+EXPORTFUNC int ProcessModuleList( ModuleListHandler handler, void *v );
EXPORTFUNC hash_t *GetServerHash( void );
-EXPORTFUNC hash_t *GetBanHash( void );
-EXPORTFUNC hash_t *GetChannelHash( void );
-EXPORTFUNC hash_t *GetUserHash( void );
-EXPORTFUNC hash_t *GetModuleHash( void );
EXPORTFUNC int HaveFeature( int mask );
Modified: trunk/modules/hostserv/hostserv.c
==============================================================================
--- trunk/modules/hostserv/hostserv.c (original)
+++ trunk/modules/hostserv/hostserv.c Tue Aug 23 04:38:47 2005
@@ -193,8 +193,7 @@
nlog( LOG_NOTICE, "Expiring old vhost: %s for %s", vhe->vhost, vhe->nick );
del_vhost( vhe );
hn2 = list_next( vhost_list, hn );
- list_delete( vhost_list, hn );
- lnode_destroy( hn );
+ list_delete_destroy_node( vhost_list, hn );
hn = hn2;
} else {
hn = list_next( vhost_list, hn );
@@ -966,8 +965,7 @@
CommandReport( hs_bot, "%s removed vhost %s for %s",
cmdparams->source->name, vhe->vhost, vhe->nick );
del_vhost( vhe );
- list_delete( vhost_list, hn );
- lnode_destroy( hn );
+ list_delete_destroy_node( vhost_list, hn );
return NS_SUCCESS;
}
Modified: trunk/modules/statserv/channel.c
==============================================================================
--- trunk/modules/statserv/channel.c (original)
+++ trunk/modules/statserv/channel.c Tue Aug 23 04:38:47 2005
@@ -304,8 +304,7 @@
}
cs = lnode_get( ln );
SaveChannel( cs );
- list_delete( channelstatlist, ln );
- lnode_destroy( ln );
+ list_delete_destroy_node( channelstatlist, ln );
ns_free( cs );
return NS_SUCCESS;
}
@@ -732,7 +731,7 @@
nlog( LOG_CRITICAL, "Unable to create channel stat list" );
return NS_FAILURE;
}
- GetChannelList( AddChannel, NULL );
+ ProcessChannelList( AddChannel, NULL );
return NS_SUCCESS;
}
Modified: trunk/modules/statserv/htmlstats.c
==============================================================================
--- trunk/modules/statserv/htmlstats.c (original)
+++ trunk/modules/statserv/htmlstats.c Tue Aug 23 04:38:47 2005
@@ -265,7 +265,7 @@
os_fprintf( opf, "<td>%d</td>\n", networkstats.servers.alltime.max );
os_fprintf( opf, "<td>%s</td>\n", sftime( networkstats.servers.alltime.ts_max ) );
os_fprintf( opf, "<tr><td colspan=\"3\">Users Set Away:</td>\n" );
- os_fprintf( opf, "<td colspan=\"3\">%d</td></tr></table>\n", me.awaycount );
+ os_fprintf( opf, "<td colspan=\"3\">%d</td></tr></table>\n", NSGetAwayCount() );
}
/** @brief html_dailystats
Modified: trunk/modules/statserv/network.c
==============================================================================
--- trunk/modules/statserv/network.c (original)
+++ trunk/modules/statserv/network.c Tue Aug 23 04:38:47 2005
@@ -242,7 +242,7 @@
irc_prefmsg( ss_bot, cmdparams->source, "Current Opers: %d", networkstats.opers.current );
irc_prefmsg( ss_bot, cmdparams->source, "Maximum Opers: %d [%s]",
networkstats.opers.alltime.max, sftime( networkstats.opers.alltime.ts_max ) );
- irc_prefmsg( ss_bot, cmdparams->source, "Users Set Away: %d", me.awaycount );
+ irc_prefmsg( ss_bot, cmdparams->source, "Users Set Away: %d", NSGetAwayCount() );
irc_prefmsg( ss_bot, cmdparams->source, "Current Servers: %d", networkstats.servers.current );
irc_prefmsg( ss_bot, cmdparams->source, "Maximum Servers: %d [%s]",
networkstats.servers.alltime.max, sftime( networkstats.servers.alltime.ts_max ) );
Modified: trunk/modules/statserv/server.c
==============================================================================
--- trunk/modules/statserv/server.c (original)
+++ trunk/modules/statserv/server.c Tue Aug 23 04:38:47 2005
@@ -741,7 +741,7 @@
return NS_FAILURE;
}
DBAFetchRows( SERVER_TABLE, LoadServerStats );
- GetServerList( AddServerStat, NULL );
+ ProcessServerList( AddServerStat, NULL );
return NS_SUCCESS;
}
Modified: trunk/modules/statserv/tld.c
==============================================================================
--- trunk/modules/statserv/tld.c (original)
+++ trunk/modules/statserv/tld.c Tue Aug 23 04:38:47 2005
@@ -70,8 +70,7 @@
{
tn2 = list_next( tldstatlist, tn );
ns_free( t );
- list_delete( tldstatlist, tn );
- lnode_destroy( tn );
+ list_delete_destroy_node( tldstatlist, tn );
tn = tn2;
continue;
}
Modified: trunk/modules/statserv/user.c
==============================================================================
--- trunk/modules/statserv/user.c (original)
+++ trunk/modules/statserv/user.c Tue Aug 23 04:38:47 2005
@@ -271,7 +271,7 @@
operlistserver = flags;
irc_prefmsg( ss_bot, cmdparams->source, "Online IRCops on server %s", operlistserver );
}
- GetUserList( operlist, ( void * )cmdparams->source );
+ ProcessUserList( operlist, ( void * )cmdparams->source );
irc_prefmsg( ss_bot, cmdparams->source, "End of list." );
return NS_SUCCESS;
}
@@ -311,7 +311,7 @@
{
SET_SEGV_LOCATION();
irc_prefmsg( ss_bot, cmdparams->source, "Online bots:" );
- GetUserList( botlist, ( void * )cmdparams->source );
+ ProcessUserList( botlist, ( void * )cmdparams->source );
irc_prefmsg( ss_bot, cmdparams->source, "End of list." );
return NS_SUCCESS;
}
@@ -328,5 +328,5 @@
void InitUserStats( void )
{
- GetUserList( AddUser, NULL );
+ ProcessUserList( AddUser, NULL );
}
Modified: trunk/src/bans.c
==============================================================================
--- trunk/src/bans.c (original)
+++ trunk/src/bans.c Tue Aug 23 04:38:47 2005
@@ -219,18 +219,3 @@
}
return NS_SUCCESS;
}
-
-/** @brief GetBanHash
- *
- * Get pointer to bans hash table
- * Use at own risk.
- *
- * @param none
- *
- * @return pointer to hash table
- */
-
-hash_t *GetBanHash( void )
-{
- return banhash;
-}
Modified: trunk/src/channels.c
==============================================================================
--- trunk/src/channels.c (original)
+++ trunk/src/channels.c Tue Aug 23 04:38:47 2005
@@ -229,7 +229,7 @@
if( !un ) {
nlog( LOG_WARNING, "del_user_channel: %s not found in channel %s", u->name, c->name );
} else {
- lnode_destroy( list_delete( u->user->chans, un ) );
+ list_delete_destroy_node( u->user->chans, un );
}
}
@@ -255,7 +255,7 @@
return;
}
cm = lnode_get( un );
- lnode_destroy( list_delete( c->members, un ) );
+ list_delete_destroy_node( c->members, un );
ns_free( cm );
dlog( DEBUG3, "del_channel_member: cur users %s %d (list %d)", c->name, c->users,( int )list_count( c->members ) );
c->users--;
@@ -678,7 +678,7 @@
* @return Client pointer selected or NULL if none
*/
-Client *GetRandomChannelMember(int uge, Channel *c)
+Client *GetRandomChannelMember( Channel *c, int uge )
{
ChannelMember *cm;
lnode_t *ln;
@@ -718,7 +718,7 @@
return key;
}
-int GetChannelList( ChannelListHandler handler, void *v )
+int ProcessChannelList( ChannelListHandler handler, void *v )
{
hnode_t *node;
hscan_t scan;
@@ -734,7 +734,7 @@
return NS_SUCCESS;
}
-int GetChannelMembers( Channel *c, ChannelMemberHandler handler, void *v )
+int ProcessChannelMembers( Channel *c, ChannelMemberListHandler handler, void *v )
{
ChannelMember *cm;
lnode_t *cmn;
@@ -749,11 +749,6 @@
return NS_SUCCESS;
}
-hash_t *GetChannelHash( void )
-{
- return channelhash;
-}
-
void *AllocChannelModPtr( Channel* c, int size )
{
void *ptr;
Modified: trunk/src/dcc.c
==============================================================================
--- trunk/src/dcc.c (original)
+++ trunk/src/dcc.c Tue Aug 23 04:38:47 2005
@@ -72,7 +72,7 @@
dccnode = lnode_find( dcclist, dcc->name, comparef );
if( dccnode )
{
- lnode_destroy( dccnode );
+ lnode_destroy( list_delete( dcclist, dccnode ) );
ns_free( dcc );
}
}
Modified: trunk/src/dns.c
==============================================================================
--- trunk/src/dns.c (original)
+++ trunk/src/dns.c Tue Aug 23 04:38:47 2005
@@ -273,8 +273,7 @@
ns_free (dnsdata->a);
ns_free (dnsdata);
lnode2 = list_next(dnslist, dnsnode);
- list_delete(dnslist, dnsnode);
- lnode_destroy(dnsnode);
+ list_delete_destroy_node( dnslist, dnsnode );
dnsnode = lnode2;
}
dnsnode = list_next(dnslist, dnsnode);
@@ -285,8 +284,7 @@
if (dnsdata->modptr == modptr) {
ns_free(dnsdata);
lnode2 = list_next(dnsqueue, dnsnode);
- list_delete(dnsqueue, dnsnode);
- lnode_destroy(dnsnode);
+ list_delete_destroy_node( dnsqueue, dnsnode );
dnsnode = lnode2;
}
dnsnode = list_next(dnsqueue, dnsnode);
@@ -342,8 +340,7 @@
dnsnode = list_next (dnslist, dnsnode);
ns_free (dnsdata->a);
ns_free (dnsdata);
- list_delete(dnslist, dnsnode1);
- lnode_destroy (dnsnode1);
+ list_delete_destroy_node( dnslist, dnsnode1 );
} else {
dlog(DEBUG1, "DNS: Calling callback function for lookup %s", dnsdata->lookupdata);
DNSStats.success++;
@@ -356,8 +353,7 @@
dnsnode = list_next (dnslist, dnsnode);
ns_free (dnsdata->a);
ns_free (dnsdata);
- list_delete(dnslist, dnsnode1);
- lnode_destroy (dnsnode1);
+ list_delete_destroy_node( dnslist, dnsnode1 );
}
}
dns_check_queue();
@@ -397,8 +393,7 @@
ns_free (dnsdata);
dnsnode2 = dnsnode;
dnsnode = list_next(dnsqueue, dnsnode);
- list_delete(dnsqueue, dnsnode2);
- lnode_destroy(dnsnode2);
+ list_delete_destroy_node( dnsqueue, dnsnode2 );
continue;
}
/* move from queue to active list */
Modified: trunk/src/exclude.c
==============================================================================
--- trunk/src/exclude.c (original)
+++ trunk/src/exclude.c Tue Aug 23 04:38:47 2005
@@ -473,8 +473,7 @@
exclude = lnode_get( node );
if( ircstrcasecmp( exclude->pattern, cmdparams->av[1] ) == 0 )
{
- list_delete( exclude_list, node );
- lnode_destroy( node );
+ list_delete_destroy_node( exclude_list, node );
DBADelete( "exclusions", exclude->pattern );
irc_prefmsg( cmdparams->bot, cmdparams->source, __( "%s delete from exclusion list",cmdparams->source ), exclude->pattern );
ns_free( exclude );
Modified: trunk/src/list.c
==============================================================================
--- trunk/src/list.c (original)
+++ trunk/src/list.c Tue Aug 23 04:38:47 2005
@@ -895,3 +895,12 @@
}
return NULL;
}
+
+/*
+ * Delete node from list and free it
+ */
+void list_delete_destroy_node( list_t * list, lnode_t * del )
+{
+ list_delete( list, del );
+ lnode_destroy( del );
+}
Modified: trunk/src/modes.c
==============================================================================
--- trunk/src/modes.c (original)
+++ trunk/src/modes.c Tue Aug 23 04:38:47 2005
@@ -596,8 +596,7 @@
dlog(DEBUG1, "ChanMode: can't find mode %c for channel %s", *modes, c->name);
} else {
m = lnode_get (mn);
- list_delete (c->modeparms, mn);
- lnode_destroy (mn);
+ list_delete_destroy_node( c->modeparms, mn );
ns_free (m);
}
} else {
Modified: trunk/src/modules.c
==============================================================================
--- trunk/src/modules.c (original)
+++ trunk/src/modules.c Tue Aug 23 04:38:47 2005
@@ -51,7 +51,7 @@
/* @brief Module hash list */
static hash_t *modulehash;
-/** @brief GetModuleList
+/** @brief ProcessModuleList
*
* Calls handler for all modules
*
@@ -61,7 +61,7 @@
* @return NS_SUCCESS if succeeds, NS_FAILURE if not
*/
-int GetModuleList( ModuleListHandler handler, void *v )
+int ProcessModuleList( ModuleListHandler handler, void *v )
{
Module *module_ptr;
hscan_t ms;
@@ -203,7 +203,7 @@
void AllModuleVersions( const char* nick, const char *remoteserver )
{
- GetModuleList( ModuleVersion, (void *)nick );
+ ProcessModuleList( ModuleVersion, (void *)nick );
}
/** @brief load_module_error
@@ -478,7 +478,7 @@
int ns_cmd_modlist( CmdParams* cmdparams )
{
SET_SEGV_LOCATION();
- GetModuleList( ReportModuleInfo, (void *)cmdparams->source );
+ ProcessModuleList( ReportModuleInfo, (void *)cmdparams->source );
irc_prefmsg( ns_botptr, cmdparams->source, __( "End of Module List", cmdparams->source ) );
return 0;
}
@@ -678,17 +678,3 @@
}
return NS_SUCCESS;
}
-
-/** @brief GetModuleHash
- *
- * Get module hash pointer
- *
- * @param none
- *
- * @return module hash pointer
- */
-
-hash_t *GetModuleHash( void )
-{
- return modulehash;
-}
Modified: trunk/src/nsevents.c
==============================================================================
--- trunk/src/nsevents.c (original)
+++ trunk/src/nsevents.c Tue Aug 23 04:38:47 2005
@@ -30,6 +30,12 @@
#include "perlmod.h"
#endif /* USE_PERL */
+typedef struct ModuleAllEvent
+{
+ Event event;
+ CmdParams* cmdparams;
+} ModuleAllEvent;
+
/** String descriptions of events for debug use.
* must match enum in events.h
*/
@@ -166,6 +172,26 @@
dlog( DEBUG5, "SendModuleEvent: %s has no event handler for %s", module_ptr->info->name, EventStrings[event] );
}
+/** @brief SendAllModuleEventHandler
+ *
+ * List walk handler to call event handler for all modules
+ * NeoStats core use only
+ *
+ * @param module_ptr pointer to module
+ * @param v pointer to cmdparams and event
+ *
+ * @return none
+ */
+
+static int SendAllModuleEventHandler( Module *module_ptr, void *v )
+{
+ ModuleAllEvent *mae = (ModuleAllEvent *)v;
+
+ if( module_ptr->event_list )
+ SendModuleEvent( mae->event, mae->cmdparams, module_ptr );
+ return NS_FALSE;
+}
+
/** @brief SendAllModuleEvent
*
* Call event handler for all modules
@@ -179,19 +205,13 @@
void SendAllModuleEvent( Event event, CmdParams* cmdparams )
{
- Module *module_ptr;
- hscan_t ms;
- hnode_t *mn;
+ ModuleAllEvent mae;
SET_SEGV_LOCATION();
dlog( DEBUG5, "SendAllModuleEvent: %s to all modules", EventStrings[event] );
- hash_scan_begin( &ms, GetModuleHash() );
- while( ( mn = hash_scan_next( &ms ) ) != NULL )
- {
- module_ptr = hnode_get( mn );
- if( module_ptr->event_list )
- SendModuleEvent( event, cmdparams, module_ptr );
- }
+ mae.event = event;
+ mae.cmdparams = cmdparams;
+ ProcessModuleList( SendAllModuleEventHandler, (void *)&mae );
}
/** @brief AddEvent
Modified: trunk/src/servers.c
==============================================================================
--- trunk/src/servers.c (original)
+++ trunk/src/servers.c Tue Aug 23 04:38:47 2005
@@ -274,7 +274,7 @@
hash_destroy(serverhash);
}
-int GetServerList (ServerListHandler handler, void *v)
+int ProcessServerList (ServerListHandler handler, void *v)
{
hnode_t *node;
hscan_t scan;
Modified: trunk/src/services.c
==============================================================================
--- trunk/src/services.c (original)
+++ trunk/src/services.c Tue Aug 23 04:38:47 2005
@@ -395,9 +395,9 @@
irc_prefmsg( ns_botptr, cmdparams->source, __( "Reconnect time: %d", cmdparams->source ), nsconfig.r_time );
irc_prefmsg( ns_botptr, cmdparams->source, __( "Requests: %d",cmdparams->source ), me.requests );
irc_prefmsg( ns_botptr, cmdparams->source, __( "Max sockets: %d( in use: %d )", cmdparams->source ), me.maxsocks, me.cursocks );
- irc_prefmsg( ns_botptr, cmdparams->source, __( "Current servers: %d", cmdparams->source ), me.servercount );
- irc_prefmsg( ns_botptr, cmdparams->source, __( "Current channels: %d", cmdparams->source ), me.channelcount );
- irc_prefmsg( ns_botptr, cmdparams->source, __( "Current users: %d( Away: %d )", cmdparams->source ), me.usercount, me.awaycount );
+ irc_prefmsg( ns_botptr, cmdparams->source, __( "Current servers: %d", cmdparams->source ), NSGetServerCount() );
+ irc_prefmsg( ns_botptr, cmdparams->source, __( "Current channels: %d", cmdparams->source ), NSGetChannelCount() );
+ irc_prefmsg( ns_botptr, cmdparams->source, __( "Current users: %d( Away: %d )", cmdparams->source ), NSGetUserCount(), NSGetAwayCount() );
if( nsconfig.debug )
irc_prefmsg( ns_botptr, cmdparams->source, __( "Debugging mode enabled", cmdparams->source ) );
else
Modified: trunk/src/users.c
==============================================================================
--- trunk/src/users.c (original)
+++ trunk/src/users.c Tue Aug 23 04:38:47 2005
@@ -439,7 +439,7 @@
SET_SEGV_LOCATION();
irc_prefmsg (ns_botptr, cmdparams->source, __("================USERLIST================", cmdparams->source));
if (!nick) {
- GetUserList (dumpuser, cmdparams);
+ ProcessUserList (dumpuser, cmdparams);
} else {
u = FindUser (nick);
if (u) {
@@ -590,7 +590,7 @@
}
}
-int GetUserList (UserListHandler handler, void *v)
+int ProcessUserList (UserListHandler handler, void *v)
{
Client *u;
hscan_t scan;