diff --git a/ChangeLog b/ChangeLog index 344d75fd..6e249277 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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) diff --git a/modules/statserv/htmlstats.c b/modules/statserv/htmlstats.c index fd70de34..5ce10bd6 100644 --- a/modules/statserv/htmlstats.c +++ b/modules/statserv/htmlstats.c @@ -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     |", buf ); + if( StatServ.flatmap ) + { + os_fprintf( opf, "%s%d/%d%d/%d%d/%d\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     |", buf ); + } + os_fprintf( opf, "%s\\_%s%d/%d%d/%d%d/%d\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, "%s\\_%s%d/%d%d/%d%d/%d\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 ); } } diff --git a/modules/statserv/server.c b/modules/statserv/server.c index fdf1fa55..65142b4d 100644 --- a/modules/statserv/server.c +++ b/modules/statserv/server.c @@ -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); } } diff --git a/modules/statserv/ss_help.c b/modules/statserv/ss_help.c index 85a4cb10..b88494a7 100644 --- a/modules/statserv/ss_help.c +++ b/modules/statserv/ss_help.c @@ -63,6 +63,12 @@ const char *ss_help_set_exclusions[] = { NULL }; +const char *ss_help_set_flatmap[] = { + "\2FLATMAP \2", + "Whether StatServ shows map with links or as flat list", + NULL +}; + const char *ss_help_set_html[] = { "\2HTML \2", "Enable or disable HTML statistics generation.", diff --git a/modules/statserv/statserv.c b/modules/statserv/statserv.c index dbc23a84..0c138cfa 100644 --- a/modules/statserv/statserv.c +++ b/modules/statserv/statserv.c @@ -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}, }; diff --git a/modules/statserv/statserv.h b/modules/statserv/statserv.h index 6b89e9da..ada31e94 100644 --- a/modules/statserv/statserv.h +++ b/modules/statserv/statserv.h @@ -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[];