]> andersk Git - mod-vhost-ldap.git/blobdiff - mod_vhost_ldap.c
Simplify construction of wildcard hostnames.
[mod-vhost-ldap.git] / mod_vhost_ldap.c
index 87996a9c1820e900e9ed74bdc7df53f0e67d05ea..3282e8f5f85a24af4499d36f63ae25137a90aeae 100644 (file)
@@ -483,6 +483,8 @@ start_over:
     }
 
     hostname = r->hostname;
+    if (hostname == NULL)
+       goto null;
 
 fallback:
 
@@ -505,6 +507,19 @@ fallback:
     }
 
     if ((result == LDAP_NO_SUCH_OBJECT)) {
+       if (strcmp(hostname, "*") != 0) {
+           if (strncmp(hostname, "*.", 2) == 0)
+               hostname += 2;
+           hostname += strcspn(hostname, ".");
+           hostname = apr_pstrcat(r->pool, "*", hostname, NULL);
+           ap_log_rerror(APLOG_MARK, APLOG_NOTICE|APLOG_NOERRNO, 0, r,
+                         "[mod_vhost_ldap.c] translate: "
+                         "virtual host not found, trying wildcard %s",
+                         hostname);
+           goto fallback;
+       }
+
+    null:
        if (conf->fallback && (is_fallback++ <= 0)) {
            ap_log_rerror(APLOG_MARK, APLOG_NOTICE|APLOG_NOERRNO, 0, r,
                          "[mod_vhost_ldap.c] translate: "
This page took 0.690467 seconds and 4 git commands to generate.