Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Get this branch working with mingw and on Mac |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | smtp-win |
Files: | files | file ages | folders |
SHA3-256: |
f55c0fdc30ffde683a33918c619b6549 |
User & Date: | drh 2018-07-12 13:09:01.329 |
Context
2018-07-12
| ||
13:13 | Fix a compiler warning on the mac build. ... (Closed-Leaf check-in: b6b5048a user: drh tags: smtp-win) | |
13:09 | Get this branch working with mingw and on Mac ... (check-in: f55c0fdc user: drh tags: smtp-win) | |
09:39 | Get DNS lookup for mail hosts working on Windows. ... (check-in: fe29fe7d user: tsbg tags: smtp-win) | |
Changes
Changes to src/smtp.c.
︙ | ︙ | |||
17 18 19 20 21 22 23 | ** ** Implementation of SMTP (Simple Mail Transport Protocol) according ** to RFC 5321. */ #include "config.h" #include "smtp.h" #include <assert.h> | | > | > > | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | ** ** Implementation of SMTP (Simple Mail Transport Protocol) according ** to RFC 5321. */ #include "config.h" #include "smtp.h" #include <assert.h> #if defined(__linux__) # include <sys/types.h> # include <netinet/in.h> # include <arpa/nameser.h> # include <resolv.h> # define FOSSIL_UNIX_STYLE_DNS 1 #endif #if defined(_WIN32) && !defined(__MINGW32__) && !defined(__MINGW64__) # include <windows.h> # include <windns.h> # define FOSSIL_WINDOWS_STYLE_DNS 1 #endif /* ** Find the hostname for receiving email for the domain given ** in zDomain. Return NULL if not found or not implemented. ** If multiple email receivers are advertized, pick the one with ** the lowest preference number. ** ** The returned string is obtained from fossil_malloc() ** and should be released using fossil_free(). */ char *smtp_mx_host(const char *zDomain){ #if defined(FOSSIL_UNIX_STYLE_DNS) int nDns; /* Length of the DNS reply */ int rc; /* Return code from various APIs */ int i; /* Loop counter */ int iBestPriority = 9999999; /* Best priority */ int nRec; /* Number of answers */ ns_msg h; /* DNS reply parser */ const unsigned char *pBest = 0; /* RDATA for the best answer */ |
︙ | ︙ | |||
77 78 79 80 81 82 83 | } if( pBest ){ ns_name_uncompress(aDns, aDns+nDns, pBest+2, zHostname, sizeof(zHostname)); return fossil_strdup(zHostname); } return 0; | > | | 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | } if( pBest ){ ns_name_uncompress(aDns, aDns+nDns, pBest+2, zHostname, sizeof(zHostname)); return fossil_strdup(zHostname); } return 0; #endif /* defined(FOSSIL_UNIX_SYTLE_DNS) */ #if defined(FOSSIL_WINDOWS_STYLE_DNS) DNS_STATUS status; /* Return status */ PDNS_RECORDA pDnsRecord, p; /* Pointer to DNS_RECORD structure */ int iBestPriority = 9999999; /* Best priority */ char *pBest = 0; /* RDATA for the best answer */ status = DnsQuery_UTF8(zDomain, /* Domain name */ DNS_TYPE_MX, /* DNS record type */ |
︙ | ︙ | |||
104 105 106 107 108 109 110 | p = p->pNext; } if( pBest ){ pBest = fossil_strdup(pBest); } DnsRecordListFree(pDnsRecord, DnsFreeRecordListDeep); return pBest; | | | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | p = p->pNext; } if( pBest ){ pBest = fossil_strdup(pBest); } DnsRecordListFree(pDnsRecord, DnsFreeRecordListDeep); return pBest; #endif /* defined(FOSSIL_WINDOWS_STYLE_DNS) */ } /* ** COMMAND: test-find-mx ** ** Usage: %fossil test-find-mx DOMAIN ... ** |
︙ | ︙ |
Changes to win/Makefile.mingw.
︙ | ︙ | |||
408 409 410 411 412 413 414 | endif else LIB += -lkernel32 -lws2_32 endif #### Library required for DNS lookups. # | | | 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 | endif else LIB += -lkernel32 -lws2_32 endif #### Library required for DNS lookups. # LIB += -ldnsapi #### Tcl shell for use in running the fossil test suite. This is only # used for testing. # TCLSH = tclsh #### Nullsoft installer MakeNSIS location |
︙ | ︙ | |||
2418 2419 2420 2421 2422 2423 2424 | $(XTCC) -c $(SRCDIR)/th_lang.c -o $@ $(OBJDIR)/th_tcl.o: $(SRCDIR)/th_tcl.c $(XTCC) -c $(SRCDIR)/th_tcl.c -o $@ $(OBJDIR)/miniz.o: $(SRCDIR)/miniz.c $(XTCC) $(MINIZ_OPTIONS) -c $(SRCDIR)/miniz.c -o $@ | < | 2418 2419 2420 2421 2422 2423 2424 | $(XTCC) -c $(SRCDIR)/th_lang.c -o $@ $(OBJDIR)/th_tcl.o: $(SRCDIR)/th_tcl.c $(XTCC) -c $(SRCDIR)/th_tcl.c -o $@ $(OBJDIR)/miniz.o: $(SRCDIR)/miniz.c $(XTCC) $(MINIZ_OPTIONS) -c $(SRCDIR)/miniz.c -o $@ |