]> git.netwichtig.de Git - user/henk/code/exim.git/blobdiff - src/src/transport.c
ARC: add independent-source testcase. Fix signatures by not line-terminating
[user/henk/code/exim.git] / src / src / transport.c
index 75af68f9ba82dbf78caf89644b181b2d01128ecc..f24b7794b9f1e20ff8fabcb461d5da9ebce47b16 100644 (file)
@@ -2,7 +2,7 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 /* General functions concerned with transportation, and generic options for all
@@ -245,7 +245,8 @@ for (i = 0; i < 100; i++)
        tls_out.active == fd ? tls_write(FALSE, block, len, more) :
 #endif
 #ifdef MSG_MORE
-       more ? send(fd, block, len, MSG_MORE) :
+       more && !(tctx->options & topt_not_socket)
+         ? send(fd, block, len, MSG_MORE) :
 #endif
        write(fd, block, len);
     save_errno = errno;
@@ -262,7 +263,8 @@ for (i = 0; i < 100; i++)
        tls_out.active == fd ? tls_write(FALSE, block, len, more) :
 #endif
 #ifdef MSG_MORE
-       more ? send(fd, block, len, MSG_MORE) :
+       more && !(tctx->options & topt_not_socket)
+         ? send(fd, block, len, MSG_MORE) :
 #endif
        write(fd, block, len);
 
@@ -588,7 +590,7 @@ at = Ustrrchr(addr->address, '@');
 plen = (addr->prefix == NULL)? 0 : Ustrlen(addr->prefix);
 slen = Ustrlen(addr->suffix);
 
-return string_sprintf("%.*s@%s", (at - addr->address - plen - slen),
+return string_sprintf("%.*s@%s", (int)(at - addr->address - plen - slen),
    addr->address + plen, at + 1);
 }