allow sort on "last seen"
authorDirk Koopman <djk@gate.tobit.co.uk>
Tue, 21 Sep 2010 11:27:47 +0000 (12:27 +0100)
committerEmil Mikulic <emikulic@gmail.com>
Mon, 9 May 2011 12:49:03 +0000 (22:49 +1000)
This is very useful for those "who was doing that just now" moments

hosts_db.c
hosts_db.h
hosts_sort.c

index d0d0b85..d72fe47 100644 (file)
@@ -318,7 +318,7 @@ format_cols_host(struct str *buf)
       " <th><a href=\"?sort=out\">Out</a></th>\n"
       " <th><a href=\"?sort=total\">Total</a></th>\n");
    if (want_lastseen) str_append(buf,
-      " <th>Last seen</th>\n");
+      " <th><a href=\"?sort=lastseen\">Last seen</a></th>\n");
    str_append(buf,
       "</tr>\n");
 }
@@ -956,6 +956,7 @@ html_hosts_main(const char *qs)
    else if (strcmp(qs_sort, "total") == 0) sort = TOTAL;
    else if (strcmp(qs_sort, "in") == 0) sort = IN;
    else if (strcmp(qs_sort, "out") == 0) sort = OUT;
+   else if (strcmp(qs_sort, "lastseen") == 0) sort = LASTSEEN;
    else {
       str_append(buf, "Error: invalid value for \"sort\".\n");
       goto done;
index 3db28fb..47aaa9c 100644 (file)
@@ -57,7 +57,7 @@ struct bucket {
    } u;
 };
 
-enum sort_dir { IN, OUT, TOTAL };
+enum sort_dir { IN, OUT, TOTAL, LASTSEEN };
 
 extern int show_mac_addrs;
 
index 15dd213..655c331 100644 (file)
@@ -33,6 +33,10 @@ cmp(const struct bucket * const *x, const struct bucket * const *y,
       a = (*x)->total;
       b = (*y)->total;
       break;
+   case LASTSEEN:
+      a = (*x)->u.host.last_seen;
+      b = (*y)->u.host.last_seen;
+      break;
    default:
       errx(1, "cmp: unknown direction: %d", dir);
    }