]> git.sesse.net Git - nbtscanner/blobdiff - mysql_interface.c
Import nbtscanner 0.2.0.
[nbtscanner] / mysql_interface.c
index eac9ea2d750b8e695acae8d59086826d9dab058c..fccd58c9edf22714055c09c329e53c6a162aa720 100644 (file)
@@ -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");
                }