+ fdlock = open_append(line.s);
+ if (fdlock == -1)
+ strerr_die4sys(111,FATAL,ERR_OPEN,line.s,": ");
+ if (lock_ex(fdlock) == -1)
+ strerr_die4sys(111,FATAL,ERR_OBTAIN,line.s,": ");
+
+ if (!flagmaster && str_start(action,"warn-")) {
+ action += 5;
+ action += scan_ulong(action,&cookiedate);
+ if (now() - cookiedate > 3000000) die_trash();
+ if (*action++ != '.') die_trash();
+ i = str_chr(action,'-');
+ if (i != COOKIE) die_trash();
+ byte_copy(hashcopy,COOKIE,action);
+ action += COOKIE;
+ if (*action++ != '-') die_trash();
+ i = str_rchr(action,'=');
+ if (!stralloc_copyb(&line,action,i)) die_nomem();
+ if (action[i]) {
+ if (!stralloc_cats(&line,"@")) die_nomem();
+ if (!stralloc_cats(&line,action + i + 1)) die_nomem();
+ }
+ if (!stralloc_0(&line)) die_nomem();
+ strnum[fmt_ulong(strnum,cookiedate)] = 0;
+ cookie(hash,key.s,key.len,strnum,line.s,"W");
+ if (byte_diff(hash,COOKIE,hashcopy)) die_trash();
+
+ if (slurpclose(0,&bounce,1024) == -1) die_msgin();
+ dowit(line.s,when,&bounce);
+ _exit(99);
+ }