akosut 96/06/13 09:33:52
Modified: src http_protocol.c Log: Fix problem with multi-port (Listen/VirtualHost ...:port) servers conflicting with the Host: header checking code. Revision Changes Path 1.23 +5 -3 apache/src/http_protocol.c Index: http_protocol.c =================================================================== RCS file: /export/home/cvs/apache/src/http_protocol.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C3 -r1.22 -r1.23 *** http_protocol.c 1996/06/10 02:04:04 1.22 --- http_protocol.c 1996/06/13 16:33:50 1.23 *************** *** 352,360 **** void check_hostalias (request_rec *r) { char *host = getword(r->pool, &r->hostname, ':'); /* Get rid of port */ server_rec *s; ! if (*r->hostname && (atoi(r->hostname) != r->server->port)) return; if ((host[strlen(host)-1]) == '.') { --- 352,361 ---- void check_hostalias (request_rec *r) { char *host = getword(r->pool, &r->hostname, ':'); /* Get rid of port */ + int port = (*r->hostname) ? atoi(r->hostname) : 0; server_rec *s; ! if (port && (port != r->server->port)) return; if ((host[strlen(host)-1]) == '.') { *************** *** 365,372 **** for (s = r->server->next; s; s = s->next) { char *names = s->names; ! ! if (!strcasecmp(host, s->server_hostname)) { r->server = r->connection->server = s; if (r->hostlen && !strncmp(r->uri, "http://", 7)) { r->uri += r->hostlen; --- 366,374 ---- for (s = r->server->next; s; s = s->next) { char *names = s->names; ! ! if ((!strcasecmp(host, s->server_hostname)) && ! (!port || (port == s->port))) { r->server = r->connection->server = s; if (r->hostlen && !strncmp(r->uri, "http://", 7)) { r->uri += r->hostlen;