62 if (chdir(
"queue") == -1)
_exit(110);
66 if (!stralloc_ready(&line,200))
_exit(111);
71 if (cleanuploop) --cleanuploop;
else { cleanuppid(); cleanuploop = 30; }
72 if (getln(buffer_0small,&line,&
match,
'\0') == -1)
break;
74 if (line.len < 7) { respond(
"x");
continue; }
75 if (line.len > 100) { respond(
"x");
continue; }
76 if (line.s[line.len - 1]) { respond(
"x");
continue; }
78 for (i = line.len - 2; i > 4; --i) {
79 if (line.s[i] ==
'/')
break;
80 if ((
unsigned char) (line.s[i] -
'0') > 9)
81 { respond(
"x");
continue; }
84 if (!scan_ulong(line.s + i + 1,&
id)) { respond(
"x");
continue; }
85 if (byte_equal(line.s,5,
"foop/")) {
86#define U(prefix,flag) fmtqfn(fnbuf,prefix,id,flag); \
87 if (unlink(fnbuf) == -1) if (errno != ENOENT) { respond("!"); continue; }
91 }
else if (byte_equal(line.s,4,
"todo/")) {