}
}
-void add_record_mysql(char *ip, char *hostname, char *fileservername, char *groupname)
+void add_record_mysql(char *ip, char *hostname, char *fileservername, char *groupname,
+ char messenger)
{
char query[256];
char hname[256], fsname[256], gname[256];
- int i;
mysql_real_escape_string(mysql, hname, hostname, strlen(hostname));
mysql_real_escape_string(mysql, fsname, fileservername, strlen(fileservername));
mysql_real_escape_string(mysql, gname, groupname, strlen(groupname));
snprintf(query, 256,
- "REPLACE INTO nbtscanner.nbtscanner SET ip='%s', hostname='%s', fileservername='%s', groupname='%s';",
- ip, hname, fsname, gname);
+ "REPLACE INTO nbtscanner.nbtscanner SET ip='%s', hostname='%s', fileservername='%s', groupname='%s', active='y', lastactive=now(), messenger='%c';",
+ ip, hname, fsname, gname, messenger);
if (mysql_query(mysql, query) != 0) {
if (verbosity >= 1) {
{
char query[256];
snprintf(query, 256,
- "DELETE FROM nbtscanner.nbtscanner WHERE ip='%s';",
+ "UPDATE nbtscanner.nbtscanner SET ACTIVE='n' WHERE ip='%s';",
ip);
if (mysql_query(mysql, query) != 0) {
unsigned long *lengths;
unsigned int num_fields;
int i;
+ char query[512];
+
+ snprintf(query, 512, "SELECT ip,(CASE WHEN fileservername='-unknown-nbtscanner-' THEN hostname ELSE fileservername END),groupname,(fileservername <> '-unknown-nbtscanner-') FROM nbtscanner.nbtscanner WHERE active='y' OR lastactive>DATE_SUB(NOW(), INTERVAL %d SECOND);",
+ ghost_lifetime);
- if (mysql_query(mysql, "SELECT ip,(CASE WHEN fileservername='-unknown-nbtscanner-' THEN hostname ELSE fileservername END),groupname,(fileservername <> '-unknown-nbtscanner-') FROM nbtscanner.nbtscanner;") != 0) {
+ if (mysql_query(mysql, query) != 0) {
if (verbosity >= 1) {
fprintf(stderr, "mysql_query('SELECT ip'...) failed\n");
}