]> code.citadel.org Git - citadel.git/blobdiff - citadel/internet_addressing.c
* Renamed "struct user" to "struct ctdluser"
[citadel.git] / citadel / internet_addressing.c
index ca45a4b09d144d0738a099892304ba0a6a5c6ece..50da226926d6515b14c3ebc0855138fc31094cd3 100644 (file)
@@ -73,6 +73,8 @@ int CtdlHostAlias(char *fqdn) {
        char buf[SIZ];
        char host[SIZ], type[SIZ];
 
+       if (fqdn == NULL) return(hostalias_nomatch);
+       if (strlen(fqdn) == 0) return(hostalias_nomatch);
        if (!strcasecmp(fqdn, config.c_fqdn)) return(hostalias_localhost);
        if (!strcasecmp(fqdn, config.c_nodename)) return(hostalias_localhost);
        if (inetcfg == NULL) return(hostalias_nomatch);
@@ -111,7 +113,7 @@ int CtdlHostAlias(char *fqdn) {
  *
  * FIXME ... this needs to be updated to handle aliases.
  */
-int fuzzy_match(struct usersupp *us, char *matchstring) {
+int fuzzy_match(struct ctdluser *us, char *matchstring) {
        int a;
 
        if ( (!strncasecmp(matchstring, "cit", 3)) 
@@ -629,6 +631,13 @@ int CtdlDirectoryLookup(char *target, char *internet_addr) {
        struct cdbdata *cdbrec;
        char key[SIZ];
 
+       /* Dump it in there unchanged, just for kicks */
+       strcpy(target, internet_addr);
+
+       /* Only do lookups for addresses with hostnames in them */
+       if (num_tokens(internet_addr, '@') != 2) return(-1);
+
+       /* Only do lookups for domains in the directory */
        if (IsDirectory(internet_addr) == 0) return(-1);
 
        directory_key(key, internet_addr);