Fossil SCM
Add the ability to test-smtp-send to use a relayhost instead of looking it up from a domain name.
Commit
c668444ddade478b0514684b8ede59b63a012bc02842d8b6d4fdb952d9a642a5
Parent
120f950026d5fc0…
1 file changed
+8
-1
+8
-1
| --- src/smtp.c | ||
| +++ src/smtp.c | ||
| @@ -607,27 +607,34 @@ | ||
| 607 | 607 | SmtpSession *p; |
| 608 | 608 | const char *zFrom; |
| 609 | 609 | int nTo; |
| 610 | 610 | const char *zToDomain; |
| 611 | 611 | const char *zFromDomain; |
| 612 | + const char *zRelay; | |
| 612 | 613 | const char **azTo; |
| 613 | 614 | int smtpPort = 25; |
| 614 | 615 | const char *zPort; |
| 615 | 616 | Blob body; |
| 616 | 617 | u32 smtpFlags = SMTP_PORT; |
| 617 | 618 | if( find_option("trace",0,0)!=0 ) smtpFlags |= SMTP_TRACE_STDOUT; |
| 618 | 619 | if( find_option("direct",0,0)!=0 ) smtpFlags |= SMTP_DIRECT; |
| 619 | 620 | zPort = find_option("port",0,1); |
| 620 | 621 | if( zPort ) smtpPort = atoi(zPort); |
| 622 | + zRelay = find_option("relayhost",0,1); | |
| 621 | 623 | verify_all_options(); |
| 622 | 624 | if( g.argc<5 ) usage("EMAIL FROM TO ..."); |
| 623 | 625 | blob_read_from_file(&body, g.argv[2], ExtFILE); |
| 624 | 626 | zFrom = g.argv[3]; |
| 625 | 627 | nTo = g.argc-4; |
| 626 | 628 | azTo = (const char**)g.argv+4; |
| 627 | 629 | 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 | + } | |
| 629 | 636 | p = smtp_session_new(zFromDomain, zToDomain, smtpFlags, smtpPort); |
| 630 | 637 | if( p->zErr ){ |
| 631 | 638 | fossil_fatal("%s", p->zErr); |
| 632 | 639 | } |
| 633 | 640 | fossil_print("Connection to \"%s\"\n", p->zHostname); |
| 634 | 641 |
| --- 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 |