unsigned int have_hdr_expect:1;
unsigned int have_hdr_host:1;
unsigned int have_hdr_body_spec:1;
+ unsigned int have_hdr_user_agent:1;
unsigned int payload_sync:1;
unsigned int payload_chunked:1;
if (strcasecmp(key, "Transfer-Encoding") == 0)
req->have_hdr_body_spec = TRUE;
break;
+ case 'u': case 'U':
+ if (strcasecmp(key, "User-Agent") == 0)
+ req->have_hdr_user_agent = TRUE;
+ break;
}
str_printfa(req->headers, "%s: %s\r\n", key, value);
}
str_append(rtext, http_date_create(req->date));
str_append(rtext, "\r\n");
}
+ if (!req->have_hdr_user_agent && req->client->set.user_agent != NULL) {
+ str_printfa(rtext, "User-Agent: %s\r\n",
+ req->client->set.user_agent);
+ }
if (!req->have_hdr_expect && req->payload_sync) {
str_append(rtext, "Expect: 100-continue\r\n");
}
pool = pool_alloconly_create("http client", 1024);
client = p_new(pool, struct http_client, 1);
client->pool = pool;
- if (set->dns_client_socket_path != NULL && *set->dns_client_socket_path != '\0') {
- client->set.dns_client_socket_path =
- p_strdup(pool, set->dns_client_socket_path);
- }
- if (set->rawlog_dir != NULL && *set->rawlog_dir != '\0')
- client->set.rawlog_dir = p_strdup(pool, set->rawlog_dir);
+ client->set.dns_client_socket_path =
+ p_strdup_empty(pool, set->dns_client_socket_path);
+ client->set.user_agent = p_strdup_empty(pool, set->user_agent);
+ client->set.rawlog_dir = p_strdup_empty(pool, set->rawlog_dir);
client->set.ssl_ca_dir = p_strdup(pool, set->ssl_ca_dir);
client->set.ssl_ca_file = p_strdup(pool, set->ssl_ca_file);
client->set.ssl_ca = p_strdup(pool, set->ssl_ca);
/* user cert */
const char *ssl_cert, *ssl_key, *ssl_key_password;
+ /* User-Agent: header (default: none) */
+ const char *user_agent;
+
const char *rawlog_dir;
unsigned int max_idle_time_msecs;