-/* module.c - NeonServ v5.4
+/* module.c - NeonServ v5.6
* Copyright (C) 2011-2012 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
timeq_add_name("stats", 60, module_id, stats_timer_callback, NULL);
}
-static void module_loop() {
-
-}
-
static void module_stop(int type) {
timeq_del_name("stats");
}
if(get_int_field(tmp))
pkgpos += sprintf(pkgbuf + pkgpos, "*\n");
else {
- struct ClientSocket *bot, *bot1, *bot2, *bot3;
+ struct ClientSocket *bot, *bot1 = NULL, *bot2 = NULL, *bot3 = NULL;
for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
if(bot->botid == 1 && (bot->flags & SOCKET_FLAG_PREFERRED))
bot1 = bot;
else
bot = bot3;
if(bot) {
- pkgpos += sprintf(pkgbuf + pkgpos, "%s!%s@%s %d\n", bot->user->nick, bot->user->ident, bot->host, bot->port);
+ pkgpos += sprintf(pkgbuf + pkgpos, "%s!%s@%s %d\n", (bot->user ? bot->user->nick : "*"), (bot->user ? bot->user->ident : "*"), (bot->host ? bot->host : "*"), bot->port);
} else
pkgpos += sprintf(pkgbuf + pkgpos, "?\n");
}
int chanuser_count = getChanUserCount();
pkgpos += sprintf(pkgbuf + pkgpos, "%d %d\n", user_count, chanuser_count);
}
+ pkgpos += sprintf(pkgbuf + pkgpos, "%lu\n", getStartTime());
pkgbuf[pkgpos] = 0;
//send package
#ifndef WIN32
if (!host) return;
si_other.sin_addr = *(struct in_addr*)host->h_addr;
}
+ sendto(sock, pkgbuf, pkgpos, 0, &si_other, sizeof(si_other));
#else
struct sockaddr_in si_other;
int sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sock == -1) return;
si_other.sin_family = AF_INET;
si_other.sin_port = htons(STATS_UPDATE_PORT);
- si_other.sin_addr.s_addr = inet_addr(client->host);
+ si_other.sin_addr.s_addr = inet_addr(STATS_UPDATE_HOST);
if (si_other.sin_addr.s_addr == INADDR_NONE) {
- struct hostent *host = gethostbyname(client->host);
+ struct hostent *host = gethostbyname(STATS_UPDATE_HOST);
if(!host) return;
memcpy(&(si_other.sin_addr), host->h_addr_list[0], 4);
}
+ sendto(sock, pkgbuf, pkgpos, 0, (struct sockaddr *) &si_other, sizeof(si_other));
#endif
- sendto(sock, pkgbuf, pkgpos, 0, &si_other, sizeof(si_other));
close(sock);
}
-MODULE_HEADER(module_initialize, module_start, module_loop, module_stop);
+MODULE_HEADER(module_initialize, module_start, module_stop);