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
Overhaul of GnuTLS code.
[exim.git]
/
src
/
src
/
buildconfig.c
diff --git
a/src/src/buildconfig.c
b/src/src/buildconfig.c
index 3cd9b2924d5fbdfa03be3b4fc8a538bdda1d827d..1eaf2f505dfcd4ae3f561c9d8c7c03a85ade5af4 100644
(file)
--- a/
src/src/buildconfig.c
+++ b/
src/src/buildconfig.c
@@
-1,5
+1,3
@@
-/* $Cambridge: exim/src/src/buildconfig.c,v 1.18 2010/06/07 18:09:07 pdp Exp $ */
-
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
@@
-34,7
+32,6
@@
normally called independently. */
#include <ctype.h>
#include <ctype.h>
-#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@
-43,16
+40,16
@@
normally called independently. */
#include <grp.h>
typedef struct {
#include <grp.h>
typedef struct {
- char *name;
+ c
onst c
har *name;
int *flag;
} have_item;
typedef struct {
int *flag;
} have_item;
typedef struct {
- char *name;
+ c
onst c
har *name;
char *data;
} save_item;
char *data;
} save_item;
-static char *db_opts[] = { "", "USE_DB", "USE_GDBM", "USE_TDB" };
+static c
onst c
har *db_opts[] = { "", "USE_DB", "USE_GDBM", "USE_TDB" };
static int have_ipv6 = 0;
static int have_iconv = 0;
static int have_ipv6 = 0;
static int have_iconv = 0;
@@
-104,8
+101,9
@@
main(int argc, char **argv)
{
off_t test_off_t = 0;
time_t test_time_t = 0;
{
off_t test_off_t = 0;
time_t test_time_t = 0;
-#if !
(__STDC_VERSION__ >= 199901L) && !defined(PRIdMAX
)
+#if !
(__STDC_VERSION__ >= 199901L
)
size_t test_size_t = 0;
size_t test_size_t = 0;
+ssize_t test_ssize_t = 0;
unsigned long test_ulong_t = 0L;
#endif
long test_long_t = 0;
unsigned long test_ulong_t = 0L;
#endif
long test_long_t = 0;
@@
-182,19
+180,22
@@
else
fprintf(new, "#endif\n\n");
/* And for sizeof() results, size_t, which should with C99 be just %zu, deal
fprintf(new, "#endif\n\n");
/* And for sizeof() results, size_t, which should with C99 be just %zu, deal
-with C99 not being ubiquitous yet. Unfortunately. */
+with C99 not being ubiquitous yet. Unfortunately. Assume ssize_t is same
+size as size_t on C99; if someone comes up with a version where it's not, fix
+it then. */
#if __STDC_VERSION__ >= 199901L
fprintf(new, "#define SIZE_T_FMT \"%%zu\"\n");
#if __STDC_VERSION__ >= 199901L
fprintf(new, "#define SIZE_T_FMT \"%%zu\"\n");
+fprintf(new, "#define SSIZE_T_FMT \"%%zd\"\n");
#else
#else
-# ifdef PRIdMAX
-fprintf(new, "#define SIZE_T_FMT \"%%" PRIdMAX "\"\n");
-# else
if (sizeof(test_size_t) > sizeof (test_ulong_t))
fprintf(new, "#define SIZE_T_FMT \"%%llu\"\n");
else
fprintf(new, "#define SIZE_T_FMT \"%%lu\"\n");
if (sizeof(test_size_t) > sizeof (test_ulong_t))
fprintf(new, "#define SIZE_T_FMT \"%%llu\"\n");
else
fprintf(new, "#define SIZE_T_FMT \"%%lu\"\n");
-# endif
+if (sizeof(test_ssize_t) > sizeof(test_long_t))
+ fprintf(new, "#define SSIZE_T_FMT \"%%lld\"\n");
+else
+ fprintf(new, "#define SSIZE_T_FMT \"%%ld\"\n");
#endif
/* Now search the makefile for certain settings */
#endif
/* Now search the makefile for certain settings */
@@
-339,6
+340,16
@@
while (fgets(buffer, sizeof(buffer), base) != NULL)
while (*p == ' ' || *p == '\t') p++;
while (*p == ' ' || *p == '\t') p++;
+ if (strncmp(p, "#ifdef ", 7) == 0
+ || strncmp(p, "#ifndef ", 8) == 0
+ || strncmp(p, "#if ", 4) == 0
+ || strncmp(p, "#endif", 6) == 0
+ )
+ {
+ fputs(buffer, new);
+ continue;
+ }
+
if (strncmp(p, "#define ", 8) != 0) continue;
p += 8;
if (strncmp(p, "#define ", 8) != 0) continue;
p += 8;
@@
-532,8
+543,9
@@
while (fgets(buffer, sizeof(buffer), base) != NULL)
steps to filter out the most obvious ones. */
if ((!uid_not_set && uid == 0) ||
steps to filter out the most obvious ones. */
if ((!uid_not_set && uid == 0) ||
- (strcmp(username, "root") == 0) ||
- (strcmp(username, "toor") == 0) )
+ ((username != NULL) && (
+ (strcmp(username, "root") == 0) ||
+ (strcmp(username, "toor") == 0) )))
{
printf("\n*** Exim's internal user must not be root.\n\n");
return 1;
{
printf("\n*** Exim's internal user must not be root.\n\n");
return 1;
@@
-563,9
+575,9
@@
while (fgets(buffer, sizeof(buffer), base) != NULL)
int isgroup = name[10] == 'G';
uid_t uid = 0;
gid_t gid = 0;
int isgroup = name[10] == 'G';
uid_t uid = 0;
gid_t gid = 0;
- char *s;
- char *username = NULL;
- char *user = getenv(name);
+ c
onst c
har *s;
+ c
onst c
har *username = NULL;
+ c
onst c
har *user = getenv(name);
if (user == NULL) user = "";
while (isspace((unsigned char)(*user))) user++;
if (user == NULL) user = "";
while (isspace((unsigned char)(*user))) user++;
@@
-606,8
+618,7
@@
while (fgets(buffer, sizeof(buffer), base) != NULL)
while (isspace(*user)) user++;
username = user;
}
while (isspace(*user)) user++;
username = user;
}
-
- else if (isgroup)
+else if (isgroup)
{
struct group *gr = getgrnam(user);
if (gr == NULL)
{
struct group *gr = getgrnam(user);
if (gr == NULL)
@@
-806,10
+817,13
@@
while (fgets(buffer, sizeof(buffer), base) != NULL)
fprintf(new, "\"%s\"\n", value);
}
fprintf(new, "\"%s\"\n", value);
}
- /* Timezone values and HEADERS_CHARSET get quoted */
+ /* Timezone values HEADERS_CHARSET, TCP_WRAPPERS_DAEMON_NAME and
+ WHITELIST_D_MACROS get quoted */
else if (strcmp(name, "TIMEZONE_DEFAULT") == 0||
else if (strcmp(name, "TIMEZONE_DEFAULT") == 0||
- strcmp(name, "HEADERS_CHARSET") == 0)
+ strcmp(name, "TCP_WRAPPERS_DAEMON_NAME") == 0||
+ strcmp(name, "HEADERS_CHARSET") == 0||
+ strcmp(name, "WHITELIST_D_MACROS") == 0)
fprintf(new, "\"%s\"\n", value);
/* For others, quote any paths and don't quote anything else */
fprintf(new, "\"%s\"\n", value);
/* For others, quote any paths and don't quote anything else */