[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;