[exim-cvs] Fix GNU/Hurd build. Bug 3044

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Exim Git Commits Mailing List
Ημερομηνία:  
Προς: exim-cvs
Αντικείμενο: [exim-cvs] Fix GNU/Hurd build. Bug 3044
Gitweb: https://git.exim.org/exim.git/commitdiff/79c7bae7b372b89a8051ebc7c850ae9339597949
Commit:     79c7bae7b372b89a8051ebc7c850ae9339597949
Parent:     e7ee19e5c96ecc1e1960efa8835dc08e6b39dc8a
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Sun May 12 11:49:04 2024 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Sun May 12 11:49:04 2024 +0100


    Fix GNU/Hurd build.  Bug 3044


    Contributions from Samuel Thibault and Andreas Metzler
---
 src/OS/Makefile-Base          |  6 ++++--
 src/exim_monitor/em_hdr.h     |  1 +
 src/exim_monitor/em_version.c | 12 +-----------
 src/scripts/MakeLinks         |  3 ++-
 src/src/exim.h                | 11 +----------
 src/src/os.c                  |  4 +---
 src/src/path_max.h            | 19 +++++++++++++++++++
 src/src/tls-openssl.c         | 10 ----------
 src/src/tls.c                 | 11 +++++++++--
 9 files changed, 38 insertions(+), 39 deletions(-)


diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base
index 6dcf18b58..b3bb87c22 100644
--- a/src/OS/Makefile-Base
+++ b/src/OS/Makefile-Base
@@ -108,7 +108,7 @@ config.h: Makefile buildconfig ../src/config.h.defaults $(EDITME)

# Build the builtin-macros data struct

-MACRO_HSRC = macro_predef.h os.h globals.h config.h macros.h \
+MACRO_HSRC = macro_predef.h os.h globals.h config.h macros.h path_max.h \
     routers/accept.h routers/dnslookup.h routers/ipliteral.h \
     routers/iplookup.h routers/manualroute.h routers/queryprogram.h \
     routers/redirect.h
@@ -664,7 +664,7 @@ OBJ_MONBIN = util-host_address.o \
          $(MONBIN)


 eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) ../exim_monitor/em_version.c \
-        mytypes.h store.h macros.h
+        mytypes.h store.h path_max.h macros.h
     @echo "$(CC) exim_monitor/em_version.c"
     $(FE)$(CC) -o em_version.o -c \
       $(CFLAGS) $(XINCLUDE) -I. ../exim_monitor/em_version.c
@@ -698,6 +698,7 @@ HDRS  =    blob.h \
     local_scan.h \
     macros.h \
     mytypes.h \
+    path_max.h \
     sha_ver.h \
     structs.h \
     os.h
@@ -711,6 +712,7 @@ PHDRS = ../config.h \
     ../local_scan.h \
     ../macros.h \
     ../mytypes.h \
+    ../path_max.h \
     ../structs.h \
     ../os.h


diff --git a/src/exim_monitor/em_hdr.h b/src/exim_monitor/em_hdr.h
index f79686a80..074fef1d3 100644
--- a/src/exim_monitor/em_hdr.h
+++ b/src/exim_monitor/em_hdr.h
@@ -99,6 +99,7 @@ this interface so that this kind of kludge isn't needed. */
typedef void * hctx;

#include "local_scan.h"
+#include "path_max.h"
#include "macros.h"
#include "structs.h"
#include "blob.h"
diff --git a/src/exim_monitor/em_version.c b/src/exim_monitor/em_version.c
index 4c562925c..432796bff 100644
--- a/src/exim_monitor/em_version.c
+++ b/src/exim_monitor/em_version.c
@@ -9,19 +9,9 @@

#define EM_VERSION_C

-/* Needed by macros.h */
-/* Some systems have PATH_MAX and some have MAX_PATH_LEN. */
-
-#ifndef PATH_MAX
-# ifdef MAX_PATH_LEN
-# define PATH_MAX MAX_PATH_LEN
-# else
-# define PATH_MAX 1024
-# endif
-#endif
-
#include "mytypes.h"
#include "store.h"
+#include "path_max.h"
#include "macros.h"
#include <string.h>
#include <stdlib.h>
diff --git a/src/scripts/MakeLinks b/src/scripts/MakeLinks
index 352176fa4..03e0b4124 100755
--- a/src/scripts/MakeLinks
+++ b/src/scripts/MakeLinks
@@ -98,7 +98,8 @@ cd ..

for f in blob.h dbfunctions.h exim.h functions.h globals.h \
hash.h hintsdb.h hintsdb_structs.h local_scan.h \
- macros.h mytypes.h osfunctions.h store.h structs.h lookupapi.h sha_ver.h \
+ macros.h mytypes.h osfunctions.h path_max.h store.h \
+ structs.h lookupapi.h sha_ver.h \
\
acl.c buildconfig.c base64.c child.c crypt16.c daemon.c dbfn.c debug.c \
deliver.c directory.c dns.c dnsbl.c drtables.c dummies.c enq.c exim.c \
diff --git a/src/src/exim.h b/src/src/exim.h
index 699b39165..6baf1fbb4 100644
--- a/src/src/exim.h
+++ b/src/src/exim.h
@@ -127,16 +127,6 @@ making unique names. */
# define EXIM_ARITH_MIN (-EXIM_ARITH_MAX - 1)
#endif

-/* Some systems have PATH_MAX and some have MAX_PATH_LEN. */
-
-#ifndef PATH_MAX
-# ifdef MAX_PATH_LEN
-# define PATH_MAX MAX_PATH_LEN
-# else
-# define PATH_MAX 1024
-# endif
-#endif
-
/* RFC 5321 specifies that the maximum length of a local-part is 64 octets
and the maximum length of a domain is 255 octets, but then also defines
the maximum length of a forward/reverse path as 256 not 64+1+255.
@@ -532,6 +522,7 @@ config.h, mytypes.h, and store.h, so we don't need to mention them explicitly.
*/

 #include "local_scan.h"
+#include "path_max.h"
 #include "macros.h"
 #include "hintsdb.h"
 #include "hintsdb_structs.h"
diff --git a/src/src/os.c b/src/src/os.c
index 3b49e4b9e..c4c86df95 100644
--- a/src/src/os.c
+++ b/src/src/os.c
@@ -878,9 +878,7 @@ os_getcwd(unsigned char * buffer, size_t size)
 return US  getcwd(CS buffer, size);
 }
 #else
-#ifndef PATH_MAX
-# define PATH_MAX 4096
-#endif
+# include "path_max.h"
 unsigned char *
 os_getcwd(unsigned char * buffer, size_t size)
 {
diff --git a/src/src/path_max.h b/src/src/path_max.h
new file mode 100644
index 000000000..d8df2c7bc
--- /dev/null
+++ b/src/src/path_max.h
@@ -0,0 +1,19 @@
+/*************************************************
+*     Exim - an Internet mail transport agent    *
+*************************************************/
+
+/* Copyright (c) The Exim Maintainers 2024 */
+/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+/* This was in exim.h - but not all files needing it can include all of that. */
+/* Needed by macros.h */
+/* Some systems have PATH_MAX and some have MAX_PATH_LEN. */
+#ifndef PATH_MAX
+# ifdef MAX_PATH_LEN
+#  define PATH_MAX MAX_PATH_LEN
+# else
+#  define PATH_MAX 4096
+# endif
+#endif
+
diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c
index 34612adea..ca8e9b0de 100644
--- a/src/src/tls-openssl.c
+++ b/src/src/tls-openssl.c
@@ -1999,16 +1999,6 @@ SSL_CTX_free(ob->tls_preload.lib_ctx);
 ob->tls_preload = null_tls_preload;
 }


-#else
-
-static void
-tls_server_creds_invalidate(void)
-{ return; }
-
-static void
-tls_client_creds_invalidate(transport_instance * t)
-{ return; }
-
 #endif    /*EXIM_HAVE_INOTIFY*/



diff --git a/src/src/tls.c b/src/src/tls.c
index e6203b768..0e9a7c534 100644
--- a/src/src/tls.c
+++ b/src/src/tls.c
@@ -40,13 +40,16 @@ functions from the OpenSSL or GNU TLS libraries. */
static void tls_per_lib_daemon_init(void);
static void tls_per_lib_daemon_tick(void);
static unsigned tls_server_creds_init(void);
-static void tls_server_creds_invalidate(void);
static void tls_client_creds_init(transport_instance *, BOOL);
-static void tls_client_creds_invalidate(transport_instance *);
static void tls_daemon_creds_reload(void);
static BOOL opt_set_and_noexpand(const uschar *);
static BOOL opt_unset_or_noexpand(const uschar *);

+#if defined(EXIM_HAVE_INOTIFY) || defined(EXIM_HAVE_KEVENT)
+static void tls_server_creds_invalidate(void);
+static void tls_client_creds_invalidate(transport_instance *);
+#endif
+


 /* This module is compiled only when it is specifically requested in the
@@ -324,7 +327,9 @@ tls_client_creds_reload(BOOL watch)
 for(transport_instance * t = transports; t; t = t->next)
   if (Ustrcmp(t->driver_name, "smtp") == 0)
     {
+#if defined(EXIM_HAVE_INOTIFY) || defined(EXIM_HAVE_KEVENT)
     tls_client_creds_invalidate(t);
+#endif
     tls_client_creds_init(t, watch);
     }
 }
@@ -360,7 +365,9 @@ unsigned lifetime;
 tls_watch_invalidate();
 #endif


+#if defined(EXIM_HAVE_INOTIFY) || defined(EXIM_HAVE_KEVENT)
tls_server_creds_invalidate();
+#endif

/* _expire is for a time-limited selfsign server cert */
tls_creds_expire = (lifetime = tls_server_creds_init())

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-cvs.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-cvs-unsubscribe@???
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/