From: Art Cancro Date: Fri, 3 Mar 2000 04:12:38 +0000 (+0000) Subject: * Finished the inbound side of gateway domain service X-Git-Tag: v7.86~7283 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=326128b8e98e473237ffe46c95aa5ae81896864b * Finished the inbound side of gateway domain service --- diff --git a/citadel/ChangeLog b/citadel/ChangeLog index 85713aa77..9ef6add8e 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -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 Fri Jul 10 1998 Art Cancro * Initial CVS import - diff --git a/citadel/citadel.h b/citadel/citadel.h index b963d47e3..46a55e8cf 100644 --- a/citadel/citadel.h +++ b/citadel/citadel.h @@ -268,3 +268,4 @@ struct minfo { char nexthop[512]; }; +#define TRACE lprintf(9, "Checkpoint: %s, %d\n", __FILE__, __LINE__) diff --git a/citadel/internet_addressing.c b/citadel/internet_addressing.c index e788da27e..0c00d9fe3 100644 --- a/citadel/internet_addressing.c +++ b/citadel/internet_addressing.c @@ -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); } diff --git a/citadel/msgbase.c b/citadel/msgbase.c index 4c91cd807..c5213d12b 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -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; diff --git a/citadel/serv_smtp.c b/citadel/serv_smtp.c index ce80fa44f..8a7a3147c 100644 --- a/citadel/serv_smtp.c +++ b/citadel/serv_smtp.c @@ -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 */ diff --git a/citadel/sysconfig.h b/citadel/sysconfig.h index 9f9d6626f..7b749753a 100644 --- a/citadel/sysconfig.h +++ b/citadel/sysconfig.h @@ -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