]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Tunable port to connect to
authormmj <none@none>
Tue, 8 Feb 2005 18:13:14 +0000 (05:13 +1100)
committermmj <none@none>
Tue, 8 Feb 2005 18:13:14 +0000 (05:13 +1100)
TUNABLES
include/init_sockfd.h
include/mlmmj-send.h
src/init_sockfd.c
src/mlmmj-send.c

index 108689515bc9be2c729b47ad266c4edaf5bc5f8b..ab9a4c6f2599675d0caf0f41dd7771496588c595 100644 (file)
--- a/TUNABLES
+++ b/TUNABLES
@@ -132,3 +132,8 @@ to specify several entries (one pr. line), it's marked "list".
    being denied due to the listaddress not being in To: or Cc: (see 'tocc'),
    when it was rejected due to an access rule (see 'access') or whether it's a
    subscribers only posting list (see 'subonlypost').
+
+ ยท smtpport                    (normal)
+
+   In this file a port other than port 25 for connecting to the relayhost
+   can be specified.
index 0487a333e23c3d9f49690f084ba51d40f488e06a..607e4b9dc7de4953f9b75ed37af392ca47bff68a 100644 (file)
@@ -24,6 +24,6 @@
 #ifndef INIT_SOCKFD_H
 #define INIT_SOCKFD_H
 
-void init_sockfd(int *sockfd, const char *relayhost);
+void init_sockfd(int *sockfd, const char *relayhost, unsigned short port);
 
 #endif /* INIT_SOCKFD_H */
index 06d53188126f176f5ba7169409a11168a047f4ae..ad0e219bfa15d5d78c18c12c0685f724cfd5ec92 100644 (file)
@@ -45,7 +45,7 @@ int send_mail_verp(int sockfd, struct strlist *addrs, char *mailmap,
                   size_t mailsize, const char *from, const char *listdir,
                   const char *hdrs, size_t hdrslen, const char *body,
                   size_t bodylen, const char *extra);
-int initsmtp(int *sockfd, const char *relayhost);
+int initsmtp(int *sockfd, const char *relayhost, unsigned short port);
 int endsmtp(int *sockfd);
 
 #endif /* MMJML_SEND_H */
index fe85ae7d43853bfcb2096b913e6ec68ca93c2214..df123aec46d22e102e1970244079e8bf4ea4d605 100644 (file)
 #include "init_sockfd.h"
 #include "log_error.h"
 
-void init_sockfd(int *sockfd, const char *relayhost)
+void init_sockfd(int *sockfd, const char *relayhost, unsigned short port)
 {
        int len;
        struct sockaddr_in addr;
-       u_short port = 25;
 
        if (getenv("MLMMJ_TESTING")) {
                relayhost = "127.0.0.1";
index 51461bc635901a3f973e1fa6d5abb03f5def5c8e..9a6f864551a23a27c74bd3251300f57398dddfb8 100644 (file)
@@ -290,13 +290,13 @@ int send_mail(int sockfd, const char *from, const char *to,
        return 0;
 }
 
-int initsmtp(int *sockfd, const char *relayhost)
+int initsmtp(int *sockfd, const char *relayhost, unsigned short port)
 {
        int retval = 0;
        char *reply = NULL;
        char *myhostname = hostnamestr();
        
-       init_sockfd(sockfd, relayhost);
+       init_sockfd(sockfd, relayhost, port);
        
        if((reply = checkwait_smtpreply(*sockfd, MLMMJ_CONNECT)) != NULL) {
                log_error(LOG_ARGS, "No proper greeting to our connect"
@@ -600,7 +600,7 @@ int main(int argc, char **argv)
        char *mlmmjbounce = NULL, *bindir, *mailmap, *probefile, *a;
        char *body = NULL, *hdrs = NULL, *memmailsizestr = NULL, *verp = NULL;
        char relay[16], *listname, *listfqdn, *verpfrom, *maxverprecipsstr;
-       char strindex[32], *reply;
+       char strindex[32], *reply, *strport;
        ssize_t memmailsize = 0;
        DIR *subddir;
        struct dirent *dp;
@@ -608,6 +608,7 @@ int main(int argc, char **argv)
        struct hostent *relayent;
        uid_t uid;
        struct strlist stl;
+       unsigned short smtpport = 25;
 
        CHECKFULLPATH(argv[0]);
        
@@ -863,11 +864,14 @@ int main(int argc, char **argv)
                                strncpy(relay, RELAYHOST, sizeof(relay));
                }
        }
+       strport = ctrlvalue(listdir, "smtpport");
+       if(strport)
+               smtpport = (unsigned short)atol(strport);
 
        switch(listctrl[0]) {
        case '1': /* A single mail is to be sent */
        case '6':
-               initsmtp(&sockfd, relay);
+               initsmtp(&sockfd, relay, smtpport);
                sendres = send_mail(sockfd, bounceaddr, to_addr, replyto,
                                mailmap, st.st_size, listdir, NULL,
                                hdrs, hdrslen, body, bodylen);
@@ -910,7 +914,7 @@ int main(int argc, char **argv)
                }
                break;
        case '2': /* Moderators */
-               initsmtp(&sockfd, relay);
+               initsmtp(&sockfd, relay, smtpport);
                if(send_mail_many_fd(sockfd, bounceaddr, NULL, mailmap,
                                     st.st_size, subfd, NULL, NULL, listdir,
                                     NULL, hdrs, hdrslen, body, bodylen))
@@ -919,7 +923,7 @@ int main(int argc, char **argv)
                        endsmtp(&sockfd);
                break;
        case '3': /* resending earlier failed mails */
-               initsmtp(&sockfd, relay);
+               initsmtp(&sockfd, relay, smtpport);
                if(send_mail_many_fd(sockfd, NULL, NULL, mailmap, st.st_size,
                                subfd, listaddr, mailfilename, listdir,
                                mlmmjbounce, hdrs, hdrslen, body, bodylen))
@@ -929,7 +933,7 @@ int main(int argc, char **argv)
                unlink(subfilename);
                break;
        case '4': /* send mails to owner */
-               initsmtp(&sockfd, relay);
+               initsmtp(&sockfd, relay, smtpport);
                if(send_mail_many_fd(sockfd, bounceaddr, NULL, mailmap,
                                st.st_size, subfd, listaddr, mailfilename,
                                listdir, mlmmjbounce, hdrs, hdrslen, body,
@@ -939,7 +943,7 @@ int main(int argc, char **argv)
                        endsmtp(&sockfd);
                break;
        case '5': /* bounceprobe - handle relayhost local users bouncing*/
-               initsmtp(&sockfd, relay);
+               initsmtp(&sockfd, relay, smtpport);
                sendres = send_mail(sockfd, bounceaddr, to_addr, replyto,
                                mailmap, st.st_size, listdir, NULL,
                                hdrs, hdrslen, body, bodylen);
@@ -999,7 +1003,7 @@ int main(int argc, char **argv)
                }
                
                if(verp) {
-                       initsmtp(&sockfd, relay);
+                       initsmtp(&sockfd, relay, smtpport);
                        if(write_mail_from(sockfd, verpfrom, verp)) {
                                log_error(LOG_ARGS,
                                                "Could not write MAIL FROM\n");
@@ -1034,7 +1038,7 @@ int main(int argc, char **argv)
                                res = getaddrsfromfd(&stl, subfd,
                                                maxverprecips);
                                if(stl.count == maxverprecips) {
-                                       initsmtp(&sockfd, relay);
+                                       initsmtp(&sockfd, relay, smtpport);
                                        if(verp) {
                                                sendres = send_mail_verp(
                                                                sockfd, &stl,
@@ -1072,7 +1076,7 @@ int main(int argc, char **argv)
 
                }
                if(stl.count) {
-                       initsmtp(&sockfd, relay);
+                       initsmtp(&sockfd, relay, smtpport);
                        if(verp) {
                                sendres = send_mail_verp(sockfd, &stl, mailmap,
                                                st.st_size, verpfrom, listdir,