X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=cmd_neonserv_netinfo.c;h=c8fd1b643d87ecaa4fea62678e2e0ca9912c8765;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=baf926e176b163b2329e5268830d3b7ee9c08e7c;hpb=296b958ce326f1fd8f59c6a76e48348364e19a6c;p=NeonServV5.git diff --git a/cmd_neonserv_netinfo.c b/cmd_neonserv_netinfo.c index baf926e..c8fd1b6 100644 --- a/cmd_neonserv_netinfo.c +++ b/cmd_neonserv_netinfo.c @@ -1,12 +1,15 @@ +#include "cmd_neonserv.h" + /* * no args */ -static CMD_BIND(neonserv_cmd_netinfo) { + +CMD_BIND(neonserv_cmd_netinfo) { reply(getTextBot(), user, "NS_NETINFO_HEADER"); char tmp[MAXLEN]; struct Table *table; - table = table_init(2, 5, 0); + table = table_init(2, 18, 0); char *content[2]; content[0] = get_language_string(user, "NS_NETINFO_UPTIME"); @@ -16,7 +19,7 @@ static CMD_BIND(neonserv_cmd_netinfo) { content[0] = get_language_string(user, "NS_NETINFO_BOTS"); struct ClientSocket *cclient; int bot_count = 0, connected_bot_count = 0; - unsigned long traffic_in = 0, traffic_out = 0; + float traffic_in = 0, traffic_out = 0; for(cclient = getBots(0, NULL); cclient; cclient = getBots(0, cclient)) { bot_count++; if(cclient->flags & SOCKET_FLAG_READY) @@ -29,38 +32,123 @@ static CMD_BIND(neonserv_cmd_netinfo) { table_add(table, content); content[0] = get_language_string(user, "NS_NETINFO_TRAFFIC"); - sprintf(tmp, "in: %lu kb out: %lu kb", traffic_in / 1024, traffic_out / 1024); + sprintf(tmp, "in: %.2f kb out: %.2f kb", traffic_in / 1024, traffic_out / 1024); content[1] = tmp; table_add(table, content); int channel_count = getChannelCount(); float channel_memory = channel_count * sizeof(struct ChanNode); + int channel_ban_count = getChanBanCount(); + float channel_ban_memory = channel_ban_count * sizeof(struct BanNode); int user_count = getUserCount(); float user_memory = user_count * sizeof(struct UserNode); int chanuser_count = getChanUserCount(); float chanuser_memory = chanuser_count * sizeof(struct ChanUser); - float total_memory = channel_memory + user_memory + chanuser_memory; + float total_memory = channel_memory + channel_ban_memory + user_memory + chanuser_memory; content[0] = get_language_string(user, "NS_NETINFO_CACHE"); - sprintf(tmp, "%f kB (%f MB)", total_memory / 1024, total_memory / 1024 / 1024); + sprintf(tmp, "%.2f kB (%.2f MB)", total_memory / 1024, total_memory / 1024 / 1024); + content[1] = tmp; + table_add(table, content); + + content[0] = get_language_string(user, "NS_NETINFO_CHANNEL"); + sprintf(tmp, "%d %.2f kB (%d * %lu B = %.2f kB)", channel_count, channel_memory / 1024, channel_count, sizeof(struct ChanNode), channel_memory / 1024); + content[1] = tmp; + table_add(table, content); + + content[0] = get_language_string(user, "NS_NETINFO_CHANNEL_BAN"); + sprintf(tmp, "%d %.2f kB (%d * %lu B = %.2f kB)", channel_ban_count, channel_ban_memory / 1024, channel_ban_count, sizeof(struct BanNode), channel_ban_memory / 1024); + content[1] = tmp; + table_add(table, content); + + content[0] = get_language_string(user, "NS_NETINFO_USER"); + sprintf(tmp, "%d %.2f kB (%d * %lu B = %.2f kB)", user_count, user_memory / 1024, user_count, sizeof(struct UserNode), user_memory / 1024); + content[1] = tmp; + table_add(table, content); + + content[0] = get_language_string(user, "NS_NETINFO_CHANUSER"); + sprintf(tmp, "%d %.2f kB (%d * %lu B = %.2f kB)", chanuser_count, chanuser_memory / 1024, chanuser_count, sizeof(struct ChanUser), chanuser_memory / 1024); + content[1] = tmp; + table_add(table, content); + + MYSQL_RES *res; + MYSQL_ROW row; + printf_mysql_query("SHOW TABLE STATUS"); + res = mysql_use(); + int mysql_entrys[4]; + float mysql_length[5]; + total_memory = 0; + mysql_entrys[0] = 0; mysql_entrys[1] = 0; mysql_entrys[2] = 0; mysql_entrys[3] = 0; + mysql_length[0] = 0; mysql_length[1] = 0; mysql_length[2] = 0; mysql_length[3] = 0; mysql_length[4] = 0; + while ((row = mysql_fetch_row(res)) != NULL) { + if(!stricmp(row[0], "channels")) { + mysql_entrys[0] = atoi(row[4]); + mysql_length[0] = atof(row[6]); + total_memory += atof(row[6]); + } else if(!stricmp(row[0], "bans")) { + mysql_entrys[1] = atoi(row[4]); + mysql_length[1] = atof(row[6]); + total_memory += atof(row[6]); + } else if(!stricmp(row[0], "users")) { + mysql_entrys[2] = atoi(row[4]); + mysql_length[2] = atof(row[6]); + total_memory += atof(row[6]); + } else if(!stricmp(row[0], "chanusers")) { + mysql_entrys[3] = atoi(row[4]); + mysql_length[3] = atof(row[6]); + total_memory += atof(row[6]); + } else { + mysql_length[4] += atof(row[6]); + total_memory += atof(row[6]); + } + } + + content[0] = get_language_string(user, "NS_NETINFO_DATABASE"); + sprintf(tmp, "%.2f kB (%.2f MB)", total_memory / 1024, total_memory / 1024 / 1024); content[1] = tmp; table_add(table, content); content[0] = get_language_string(user, "NS_NETINFO_CHANNEL"); - sprintf(tmp, "%d %f kB (%d * %lu B = %f kB)", channel_count, channel_memory / 1024, channel_count, sizeof(struct ChanNode), channel_memory / 1024); + sprintf(tmp, "%d %.2f kB", mysql_entrys[0], mysql_length[0] / 1024); + content[1] = tmp; + table_add(table, content); + + content[0] = get_language_string(user, "NS_NETINFO_CHANNEL_BAN"); + sprintf(tmp, "%d %.2f kB", mysql_entrys[1], mysql_length[1] / 1024); content[1] = tmp; table_add(table, content); content[0] = get_language_string(user, "NS_NETINFO_USER"); - sprintf(tmp, "%d %f kB (%d * %lu B = %f kB)", user_count, user_memory / 1024, user_count, sizeof(struct UserNode), user_memory / 1024); + sprintf(tmp, "%d %.2f kB", mysql_entrys[2], mysql_length[2] / 1024); content[1] = tmp; table_add(table, content); content[0] = get_language_string(user, "NS_NETINFO_CHANUSER"); - sprintf(tmp, "%d %f kB (%d * %lu B = %f kB)", chanuser_count, chanuser_memory / 1024, chanuser_count, sizeof(struct ChanUser), chanuser_memory / 1024); + sprintf(tmp, "%d %.2f kB", mysql_entrys[3], mysql_length[3] / 1024); + content[1] = tmp; + table_add(table, content); + + content[0] = get_language_string(user, "NS_NETINFO_OTHER"); + sprintf(tmp, "* %.2f kB", mysql_length[4] / 1024); content[1] = tmp; table_add(table, content); + if(strcmp(revision, "")) + sprintf(tmp, "%s (%s)", NEONSERV_VERSION, revision); + else + strcpy(tmp, NEONSERV_VERSION); + content[0] = get_language_string(user, "NS_NETINFO_VERSION"); + content[1] = tmp; + table_add(table, content); + + content[0] = get_language_string(user, "NS_NETINFO_COMPILER"); + content[1] = build_language_string(user, tmp, "NS_NETINFO_COMPILER_VALUE", COMPILER, creation); + table_add(table, content); + + content[0] = get_language_string(user, "NS_NETINFO_CODE"); + content[1] = build_language_string(user, tmp, "NS_NETINFO_CODE_VALUE", codelines); + table_add(table, content); + char **table_lines = table_end(table); int i; for(i = 0; i < table->entrys; i++) { @@ -68,3 +156,4 @@ static CMD_BIND(neonserv_cmd_netinfo) { } table_free(table); } +