chiark / gitweb /
Templates for scripts. Monitoring script. Do not depend on time of generation at...
[vinegar-ip.git] / make-probes.tcl
index 527687340a10fd2db8f97f2cc274726653d53d03..b8b520f6475ba48b1616983aa35929944bfecc66 100755 (executable)
@@ -248,7 +248,8 @@ proc get/rand {s v minlen maxlen blockbytes} {
 }
 
 proc get/ip-timestamp {s v} {
-    set rv [expr {[clock seconds] | 0x80000000}]
+    set rv 0xbc000000
+    incr rv [choice-int 100 10000]
     getlog "$v=[format %x $rv]"
     return $rv
 }
@@ -1179,7 +1180,7 @@ namespace import PCap::*
 
 proc emit {seed} {
     global getlog_log errorInfo mtu fake_time_t
-    global minframelen linktypename
+    global minframelen linktypename errors_continue
 
     get-for ip
     get-config source 127.0.0.1 v4addr
@@ -1192,6 +1193,9 @@ proc emit {seed} {
     } emsg]} {
        puts stderr "\nERROR\n$seed\n\n$emsg\n\n$errorInfo\n\n"
        puts stdout "[format %6s $seed] error"
+       if {!$errors_continue} {
+           error "internal error generating packet - consult author"
+       }
     } else {
        set ts_sec [incr fake_time_t]
        set ts_usec 0
@@ -1257,6 +1261,7 @@ proc nextarg_il {} {
 }
 
 set debug_level 0
+set errors_continue 0
 set mtu 100
 set upto {}
 set xseed {}
@@ -1270,6 +1275,7 @@ while {[regexp {^\-\-} [lindex $argv 0]]} {
        --write { pcap_open [nextarg] }
        --mtu { set mtu [nextarg_num] }
        --xseed { set xseed [nextarg] }
+       --errors-continue { set errors_continue 1 }
        --linktype { set linktypename [nextarg] }
        --source { manyset [nextarg_il] config/ip-source config/link-source }
        --dest { manyset [nextarg_il] config/ip-dest config/link-dest }
@@ -1306,7 +1312,10 @@ pcap_write {
     s32 linktype
 }
 
-set fake_time_t [clock seconds]
+set fake_time_t 1000000000
+
+start_gen TEST
+random-bytes 100
 
 if {[llength $argv]} {
     foreach count $argv { emit "$xseed$count" }