Add FLATMAP option to statserv

This commit is contained in:
Mark 2005-04-09 21:04:38 +00:00
parent 02eb039eca
commit 550dd47560
6 changed files with 43 additions and 13 deletions

View file

@ -4,6 +4,8 @@ Anything we add/remove/fix/change is in here (even our rants)
Fish (F), Mark (M), DeadNotBuried (D)
===============================================================================
* NeoStats * Version 3.0.a3-dev
- StatServ: Add FLATMAP option to prevent display of network layout in MAP
command and HTML output (Bug 220). (M)
- Add support for IRCd protocol modules to make server version requests. (M)
- Add support for IRCd protocol modules to call core numeric reply
handlers. (M)

View file

@ -409,13 +409,22 @@ void get_map( char *uplink, int level )
get_map( s->name, level );
}
/* its not the root server */
buf[0]='\0';
for( i = 1; i < level; i++ ) {
ircsnprintf( buf, MAPBUFSIZE, "%s&nbsp&nbsp&nbsp&nbsp&nbsp|", buf );
if( StatServ.flatmap )
{
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 );
}
else
{
buf[0]='\0';
for( i = 1; i < level; i++ ) {
ircsnprintf( buf, MAPBUFSIZE, "%s&nbsp&nbsp&nbsp&nbsp&nbsp|", buf );
}
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 );
}
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 );
get_map( s->name, level + 1 );
}
}

View file

@ -222,14 +222,24 @@ static void makemap(char *uplink, Client * u, int level)
makemap(s->name, u, level);
}
/* its not the root server */
buf[0]='\0';
for (i = 1; i < level; i++) {
strlcat (buf, " |", 256);
if( StatServ.flatmap )
{
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);
}
else
{
buf[0]='\0';
for (i = 1; i < level; i++) {
strlcat (buf, " |", 256);
}
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);
}
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);
makemap(s->name, u, level + 1);
}
}

View file

@ -63,6 +63,12 @@ const char *ss_help_set_exclusions[] = {
NULL
};
const char *ss_help_set_flatmap[] = {
"\2FLATMAP <ON|OFF>\2",
"Whether StatServ shows map with links or as flat list",
NULL
};
const char *ss_help_set_html[] = {
"\2HTML <ON|OFF>\2",
"Enable or disable HTML statistics generation.",

View file

@ -118,6 +118,7 @@ static bot_setting ss_settings[]=
{"LAGALERT", &StatServ.lagalert, SET_TYPE_INT, 0, 3, NS_ULEVEL_ADMIN, NULL, ss_help_set_lagalert, NULL, (void *)1},
{"RECORDALERT", &StatServ.recordalert, SET_TYPE_INT, 0, 3, NS_ULEVEL_ADMIN, NULL, ss_help_set_recordalert, NULL, (void *)1},
{"EXCLUSIONS", &StatServ.exclusions, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, ss_help_set_exclusions, ss_set_exclusions_cb, (void *)0},
{"FLATMAP", &StatServ.flatmap, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, ss_help_set_flatmap, NULL, (void *)0},
{NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, (void *)0},
};

View file

@ -48,6 +48,7 @@ struct StatServ {
int msglimit;
int shutdown;
int exclusions;
int flatmap;
} StatServ;
/* ss_help.c */
@ -65,6 +66,7 @@ extern const char *ss_help_channel[];
extern const char *ss_help_set_htmlpath[];
extern const char *ss_help_set_html[];
extern const char *ss_help_set_exclusions[];
extern const char *ss_help_set_flatmap[];
extern const char *ss_help_set_msginterval[];
extern const char *ss_help_set_msglimit[];
extern const char *ss_help_set_lagtime[];