1*4882a593SmuzhiyunFrom 1631a6c1f50e152b8a45d8279c96086e5636795b Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Christos Tsantilas <christos@chtsanti.net> 3*4882a593SmuzhiyunDate: Fri, 25 Jan 2019 06:42:22 -0800 4*4882a593SmuzhiyunSubject: [PATCH] Required fixes to compile and run under cygwin 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun[Retrieved (and backported) from: 7*4882a593Smuzhiyunhttps://github.com/c-icap/c-icap-server/commit/1631a6c1f50e152b8a45d8279c96086e5636795b, 8*4882a593Smuzhiyunwhich has the side effect of fixing the build with the musl C library] 9*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 10*4882a593Smuzhiyun--- 11*4882a593Smuzhiyun Makefile.am | 2 +- 12*4882a593Smuzhiyun configure.ac | 10 +++++++--- 13*4882a593Smuzhiyun header.c | 34 ---------------------------------- 14*4882a593Smuzhiyun include/header.h | 8 -------- 15*4882a593Smuzhiyun modules/Makefile.am | 34 ++++++++++++++++++++-------------- 16*4882a593Smuzhiyun modules/bdb_tables.c | 17 +++++++++++++++-- 17*4882a593Smuzhiyun modules/shared_cache.c | 12 ++++++++++++ 18*4882a593Smuzhiyun modules/sys_logger.c | 13 +++++++++++++ 19*4882a593Smuzhiyun services/echo/Makefile.am | 10 ++++++++-- 20*4882a593Smuzhiyun services/ex-206/Makefile.am | 10 ++++++++-- 21*4882a593Smuzhiyun utils/c-icap-mkbdb.c | 8 ++++---- 22*4882a593Smuzhiyun 11 files changed, 88 insertions(+), 70 deletions(-) 23*4882a593Smuzhiyun 24*4882a593Smuzhiyundiff --git a/Makefile.am b/Makefile.am 25*4882a593Smuzhiyunindex 4c34033..ab80f4f 100644 26*4882a593Smuzhiyun--- a/Makefile.am 27*4882a593Smuzhiyun+++ b/Makefile.am 28*4882a593Smuzhiyun@@ -53,7 +53,7 @@ c_icap_SOURCES = aserver.c request.c cfg_param.c \ 29*4882a593Smuzhiyun libicapapi_la_CFLAGS= $(INVISIBILITY_CFLAG) -I$(srcdir)/include/ -Iinclude/ @ZLIB_ADD_FLAG@ @OPENSSL_ADD_FLAG@ @BZLIB_ADD_FLAG@ @BROTLI_ADD_FLAG@ @PCRE_ADD_FLAG@ -DCI_BUILD_LIB 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun libicapapi_la_LIBADD = @ZLIB_ADD_LDADD@ @BZLIB_ADD_LDADD@ @BROTLI_ADD_LDADD@ @PCRE_ADD_LDADD@ @DL_ADD_FLAG@ @THREADS_LDADD@ @OPENSSL_ADD_LDADD@ 32*4882a593Smuzhiyun-libicapapi_la_LDFLAGS= -shared -version-info @CICAPLIB_VERSION@ @THREADS_LDFLAGS@ 33*4882a593Smuzhiyun+libicapapi_la_LDFLAGS= -shared -version-info @CICAPLIB_VERSION@ @LIBS_LDFLAGS@ @THREADS_LDFLAGS@ 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun export EXT_PROGRAMS_MKLIB = @ZLIB_LNDIR_LDADD@ @BZLIB_LNDIR_LDADD@ @BROTLI_LNDIR_LDADD@ @PCRE_LNDIR_LDADD@ @OPENSSL_LNDIR_LDADD@ 36*4882a593Smuzhiyun 37*4882a593Smuzhiyundiff --git a/configure.ac b/configure.ac 38*4882a593Smuzhiyunindex 405571b..8059cb7 100644 39*4882a593Smuzhiyun--- a/configure.ac 40*4882a593Smuzhiyun+++ b/configure.ac 41*4882a593Smuzhiyun@@ -45,12 +45,14 @@ case "$host_os" in 42*4882a593Smuzhiyun CFLAGS="-D_REENTRANT $CFLAGS" 43*4882a593Smuzhiyun THREADS_LDADD="-lpthread" 44*4882a593Smuzhiyun THREADS_LDFLAGS="" 45*4882a593Smuzhiyun+ LIBS_LDFLAGS="" 46*4882a593Smuzhiyun ;; 47*4882a593Smuzhiyun solaris2.*) 48*4882a593Smuzhiyun CFLAGS="-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS $CFLAGS" 49*4882a593Smuzhiyun LIBS="-lsocket -lnsl -lrt $LIBS" 50*4882a593Smuzhiyun THREADS_LDADD="-lpthread" 51*4882a593Smuzhiyun THREADS_LDFLAGS="" 52*4882a593Smuzhiyun+ LIBS_LDFLAGS="" 53*4882a593Smuzhiyun ;; 54*4882a593Smuzhiyun freebsd5*) 55*4882a593Smuzhiyun ## If I understand how all those threading models works correctly 56*4882a593Smuzhiyun@@ -69,6 +71,7 @@ case "$host_os" in 57*4882a593Smuzhiyun CFLAGS="-pthread -D_THREAD_SAFE $CFLAGS" 58*4882a593Smuzhiyun THREADS_LDADD="-XCClinker -lc_r" 59*4882a593Smuzhiyun THREADS_LDFLAGS="" 60*4882a593Smuzhiyun+ LIBS_LDFLAGS="" 61*4882a593Smuzhiyun ## FreeBSD has pthreads rwlocks from version 3 (I think) 62*4882a593Smuzhiyun # AC_DEFINE(HAVE_PTHREADS_RWLOCK,1,[Define HAVE_PTHREADS_RWLOCK if pthreads library supports rwlocks]) 63*4882a593Smuzhiyun ## 1:1 threads 64*4882a593Smuzhiyun@@ -82,24 +85,28 @@ case "$host_os" in 65*4882a593Smuzhiyun CFLAGS="-D_THREAD_SAFE $CFLAGS" 66*4882a593Smuzhiyun THREADS_LDADD="-XCClinker -lthr" 67*4882a593Smuzhiyun THREADS_LDFLAGS="" 68*4882a593Smuzhiyun+ LIBS_LDFLAGS="" 69*4882a593Smuzhiyun ;; 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun cygwin*) 72*4882a593Smuzhiyun CFLAGS="-D_REENTRANT $CFLAGS" 73*4882a593Smuzhiyun THREADS_LDADD="-lpthread" 74*4882a593Smuzhiyun THREADS_LDFLAGS=""; 75*4882a593Smuzhiyun+ LIBS_LDFLAGS="-no-undefined" 76*4882a593Smuzhiyun iscygwin="yes" 77*4882a593Smuzhiyun ;; 78*4882a593Smuzhiyun *) 79*4882a593Smuzhiyun CFLAGS="-D_REENTRANT $CFLAGS" 80*4882a593Smuzhiyun THREADS_LDADD="-lpthread" 81*4882a593Smuzhiyun THREADS_LDFLAGS="" 82*4882a593Smuzhiyun+ LIBS_LDFLAGS="" 83*4882a593Smuzhiyun ;; 84*4882a593Smuzhiyun esac 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun TEST_LIBS="$TEST_LIBS $THREADS_LDADD" 87*4882a593Smuzhiyun AC_SUBST(THREADS_LDADD) 88*4882a593Smuzhiyun AC_SUBST(THREADS_LDFLAGS) 89*4882a593Smuzhiyun+AC_SUBST(LIBS_LDFLAGS) 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun AC_DEFINE_UNQUOTED(C_ICAP_CONFIGURE_OPTIONS, "$ac_configure_args", 92*4882a593Smuzhiyun [configure command line used to configure c-icap]) 93*4882a593Smuzhiyun@@ -984,9 +991,6 @@ LIBS="$LIBS $EXTRALIBS" 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun #Configure common flags 96*4882a593Smuzhiyun MODULES_LIBADD="" 97*4882a593Smuzhiyun-if test a"$iscygwin" != a; then 98*4882a593Smuzhiyun- MODULES_LIBADD="-L../../ -licapapi" 99*4882a593Smuzhiyun-fi 100*4882a593Smuzhiyun MODULES_CFLAGS="$INVISIBILITY_CFLAG -DCI_BUILD_MODULE" 101*4882a593Smuzhiyun AC_SUBST(MODULES_LIBADD) 102*4882a593Smuzhiyun AC_SUBST(MODULES_CFLAGS) 103*4882a593Smuzhiyundiff --git a/header.c b/header.c 104*4882a593Smuzhiyunindex 807a2e0..266b958 100644 105*4882a593Smuzhiyun--- a/header.c 106*4882a593Smuzhiyun+++ b/header.c 107*4882a593Smuzhiyun@@ -110,21 +110,6 @@ const struct ci_error_code ci_error_codes[] = { 108*4882a593Smuzhiyun {505, "Unsupported version"} /*ICAP version not supported by server. */ 109*4882a593Smuzhiyun }; 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun-/* 112*4882a593Smuzhiyun-#ifdef __CYGWIN__ 113*4882a593Smuzhiyun-int ci_error_code(int ec){ 114*4882a593Smuzhiyun- return (ec >= EC_100 && ec < EC_MAX ? ci_error_codes[ec].code:1000); 115*4882a593Smuzhiyun-} 116*4882a593Smuzhiyun- 117*4882a593Smuzhiyun-const char *unknownerrorcode = "UNKNOWN ERROR CODE"; 118*4882a593Smuzhiyun- 119*4882a593Smuzhiyun-const char *ci_error_code_string(int ec){ 120*4882a593Smuzhiyun- return (ec >= EC_100 && ec < EC_MAX?ci_error_codes[ec].str:unknownerrorcode); 121*4882a593Smuzhiyun-} 122*4882a593Smuzhiyun-#endif 123*4882a593Smuzhiyun-*/ 124*4882a593Smuzhiyun- 125*4882a593Smuzhiyun- 126*4882a593Smuzhiyun const char *ci_encaps_entities[] = { 127*4882a593Smuzhiyun "req-hdr", 128*4882a593Smuzhiyun "res-hdr", 129*4882a593Smuzhiyun@@ -134,25 +119,6 @@ const char *ci_encaps_entities[] = { 130*4882a593Smuzhiyun "opt-body" 131*4882a593Smuzhiyun }; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun-#ifdef __CYGWIN__ 134*4882a593Smuzhiyun- 135*4882a593Smuzhiyun-const char *unknownentity = "UNKNOWN"; 136*4882a593Smuzhiyun-const char *unknownmethod = "UNKNOWN"; 137*4882a593Smuzhiyun- 138*4882a593Smuzhiyun-const char *ci_method_string(int method) 139*4882a593Smuzhiyun-{ 140*4882a593Smuzhiyun- return (method <= ICAP_RESPMOD 141*4882a593Smuzhiyun- && method >= ICAP_OPTIONS ? CI_Methods[method] : unknownmethod); 142*4882a593Smuzhiyun-} 143*4882a593Smuzhiyun- 144*4882a593Smuzhiyun- 145*4882a593Smuzhiyun-const char *ci_encaps_entity_string(int e) 146*4882a593Smuzhiyun-{ 147*4882a593Smuzhiyun- return (e <= ICAP_OPT_BODY 148*4882a593Smuzhiyun- && e >= ICAP_REQ_HDR ? CI_EncapsEntities[e] : unknownentity); 149*4882a593Smuzhiyun-} 150*4882a593Smuzhiyun-#endif 151*4882a593Smuzhiyun- 152*4882a593Smuzhiyun ci_headers_list_t *ci_headers_create() 153*4882a593Smuzhiyun { 154*4882a593Smuzhiyun ci_headers_list_t *h; 155*4882a593Smuzhiyundiff --git a/include/header.h b/include/header.h 156*4882a593Smuzhiyunindex 4cab365..ed2de88 100644 157*4882a593Smuzhiyun--- a/include/header.h 158*4882a593Smuzhiyun+++ b/include/header.h 159*4882a593Smuzhiyun@@ -52,16 +52,8 @@ enum ci_encapsulated_entities {ICAP_REQ_HDR, ICAP_RES_HDR, 160*4882a593Smuzhiyun }; 161*4882a593Smuzhiyun CI_DECLARE_DATA extern const char *ci_encaps_entities[]; 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun-#ifdef __CYGWIN__ 164*4882a593Smuzhiyun- 165*4882a593Smuzhiyun-const char *ci_encaps_entity_string(int e); 166*4882a593Smuzhiyun- 167*4882a593Smuzhiyun-#else 168*4882a593Smuzhiyun- 169*4882a593Smuzhiyun #define ci_encaps_entity_string(e) (e <= ICAP_OPT_BODY && e >= ICAP_REQ_HDR?ci_encaps_entities[e]:"UNKNOWN") 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun-#endif 172*4882a593Smuzhiyun- 173*4882a593Smuzhiyun /** 174*4882a593Smuzhiyun \typedef ci_headers_list_t 175*4882a593Smuzhiyun \ingroup HEADERS 176*4882a593Smuzhiyundiff --git a/modules/Makefile.am b/modules/Makefile.am 177*4882a593Smuzhiyunindex e6e9270..2d43a60 100644 178*4882a593Smuzhiyun--- a/modules/Makefile.am 179*4882a593Smuzhiyun+++ b/modules/Makefile.am 180*4882a593Smuzhiyun@@ -21,38 +21,44 @@ endif 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun AM_CPPFLAGS=-I$(top_srcdir)/ -I$(top_srcdir)/include/ -I$(top_builddir)/include/ 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun-sys_logger_la_LIBADD = @MODULES_LIBADD@ 185*4882a593Smuzhiyun+if ISCYGWIN 186*4882a593Smuzhiyun+MODS_LIB_ADD=$(top_builddir)/libicapapi.la 187*4882a593Smuzhiyun+else 188*4882a593Smuzhiyun+MODS_LIB_ADD= 189*4882a593Smuzhiyun+endif 190*4882a593Smuzhiyun+ 191*4882a593Smuzhiyun+sys_logger_la_LIBADD = $(MODS_LIB_ADD) 192*4882a593Smuzhiyun sys_logger_la_CFLAGS= @MODULES_CFLAGS@ @OPENSSL_ADD_FLAG@ 193*4882a593Smuzhiyun-sys_logger_la_LDFLAGS= -module -avoid-version 194*4882a593Smuzhiyun+sys_logger_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ 195*4882a593Smuzhiyun sys_logger_la_SOURCES = sys_logger.c 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun-dnsbl_tables_la_LIBADD = @MODULES_LIBADD@ 198*4882a593Smuzhiyun+dnsbl_tables_la_LIBADD = $(MODS_LIB_ADD) 199*4882a593Smuzhiyun dnsbl_tables_la_CFLAGS= @MODULES_CFLAGS@ @OPENSSL_ADD_FLAG@ 200*4882a593Smuzhiyun-dnsbl_tables_la_LDFLAGS= -module -avoid-version 201*4882a593Smuzhiyun+dnsbl_tables_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ 202*4882a593Smuzhiyun dnsbl_tables_la_SOURCES = dnsbl_tables.c 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun-perl_handler_la_LIBADD = @MODULES_LIBADD@ @perllib@ -L@perlcore@ -lperl 205*4882a593Smuzhiyun+perl_handler_la_LIBADD = $(MODS_LIB_ADD) @perllib@ -L@perlcore@ -lperl 206*4882a593Smuzhiyun perl_handler_la_CFLAGS= @MODULES_CFLAGS@ @perlccflags@ -I@perlcore@ 207*4882a593Smuzhiyun-perl_handler_la_LDFLAGS= -module -avoid-version @perlldflags@ 208*4882a593Smuzhiyun+perl_handler_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ @perlldflags@ 209*4882a593Smuzhiyun perl_handler_la_SOURCES = perl_handler.c 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun-bdb_tables_la_LIBADD = @MODULES_LIBADD@ @BDB_ADD_LDADD@ 213*4882a593Smuzhiyun+bdb_tables_la_LIBADD = $(MODS_LIB_ADD) @BDB_ADD_LDADD@ 214*4882a593Smuzhiyun bdb_tables_la_CFLAGS= @MODULES_CFLAGS@ @BDB_ADD_FLAG@ 215*4882a593Smuzhiyun-bdb_tables_la_LDFLAGS= -module -avoid-version 216*4882a593Smuzhiyun+bdb_tables_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ 217*4882a593Smuzhiyun bdb_tables_la_SOURCES = bdb_tables.c 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun-ldap_module_la_LIBADD = @MODULES_LIBADD@ @LDAP_ADD_LDADD@ $(top_builddir)/libicapapi.la 220*4882a593Smuzhiyun+ldap_module_la_LIBADD = $(MODS_LIB_ADD) @LDAP_ADD_LDADD@ 221*4882a593Smuzhiyun ldap_module_la_CFLAGS= @MODULES_CFLAGS@ @LDAP_ADD_FLAG@ 222*4882a593Smuzhiyun-ldap_module_la_LDFLAGS= -module -avoid-version 223*4882a593Smuzhiyun+ldap_module_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ 224*4882a593Smuzhiyun ldap_module_la_SOURCES = ldap_module.c 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun-memcached_cache_la_LIBADD= @MODULES_LIBADD@ @MEMCACHED_ADD_LDADD@ 227*4882a593Smuzhiyun+memcached_cache_la_LIBADD= $(MODS_LIB_ADD) @MEMCACHED_ADD_LDADD@ 228*4882a593Smuzhiyun memcached_cache_la_CFLAGS= @MODULES_CFLAGS@ @MEMCACHED_ADD_FLAG@ 229*4882a593Smuzhiyun-memcached_cache_la_LDFLAGS= -module -avoid-version 230*4882a593Smuzhiyun+memcached_cache_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ 231*4882a593Smuzhiyun memcached_cache_la_SOURCES= memcached.c 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun-shared_cache_la_LIBADD= @MODULES_LIBADD@ 234*4882a593Smuzhiyun+shared_cache_la_LIBADD= $(MODS_LIB_ADD) 235*4882a593Smuzhiyun shared_cache_la_CFLAGS= @OPENSSL_ADD_FLAG@ 236*4882a593Smuzhiyun-shared_cache_la_LDFLAGS= -module -avoid-version 237*4882a593Smuzhiyun+shared_cache_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ 238*4882a593Smuzhiyun shared_cache_la_SOURCES= shared_cache.c 239*4882a593Smuzhiyundiff --git a/modules/bdb_tables.c b/modules/bdb_tables.c 240*4882a593Smuzhiyunindex b8459be..1e908a9 100644 241*4882a593Smuzhiyun--- a/modules/bdb_tables.c 242*4882a593Smuzhiyun+++ b/modules/bdb_tables.c 243*4882a593Smuzhiyun@@ -176,8 +176,8 @@ void *bdb_table_open(struct ci_lookup_table *table) 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun /*We can not fork a Berkeley DB table, so we have to 246*4882a593Smuzhiyun open bdb tables for every child, on childs start-up procedure*/ 247*4882a593Smuzhiyun- register_command_extend("openBDBtable", CHILD_START_CMD, table, 248*4882a593Smuzhiyun- command_real_open_table); 249*4882a593Smuzhiyun+ ci_command_register_action("openBDBtable", CHILD_START_CMD, table, 250*4882a593Smuzhiyun+ command_real_open_table); 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun return table->data; 253*4882a593Smuzhiyun } 254*4882a593Smuzhiyun@@ -257,3 +257,16 @@ void bdb_table_release_result(struct ci_lookup_table *table,void **val) 255*4882a593Smuzhiyun { 256*4882a593Smuzhiyun ci_buffer_free(val); 257*4882a593Smuzhiyun } 258*4882a593Smuzhiyun+ 259*4882a593Smuzhiyun+ #ifdef __CYGWIN__ 260*4882a593Smuzhiyun+#include <w32api/windows.h> 261*4882a593Smuzhiyun+void ci_command_register_action(const char *name, int type, void *data, 262*4882a593Smuzhiyun+ void (*command_action) (const char *name, int type, void *data)) 263*4882a593Smuzhiyun+ { 264*4882a593Smuzhiyun+ typedef void (*RA)(const char *, int, void *, void(*)(const char *, int, void *)); 265*4882a593Smuzhiyun+ RA fn; 266*4882a593Smuzhiyun+ fn = (RA)GetProcAddress(GetModuleHandle(NULL), "ci_command_register_action"); 267*4882a593Smuzhiyun+ if (fn) 268*4882a593Smuzhiyun+ (*fn)(name, type, data, command_action); 269*4882a593Smuzhiyun+ } 270*4882a593Smuzhiyun+#endif 271*4882a593Smuzhiyundiff --git a/modules/shared_cache.c b/modules/shared_cache.c 272*4882a593Smuzhiyunindex 103b760..a79d51a 100644 273*4882a593Smuzhiyun--- a/modules/shared_cache.c 274*4882a593Smuzhiyun+++ b/modules/shared_cache.c 275*4882a593Smuzhiyun@@ -345,3 +345,15 @@ void ci_shared_cache_destroy(struct ci_cache *cache) 276*4882a593Smuzhiyun ci_shared_mem_detach(&data->id); 277*4882a593Smuzhiyun } 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun+#ifdef __CYGWIN__ 280*4882a593Smuzhiyun+#include <w32api/windows.h> 281*4882a593Smuzhiyun+void ci_command_register_action(const char *name, int type, void *data, 282*4882a593Smuzhiyun+ void (*command_action) (const char *name, int type, void *data)) 283*4882a593Smuzhiyun+ { 284*4882a593Smuzhiyun+ typedef void (*RA)(const char *, int, void *, void(*)(const char *, int, void *)); 285*4882a593Smuzhiyun+ RA fn; 286*4882a593Smuzhiyun+ fn = (RA)GetProcAddress(GetModuleHandle(NULL), "ci_command_register_action"); 287*4882a593Smuzhiyun+ if (fn) 288*4882a593Smuzhiyun+ (*fn)(name, type, data, command_action); 289*4882a593Smuzhiyun+ } 290*4882a593Smuzhiyun+#endif 291*4882a593Smuzhiyundiff --git a/modules/sys_logger.c b/modules/sys_logger.c 292*4882a593Smuzhiyunindex 1c47753..1764b0d 100644 293*4882a593Smuzhiyun--- a/modules/sys_logger.c 294*4882a593Smuzhiyun+++ b/modules/sys_logger.c 295*4882a593Smuzhiyun@@ -60,7 +60,20 @@ int cfg_syslog_access(const char *directive, const char **argv, void *setdata); 296*4882a593Smuzhiyun functions declared in log.c. This file is not included in c-icap library 297*4882a593Smuzhiyun but defined in primary c-icap binary. 298*4882a593Smuzhiyun */ 299*4882a593Smuzhiyun+#ifdef __CYGWIN__ 300*4882a593Smuzhiyun+#include <w32api/windows.h> 301*4882a593Smuzhiyun+char *logformat_fmt(const char *name) 302*4882a593Smuzhiyun+{ 303*4882a593Smuzhiyun+ typedef char* (*LF_FMT)(const char *); 304*4882a593Smuzhiyun+ LF_FMT fn; 305*4882a593Smuzhiyun+ fn = (LF_FMT)GetProcAddress(GetModuleHandle(NULL), "logformat_fmt"); 306*4882a593Smuzhiyun+ if (fn) 307*4882a593Smuzhiyun+ return (*fn)(name); 308*4882a593Smuzhiyun+ return NULL; 309*4882a593Smuzhiyun+} 310*4882a593Smuzhiyun+#else 311*4882a593Smuzhiyun extern char *logformat_fmt(const char *name); 312*4882a593Smuzhiyun+#endif 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun /*Configuration Table .....*/ 315*4882a593Smuzhiyun static struct ci_conf_entry conf_variables[] = { 316*4882a593Smuzhiyundiff --git a/services/echo/Makefile.am b/services/echo/Makefile.am 317*4882a593Smuzhiyunindex 402c8f9..7d701b1 100644 318*4882a593Smuzhiyun--- a/services/echo/Makefile.am 319*4882a593Smuzhiyun+++ b/services/echo/Makefile.am 320*4882a593Smuzhiyun@@ -3,9 +3,15 @@ pkglib_LTLIBRARIES=srv_echo.la 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun AM_CPPFLAGS=-I$(top_srcdir)/ -I$(top_srcdir)/include/ -I$(top_builddir)/include/ 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun-srv_echo_la_LIBADD = @MODULES_LIBADD@ 325*4882a593Smuzhiyun+if ISCYGWIN 326*4882a593Smuzhiyun+MODS_LIB_ADD=$(top_builddir)/libicapapi.la 327*4882a593Smuzhiyun+else 328*4882a593Smuzhiyun+MODS_LIB_ADD= 329*4882a593Smuzhiyun+endif 330*4882a593Smuzhiyun+ 331*4882a593Smuzhiyun+srv_echo_la_LIBADD = $(MODS_LIB_ADD) 332*4882a593Smuzhiyun srv_echo_la_CFLAGS= @MODULES_CFLAGS@ @OPENSSL_ADD_FLAG@ 333*4882a593Smuzhiyun-srv_echo_la_LDFLAGS= -module -avoid-version 334*4882a593Smuzhiyun+srv_echo_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ 335*4882a593Smuzhiyun srv_echo_la_SOURCES = srv_echo.c 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun 338*4882a593Smuzhiyundiff --git a/services/ex-206/Makefile.am b/services/ex-206/Makefile.am 339*4882a593Smuzhiyunindex 44bbf21..ff73399 100644 340*4882a593Smuzhiyun--- a/services/ex-206/Makefile.am 341*4882a593Smuzhiyun+++ b/services/ex-206/Makefile.am 342*4882a593Smuzhiyun@@ -3,8 +3,14 @@ pkglib_LTLIBRARIES=srv_ex206.la 343*4882a593Smuzhiyun 344*4882a593Smuzhiyun AM_CPPFLAGS=-I$(top_srcdir)/ -I$(top_srcdir)/include/ -I$(top_builddir)/include/ 345*4882a593Smuzhiyun 346*4882a593Smuzhiyun-srv_ex206_la_LIBADD = @MODULES_LIBADD@ 347*4882a593Smuzhiyun+if ISCYGWIN 348*4882a593Smuzhiyun+MODS_LIB_ADD=$(top_builddir)/libicapapi.la 349*4882a593Smuzhiyun+else 350*4882a593Smuzhiyun+MODS_LIB_ADD= 351*4882a593Smuzhiyun+endif 352*4882a593Smuzhiyun+ 353*4882a593Smuzhiyun+srv_ex206_la_LIBADD = $(MODS_LIB_ADD) 354*4882a593Smuzhiyun srv_ex206_la_CFLAGS= @MODULES_CFLAGS@ @OPENSSL_ADD_FLAG@ 355*4882a593Smuzhiyun-srv_ex206_la_LDFLAGS= -module -avoid-version 356*4882a593Smuzhiyun+srv_ex206_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ 357*4882a593Smuzhiyun srv_ex206_la_SOURCES = srv_ex206.c 358*4882a593Smuzhiyun 359*4882a593Smuzhiyundiff --git a/utils/c-icap-mkbdb.c b/utils/c-icap-mkbdb.c 360*4882a593Smuzhiyunindex c29a46f..326ee1c 100644 361*4882a593Smuzhiyun--- a/utils/c-icap-mkbdb.c 362*4882a593Smuzhiyun+++ b/utils/c-icap-mkbdb.c 363*4882a593Smuzhiyun@@ -23,7 +23,7 @@ char *dbfile = NULL; 364*4882a593Smuzhiyun int DUMP_MODE = 0; 365*4882a593Smuzhiyun int VERSION_MODE = 0; 366*4882a593Smuzhiyun int USE_DBTREE = 0; 367*4882a593Smuzhiyun-long int PAGE_SIZE; 368*4882a593Smuzhiyun+long int DB_PAGE_SIZE; 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun ci_mem_allocator_t *allocator = NULL; 371*4882a593Smuzhiyun int cfg_set_type(const char *directive, const char **argv, void *setdata); 372*4882a593Smuzhiyun@@ -52,7 +52,7 @@ static struct ci_options_entry options[] = { 373*4882a593Smuzhiyun "The type of values" 374*4882a593Smuzhiyun }, 375*4882a593Smuzhiyun { 376*4882a593Smuzhiyun- "-p", "page_size", &PAGE_SIZE, ci_cfg_size_long, 377*4882a593Smuzhiyun+ "-p", "page_size", &DB_PAGE_SIZE, ci_cfg_size_long, 378*4882a593Smuzhiyun "The page size to use for the database" 379*4882a593Smuzhiyun }, 380*4882a593Smuzhiyun { 381*4882a593Smuzhiyun@@ -107,8 +107,8 @@ int open_db(char *path) 382*4882a593Smuzhiyun return 0; 383*4882a593Smuzhiyun } 384*4882a593Smuzhiyun 385*4882a593Smuzhiyun- if (PAGE_SIZE > 512 && PAGE_SIZE <= 64*1024) 386*4882a593Smuzhiyun- db->set_pagesize(db, (uint32_t)PAGE_SIZE); 387*4882a593Smuzhiyun+ if (DB_PAGE_SIZE > 512 && DB_PAGE_SIZE <= 64*1024) 388*4882a593Smuzhiyun+ db->set_pagesize(db, (uint32_t)DB_PAGE_SIZE); 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun if ((ret = db->open(db, NULL, path, NULL, 391*4882a593Smuzhiyun (USE_DBTREE ? DB_BTREE : DB_HASH), 392