commit - 72bbed91365401d14492dac426401476986c84cf
commit + c4f682f8559b184d64b04aece37d3d2980859832
blob - 862792f230182cda45b185648eac56aabb4efe95
blob + f11ffbba64549c8948b4d2562dafd5dd78235ea5
--- gmid.h
+++ gmid.h
/* iri.c */
int parse_iri(char*, struct iri*, const char**);
-int trim_req_iri(char*);
+int trim_req_iri(char*, const char **);
/* puny.c */
int puny_decode(const char*, char*, size_t);
blob - beba36872d89965202880fa3660a2cb55a581e10
blob + f7cb627c73213f73bcf164b9009909dc8953b4b4
--- iri.c
+++ iri.c
}
int
-trim_req_iri(char *iri)
+trim_req_iri(char *iri, const char **err)
{
char *i;
- if ((i = strstr(iri, "\r\n")) == NULL)
+ if ((i = strstr(iri, "\r\n")) == NULL) {
+ *err = "missing CRLF";
return 0;
+ }
*i = '\0';
return 1;
}
blob - 1383974840e1981cd7812d1bcb55f61586468d89
blob + d0e5e4bd22f891050cb5a74b19f084005badb2db
--- server.c
+++ server.c
return;
}
- if (!trim_req_iri(c->req) || !parse_iri(c->req, &c->iri, &parse_err)) {
- start_reply(fds, c, BAD_REQUEST, parse_err);
+ if (!trim_req_iri(c->req, &parse_err)
+ || !parse_iri(c->req, &c->iri, &parse_err)) {
+ LOGI(c, "iri parse error: %s", parse_err);
+ start_reply(fds, c, BAD_REQUEST, "invalid request");
return;
}