This is OK florian@ or I can commit it if someone else OKs it. On Wed, Mar 15, 2017 at 05:55:35PM +0000, Rivo Nurges wrote: > Hi! > > New simplified version of the patch. > > Test results: > HTTP 1.1 with Host: > HTTP/1.0 301 Moved Permanently > Location: https://testhttp.int/ > > HTTP 1.0 with Host: > HTTP/1.0 301 Moved Permanently > Location: https://testhttp.int/ > > HTTP 1.1 without Host: > HTTP/1.0 400 Bad Request > > HTTP 1.0 without Host: > HTTP/1.0 301 Moved Permanently > Location: https://10.10.10.10/ > > GET /: > HTTP/1.0 400 Bad Request > > > Rivo > > Index: usr.sbin/httpd/server_http.c > =================================================================== > RCS file: /cvs/src/usr.sbin/httpd/server_http.c,v > retrieving revision 1.115 > diff -u -p -r1.115 server_http.c > --- usr.sbin/httpd/server_http.c 10 Mar 2017 21:06:43 -0000 1.115 > +++ usr.sbin/httpd/server_http.c 15 Mar 2017 17:51:14 -0000 > @@ -1068,6 +1068,14 @@ server_expand_http(struct client *clt, c > if (ret != 0) > return (NULL); > } > + if (strstr(val, "$HTTP_HOST") != NULL) { > + if (desc->http_host == NULL) > + return (NULL); > + if ((str = url_encode(desc->http_host)) == NULL) > + return (NULL); > + expand_string(buf, len, "$HTTP_HOST", str); > + free(str); > + } > if (strstr(val, "$REMOTE_") != NULL) { > if (strstr(val, "$REMOTE_ADDR") != NULL) { > if (print_host(&clt->clt_ss, > Index: usr.sbin/httpd/httpd.conf.5 > =================================================================== > RCS file: /cvs/src/usr.sbin/httpd/httpd.conf.5,v > retrieving revision 1.79 > diff -u -p -r1.79 httpd.conf.5 > --- usr.sbin/httpd/httpd.conf.5 7 Feb 2017 12:27:42 -0000 1.79 > +++ usr.sbin/httpd/httpd.conf.5 15 Mar 2017 17:51:14 -0000 > @@ -221,6 +221,8 @@ The configured IP address of the server. > The configured TCP server port of the server. > .It Ic $SERVER_NAME > The name of the server. > +.It Ic $HTTP_HOST > +The host from the HTTP Host header. > .It Pf % Ar n > The capture index > .Ar n > > begin-base64 644 http_host.diff > SW5kZXg6IHVzci5zYmluL2h0dHBkL3NlcnZlcl9odHRwLmMKPT09PT09PT09PT09PT09PT09PT09 > PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog > L2N2cy9zcmMvdXNyLnNiaW4vaHR0cGQvc2VydmVyX2h0dHAuYyx2CnJldHJpZXZpbmcgcmV2aXNp > b24gMS4xMTUKZGlmZiAtdSAtcCAtcjEuMTE1IHNlcnZlcl9odHRwLmMKLS0tIHVzci5zYmluL2h0 > dHBkL3NlcnZlcl9odHRwLmMJMTAgTWFyIDIwMTcgMjE6MDY6NDMgLTAwMDAJMS4xMTUKKysrIHVz > ci5zYmluL2h0dHBkL3NlcnZlcl9odHRwLmMJMTUgTWFyIDIwMTcgMTc6NTE6MTQgLTAwMDAKQEAg > LTEwNjgsNiArMTA2OCwxNCBAQCBzZXJ2ZXJfZXhwYW5kX2h0dHAoc3RydWN0IGNsaWVudCAqY2x0 > LCBjCiAJCWlmIChyZXQgIT0gMCkKIAkJCXJldHVybiAoTlVMTCk7CiAJfQorCWlmIChzdHJzdHIo > dmFsLCAiJEhUVFBfSE9TVCIpICE9IE5VTEwpIHsKKwkJaWYgKGRlc2MtPmh0dHBfaG9zdCA9PSBO > VUxMKQorCQkJcmV0dXJuIChOVUxMKTsKKwkJaWYgKChzdHIgPSB1cmxfZW5jb2RlKGRlc2MtPmh0 > dHBfaG9zdCkpID09IE5VTEwpCisJCQlyZXR1cm4gKE5VTEwpOworCQlleHBhbmRfc3RyaW5nKGJ1 > ZiwgbGVuLCAiJEhUVFBfSE9TVCIsIHN0cik7CisJCWZyZWUoc3RyKTsKKwl9CiAJaWYgKHN0cnN0 > cih2YWwsICIkUkVNT1RFXyIpICE9IE5VTEwpIHsKIAkJaWYgKHN0cnN0cih2YWwsICIkUkVNT1RF > X0FERFIiKSAhPSBOVUxMKSB7CiAJCQlpZiAocHJpbnRfaG9zdCgmY2x0LT5jbHRfc3MsCkluZGV4 > OiB1c3Iuc2Jpbi9odHRwZC9odHRwZC5jb25mLjUKPT09PT09PT09PT09PT09PT09PT09PT09PT09 > PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9z > cmMvdXNyLnNiaW4vaHR0cGQvaHR0cGQuY29uZi41LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc5 > CmRpZmYgLXUgLXAgLXIxLjc5IGh0dHBkLmNvbmYuNQotLS0gdXNyLnNiaW4vaHR0cGQvaHR0cGQu > Y29uZi41CTcgRmViIDIwMTcgMTI6Mjc6NDIgLTAwMDAJMS43OQorKysgdXNyLnNiaW4vaHR0cGQv > aHR0cGQuY29uZi41CTE1IE1hciAyMDE3IDE3OjUxOjE0IC0wMDAwCkBAIC0yMjEsNiArMjIxLDgg > QEAgVGhlIGNvbmZpZ3VyZWQgSVAgYWRkcmVzcyBvZiB0aGUgc2VydmVyLgogVGhlIGNvbmZpZ3Vy > ZWQgVENQIHNlcnZlciBwb3J0IG9mIHRoZSBzZXJ2ZXIuCiAuSXQgSWMgJFNFUlZFUl9OQU1FCiBU > aGUgbmFtZSBvZiB0aGUgc2VydmVyLgorLkl0IEljICRIVFRQX0hPU1QKK1RoZSBob3N0IGZyb20g > dGhlIEhUVFAgSG9zdCBoZWFkZXIuCiAuSXQgUGYgJSBBciBuCiBUaGUgY2FwdHVyZSBpbmRleAog > LkFyIG4K > ==== >
-- I'm not entirely sure you are real.