]> code.citadel.org Git - citadel.git/blobdiff - citadel/internet_addressing.c
* Renamed "struct user" to "struct ctdluser"
[citadel.git] / citadel / internet_addressing.c
index 93337b3b166fa006461fdd179f5d62fa1bd6198e..50da226926d6515b14c3ebc0855138fc31094cd3 100644 (file)
@@ -36,7 +36,7 @@
 #include <limits.h>
 #include "citadel.h"
 #include "server.h"
-#include "dynloader.h"
+#include "serv_extensions.h"
 #include "sysdep_decls.h"
 #include "citserver.h"
 #include "support.h"
@@ -61,7 +61,7 @@ struct trynamebuf {
 };
 
 char *inetcfg = NULL;
-
+struct spamstrings_t *spamstrings = NULL;
 
 
 /*
@@ -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)) 
@@ -410,7 +412,7 @@ struct CtdlMessage *convert_internet_message(char *rfc822) {
                                end = pos;
                        }
 
-                       /* done with headers? */
+                       /* done with headers? (commented out; see below)
                        if (   ((rfc822[pos]=='\n')
                              ||(rfc822[pos]=='\r') )
                           && ( (rfc822[pos+1]=='\n')
@@ -418,6 +420,15 @@ struct CtdlMessage *convert_internet_message(char *rfc822) {
                                end = pos;
                                done = 1;
                        }
+                       */
+
+                       /* done with headers? (try this way instead) */
+                       if (   (rfc822[pos]=='\n')
+                          && ( (rfc822[pos+1]=='\n')
+                             ||(rfc822[pos+1]=='\r')) ) {
+                               end = pos;
+                               done = 1;
+                       }
 
                        if (pos >= (msglen-1) ) {
                                end = pos;
@@ -620,8 +631,13 @@ int CtdlDirectoryLookup(char *target, char *internet_addr) {
        struct cdbdata *cdbrec;
        char key[SIZ];
 
-       lprintf(9, "CtdlDirectoryLookup(%s)\n", internet_addr);
+       /* 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);
@@ -629,10 +645,8 @@ int CtdlDirectoryLookup(char *target, char *internet_addr) {
        if (cdbrec != NULL) {
                safestrncpy(target, cdbrec->ptr, SIZ);
                cdb_free(cdbrec);
-               lprintf(9, "Looked up as <%s>\n", target);
                return(0);
        }
 
-       lprintf(9, "Lookup failed\n");
        return(-1);
 }