return NULL;
}
*arg++ = 0;
+ if(strcmp(tread, "error") == 0) {
+ strcpy(res.cclass, "error");
+ tread = arg;
+ if(!(arg = strchr(tread, '%'))) {
+ close(fds[0]);
+ return NULL;
+ }
+ *arg++ = 0;
+
+ strcpy(res.str, tread);
+ return &res;
+ }
if(strcmp(tread, "$") == 0 || strlen(tread) > IAUTH_DATALEN) res.cclass[0] = 0;
else strcpy(res.cclass, tread);
/* Read modes string. */
tread = arg;
- if(!*tread) {
+ if(!(arg = strchr(tread, '%'))) {
close(fds[0]);
return NULL;
}
+ *arg++ = 0;
if(strcmp(tread, "$") == 0 || strlen(tread) > IAUTH_DATALEN) res.modes[0] = 0;
else strcpy(res.modes, tread);