OK?
diff --git server_http.c server_http.c
index 6c8549d2b41..f04a15bd056 100644
--- server_http.c
+++ server_http.c
@@ -1176,7 +1176,7 @@ server_response(struct httpd *httpd, struct client *clt)
struct http_descriptor *resp = clt->clt_descresp;
struct server *srv = clt->clt_srv;
struct server_config *srv_conf = &srv->srv_conf;
- struct kv *kv, key, *host;
+ struct kv *kv, key, *host, *ua;
struct str_find sm;
int portval = -1, ret;
char *hostval, *query;
@@ -1194,6 +1194,15 @@ server_response(struct httpd *httpd, struct client *clt)
if ((desc->http_path = strdup(path)) == NULL)
goto fail;
+ key.kv_key = "user-agent";
+ if ((ua = kv_find(&desc->http_headers, &key)) != NULL &&
+ ua->kv_value != NULL) {
+ if (strstr(ua->kv_value, "curl") != NULL) {
+ server_abort_http(clt, 403, "forbidden");
+ return (-1);
+ }
+ }
+
key.kv_key = "Host";
if ((host = kv_find(&desc->http_headers, &key)) != NULL &&
host->kv_value == NULL)
--
I'm not entirely sure you are real.