Supporting PCRE 10.xx with (argh!) C89

2017-01-31 Thread NormW

G/A
Rain, so went in search of something to do.
The attached patch is proof(?) C89 can still work with the big stuff at 
least; compiles all the needed bits of PCRE 10.22 and only finds one 
(cast) error which I think other compilers will whinge/warn about also.


AFAIK PCRE is no longer a supplied source and the patch removes build 
bits that make that assumption, and support for PCRE versions prior to 
8.x...


Mostly a day waster exercise and FYI.

Norm
Index: NWGNUmakefile
===
--- NWGNUmakefile	(revision 1781186)
+++ NWGNUmakefile	(working copy)
@@ -73,9 +73,27 @@
 # These flags will come after CFLAGS
 #
 XCFLAGS		+= \
-			-DHAVE_CONFIG_H \
 			$(EOLIST)
 
+ifdef WITH_PCRE2
+# PCRE 10.xx
+	PCRELIB = $(OBJDIR)/pcre2-8.lib
+
+XCFLAGS	+= \
+	-DHAVE_CONFIG_H \
+	-DHAVE_PCRE2 \
+	-DPCRE2_CODE_UNIT_WIDTH=8 \
+	$(EOLIST)
+else
+# PCRE 8.xx
+	PCRELIB = $(OBJDIR)/pcre.lib
+
+XCFLAGS	+= \
+	-DHAVE_CONFIG_H \
+	$(EOLIST)
+
+endif
+
 #
 # These defines will come after DEFINES
 #
@@ -355,10 +373,32 @@
 # These are the OBJ files needed to create the LIB target above.
 # Paths must all use the '/' character
 #
-ifeq "$(wildcard $(PCRE)/pcre.c)" "$(PCRE)/pcre.c"
+ifdef WITH_PCRE2
 
 FILES_lib_objs = \
-	$(OBJDIR)/pcre.o \
+	$(OBJDIR)/chartables.o \
+	$(OBJDIR)/pcre2_auto_possess.o \
+	$(OBJDIR)/pcre2_compile.o \
+	$(OBJDIR)/pcre2_config.o \
+	$(OBJDIR)/pcre2_context.o \
+	$(OBJDIR)/pcre2_dfa_match.o \
+	$(OBJDIR)/pcre2_error.o \
+	$(OBJDIR)/pcre2_find_bracket.o \
+	$(OBJDIR)/pcre2_jit_compile.o \
+	$(OBJDIR)/pcre2_maketables.o \
+	$(OBJDIR)/pcre2_match.o \
+	$(OBJDIR)/pcre2_match_data.o \
+	$(OBJDIR)/pcre2_newline.o \
+	$(OBJDIR)/pcre2_ord2utf.o \
+	$(OBJDIR)/pcre2_pattern_info.o \
+	$(OBJDIR)/pcre2_string_utils.o \
+	$(OBJDIR)/pcre2_study.o \
+	$(OBJDIR)/pcre2_substitute.o \
+	$(OBJDIR)/pcre2_substring.o \
+	$(OBJDIR)/pcre2_tables.o \
+	$(OBJDIR)/pcre2_ucd.o \
+	$(OBJDIR)/pcre2_valid_utf.o \
+	$(OBJDIR)/pcre2_xclass.o \
 	$(EOLIST)
 
 else
@@ -373,11 +413,6 @@
 	$(OBJDIR)/pcre_tables.o \
 	$(OBJDIR)/pcre_version.o \
 	$(EOLIST)
-ifeq "$(wildcard $(PCRE)/pcre_try_flipped.c)" "$(PCRE)/pcre_try_flipped.c"
-FILES_lib_objs += \
-	$(OBJDIR)/pcre_try_flipped.o \
-	$(EOLIST)
-endif 
 
 endif
 
@@ -460,10 +495,8 @@
 
 prebuild :: FORCE
 	$(MAKE) -C $(SERVER) -f NWGNUmakefile
-	$(MAKE) -C $(PCRE) -f NWGNUmakefile
 	$(call MKDIR,$(PREBUILD_INST))
 	$(call COPY,$(SERVER)/$(OBJDIR)/*.nlm, $(PREBUILD_INST)/)
-	$(call COPY,$(PCRE)/$(OBJDIR)/*.nlm,   $(PREBUILD_INST)/)
 
 #
 # Any specialized rules here
@@ -471,7 +504,7 @@
 
 vpath %.c server:modules/arch/netware:modules/http:modules/aaa:modules/mappers
 vpath %.c modules/generators:modules/metadata:modules/filters:modules/loggers
-vpath %.c modules/core:os/netware:server/mpm/netware:$(PCRE)
+vpath %.c modules/core:os/netware:server/mpm/netware:$(PCRESRC)
 
 $(OBJDIR)/chartables.o: os/netware/chartables.c
 
Index: build/NWGNUenvironment.inc
===
--- build/NWGNUenvironment.inc	(revision 1781186)
+++ build/NWGNUenvironment.inc	(working copy)
@@ -56,11 +56,17 @@
 endif
 
 ifndef PCRESRC
-PCRESRC = $(AP_WORK)/srclib/pcre
+$(error PCRESRC does not point to a valid PCRE[2] source tree) 
 endif
-ifneq "$(wildcard $(PCRESRC)/pcre-config.in)" "$(PCRESRC)/pcre-config.in"
+ifdef WITH_PCRE2
+ifneq "$(wildcard $(PCRESRC)/pcre2.h.in)" "$(PCRESRC)/pcre2.h.in"
+$(error PCRESRC does not point to a valid PCRE2 source tree) 
+endif
+else
+ifneq "$(wildcard $(PCRESRC)/pcre.h.in)" "$(PCRESRC)/pcre.h.in"
 $(error PCRESRC does not point to a valid PCRE source tree) 
 endif
+endif
 
 # This is a placeholder
 # ifndef ZLIBSDK
@@ -377,7 +383,6 @@
 APULDAP		= $(APRUTIL)/ldap
 XML		= $(APRUTIL)/xml
 APRTEST		= $(APR)/test
-PCRE		= $(PCRESRC)
 
 PREBUILD_INST	= $(SRC)/nwprebuild
 
@@ -389,7 +394,6 @@
 APRUTLIB	= $(APRUTIL)/$(OBJDIR)/aprutil.lib
 APULDAPLIB	= $(APULDAP)/$(OBJDIR)/apuldap.lib
 STMODLIB	= $(STDMOD)/$(OBJDIR)/stdmod.lib
-PCRELIB		= $(SRC)/$(OBJDIR)/pcre.lib
 NWOSLIB		= $(NWOS)/$(OBJDIR)/netware.lib
 SERVLIB		= $(SERVER)/$(OBJDIR)/server.lib
 HTTPDLIB	= $(HTTPD)/$(OBJDIR)/httpd.lib
Index: build/NWGNUmakefile
===
--- build/NWGNUmakefile	(revision 1781186)
+++ build/NWGNUmakefile	(working copy)
@@ -19,9 +19,19 @@
 FILES_prebuild_headers = \
 	$(SRC)/include/ap_config_layout.h \
 	$(NWOS)/test_char.h \
-	$(PCRE)/config.h \
-	$(PCRE)/pcre.h \
 	$(EOLIST) 
+
+ifdef WITH_PCRE2
+FILES_prebuild_headers += \
+	$(PCRESRC)/config.h \
+	$(PCRESRC)/pcre2.h \
+	$(EOLIST)
+else
+FILES_prebuild_headers += \
+	$(PCRESRC)/config.h \
+	$(PCRESRC)/pcre.h \
+	$(EOLIST)
+endif
 
 nlms :: libs $(NWOS)/httpd.imp $(DAV)/main/dav.imp $(STDMOD)/cache/mod_cache.imp $(STDMOD)/proxy/mod_proxy.imp
 
@@ -67,23 +77,24 @@
 	@echo Creating $@
 	$(call COPY,$<,$@)
 
-$(PCRE)/%.h: 

httpd-trunk/modules/mod_remoteip.c & C89?...

2017-01-23 Thread NormW

G/M,
In function:

static const char *remoteip_enable_proxy_protocol(cmd_parms *cmd, void *config,


my 'compiler' reports line 389 mod_remoteip.c:

remoteip_addr_info **rem_list[len_list];

>   ^
"not a valid 'const' expression" even tho 'len_list is defined in the 
previous line. _Playing_ a bit I got the following change to build:



+#define DEF_LEN_LIST 2
+int list_len = DEF_LEN_LIST;
+remoteip_addr_info **rem_list[DEF_LEN_LIST];


presumably because the preprocessor gets first look at the code.
On the other hand, it might be a compiler bug.

Lastly, having got the compiler happy, the Linker says I need some 
Winsock vars, so added the following to the NWGNUremoteip file.



Index: modules/metadata/NWGNUremoteip
===
--- modules/metadata/NWGNUremoteip  (revision 1779997)
+++ modules/metadata/NWGNUremoteip  (working copy)
@@ -182,6 +182,12 @@
libc \
$(EOLIST)

+# Include the Winsock libraries if Winsock is being used
+ifndef USE_STDSOCKETS
+FILES_nlm_modules += ws2_32 \
+   $(EOLIST)
+endif
+
 #
 # If the nlm has a msg file, put it's path here
 #
@@ -206,6 +212,15 @@
@libc.imp \
$(EOLIST)

+# Include the Winsock imports if Winsock is being used
+ifndef USE_STDSOCKETS
+FILES_nlm_Ximports +=  \
+   @ws2nlm.imp \
+   WSAStartupRTags \
+   WSACleanupRTag \
+   $(EOLIST)
+endif
+
 #
 # Any symbols exported to here
 #



If anyone falls for this I can make a patch of the changes if needed.

Other than the above, all of trunk that NetWare presently builds 
compiles/links without issue.

Norm




Re: httpd-2.2.x and C89... ;-(

2017-01-07 Thread NormW

G/A and apologies for the delay...I'm not on the net 24/7...
Yes, a 'clean' and 2.2.x build goes to completion without issue.
Norm

On 8/01/2017 12:29 AM, Yann Ylavic wrote:

On Sat, Jan 7, 2017 at 1:35 AM, William A Rowe Jr <wr...@rowe-clan.net> wrote:

Great catch, thanks Norm. That too is part of the r1753592 backport
proposal, hoping someone is willing to look at these proposals.


Now backported to 2.2.x (r175), along with other accepted "SNI" patches.
Norm, does it work for you?

On Sat, Jan 7, 2017 at 12:20 PM, Jan Ehrhardt <php...@ehrhardt.nl> wrote:

NormW in gmane.comp.apache.devel (Sat, 7 Jan 2017 11:31:32 +1100):

D:\Projects\svn\httpd-2.2.x>svn diff
Index: modules/proxy/mod_proxy.c
===
--- modules/proxy/mod_proxy.c   (revision 1777591)
+++ modules/proxy/mod_proxy.c   (working copy)
@@ -1088,9 +1088,9 @@
   * backend itself but by the proxy e.g. a bad gateway) in order to 
give
   * ap_proxy_post_request a chance to act correctly on the status code.
   */
+int post_status = proxy_run_post_request(worker, balancer, r, conf);
  saved_status = r->status;
  r->status = access_status;
-int post_status = proxy_run_post_request(worker, balancer, r, conf);
  /*
   * Only restore r->status if it has not been changed by
   * ap_proxy_post_request as we assume that this change was 
intentional.


r (or rather r->status) is changed in between the added line and the
deleted line, so it seems better to do it like this:


Right, though r175 combined another change which avoided the
warning altogether.

Thanks anyway Norm/Jan for testing/review.

Regards,
Yann.





Re: Tagging update for 2.2.32

2017-01-06 Thread NormW

G/A
I'm building the 2.2.x svn source tree, not a tag...
Norm

On 7/01/2017 1:09 PM, NormW wrote:

G/A
As of 2 mins ago...


Building D:/Projects/svn/httpd-2.2.x/modules/proxy
Calling NWGNUproxy
CC   mod_proxy.c
### mwccnlm Compiler:
#File: mod_proxy.c
# 
#1093:  int post_status = proxy_run_post_request(worker,
balancer, r, conf);
#   Error:  ^^^
#   expression syntax error
#   Too many errors printed, aborting program


Norm
On 7/01/2017 12:36 PM, Victor J. Orlikowski wrote:

On Fri, Jan 06, 2017, at 08:13 PM, Victor J. Orlikowski wrote:

Sigh. Missed the SHOWSTOPPER from the C89 thread.



Wait a sec; re-reviewing that patch...Norm's issue should be
addressed with the backport of r1753592.

Norm - could you re-try that compile with Yann's backport?

Best,
Victor







Re: Tagging update for 2.2.32

2017-01-06 Thread NormW

G/A
As of 2 mins ago...


Building D:/Projects/svn/httpd-2.2.x/modules/proxy
Calling NWGNUproxy
CC   mod_proxy.c
### mwccnlm Compiler:
#File: mod_proxy.c
# 
#1093:  int post_status = proxy_run_post_request(worker, balancer, 
r, conf);
#   Error:  ^^^
#   expression syntax error
#   Too many errors printed, aborting program


Norm
On 7/01/2017 12:36 PM, Victor J. Orlikowski wrote:

On Fri, Jan 06, 2017, at 08:13 PM, Victor J. Orlikowski wrote:

Sigh. Missed the SHOWSTOPPER from the C89 thread.



Wait a sec; re-reviewing that patch...Norm's issue should be
addressed with the backport of r1753592.

Norm - could you re-try that compile with Yann's backport?

Best,
Victor





httpd-2.2.x and C89... ;-(

2017-01-06 Thread NormW

G/M
Did a test build of the 2.2.x tree and all builds nicely with exception 
of the following; if release is 'in progress' I leave to others to 
decide what to do about it.



D:\Projects\svn\httpd-2.2.x>svn diff
Index: modules/proxy/mod_proxy.c
===
--- modules/proxy/mod_proxy.c   (revision 1777591)
+++ modules/proxy/mod_proxy.c   (working copy)
@@ -1088,9 +1088,9 @@
  * backend itself but by the proxy e.g. a bad gateway) in order to give
  * ap_proxy_post_request a chance to act correctly on the status code.
  */
+int post_status = proxy_run_post_request(worker, balancer, r, conf);
 saved_status = r->status;
 r->status = access_status;
-int post_status = proxy_run_post_request(worker, balancer, r, conf);
 /*
  * Only restore r->status if it has not been changed by
  * ap_proxy_post_request as we assume that this change was intentional.


Norm


Re: svn commit: r1774609 - /httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp

2016-12-17 Thread NormW

G/A...
On 17/12/2016 5:38 AM, William A Rowe Jr wrote:

Erm... did you miss the same edit to mod_socache_memcache.mak?
(Just catching up on the flurry of traffic, so this is speculation.)

Further speculation, are we solid for NetWare now? Any word, Norm?

Have clean build and 'install' on 2.4.x tree using:
APR/APR-UTIL 1.5 trees
PCRE 8.39
NGHTTP2 1.17.0
SERF 1.3.9
LUA 5.2.4
EXPAT 2.2.0

HTH
Norm



[wrowe@hub cache]$ grep "/generators" *
mod_cache_socache.dsp:# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "WIN32" /D "NDEBUG" /D "_WINDOWS"
/Fd"Release\mod_cache_socache_src" /FD /c
mod_cache_socache.dsp:# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "WIN32" /D "_DEBUG" /D "_WINDOWS"
/Fd"Debug\mod_cache_socache_src" /FD /c
mod_cache_socache.mak:CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "WIN32" /D "NDEBUG" /D "_WINDOWS"
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_cache_socache_src" /FD /c
mod_cache_socache.mak:CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "WIN32" /D "_DEBUG" /D "_WINDOWS"
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_cache_socache_src" /FD /EHsc /c
mod_socache_dbm.dsp:# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS"
/Fd"Release\mod_socache_dbm_src" /FD /c
mod_socache_dbm.dsp:# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS"
/Fd"Debug\mod_socache_dbm_src" /FD /c
mod_socache_dbm.mak:CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS"
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_dbm_src" /FD /c
mod_socache_dbm.mak:CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS"
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_dbm_src" /FD /EHsc /c
mod_socache_memcache.dsp:# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS"
/Fd"Release\mod_socache_memcache_src" /FD /c
mod_socache_memcache.dsp:# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS"
/Fd"Debug\mod_socache_memcache_src" /FD /c
mod_socache_shmcb.dsp:# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS"
/Fd"Release\mod_socache_shmcb_src" /FD /c
mod_socache_shmcb.dsp:# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS"
/Fd"Debug\mod_socache_shmcb_src" /FD /c
mod_socache_shmcb.mak:CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS"
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_shmcb_src" /FD /c
mod_socache_shmcb.mak:CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I
"../../srclib/apr-util/include" /I "../../srclib/apr/include" /I
"../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS"
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_shmcb_src" /FD /EHsc /c
NWGNUcach_socache: $(STDMOD)/generators \
NWGNUsocachdbm: $(STDMOD)/generators \
NWGNUsocachmem: $(STDMOD)/generators \
NWGNUsocachshmcb: $(STDMOD)/generators \


On Fri, Dec 16, 2016 at 9:00 AM,  wrote:


Author: rjung
Date: Fri Dec 16 15:00:06 2016
New Revision: 1774609

URL: http://svn.apache.org/viewvc?rev=1774609=rev
Log:
Add ../generators to include path for Windows
build of mod_socache_memcache. It now needs
mod_status.h.

Untested but exactly analogous to what works for
mod_socache_shmcb and others.

Modified:
 httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp

Modified: httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/cache
/mod_socache_memcache.dsp?rev=1774609=1774608=1774609=diff

==
--- httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp (original)
+++ httpd/httpd/trunk/modules/cache/mod_socache_memcache.dsp Fri Dec 16
15:00:06 2016
@@ 

Re: Mod_brotli, C89 & NetWare - finale

2016-11-28 Thread NormW

G?M
There is a downside to fibbing! :-)
CC   D:\Projects\srcs\brotli-master/enc/static_dict.c
### mwccnlm Compiler:
#  In: D:\Projects\srcs\brotli-master\include\brotli\types.h
#From: D:\Projects\srcs\brotli-master\enc\static_dict.c
# -
#  18: typedef __int8 int8_t;
#   Error:^^
#   ';' expected
But having got a new bone I'll dig further.
Norm

On 29/11/2016 3:53 AM, Gregg Smith wrote:

Hi Norm,

Actually, log2 is not needed. It's cmake that forces it on us.
Look at fast_log.h line 131

#if (defined(_MSC_VER) && _MSC_VER <= 1700) || \
 (defined(__ANDROID_API__) && __ANDROID_API__ < 18)
   /* Visual Studio 2012 and Android API levels < 18 do not have the log2()
* function defined, so we use log() and a multiplication instead. */
   return log((double)v) * LOG_2_INV;
#else
   return log2((double)v);
#endif

You may define _MSC_VER=1 at the command line when compiling and it
should work for you.  In CMakeList.txt I just remove the check for
log2(), lines 96-113, before using.

Cheers,
G

On 11/27/2016 3:38 AM, NormW wrote:

G/E,
After some head scratching/bashing and research:

Brotli.lib has several places that use log2(), which was not defined
in C89 (AFAIK), although the function could be kludged easily enough
as it uses C89 functions in its own routine.

Although NetWare was derived using a C89 compiler, its math.h shows
signs of its early development, in that a number of MATHs macro's
resolve not to values but to LibC functions, which means they can't be
used in 'const' assignments... hence const  = INFINITY fails to
compile. (It was on the ToDo list it seems but the ship sank before it
made the top of the list.) Tweaking math.h while possible, doesn't
make for much sense, but mod_brotli does at least compile without
issue; well almost.

The only C89 issue (AFAICT) is the following patch, which should allow
any other C89 (with a more up to date OS ;-( ) to compile it, which
NetWare's CW can do for the likes of Apache2, Lua, Zlib, NGHTTP2, OSSL
and a bunch of others.


Index: modules/filters/mod_brotli.c
===
--- modules/filters/mod_brotli.c(revision 1771539)
+++ modules/filters/mod_brotli.c(working copy)
@@ -240,7 +240,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;

-b = apr_bucket_transient_create(output, output_len,
+b = apr_bucket_transient_create((const char *)output,
output_len,
ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);

@@ -289,7 +289,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;

-b = apr_bucket_heap_create(output, output_len, NULL,
+b = apr_bucket_heap_create((const char *)output, output_len,
NULL,
ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
 }

Norm







Re: Mod_brotli, C89 & NetWare - finale

2016-11-28 Thread NormW

G/M (mid-morning here)
Thanks Evgeny!
HIH
Norm

On 29/11/2016 5:42 AM, Evgeny Kotkov wrote:

NormW <no...@gknw.net> writes:


The only C89 issue (AFAICT) is the following patch, which should allow any
other C89 (with a more up to date OS ;-( ) to compile it, which NetWare's CW
can do for the likes of Apache2, Lua, Zlib, NGHTTP2, OSSL and a bunch of
others.


Thanks, I committed the patch in https://svn.apache.org/r1771791


Regards,
Evgeny Kotkov





Re: Mod_brotli, C89 & NetWare - finale

2016-11-28 Thread NormW

;-( So much time spent on making a 'workable' log2...
Thanks Gregg for the heads up. When I tried a 'fudge' to get past the 
previously mentioned compiler errors, the linker reported a number of 
files that required log2, but never looked further into it, assuming it 
was a requirement. Being a newbie at this stuff the fruit salad in the 
code below in old days (which I mostly recall) would have had: :-)

#ifdef HAVE_LOG2
 return log2((double)v);
#else
 return log((double)v) * LOG_2_INV;
#endif
Can this be done as a macro in a header somewhere and just use LOG2(v) 
in the code?
Thanks again for the info and the much simpler replacement - will have 
to fire up the CW again! But I doubt there will be an 'encore'. :-)

Norm
On 29/11/2016 3:53 AM, Gregg Smith wrote:

Hi Norm,

Actually, log2 is not needed. It's cmake that forces it on us.
Look at fast_log.h line 131

#if (defined(_MSC_VER) && _MSC_VER <= 1700) || \
 (defined(__ANDROID_API__) && __ANDROID_API__ < 18)
   /* Visual Studio 2012 and Android API levels < 18 do not have the log2()
* function defined, so we use log() and a multiplication instead. */
   return log((double)v) * LOG_2_INV;
#else
   return log2((double)v);
#endif

You may define _MSC_VER=1 at the command line when compiling and it
should work for you.  In CMakeList.txt I just remove the check for
log2(), lines 96-113, before using.

Cheers,
G

On 11/27/2016 3:38 AM, NormW wrote:

G/E,
After some head scratching/bashing and research:

Brotli.lib has several places that use log2(), which was not defined
in C89 (AFAIK), although the function could be kludged easily enough
as it uses C89 functions in its own routine.

Although NetWare was derived using a C89 compiler, its math.h shows
signs of its early development, in that a number of MATHs macro's
resolve not to values but to LibC functions, which means they can't be
used in 'const' assignments... hence const  = INFINITY fails to
compile. (It was on the ToDo list it seems but the ship sank before it
made the top of the list.) Tweaking math.h while possible, doesn't
make for much sense, but mod_brotli does at least compile without
issue; well almost.

The only C89 issue (AFAICT) is the following patch, which should allow
any other C89 (with a more up to date OS ;-( ) to compile it, which
NetWare's CW can do for the likes of Apache2, Lua, Zlib, NGHTTP2, OSSL
and a bunch of others.


Index: modules/filters/mod_brotli.c
===
--- modules/filters/mod_brotli.c(revision 1771539)
+++ modules/filters/mod_brotli.c(working copy)
@@ -240,7 +240,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;

-b = apr_bucket_transient_create(output, output_len,
+b = apr_bucket_transient_create((const char *)output,
output_len,
ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);

@@ -289,7 +289,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;

-b = apr_bucket_heap_create(output, output_len, NULL,
+b = apr_bucket_heap_create((const char *)output, output_len,
NULL,
ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
 }

Norm







Mod_brotli, C89 & NetWare - finale

2016-11-27 Thread NormW

G/E,
After some head scratching/bashing and research:

Brotli.lib has several places that use log2(), which was not defined in 
C89 (AFAIK), although the function could be kludged easily enough as it 
uses C89 functions in its own routine.


Although NetWare was derived using a C89 compiler, its math.h shows 
signs of its early development, in that a number of MATHs macro's 
resolve not to values but to LibC functions, which means they can't be 
used in 'const' assignments... hence const  = INFINITY fails to 
compile. (It was on the ToDo list it seems but the ship sank before it 
made the top of the list.) Tweaking math.h while possible, doesn't make 
for much sense, but mod_brotli does at least compile without issue; well 
almost.


The only C89 issue (AFAICT) is the following patch, which should allow 
any other C89 (with a more up to date OS ;-( ) to compile it, which 
NetWare's CW can do for the likes of Apache2, Lua, Zlib, NGHTTP2, OSSL 
and a bunch of others.



Index: modules/filters/mod_brotli.c
===
--- modules/filters/mod_brotli.c(revision 1771539)
+++ modules/filters/mod_brotli.c(working copy)
@@ -240,7 +240,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;

-b = apr_bucket_transient_create(output, output_len,
+b = apr_bucket_transient_create((const char *)output, output_len,
 ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);

@@ -289,7 +289,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;

-b = apr_bucket_heap_create(output, output_len, NULL,
+b = apr_bucket_heap_create((const char *)output, output_len, NULL,
ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
 }

Norm

Index: modules/filters/mod_brotli.c
===
--- modules/filters/mod_brotli.c	(revision 1771539)
+++ modules/filters/mod_brotli.c	(working copy)
@@ -240,7 +240,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;
 
-b = apr_bucket_transient_create(output, output_len,
+b = apr_bucket_transient_create((const char *)output, output_len,
 ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
 
@@ -289,7 +289,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;
 
-b = apr_bucket_heap_create(output, output_len, NULL,
+b = apr_bucket_heap_create((const char *)output, output_len, NULL,
ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
 }


Re: apr-util 1.6 Netware got apr_redis.c and CW liked 99.9%

2016-11-24 Thread NormW

G/M,
Thx x 2!
Norm
On 22/11/2016 11:45 PM, Jim Jagielski wrote:

Thx again! Added in both APU-1.6 and APR-TRUNK

On Nov 22, 2016, at 4:53 AM, NormW <no...@gknw.net> wrote:

G/E (Hope this doesn't ruin it)


Index: redis/apr_redis.c
===
--- redis/apr_redis.c   (revision 1770630)
+++ redis/apr_redis.c   (working copy)
@@ -859,9 +859,9 @@
{
 char *length;
 char *last;
+apr_status_t rv;
 apr_size_t len = 0;
 *new_length = 0;
-apr_status_t rv;

 length = apr_strtok(conn->buffer + 1, " ", );
 if (length) {


No idea if this is a C89 quirk or a CW quirk... if the latter please ignore!
Norm







apr-util 1.6 Netware got apr_redis.c and CW liked 99.9%

2016-11-22 Thread NormW

G/E (Hope this doesn't ruin it)


Index: redis/apr_redis.c
===
--- redis/apr_redis.c   (revision 1770630)
+++ redis/apr_redis.c   (working copy)
@@ -859,9 +859,9 @@
 {
 char *length;
 char *last;
+apr_status_t rv;
 apr_size_t len = 0;
 *new_length = 0;
-apr_status_t rv;

 length = apr_strtok(conn->buffer + 1, " ", );
 if (length) {


No idea if this is a C89 quirk or a CW quirk... if the latter please ignore!
Norm
Index: redis/apr_redis.c
===
--- redis/apr_redis.c	(revision 1770630)
+++ redis/apr_redis.c	(working copy)
@@ -859,9 +859,9 @@
 {
 char *length;
 char *last;
+apr_status_t rv;
 apr_size_t len = 0;
 *new_length = 0;
-apr_status_t rv;
 
 length = apr_strtok(conn->buffer + 1, " ", );
 if (length) {


NWGNUsocachmem needs to find mod_status.h

2016-11-22 Thread NormW

G/E,
See attached patch...


Index: modules/cache/NWGNUsocachmem
===
--- modules/cache/NWGNUsocachmem(revision 1770808)
+++ modules/cache/NWGNUsocachmem(working copy)
@@ -26,6 +26,7 @@
$(APR)/include \
$(APRUTIL)/include \
$(SRC)/include \
+   $(STDMOD)/generators \
$(SERVER)/mpm/netware \
$(NWOS) \
$(EOLIST)


Norm
Index: modules/cache/NWGNUsocachmem
===
--- modules/cache/NWGNUsocachmem	(revision 1770808)
+++ modules/cache/NWGNUsocachmem	(working copy)
@@ -26,6 +26,7 @@
 			$(APR)/include \
 			$(APRUTIL)/include \
 			$(SRC)/include \
+			$(STDMOD)/generators \
 			$(SERVER)/mpm/netware \
 			$(NWOS) \
 			$(EOLIST)


Re: ap-2.4.x and .\proxy - NetWare build

2016-10-27 Thread NormW

G/M,
Thx! 2.4 builds nicely again.
Norm

On 28/10/2016 9:56 AM, Yann Ylavic wrote:

On Wed, Oct 26, 2016 at 2:31 AM, NormW <no...@gknw.net> wrote:

G/M,
Revision r1728804 added NWGNUhcheck to httpd-trunk and added an entry into
NWGNUmakefile in the same directory - r1744951 (amongst other things) added
the entry into the 2.4 .\proxy\NWGNUmakefile but did not copy the
NWGNUhcheck file itself (added to trunk as noted above) to 2.4.


Merged to 2.4.x in r1766906.

Regards,
Yann.





ap-2.4.x and .\proxy - NetWare build

2016-10-25 Thread NormW

G/M,
Revision r1728804 added NWGNUhcheck to httpd-trunk and added an entry 
into NWGNUmakefile in the same directory - r1744951 (amongst other 
things) added the entry into the 2.4 .\proxy\NWGNUmakefile but did not 
copy the NWGNUhcheck file itself (added to trunk as noted above) to 2.4.


FYI If a dir is to be built, it MUST have a NWGNUmakefile. If there is 
only one item to built in the dir, the NWGNUmakefile can contain the 
build process for that item. If there are multiple items to build in the 
dir, the NWGNUmakefile contains a list of the NLM's to be built, where 
the build system prepends 'NWGNU' to the front of the NLM name to get 
the name of actual Makefile it needs to run to build the item.


E.g The NLM list in .\proxy\NWGNUmakefile includes proxy.nlm but the 
build system looks to find a NWGNUproxy file to build it; happily no onr 
I kmow designed this, and many requests to simplify it fell on deaf ears.


Norm


httpd-2.4.x proxy exports needed for NetWare

2016-10-24 Thread NormW

G/M,
The following diff (also herewith) is needed for extra mod_proxy exports 
for a clean build of 2.4 for NetWare:

Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy(revision 1766453)
+++ modules/proxy/NWGNUproxy(working copy)
@@ -256,6 +256,7 @@
@echo $(DL)# Exports of mod_proxy$(DL)> $@
@echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@
@echo $(DL) proxy_module,$(DL)>> $@
+   @echo $(DL) proxy_hcmethods,$(DL)>> $@
@echo $(DL) proxy_hook_canon_handler,$(DL)>> $@
@echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@
@echo $(DL) proxy_hook_get_post_request,$(DL)>> $@
@@ -277,6 +278,7 @@
@echo $(DL) ap_proxy_c2hex,$(DL)>> $@
@echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@
@echo $(DL) ap_proxy_canonenc,$(DL)>> $@
+   @echo $(DL) ap_proxy_check_connection,$(DL)>> $@
@echo $(DL) ap_proxy_checkproxyblock,$(DL)>> $@
@echo $(DL) ap_proxy_checkproxyblock2,$(DL)>> $@
@echo $(DL) ap_proxy_conn_is_https,$(DL)>> $@
@@ -312,6 +314,7 @@
@echo $(DL) ap_proxy_set_wstatus,$(DL)>> $@
@echo $(DL) ap_proxy_share_balancer,$(DL)>> $@
@echo $(DL) ap_proxy_share_worker,$(DL)>> $@
+   @echo $(DL) ap_proxy_show_hcmethod,$(DL)>> $@
@echo $(DL) ap_proxy_ssl_connection_cleanup,$(DL)>> $@
@echo $(DL) ap_proxy_ssl_disable,$(DL)>> $@
@echo $(DL) ap_proxy_ssl_enable,$(DL)>> $@


Norm
Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy	(revision 1766453)
+++ modules/proxy/NWGNUproxy	(working copy)
@@ -256,6 +256,7 @@
 	@echo $(DL)# Exports of mod_proxy$(DL)> $@
 	@echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@
 	@echo $(DL) proxy_module,$(DL)>> $@
+	@echo $(DL) proxy_hcmethods,$(DL)>> $@
 	@echo $(DL) proxy_hook_canon_handler,$(DL)>> $@
 	@echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@
 	@echo $(DL) proxy_hook_get_post_request,$(DL)>> $@
@@ -277,6 +278,7 @@
 	@echo $(DL) ap_proxy_c2hex,$(DL)>> $@
 	@echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@
 	@echo $(DL) ap_proxy_canonenc,$(DL)>> $@
+	@echo $(DL) ap_proxy_check_connection,$(DL)>> $@
 	@echo $(DL) ap_proxy_checkproxyblock,$(DL)>> $@
 	@echo $(DL) ap_proxy_checkproxyblock2,$(DL)>> $@
 	@echo $(DL) ap_proxy_conn_is_https,$(DL)>> $@
@@ -312,6 +314,7 @@
 	@echo $(DL) ap_proxy_set_wstatus,$(DL)>> $@
 	@echo $(DL) ap_proxy_share_balancer,$(DL)>> $@
 	@echo $(DL) ap_proxy_share_worker,$(DL)>> $@
+	@echo $(DL) ap_proxy_show_hcmethod,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_connection_cleanup,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_disable,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_enable,$(DL)>> $@


mod_brotli.c, NetWare AND C89?

2016-10-20 Thread NormW

G/E,
At least have 'solved' one the compiler complaints;
Calling NWGNUmod_brotli
GEN  obj_release/mod_brotli_cc.opt
CC   mod_brotli.c
### mwccnlm Compiler:
#File: mod_brotli.c
# -
# 244: 
ctx->bb->bucket_alloc);
#   Error: 
 ^

#   illegal implicit conversion from 'const unsigned char *' to
#   'const char *'


Index: modules/filters/mod_brotli.c
===
--- modules/filters/mod_brotli.c(revision 1765782)
+++ modules/filters/mod_brotli.c(working copy)
@@ -240,7 +240,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;

-b = apr_bucket_transient_create(output, output_len,
+b = apr_bucket_transient_create((const char *)output, output_len,
 ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);

@@ -289,7 +289,7 @@
 output = BrotliEncoderTakeOutput(ctx->state, _len);
 ctx->total_out += output_len;

-b = apr_bucket_heap_create(output, output_len, NULL,
+b = apr_bucket_heap_create((const char *)output, output_len, NULL,
ctx->bb->bucket_alloc);
 APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
 }


The var 'output' is created as 'const uint8_t *' while the apr functions 
are expecting 'const char *'. Applying the cast in two places is 
accepted and mod_brotli.c compiles without issue'.


The other 'problem' is a bit more devious (== not solved yet):
CC   D:\Projects\srcs\brotli-master/enc/backward_references.c
### mwccnlm Compiler:
#File: D:\Projects\srcs\brotli-master\enc\backward_references.c
# -
#  30: static const float kInfinity = INFINITY;
#   Error:^
#   illegal constant expression
The assignment LHS has no issue as, if I force line 32 to run, then 
backward_references.c compiles; the issue appears to be in the Novell 
headers itself. Still poking on that front.

Norm


Re: httpd-trunk - mod_proxy_http2 needs an export

2016-10-18 Thread NormW

G/M
Thanks for the thanks!
Norm
On 18/10/2016 11:06 PM, Stefan Eissing wrote:

Added in trunk and 2.4.x branch. Thanks!


Am 18.10.2016 um 14:02 schrieb NormW <no...@gknw.net>:

G\E
If anyone is looking after NetWare issues:

Index: modules/http2/NWGNUmod_http2
==
--- modules/http2/NWGNUmod_http2(revision 1765415)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -393,6 +393,7 @@
@echo $(DL) nghttp2_session_want_write,$(DL) >> $@
@echo $(DL) nghttp2_strerror,$(DL) >> $@
@echo $(DL) nghttp2_submit_goaway,$(DL) >> $@
+   @echo $(DL) nghttp2_submit_ping,$(DL) >> $@
@echo $(DL) nghttp2_submit_request,$(DL) >> $@
@echo $(DL) nghttp2_submit_rst_stream,$(DL) >> $@
@echo $(DL) nghttp2_submit_settings,$(DL) >> $@


norm






httpd-trunk - mod_proxy_http2 needs an export

2016-10-18 Thread NormW

G\E
If anyone is looking after NetWare issues:

Index: modules/http2/NWGNUmod_http2
==
--- modules/http2/NWGNUmod_http2(revision 1765415)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -393,6 +393,7 @@
@echo $(DL) nghttp2_session_want_write,$(DL) >> $@
@echo $(DL) nghttp2_strerror,$(DL) >> $@
@echo $(DL) nghttp2_submit_goaway,$(DL) >> $@
+   @echo $(DL) nghttp2_submit_ping,$(DL) >> $@
@echo $(DL) nghttp2_submit_request,$(DL) >> $@
@echo $(DL) nghttp2_submit_rst_stream,$(DL) >> $@
@echo $(DL) nghttp2_submit_settings,$(DL) >> $@


norm


Apache 2.4 tree build - two NetWare fixes

2016-10-15 Thread NormW

G/E,
Attached a patch to add two more symbols for mod_proxy export (needed by 
proxy_bancer) and a NWGNUproxyhcheck to create proxyhcheck.nlm, 
referenced in the NWGNUmakefile but not previously supplied.


Norm
Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy	(revision 1764878)
+++ modules/proxy/NWGNUproxy	(working copy)
@@ -256,6 +256,7 @@
 	@echo $(DL)# Exports of mod_proxy$(DL)> $@
 	@echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@
 	@echo $(DL) proxy_module,$(DL)>> $@
+	@echo $(DL) proxy_hcmethods,$(DL)>> $@
 	@echo $(DL) proxy_hook_canon_handler,$(DL)>> $@
 	@echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@
 	@echo $(DL) proxy_hook_get_post_request,$(DL)>> $@
@@ -312,6 +313,7 @@
 	@echo $(DL) ap_proxy_set_wstatus,$(DL)>> $@
 	@echo $(DL) ap_proxy_share_balancer,$(DL)>> $@
 	@echo $(DL) ap_proxy_share_worker,$(DL)>> $@
+	@echo $(DL) ap_proxy_show_hcmethod,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_connection_cleanup,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_disable,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_enable,$(DL)>> $@
#
# Make sure all needed macro's are defined
#

#
# Get the 'head' of the build environment if necessary.  This includes default
# targets and paths to tools
#

ifndef EnvironmentDefined
include $(AP_WORK)/build/NWGNUhead.inc
endif

#
# These directories will be at the beginning of the include list, followed by
# INCDIRS
#
XINCDIRS+= \
$(APR)/include \
$(APRUTIL)/include \
$(AP_WORK)/include \
$(AP_WORK)/modules/core \
$(AP_WORK)/modules/http \
$(NWOS) \
$(EOLIST)

#
# These flags will come after CFLAGS
#
XCFLAGS += \
$(EOLIST)

#
# These defines will come after DEFINES
#
XDEFINES+= \
$(EOLIST)

#
# These flags will be added to the link.opt file
#
XLFLAGS += \
$(EOLIST)

#
# These values will be appended to the correct variables based on the value of
# RELEASE
#
ifeq "$(RELEASE)" "debug"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "noopt"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "release"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

#
# These are used by the link target if an NLM is being generated
# This is used by the link 'name' directive to name the nlm.  If left blank
# TARGET_nlm (see below) will be used.
#
NLM_NAME= proxyhcheck

#
# This is used by the link '-desc ' directive.
# If left blank, NLM_NAME will be used.
#
NLM_DESCRIPTION = Apache $(VERSION_STR) Proxy Health Check Sub-Module

#
# This is used by the '-threadname' directive.  If left blank,
# NLM_NAME Thread will be used.
#
NLM_THREAD_NAME = Proxy HCheck Module

#
# If this is specified, it will override VERSION value in
# $(AP_WORK)/build/NWGNUenvironment.inc
#
NLM_VERSION =

#
# If this is specified, it will override the default of 64K
#
NLM_STACK_SIZE  = 8192


#
# If this is specified it will be used by the link '-entry' directive
#
NLM_ENTRY_SYM   =

#
# If this is specified it will be used by the link '-exit' directive
#
NLM_EXIT_SYM=

#
# If this is specified it will be used by the link '-check' directive
#
NLM_CHECK_SYM   =

#
# If these are specified it will be used by the link '-flags' directive
#
NLM_FLAGS   =

#
# If this is specified it will be linked in with the XDCData option in the def
# file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled
# by setting APACHE_UNIPROC in the environment
#
XDCDATA =

#
# If there is an NLM target, put it here
#
TARGET_nlm = \
$(OBJDIR)/proxyhcheck.nlm \
$(EOLIST)

#
# If there is an LIB target, put it here
#
TARGET_lib = \
$(EOLIST)

#
# These are the OBJ files needed to create the NLM target above.
# Paths must all use the '/' character
#
FILES_nlm_objs = \
$(OBJDIR)/mod_proxy_hcheck.o \
$(OBJDIR)/libprews.o \
$(EOLIST)

#
# These are the LIB files needed to create the NLM target above.
# These will be added as a library command in the link.opt file.
#
FILES_nlm_libs = \
$(PRELUDE) \
$(EOLIST)

#
# These are the modules that the above NLM target depends on to load.
# These will be added as a module command in the link.opt file.
#

Re: Loads of dup symbols in h2_util.c and h2_proxy_util.c

2016-10-12 Thread NormW

G/E
I reverted my local .\http2 for httpd-trunk and sync'd with svn source, 
and now builds that dir without issue for NetWare also.

Thx,
Norm
On 12/10/2016 1:38 AM, Jim Jagielski wrote:

Bringo!

 https://www.youtube.com/watch?v=4MpyHBoiTwk


On Oct 11, 2016, at 10:35 AM, Stefan Eissing  
wrote:

Fixed (hopefully ;-)

-Stefan


Am 11.10.2016 um 15:59 schrieb Jim Jagielski :

Looks like 2 were missed :)

duplicate symbol _h2_proxy_res_ignore_header in:
   modules/http2/.libs/libmod_proxy_http2.a(h2_proxy_util.o)
   modules/http2/.libs/libmod_http2.a(h2_util.o)
duplicate symbol _h2_util_ngheader_make_req in:
   modules/http2/.libs/libmod_proxy_http2.a(h2_proxy_util.o)
   modules/http2/.libs/libmod_http2.a(h2_util.o)
ld: 2 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Thx!!


On Oct 11, 2016, at 9:42 AM, Stefan Eissing  
wrote:

Changed. If you could verify that current trunk + 2.4.x do not have this issue 
any more, that'd be nice.

-Stefan


Am 11.10.2016 um 15:13 schrieb Jim Jagielski :

... and on trunk too it seems...

On Oct 11, 2016, at 9:05 AM, Jim Jagielski  wrote:

Forgot to mention: This is on HEAD httpd-2.4


On Oct 11, 2016, at 8:50 AM, Jim Jagielski  wrote:

There are a bunch of dup symbols popping up during link; these
symbols exist in both h2_util.c and h2_proxy_util.c.

Note: this is AFTER ensuring a 'make extraclean'...
















NetWare gets a look at latest lua (5.3.3)

2016-09-29 Thread NormW

G/E.
The following tweak is needed to compile the latest 5.3.3 lua since it 
is (nominally) C89 compliant at least:



Index: modules/lua/NWGNUmakefile
===
--- modules/lua/NWGNUmakefile   (revision 1762749)
+++ modules/lua/NWGNUmakefile   (working copy)
@@ -49,6 +49,7 @@
-DLUA_COMPAT_5_2 \
-DLUA_COMPAT_5_1 \
-DLUA_COMPAT_MODULE \
+   -DLUA_USE_C89 \
$(EOLIST)


Norm


C89 (alias NetWare) tries new mod_ on the block.

2016-09-29 Thread NormW

G/E.
Aimed 'our' C89 compiler at mod_brotli as much for interest as anything 
technical) and get the following using release 0.5.2 of Brotli:



Calling NWGNUmod_brotli
CC   mod_brotli.c
### mwccnlm Compiler:
#File: mod_brotli.c
# -
#  22:  #include 
#   Error:^
#   the file 'brotli/encode.h' cannot be opened
#   Too many errors printed, aborting program

User break, cancelled...
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:125: recipe for target 
'obj_release/mod_brotli.o' failed
make[3]: *** [obj_release/mod_brotli.o] Error 2
CC   D:\Projects\srcs\brotli-0.5.2/enc/backward_references.c
### mwccnlm Compiler:
#File: D:\Projects\srcs\brotli-0.5.2\enc\backward_references.c

:> #   Too many errors printed, aborting program


User break, cancelled...
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:125: recipe for target 
'obj_release/backward_references.o' failed
make[3]: *** [obj_release/backward_references.o] Error 2
CC   D:\Projects\srcs\brotli-0.5.2/enc/bit_cost.c
CC   D:\Projects\srcs\brotli-0.5.2/dec/bit_reader.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/block_splitter.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/brotli_bit_stream.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/cluster.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/compress_fragment.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/compress_fragment_two_pass.c
CC   D:\Projects\srcs\brotli-0.5.2/dec/decode.c
CC   D:\Projects\srcs\brotli-0.5.2/common/dictionary.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/encode.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/entropy_encode.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/histogram.c
CC   D:\Projects\srcs\brotli-0.5.2/dec/huffman.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/literal_cost.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/memory.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/metablock.c
CC   D:\Projects\srcs\brotli-0.5.2/dec/state.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/static_dict.c
CC   D:\Projects\srcs\brotli-0.5.2/enc/utf8_util.c
make[3]: Target 'default' not remade because of errors.


Unclear if the ggit source has a  dir or this reference is 
to the brotli source as a whole).
Changing this to  and adding a -I for the brotli source 
top gets:

Calling NWGNUmod_brotli
GEN  obj_release/mod_brotli_cc.opt
CC   mod_brotli.c
### mwccnlm Compiler:
#File: mod_brotli.c
# -
# 240:  output = BrotliEncoderTakeOutput(ctx->state, 
_len);
#   Error:  
 ^
#   illegal implicit conversion from 'int' to
#   'const unsigned char *'

Which I assume is either a C89-ism or CW-ism..

The

# 
#  30: static const float kInfinity = INFINITY;
#   Error:^
#   illegal constant expression

seems more like a C89-ism to me.

The build script and small tweak to use it follow.

Norm

NWGNUmod_brotli:
#
# Make sure all needed macro's are defined
#

#
# Get the 'head' of the build environment if necessary.  This includes 
default

# targets and paths to tools
#

ifndef EnvironmentDefined
include $(AP_WORK)/build/NWGNUhead.inc
endif

#
# These directories will be at the beginning of the include list, 
followed by

# INCDIRS
#
XINCDIRS+= \
$(APR)/include \
$(APRUTIL)/include \
$(SRC)/include \
$(NWOS) \
$(BROTLISRC)/common \
$(BROTLISRC)/dec \
$(BROTLISRC)/enc \
$(BROTLISRC) \
$(EOLIST)

#
# These flags will come after CFLAGS
#
XCFLAGS += \
$(EOLIST)

#
# These defines will come after DEFINES
#
XDEFINES+= \
$(EOLIST)

#
# These flags will be added to the link.opt file
#
XLFLAGS += \
$(EOLIST)

#
# These values will be appended to the correct variables based on the 
value of

# RELEASE
#
ifeq "$(RELEASE)" "debug"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "noopt"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "release"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

#
# These are used by the link target if an NLM is being generated
# This is used by the link 'name' directive to name the nlm.  If left blank
# 

Re: NetWare testing httpd-trunk with apr,apr-util 1.6

2016-09-18 Thread NormW

On 18/09/2016 8:52 AM, Yann Ylavic wrote:

On Sat, Sep 17, 2016 at 1:30 PM, NormW <no...@gknw.net> wrote:

Hi,
Having little to watch on TV, have played about with httpd-trunk and
apr-1.6, to see where the hiccups are hiding... What follows are the issues
found, and in most cases, fairly simple solutions.


Thanks Norm, applied (mostly, see below).
Thankyou for taking the time to review; I will omit any commited in the 
following:





Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2(revision 1760988)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -369,7 +369,7 @@
 @echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@
 @echo $(DL) h2_headers_add_h1,$(DL) >> $@
 @echo $(DL) h2_req_create,$(DL) >> $@
-   @echo $(DL) h2_req_createn,$(DL) >> $@
+#  @echo $(DL) h2_req_createn,$(DL) >> $@
 @echo $(DL) h2_util_camel_case_header,$(DL) >> $@
 @echo $(DL) h2_util_frame_print,$(DL) >> $@
 @echo $(DL) h2_util_ngheader_make_req,$(DL) >> $@



These are fairly obvious but subject to what vintage compiler you prefer and
what should be done about symbols that move about... For ease of review I've
just commented out the offending symbol.


The h2_req_createn removal/move seems disputed (not sure why since
this is a "private" function, even though its shared..), so I didn't
apply this one...
Stefan, something to be done about this?
Agree a procedure needs to agreed when symbols need to move; what ever 
the resolution, mod_http2 can't export something no longer there.




Over in APR-1.6...


D:\Projects\svn\apr-1.6.x>svn diff
Index: build/NWGNUmakefile
===
--- build/NWGNUmakefile (revision 1760898)
+++ build/NWGNUmakefile (working copy)
@@ -22,7 +22,7 @@
 $(APU)/include/apr_ldap.h \
 $(APU)/include/private/apu_config.h \
 $(APU)/include/private/apu_select_dbm.h \
-   $(APUXML)/expat/lib/expat_config.h \
+   $(APUXML)/expat_config.h \
 $(APR)/include/private/apr_escape_test_char.h \
 $(EOLIST)


First commited in http://svn.apache.org/r1761283, but finally reverted
(r1761292), trunk's xml/NWGNUmakefile seems to reference
$(EXPATSRC)/lib for expat_config.h.
So I'm not sure here, do we need a change in trunk too?
I presume here you refer to apr-trunk; never tried but if it builds 
aprxml.lib then it seems a better alternative to apr-util-1.6 as it 
creates the expat_config.h from the makefile rather than use an external 
.hnw. which would benefit apr-util-1.6. The .\xml structure in 
apr-util-1.5 is different to trunk and 1.6 so a common make file for all 
three trees is likely not possible.

Index: locks/netware/thread_cond.c
===
--- locks/netware/thread_cond.c (revision 1760898)
+++ locks/netware/thread_cond.c (working copy)
@@ -73,7 +73,7 @@
  rc = NXCondWait(cond->cond, mutex->mutex);
  }
  else {
-timeout = timeout * 1000 / XGetSystemTick();
+timeout = timeout * 1000 / NXGetSystemTick();
  rc = NXCondTimedWait(cond->cond, mutex->mutex, timeout);
  if (rc == NX_ETIMEDOUT) {
  return APR_TIMEUP;


Applied in http://svn.apache.org/r1761279 (trunk had the same issue),
and backported to 1.6.x (r1761280).
It also belongs apr-1.5 AFAICT. The '/N seems to confuse the compiler 
and drops the 'N', giving a missing symbol XGetSystemTick().




Mostly these are typo's in a non-released package so don't count as a
critique; the major issue comes with .\include\apr_proc_mutex.h:


Hard to propagate changes to every supported platforms w/o being able
to (at least) compile check on all of them, sorry about the
locks/netware ones (my bad)...
Did/Can you try "make check" (or alike) on Netware regarding these APR changes?
Not an option that I'm aware of; all I can do at this point is try to 
build and hope it goes to completion without complaint.





APR_DECLARE(apr_status_t) apr_proc_mutex_timedlock(apr_proc_mutex_t
*mutex,
apr_time_t timeout,
int absolute);


The NetWare proc_mutex.c requires it defined as:


APR_DECLARE(apr_status_t) apr_proc_mutex_timedlock(apr_thread_mutex_t
*mutex,
apr_time_t timeout,
int absolute)


I've just temporarily renamed it to see if it would compile and it did; how
to solve this I leave to experts.


That's the good fix I think, bad copy/paste on my side.

OK





APR-UTIL-1.6 shows:


D:\Projects\svn\apr-util-1.6.x>svn diff
Index: include/apu.hnw
===
--- in

Re: httpd-trunk\modules\filters\mod_crypto

2016-09-08 Thread NormW

On 8/09/2016 8:31 PM, Graham Leggett wrote:

On 08 Sep 2016, at 12:09 PM, NormW <no...@gknw.net> wrote:


What versions of apr\apr-util are assumed to be used when compiling httpd-trunk?
I get the following error when compiling mod_crypto, but can't find where the 
offending symbol is typedef'd. Presently using apr-1.5 and apr-util-1.5.


Use apr-util v1.6 (as yet unreleased).

Regards,
Graham
—

Thanks to both respondents! It will be interesting to see how NetWare 
build 'system' handles apr-trunk; as for apr-util-1.6, will check out 
the source-tree if available.

Thanks.
Norm



httpd-trunk\modules\filters\mod_crypto

2016-09-08 Thread NormW

G/E,
Apologies for the static...
What versions of apr\apr-util are assumed to be used when compiling 
httpd-trunk?
I get the following error when compiling mod_crypto, but can't find 
where the offending symbol is typedef'd. Presently using apr-1.5 and 
apr-util-1.5.



#From: mod_crypto.c
# -
#  74: typedef apr_status_t ap_HOOK_crypto_key_t (request_rec *r, 
apr_crypto_block_key_type_t * cipher, apr_crypto_block_key_mode_t *
#   Error:
^^^
#   illegal function definition


TIA,
Norm


http2 symbol moved to proxy...

2016-09-07 Thread NormW

G/E

Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2(revision 1759564)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -369,7 +369,6 @@
@echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@
@echo $(DL) h2_headers_add_h1,$(DL) >> $@
@echo $(DL) h2_req_create,$(DL) >> $@
-   @echo $(DL) h2_req_createn,$(DL) >> $@
@echo $(DL) h2_util_camel_case_header,$(DL) >> $@
@echo $(DL) h2_util_frame_print,$(DL) >> $@
@echo $(DL) h2_util_ngheader_make_req,$(DL) >> $@


h2_req_createn is no longer part of mod_http2, now in proxy_util.c only.

Norm


Re: mod_dav build fails on NetWare with unavailable exports

2016-09-02 Thread NormW

Pardon my 'oops'.
When mod_dav linked with the change below, I (rashly) assumed the fix 
worked, but after a nights sleep found the symbol export list was, in 
fact, empty, and an inspection of the .i file showed why - all the 
DAV_DECLARE() macros had also been removed by the pre-process. Will 
bumble about in the dark while I work out how this works for httpd.imp.

N.

On 1/09/2016 3:30 PM, NormW wrote:

Looking at mod_dav exporting symbols not in use for NetWare, I've
(shamelessly) borrowed the same pre-process method used for httpd.imp,
which results in the following diff:


Index: build/NWGNUmakefile
===
--- build/NWGNUmakefile(revision 1758692)
+++ build/NWGNUmakefile(working copy)
@@ -27,10 +27,14 @@

 libs :: chkapr $(NWOS)/chartables.c

-$(DAV)/main/dav.imp : make_nw_export.awk $(DAV)/main/mod_dav.h
+$(DAV)/main/dav.imp : make_nw_export.awk mod_dav.i
 @echo $(DL)GEN  $@$(DL)
 $(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@

+mod_dav.i : $(DAV)/main/mod_dav.h cc.opt
+@echo $(DL)GEN  $@$(DL)
+$(CC) $< @cc.opt
+
 $(STDMOD)/cache/mod_cache.imp: make_nw_export.awk
$(STDMOD)/cache/mod_cache.h $(STDMOD)/cache/cache_util.h
 @echo $(DL)GEN  $@$(DL)
 $(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@
@@ -127,6 +131,7 @@
 $(call DEL,$(DAV)/main/dav.imp)
 $(call DEL,$(NWOS)/httpd.imp)
 $(call DEL,nw_export.i)
+$(call DEL,mod_dav.i)
 $(call DEL,cc.opt)
 $(call DEL,NWGNUversion.inc)
 ifneq "$(BUILDTOOL_AS_NLM)" "1"


I can't call it my idea, but if anyone knows of a better way around
this, would love to see it applied.





mod_dav build fails on NetWare with unavailable exports

2016-09-01 Thread NormW
Looking at mod_dav exporting symbols not in use for NetWare, I've 
(shamelessly) borrowed the same pre-process method used for httpd.imp, 
which results in the following diff:



Index: build/NWGNUmakefile
===
--- build/NWGNUmakefile (revision 1758692)
+++ build/NWGNUmakefile (working copy)
@@ -27,10 +27,14 @@

 libs :: chkapr $(NWOS)/chartables.c

-$(DAV)/main/dav.imp : make_nw_export.awk $(DAV)/main/mod_dav.h
+$(DAV)/main/dav.imp : make_nw_export.awk mod_dav.i
@echo $(DL)GEN  $@$(DL)
$(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@

+mod_dav.i : $(DAV)/main/mod_dav.h cc.opt
+   @echo $(DL)GEN  $@$(DL)
+   $(CC) $< @cc.opt
+
 $(STDMOD)/cache/mod_cache.imp: make_nw_export.awk $(STDMOD)/cache/mod_cache.h 
$(STDMOD)/cache/cache_util.h
@echo $(DL)GEN  $@$(DL)
$(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@
@@ -127,6 +131,7 @@
$(call DEL,$(DAV)/main/dav.imp)
$(call DEL,$(NWOS)/httpd.imp)
$(call DEL,nw_export.i)
+   $(call DEL,mod_dav.i)
$(call DEL,cc.opt)
$(call DEL,NWGNUversion.inc)
 ifneq "$(BUILDTOOL_AS_NLM)" "1"


I can't call it my idea, but if anyone knows of a better way around 
this, would love to see it applied.


Index: build/NWGNUmakefile
===
--- build/NWGNUmakefile	(revision 1758692)
+++ build/NWGNUmakefile	(working copy)
@@ -27,10 +27,14 @@
 
 libs :: chkapr $(NWOS)/chartables.c
 
-$(DAV)/main/dav.imp : make_nw_export.awk $(DAV)/main/mod_dav.h
+$(DAV)/main/dav.imp : make_nw_export.awk mod_dav.i
 	@echo $(DL)GEN  $@$(DL)
 	$(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@
 
+mod_dav.i : $(DAV)/main/mod_dav.h cc.opt
+	@echo $(DL)GEN  $@$(DL)
+	$(CC) $< @cc.opt
+
 $(STDMOD)/cache/mod_cache.imp: make_nw_export.awk $(STDMOD)/cache/mod_cache.h $(STDMOD)/cache/cache_util.h
 	@echo $(DL)GEN  $@$(DL)
 	$(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@
@@ -127,6 +131,7 @@
 	$(call DEL,$(DAV)/main/dav.imp)
 	$(call DEL,$(NWOS)/httpd.imp)
 	$(call DEL,nw_export.i)
+	$(call DEL,mod_dav.i)
 	$(call DEL,cc.opt)
 	$(call DEL,NWGNUversion.inc)
 ifneq "$(BUILDTOOL_AS_NLM)" "1"


Re: \http2\proxyh2p NWGNU needs added source

2016-08-31 Thread NormW

On 31/08/2016 7:14 PM, Stefan Eissing wrote:

Hi there!

Merged in trunk and 2.4.x branch.

-Stefan


Am 31.08.2016 um 10:06 schrieb NormW <no...@gknw.net>:



Thx!
N.




\http2\proxyh2p NWGNU needs added source

2016-08-31 Thread NormW

Hi again (now begins silence)


Index: modules/http2/NWGNUproxyht2
===
--- modules/http2/NWGNUproxyht2 (revision 1758527)
+++ modules/http2/NWGNUproxyht2 (working copy)
@@ -182,6 +182,7 @@
 FILES_nlm_objs = \
$(OBJDIR)/mod_proxy_http2.o \
$(OBJDIR)/h2_proxy_session.o \
+   $(OBJDIR)/h2_proxy_util.o \
$(EOLIST)

 #


Norm
Index: modules/http2/NWGNUproxyht2
===
--- modules/http2/NWGNUproxyht2	(revision 1758527)
+++ modules/http2/NWGNUproxyht2	(working copy)
@@ -182,6 +182,7 @@
 FILES_nlm_objs = \
 	$(OBJDIR)/mod_proxy_http2.o \
 	$(OBJDIR)/h2_proxy_session.o \
+	$(OBJDIR)/h2_proxy_util.o \
 	$(EOLIST)
 
 #


mod_crypto.h.c has an issue over my head

2016-08-31 Thread NormW

Hi again,

Calling NWGNUmod_crypto
CC   mod_crypto.c
### mwccnlm Compiler:
#  In: mod_crypto.h
#From: mod_crypto.c
# -
#  74: typedef apr_status_t ap_HOOK_crypto_key_t (request_rec *r, 
apr_crypto_block_key_type_t * cipher, apr_crypto_block_key_mode_t *
#   Error:
^^^
#   illegal function definition
#   Too many errors printed, aborting program


Any clues appreciated.

Norm


Issue with export list for \dav\main....

2016-08-31 Thread NormW

Hi all.
Thanks for the tweak for 'isascii' checking; most of the build issues 
went away...;-( ...most.)



Building D:/Projects/svn/httpd-trunk/modules/dav/main
LINK obj_release/mod_dav.nlm
### mwldnlm Linker Error:
#   Undefined symbol: dav_acl_provider_register in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: dav_get_acl_providers in
#   Export list


Those two symbols are in dav\mod_dav.h and dav\main\processes.c, and 
because the awk script doesn't understand #ifdef APR_XML_X2T_PARSED ihat 
brackets these functions, adds these symbols to mod_dav.imp, which 
results in the above errors. _IF_ APR_XML_X2T_PARSED happens to be true 
on NetWare (unknown ATM) adding this define to apr.hnw would be a cheap 
solution.


Norm



An abbreviated background to this build error?

2016-08-17 Thread NormW

G/E;
Building for NetWare after 3+ months elsewhere, an get the following 
build error:

Creating Build Helper gen_test_char.exe
### mwld.exe Linker Error:
#   Undefined symbol: _isascii in
#  gen_test_char.obj
### mwcc Driver Error:
#   linker 'D:\CWCMDL40\mwld.exe' returned with exit code 1

AFAICT NetWare  doesn't have the leading '_'.
Norm



Extra export for http-trunk http2

2016-05-15 Thread NormW

G/E..

Another symbol needed ;-(

Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2(revision 1743880)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -355,6 +355,7 @@
@echo $(DL)GEN  $@$(DL)
@echo $(DL) (HTTP2)$(DL) > $@
@echo $(DL) http2_module,$(DL) >> $@
+   @echo $(DL) h2_casecmpstrn,$(DL) >> $@
@echo $(DL) h2_ihash_add,$(DL) >> $@
@echo $(DL) h2_ihash_clear,$(DL) >> $@
@echo $(DL) h2_ihash_count,$(DL) >> $@


Am moving to another town... Bye for now; if NetWare support goes 
silent, consider removing support.


Every success,
Norm
Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2	(revision 1743880)
+++ modules/http2/NWGNUmod_http2	(working copy)
@@ -355,6 +355,7 @@
 	@echo $(DL)GEN  $@$(DL)
 	@echo $(DL) (HTTP2)$(DL) > $@
 	@echo $(DL) http2_module,$(DL) >> $@
+	@echo $(DL) h2_casecmpstrn,$(DL) >> $@
 	@echo $(DL) h2_ihash_add,$(DL) >> $@
 	@echo $(DL) h2_ihash_clear,$(DL) >> $@
 	@echo $(DL) h2_ihash_count,$(DL) >> $@


Re: Recent updates to httpd-trunk

2016-04-27 Thread NormW

On 27/04/2016 8:56 AM, Yann Ylavic wrote:

Thanks, done in r1741112 and r1741115.

Regards,
Yann.


Excellent! All httpd-trunk now builds nicely with NetWare.



Recent updates to httpd-trunk

2016-04-26 Thread NormW

G/M from a very warm autumn.

1. Could someone please:
- set the correct EOL type in svn for .\modules\http2\NWGNUproxyht2,

- Patch as per the following to allow builds of \http2 and \ssl

D:\Projects\svn\httpd-trunk>svn diff
Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2(revision 1741097)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -359,7 +359,7 @@
@echo $(DL) h2_ihash_clear,$(DL) >> $@
@echo $(DL) h2_ihash_count,$(DL) >> $@
@echo $(DL) h2_ihash_create,$(DL) >> $@
-   @echo $(DL) h2_ihash_is_empty,$(DL) >> $@
+   @echo $(DL) h2_ihash_empty,$(DL) >> $@
@echo $(DL) h2_ihash_iter,$(DL) >> $@
@echo $(DL) h2_ihash_remove,$(DL) >> $@
@echo $(DL) h2_iq_add,$(DL) >> $@
Index: modules/http2/NWGNUproxyht2
===
--- modules/http2/NWGNUproxyht2 (revision 1741097)
+++ modules/http2/NWGNUproxyht2 (working copy)
@@ -230,7 +230,8 @@
ap_proxy_canon_netloc \
ap_proxy_canonenc \
ap_proxy_connect_backend \
-   ap_proxy_connection_create \
+   ap_proxy_connection_create \
+   ap_proxy_connection_create_ex \
ap_proxy_cookie_reverse_map \
ap_proxy_determine_connection \
ap_proxy_location_reverse_map \
Index: modules/ssl/NWGNUmakefile
===
--- modules/ssl/NWGNUmakefile   (revision 1741097)
+++ modules/ssl/NWGNUmakefile   (working copy)
@@ -55,6 +55,7 @@
$(SRC)/include \
$(STDMOD)/cache \
$(STDMOD)/generators \
+   $(STDMOD)/proxy \
$(SERVER)/mpm/NetWare \
$(NWOS) \
$(EOLIST)
The EOL problem with NWGNUproxyht2 caused the symbol to be apparently 
added twice.

- Unable (at this time) to work out the following error:

Building D:/Projects/svn/httpd-trunk/modules/proxy
Calling NWGNUproxy
LINK obj_release/proxy.nlm
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_section_post_config in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_section_post_config in
#   Export list


I suspect this is due to an .awk script assumption that these two also 
exist, but it may also? be a extra source file needed for the build.


With \http2 tweaked as noted, builds fine with nghttp2 v1.10.0.
Regards
Norm


Re: httpd-trunk proxy_http2 NetWare build wants extra sym.

2016-03-21 Thread NormW

Thx.
Trunk and 2.4.x now both build without issue.
Norm

On 21/03/2016 8:00 PM, Stefan Eissing wrote:

Applied in 1735928.


Am 17.03.2016 um 22:45 schrieb NormW <no...@gknw.net>:

G/M,
A recent addition to trunk mod_proxy_http2 needs an additional export from 
hghttp2 lib, thus:


Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2(revision 1735506)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -391,6 +391,7 @@
@echo $(DL) nghttp2_session_callbacks_set_send_callback,$(DL) >> $@
@echo $(DL) nghttp2_session_client_new2,$(DL) >> $@
@echo $(DL) nghttp2_session_consume,$(DL) >> $@
+   @echo $(DL) nghttp2_session_consume_connection,$(DL) >> $@
@echo $(DL) nghttp2_session_del,$(DL) >> $@
@echo $(DL) nghttp2_session_get_remote_settings,$(DL) >> $@
@echo $(DL) nghttp2_session_get_stream_user_data,$(DL) >> $@


Excuse the noise.
Norm







httpd-trunk proxy_http2 NetWare build wants extra sym.

2016-03-19 Thread NormW

G/M,
A recent addition to trunk mod_proxy_http2 needs an additional export 
from hghttp2 lib, thus:



Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2(revision 1735506)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -391,6 +391,7 @@
@echo $(DL) nghttp2_session_callbacks_set_send_callback,$(DL) >> $@
@echo $(DL) nghttp2_session_client_new2,$(DL) >> $@
@echo $(DL) nghttp2_session_consume,$(DL) >> $@
+   @echo $(DL) nghttp2_session_consume_connection,$(DL) >> $@
@echo $(DL) nghttp2_session_del,$(DL) >> $@
@echo $(DL) nghttp2_session_get_remote_settings,$(DL) >> $@
@echo $(DL) nghttp2_session_get_stream_user_data,$(DL) >> $@


Excuse the noise.
Norm
Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2	(revision 1735506)
+++ modules/http2/NWGNUmod_http2	(working copy)
@@ -391,6 +391,7 @@
 	@echo $(DL) nghttp2_session_callbacks_set_send_callback,$(DL) >> $@
 	@echo $(DL) nghttp2_session_client_new2,$(DL) >> $@
 	@echo $(DL) nghttp2_session_consume,$(DL) >> $@
+	@echo $(DL) nghttp2_session_consume_connection,$(DL) >> $@
 	@echo $(DL) nghttp2_session_del,$(DL) >> $@
 	@echo $(DL) nghttp2_session_get_remote_settings,$(DL) >> $@
 	@echo $(DL) nghttp2_session_get_stream_user_data,$(DL) >> $@


httpd-2.4.x patches for NetWare build.

2016-03-15 Thread NormW

G/M,
Attached two simple patches for httpd-2.4.x tree:

Add two extra missing symbols for mod_proxy needed to allow a NetWare 
build at the present time. Once the auto symbols export functionality is 
backported, this patch would also be removed.


At the present time 2.4.x waits approval to backport mod_proxy_http2, 
Until then the attached diff for NWGNUmakefile in modules/http2 is 
required - a build system vaguery says if there is only only one build 
target listed in the NWGNUmakefile it will try to build itself and 
crash. If mod_proxy_http2 is backported it becomes the second item in 
the build list and all remains happy.

Norm
Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy	(revision 1735169)
+++ modules/proxy/NWGNUproxy	(working copy)
@@ -273,6 +273,7 @@
 	@echo $(DL) proxy_run_scheme_handler,$(DL)>> $@
 	@echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@
 	@echo $(DL) ap_proxy_backend_broke,$(DL)>> $@
+	@echo $(DL) ap_proxy_buckets_lifetime_transform,$(DL)>> $@
 	@echo $(DL) ap_proxy_c2hex,$(DL)>> $@
 	@echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@
 	@echo $(DL) ap_proxy_canonenc,$(DL)>> $@
@@ -318,6 +319,7 @@
 	@echo $(DL) ap_proxy_strncpy,$(DL)>> $@
 	@echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@
 	@echo $(DL) ap_proxy_trans_match,$(DL)>> $@
+	@echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@
 	@echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@
 	@echo $(DL) ap_proxy_worker_name,$(DL)>> $@
 	@echo $(DL) ap_proxyerror$(DL)>> $@
Index: modules/http2/NWGNUmakefile
===
--- modules/http2/NWGNUmakefile	(revision 1735169)
+++ modules/http2/NWGNUmakefile	(working copy)
@@ -153,6 +153,7 @@
 #
 TARGET_nlm = \
 	$(OBJDIR)/mod_http2.nlm \
+	$(OBJDIR)/mod_http2.nlm \
 	$(EOLIST)
 
 #


A future for mod_lua and NetWare?

2016-03-12 Thread NormW

G/M All.
When mod_lua hit httpd-trunk it was configured to have a single (global) 
memory pool, and NetWare compiled it and ran lua code as expected.


A later modification to mod_lua code introduced a memory pool per 
process and required shared memory, a function group that is not in 
NetWare's skill set. The present code can still be compiled by NetWare 
but when it is loaded into the web server, results in:



"mod_lua: Failed to create shared memory segment on file %s",
 lua_ivm_shmfile);
return HTTP_INTERNAL_SERVER_ERROR;


in the server logs.

The question then is:

1. Would it be desirable to support both pool modes using #ifdef 
APR_HAS_SHM to determine pool type used (this would affect at least 3 
files, mod_lua.c, lua_vmprint.c and lua_request.c);


OR

Having having regard for code simplification, the better(?) (newer) pool 
system and the age of NetWare, just remove NetWare support from mod_lua?


For consideration,
Norm


Re: Add ?? mod_proxy_http2 for NetWare build - All done!

2016-03-10 Thread NormW

G/M Stefan,
All done. and many thanks for taking the time out to attend to it.

Regards
Norm



Add ?? mod_proxy_http2 for NetWare build - Take 3 - Very close now!

2016-03-09 Thread NormW

G/M
Thanks Stefan for all the help so far.
A build of httpd-trunk this morning shows the followning tweaks are 
still required:


- The additional exports in the two NWGNU files are for recent changes 
to mod_proxy_http2;
- The httpd_module export is already included in mod_http2.imp and neeed 
not be in the list also;

- By means unknown the

-   @$(OBJDIR)/mod_http2.imp \
acquired 4+ trailing spaces after the backslash character and thus Make 
would ignore the backslash and spit the dummy on the following line;

- mod_proxy_http2.c still needs the double quotes tweak.


Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2(revision 1734307)
+++ modules/http2/NWGNUmod_http2(working copy)
@@ -260,8 +260,7 @@
 # Any symbols exported to here
 #
 FILES_nlm_exports = \
-   http2_module \
-   @$(OBJDIR)/mod_http2.imp \
+   @$(OBJDIR)/mod_http2.imp \
$(EOLIST)

 #
@@ -370,6 +369,7 @@
@echo $(DL) h2_iq_add,$(DL) >> $@
@echo $(DL) h2_iq_create,$(DL) >> $@
@echo $(DL) h2_iq_remove,$(DL) >> $@
+   @echo $(DL) h2_log2,$(DL) >> $@
@echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@
@echo $(DL) h2_request_create,$(DL) >> $@
@echo $(DL) h2_request_make,$(DL) >> $@
@@ -379,6 +379,7 @@
@echo $(DL) nghttp2_is_fatal,$(DL) >> $@
@echo $(DL) nghttp2_option_del,$(DL) >> $@
@echo $(DL) nghttp2_option_new,$(DL) >> $@
+   @echo $(DL) nghttp2_option_set_no_auto_window_update,$(DL) >> $@
@echo $(DL) nghttp2_option_set_peer_max_concurrent_streams,$(DL) >> $@
@echo $(DL) nghttp2_session_callbacks_del,$(DL) >> $@
@echo $(DL) nghttp2_session_callbacks_new,$(DL) >> $@
Index: modules/http2/mod_proxy_http2.c
===
--- modules/http2/mod_proxy_http2.c (revision 1734307)
+++ modules/http2/mod_proxy_http2.c (working copy)
@@ -17,7 +17,7 @@

 #include 
 #include 
-#include 
+#include "mod_http2.h"


 #include "mod_proxy_http2.h"
Index: modules/http2/NWGNUproxyht2
===
--- modules/http2/NWGNUproxyht2 (revision 1734307)
+++ modules/http2/NWGNUproxyht2 (working copy)
@@ -237,6 +237,7 @@
ap_proxy_port_of_scheme \
ap_proxy_release_connection \
ap_proxy_ssl_connection_cleanup \
+   ap_sock_disable_nagle \
proxy_hook_canon_handler \
proxy_hook_scheme_handler \
proxy_module \
Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2	(revision 1734307)
+++ modules/http2/NWGNUmod_http2	(working copy)
@@ -260,8 +260,7 @@
 # Any symbols exported to here
 #
 FILES_nlm_exports = \
-	http2_module \
-	@$(OBJDIR)/mod_http2.imp \
+	@$(OBJDIR)/mod_http2.imp \
 	$(EOLIST)
 
 #
@@ -370,6 +369,7 @@
 	@echo $(DL) h2_iq_add,$(DL) >> $@
 	@echo $(DL) h2_iq_create,$(DL) >> $@
 	@echo $(DL) h2_iq_remove,$(DL) >> $@
+	@echo $(DL) h2_log2,$(DL) >> $@
 	@echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@
 	@echo $(DL) h2_request_create,$(DL) >> $@
 	@echo $(DL) h2_request_make,$(DL) >> $@
@@ -379,6 +379,7 @@
 	@echo $(DL) nghttp2_is_fatal,$(DL) >> $@
 	@echo $(DL) nghttp2_option_del,$(DL) >> $@
 	@echo $(DL) nghttp2_option_new,$(DL) >> $@
+	@echo $(DL) nghttp2_option_set_no_auto_window_update,$(DL) >> $@
 	@echo $(DL) nghttp2_option_set_peer_max_concurrent_streams,$(DL) >> $@
 	@echo $(DL) nghttp2_session_callbacks_del,$(DL) >> $@
 	@echo $(DL) nghttp2_session_callbacks_new,$(DL) >> $@
Index: modules/http2/mod_proxy_http2.c
===
--- modules/http2/mod_proxy_http2.c	(revision 1734307)
+++ modules/http2/mod_proxy_http2.c	(working copy)
@@ -17,7 +17,7 @@
 
 #include 
 #include 
-#include 
+#include "mod_http2.h"
 
 
 #include "mod_proxy_http2.h"
Index: modules/http2/NWGNUproxyht2
===
--- modules/http2/NWGNUproxyht2	(revision 1734307)
+++ modules/http2/NWGNUproxyht2	(working copy)
@@ -237,6 +237,7 @@
 	ap_proxy_port_of_scheme \
 	ap_proxy_release_connection \
 	ap_proxy_ssl_connection_cleanup \
+	ap_sock_disable_nagle \
 	proxy_hook_canon_handler \
 	proxy_hook_scheme_handler \
 	proxy_module \


h2_request.c > ap_create_request() puzzle.

2016-03-09 Thread NormW

G/E
Can't decide if the following:


GEN  obj_release/mod_http2_link.opt
LINK obj_release/mod_http2.nlm
### mwldnlm Linker Error:
#   Undefined symbol: ap_create_request in
#   h2_request.o


is a typo and should be calling ap_create_request_config()

or if:


request_rec *ap_create_request(conn_rec *conn)

(protocol.c/http_protocol.h)

needs to declared as:


AP_DECLARE(request_rec) *ap_create_request(conn_rec *conn)


otherwise the ap_create_request symbol is not exported from the server 
for use by other modules...?


Norm


Add ?? mod_prox_http2 for NetWare build - Take 2

2016-03-05 Thread NormW

G/M,
This supercedes Take 1 due to additional exports now needed by 
mod_proxy_http2 from mod_proxy and mod_http2.

Same caveat applies re tweaks to mod_proxy_http2 source files.
Norm
#
# This Makefile requires the environment var NGH2SRC
# pointing to the base directory of nghttp2 source tree.
#

#
# Declare the sub-directories to be built here
#

SUBDIRS = \
$(EOLIST)

#
# Get the 'head' of the build environment.  This includes default targets and
# paths to tools
#

include $(AP_WORK)/build/NWGNUhead.inc

#
# build this level's files
#
# Make sure all needed macro's are defined
#

#
# These directories will be at the beginning of the include list, followed by
# INCDIRS
#
XINCDIRS+= \
$(APR)/include \
$(APRUTIL)/include \
$(SRC)/include \
$(NGH2SRC)/lib/includes \
$(STDMOD)/proxy \
$(SERVER)/mpm/NetWare \
$(NWOS) \
$(EOLIST)

#
# These flags will come after CFLAGS
#
XCFLAGS += \
$(EOLIST)

#
# These defines will come after DEFINES
#
XDEFINES+= \
$(EOLIST)

#
# These flags will be added to the link.opt file
#
XLFLAGS += \
-L$(OBJDIR) \
$(EOLIST)

#
# These values will be appended to the correct variables based on the value of
# RELEASE
#
ifeq "$(RELEASE)" "debug"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "noopt"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "release"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

#
# These are used by the link target if an NLM is being generated
# This is used by the link 'name' directive to name the nlm.  If left blank
# TARGET_nlm (see below) will be used.
#
NLM_NAME= proxyht2

#
# This is used by the link '-desc ' directive.
# If left blank, NLM_NAME will be used.
#
NLM_DESCRIPTION = Apache $(VERSION_STR) HTTP2 Proxy module
#
# This is used by the '-threadname' directive.  If left blank,
# NLM_NAME Thread will be used.
#
NLM_THREAD_NAME = $(NLM_NAME)

#
# If this is specified, it will override VERSION value in
# $(AP_WORK)/build/NWGNUenvironment.inc
#
NLM_VERSION =

#
# If this is specified, it will override the default of 64K
#
NLM_STACK_SIZE  = 65536

#
# If this is specified it will be used by the link '-entry' directive
#
NLM_ENTRY_SYM   =

#
# If this is specified it will be used by the link '-exit' directive
#
NLM_EXIT_SYM=

#
# If this is specified it will be used by the link '-check' directive
#
NLM_CHECK_SYM   =

#
# If this is specified it will be used by the link '-flags' directive
#
NLM_FLAGS   =

#
# If this is specified it will be linked in with the XDCData option in the def
# file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled
# by setting APACHE_UNIPROC in the environment
#
XDCDATA =

#
# Declare all target files (you must add your files here)
#

#
# If there is an NLM target, put it here
#
TARGET_nlm = \
$(OBJDIR)/$(NLM_NAME).nlm \
$(EOLIST)

#
# If there is an LIB target, put it here
#
TARGET_lib = \
$(EOLIST)

#
# These are the OBJ files needed to create the NLM target above.
# Paths must all use the '/' character
#
FILES_nlm_objs = \
$(OBJDIR)/mod_proxy_http2.o \
$(OBJDIR)/h2_proxy_session.o \
$(EOLIST)

#
# These are the LIB files needed to create the NLM target above.
# These will be added as a library command in the link.opt file.
#
FILES_nlm_libs = \
$(PRELUDE) \
$(EOLIST)

#
# These are the modules that the above NLM target depends on to load.
# These will be added as a module command in the link.opt file.
#
FILES_nlm_modules = \
Libc \
Apache2 \
mod_proxy \
mod_http2 \
$(EOLIST)

#
# If the nlm has a msg file, put it's path here
#
FILE_nlm_msg =

#
# If the nlm has a hlp file put it's path here
#
FILE_nlm_hlp =

#
# If this is specified, it will override $(NWOS)\copyright.txt.
#
FILE_nlm_copyright =

#
# Any additional imports go here
#
FILES_nlm_Ximports = \
@libc.imp \
@aprlib.imp \
@httpd.imp \
@$(OBJDIR)/mod_http2.imp \
ap_proxy_acquire_connection \
ap_proxy_canon_netloc \
ap_proxy_canonenc \
ap_proxy_connect_backend \
  

Add ?? mod_proxy_http2 for NetWare build - Take 1

2016-03-04 Thread NormW

G/M,
The attached patch and NWGNUproxyht2 builds the (trunk) mod_proxy_http2 
module BUT does include some AS YET unapproved minor tweaks in the two 
proxy_http2 source files.


Norm
Index: modules/http2/h2_proxy_session.c
===
--- modules/http2/h2_proxy_session.c	(revision 1733642)
+++ modules/http2/h2_proxy_session.c	(working copy)
@@ -19,7 +19,7 @@
 
 #include 
 #include 
-#include 
+#include "mod_http2.h"
 
 #include "h2.h"
 #include "h2_int_queue.h"
Index: modules/http2/NWGNUmod_http2
===
--- modules/http2/NWGNUmod_http2	(revision 1733642)
+++ modules/http2/NWGNUmod_http2	(working copy)
@@ -259,7 +259,7 @@
 # Any symbols exported to here
 #
 FILES_nlm_exports = \
-	http2_module \
+	@$(OBJDIR)/mod_http2.imp \
 	$(EOLIST)
 
 #
@@ -273,7 +273,7 @@
 
 libs :: $(OBJDIR) $(NGH2SRC)/lib/config.h $(TARGET_lib)
 
-nlms :: libs $(TARGET_nlm)
+nlms :: libs $(OBJDIR)/mod_http2.imp $(TARGET_nlm)
 
 #
 # Updated this target to create necessary directories and copy files to the
@@ -289,7 +289,8 @@
 #
 vpath %.c $(NGH2SRC)/lib
 
-$(NGH2SRC)/lib/config.h : NWGNUmakefile
+$(NGH2SRC)/lib/config.h : NWGNUmod_http2
+	@-$(RM) $@
 	@echo $(DL)GEN  $@$(DL)
 	@echo $(DL)/* For NetWare target.$(DL) > $@
 	@echo $(DL)** Do not edit - created by Make!$(DL) >> $@
@@ -351,6 +352,58 @@
 	@echo $(DL)#endif /* NGH2_CONFIG_H */$(DL) >> $@
 
 #
+# Exports from mod_http2 for mod_proxy_http2
+$(OBJDIR)/mod_http2.imp : NWGNUmod_http2
+	@-$(RM) $@
+	@echo $(DL)GEN  $@$(DL)
+	@echo $(DL) (HTTP2)$(DL) > $@
+	@echo $(DL) http2_module,$(DL) >> $@
+	@echo $(DL) h2_ihash_add,$(DL) >> $@
+	@echo $(DL) h2_ihash_clear,$(DL) >> $@
+	@echo $(DL) h2_ihash_count,$(DL) >> $@
+	@echo $(DL) h2_ihash_create,$(DL) >> $@
+	@echo $(DL) h2_ihash_is_empty,$(DL) >> $@
+	@echo $(DL) h2_ihash_iter,$(DL) >> $@
+	@echo $(DL) h2_ihash_remove,$(DL) >> $@
+	@echo $(DL) h2_iq_add,$(DL) >> $@
+	@echo $(DL) h2_iq_create,$(DL) >> $@
+	@echo $(DL) h2_iq_remove,$(DL) >> $@
+	@echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@
+	@echo $(DL) h2_request_create,$(DL) >> $@
+	@echo $(DL) h2_request_make,$(DL) >> $@
+	@echo $(DL) h2_util_camel_case_header,$(DL) >> $@
+	@echo $(DL) h2_util_frame_print,$(DL) >> $@
+	@echo $(DL) h2_util_ngheader_make_req,$(DL) >> $@
+	@echo $(DL) nghttp2_is_fatal,$(DL) >> $@
+	@echo $(DL) nghttp2_option_del,$(DL) >> $@
+	@echo $(DL) nghttp2_option_new,$(DL) >> $@
+	@echo $(DL) nghttp2_option_set_peer_max_concurrent_streams,$(DL) >> $@
+	@echo $(DL) nghttp2_session_callbacks_del,$(DL) >> $@
+	@echo $(DL) nghttp2_session_callbacks_new,$(DL) >> $@
+	@echo $(DL) nghttp2_session_callbacks_set_before_frame_send_callback,$(DL) >> $@
+	@echo $(DL) nghttp2_session_callbacks_set_on_data_chunk_recv_callback,$(DL) >> $@
+	@echo $(DL) nghttp2_session_callbacks_set_on_frame_recv_callback,$(DL) >> $@
+	@echo $(DL) nghttp2_session_callbacks_set_on_header_callback,$(DL) >> $@
+	@echo $(DL) nghttp2_session_callbacks_set_on_stream_close_callback,$(DL) >> $@
+	@echo $(DL) nghttp2_session_callbacks_set_send_callback,$(DL) >> $@
+	@echo $(DL) nghttp2_session_client_new2,$(DL) >> $@
+	@echo $(DL) nghttp2_session_consume,$(DL) >> $@
+	@echo $(DL) nghttp2_session_del,$(DL) >> $@
+	@echo $(DL) nghttp2_session_get_remote_settings,$(DL) >> $@
+	@echo $(DL) nghttp2_session_get_stream_user_data,$(DL) >> $@
+	@echo $(DL) nghttp2_session_mem_recv,$(DL) >> $@
+	@echo $(DL) nghttp2_session_resume_data,$(DL) >> $@
+	@echo $(DL) nghttp2_session_send,$(DL) >> $@
+	@echo $(DL) nghttp2_session_want_read,$(DL) >> $@
+	@echo $(DL) nghttp2_session_want_write,$(DL) >> $@
+	@echo $(DL) nghttp2_strerror,$(DL) >> $@
+	@echo $(DL) nghttp2_submit_goaway,$(DL) >> $@
+	@echo $(DL) nghttp2_submit_request,$(DL) >> $@
+	@echo $(DL) nghttp2_submit_rst_stream,$(DL) >> $@
+	@echo $(DL) nghttp2_submit_settings,$(DL) >> $@
+	@echo $(DL) nghttp2_submit_window_update,$(DL) >> $@
+	@echo $(DL) nghttp2_version$(DL) >> $@
+
 # Include the 'tail' makefile that has targets that depend on variables defined
 # in this makefile
 #
Index: modules/http2/NWGNUmakefile
===
--- modules/http2/NWGNUmakefile	(revision 1733642)
+++ modules/http2/NWGNUmakefile	(working copy)
@@ -153,7 +153,7 @@
 #
 TARGET_nlm = \
 	$(OBJDIR)/mod_http2.nlm \
-	$(OBJDIR)/mod_http2.nlm \
+	$(OBJDIR)/proxyht2.nlm \
 	$(EOLIST)
 
 #
Index: modules/http2/mod_proxy_http2.c
===
--- modules/http2/mod_proxy_http2.c	(revision 1733642)
+++ modules/http2/mod_proxy_http2.c	(working copy)
@@ -17,7 +17,7 @@
 
 #include 
 #include 
-#include 
+#include "mod_http2.h"
 
 
 #include "mod_proxy_http2.h"
#
# This Makefile requires the environment var NGH2SRC
# pointing to the base directory of nghttp2 source tree.
#

#
# Declare the sub-directories to be built here
#

SUBDIRS = \
$(EOLIST)

#
# Get the 

A (likely) simple question regarding mod_proxy_http2

2016-03-03 Thread NormW
Trying my limited knowledge at compiling modules\http2\mod_proxy_http2, 
and the compiler (no sniggering please) barfs in both source:

h2_proxy_session.c and mod_proxy_http2.c
with an error that says they (respectively) can't open mod_http2.h.

mod_http2.c has #include "mod_http2.h",
the above proxy source have #include 

Since the NetWare makefiles are always local to the built dir, AFAIK 
using <> in the #include means a system search path (-Ixxx) whereas the 
double quotes implies 'local dir', so change to #include "mod_http2.h" 
and it they compile nicely; an alternative would to add -I., but have 
never seen this to be necessary elsewhere in the httpd build system.


Any comments?
TIA,
Norm





httpd-trunk/modules/http2/NWGNUmod_http2 svn EOL Setting

2016-03-02 Thread NormW

G/M,
Could someone with a few free seconds set the
 httpd-trunk/modules/http2/NWGNUmod_http2
file to have the appropriate svn EOL setting?

TIA
Norm


Re: Backport of auto proxy(_util) exports?

2016-03-01 Thread NormW

G/M,
As of last night the following additional exports from 2.4 mod_proxy 
builds all NetWare modules presently in the 2.4 modules/proxy dir:

Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy(revision 1733007)
+++ modules/proxy/NWGNUproxy(working copy)
@@ -273,6 +273,7 @@
@echo $(DL) proxy_run_scheme_handler,$(DL)>> $@
@echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@
@echo $(DL) ap_proxy_backend_broke,$(DL)>> $@
+   @echo $(DL) ap_proxy_buckets_lifetime_transform,$(DL)>> $@
@echo $(DL) ap_proxy_c2hex,$(DL)>> $@
@echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@
@echo $(DL) ap_proxy_canonenc,$(DL)>> $@
@@ -318,6 +319,7 @@
@echo $(DL) ap_proxy_strncpy,$(DL)>> $@
@echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@
@echo $(DL) ap_proxy_trans_match,$(DL)>> $@
+   @echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@
@echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@
@echo $(DL) ap_proxy_worker_name,$(DL)>> $@
@echo $(DL) ap_proxyerror$(DL)>> $@

Norm

On 1/03/2016 2:09 PM, Rainer Jung wrote:

Am 29.02.2016 um 23:03 schrieb NormW:

G/M Rainer,
Any known reason your recent tweaks to automatically create the
mod_proxy exports list cannot be nominated for back-port to 2.4.x?


Not that I'm aware off. Things have settled a bit now, so probably it'
the time to propose a backport.


If there is a technical and/or time constraint I'll submit a patch for
at least a couple of symbols needed to build 2.4.x/modules/proxy.


That would be great!

Rainer


Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy	(revision 1733007)
+++ modules/proxy/NWGNUproxy	(working copy)
@@ -273,6 +273,7 @@
 	@echo $(DL) proxy_run_scheme_handler,$(DL)>> $@
 	@echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@
 	@echo $(DL) ap_proxy_backend_broke,$(DL)>> $@
+	@echo $(DL) ap_proxy_buckets_lifetime_transform,$(DL)>> $@
 	@echo $(DL) ap_proxy_c2hex,$(DL)>> $@
 	@echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@
 	@echo $(DL) ap_proxy_canonenc,$(DL)>> $@
@@ -318,6 +319,7 @@
 	@echo $(DL) ap_proxy_strncpy,$(DL)>> $@
 	@echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@
 	@echo $(DL) ap_proxy_trans_match,$(DL)>> $@
+	@echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@
 	@echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@
 	@echo $(DL) ap_proxy_worker_name,$(DL)>> $@
 	@echo $(DL) ap_proxyerror$(DL)>> $@


Backport of auto proxy(_util) exports?

2016-02-29 Thread NormW

G/M Rainer,
Any known reason your recent tweaks to automatically create the 
mod_proxy exports list cannot be nominated for back-port to 2.4.x?


If there is a technical and/or time constraint I'll submit a patch for 
at least a couple of symbols needed to build 2.4.x/modules/proxy.


Norm


Re: httpd-trunk/modules/http2 gets a proxy

2016-02-12 Thread NormW

On 12/02/2016 9:13 PM, Stefan Eissing wrote:

Thanks. Added in r1729969.


Am 11.02.2016 um 21:52 schrieb NormW <no...@gknw.net>:





Thanks,
Norm



Re: httpd-trunk/modules/http2 gets a proxy

2016-02-12 Thread NormW

G/M And the start of yje weekend.
On 13/02/2016 4:06 AM, Rainer Jung wrote:

Am 12.02.2016 um 11:13 schrieb Stefan Eissing:

Thanks. Added in r1729969.


Am 11.02.2016 um 21:52 schrieb NormW <no...@gknw.net>:



The .txt extension is a bogus extension added by my mailer I assume.


I got confused. Which file now builds mod_proxy_http2 on Netware? I
can't find it. Shouldn't we also need a
modules/http2/NWGNUmod_proxy_http2 file?
Yes. I avoided digging further into that until the new NWGNUmakefile and 
NWGNUmod_http2 got added. Once they're playing correctly, then will come 
NWGNUproxy_htp2 (?) which will also get added to the list in the 
NWGNUmakefile.


NetWare has a file name limitation that needs some regard; while the 
file system of later OS releases supports 'long file names' on the disk
, every loadable module has an internal 8 char name IIRC, and no two 
nlm's with the same 8 char name can be loaded at the same time. IIRC the 
8 chars is the first 8 chars of the modules disk file name. (Anyone who 
knows better please jump in here.)

Regards,

Rainer


HTH,
Norm



Re: httpd-trunk/modules/http2 gets a proxy

2016-02-11 Thread NormW

G/M Stefan,
I've specifically waited until sunup, which will hopefully mean I've got 
a clearer head.
A check of the NWGNUmakefile I sent yesterday DID have a number of bugs 
in it, all largely my fault, and some the result of doing an SVN Update 
to my local copy at the wrong time.

We'll call that the past.
Attached are the two files now guarenteed (I've checked them twice this 
morning) and can even guarentee mod_http2 builds nghtttp2 v1.7.1, which 
contains a Security Fix, CVE-2016-1544.


Process:

1. Delete /http2/NWGNUmakefile... it is not worth trying to do a diff 
against it, its innards have changed that much).


2. Add the two attached files herewith to /http2.

3. Job done.

As for making  things easier with a 'commit', I'd still make at least 
similar stuffups, whereas the ultimate 'easy' would be to wave goodbye 
to NetWare:


155+ build files and a few OS-specific files could go, your may be able 
to argue for something later than C89 as minimum standard, and so on...

...and I'm out of a job.
But equally, once changes in trunk settle out, building is fairly stable 
for months (years?) at a stretch, and there'd be nothing for my 'commit' 
to do.

Regard, and apologies for the transient trouble.
Norm


On 11/02/2016 8:31 PM, Stefan Eissing wrote:

Uhm, is there an unresolved conflict in the first file?

-Stefan

PS. You know, it *would* actually be easier if you had commit access... ;-)


Am 11.02.2016 um 03:09 schrieb NormW <no...@gknw.net>:

G/A Stefan,
My BBAADD. Until recently /http2 was home only to mod_http2, and to keep things 
automatic my NWGNUmakefile in there used a wildcard *.c to get the list of 
object files to build there. When the compile  failed due to added .c files I 
made a few tweaks to the NWGNU and it all linked without issue again so I 
forwarded the small tweaks. Closer reading of the list and the added .c 
revealed there are (at least) two modules now in /http2. This necessitated a 
change of the NWGNU to use a specified list of .c for a start, and removal of a 
couple of the patch lines I'd recently sent. Because other modules will be 
sharing the same dir I've renamed the original NWNUmakefile to NWGNUmod_http2 
and there is now a new NWGNUmakefile whose only job is to call the other NWGNU 
files that will eventually exist in the dir. (If all this sounds confusing it 
probably is, but by way of example see /proxy dir and note a NWGNUmakefile that 
contains a list of executables to build.)

If we are still speaking after explaining all that, the new files are attached, 
thus:
: NWGUmod_http2 which now has the list of /http2 files to build mod_http2;

: NWGNUmakefile which, FTM, has a list of modules to build, but I won't try to 
explain why the list has a double entry if there is only one (so far) to build.

Hopefully I will eventually work out a process to do away with this 
'additional' NWGNUmakefile, which would allow removal of quite a few from the 
source tree.
Apologies for the bother,
Norm

On 10/02/2016 10:34 PM, Stefan Eissing wrote:

Applied in r1729583. Thanks!


Am 08.02.2016 um 23:07 schrieb NormW <no...@gknw.net>:




G/M,
Recent additions to http-trunk/modules/http2 require the attached apatch to the 
http2 NetWare build file:

Index: modules/http2/NWGNUmakefile
===
--- modules/http2/NWGNUmakefile (revision 1729251)
+++ modules/http2/NWGNUmakefile (working copy)
@@ -34,6 +34,8 @@
$(NGH2SRC)/lib/ \
$(NGH2SRC)/lib/includes \
$(SERVER)/mpm/NetWare \
+   $(STDMOD)/proxy \
+   $(STDMOD)/ssl \
$(NWOS) \
$(EOLIST)

@@ -55,6 +57,7 @@
#
XLFLAGS += \
-L$(OBJDIR) \
+   -L../proxy \
$(EOLIST)

#
@@ -224,6 +227,7 @@
@libc.imp \
@aprlib.imp \
@httpd.imp \
+   @mod_proxy.imp \
$(EOLIST)

#


The first 2 extra lines allow the compiler to find extra headers, the 3rd 
allows the linker to locate mod_proxy.imp.

Please review and apply this if it seems reasonable.

Norm










#
# Declare the sub-directories to be built here
#

SUBDIRS = \
$(EOLIST)

#
# Get the 'head' of the build environment.  This includes default targets and
# paths to tools
#

include $(AP_WORK)/build/NWGNUhead.inc

#
# build this level's files

#
# Make sure all needed macro's are defined
#

#
# These directories will be at the beginning of the include list, followed by
# INCDIRS
#
XINCDIRS+= \
$(EOLIST)

#
# These flags will come after CFLAGS
#
XCFLAGS += \
$(EOLIST)

#
# These defines will come after DEFINES
#
XDEFINES+= \
$(EOLIST)

#
# These flags will be added to the link.opt file
#
XLFLAGS += \

Re: httpd-trunk/modules/http2 gets a proxy

2016-02-10 Thread NormW

G/A Stefan,
My BBAADD. Until recently /http2 was home only to mod_http2, and to keep 
things automatic my NWGNUmakefile in there used a wildcard *.c to get 
the list of object files to build there. When the compile  failed due to 
added .c files I made a few tweaks to the NWGNU and it all linked 
without issue again so I forwarded the small tweaks. Closer reading of 
the list and the added .c revealed there are (at least) two modules now 
in /http2. This necessitated a change of the NWGNU to use a specified 
list of .c for a start, and removal of a couple of the patch lines I'd 
recently sent. Because other modules will be sharing the same dir I've 
renamed the original NWNUmakefile to NWGNUmod_http2 and there is now a 
new NWGNUmakefile whose only job is to call the other NWGNU files that 
will eventually exist in the dir. (If all this sounds confusing it 
probably is, but by way of example see /proxy dir and note a 
NWGNUmakefile that contains a list of executables to build.)


If we are still speaking after explaining all that, the new files are 
attached, thus:

: NWGUmod_http2 which now has the list of /http2 files to build mod_http2;

: NWGNUmakefile which, FTM, has a list of modules to build, but I won't 
try to explain why the list has a double entry if there is only one (so 
far) to build.


Hopefully I will eventually work out a process to do away with this 
'additional' NWGNUmakefile, which would allow removal of quite a few 
from the source tree.

Apologies for the bother,
Norm

On 10/02/2016 10:34 PM, Stefan Eissing wrote:

Applied in r1729583. Thanks!


Am 08.02.2016 um 23:07 schrieb NormW <no...@gknw.net>:




G/M,
Recent additions to http-trunk/modules/http2 require the attached apatch to the 
http2 NetWare build file:

Index: modules/http2/NWGNUmakefile
===
--- modules/http2/NWGNUmakefile (revision 1729251)
+++ modules/http2/NWGNUmakefile (working copy)
@@ -34,6 +34,8 @@
$(NGH2SRC)/lib/ \
$(NGH2SRC)/lib/includes \
$(SERVER)/mpm/NetWare \
+   $(STDMOD)/proxy \
+   $(STDMOD)/ssl \
$(NWOS) \
$(EOLIST)

@@ -55,6 +57,7 @@
#
XLFLAGS += \
-L$(OBJDIR) \
+   -L../proxy \
$(EOLIST)

#
@@ -224,6 +227,7 @@
@libc.imp \
@aprlib.imp \
@httpd.imp \
+   @mod_proxy.imp \
$(EOLIST)

#


The first 2 extra lines allow the compiler to find extra headers, the 3rd 
allows the linker to locate mod_proxy.imp.

Please review and apply this if it seems reasonable.

Norm





#
# Declare the sub-directories to be built here
#

SUBDIRS = \
$(EOLIST)

#
# Get the 'head' of the build environment.  This includes default targets and
# paths to tools
#

include $(AP_WORK)/build/NWGNUhead.inc

#
# build this level's files

#
# Make sure all needed macro's are defined
#

#
# These directories will be at the beginning of the include list, followed by
# INCDIRS
#
XINCDIRS+= \
<<<<<<< .mine
===
$(APR)/include \
$(APRUTIL)/include \
$(SRC)/include \
$(NGH2SRC)/lib/ \
$(NGH2SRC)/lib/includes \
$(SERVER)/mpm/NetWare \
$(STDMOD)/proxy \
$(STDMOD)/ssl \
$(NWOS) \
>>>>>>> .r1729754
$(EOLIST)

#
# These flags will come after CFLAGS
#
XCFLAGS += \
$(EOLIST)

#
# These defines will come after DEFINES
#
XDEFINES+= \
$(EOLIST)

#
# These flags will be added to the link.opt file
#
XLFLAGS += \
-L../proxy \
$(EOLIST)

#
# These values will be appended to the correct variables based on the value of
# RELEASE
#
ifeq "$(RELEASE)" "debug"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "noopt"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "release"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

#
# These are used by the link target if an NLM is being g

Re: Netware proxy makefiles and USE_STDSOCKETS

2016-02-08 Thread NormW

A Sunny Afternoon Rainer,
On 9/02/2016 10:31 AM, Rainer Jung wrote:
I note the Windock imports are back where needed and all of /proxy now 
builds again without issue.


As for /http2, ir seems I was rather hasty myself. My original NWGNU for 
http2 assumed a wildcard list of all .c in the directory for mod_http2, 
which I now find is incorrect, so I've converted (as temp measure) to a 
specified list of files, as it seems there could be multiple modules in 
the http2 dir. However, Gregg Smith has asked the question of where the 
http2 proxy bits should reside, so I will await a definitive answer to 
that first.

Norm


Hi Norm,

Am 08.02.2016 um 22:45 schrieb NormW:

G/M Brad, G/M Rainer
On 8/02/2016 9:17 AM, Brad Nicholes wrote:

Rainer,
 It has actually been quite a while since I have been on this
list.  I did most of the initial Netware port of Apache.  Apache for
Netware uses its own implementation of Winsock as the socket layer.
This is the reason why the make files specify not to use the standard
sockets.  The Netware version of Winsock also has it's own
implementation of SSL which is why most of the time mod_ssl is not
used by Apache for Netware.  Basically, the Apache for Netware make
files should always be building with Winsock.

thanks,
Brad

A flashback to earlier days. Pleased you're still about.

Rainer,
Just updated from httpd-trunk and now get in proxy:


That full output was useful. I had moved the import to the main
NWGNUmakefile, but the module specific ones didn't append to the list of
import files but instead overwrote it. Now that I can see from your
list, which of the many proxy modules actually need those imports, I
decided to move the import back into the individual module makefiles.

I removed them afterwards for mod_proxy_express and mod_proxy_hcheck,
because those seem to not have link errors without those imports.

Finally I adjusted the comment like you suggested. One brain-twiser less.

Hopefully we are good to go now.

Regards,

Rainer


Building D:/Projects/svn/httpd-trunk/modules/proxy
Calling NWGNUproxy
LINK obj_release/proxy.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_htonl in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_inet_ntoa in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_htonl in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_inet_ntoa in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_inet_ntoa in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_htonl in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup in
#   libprews.o

Errors caused tool to abort.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target
'obj_release/proxy.nlm' failed
make[3]: *** [obj_release/proxy.nlm] Error 1
make[3]: Target 'default' not remade because of errors.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target
'obj_release/proxy.nlm' failed
make[2]: *** [obj_release/proxy.nlm] Error 2



Calling NWGNUproxyftp
GEN  obj_release/proxyftp_cc.opt
CC   mod_proxy_ftp.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxyftp_link.opt
LINK obj_release/proxyftp.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_htons in
#   mod_proxy_ftp.o
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup in
#   libprews.o

Errors caused tool to abort.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target
'obj_release/proxyftp.nlm' failed
make[3]: *** [obj_release/proxyftp.nlm] Error 1
make[3]: Target 'default' not remade because of errors.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target
'obj_release/proxyftp.nlm' failed
make[2]: *** [obj_release/proxyftp.nlm] Error 2
Calling NWGNUproxyhtp
GEN  obj_release/proxyhtp_cc.opt
CC   mod_proxy_http.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxyhtp_link.opt
LINK obj_release/proxyhtp.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup in
#   libprews.o

Errors caused tool to abort.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target
'obj_release/proxyhtp.nlm' failed
make[3]: *** [obj_release/proxyhtp.nlm] Error 1
make[3]: Target 'default' not remade because of errors.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target
'obj_release/proxyhtp.nlm' failed
make[2]: *** [obj_release/proxyhtp.nlm] Error 2
Calling NWGNUproxybalancer
GEN  obj_release/proxybalancer_cc.opt
CC   mod_proxy_balancer.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxybalancer_link.opt
LINK obj_release/proxybalancer.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup

Re: Netware proxy makefiles and USE_STDSOCKETS

2016-02-08 Thread NormW

G/M Brad, G/M Rainer
On 8/02/2016 9:17 AM, Brad Nicholes wrote:

Rainer,
 It has actually been quite a while since I have been on this list.  I did 
most of the initial Netware port of Apache.  Apache for Netware uses its own 
implementation of Winsock as the socket layer.  This is the reason why the make 
files specify not to use the standard sockets.  The Netware version of Winsock 
also has it's own implementation of SSL which is why most of the time mod_ssl 
is not used by Apache for Netware.  Basically, the Apache for Netware make 
files should always be building with Winsock.

thanks,
Brad

A flashback to earlier days. Pleased you're still about.

Rainer,
Just updated from httpd-trunk and now get in proxy:

Building D:/Projects/svn/httpd-trunk/modules/proxy
Calling NWGNUproxy
LINK obj_release/proxy.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_htonl in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_inet_ntoa in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_htonl in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_inet_ntoa in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_inet_ntoa in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_htonl in
#   proxy_util.o
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup in
#   libprews.o

Errors caused tool to abort.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 
'obj_release/proxy.nlm' failed
make[3]: *** [obj_release/proxy.nlm] Error 1
make[3]: Target 'default' not remade because of errors.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 
'obj_release/proxy.nlm' failed
make[2]: *** [obj_release/proxy.nlm] Error 2



Calling NWGNUproxyftp
GEN  obj_release/proxyftp_cc.opt
CC   mod_proxy_ftp.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxyftp_link.opt
LINK obj_release/proxyftp.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WS2_32_htons in
#   mod_proxy_ftp.o
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup in
#   libprews.o

Errors caused tool to abort.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 
'obj_release/proxyftp.nlm' failed
make[3]: *** [obj_release/proxyftp.nlm] Error 1
make[3]: Target 'default' not remade because of errors.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 
'obj_release/proxyftp.nlm' failed
make[2]: *** [obj_release/proxyftp.nlm] Error 2
Calling NWGNUproxyhtp
GEN  obj_release/proxyhtp_cc.opt
CC   mod_proxy_http.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxyhtp_link.opt
LINK obj_release/proxyhtp.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup in
#   libprews.o

Errors caused tool to abort.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 
'obj_release/proxyhtp.nlm' failed
make[3]: *** [obj_release/proxyhtp.nlm] Error 1
make[3]: Target 'default' not remade because of errors.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 
'obj_release/proxyhtp.nlm' failed
make[2]: *** [obj_release/proxyhtp.nlm] Error 2
Calling NWGNUproxybalancer
GEN  obj_release/proxybalancer_cc.opt
CC   mod_proxy_balancer.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxybalancer_link.opt
LINK obj_release/proxybalancer.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup in
#   libprews.o

Errors caused tool to abort.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 
'obj_release/proxybalancer.nlm' failed
make[3]: *** [obj_release/proxybalancer.nlm] Error 1
make[3]: Target 'default' not remade because of errors.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 
'obj_release/proxybalancer.nlm' failed
make[2]: *** [obj_release/proxybalancer.nlm] Error 2
Calling NWGNUproxyajp
GEN  obj_release/proxyajp_cc.opt
CC   mod_proxy_ajp.c
CC   ajp_header.c
CC   ajp_msg.c
CC   ajp_link.c
CC   ajp_utils.c
GEN  obj_release/proxyajp_link.opt
LINK obj_release/proxyajp.nlm
### mwldnlm Linker Error:
#   Undefined symbol: WSAStartup in
#   libprews.o
### mwldnlm Linker Error:
#   Undefined symbol: WSACleanup in
#   libprews.o

Errors caused tool to abort.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:214: recipe for target 
'obj_release/proxyajp.nlm' failed
make[3]: *** [obj_release/proxyajp.nlm] Error 1
make[3]: Target 'default' not remade because of errors.
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:321: recipe for target 
'obj_release/proxyajp.nlm' failed
make[2]: *** [obj_release/proxyajp.nlm] Error 2
Calling NWGNUproxyfcgi
GEN  obj_release/proxyfcgi_cc.opt
CC   mod_proxy_fcgi.c
CC   

httpd-trunk/modules/http2 gets a proxy

2016-02-08 Thread NormW

G/M,
Recent additions to http-trunk/modules/http2 require the attached apatch 
to the http2 NetWare build file:

Index: modules/http2/NWGNUmakefile
===
--- modules/http2/NWGNUmakefile (revision 1729251)
+++ modules/http2/NWGNUmakefile (working copy)
@@ -34,6 +34,8 @@
$(NGH2SRC)/lib/ \
$(NGH2SRC)/lib/includes \
$(SERVER)/mpm/NetWare \
+   $(STDMOD)/proxy \
+   $(STDMOD)/ssl \
$(NWOS) \
$(EOLIST)

@@ -55,6 +57,7 @@
 #
 XLFLAGS+= \
-L$(OBJDIR) \
+   -L../proxy \
$(EOLIST)

 #
@@ -224,6 +227,7 @@
@libc.imp \
@aprlib.imp \
@httpd.imp \
+   @mod_proxy.imp \
$(EOLIST)

 #


The first 2 extra lines allow the compiler to find extra headers, the 
3rd allows the linker to locate mod_proxy.imp.


Please review and apply this if it seems reasonable.

Norm
Index: modules/http2/NWGNUmakefile
===
--- modules/http2/NWGNUmakefile	(revision 1729251)
+++ modules/http2/NWGNUmakefile	(working copy)
@@ -34,6 +34,8 @@
 			$(NGH2SRC)/lib/ \
 			$(NGH2SRC)/lib/includes \
 			$(SERVER)/mpm/NetWare \
+			$(STDMOD)/proxy \
+			$(STDMOD)/ssl \
 			$(NWOS) \
 			$(EOLIST)
 
@@ -55,6 +57,7 @@
 #
 XLFLAGS		+= \
 			-L$(OBJDIR) \
+			-L../proxy \
 			$(EOLIST)
 
 #
@@ -224,6 +227,7 @@
 	@libc.imp \
 	@aprlib.imp \
 	@httpd.imp \
+	@mod_proxy.imp \
 	$(EOLIST)
 
 #


Re: Netware proxy makefiles and USE_STDSOCKETS

2016-02-07 Thread NormW

Rainer,
Apologies for the silence, but my major focus ATM is getting my place 
fixed up with the view to moving, but did have a go at a build with the 
USE_STDSOCKETS but something appears to be broken in apr-1.5, but have 
not yet had a chance to look into it. Medical visit this morning and if 
I get home soon enough will look further at it.


FTM,
Norm
PS If GK is reading this he might have a look at it, but don't hold your 
breath.




Re: Netware proxy makefiles and USE_STDSOCKETS

2016-02-06 Thread NormW

G/M Rainer
On 6/02/2016 10:28 PM, Rainer Jung wrote:

Hi there,

most of the proxy makefiles contain the following block:

# Don't link with Winsock if standard sockets are being used
ifndef USE_STDSOCKETS
FILES_nlm_Ximports += @ws2nlm.imp \
 $(EOLIST)
endif


But it is missing from:

- NWGNUproxycon
- NWGNUproxywstunnel
- all of the NWGNUproxylbm_... files

Is there a reason for this? Can it be added to all of them? Could it
then be moved to NWGNUmakefile instead?

Regards,

Rainer
At a Guess ,No. NetWare's default build is to use Novsockets, and if an 
nlm links without issue it should have no issue with then. Once the sun 
is up I will try a build using STD_SOCKETS=1 and see what if anything 
breaks. Being a 're;ative' newbie I'd I've if sockeys are these need to 
be attended, but the geral rule is if the compiler is happy go with the 
flow.


Will advise later today.

Norm



httpd-trunk/modules/proxy/

2016-02-06 Thread NormW

G/M,
httpd-trunk/modules/proxy/mod_proxy_hcheck.c needs an EOL style tweek if 
I'm not mistaken.


Norm.



Re: Proxy_Util needs another export.

2016-02-05 Thread NormW
/proxylbm_hb_link.opt
LINK obj_release/proxylbm_hb.nlm

Calling NWGNUproxylbm_req
GEN  obj_release/proxylbm_req_cc.opt
CC   balancers/mod_lbmethod_byrequests.c
GEN  obj_release/proxylbm_req_link.opt
LINK obj_release/proxylbm_req.nlm

Calling NWGNUproxylbm_traf
GEN  obj_release/proxylbm_traf_cc.opt
CC   balancers/mod_lbmethod_bytraffic.c
GEN  obj_release/proxylbm_traf_link.opt
LINK obj_release/proxylbm_traf.nlm

Calling NWGNUproxywstunnel
GEN  obj_release/proxywstunnel_cc.opt
CC   mod_proxy_wstunnel.c
GEN  obj_release/proxywstunnel_link.opt
LINK obj_release/proxywstunnel.nlm


A quirk of the Linker is to occasionally repeat error messages, so 
ignore duplcated missing symbols messages from the Linker.

Norm

On 5/02/2016 11:35 PM, Rainer Jung wrote:

Am 05.02.2016 um 12:14 schrieb NormW:

G/E 9.51pm in Oz
Updated http-trunk (last mod_proxy.h by Yann) and now get the following:


Building D:/Projects/svn/httpd-trunk/modules/proxy
Calling NWGNUproxy
GEN  obj_release/proxy_cc.opt
CC   mod_proxy.c
CC   proxy_util.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxy_link.opt
LINK obj_release/proxy.nlm
### mwldnlm Linker Error:
#   Undefined symbol: ap_proxy_connect_uds in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_create_req in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_detach_backend in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_fixups in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_create_req in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_detach_backend in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_fixups in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_request_status in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_request_status in
#   Export list

Errors caused tool to abort.

The error 'Export list says it is in the .imp file to be exported, but
the symbol can't be found. In proxy_util.c this function is preceeded by:

#if APR_HAVE_SYS_UN_H
/* TODO: In APR 2.x: Extend apr_sockaddr_t to possibly be a path !!! */
PROXY_DECLARE(apr_status_t) ap_proxy_connect_uds(apr_socket_t *sock,
 const char *uds_path,
 apr_pool_t *p)
{

In NetWare's case APR_HAVE_SYS_UN_H is 0. The major use of sys/un.h is
(AFAIK) defines for (IIRC) Unix sockets, which NetWare never got, but a
very abbreviated sys/un.h does exist - Novell never got around to
supporting all the features, so it's disabled in APR.


OK, understood. In this case I found it best to ad a stub impl for
platforms which don't support sys/un.h.


The proxy_* symbols not found are (IIRC) due to assumptions made in the
awk script that are needed to work for the server proper (ie if one
symbol is found assume others also present), but that assumption doesn't
work in proxy


I found a difference between the proxy hooks for which all three
symbols, proxy_hook_xxx, proxy_hook_get_xxx and proxy_run_xxx exist, and
those which do only have the run symbol. I then added a marker macro to
mod_proxy.h to allow the awk script to distinguish between them.

Can you please try again? I'm confident we won't have many more
iterations in front of us.

Regards,

Rainer





health_check for NetWare - httpd-trunk

2016-02-05 Thread NormW

G/A,
Now that the exports are sorted out (Thanks Rainer) can now build the 
proxy_health_check module for NetWare...


Herewith a patch, proxy_hcheck_netware_add.diff to add the nlm to the 
list of nlm's to build in the /proxy dir:

Index: modules/proxy/NWGNUmakefile
===
--- modules/proxy/NWGNUmakefile (revision 1728785)
+++ modules/proxy/NWGNUmakefile (working copy)
@@ -161,6 +161,7 @@
$(OBJDIR)/proxyfcgi.nlm \
$(OBJDIR)/proxyscgi.nlm \
$(OBJDIR)/proxyexpress.nlm \
+   $(OBJDIR)/proxyhcheck.nlm \
$(OBJDIR)/proxylbm_busy.nlm \
$(OBJDIR)/proxylbm_hb.nlm \
$(OBJDIR)/proxylbm_req.nlm \


and the build module itself: NWGNUproxyhcheck for modules/proxy dir.

This builds the nlm without issue using the current httpd-trunk.

Please review before commit.

Norm
Index: modules/proxy/NWGNUmakefile
===
--- modules/proxy/NWGNUmakefile	(revision 1728785)
+++ modules/proxy/NWGNUmakefile	(working copy)
@@ -161,6 +161,7 @@
 	$(OBJDIR)/proxyfcgi.nlm \
 	$(OBJDIR)/proxyscgi.nlm \
 	$(OBJDIR)/proxyexpress.nlm \
+	$(OBJDIR)/proxyhcheck.nlm \
 	$(OBJDIR)/proxylbm_busy.nlm \
 	$(OBJDIR)/proxylbm_hb.nlm \
 	$(OBJDIR)/proxylbm_req.nlm \
#
# Make sure all needed macro's are defined
#

#
# Get the 'head' of the build environment if necessary.  This includes default
# targets and paths to tools
#

ifndef EnvironmentDefined
include $(AP_WORK)/build/NWGNUhead.inc
endif

#
# These directories will be at the beginning of the include list, followed by
# INCDIRS
#
XINCDIRS+= \
$(APR)/include \
$(APRUTIL)/include \
$(SRC)/include \
$(STDMOD)/core \
$(NWOS) \
$(EOLIST)

#
# These flags will come after CFLAGS
#
XCFLAGS += \
$(EOLIST)

#
# These defines will come after DEFINES
#
XDEFINES+= \
$(EOLIST)

#
# These flags will be added to the link.opt file
#
XLFLAGS += \
$(EOLIST)

#
# These values will be appended to the correct variables based on the value of
# RELEASE
#
ifeq "$(RELEASE)" "debug"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "noopt"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

ifeq "$(RELEASE)" "release"
XINCDIRS+= \
$(EOLIST)

XCFLAGS += \
$(EOLIST)

XDEFINES+= \
$(EOLIST)

XLFLAGS += \
$(EOLIST)
endif

#
# These are used by the link target if an NLM is being generated
# This is used by the link 'name' directive to name the nlm.  If left blank
# TARGET_nlm (see below) will be used.
#
NLM_NAME= proxyhcheck

#
# This is used by the link '-desc ' directive.
# If left blank, NLM_NAME will be used.
#
NLM_DESCRIPTION = Apache $(VERSION_STR) Proxy Health Module

#
# This is used by the '-threadname' directive.  If left blank,
# NLM_NAME Thread will be used.
#
NLM_THREAD_NAME = Prxy Health Module

#
# If this is specified, it will override VERSION value in
# $(AP_WORK)/build/NWGNUenvironment.inc
#
NLM_VERSION =

#
# If this is specified, it will override the default of 64K
#
NLM_STACK_SIZE  = 8192


#
# If this is specified it will be used by the link '-entry' directive
#
NLM_ENTRY_SYM   =

#
# If this is specified it will be used by the link '-exit' directive
#
NLM_EXIT_SYM=

#
# If this is specified it will be used by the link '-check' directive
#
NLM_CHECK_SYM   =

#
# If these are specified it will be used by the link '-flags' directive
#
NLM_FLAGS   =

#
# If this is specified it will be linked in with the XDCData option in the def
# file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled
# by setting APACHE_UNIPROC in the environment
#
XDCDATA =

#
# If there is an NLM target, put it here
#
TARGET_nlm = $(OBJDIR)/$(NLM_NAME).nlm

#
# If there is an LIB target, put it here
#
TARGET_lib =

#
# These are the OBJ files needed to create the NLM target above.
# Paths must all use the '/' character
#
FILES_nlm_objs = \
$(OBJDIR)/mod_proxy_hcheck.o \
$(EOLIST)

#
# These are the LIB files needed to create the NLM target above.
# These will be added as a library command in the link.opt file.
#
FILES_nlm_libs = \
$(PRELUDE) \
$(EOLIST)

#
# These are the modules that the above NLM target depends on to load.
# These will be added as a 

Re: Proxy_Util needs another export.

2016-02-05 Thread NormW

G/E Rainer
Will test in next 10 minutes or so... The AP_PROXY_DECLARE ones are 
doable by build/make_nw_export.awk - proxy_* ones I think are trickier. 
But will advise in < 10 mins.

Norm

On 5/02/2016 11:23 AM, Rainer Jung wrote:

Hi Norm,

Am 31.01.2016 um 00:59 schrieb NormW:

G'Day,
Recent changes to mod_proxy_[connect/wstunnel] prompt another export
from proxy_util. Wouldn't an awk script simplify symbol extraction from
proxy_util and obviate the need for tweaking manual lists?


I added support for proxy to the already existing awk script in trunk.

Any chance you can try building trunk using those changes, so I can
propose for backport?

The changes were:

- r1728569: add some missing symbols to the old style makefile
- r1728572: add PROXY_DECLARE_DATA
- r1728573: add support for proxy to build/make_nw_export.awk
- r1728574: use the awk script instead of the hand written list

Regards,

Rainer





Re: Proxy_Util needs another export.

2016-02-05 Thread NormW

G/ Rainer,
In summary, the only /proxy/ nlm to build was serf. (The good news)
All other proxy items failed with:


### mwccnlm Compiler:
#  In: mod_proxy.h
#From: mod_proxy_wstunnel.c
# -
#  95:  PROXY_DECLARE_DATA extern proxy_hcmethods_t proxy_hcmethods[];
#   Error: ^^
#   declaration syntax error
#   Too many errors printed, aborting program


This may be due to a limitation of the compiler due to the version of C 
that is supported by it or some other issue with the macro expansion.
Under the default c-flags the compiler will abort on the first error, 
other issues MAY be lurking further thru the compile process.

Norm

On 5/02/2016 11:23 AM, Rainer Jung wrote:

Hi Norm,

Am 31.01.2016 um 00:59 schrieb NormW:

G'Day,
Recent changes to mod_proxy_[connect/wstunnel] prompt another export
from proxy_util. Wouldn't an awk script simplify symbol extraction from
proxy_util and obviate the need for tweaking manual lists?


I added support for proxy to the already existing awk script in trunk.

Any chance you can try building trunk using those changes, so I can
propose for backport?

The changes were:

- r1728569: add some missing symbols to the old style makefile
- r1728572: add PROXY_DECLARE_DATA
- r1728573: add support for proxy to build/make_nw_export.awk
- r1728574: use the awk script instead of the hand written list

Regards,

Rainer





Re: Proxy_Util needs another export.

2016-02-05 Thread NormW

G/E 9.51pm in Oz
Updated http-trunk (last mod_proxy.h by Yann) and now get the following:


Building D:/Projects/svn/httpd-trunk/modules/proxy
Calling NWGNUproxy
GEN  obj_release/proxy_cc.opt
CC   mod_proxy.c
CC   proxy_util.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxy_link.opt
LINK obj_release/proxy.nlm
### mwldnlm Linker Error:
#   Undefined symbol: ap_proxy_connect_uds in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_create_req in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_detach_backend in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_fixups in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_create_req in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_detach_backend in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_fixups in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_get_request_status in
#   Export list
### mwldnlm Linker Error:
#   Undefined symbol: proxy_hook_request_status in
#   Export list

Errors caused tool to abort.
The error 'Export list says it is in the .imp file to be exported, but 
the symbol can't be found. In proxy_util.c this function is preceeded by:

#if APR_HAVE_SYS_UN_H
/* TODO: In APR 2.x: Extend apr_sockaddr_t to possibly be a path !!! */
PROXY_DECLARE(apr_status_t) ap_proxy_connect_uds(apr_socket_t *sock,
 const char *uds_path,
 apr_pool_t *p)
{
In NetWare's case APR_HAVE_SYS_UN_H is 0. The major use of sys/un.h is 
(AFAIK) defines for (IIRC) Unix sockets, which NetWare never got, but a 
very abbreviated sys/un.h does exist - Novell never got around to 
supporting all the features, so it's disabled in APR.


The proxy_* symbols not found are (IIRC) due to assumptions made in the 
awk script that are needed to work for the server proper (ie if one 
symbol is found assume others also present), but that assumption doesn't 
work in proxy


On 5/02/2016 11:23 AM, Rainer Jung wrote:

Hi Norm,

Am 31.01.2016 um 00:59 schrieb NormW:

G'Day,
Recent changes to mod_proxy_[connect/wstunnel] prompt another export
from proxy_util. Wouldn't an awk script simplify symbol extraction from
proxy_util and obviate the need for tweaking manual lists?


I added support for proxy to the already existing awk script in trunk.

Any chance you can try building trunk using those changes, so I can
propose for backport?

The changes were:

- r1728569: add some missing symbols to the old style makefile
- r1728572: add PROXY_DECLARE_DATA
- r1728573: add support for proxy to build/make_nw_export.awk
- r1728574: use the awk script instead of the hand written list

Regards,

Rainer





Re: Proxy_Util needs another export.

2016-02-05 Thread NormW

Na! Thanks for your efforts!; the 'problem' has been skipped over for years.
Will 'update' and see what happens.
FTM.
Norm

On 6/02/2016 11:38 AM, Rainer Jung wrote:

Hi Norm,

Am 05.02.2016 um 22:58 schrieb NormW:

G/M Rainer,
I'd say this is getting much closer now:
The only symbol that doesn't seem to make it into mod_proxy's export
list is 'proxy_module' itself. The build log for /proxy looks like:


It should make it to mod_proxy's export list, because like in other
cases it is now part of modules/proxy/NWGNUproxy:

...
FILES_nlm_exports = \
 @mod_proxy.imp \
 proxy_module \
 $(EOLIST)
...

But it seems it doesn't get imported correctly and I hope I understood
why. In the proxy case, all accompanying mod_proxy_xxx modules need
access to the proxy_module symbol to read their config. In the case of
other modules from which I borrowed the export/import style, like cache
and dav, the accompanying modules do not need to access cache_module or
dav_module. So that symbol wasn't imported. Since we need it for all
proxy modules, I fixed the awk script to add it and hope this works now.

I agree, we are getting closer :)

Thanks a bunch for your patience.

Rainer




Re: Proxy_Util needs another export.

2016-02-05 Thread NormW

G/A Rainer
JACKPOT!

Building D:/Projects/svn/httpd-trunk/modules/proxy
Calling NWGNUproxy
GEN  obj_release/proxy_cc.opt
CC   mod_proxy.c
CC   proxy_util.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxy_link.opt
LINK obj_release/proxy.nlm

Calling NWGNUproxycon
GEN  obj_release/proxycon_cc.opt
CC   mod_proxy_connect.c
GEN  obj_release/proxycon_link.opt
LINK obj_release/proxycon.nlm

Calling NWGNUproxyftp
GEN  obj_release/proxyftp_cc.opt
CC   mod_proxy_ftp.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxyftp_link.opt
LINK obj_release/proxyftp.nlm

Calling NWGNUproxyhtp
GEN  obj_release/proxyhtp_cc.opt
CC   mod_proxy_http.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxyhtp_link.opt
LINK obj_release/proxyhtp.nlm

Calling NWGNUproxybalancer
GEN  obj_release/proxybalancer_cc.opt
CC   mod_proxy_balancer.c
GEN  obj_release/proxybalancer_link.opt
LINK obj_release/proxybalancer.nlm

Calling NWGNUproxyajp
GEN  obj_release/proxyajp_cc.opt
CC   mod_proxy_ajp.c
CC   ajp_header.c
CC   ajp_msg.c
CC   ajp_link.c
CC   ajp_utils.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxyajp_link.opt
LINK obj_release/proxyajp.nlm

Calling NWGNUproxyfcgi
GEN  obj_release/proxyfcgi_cc.opt
CC   mod_proxy_fcgi.c
CC   ../arch/netware/libprews.c
GEN  obj_release/proxyfcgi_link.opt
LINK obj_release/proxyfcgi.nlm

Calling NWGNUproxyscgi
GEN  obj_release/proxyscgi_cc.opt
CC   mod_proxy_scgi.c
GEN  obj_release/proxyscgi_link.opt
LINK obj_release/proxyscgi.nlm

Calling NWGNUproxyexpress
GEN  obj_release/proxyexpress_cc.opt
CC   mod_proxy_express.c
GEN  obj_release/proxyexpress_link.opt
LINK obj_release/proxyexpress.nlm

Calling NWGNUproxylbm_busy
GEN  obj_release/proxylbm_busy_cc.opt
CC   balancers/mod_lbmethod_bybusyness.c
GEN  obj_release/proxylbm_busy_link.opt
LINK obj_release/proxylbm_busy.nlm

Calling NWGNUproxylbm_hb
GEN  obj_release/proxylbm_hb_cc.opt
CC   balancers/mod_lbmethod_heartbeat.c
GEN  obj_release/proxylbm_hb_link.opt
LINK obj_release/proxylbm_hb.nlm

Calling NWGNUproxylbm_req
GEN  obj_release/proxylbm_req_cc.opt
CC   balancers/mod_lbmethod_byrequests.c
GEN  obj_release/proxylbm_req_link.opt
LINK obj_release/proxylbm_req.nlm

Calling NWGNUproxylbm_traf
GEN  obj_release/proxylbm_traf_cc.opt
CC   balancers/mod_lbmethod_bytraffic.c
GEN  obj_release/proxylbm_traf_link.opt
LINK obj_release/proxylbm_traf.nlm

Calling NWGNUproxywstunnel
GEN  obj_release/proxywstunnel_cc.opt
CC   mod_proxy_wstunnel.c
GEN  obj_release/proxywstunnel_link.opt
LINK obj_release/proxywstunnel.nlm

Congrats,
Norm


On 6/02/2016 11:38 AM, Rainer Jung wrote:

Hi Norm,

Am 05.02.2016 um 22:58 schrieb NormW:

G/M Rainer,
I'd say this is getting much closer now:
The only symbol that doesn't seem to make it into mod_proxy's export
list is 'proxy_module' itself. The build log for /proxy looks like:


It should make it to mod_proxy's export list, because like in other
cases it is now part of modules/proxy/NWGNUproxy:

...
FILES_nlm_exports = \
 @mod_proxy.imp \
 proxy_module \
 $(EOLIST)
...

But it seems it doesn't get imported correctly and I hope I understood
why. In the proxy case, all accompanying mod_proxy_xxx modules need
access to the proxy_module symbol to read their config. In the case of
other modules from which I borrowed the export/import style, like cache
and dav, the accompanying modules do not need to access cache_module or
dav_module. So that symbol wasn't imported. Since we need it for all
proxy modules, I fixed the awk script to add it and hope this works now.

I agree, we are getting closer :)

Thanks a bunch for your patience.

Rainer




More_ exports_for_ mod_proxy3.

2016-02-04 Thread NormW

Sigh,
This adds the exports for

proxy_hcmethods

and

ap_proxy_transfer_between_connections




Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy(revision 1728550)
+++ modules/proxy/NWGNUproxy(working copy)
@@ -256,6 +256,7 @@
@echo $(DL)# Exports of mod_proxy$(DL)> $@
@echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@
@echo $(DL) proxy_module,$(DL)>> $@
+   @echo $(DL) proxy_hcmethods,$(DL)>> $@
@echo $(DL) proxy_hook_canon_handler,$(DL)>> $@
@echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@
@echo $(DL) proxy_hook_get_post_request,$(DL)>> $@
@@ -321,6 +322,7 @@
@echo $(DL) ap_proxy_strncpy,$(DL)>> $@
@echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@
@echo $(DL) ap_proxy_trans_match,$(DL)>> $@
+   @echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@
@echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@
@echo $(DL) ap_proxy_worker_name,$(DL)>> $@
@echo $(DL) ap_proxyerror$(DL)>> $@


Regards
Norm
Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy	(revision 1728550)
+++ modules/proxy/NWGNUproxy	(working copy)
@@ -256,6 +256,7 @@
 	@echo $(DL)# Exports of mod_proxy$(DL)> $@
 	@echo $(DL) (AP$(VERSION_MAJMIN))$(DL)>> $@
 	@echo $(DL) proxy_module,$(DL)>> $@
+	@echo $(DL) proxy_hcmethods,$(DL)>> $@
 	@echo $(DL) proxy_hook_canon_handler,$(DL)>> $@
 	@echo $(DL) proxy_hook_get_canon_handler,$(DL)>> $@
 	@echo $(DL) proxy_hook_get_post_request,$(DL)>> $@
@@ -321,6 +322,7 @@
 	@echo $(DL) ap_proxy_strncpy,$(DL)>> $@
 	@echo $(DL) ap_proxy_sync_balancer,$(DL)>> $@
 	@echo $(DL) ap_proxy_trans_match,$(DL)>> $@
+	@echo $(DL) ap_proxy_transfer_between_connections,$(DL)>> $@
 	@echo $(DL) ap_proxy_valid_balancer_name,$(DL)>> $@
 	@echo $(DL) ap_proxy_worker_name,$(DL)>> $@
 	@echo $(DL) ap_proxyerror$(DL)>> $@


Proxy_Util needs another export.

2016-01-30 Thread NormW

G'Day,
Recent changes to mod_proxy_[connect/wstunnel] prompt another export 
from proxy_util. Wouldn't an awk script simplify symbol extraction from 
proxy_util and obviate the need for tweaking manual lists?


Diff also attached.

Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy(revision 1727764)
+++ modules/proxy/NWGNUproxy(working copy)
@@ -274,6 +274,7 @@
@echo $(DL) proxy_run_scheme_handler,$(DL)>> $@
@echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@
@echo $(DL) ap_proxy_backend_broke,$(DL)>> $@
+   @echo $(DL) ap_proxy_buckets_lifetime_transform$(DL)>> $@
@echo $(DL) ap_proxy_c2hex,$(DL)>> $@
@echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@
@echo $(DL) ap_proxy_canonenc,$(DL)>> $@


Could someone vet the proposed patch and apply as time allows.
Thx.
Norm
Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy	(revision 1727764)
+++ modules/proxy/NWGNUproxy	(working copy)
@@ -274,6 +274,7 @@
 	@echo $(DL) proxy_run_scheme_handler,$(DL)>> $@
 	@echo $(DL) ap_proxy_acquire_connection,$(DL)>> $@
 	@echo $(DL) ap_proxy_backend_broke,$(DL)>> $@
+	@echo $(DL) ap_proxy_buckets_lifetime_transform$(DL)>> $@
 	@echo $(DL) ap_proxy_c2hex,$(DL)>> $@
 	@echo $(DL) ap_proxy_canon_netloc,$(DL)>> $@
 	@echo $(DL) ap_proxy_canonenc,$(DL)>> $@


Additional export from proxy_util for NetWare build.

2016-01-23 Thread NormW

Greetings all for 2016.
Can someone with commit clout add the attached diff to httpd-trunk please?
TIA,
Norm
Index: modules/proxy/NWGNUproxy
===
--- modules/proxy/NWGNUproxy	(revision 1726451)
+++ modules/proxy/NWGNUproxy	(working copy)
@@ -312,6 +312,7 @@
 	@echo $(DL) ap_proxy_set_wstatus,$(DL)>> $@
 	@echo $(DL) ap_proxy_share_balancer,$(DL)>> $@
 	@echo $(DL) ap_proxy_share_worker,$(DL)>> $@
+	@echo $(DL) ap_proxy_show_hcmethod,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_connection_cleanup,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_disable,$(DL)>> $@
 	@echo $(DL) ap_proxy_ssl_enable,$(DL)>> $@


Re: Additional export from proxy_util for NetWare build.

2016-01-23 Thread NormW

On 24/01/2016 8:48 AM, Jim Jagielski wrote:

SendingNWGNUproxy
Transmitting file data .done
Committing transaction...
Committed revision 1726453.

All done! Thx!

Thank You!
N.



Re: Latest httpd-trunk updates....

2015-10-25 Thread NormW

On 25/10/2015 8:36 AM, Eric Covener wrote:

On Sat, Oct 24, 2015 at 5:21 PM, NormW <no...@gknw.net> wrote:

# 289:  if (conf->fully_qualify_redirect_url !=
AP_CORE_CONFIG_ON) {


Fixed now, didn't get rebuilt when I changed the name in the header.

As of this morning (Monday 8.35 AEST) see a clean build of httpd-trunk, 
includng nghttp2 1.4.0.


Norm



Latest httpd-trunk updates....

2015-10-24 Thread NormW

G/M from D/U,
Compiling httpd-trunk this morning after an svn update and note the 
followings...umoops

CC   server/protocol.c
### mwccnlm Compiler:
#File: server\protocol.c
# --
#2007:  for (int i = 0; i < conf->protocols->nelts; ++i) {
#   Error:   ^^^
#   expression syntax error
#   Too many errors printed, aborting program

User break, cancelled...
D:/Projects/svn/httpd-trunk/build/NWGNUtail.inc:125: recipe for target 
'obj_release/protocol.o' failed
make: *** [obj_release/protocol.o] Error 2
CC   server/provider.c

[snip,snip,snip...]

CC   server/util_script.c
### mwccnlm Compiler:
#File: server\util_script.c
# -
# 289:  if (conf->fully_qualify_redirect_url != AP_CORE_CONFIG_ON) {
#   Error:^^
#   'fully_qualify_redirect_url' is not a struct/union/class member
#   Too many errors printed, aborting program


The protocol.c oops needs the int i predeclared before the for-loop, the 
util_script.c is a bit more obscure.


HTH,
Norm


Re: A small wrinkle in latest r1707735 update to httpd-trunk\modules\http2\h2_util.c

2015-10-10 Thread NormW

On 11/10/2015 4:45 AM, Stefan Eissing wrote:

Ok, will add that. This is only in trunk. 2.4.x should compile for you.

Correct.
Norm.



Am 10.10.2015 um 13:31 schrieb NormW <no...@gknw.net>:

H,

CC   h2_worker.c
CC   h2_workers.c
CC   mod_http2.c
GEN  obj_release/mod_http2_link.opt
LINK obj_release/mod_http2.nlm
### mwldnlm Linker Error:
#   Undefined symbol: APR_BUCKET_IS_MMAP in
#   h2_util.o


In apr-util\include\apr_buckets.h:

#if APR_HAS_MMAP
/**
* Determine if a bucket is a MMAP bucket
* @param e The bucket to inspect
* @return true or false
*/
#define APR_BUCKET_IS_MMAP(e)((e)->type == _bucket_type_mmap)
#endif


:-( MMAP is (sadly) not a feature of NetWare. If the http2 experts assert the 
entire http2 module is a dud without MMAP support, I am not in a position or 
mind to oppose dropping NetWare 'support' for http2 entirely.

Alternatively, something like this in h2_util.c MAY be good enough :

}
++ #if APR_HAS_MMAP
else if (APR_BUCKET_IS_MMAP(b)) {
btype = "mmap";
}
++ #endif


Norm






A small wrinkle in latest r1707735 update to httpd-trunk\modules\http2\h2_util.c

2015-10-10 Thread NormW

H,

CC   h2_worker.c
CC   h2_workers.c
CC   mod_http2.c
GEN  obj_release/mod_http2_link.opt
LINK obj_release/mod_http2.nlm
### mwldnlm Linker Error:
#   Undefined symbol: APR_BUCKET_IS_MMAP in
#   h2_util.o


In apr-util\include\apr_buckets.h:

#if APR_HAS_MMAP
/**
 * Determine if a bucket is a MMAP bucket
 * @param e The bucket to inspect
 * @return true or false
 */
#define APR_BUCKET_IS_MMAP(e)((e)->type == _bucket_type_mmap)
#endif


:-( MMAP is (sadly) not a feature of NetWare. If the http2 experts 
assert the entire http2 module is a dud without MMAP support, I am not 
in a position or mind to oppose dropping NetWare 'support' for http2 
entirely.


Alternatively, something like this in h2_util.c MAY be good enough :

}
++ #if APR_HAS_MMAP
else if (APR_BUCKET_IS_MMAP(b)) {
btype = "mmap";
}
++ #endif


Norm


nghttp2 1.3.0 Build failure on GNUC macro now fixed

2015-09-10 Thread NormW

FYI,
nghttp2 1.3.0 build failure on a GNUC-specific macro has been replaced 
by more generic C in nghttp2 source and should be available in the next 
release.

Cheers,
N.


Re: r1701005 httpd-trunk\server\protocols.c

2015-09-04 Thread NormW

On 4/09/2015 5:02 PM, Gregg Smith wrote:

On 9/3/2015 9:23 PM, NormW wrote:

On 4/09/2015 9:05 AM, Yann Ylavic wrote:

On Fri, Sep 4, 2015 at 12:52 AM, NormW <no...@gknw.net> wrote:

Hi again,
Pushing passed previous problem, now arrive at:


D:\Projects\svn\httpd-trunk\server>svn diff
Index: protocol.c
===
--- protocol.c  (revision 1701142)
+++ protocol.c  (working copy)
@@ -1981,10 +1981,10 @@
  server_rec *s,
  apr_array_header_t
*choices)
  {
+apr_array_header_t *proposals;
  apr_pool_t *pool = r? r->pool : c->pool;
  core_server_config *conf =
ap_get_core_module_config(s->module_config);
  const char *protocol = NULL, *existing = ap_get_protocol(c);;
-apr_array_header_t *proposals;


Hm, aren't there other/many places in the httpd code where non
initialized variables are declared after the initialized ones?


I am hoping my compiler is at least consistent!
Not sure of what the rules are well enough to be an expert. I know
Windows can be as pedantic as mine. See if Gregg asks for a similar
change first, just to be sure.
Norm

No it does not build on VC9 as is.
.\server\protocol.c(1987) : error C2143: syntax error : missing ';'
before 'type'
.\server\protocol.c(1998) : error C2065: 'proposals' : undeclared
identifier

But fresh eyes see the ;; on the end of line 1986
const char *protocol = NULL, *existing = ap_get_protocol(c);;
Why this trips our compilers I have no idea but one ; should be sufficient.
fixed in r1701165

Works also for me; apologies for the red herring - likely to do with 
operating a computer before the first coffee of the day - never noticed 
the ';;' either.

Norm



r1701005 httpd-trunk\ssl\ssl_engine_kernel.c

2015-09-03 Thread NormW

Hi,
Now seeing this:

#File: ssl_engine_kernel.c
# 
#2215:   
client_protos);
#   Error:  
   ^
#   illegal implicit conversion from 'const unsigned char *' to
#   'const char *'


HTH,
Norm


r1701005 httpd-trunk\server\protocols.c

2015-09-03 Thread NormW

Hi again,
Pushing passed previous problem, now arrive at:

D:\Projects\svn\httpd-trunk\server>svn diff
Index: protocol.c
===
--- protocol.c  (revision 1701142)
+++ protocol.c  (working copy)
@@ -1981,10 +1981,10 @@
 server_rec *s,
 apr_array_header_t *choices)
 {
+apr_array_header_t *proposals;
 apr_pool_t *pool = r? r->pool : c->pool;
 core_server_config *conf = ap_get_core_module_config(s->module_config);
 const char *protocol = NULL, *existing = ap_get_protocol(c);;
-apr_array_header_t *proposals;

 if (APLOGcdebug(c)) {
 const char *p = apr_array_pstrcat(pool, conf->protocols, ',');


After a while it becomes second nature I believe.
Regards,
Norm



Re: r1701005 httpd-trunk\server\protocols.c

2015-09-03 Thread NormW

On 4/09/2015 9:05 AM, Yann Ylavic wrote:

On Fri, Sep 4, 2015 at 12:52 AM, NormW <no...@gknw.net> wrote:

Hi again,
Pushing passed previous problem, now arrive at:


D:\Projects\svn\httpd-trunk\server>svn diff
Index: protocol.c
===
--- protocol.c  (revision 1701142)
+++ protocol.c  (working copy)
@@ -1981,10 +1981,10 @@
  server_rec *s,
  apr_array_header_t *choices)
  {
+apr_array_header_t *proposals;
  apr_pool_t *pool = r? r->pool : c->pool;
  core_server_config *conf =
ap_get_core_module_config(s->module_config);
  const char *protocol = NULL, *existing = ap_get_protocol(c);;
-apr_array_header_t *proposals;


Hm, aren't there other/many places in the httpd code where non
initialized variables are declared after the initialized ones?


I am hoping my compiler is at least consistent!
Not sure of what the rules are well enough to be an expert. I know 
Windows can be as pedantic as mine. See if Gregg asks for a similar 
change first, just to be sure.

Norm



r1700777 - h2_stream.c

2015-09-02 Thread NormW

hi,
If not mistaken, on the latest httpd-trunk\modules\http2 update:


D:\Projects\svn\httpd-trunk\modules\http2>svn diff
Index: h2_session.c
===
--- h2_session.c(revision 1700915)
+++ h2_session.c(working copy)
@@ -259,8 +259,9 @@
const nghttp2_frame *frame, void *userp)
 {
 /* This starts a new stream. */
+int rv;
 (void)ngh2;
-int rv = stream_open((h2_session *)userp, frame->hd.stream_id);
+rv = stream_open((h2_session *)userp, frame->hd.stream_id);
 if (rv != NGHTTP2_ERR_CALLBACK_FAILURE) {
   /* on_header_cb or on_frame_recv_cb will dectect that stream
  does not exist and submit RST_STREAM. */


Otherwise compiles fine.
Norm


nghttp2 1.3.0 Released, but...

2015-09-01 Thread NormW

Hi,
I don't have a GitHub acct so hope no one will mind too much if I 
mention a couple of issues with the latest release of nghttp2 in the 
hope someone reading this and having a stake in http2 might be able to 
get something done about them;

Compiling : nghttp2_stream.c
..\lib\nghttp2_stream.c:36: declaration syntax error
..\lib\nghttp2_stream.c:36: undefined identifier 'nghttp2__mptr'
..\lib\nghttp2_stream.c:37: declaration syntax error
..\lib\nghttp2_stream.c:37: undefined identifier 'nghttp2__mptr'
..\lib\nghttp2_stream.c:861: declaration syntax error
..\lib\nghttp2_stream.c:861: undefined identifier 'nghttp2__mptr'

All three compilers I have find an issue starting at line 36,

and this has been around for a few releases:

--- nghttp2_submit.c.orig   2015-07-18 01:28:25.0 +1000
+++ nghttp2_submit.c2015-07-23 09:11:07.703125000 +1000
@@ -155,7 +155,7 @@
attach_stream);
 }

-int32_t ghnttp2_submit_trailer(nghttp2_session *session, int32_t stream_id,
+int nghttp2_submit_trailer(nghttp2_session *session, int32_t stream_id,
const nghttp2_nv *nva, size_t nvlen) {
   return submit_headers_shared_nva(session, NGHTTP2_FLAG_END_STREAM, stream_id,
NULL, nva, nvlen, NULL, NULL, 0);

The header prototype has tp2_submit_trailer() defined as int.
HTH,
Norm


Re: modules\http2 - structure initializing.

2015-08-27 Thread NormW

Yann, Sorry for the delay,
In simple terms, no; it is obvious the compiler (other people use other 
names) just sees that as a single item list, and complains about the 
syntax, regardless of how many items are in the list.


To be honest up to this point the compiler has been able to build 
everything (including all of httpd-trunk), and I proposed the small 
variations suggested in the diff on the grounds I (and evidently a few 
others) thought the suggested format was clearer.


However, it is not MY intention to limit in any way the functionality of 
tomorrows software solely so NetWare can make some show of trying to 
keep up. I've no idea how much more coding is needed for your project, 
and it may be that the next change or the 100th from now will be beyond 
the capabilities of what tools I have to use, and the race will be over 
for both the horse and the rider. Code as you see fit and if it 
eventuates that NetWare can't keep up, there's a lot of others who will.

Regards,
Norm

On 27/08/2015 8:29 PM, Yann Ylavic wrote:

Hi,

On Wed, Aug 26, 2015 at 12:53 AM, NormW no...@gknw.net wrote:

Herewith an svn diff that implements line-by-line initialization of three
structures (no idea if there's a technical term for it) in place of the list
method now used, e.g struct x = { , , , }.

I acknowledge upfront that 'my' somewhat dated compiler cannot handle the
list method, whereas the method portrayed in the diff is totally acceptable
to it.


Does it accept x = {0} still?

Regards,
Yann.





Re: modules\http2 - H2Engine directive?

2015-08-27 Thread NormW

Good evening,
Just a 'guess' Use a Protocols directive in one vhost that doesn't 
have h2 and dirivitives

Norm

On 27/08/2015 6:22 PM, jean-frederic clere wrote:

On 08/24/2015 10:06 AM, Stefan Eissing wrote:

Ni Norm,

yes, I removed it last week


If I want on VirtualHost with h2 support and another one without how
should I do that? (that is for demo purpose)

Cheers

Jean-Frederic




Re: modules\http2 - structure initializing.

2015-08-26 Thread NormW

G/Morning I think,
As Bill correctly guesses in a following mail, 'my' OS is NetWare and 
it's the standard compiler GK has been using for years to build Apache 
releases.


And that (Metrowerks CW) (AFAIK) is a C89 legend.

As I noted in my mail, I would hardly expect to hold back tomorrows 
http/2 protocol for so dated a horse as NetWare, and if you introduced 
coding or functions that NetWare's compiler doesn't support then it's 
'game-over' for the old war horse as far as http2 is concerned. For the 
moment however I merely suggest an opinion that initializing structures 
via a list of individual assignments is a better form to read the code 
than what is used at present, and a small, almost irrelevant side effect 
of which is that, for now at least, my compiler can keep building http2 
for NetWare, with no functional change to the code.

Regards,
Norm

On 27/08/2015 1:26 AM, Stefan Eissing wrote:

Hi Norm,

I think these type of assignments are part of the C90 standard. I am not sure 
we want to support a compiler that cannot cope with that, but I may be to green 
to know that. What platform is this on exactly?

//Stefan


Am 26.08.2015 um 00:53 schrieb NormW no...@gknw.net:

G/Morning,
Herewith an svn diff that implements line-by-line initialization of three 
structures (no idea if there's a technical term for it) in place of the list 
method now used, e.g struct x = { , , , }.

I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list 
method, whereas the method portrayed in the diff is totally acceptable to it.

However, I find the 'list' method less easier to 'read' as the struct elements 
are not 'visible', and one has to locate the struct definition itself to see 
what is being set to what. The method as illustrated by the patch is clearer 
(to my mind) and not affected by the order of the elements within the primary 
structure.

Lastly I noticed at least one case recently where my diff 'simplified' because 
a struct was changed to the _suggested_ method, with the primary struct being 
created by a memset(); perhaps that's a similar change needed in these cases 
also?

Regards,
Norm



cw_reqd_chgs.diff


green/bytes GmbH
Hafenweg 16, 48155 Münster, Germany
Phone: +49 251 2807760. Amtsgericht Münster: HRB5782







Re: modules\http2 - structure initializing.

2015-08-26 Thread NormW

Whinnnie!
(eq Equine 'Thanks')
On 27/08/2015 7:31 AM, Stefan Eissing wrote:

I will apply the proposed change tomorrow. keep the old horse happy.

//stefan


Am 26.08.2015 um 23:18 schrieb NormW no...@gknw.net:

G/Morning I think,
As Bill correctly guesses in a following mail, 'my' OS is NetWare and it's the 
standard compiler GK has been using for years to build Apache releases.

And that (Metrowerks CW) (AFAIK) is a C89 legend.

As I noted in my mail, I would hardly expect to hold back tomorrows http/2 
protocol for so dated a horse as NetWare, and if you introduced coding or 
functions that NetWare's compiler doesn't support then it's 'game-over' for the 
old war horse as far as http2 is concerned. For the moment however I merely 
suggest an opinion that initializing structures via a list of individual 
assignments is a better form to read the code than what is used at present, and 
a small, almost irrelevant side effect of which is that, for now at least, my 
compiler can keep building http2 for NetWare, with no functional change to the 
code.
Regards,
Norm


On 27/08/2015 1:26 AM, Stefan Eissing wrote:
Hi Norm,

I think these type of assignments are part of the C90 standard. I am not sure 
we want to support a compiler that cannot cope with that, but I may be to green 
to know that. What platform is this on exactly?

//Stefan


Am 26.08.2015 um 00:53 schrieb NormW no...@gknw.net:

G/Morning,
Herewith an svn diff that implements line-by-line initialization of three 
structures (no idea if there's a technical term for it) in place of the list 
method now used, e.g struct x = { , , , }.

I acknowledge upfront that 'my' somewhat dated compiler cannot handle the list 
method, whereas the method portrayed in the diff is totally acceptable to it.

However, I find the 'list' method less easier to 'read' as the struct elements 
are not 'visible', and one has to locate the struct definition itself to see 
what is being set to what. The method as illustrated by the patch is clearer 
(to my mind) and not affected by the order of the elements within the primary 
structure.

Lastly I noticed at least one case recently where my diff 'simplified' because 
a struct was changed to the _suggested_ method, with the primary struct being 
created by a memset(); perhaps that's a similar change needed in these cases 
also?

Regards,
Norm



cw_reqd_chgs.diff


green/bytes GmbH
Hafenweg 16, 48155 Münster, Germany
Phone: +49 251 2807760. Amtsgericht Münster: HRB5782






modules\http2 - structure initializing.

2015-08-25 Thread NormW

G/Morning,
Herewith an svn diff that implements line-by-line initialization of 
three structures (no idea if there's a technical term for it) in place 
of the list method now used, e.g struct x = { , , , }.


I acknowledge upfront that 'my' somewhat dated compiler cannot handle 
the list method, whereas the method portrayed in the diff is totally 
acceptable to it.


However, I find the 'list' method less easier to 'read' as the struct 
elements are not 'visible', and one has to locate the struct definition 
itself to see what is being set to what. The method as illustrated by 
the patch is clearer (to my mind) and not affected by the order of the 
elements within the primary structure.


Lastly I noticed at least one case recently where my diff 'simplified' 
because a struct was changed to the _suggested_ method, with the primary 
struct being created by a memset(); perhaps that's a similar change 
needed in these cases also?


Regards,
Norm



Index: h2_mplx.c
===
--- h2_mplx.c	(revision 1697659)
+++ h2_mplx.c	(working copy)
@@ -436,7 +436,12 @@
 }
 status = apr_thread_mutex_lock(m-lock);
 if (APR_SUCCESS == status) {
-update_ctx ctx = { cb, cb_ctx, 0 };
+
+update_ctx ctx;
+ctx.cb  = cb;
+ctx.cb_ctx  = cb_ctx;
+ctx.streams_updated = 0;
+
 status = APR_EAGAIN;
 h2_io_set_iter(m-stream_ios, update_window, ctx);
 
Index: h2_session.c
===
--- h2_session.c	(revision 1697659)
+++ h2_session.c	(working copy)
@@ -852,7 +852,11 @@
 AP_DEBUG_ASSERT(session);
 if (!h2_stream_set_is_empty(session-streams)
  session-mplx  !session-aborted) {
-resume_ctx ctx = { session, 0 };
+
+resume_ctx ctx;
+ctx.session  = session;
+ctx.resume_count = 0;
+
 /* Resume all streams where we have data in the out queue and
  * which had been suspended before. */
 h2_stream_set_iter(session-streams, resume_on_data, ctx);
Index: h2_response.c
===
--- h2_response.c	(revision 1697659)
+++ h2_response.c	(working copy)
@@ -202,7 +202,14 @@
 {
 size_t n;
 h2_ngheader *h;
-nvctx_t ctx = { NULL, 1, strlen(status) + 1, 0, NULL, pool };
+
+nvctx_t ctx;
+ctx.nv   = NULL;
+ctx.nvlen= 1;
+ctx.nvstrlen = strlen(status) + 1;
+ctx.offset   = 0;
+ctx.strbuf   = NULL;
+ctx.pool = pool;
 
 apr_table_do(count_header, ctx, header, NULL);
 


Re: modules\http2 - H2Engine directive?

2015-08-24 Thread NormW

Hi Stefan,
Thanks for the clarification!
A text search for 'H2Engine' shows it in a number of other languages 
under '.\manual\mod\directives', 'manual\mod\quickreference' and in 
'\docs\conf\extra\httpd-h2.conf.in'.

HTH,
Thanks,
Norm
On 24/08/2015 6:06 PM, Stefan Eissing wrote:

Ni Norm,

yes, I removed it last week and though I removed it from the doc xml as well. 
Seems I forgot the Readme. Will fix soon. Sorry for any confusion.

//Stefan


Am 24.08.2015 um 05:53 schrieb NormW no...@gknw.net:

Hi,
The 'H2Engine on' directive is identified in the Readme.h2 as the most 
important, but except for a number of 'Directive' lists and a h2.conf template 
file. this appears to be unknown within the http2 C source or the 'manual'(en) 
reference for mod_h2. Is this directive something of the past or future perhaps?
Regards,
Norm


green/bytes GmbH
Hafenweg 16, 48155 Münster, Germany
Phone: +49 251 2807760. Amtsgericht Münster: HRB5782







modules\http2 - H2Engine directive?

2015-08-23 Thread NormW

Hi,
The 'H2Engine on' directive is identified in the Readme.h2 as the most 
important, but except for a number of 'Directive' lists and a h2.conf 
template file. this appears to be unknown within the http2 C source or 
the 'manual'(en) reference for mod_h2. Is this directive something of 
the past or future perhaps?

Regards,
Norm


httpd-trunk\modules\http2\h2_session.c Mystery

2015-08-20 Thread NormW

Hi,
My compiler (no names) is vastly smarter than I at understanding C, but 
I can't tell if the following 'error' is drivel or just over my head;

#File: h2_session.c
# -
# 512:nghttp2_session_callbacks_set_on_invalid_frame_recv_callback(*pcb, 

on_invalid_frame_recv_cb)

#   Error:  
  ^
#   illegal implicit conversion
#   from 'int(struct nghttp2_session *, const union  *, 
@enum$24h2_session_c, void *)'
#   to   'int (*)(struct nghttp2_session *, const union  *, int, void *)'
Beyond this one 'blip', mod_h2 builds without issue, even the static 
build/link of nghttp2 lib.

TIA,
Norm




Re: httpd-trunk\modules\http2\h2_session.c Mystery

2015-08-20 Thread NormW

On 20/08/2015 8:39 PM, Yann Ylavic wrote:

Hi,

On Thu, Aug 20, 2015 at 11:56 AM, NormW no...@gknw.net wrote:


#File: h2_session.c
# -
#
512:nghttp2_session_callbacks_set_on_invalid_frame_recv_callback(*pcb,


on_invalid_frame_recv_cb)


#   Error:
^
#   illegal implicit conversion
#   from 'int(struct nghttp2_session *, const union  *,
@enum$24h2_session_c, void *)'
#   to   'int (*)(struct nghttp2_session *, const union  *, int, void *)'


It seems that the nghttp2_on_invalid_frame_recv_callback type requires
an int for its error parameter, not a nghttp2_error enum.

Does the attached patch helps?

Regards,
Yann.


G/Evening from Down Under,
Yes! Whatever the patch did (not yet looked) it worked; h2_session.c 
(and mod_h2 now compile/link without error.

If my compiler was a person I'd have to shout it a beer.
Regards,
Thanks for solving my Mystery.
Norm



C89-ify a recent change to h2_io_set.c

2015-08-19 Thread NormW

G/Evening (Is here)
A very small tweak is proposed for:
 httpd-trunk\modules\http2\h2_io_set.c
to keep the C89-ers in their seats.

The svn diff looks like:
Index: modules/http2/h2_io_set.c
===
--- modules/http2/h2_io_set.c   (revision 1696548)
+++ modules/http2/h2_io_set.c   (working copy)
@@ -67,12 +67,13 @@
 /* we keep the array sorted by id, so lookup can be done
  * by bsearch.
  */
+h2_io **ps;
 h2_io key;
 h2_io *pkey = key;

 memset(key, 0, sizeof(key));
 key.id = stream_id;
-h2_io **ps = bsearch(pkey, sp-list-elts, sp-list-nelts,
+ps = bsearch(pkey, sp-list-elts, sp-list-nelts,
  sp-list-elt_size, h2_stream_id_cmp);
 return ps? *ps : NULL;
 }

I won't bore anyone who can follow that module with a patch.
Cheers,
Norm



Building for NetWare /1 - For Your Consideration

2015-07-24 Thread NormW

Hi,
The NetWare Gurus seem to be on holidays. For your consideration:

Index: modules/cache/NWGNUsocachshmcb
===
--- modules/cache/NWGNUsocachshmcb  (revision 1692595)
+++ modules/cache/NWGNUsocachshmcb  (working copy)
@@ -28,6 +28,7 @@
$(SRC)/include \
$(SERVER)/mpm/netware \
$(NWOS) \
+   $(STDMOD)/generators \
$(EOLIST)

 #
Needed so NWGNUsocachshmcb can find mod_status.h
Index: modules/cache/NWGNUsocachdbm
===
--- modules/cache/NWGNUsocachdbm(revision 1692595)
+++ modules/cache/NWGNUsocachdbm(working copy)
@@ -28,6 +28,7 @@
$(SRC)/include \
$(SERVER)/mpm/netware \
$(NWOS) \
+   $(STDMOD)/generators \
$(EOLIST)

 #
Needed so NWGNUsocachdbm can find mod_status.h
Index: modules/dav/fs/mod_dav_fs.c
===
--- modules/dav/fs/mod_dav_fs.c (revision 1692595)
+++ modules/dav/fs/mod_dav_fs.c (working copy)
@@ -17,7 +17,9 @@
 #include httpd.h
 #include http_config.h
 #include apr_strings.h
+#if !defined(WIN32)  !defined(NETWARE)
 #include ap_config_auto.h
+#endif

 #include mod_dav.h
 #include repos.h
Needed so mod_dav_fs.c doesn't try to load ap_config_auto.h. AFAICT also 
not needed by WIN32.

Give me a prod if this format isn't useful.
Norm



httpd-trunk httpd.h APR_-AP_?

2011-09-15 Thread NormW

G/M,
Any chance these should be AP_DECLARE?

APR_DECLARE(void) ap_random_insecure_bytes(void *buf, apr_size_t size);

...

APR_DECLARE(apr_uint32_t) ap_random_pick(apr_uint32_t min, apr_uint32_t max);

Norm


CT oops?

2011-08-24 Thread NormW

G/E,
httpd-trunk\modules\ssl\ssl_engine_config.c (164):


mctx-pkp-cert_file = NULL;
mctx-pkp-cert_path = NULL;
mctx-pkp-ca_cert_file = NULL
mctx-pkp-certs = NULL;
mctx-pkp-ca_certs  = NULL;


Seems like there is a need of punctuation...

This one is trickier:
httpd-trunk\modules\ssl\mod_ssl.c (175):


### mwccnlm Compiler:
#File: mod_ssl.c
# --
# 175: ProxyMachineCertificateChainFile, 
ssl_cmd_SSLProxyMachineCertificateChainFile,  ((void *) 0),  128, TAKE1, SSL Proxy: file
#   Error:  
  ^
#   undefined identifier 'ssl_cmd_SSLProxyMachineCertificateChainFile'


an extern perhaps?

N.



Re: CT oops?

2011-08-24 Thread NormW

On 24/08/2011 6:42 PM, Plüm, Rüdiger, VF-Group wrote:


Fixed in r1161002.

Fixed in r1161005

Regards

Rüdiger

Confirm httpd-trunk now builds for NetWare without issue.
Thx.
Norm


Re: mod_ssl in trunk with OpenSSL 0.9.7 as a minimum requirement?

2011-08-11 Thread NormW

On 11/08/2011 3:12 PM, Kaspar Brand wrote:

Hi Gün,


perhaps we should just break compilation with a check in mod_ssl like:
#if OPENSSL_VERSION_NUMBER  0x0090700f
#error mod_ssl requires at least OpenSSL version 0.9.7f!
#endif


That's also fine with me, yes. Generally speaking, are there any rules
for handling this sort of version checks in httpd code (and when
aborting with #error is acceptable)?
No idea if a 'rule' but a search of httpd-trunk *.c for #error shows 12 
'samples' that might be worth a look.



(Nit: 0x0090700f is actually 0.9.7, 0.9.7f would be 0x0090706f.)


BTW. I admit that I did only tested compile, not runtime; though if
there are issues introduced with your changes they should come up with
all platforms, or?


I would expect so, yes - as long as OpenSSL behaves the same on NetWare
as on other platforms.



Kaspar

Norm


Re: Please test the build

2011-07-24 Thread NormW

Hi,
NetWare builds httpd-trunk against apr14/apu13 as in days past without 
any blips, including the LDAP-related pieces.

Good job!
Norm

On 25/07/2011 5:51 AM, Stefan Fritsch wrote:

Please test the recent changes of the module selections, especially if
you use non-Linux Unix flavors and/or non-default library locations.
Don't forget to do ./buildconf first.

The ldap revert also affects Windows/Netware. It would be nice if
someone could confirm that mod_ldap+mod_authnz_ldap build correctly on
these platforms.





ldap functions in/to apr

2011-07-24 Thread NormW

Hi,
A build of util_ldap showed 14 function calls that go direct to the 
NetWare ldap library, and was given a mind that all these needed was 
adding apr_ to the front and a wrapper in apu. However, discovered  that 
there exists already an apr_ldap_set_option() which is decidedly 
different from ldap_set_option()... which way ahead?


The 'missing' functions (for NetWare anyway):


 ldap_compare_s
 ldap_count_entries
 ldap_err2string
 ldap_first_entry
 ldap_get_dn
 ldap_get_values
 ldap_memfree
 ldap_msgfree
 ldap_parse_result
 ldap_result
 ldap_search_ext_s
 ldap_set_option
 ldap_simple_bind
 ldap_unbind_s
 ldap_value_free


Are these the only ones needed? Just these would get NetWare building 
directly to APU ldap at least. Any others would be a bonus.


Regards,
Norm


  1   2   >