aboutsummaryrefslogtreecommitdiff
path: root/eperd/httpget.c
diff options
context:
space:
mode:
Diffstat (limited to 'eperd/httpget.c')
-rw-r--r--eperd/httpget.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/eperd/httpget.c b/eperd/httpget.c
index 4b22bca..1a8fe09 100644
--- a/eperd/httpget.c
+++ b/eperd/httpget.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013 RIPE NCC <atlas@ripe.net>
+ * Copyright (c) 2013-2014 RIPE NCC <atlas@ripe.net>
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
* httpget.c -- libevent-based version of httpget
*/
@@ -627,7 +627,7 @@ static void *httpget_init(int __attribute((unused)) argc, char *argv[],
state->max_body= max_body;
state->read_limit= read_limit;
state->timeout= timeout;
- state->infname= infname;
+ state->infname= infname ? strdup(infname) : NULL;
state->only_v4= 2;
@@ -744,12 +744,16 @@ static void report(struct hgstate *state)
if (state->read_truncated)
add_str(state, ", " DBQ(read-truncated) ": True");
- getnameinfo((struct sockaddr *)&state->sin6, state->socklen,
- namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
+ if (state->socklen != 0)
+ {
+ getnameinfo((struct sockaddr *)&state->sin6,
+ state->socklen, namebuf, sizeof(namebuf),
+ NULL, 0, NI_NUMERICHOST);
- snprintf(line, sizeof(line), ", " DBQ(dst_addr) ":" DBQ(%s),
- namebuf);
- add_str(state, line);
+ snprintf(line, sizeof(line),
+ ", " DBQ(dst_addr) ":" DBQ(%s), namebuf);
+ add_str(state, line);
+ }
/* End of readtiming */
if (state->etim >= 2)
@@ -1627,7 +1631,7 @@ static void writecb(struct bufferevent *bev, void *ptr)
state->do_head ? "HEAD" : "POST", state->path,
state->do_http10 ? '0' : '1');
evbuffer_add_printf(output, "Host: %s\r\n",
- state->host);
+ state->hostport);
evbuffer_add_printf(output, "Connection: close\r\n");
evbuffer_add_printf(output, "User-Agent: %s\r\n",
state->user_agent);
@@ -1940,6 +1944,8 @@ static int httpget_delete(void *state)
hgstate->atlas= NULL;
free(hgstate->output_file);
hgstate->output_file= NULL;
+ free(hgstate->infname);
+ hgstate->infname= NULL;
free(hgstate->host);
hgstate->host= NULL;
free(hgstate->hostport);