Fossil SCM

Add the ability to test-smtp-send to use a relayhost instead of looking it up from a domain name.

andybradford 2019-12-10 05:34 trunk
Commit c668444ddade478b0514684b8ede59b63a012bc02842d8b6d4fdb952d9a642a5
1 file changed +8 -1
+8 -1
--- src/smtp.c
+++ src/smtp.c
@@ -607,27 +607,34 @@
607607
SmtpSession *p;
608608
const char *zFrom;
609609
int nTo;
610610
const char *zToDomain;
611611
const char *zFromDomain;
612
+ const char *zRelay;
612613
const char **azTo;
613614
int smtpPort = 25;
614615
const char *zPort;
615616
Blob body;
616617
u32 smtpFlags = SMTP_PORT;
617618
if( find_option("trace",0,0)!=0 ) smtpFlags |= SMTP_TRACE_STDOUT;
618619
if( find_option("direct",0,0)!=0 ) smtpFlags |= SMTP_DIRECT;
619620
zPort = find_option("port",0,1);
620621
if( zPort ) smtpPort = atoi(zPort);
622
+ zRelay = find_option("relayhost",0,1);
621623
verify_all_options();
622624
if( g.argc<5 ) usage("EMAIL FROM TO ...");
623625
blob_read_from_file(&body, g.argv[2], ExtFILE);
624626
zFrom = g.argv[3];
625627
nTo = g.argc-4;
626628
azTo = (const char**)g.argv+4;
627629
zFromDomain = domainOfAddr(zFrom);
628
- zToDomain = domainOfAddr(azTo[0]);
630
+ if( zRelay!=0 && zRelay[0]!= 0) {
631
+ smtpFlags |= SMTP_DIRECT;
632
+ zToDomain = zRelay;
633
+ }else{
634
+ zToDomain = domainOfAddr(azTo[0]);
635
+ }
629636
p = smtp_session_new(zFromDomain, zToDomain, smtpFlags, smtpPort);
630637
if( p->zErr ){
631638
fossil_fatal("%s", p->zErr);
632639
}
633640
fossil_print("Connection to \"%s\"\n", p->zHostname);
634641
--- src/smtp.c
+++ src/smtp.c
@@ -607,27 +607,34 @@
607 SmtpSession *p;
608 const char *zFrom;
609 int nTo;
610 const char *zToDomain;
611 const char *zFromDomain;
 
612 const char **azTo;
613 int smtpPort = 25;
614 const char *zPort;
615 Blob body;
616 u32 smtpFlags = SMTP_PORT;
617 if( find_option("trace",0,0)!=0 ) smtpFlags |= SMTP_TRACE_STDOUT;
618 if( find_option("direct",0,0)!=0 ) smtpFlags |= SMTP_DIRECT;
619 zPort = find_option("port",0,1);
620 if( zPort ) smtpPort = atoi(zPort);
 
621 verify_all_options();
622 if( g.argc<5 ) usage("EMAIL FROM TO ...");
623 blob_read_from_file(&body, g.argv[2], ExtFILE);
624 zFrom = g.argv[3];
625 nTo = g.argc-4;
626 azTo = (const char**)g.argv+4;
627 zFromDomain = domainOfAddr(zFrom);
628 zToDomain = domainOfAddr(azTo[0]);
 
 
 
 
 
629 p = smtp_session_new(zFromDomain, zToDomain, smtpFlags, smtpPort);
630 if( p->zErr ){
631 fossil_fatal("%s", p->zErr);
632 }
633 fossil_print("Connection to \"%s\"\n", p->zHostname);
634
--- src/smtp.c
+++ src/smtp.c
@@ -607,27 +607,34 @@
607 SmtpSession *p;
608 const char *zFrom;
609 int nTo;
610 const char *zToDomain;
611 const char *zFromDomain;
612 const char *zRelay;
613 const char **azTo;
614 int smtpPort = 25;
615 const char *zPort;
616 Blob body;
617 u32 smtpFlags = SMTP_PORT;
618 if( find_option("trace",0,0)!=0 ) smtpFlags |= SMTP_TRACE_STDOUT;
619 if( find_option("direct",0,0)!=0 ) smtpFlags |= SMTP_DIRECT;
620 zPort = find_option("port",0,1);
621 if( zPort ) smtpPort = atoi(zPort);
622 zRelay = find_option("relayhost",0,1);
623 verify_all_options();
624 if( g.argc<5 ) usage("EMAIL FROM TO ...");
625 blob_read_from_file(&body, g.argv[2], ExtFILE);
626 zFrom = g.argv[3];
627 nTo = g.argc-4;
628 azTo = (const char**)g.argv+4;
629 zFromDomain = domainOfAddr(zFrom);
630 if( zRelay!=0 && zRelay[0]!= 0) {
631 smtpFlags |= SMTP_DIRECT;
632 zToDomain = zRelay;
633 }else{
634 zToDomain = domainOfAddr(azTo[0]);
635 }
636 p = smtp_session_new(zFromDomain, zToDomain, smtpFlags, smtpPort);
637 if( p->zErr ){
638 fossil_fatal("%s", p->zErr);
639 }
640 fossil_print("Connection to \"%s\"\n", p->zHostname);
641

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button