use seq_start for the %TIME% token
authorMalte S. Stretz <mss@apache.org>
Tue, 5 Jul 2011 22:08:50 +0000 (00:08 +0200)
committerMalte S. Stretz <mss@apache.org>
Tue, 5 Jul 2011 22:08:50 +0000 (00:08 +0200)
This allows a closing rule to remove an opening rule.

doc/knockd.1.in
src/knockd.c

index 80dfc5c..cdd6ae9 100644 (file)
@@ -195,8 +195,10 @@ The knocker's IP address.
 .TP
 .B "%TIME%"
 The UNIX timestamp.  Can be used to garbage-collect old rules via \fBcron\fP
-and the \fBcomment\fP module.  A wrapper script must then be used for a close
-rule since iptables needs the exact rule specification when removing rules.
+and the \fBcomment\fP module.  A wrapper script must then be used if separate
+open and close rules are used since the timestamp is not known when then
+close occurs and iptables needs either the exact rule specification (impossible
+to know with a changing timestamp) or the rule number when removing rules.
 .TP
 .B "%%"
 An escaped percent sign, replaced by a sindle percent.
index 3b0393c..e911f84 100644 (file)
@@ -1135,7 +1135,7 @@ ssize_t parse_cmd(char* dest, size_t size, const char* cmd, const knocker_t* kno
                                         * year 2100 or so (time_t is probably 64 bit) */
                                        char now[11];
                                        int now_len;
-                                       now_len = sprintf(now, "%u", (unsigned)time(NULL));
+                                       now_len = sprintf(now, "%u", (unsigned)knocker->seq_start);
                                        if(size >= now_len) {
                                                memcpy(dest, now, now_len);
                                                dest += now_len;