if(get_int_field(tmp))
pkgpos += sprintf(pkgbuf + pkgpos, "*\n");
else {
- struct ClientSocket *bot, *bot1, *bot2, *bot3;
+ sprintf(tmp, "modules/%s/use_bot", modname);
+ char *botname = get_string_field(tmp);
+ struct ClientSocket *bot, *bot1 = NULL, *bot2 = NULL, *bot3 = NULL, *bot4 = NULL;
for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
- if(bot->botid == 1 && (bot->flags & SOCKET_FLAG_PREFERRED))
+ if(botname && !stricmp(bot->nick, botname))
bot1 = bot;
- else if((bot->flags & SOCKET_FLAG_PREFERRED))
+ else if(bot->botid == 1 && (bot->flags & SOCKET_FLAG_PREFERRED))
bot2 = bot;
- else
+ else if((bot->flags & SOCKET_FLAG_PREFERRED))
bot3 = bot;
+ else
+ bot4 = bot;
}
if(bot1)
bot = bot1;
else if(bot2)
bot = bot2;
- else
+ else if(bot3)
bot = bot3;
+ else
+ bot = bot4;
if(bot) {
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
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);
}