dougm       01/04/02 00:37:13

  Modified:    src/modules/perl modperl_mgv.c
  Log:
  one more guess to resolve undefined Perl*Handlers
  
  Revision  Changes    Path
  1.12      +21 -2     modperl-2.0/src/modules/perl/modperl_mgv.c
  
  Index: modperl_mgv.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_mgv.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- modperl_mgv.c     2001/03/26 01:08:29     1.11
  +++ modperl_mgv.c     2001/04/02 07:37:12     1.12
  @@ -299,8 +299,27 @@
               }
           }
           else {
  -            MP_TRACE_h(MP_FUNC, "failed to load %s package\n", name);
  -            return 0;
  +            int ix = ap_rind(name, ':');
  +            stash = Nullhv;
  +
  +            /* last guess: Perl*Handler is a fully qualified subroutine name
  +             * but its module was not loaded
  +             */
  +            if (ix != -1) {
  +                /* split Foo::Bar::baz into Foo::Bar, baz */
  +                char *try_package = apr_pstrndup(p, name, ix-1);
  +                handler_name = apr_pstrdup(p, name + ix + 1);
  +
  +                if (modperl_require_module(aTHX_ try_package)) {
  +                    MP_TRACE_h(MP_FUNC, "loaded %s package\n", try_package);
  +                    stash = gv_stashpv(try_package, FALSE);
  +                }
  +            }
  +
  +            if (!stash) {
  +                MP_TRACE_h(MP_FUNC, "failed to load %s package\n", name);
  +                return 0;
  +            }
           }
       }
   
  
  
  

Reply via email to