X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mysql_interface.c;h=fccd58c9edf22714055c09c329e53c6a162aa720;hb=2f9aa4043e1417be437a6a77490f7b41cba2ab0a;hp=eac9ea2d750b8e695acae8d59086826d9dab058c;hpb=5fcf4e25ccd1148036ca46554670f7ef0c713bbd;p=nbtscanner diff --git a/mysql_interface.c b/mysql_interface.c index eac9ea2..fccd58c 100644 --- a/mysql_interface.c +++ b/mysql_interface.c @@ -54,7 +54,8 @@ void init_mysql(char *host, char *username, char *password) } } -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]; @@ -64,8 +65,8 @@ void add_record_mysql(char *ip, char *hostname, char *fileservername, char *grou 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) { @@ -79,7 +80,7 @@ void delete_record_mysql(char *ip) { 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) { @@ -96,8 +97,12 @@ void print_all_records_mysql() unsigned long *lengths; unsigned int num_fields; int i; + char query[512]; - if (mysql_query(mysql, "SELECT ip,(CASE WHEN fileservername='-unknown-nbtscanner-' THEN hostname ELSE fileservername END),groupname,(fileservername <> '-unknown-nbtscanner-') FROM nbtscanner.nbtscanner;") != 0) { + 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, query) != 0) { if (verbosity >= 1) { fprintf(stderr, "mysql_query('SELECT ip'...) failed\n"); }