* Finished the inbound side of gateway domain service
authorArt Cancro <ajc@citadel.org>
Fri, 3 Mar 2000 04:12:38 +0000 (04:12 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 3 Mar 2000 04:12:38 +0000 (04:12 +0000)
citadel/ChangeLog
citadel/citadel.h
citadel/internet_addressing.c
citadel/msgbase.c
citadel/serv_smtp.c
citadel/sysconfig.h

index 85713aa773def92ea0db19828ce2ca298d0fc866..9ef6add8e14199a0283bab1ed13afa53058499c5 100644 (file)
@@ -1,4 +1,7 @@
 $Log$
+Revision 1.474  2000/03/03 04:12:37  ajc
+* Finished the inbound side of gateway domain service
+
 Revision 1.473  2000/02/27 04:55:51  ajc
 * Added "keymenu()" generic menu-maker to commands.c
 * Blocked non-numeric input to intprompt()  (fixes bug #16)
@@ -1679,4 +1682,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
        * Initial CVS import 
-
index b963d47e3214366159cfe5570bb439acb026054f..46a55e8cf496eece7f110d0074f3fa6b5e579190 100644 (file)
@@ -268,3 +268,4 @@ struct minfo {
        char nexthop[512];
        };
 
+#define TRACE  lprintf(9, "Checkpoint: %s, %d\n", __FILE__, __LINE__)
index e788da27e0087639a88431532d357c3d0b69eacd..0c00d9fe3a3b39d9cd7ccb70f87927055168b8e0 100644 (file)
@@ -315,11 +315,9 @@ int convert_internet_address(char *destuser, char *desthost, char *source)
        char buf[256];
        int passes = 0;
        char sourcealias[1024];
-       int msgtype = 0;
 
        safestrncpy(sourcealias, source, sizeof(sourcealias) );
-       msgtype = alias(sourcealias);
-       lprintf(9, "msgtype(1) for <%s> is %d\n", msgtype, user);
+       alias(sourcealias);
 
 REALIAS:
        /* Split it up */
@@ -350,8 +348,7 @@ REALIAS:
                 * a few times, in case we accidentally hit an alias loop
                 */
                strcpy(sourcealias, user);
-               msgtype = alias(user);
-               lprintf(9, "msgtype(2) for <%s> is %d\n", msgtype, user);
+               alias(user);
                if ( (strcasecmp(user, sourcealias)) && (++passes < 3) )
                        goto REALIAS;
 
@@ -380,7 +377,8 @@ REALIAS:
 
        strcpy(destuser, user);
        strcpy(desthost, node);
-       if (msgtype == MES_BINARY) return(rfc822_address_on_citadel_network);
+       if (hostalias == hostalias_gatewaydomain)
+               return(rfc822_address_on_citadel_network);
        return(rfc822_address_nonlocal);
 }
 
index 4c91cd80777c0c39adb78dbc72e9177f0705805b..c5213d12b7ea9757e3365afc0b160ae61a87fdb5 100644 (file)
@@ -1378,7 +1378,7 @@ void serialize_message(struct ser_ret *ret,               /* return values */
                ret->len = ret->len +
                        strlen(msg->cm_fields[(int)forder[i]]) + 2;
 
-       lprintf(9, "calling malloc\n");
+       lprintf(9, "calling malloc(%d)\n", ret->len);
        ret->ser = mallok(ret->len);
        if (ret->ser == NULL) {
                ret->len = 0;
index ce80fa44fe41ac6ea6b9bf9b75b9036b0a5680df..8a7a3147c54749255e969ca12875d64f43321fc0 100644 (file)
@@ -438,15 +438,19 @@ void smtp_rcpt(char *argbuf) {
  * (This is kind of ugly.  IGnet should be done using clean server-to-server
  * code instead of the old style spool.)
  */
-void smtp_deliver_ignet(struct CtdlMessage *msg, char *user, char *room) {
+void smtp_deliver_ignet(struct CtdlMessage *msg, char *user, char *dest) {
        struct ser_ret smr;
        char *hold_R, *hold_D;
        FILE *fp;
+       char filename[256];
+       static int seq = 0;
+
+       lprintf(9, "smtp_deliver_ignet(msg, %s, %s)\n", user, dest);
 
        hold_R = msg->cm_fields['R'];
        hold_D = msg->cm_fields['D'];
        msg->cm_fields['R'] = user;
-       msg->cm_fields['D'] = room;
+       msg->cm_fields['D'] = dest;
 
        serialize_message(&smr, msg);
 
@@ -454,7 +458,10 @@ void smtp_deliver_ignet(struct CtdlMessage *msg, char *user, char *room) {
        msg->cm_fields['D'] = hold_D;
 
        if (smr.len != 0) {
-               fp = fopen(tmpnam("./network/spoolin/"), "wb");
+               sprintf(filename, "./network/spoolin/%s.%04x.%04x",
+                       dest, getpid(), ++seq);
+               lprintf(9, "spool file name is <%s>\n", filename);
+               fp = fopen(filename, "wb");
                if (fp != NULL) {
                        fwrite(smr.ser, smr.len, 1, fp);
                        fclose(fp);
@@ -534,7 +541,9 @@ int smtp_message_delivery(struct CtdlMessage *msg) {
 
                /* Delivery over the local Citadel network (IGnet) */
                if (!strcasecmp(dtype, "ignet")) {
-                       smtp_deliver_ignet(msg, user, room);
+                       extract(user, buf, 1);
+                       extract(node, buf, 2);
+                       smtp_deliver_ignet(msg, user, node);
                }
 
                /* Remote delivery */
index 9f9d6626f5a3bf7099191701b20922a47a505117..7b749753a1766ce57762eca91ebe12d05b89a647 100644 (file)
@@ -86,8 +86,8 @@
  * These define what port to listen on for various services.
  * FIXME ... put this in a programmable config somewhere
  */
-#define POP3_PORT              1110
-#define SMTP_PORT              2525
+#define POP3_PORT              110
+#define SMTP_PORT              25
 
 /*
  * SMTP delivery retry and give-up times