git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Copyright year bumps for substantive changes 2017
[exim.git]
/
src
/
src
/
acl.c
diff --git
a/src/src/acl.c
b/src/src/acl.c
index 619f6f2874ede80b51aaae048482849b416ed4c3..640989997cfecf4f9197bdf3763221f3043208ab 100644
(file)
--- a/
src/src/acl.c
+++ b/
src/src/acl.c
@@
-2,7
+2,7
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 201
6
*/
+/* Copyright (c) University of Cambridge 1995 - 201
7
*/
/* See the file NOTICE for conditions of use and distribution. */
/* Code for handling Access Control Lists (ACLs) */
/* See the file NOTICE for conditions of use and distribution. */
/* Code for handling Access Control Lists (ACLs) */
@@
-1036,9
+1036,7
@@
for (p = q; *p != 0; )
uschar *
fn_hdrs_added(void)
{
uschar *
fn_hdrs_added(void)
{
-uschar * ret = NULL;
-int size = 0;
-int ptr = 0;
+gstring * g = NULL;
header_line * h = acl_added_headers;
uschar * s;
uschar * cp;
header_line * h = acl_added_headers;
uschar * s;
uschar * cp;
@@
-1053,18
+1051,19
@@
do
if (cp[1] == '\0') break;
/* contains embedded newline; needs doubling */
if (cp[1] == '\0') break;
/* contains embedded newline; needs doubling */
-
ret = string_catn(ret, &size, &ptr
, s, cp-s+1);
-
ret = string_catn(ret, &size, &ptr
, US"\n", 1);
+
g = string_catn(g
, s, cp-s+1);
+
g = string_catn(g
, US"\n", 1);
s = cp+1;
}
/* last bit of header */
s = cp+1;
}
/* last bit of header */
- ret = string_catn(ret, &size, &ptr, s, cp-s+1); /* newline-sep list */
+/*XXX could we use add_listele? */
+ g = string_catn(g, s, cp-s+1); /* newline-sep list */
}
while((h = h->next));
}
while((h = h->next));
-
ret[ptr-1] = '\0';
/* overwrite last newline */
-return
ret
;
+
g->s[g->ptr - 1] = '\0';
/* overwrite last newline */
+return
g->s
;
}
}
@@
-2771,8
+2770,9
@@
if (r == HOST_FIND_FAILED || r == HOST_FIND_AGAIN)
HDEBUG(D_acl)
debug_printf_indent("udpsend [%s]:%d %s\n", h->address, portnum, arg);
HDEBUG(D_acl)
debug_printf_indent("udpsend [%s]:%d %s\n", h->address, portnum, arg);
+/*XXX this could better use sendto */
r = s = ip_connectedsocket(SOCK_DGRAM, h->address, portnum, portnum,
r = s = ip_connectedsocket(SOCK_DGRAM, h->address, portnum, portnum,
- 1, NULL, &errstr);
+ 1, NULL, &errstr
, NULL
);
if (r < 0) goto defer;
len = Ustrlen(arg);
r = send(s, arg, len, 0);
if (r < 0) goto defer;
len = Ustrlen(arg);
r = send(s, arg, len, 0);
@@
-3931,7
+3931,7
@@
if (acl_level == 0)
}
else ss = s;
}
else ss = s;
-while (isspace(*ss))ss++;
+while (isspace(*ss))
ss++;
/* If we can't find a named ACL, the default is to parse it as an inline one.
(Unless it begins with a slash; non-existent files give rise to an error.) */
/* If we can't find a named ACL, the default is to parse it as an inline one.
(Unless it begins with a slash; non-existent files give rise to an error.) */