[NeoStats-Devel] NeoStats [Commits] r3059 - in /trunk: ChangeLog modules/statserv/channel.h modules/statserv/network.h modules/statserv/user.c
[email protected] Fri, 22 Dec 2006 21:02:53 -0000
| Newsgroups | gmane.comp.neostats.devel |
|---|---|
| Message-ID | <[email protected]> |
Author: Mark
Date: Sat Dec 23 05:02:52 2006
New Revision: 3059
URL: http://svn.neostats.net/cgi-bin/viewvc.cgi?rev=3059&root=NeoStats&view=rev
Log:
Fix StatServ oper counts
Modified:
trunk/ChangeLog
trunk/modules/statserv/channel.h
trunk/modules/statserv/network.h
trunk/modules/statserv/user.c
Modified: trunk/ChangeLog
URL: http://svn.neostats.net/cgi-bin/viewvc.cgi/trunk/ChangeLog?rev=3059&root=NeoStats&r1=3058&r2=3059&view=diff
==============================================================================
--- trunk/ChangeLog (original)
+++ trunk/ChangeLog Sat Dec 23 05:02:52 2006
@@ -5,6 +5,8 @@
Fish (F), Mark (M), DeadNotBuried (D)
===============================================================================
* NeoStats * Version 3.0.b1-dev
+ - Fix StatServ oper counts. (M)
+ - Fix 4 year old bug in module loading. (M)
- Fix up neostats startup script etc for cron related issues - Thanks to
Digerati for the heads up(F)
- add plexus 3 protocol file for reference (D)
Modified: trunk/modules/statserv/channel.h
URL: http://svn.neostats.net/cgi-bin/viewvc.cgi/trunk/modules/statserv/channel.h?rev=3059&root=NeoStats&r1=3058&r2=3059&view=diff
==============================================================================
--- trunk/modules/statserv/channel.h (original)
+++ trunk/modules/statserv/channel.h Sat Dec 23 05:02:52 2006
@@ -30,8 +30,8 @@
CHANNEL_SORT_MEMBERS,
CHANNEL_SORT_JOINS,
CHANNEL_SORT_KICKS,
- CHANNEL_SORT_TOPICS,
-}CHANNEL_SORT;
+ CHANNEL_SORT_TOPICS
+} CHANNEL_SORT;
typedef struct channelstat
{
@@ -44,7 +44,7 @@
statistic kicks;
statistic topics;
statistic joins;
-}channelstat;
+} channelstat;
typedef void (*ChannelStatHandler)( channelstat *cs, const void *v );
Modified: trunk/modules/statserv/network.h
URL: http://svn.neostats.net/cgi-bin/viewvc.cgi/trunk/modules/statserv/network.h?rev=3059&root=NeoStats&r1=3058&r2=3059&view=diff
==============================================================================
--- trunk/modules/statserv/network.h (original)
+++ trunk/modules/statserv/network.h Sat Dec 23 05:02:52 2006
@@ -24,7 +24,8 @@
#ifndef _NETWORK_H_
#define _NETWORK_H_
-typedef struct networkstat {
+typedef struct networkstat
+{
statistic servers;
statistic channels;
statistic users;
Modified: trunk/modules/statserv/user.c
URL: http://svn.neostats.net/cgi-bin/viewvc.cgi/trunk/modules/statserv/user.c?rev=3059&root=NeoStats&r1=3058&r2=3059&view=diff
==============================================================================
--- trunk/modules/statserv/user.c (original)
+++ trunk/modules/statserv/user.c Sat Dec 23 05:02:52 2006
@@ -80,6 +80,7 @@
int ss_event_mode( const CmdParams *cmdparams )
{
int add = 1;
+ int operadded = 0;
serverstat *ss;
char *modes = cmdparams->param;
@@ -94,32 +95,40 @@
{
switch( *modes )
{
- case '+':
- add = 1;
- break;
- case '-':
- add = 0;
- break;
- case 'O':
- case 'o':
- if( add )
- {
- dlog( DEBUG1, "Increasing OperCount for %s", ss->name );
- AddNetworkOper();
- AddServerOper( cmdparams->source );
- }
- else
- {
- if( IsOper( cmdparams->source ) )
+ case '+':
+ add = 1;
+ break;
+ case '-':
+ add = 0;
+ break;
+ case 'O':
+ case 'o':
+ if( add != 0 )
{
- dlog( DEBUG1, "Decreasing OperCount for %s", ss->name );
- DelNetworkOper();
- DelServerOper( cmdparams->source );
+ /* only inc opercount if we have not already added during this parse */
+ if( operadded == 0 )
+ {
+ dlog( DEBUG1, "Increasing OperCount for %s", ss->name );
+ AddNetworkOper();
+ AddServerOper( cmdparams->source );
+ /* Flag oper added */
+ operadded = 1;
+ }
}
- }
- break;
- default:
- break;
+ else
+ {
+ if( IsOper( cmdparams->source ) )
+ {
+ dlog( DEBUG1, "Decreasing OperCount for %s", ss->name );
+ DelNetworkOper();
+ DelServerOper( cmdparams->source );
+ /* Clear oper added to support +o-o+o correctly */
+ operadded = 0;
+ }
+ }
+ break;
+ default:
+ break;
}
modes++;
}