char host[IAUTH_DATALEN + 1];
char ip[IAUTH_DATALEN + 1];
char modes[IAUTH_DATALEN + 1];
+ char str[600];
};
extern const struct iauth_result *iauth_query(struct iauth_client *cli);
extern char iauth_servname[IAUTH_DATALEN + 1];
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);