Clean up a few bugs in HttpClient and Uri

This commit is contained in:
Jordan Bancino 2023-03-08 02:53:47 +00:00
parent 3e42da279c
commit 7e144ae488
4 changed files with 17 additions and 6 deletions

View file

@ -18,6 +18,7 @@ Milestone: v0.3.0
[~] HTTP Client API [~] HTTP Client API
[ ] Document HttpParseHeaders() [ ] Document HttpParseHeaders()
[ ] HttpClient man page [ ] HttpClient man page
[ ] Uia man page
[ ] Test on other platforms [ ] Test on other platforms
[ ] Option to pretty-print Json [ ] Option to pretty-print Json

View file

@ -75,8 +75,6 @@ HttpRequest(HttpRequestMethod method, int flags, unsigned short port, char *host
sprintf(serv, "%hu", port); sprintf(serv, "%hu", port);
} }
printf("serv = %s\n", serv);
/* TODO: Not supported yet */ /* TODO: Not supported yet */
if (flags & HTTP_TLS) if (flags & HTTP_TLS)
{ {
@ -157,6 +155,18 @@ HttpRequestHeader(HttpClientContext * context, char *key, char *val)
fprintf(context->stream, "%s: %s\r\n", key, val); fprintf(context->stream, "%s: %s\r\n", key, val);
} }
void
HttpRequestSendHeaders(HttpClientContext * context)
{
if (!context)
{
return;
}
fprintf(context->stream, "\r\n");
fflush(context->stream);
}
HttpStatus HttpStatus
HttpRequestSend(HttpClientContext * context) HttpRequestSend(HttpClientContext * context)
{ {
@ -172,9 +182,6 @@ HttpRequestSend(HttpClientContext * context)
return 0; return 0;
} }
fprintf(context->stream, "\r\n");
fflush(context->stream);
lineLen = UtilGetLine(&line, &lineSize, context->stream); lineLen = UtilGetLine(&line, &lineSize, context->stream);
/* Line must contain at least "HTTP/x.x xxx" */ /* Line must contain at least "HTTP/x.x xxx" */

View file

@ -49,7 +49,7 @@ UriParse(const char *str)
res = sscanf(str, "%7[^:]://%127[^:]:%hu%255[^\n]", uri->proto, uri->host, &uri->port, uri->path) == 4 res = sscanf(str, "%7[^:]://%127[^:]:%hu%255[^\n]", uri->proto, uri->host, &uri->port, uri->path) == 4
|| sscanf(str, "%7[^:]://%127[^/]%255[^\n]", uri->proto, uri->host, uri->path) == 3 || sscanf(str, "%7[^:]://%127[^/]%255[^\n]", uri->proto, uri->host, uri->path) == 3
|| sscanf(str, "%7[^:]://%127[^:]%hu[^\n]", uri->proto, uri->host, &uri->port) == 3 || sscanf(str, "%7[^:]://%127[^:]:%hu[^\n]", uri->proto, uri->host, &uri->port) == 3
|| sscanf(str, "%7[^:]://%127[^\n]", uri->proto, uri->host) == 2; || sscanf(str, "%7[^:]://%127[^\n]", uri->proto, uri->host) == 2;
if (!res) if (!res)

View file

@ -40,6 +40,9 @@ extern HttpClientContext *
extern void extern void
HttpRequestHeader(HttpClientContext *, char *, char *); HttpRequestHeader(HttpClientContext *, char *, char *);
extern void
HttpRequestSendHeaders(HttpClientContext *);
extern HttpStatus extern HttpStatus
HttpRequestSend(HttpClientContext *); HttpRequestSend(HttpClientContext *);