View Issue Details

IDProjectCategoryView StatusLast Update
0000754Apache 2.x Feature Requestpublic2022-05-14 13:49
ReporterSteven Levine Assigned ToSteven Levine  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformOS2/eCSOSOS/2 or eComstationOS Version1.x 2.x or 4.5
Product Version2.4.x 
Summary0000754: Avoid need to add modules directory to LIBPATH or BEGINLIBPATH.
DescriptionSome modules import from other modules. This means that the modules directory must be in LIBPATH or BEGINLIBPATH or the module will fail to load.

One example is dav.dll and dav_fs.dll.

The proposed solution is to modify modules\core\mod_so.c so that if the initial apr_dso_load attempt fails,
and if the module's directory is not already in BEGINLIBPATH, then invoke DosSetExtLIBPATH to add the directory and retry the the apr_dso_load.

In some cases that load error can be avoided by adjusting the order of LoadModule statments, but the proposed enhancement eliminates the need for this effort.

TagsNo tags attached.

Activities

Steven Levine

2022-05-11 23:24

manager   ~0004225

The BEGINLIBPATH support seems to be working as intended. Starting with

  BEGINLIBPATH=D:\Internet\php7;
  LIBPATHSTRICT=

and no references to httpd or php in PATH or LIBPATH, running

  httpd -d.. -e debug

results in the following log entries written to stderr:

  [Wed May 11 16:11:09.241000 2022] [so:debug] [pid 5157:tid 1] mod_so.c(200): AH01580: update_beginlibpath set BEGINLIBPATH to D:\\Internet\\apache24\\modules;%BEGINLIBPATH%
  [Wed May 11 16:11:09.247000 2022] [so:debug] [pid 5157:tid 1] mod_so.c(347): AH01575: loaded module dav_fs_module from D:/Internet/apache24/modules/dav_fs.dll
  [Wed May 11 16:11:09.251000 2022] [so:debug] [pid 5157:tid 1] mod_so.c(347): AH01575: loaded module dav_module from D:/Internet/apache24/modules/dav.dll

dav_fs.dll requires dav.dll, which triggers the BEGINLIBPATH update. The dav_fs.dll load loads
both dav.dll and dav_fs.dll and dav.dll is already loaded when httpd requests the load.

See:
  https://github.com/psmedley/httpd-2.4-os2/pull/2
  https://github.com/psmedley/httpd-2.4-os2/pull/3
  https://github.com/psmedley/httpd-2.4-os2/pull/3
for the commit details.

Steven Levine

2022-05-14 13:49

manager   ~0004297

The new code seems to be working as intended.

Issue History

Date Modified Username Field Change
2022-05-08 02:27 Steven Levine New Issue
2022-05-08 02:27 Steven Levine Status new => assigned
2022-05-08 02:27 Steven Levine Assigned To => Steven Levine
2022-05-11 23:24 Steven Levine Note Added: 0004225
2022-05-14 13:49 Steven Levine Status assigned => resolved
2022-05-14 13:49 Steven Levine Resolution open => fixed
2022-05-14 13:49 Steven Levine Note Added: 0004297