ben         99/07/11 06:27:32

  Modified:    mpm/src/ap Makefile.tmpl
               mpm/src/include ap_hooks.h http_config.h http_request.h
               mpm/src/main http_config.c http_core.c http_request.c
               mpm/src/modules/mpm/prefork prefork.c
               mpm/src/modules/standard mod_access.c mod_alias.c mod_asis.c
                        mod_auth.c mod_autoindex.c mod_dir.c mod_env.c
                        mod_imap.c mod_log_config.c mod_mime.c
                        mod_negotiation.c mod_setenvif.c mod_userdir.c
  Added:       mpm/src/ap ap_hooks.c
  Log:
  Add topological sorting to hook ordering.
  
  Revision  Changes    Path
  1.6       +1 -1      apache-2.0/mpm/src/ap/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/ap/Makefile.tmpl,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Makefile.tmpl     1999/06/29 09:00:06     1.5
  +++ Makefile.tmpl     1999/07/11 13:27:23     1.6
  @@ -6,7 +6,7 @@
   LIB=libap.a
   
   OBJS=ap_cpystrn.o ap_execve.o ap_fnmatch.o ap_getpass.o ap_md5c.o 
ap_signal.o \
  -     ap_slack.o ap_snprintf.o ap_buf.o
  +     ap_slack.o ap_snprintf.o ap_buf.o ap_hooks.o
   
   .c.o:
        $(CC) -c $(INCLUDES) $(CFLAGS) $<
  
  
  
  1.1                  apache-2.0/mpm/src/ap/ap_hooks.c
  
  Index: ap_hooks.c
  ===================================================================
  #include "httpd.h"
  #include "ap_hooks.h"
  #include <assert.h>
  
  #if 0
  #define ap_palloc(pool,size)  malloc(size)
  #endif
  
  /* NB: This must echo the LINK_##name structure */
  typedef struct
      {
      void (*dummy)(void *);
      const char *szName;
      const char * const *aszPredecessors;
      const char * const *aszSuccessors;
      } TSortData;
  
  typedef struct tsort_
      {
      void *pData;
      int nPredecessors;
      struct tsort_ **ppPredecessors;
      struct tsort_ *pNext;
      } TSort;
  
  static TSort *prepare(pool *p,TSortData *pItems,int nItems)
      {
      TSort *pData=ap_palloc(p,nItems*sizeof *pData);
      int n;
  
      for(n=0 ; n < nItems ; ++n)
        {
        pData[n].nPredecessors=0;
        pData[n].ppPredecessors=ap_palloc(p,nItems*sizeof 
*pData[n].ppPredecessors);
        pData[n].pNext=NULL;
        pData[n].pData=&pItems[n];
        }
  
      for(n=0 ; n < nItems ; ++n)
        {
        int i,k;
  
        for(i=0 ; pItems[n].aszPredecessors && pItems[n].aszPredecessors[i] ; 
++i)
            for(k=0 ; k < nItems ; ++k)
                if(!strcmp(pItems[k].szName,pItems[n].aszPredecessors[i]))
                    {
                    int l;
                    for(l=0 ; l < pData[n].nPredecessors ; ++l)
                        if(pData[n].ppPredecessors[l] == &pData[k])
                            goto got_it;
                    pData[n].ppPredecessors[pData[n].nPredecessors]=&pData[k];
                    ++pData[n].nPredecessors;
                got_it:
                    break;
                    }
        for(i=0 ; pItems[n].aszSuccessors && pItems[n].aszSuccessors[i] ; ++i)
            for(k=0 ; k < nItems ; ++k)
                if(!strcmp(pItems[k].szName,pItems[n].aszSuccessors[i]))
                    {
                    int l;
                    for(l=0 ; l < pData[k].nPredecessors ; ++l)
                        if(pData[k].ppPredecessors[l] == &pData[n])
                            goto got_it2;
                    pData[k].ppPredecessors[pData[k].nPredecessors]=&pData[n];
                    ++pData[k].nPredecessors;
                got_it2:
                    break;
                    }
        }
  
      return pData;
      }
  
  static TSort *tsort(TSort *pData,int nItems)
      {
      int nTotal;
      TSort *pHead=NULL;
      TSort *pTail=NULL;
  
      for(nTotal=0 ; nTotal < nItems ; ++nTotal)
        {
        int n,i,k;
  
        for(n=0 ; ; ++n)
            {
            if(n == nItems)
                assert(0);      // we have a loop...
            if(!pData[n].pNext && !pData[n].nPredecessors)
                break;
            }
        if(pTail)
            pTail->pNext=&pData[n];
        else
            pHead=&pData[n];
        pTail=&pData[n];
        pTail->pNext=pTail;     // fudge it so it looks linked
        for(i=0 ; i < nItems ; ++i)
            for(k=0 ; pData[i].ppPredecessors[k] ; ++k)
                if(pData[i].ppPredecessors[k] == &pData[n])
                    {
                    --pData[i].nPredecessors;
                    break;
                    }
        }
      pTail->pNext=NULL;        // unfudge the tail
      return pHead;
      }
  
  static array_header *sort_hook(array_header *pHooks,const char *szName)
      {
      pool *p=ap_make_sub_pool(g_pHookPool);
      TSort *pSort;
      array_header *pNew;
      int n;
  
      pSort=prepare(p,(TSortData *)pHooks->elts,pHooks->nelts);
      tsort(pSort,pHooks->nelts);
      pNew=ap_make_array(g_pHookPool,pHooks->nelts,sizeof(TSortData));
      if(g_bDebugHooks)
        printf("Sorting %s:",szName);
      for(n=0 ; pSort ; pSort=pSort->pNext,++n)
        {
        TSortData *pHook;
        assert(n < pHooks->nelts);
        pHook=ap_push_array(pNew);
        memcpy(pHook,pSort->pData,sizeof *pHook);
        if(g_bDebugHooks)
            printf(" %s",pHook->szName);
        }
      if(g_bDebugHooks)
        fputc('\n',stdout);
      return pNew;
      }
  
  static array_header *s_aHooksToSort;
  typedef struct
      {
      const char *szHookName;
      array_header **paHooks;
      } HookSortEntry;
  
  void ap_hook_sort_register(const char *szHookName,array_header **paHooks)
      {
      HookSortEntry *pEntry;
  
      if(!s_aHooksToSort)
        s_aHooksToSort=ap_make_array(g_pHookPool,1,sizeof(HookSortEntry));
      pEntry=ap_push_array(s_aHooksToSort);
      pEntry->szHookName=szHookName;
      pEntry->paHooks=paHooks;
      }
  
  void ap_sort_hooks()
      {
      int n;
  
      for(n=0 ; n < s_aHooksToSort->nelts ; ++n)
        {
        HookSortEntry *pEntry=&((HookSortEntry *)s_aHooksToSort->elts)[n];
        *pEntry->paHooks=sort_hook(*pEntry->paHooks,pEntry->szHookName);
        }
      }
  
  void ap_show_hook(const char *szName,const char * const *aszPre,
                  const char * const *aszSucc)
      {
      int nFirst;
  
      printf("  Hooked %s",szName);
      if(aszPre)
        {
        fputs(" pre(",stdout);
        nFirst=1;
        while(*aszPre)
            {
            if(!nFirst)
                fputc(',',stdout);
            nFirst=0;
            fputs(*aszPre,stdout);
            ++aszPre;
            }
        fputc(')',stdout);
        }
      if(aszSucc)
        {
        fputs(" succ(",stdout);
        nFirst=1;
        while(*aszSucc)
            {
            if(!nFirst)
                fputc(',',stdout);
            nFirst=0;
            fputs(*aszSucc,stdout);
            ++aszSucc;
            }
        fputc(')',stdout);
        }
      fputc('\n',stdout);
      }
  
  #if 0
  void main()
      {
      const char *aszAPre[]={"b","c",NULL};
      const char *aszBPost[]={"a",NULL};
      const char *aszCPost[]={"b",NULL};
      TSortData t1[]=
        {
        { "a",aszAPre,NULL },
            { "b",NULL,aszBPost },
            { "c",NULL,aszCPost }
        };
      TSort *pResult;
  
      pResult=prepare(t1,3);
      pResult=tsort(pResult,3);
  
      for( ; pResult ; pResult=pResult->pNext)
        printf("%s\n",pResult->pData->szName);
      }
  #endif
  
  
  
  1.5       +19 -5     apache-2.0/mpm/src/include/ap_hooks.h
  
  Index: ap_hooks.h
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/include/ap_hooks.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ap_hooks.h        1999/07/10 18:58:17     1.4
  +++ ap_hooks.h        1999/07/11 13:27:24     1.5
  @@ -1,15 +1,16 @@
   #ifndef APACHE_AP_HOOKS_H
   #define APACHE_AP_HOOKS_H
   
  -extern int g_bDebugHooks;
  -
   #define DECLARE_HOOK(ret,name,args) \
   typedef ret HOOK_##name args; \
  -void ap_hook_##name(HOOK_##name *pf); \
  +void ap_hook_##name(HOOK_##name *pf,const char * const *aszPre,const char * 
const *aszSucc); \
   ret ap_run_##name args; \
   typedef struct _LINK_##name \
       { \
       HOOK_##name *pFunc; \
  +    const char *szName; \
  +    const char * const *aszPredecessors; \
  +    const char * const *aszSuccessors; \
       } LINK_##name;
   
   #define HOOK_STRUCT(members) \
  @@ -19,15 +20,21 @@
       array_header *link_##name;
   
   #define 
IMPLEMENT_HOOK_BASE(ret,rv_decl,sv,rv,name,args,args2,run_all,term1,term2,rv_final)
 \
  -void ap_hook_##name(HOOK_##name *pf) \
  +void ap_hook_##name(HOOK_##name *pf,const char * const *aszPre,const char * 
const *aszSucc) \
       { \
       LINK_##name *pHook; \
       if(!_hooks.link_##name) \
  +     { \
        _hooks.link_##name=ap_make_array(g_pHookPool,1,sizeof(LINK_##name)); \
  +     ap_hook_sort_register(#name,&_hooks.link_##name); \
  +     } \
       pHook=ap_push_array(_hooks.link_##name); \
       pHook->pFunc=pf; \
  +    pHook->aszPredecessors=aszPre; \
  +    pHook->aszSuccessors=aszSucc; \
  +    pHook->szName=g_szCurrentHookName; \
       if(g_bDebugHooks) \
  -     puts("  Hooked " #name); \
  +     ap_show_hook(#name,aszPre,aszSucc); \
       } \
   ret ap_run_##name args \
       { \
  @@ -55,5 +62,12 @@
        IMPLEMENT_HOOK_BASE(void,,,,name,args,args2,run_all,1,0,)
   
   extern pool *g_pHookPool;
  +extern int g_bDebugHooks;
  +extern const char *g_szCurrentHookName;
  +
  +void ap_hook_sort_register(const char *szHookName,array_header **aHooks);
  +void ap_sort_hooks(void);
  +void ap_show_hook(const char *szName,const char * const *aszPre,
  +               const char * const *aszSucc);
   
   #endif /* ndef(AP_HOOKS_H) */
  
  
  
  1.6       +0 -1      apache-2.0/mpm/src/include/http_config.h
  
  Index: http_config.h
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/include/http_config.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- http_config.h     1999/07/06 21:32:08     1.5
  +++ http_config.h     1999/07/11 13:27:24     1.6
  @@ -240,7 +240,6 @@
        * logger --- log a transaction.
        */
   
  -    int (*translate_handler) (request_rec *);
       int (*ap_check_user_id) (request_rec *);
       int (*auth_checker) (request_rec *);
       int (*access_checker) (request_rec *);
  
  
  
  1.2       +5 -0      apache-2.0/mpm/src/include/http_request.h
  
  Index: http_request.h
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/include/http_request.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- http_request.h    1999/06/18 18:39:28     1.1
  +++ http_request.h    1999/07/11 13:27:24     1.2
  @@ -58,6 +58,8 @@
   #ifndef APACHE_HTTP_REQUEST_H
   #define APACHE_HTTP_REQUEST_H
   
  +#include "ap_hooks.h"
  +
   #ifdef __cplusplus
   extern "C" {
   #endif
  @@ -109,6 +111,9 @@
   void ap_process_request(request_rec *);
   API_EXPORT(void) ap_die(int type, request_rec *r);
   #endif
  +
  +  /* Hooks */
  +DECLARE_HOOK(int,translate_name,(request_rec *))
   
   #ifdef __cplusplus
   }
  
  
  
  1.8       +4 -8      apache-2.0/mpm/src/main/http_config.c
  
  Index: http_config.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_config.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- http_config.c     1999/07/10 13:32:47     1.7
  +++ http_config.c     1999/07/11 13:27:25     1.8
  @@ -237,7 +237,6 @@
   
   {
   #define m(meth)      { XtOffsetOf(module,meth),#meth }
  -    m(translate_handler),
       m(ap_check_user_id),
       m(auth_checker),
       m(type_checker),
  @@ -277,7 +276,6 @@
    */
   static const int method_offsets[] =
   {
  -    XtOffsetOf(module, translate_handler),
       XtOffsetOf(module, ap_check_user_id),
       XtOffsetOf(module, auth_checker),
       XtOffsetOf(module, access_checker),
  @@ -288,7 +286,6 @@
   #define NMETHODS     (sizeof (method_offsets)/sizeof (method_offsets[0]))
   
   static struct {
  -    int translate_handler;
       int ap_check_user_id;
       int auth_checker;
       int access_checker;
  @@ -372,11 +369,6 @@
       return run_all ? OK : DECLINED;
   }
   
  -int ap_translate_name(request_rec *r)
  -{
  -    return run_method(r, offsets_into_method_ptrs.translate_handler, 0);
  -}
  -
   int ap_check_access(request_rec *r)
   {
       return run_method(r, offsets_into_method_ptrs.access_checker, 1);
  @@ -530,6 +522,7 @@
   }
   
   int g_bDebugHooks;
  +const char *g_szCurrentHookName;
   
   static void register_hooks(module *m)
       {
  @@ -540,6 +533,7 @@
            printf("Registering hooks for %s\n",m->name);
            g_bDebugHooks=1;
            }
  +     g_szCurrentHookName=m->name;
        m->register_hooks();
        }
       }
  @@ -723,6 +717,8 @@
        */
       for (m = ap_prelinked_modules; *m != NULL; m++)
           ap_add_module(*m);
  +
  +    ap_sort_hooks();
   }
   
   API_EXPORT(const char *) ap_find_module_name(module *m)
  
  
  
  1.4       +6 -2      apache-2.0/mpm/src/main/http_core.c
  
  Index: http_core.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_core.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- http_core.c       1999/07/06 21:32:10     1.3
  +++ http_core.c       1999/07/11 13:27:25     1.4
  @@ -2629,6 +2629,11 @@
       ap_open_logs(s, pconf);
   }
   
  +static void register_hooks()
  +    {
  +    ap_hook_translate_name(core_translate,NULL,NULL);
  +    }
  +
   API_VAR_EXPORT module core_module = {
       STANDARD20_MODULE_STUFF,
       NULL,                    /* pre_command_line */
  @@ -2642,12 +2647,11 @@
       merge_core_server_configs,       /* merge per-server config structures */
       core_cmds,                       /* command table */
       core_handlers,           /* handlers */
  -    core_translate,          /* translate_handler */
       NULL,                    /* check_user_id */
       NULL,                    /* check auth */
       do_nothing,                      /* check access */
       do_nothing,                      /* type_checker */
       NULL,                    /* pre-run fixups */
       NULL,                    /* logger */
  -    NULL                     /* register hooks */
  +    register_hooks           /* register hooks */
   };
  
  
  
  1.8       +8 -2      apache-2.0/mpm/src/main/http_request.c
  
  Index: http_request.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_request.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- http_request.c    1999/07/07 15:31:59     1.7
  +++ http_request.c    1999/07/11 13:27:25     1.8
  @@ -78,6 +78,12 @@
   #endif
   #include "fnmatch.h"
   
  +HOOK_STRUCT(
  +         HOOK_LINK(translate_name)
  +)
  +
  +IMPLEMENT_HOOK(int,translate_name,(request_rec *r),(r),0,OK,DECLINED)
  +
   /*****************************************************************
    *
    * Getting and checking directory configuration.  Also checks the
  @@ -772,7 +778,7 @@
           return rnew;
       }
   
  -    res = ap_translate_name(rnew);
  +    res = ap_run_translate_name(rnew);
       if (res) {
           rnew->status = res;
           return rnew;
  @@ -1114,7 +1120,7 @@
           return;
       }
   
  -    if ((access_status = ap_translate_name(r))) {
  +    if ((access_status = ap_run_translate_name(r))) {
           decl_die(access_status, "translate", r);
           return;
       }
  
  
  
  1.9       +0 -1      apache-2.0/mpm/src/modules/mpm/prefork/prefork.c
  
  Index: prefork.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/mpm/prefork/prefork.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- prefork.c 1999/07/06 21:32:15     1.8
  +++ prefork.c 1999/07/11 13:27:27     1.9
  @@ -3086,7 +3086,6 @@
       NULL,                    /* merge per-server config structures */
       prefork_cmds,            /* command table */
       NULL,                    /* handlers */
  -    NULL,                    /* translate_handler */
       NULL,                    /* check_user_id */
       NULL,                    /* check auth */
       NULL,                    /* check access */
  
  
  
  1.4       +0 -1      apache-2.0/mpm/src/modules/standard/mod_access.c
  
  Index: mod_access.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_access.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_access.c      1999/07/06 21:32:18     1.3
  +++ mod_access.c      1999/07/11 13:27:27     1.4
  @@ -400,7 +400,6 @@
       NULL,                    /* merge server config */
       access_cmds,
       NULL,                    /* handlers */
  -    NULL,                    /* filename translation */
       NULL,                    /* check_user_id */
       NULL,                    /* check auth */
       check_dir_access,                /* check access */
  
  
  
  1.4       +9 -2      apache-2.0/mpm/src/modules/standard/mod_alias.c
  
  Index: mod_alias.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_alias.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_alias.c       1999/07/06 21:32:19     1.3
  +++ mod_alias.c       1999/07/11 13:27:28     1.4
  @@ -65,6 +65,7 @@
   
   #include "httpd.h"
   #include "http_config.h"
  +#include "http_request.h"
   
   typedef struct {
       char *real;
  @@ -394,6 +395,13 @@
       return DECLINED;
   }
   
  +static void register_hooks()
  +    {
  +    static const char * const aszPre[]={ "mod_userdir.c",NULL };
  +
  +    ap_hook_translate_name(translate_alias_redir,aszPre,NULL);
  +    }
  +
   module MODULE_VAR_EXPORT alias_module =
   {
       STANDARD20_MODULE_STUFF,
  @@ -408,12 +416,11 @@
       merge_alias_config,              /* merge server configs */
       alias_cmds,                      /* command table */
       NULL,                    /* handlers */
  -    translate_alias_redir,   /* filename translation */
       NULL,                    /* check_user_id */
       NULL,                    /* check auth */
       NULL,                    /* check access */
       NULL,                    /* type_checker */
       fixup_redir,             /* fixups */
       NULL,                    /* logger */
  -    NULL                     /* register hooks */
  +    register_hooks           /* register hooks */
   };
  
  
  
  1.4       +0 -1      apache-2.0/mpm/src/modules/standard/mod_asis.c
  
  Index: mod_asis.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_asis.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_asis.c        1999/07/06 21:32:19     1.3
  +++ mod_asis.c        1999/07/11 13:27:28     1.4
  @@ -137,7 +137,6 @@
       NULL,                    /* merge per-server config structures */
       NULL,                    /* command table */
       asis_handlers,           /* handlers */
  -    NULL,                    /* translate_handler */
       NULL,                    /* check_user_id */
       NULL,                    /* check auth */
       NULL,                    /* check access */
  
  
  
  1.4       +0 -1      apache-2.0/mpm/src/modules/standard/mod_auth.c
  
  Index: mod_auth.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_auth.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_auth.c        1999/07/06 21:32:19     1.3
  +++ mod_auth.c        1999/07/11 13:27:28     1.4
  @@ -323,7 +323,6 @@
       NULL,                    /* merge server config */
       auth_cmds,                       /* command table */
       NULL,                    /* handlers */
  -    NULL,                    /* filename translation */
       authenticate_basic_user, /* check_user_id */
       check_user_access,               /* check auth */
       NULL,                    /* check access */
  
  
  
  1.4       +0 -1      apache-2.0/mpm/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===================================================================
  RCS file: 
/export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_autoindex.c   1999/07/06 21:32:20     1.3
  +++ mod_autoindex.c   1999/07/11 13:27:28     1.4
  @@ -1661,7 +1661,6 @@
       NULL,                    /* merge server config */
       autoindex_cmds,          /* command table */
       autoindex_handlers,              /* handlers */
  -    NULL,                    /* filename translation */
       NULL,                    /* check_user_id */
       NULL,                    /* check auth */
       NULL,                    /* check access */
  
  
  
  1.3       +0 -1      apache-2.0/mpm/src/modules/standard/mod_dir.c
  
  Index: mod_dir.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_dir.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- mod_dir.c 1999/07/06 21:32:20     1.2
  +++ mod_dir.c 1999/07/11 13:27:28     1.3
  @@ -235,7 +235,6 @@
       NULL,                    /* merge per-server config structures */
       dir_cmds,                        /* command table */
       dir_handlers,            /* handlers */
  -    NULL,                    /* translate_handler */
       NULL,                    /* check_user_id */
       NULL,                    /* check auth */
       NULL,                    /* check access */
  
  
  
  1.5       +0 -1      apache-2.0/mpm/src/modules/standard/mod_env.c
  
  Index: mod_env.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_env.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- mod_env.c 1999/07/06 21:32:21     1.4
  +++ mod_env.c 1999/07/11 13:27:28     1.5
  @@ -260,7 +260,6 @@
       NULL,                       /* merge server configs */
       env_module_cmds,            /* command table */
       NULL,                       /* handlers */
  -    NULL,                       /* filename translation */
       NULL,                       /* check_user_id */
       NULL,                       /* check auth */
       NULL,                       /* check access */
  
  
  
  1.4       +0 -1      apache-2.0/mpm/src/modules/standard/mod_imap.c
  
  Index: mod_imap.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_imap.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_imap.c        1999/07/06 21:32:21     1.3
  +++ mod_imap.c        1999/07/11 13:27:28     1.4
  @@ -908,7 +908,6 @@
       NULL,                       /* merge server config */
       imap_cmds,                  /* command table */
       imap_handlers,              /* handlers */
  -    NULL,                       /* filename translation */
       NULL,                       /* check_user_id */
       NULL,                       /* check auth */
       NULL,                       /* check access */
  
  
  
  1.4       +0 -1      apache-2.0/mpm/src/modules/standard/mod_log_config.c
  
  Index: mod_log_config.c
  ===================================================================
  RCS file: 
/export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_log_config.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_log_config.c  1999/07/06 21:32:22     1.3
  +++ mod_log_config.c  1999/07/11 13:27:29     1.4
  @@ -1118,7 +1118,6 @@
       merge_config_log_state,     /* merge server config */
       config_log_cmds,            /* command table */
       NULL,                       /* handlers */
  -    NULL,                       /* filename translation */
       NULL,                       /* check_user_id */
       NULL,                       /* check auth */
       NULL,                       /* check access */
  
  
  
  1.3       +0 -1      apache-2.0/mpm/src/modules/standard/mod_mime.c
  
  Index: mod_mime.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_mime.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- mod_mime.c        1999/07/06 21:32:22     1.2
  +++ mod_mime.c        1999/07/11 13:27:29     1.3
  @@ -391,7 +391,6 @@
       NULL,                    /* merge per-server config structures */
       mime_cmds,                       /* command table */
       NULL,                    /* handlers */
  -    NULL,                    /* translate_handler */
       NULL,                    /* check_user_id */
       NULL,                    /* check auth */
       NULL,                    /* check access */
  
  
  
  1.4       +0 -1      apache-2.0/mpm/src/modules/standard/mod_negotiation.c
  
  Index: mod_negotiation.c
  ===================================================================
  RCS file: 
/export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_negotiation.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_negotiation.c 1999/07/06 21:32:22     1.3
  +++ mod_negotiation.c 1999/07/11 13:27:29     1.4
  @@ -2738,7 +2738,6 @@
       NULL,                       /* merge server config */
       negotiation_cmds,           /* command table */
       negotiation_handlers,       /* handlers */
  -    NULL,                       /* filename translation */
       NULL,                       /* check_user_id */
       NULL,                       /* check auth */
       NULL,                       /* check access */
  
  
  
  1.4       +1 -2      apache-2.0/mpm/src/modules/standard/mod_setenvif.c
  
  Index: mod_setenvif.c
  ===================================================================
  RCS file: 
/export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_setenvif.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_setenvif.c    1999/07/06 21:32:23     1.3
  +++ mod_setenvif.c    1999/07/11 13:27:29     1.4
  @@ -402,7 +402,7 @@
   
   static void register_hooks()
       {
  -    ap_hook_post_read_request(match_headers);
  +    ap_hook_post_read_request(match_headers,NULL,NULL);
       }
   
   module MODULE_VAR_EXPORT setenvif_module =
  @@ -419,7 +419,6 @@
       merge_setenvif_config,      /* merge server configs */
       setenvif_module_cmds,       /* command table */
       NULL,                       /* handlers */
  -    NULL,                       /* filename translation */
       NULL,                       /* check_user_id */
       NULL,                       /* check auth */
       NULL,                       /* check access */
  
  
  
  1.4       +9 -2      apache-2.0/mpm/src/modules/standard/mod_userdir.c
  
  Index: mod_userdir.c
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_userdir.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_userdir.c     1999/07/06 21:32:23     1.3
  +++ mod_userdir.c     1999/07/11 13:27:29     1.4
  @@ -92,6 +92,7 @@
   
   #include "httpd.h"
   #include "http_config.h"
  +#include "http_request.h"
   
   module userdir_module;
   
  @@ -326,6 +327,13 @@
       return DECLINED;
   }
   
  +static void register_hooks()
  +    {
  +    static const char * const aszSucc[]={ "mod_alias.c",NULL };
  +
  +    ap_hook_translate_name(translate_userdir,NULL,aszSucc);
  +    }
  +
   module userdir_module = {
       STANDARD20_MODULE_STUFF,
       NULL,                       /* pre_command_line */
  @@ -339,12 +347,11 @@
       NULL,                       /* merge server config */
       userdir_cmds,               /* command table */
       NULL,                       /* handlers */
  -    translate_userdir,          /* filename translation */
       NULL,                       /* check_user_id */
       NULL,                       /* check auth */
       NULL,                       /* check access */
       NULL,                       /* type_checker */
       NULL,                       /* fixups */
       NULL,                       /* logger */
  -    NULL                        /* register hooks */
  +    register_hooks              /* register hooks */
   };
  
  
  

Reply via email to