You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by st...@hyperreal.org on 2000/01/11 22:52:38 UTC

cvs commit: apache-1.3/src/os/netware Apache.def ApacheCore.imp ApacheCoreNW.def ApacheModuleAuthAnon.def ApacheModuleCERNMeta.def ApacheModuleDigest.def ApacheModuleExpires.def ApacheModuleHeaders.def ApacheModuleInfo.def ApacheModuleProxy.def ApacheModuleRewrite.def ApacheModuleSpeling.def ApacheModuleStatus.def ApacheModuleUserTrack.def getopt.c getopt.h main_nlm.c mod_nlm.c modules.c multithread.c precomp.h test_char.h uri_delims.h os.c os.h

stoddard    00/01/11 13:52:34

  Modified:    src/os/netware os.c os.h
  Added:       src/os/netware Apache.def ApacheCore.imp ApacheCoreNW.def
                        ApacheModuleAuthAnon.def ApacheModuleCERNMeta.def
                        ApacheModuleDigest.def ApacheModuleExpires.def
                        ApacheModuleHeaders.def ApacheModuleInfo.def
                        ApacheModuleProxy.def ApacheModuleRewrite.def
                        ApacheModuleSpeling.def ApacheModuleStatus.def
                        ApacheModuleUserTrack.def getopt.c getopt.h
                        main_nlm.c mod_nlm.c modules.c multithread.c
                        precomp.h test_char.h uri_delims.h
  Log:
  NetWare port of Apache 1.3, part 2 of 2.
  
  Obtained from: Mike Gardiner
  
  Revision  Changes    Path
  1.2       +8 -18     apache-1.3/src/os/netware/os.c
  
  Index: os.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/os/netware/os.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- os.c	1999/10/28 17:57:43	1.1
  +++ os.c	2000/01/11 21:52:06	1.2
  @@ -57,78 +57,68 @@
   
   #include "ap_config.h"
   
  -
   void ap_os_dso_init(void)
   {
  -
   }
   
  -
   void *ap_os_dso_load(const char *path)
   {
       unsigned int nlmHandle;
       char *moduleName = NULL;
  -
  +    
       moduleName = strrchr(path, '/');
   
  -    if(moduleName)
  +    if (moduleName)
           moduleName++;
       
       nlmHandle = FindNLMHandle((char*)moduleName);
   
  -    if(nlmHandle == NULL) {
  -        spawnlp(P_NOWAIT | P_SPAWN_IN_CURRENT_DOMAIN, path, NULL);
  +    if (nlmHandle == NULL) {
  +        spawnlp(P_NOWAIT | P_SPAWN_IN_CURRENT_DOMAIN, path, NULL);        
           nlmHandle = FindNLMHandle((char *)moduleName);
       }
   
       return (void *)nlmHandle;
   }
   
  -
   void ap_os_dso_unload(void *handle)
   {
   	KillMe(handle);
   }
   
  -
   void *ap_os_dso_sym(void *handle, const char *symname)
   {
       return ImportSymbol((int)GetNLMHandle(), (char *)symname);
   }
   
  -
   const char *ap_os_dso_error(void)
   {
       return NULL;
   }
   
  -
   char *remove_filename(char* str)
   {
       int i, len = strlen(str);    
     
  -    for(i=len; i; i--) {
  -        if(str[i] == '\\' || str[i] == '/') {
  +    for (i=len; i; i--) {
  +        if (str[i] == '\\' || str[i] == '/') {
               str[i] = NULL;
               break;
           }
       }
  -
       return str;
   }
   
  -
   char *bslash2slash(char* str)
   {
       int i, len = strlen(str);    
     
  -    for(i=0; i<len; i++) {
  -        if(str[i] == '\\') {
  +    for (i=0; i<len; i++) {
  +        if (str[i] == '\\') {
               str[i] = '/';
               break;
           }
       }
  -    
       return str;
   }
   
  
  
  
  1.2       +2 -1      apache-1.3/src/os/netware/os.h
  
  Index: os.h
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/os/netware/os.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- os.h	1999/10/28 17:57:45	1.1
  +++ os.h	2000/01/11 21:52:07	1.2
  @@ -125,7 +125,7 @@
   
   inline int ap_os_is_path_absolute(const char *file)
   {
  -    if(strstr(file, ":/"))
  +    if (strstr(file, ":/"))
           return 1;
       else
           return 0;
  @@ -140,3 +140,4 @@
   char *remove_filename(char*);
   char *bslash2slash(char*);
   #endif /*! APACHE_OS_H*/
  +
  
  
  
  1.1                  apache-1.3/src/os/netware/Apache.def
  
  Index: Apache.def
  ===================================================================
  # NLMs Apache depends on
  
  MODULE clib.nlm
  MODULE apachec.nlm
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheCore.imp
  
  Index: ApacheCore.imp
  ===================================================================
  ap_MD5Final
  ap_MD5Init
  ap_MD5Update
  ap_acquire_mutex
  ap_add_cgi_vars
  ap_add_common_vars
  ap_add_loaded_module
  ap_add_module
  ap_add_named_module
  ap_add_per_dir_conf
  ap_add_per_url_conf
  ap_add_version_component
  ap_allow_options
  ap_allow_overrides
  ap_append_arrays
  ap_array_cat
  ap_auth_name
  ap_auth_type
  ap_basic_http_header
  ap_bclose
  ap_bcreate
  ap_bfilbuf
  ap_bfileno
  ap_bflsbuf
  ap_bflush
  ap_bgetopt
  ap_bgets
  ap_bhalfduplex
  ap_block_alarms
  ap_blookc
  ap_bnonblock
  ap_bonerror
  ap_bpushfd
  ap_bputs
  ap_bread
  ap_bsetflag
  ap_bsetopt
  ap_bskiplf
  ap_bspawn_child
  ap_bwrite
  ap_bytes_in_free_blocks
  ap_bytes_in_pool
  ap_call_exec
  ap_can_exec
  ap_cfg_closefile
  ap_cfg_getc
  ap_cfg_getline
  ap_chdir_file
  ap_check_alarm
  ap_check_cmd_context
  ap_checkmask
  ap_cleanup_for_exec
  ap_clear_module_list
  ap_clear_pool
  ap_clear_table
  ap_close_piped_log
  ap_construct_server
  ap_construct_url
  ap_content_type_tolower
  ap_copy_array
  ap_copy_array_hdr
  ap_copy_table
  ap_count_dirs
  ap_cpystrn
  ap_create_environment
  ap_create_mutex
  ap_create_per_dir_config
  ap_custom_response
  ap_default_port_for_request
  ap_default_port_for_scheme
  ap_default_type
  ap_destroy_mutex
  ap_destroy_pool
  ap_destroy_sub_req
  ap_die
  ap_discard_request_body
  ap_document_root
  ap_each_byterange
  ap_error_log2stderr
  ap_escape_html
  ap_escape_path_segment
  ap_escape_quotes
  ap_escape_shell_cmd
  ap_exists_scoreboard_image
  ap_finalize_request_protocol
  ap_find_command
  ap_find_command_in_modules
  ap_find_last_token
  ap_find_linked_module
  ap_find_module_name
  ap_find_path_info
  ap_find_token
  ap_get_basic_auth_pw
  ap_get_client_block
  ap_get_gmtoff
  ap_get_limit_req_body
  ap_get_remote_host
  ap_get_remote_logname
  ap_get_server_built
  ap_get_server_name
  ap_get_server_port
  ap_get_server_version
  ap_get_time
  ap_get_token
  ap_getparents
  ap_getword
  ap_getword_conf
  ap_getword_conf_nc
  ap_getword_nc
  ap_getword_nulls
  ap_getword_nulls_nc
  ap_getword_white
  ap_getword_white_nc
  ap_gm_timestr_822
  ap_gname2id
  ap_handle_command
  ap_hard_timeout
  ap_ht_time
  ap_ind
  ap_index_of_response
  ap_init_virtual_host
  ap_internal_redirect
  ap_internal_redirect_handler
  ap_is_directory
  ap_is_fnmatch
  ap_is_initial_req
  ap_is_matchexp
  ap_is_url
  ap_kill_cleanup
  ap_kill_cleanups_for_fd
  ap_kill_cleanups_for_socket
  ap_kill_timeout
  ap_log_assert
  ap_log_error_old
  ap_log_reason
  ap_log_unixerr
  ap_make_array
  ap_make_dirstr
  ap_make_dirstr_parent
  ap_make_dirstr_prefix
  ap_make_full_path
  ap_make_sub_pool
  ap_make_table
  ap_matches_request_vhost
  ap_md5
  ap_md5_binary
  ap_md5contextTo64
  ap_md5digest
  ap_meets_conditions
  ap_no2slash
  ap_note_auth_failure
  ap_note_basic_auth_failure
  ap_note_cleanups_for_fd
  ap_note_cleanups_for_file
  ap_note_cleanups_for_socket
  ap_note_digest_auth_failure
  ap_note_subprocess
  ap_open_mutex
  ap_open_piped_log
  ap_os_escape_path
  ap_overlap_tables
  ap_overlay_tables
  ap_palloc
  ap_parseHTTPdate
  ap_parse_hostinfo_components
  ap_parse_uri
  ap_parse_uri_components
  ap_pcalloc
  ap_pcfg_open_custom
  ap_pcfg_openfile
  ap_pclosedir
  ap_pclosef
  ap_pclosesocket
  ap_pduphostent
  ap_pfclose
  ap_pfdopen
  ap_pfopen
  ap_pgethostbyname
  ap_popendir
  ap_popenf
  ap_pregcomp
  ap_pregfree
  ap_pregsub
  ap_psignature
  ap_psocket
  ap_pstrdup
  ap_pstrndup
  ap_push_array
  ap_pvsprintf
  ap_rationalize_mtime
  ap_register_cleanup
  ap_release_mutex
  ap_remove_loaded_module
  ap_remove_module
  ap_requires
  ap_reset_timeout
  ap_rflush
  ap_rind
  ap_rputc
  ap_rputs
  ap_run_cleanup
  ap_run_sub_req
  ap_rwrite
  ap_satisfies
  ap_scan_script_header_err
  ap_scan_script_header_err_buff
  ap_scan_script_header_err_core
  ap_send_fb
  ap_send_fb_length
  ap_send_fd
  ap_send_fd_length
  ap_send_http_header
  ap_send_http_trace
  ap_send_mmap
  ap_send_size
  ap_server_root_relative
  ap_set_byterange
  ap_set_content_length
  ap_set_etag
  ap_set_keepalive
  ap_set_last_modified
  ap_setup_client_block
  ap_should_client_block
  ap_soft_timeout
  ap_some_auth_required
  ap_spawn_child
  ap_srm_command_loop
  ap_str_tolower
  ap_strcasecmp_match
  ap_strcmp_match
  ap_sub_req_lookup_file
  ap_sub_req_lookup_uri
  ap_sync_scoreboard_image
  ap_table_add
  ap_table_addn
  ap_table_get
  ap_table_merge
  ap_table_mergen
  ap_table_set
  ap_table_setn
  ap_table_unset
  ap_tm2sec
  ap_uname2id
  ap_unblock_alarms
  ap_unescape_url
  ap_unparse_uri_components
  ap_update_mtime
  ap_uudecode
  ap_uuencode
  ap_vbprintf
  ap_vformatter
  ap_vsnprintf
  regcomp
  regexec
  regfree
  access_module
  alias_module
  ap_bprintf
  ap_bvputs
  ap_day_snames
  ap_extended_status
  ap_limit_section
  ap_loaded_modules
  ap_log_error
  ap_log_printf
  ap_log_rerror
  ap_month_snames
  ap_null_cleanup
  ap_psprintf
  ap_pstrcat
  ap_restart_time
  ap_rprintf
  ap_rvputs
  ap_scoreboard_image
  ap_send_header_field
  ap_server_argv0
  ap_server_root
  ap_set_file_slot
  ap_set_flag_slot
  ap_set_string_slot
  ap_set_string_slot_lower
  ap_snprintf
  ap_suexec_enabled
  ap_table_do
  apache_main
  asis_module
  auth_module
  autoindex_module
  config_log_module
  core_module
  dir_module
  env_module
  imap_module
  includes_module
  mime_module
  negotiation_module
  setenvif_module
  so_module
  top_module
  ap_fnmatch
  ap_method_number_of
  ap_exists_config_define
  ap_single_module_configure
  ap_make_etag
  ap_array_pstrcat
  ap_find_list_item
  ap_MD5Encode
  ap_validate_password
  ap_size_list_item
  ap_get_list_item
  ap_scoreboard_fname
  ap_pid_fname
  ap_excess_requests_per_child
  ap_threads_per_child
  ap_max_requests_per_child
  ap_daemons_to_start
  ap_daemons_min_free
  ap_daemons_max_free
  ap_daemons_limit
  ap_user_name
  ap_user_id
  ap_group_id
  ap_standalone
  ap_server_confname
  ap_sub_req_method_uri
  ap_regerror
  ap_regexec
  ap_field_noparam
  ap_pbase64decode
  ap_pbase64encode
  ap_base64encode
  ap_base64encode_binary
  ap_base64encode_len
  ap_base64decode
  ap_base64decode_binary
  ap_base64decode_len
  ap_SHA1Init
  ap_SHA1Update_binary
  ap_SHA1Update
  ap_SHA1Final
  ap_sha1_base64
  ap_my_generation
  apache_main
  ap_get_virthost_addr
  ap_listeners
  ap_listenbacklog
  
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheCoreNW.def
  
  Index: ApacheCoreNW.def
  ===================================================================
  MODULE  CLIB.NLM
  MODULE  WS2_32.NLM
  IMPORT  KillMe
  EXPORT	@apachecore.imp
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleAuthAnon.def
  
  Index: ApacheModuleAuthAnon.def
  ===================================================================
  EXPORT anon_auth_module
  
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleCERNMeta.def
  
  Index: ApacheModuleCERNMeta.def
  ===================================================================
  EXPORT cern_meta_module
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleDigest.def
  
  Index: ApacheModuleDigest.def
  ===================================================================
  EXPORT digest_module
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleExpires.def
  
  Index: ApacheModuleExpires.def
  ===================================================================
  EXPORT expires_module
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleHeaders.def
  
  Index: ApacheModuleHeaders.def
  ===================================================================
  EXPORT headers_module
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleInfo.def
  
  Index: ApacheModuleInfo.def
  ===================================================================
  EXPORT info_module
  
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleProxy.def
  
  Index: ApacheModuleProxy.def
  ===================================================================
  EXPORT proxy_module
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleRewrite.def
  
  Index: ApacheModuleRewrite.def
  ===================================================================
  EXPORT rewrite_module
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleSpeling.def
  
  Index: ApacheModuleSpeling.def
  ===================================================================
  EXPORT speling_module
  
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleStatus.def
  
  Index: ApacheModuleStatus.def
  ===================================================================
  EXPORT status_module
  
  
  
  1.1                  apache-1.3/src/os/netware/ApacheModuleUserTrack.def
  
  Index: ApacheModuleUserTrack.def
  ===================================================================
  EXPORT usertrack_module
  
  
  
  1.1                  apache-1.3/src/os/netware/getopt.c
  
  Index: getopt.c
  ===================================================================
  #include <stdio.h>
  #include <string.h>
  #include <assert.h>
  #include <stdlib.h>
  
  #define OPTERRCOLON (1)
  #define OPTERRNF (2)
  #define OPTERRARG (3)
  
  char *optarg;
  int optind = 1;
  int opterr = 1;
  int optopt;
  
  static int
  optiserr(int argc, char * const *argv, int oint, const char *optstr,
           int optchr, int err)
  {
      if (opterr) {
          fprintf(stderr, "Error in argument %d, char %d: ", oint, optchr + 1);
  
          switch (err) {
          case OPTERRCOLON:
              fprintf(stderr, ": in flags\n");
              break;
          case OPTERRNF:
              fprintf(stderr, "option not found %c\n", argv[oint][optchr]);
              break;
          case OPTERRARG:
              fprintf(stderr, "no argument for option %c\n", argv[oint][optchr]);
              break;
          default:
              fprintf(stderr, "unknown\n");
              break;
          }
      }
      optopt = argv[oint][optchr];
      return('?');
  }
      
  int
  getopt(int argc, char* const *argv, const char *optstr)
  {
      static int optchr = 0;
      static int dash = 0; /* have already seen the - */
  
      char *cp;
  
      if (optind >= argc)
          return(EOF);
  
      if (!dash && (argv[optind][0] !=  '-'))
          return(EOF);
  
      if (!dash && (argv[optind][0] ==  '-') && !argv[optind][1]) {
          /*
           * use to specify stdin. Need to let pgm process this and
           * the following args
           */
          return(EOF);
      }
  
      if ((argv[optind][0] == '-') && (argv[optind][1] == '-')) {
          /* -- indicates end of args */
          optind++;
          return(EOF);
      }
  
      if (!dash) {
          assert((argv[optind][0] == '-') && argv[optind][1]);
          dash = 1;
          optchr = 1;
      }
  
      /* Check if the guy tries to do a -: kind of flag */
      assert(dash);
      if (argv[optind][optchr] == ':') {
          dash = 0;
          optind++;
          return(optiserr(argc, argv, optind-1, optstr, optchr, OPTERRCOLON));
      }
  
      if (!(cp = strchr(optstr, argv[optind][optchr]))) {
          int errind = optind;
          int errchr = optchr;
  
          if (!argv[optind][optchr+1]) {
              dash = 0;
              optind++;
          }
          else
              optchr++;
          return(optiserr(argc, argv, errind, optstr, errchr, OPTERRNF));
      }
  
      if (cp[1] == ':') {
          dash = 0;
          optind++;
  
          if(optind == argc)
              return(optiserr(argc, argv, optind-1, optstr, optchr, OPTERRARG));
          optarg = argv[optind++];
          return(*cp);
      } else {
          if (!argv[optind][optchr+1]) {
              dash = 0;
              optind++;
          }
          else
              optchr++;
          return(*cp);
      }
      assert(0);
      return(0);
  }
  
  #ifdef TESTGETOPT
  int main(int argc, char **argv)
  {
      int c;
      extern char *optarg;
      extern int optind;
      int aflg = 0;
      int bflg = 0;
      int errflg = 0;
      char *ofile = NULL;
  
      while ((c = getopt(argc, argv, "abo:")) != EOF)
          switch (c) {
          case 'a':
              if (bflg)
                  errflg++;
              else
                  aflg++;
              break;
          case 'b':
              if (aflg)
                  errflg++;
              else
                  bflg++;
              break;
          case 'o':
              ofile = optarg;
              (void)printf("ofile = %s\n", ofile);
              break;
          case '?':
              errflg++;
          }
  
      if (errflg) {
          (void)fprintf(stderr, "usage: cmd [-a|-b] [-o <filename>] files...\n");
          exit(2);
      }
  
      for ( ; optind < argc; optind++)
          (void)printf("%s\n", argv[optind]);
  
      return 0;
  }
  
  #endif /* TESTGETOPT */
  
  
  1.1                  apache-1.3/src/os/netware/getopt.h
  
  Index: getopt.h
  ===================================================================
  #ifndef GETOPT_H
  #define GETOPT_H
  
  extern char *optarg;
  extern int optind;
  extern int opterr;
  extern int optopt;
  int getopt(int argc, char* const *argv, const char *optstr);
  
  #endif /* GETOPT_H */
  
  
  1.1                  apache-1.3/src/os/netware/main_nlm.c
  
  Index: main_nlm.c
  ===================================================================
  /* main_NLM.c - Apache executable stub file for NetWare
   * This file's purpose in life is to load, and call the
   * "real" main function, apache_main(), located in ApacheC.nlm
   */
  int apache_main(int argc, char *argv[]);
  
  int main(int argc, char *argv[]) 
  {
      return apache_main(argc, argv);
  }
  
  
  
  1.1                  apache-1.3/src/os/netware/mod_nlm.c
  
  Index: mod_nlm.c
  ===================================================================
  /* ====================================================================
   * Copyright (c) 1995-1999 The Apache Group.  All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. All advertising materials mentioning features or use of this
   *    software must display the following acknowledgment:
   *    "This product includes software developed by the Apache Group
   *    for use in the Apache HTTP server project (http://www.apache.org/)."
   *
   * 4. The names "Apache Server" and "Apache Group" must not be used to
   *    endorse or promote products derived from this software without
   *    prior written permission. For written permission, please contact
   *    apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * 6. Redistributions of any form whatsoever must retain the following
   *    acknowledgment:
   *    "This product includes software developed by the Apache Group
   *    for use in the Apache HTTP server project (http://www.apache.org/)."
   *
   * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   * OF THE POSSIBILITY OF SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Group and was originally based
   * on public domain software written at the National Center for
   * Supercomputing Applications, University of Illinois, Urbana-Champaign.
   * For more information on the Apache Group and the Apache HTTP server
   * project, please see <http://www.apache.org/>.
   *
   */
  
  #include "httpd.h"
  #include "http_config.h"
  #include <nwadv.h>
  
  module MODULE_VAR_EXPORT nlm_module;
  static int been_there_done_that = 0; /* Loaded the modules yet? */
  
  char *load_module(cmd_parms *cmd, void *dummy, char *modname, char *filename)
  {
      module *modp;
      int nlmHandle;
      const char *szModuleFile = ap_server_root_relative(cmd->pool, filename);
  
      if (been_there_done_that)
          return NULL;
  
  	nlmHandle = FindNLMHandle(filename);
  
      if (nlmHandle == NULL) {
          spawnlp(P_NOWAIT, szModuleFile, NULL);
          nlmHandle = FindNLMHandle(filename);
  
          if (nlmHandle == NULL)
              return ap_pstrcat(cmd->pool, "Cannot load ", szModuleFile,
                                " into server", NULL);
      }
  
      modp = (module *) ImportSymbol(nlmHandle, modname);
  
      if (!modp)
          return ap_pstrcat(cmd->pool, "Can't find module ", modname,
                            " in file ", filename, NULL);
  	
      ap_add_module(modp);
  
      if (modp->create_server_config)
          ((void**)cmd->server->module_config)[modp->module_index] =
           (*modp->create_server_config)(cmd->pool, cmd->server);
  
      if (modp->create_dir_config)
          ((void**)cmd->server->lookup_defaults)[modp->module_index] =
           (*modp->create_dir_config)(cmd->pool, NULL);
  
      return NULL;
  }
  
  char *load_file(cmd_parms *cmd, void *dummy, char *filename)
  {
      if (been_there_done_that)
          return NULL;
  
      if (spawnlp(P_NOWAIT, ap_server_root_relative(cmd->pool, filename), NULL))
          return ap_pstrcat(cmd->pool, "Cannot load ", filename, " into server", NULL);
  
      return NULL;
  }
  
  void check_loaded_modules(server_rec *dummy, pool *p)
  {
      if (been_there_done_that)
          return;
  
      been_there_done_that = 1;
  }
  
  command_rec nlm_cmds[] = {
  { "LoadModule", load_module, NULL, RSRC_CONF, TAKE2,
    "a module name, and the name of a file to load it from"},
  { "LoadFile", load_file, NULL, RSRC_CONF, ITERATE,
    "files or libraries to link into the server at runtime"},
  { NULL }
  };
  
  module nlm_module = {
     STANDARD_MODULE_STUFF,
     check_loaded_modules,  /* initializer */
     NULL,                  /* create per-dir config */
     NULL,                  /* merge per-dir config */
     NULL,                  /* server config */
     NULL,                  /* merge server config */
     nlm_cmds,              /* command table */
     NULL,                  /* handlers */
     NULL,                  /* filename translation */
     NULL,                  /* check_user_id */
     NULL,                  /* check auth */
     NULL,                  /* check access */
     NULL,                  /* type_checker */
     NULL,                  /* logger */
     NULL                   /* header parser */
  };
  
  
  
  
  1.1                  apache-1.3/src/os/netware/modules.c
  
  Index: modules.c
  ===================================================================
  /* modules.c --- major modules compiled into Apache for NetWare.
   * Only insert an entry for a module if it must be compiled into
   * the core server
   */
  
  #include "httpd.h"
  #include "http_config.h"
  
  extern module core_module;
  extern module so_module;
  extern module mime_module;
  extern module access_module;
  extern module auth_module;
  extern module negotiation_module;
  extern module includes_module;
  extern module autoindex_module;
  extern module dir_module;
  // extern module cgi_module;
  extern module userdir_module;
  extern module alias_module;
  extern module env_module;
  extern module config_log_module;
  extern module asis_module;
  extern module imap_module;
  extern module action_module;
  extern module setenvif_module;
  
  module *ap_prelinked_modules[] = {
    &core_module,
    &so_module,
    &mime_module,
    &access_module,
    &auth_module,
    &negotiation_module,
    &includes_module,
    &autoindex_module,
    &dir_module,
  //  &cgi_module,
    &userdir_module,
    &alias_module,
    &env_module,
    &config_log_module,
    &asis_module,
    &imap_module,
    &action_module,
    &setenvif_module,
    NULL
  };
  
  module *ap_preloaded_modules[] = {
    &core_module,
    &so_module,
    &mime_module,
    &access_module,
    &auth_module,
    &negotiation_module,
    &includes_module,
    &autoindex_module,
    &dir_module,
  //  &cgi_module,
    &userdir_module,
    &alias_module,
    &env_module,
    &config_log_module,
    &asis_module,
    &imap_module,
    &action_module,
    &setenvif_module,
    NULL
  };
  
  
  
  1.1                  apache-1.3/src/os/netware/multithread.c
  
  Index: multithread.c
  ===================================================================
  
  #include "ap_config.h"
  #include "httpd.h"
  #include "http_conf_globals.h"
  #include "multithread.h"
  #include <nwsemaph.h>
  
  
  
  thread *create_thread(void (thread_fn)(void *), void *thread_arg)
  {
      int rv;
  
      rv = BeginThread(thread_fn, NULL, ap_thread_stack_size, thread_arg); 
      return((thread *)rv);
  }
  
  int kill_thread(thread *thread_id)
  {
      return(0);
  }
  
  int await_thread(thread *thread_id, int sec_to_wait)
  {
      return(0);
  }
  
  void exit_thread(int status)
  {}
  
  void free_thread(thread *thread_id)
  {}
  
  
  mutex * ap_create_mutex(char *name)
  {
      return(malloc(1));
  }
  
  mutex * ap_open_mutex(char *name)
  {
  	return((mutex*)EnterCritSec());
  }
  
  int ap_acquire_mutex(mutex *mutex_id)
  {
  	return(EnterCritSec());
  }
  
  int ap_release_mutex(mutex *mutex_id)
  {
  	return(ExitCritSec());
  }
  
  void ap_destroy_mutex(mutex *mutex_id)
  {
      free(mutex_id);
  }
  
  
  semaphore *create_semaphore(int initial)
  {
  	return((semaphore*)OpenLocalSemaphore(initial));
  }
  int acquire_semaphore(semaphore *semaphore_id)
  {
  	return(WaitOnLocalSemaphore((long)semaphore_id));
  }
  int release_semaphore(semaphore *semaphore_id)
  {
  	return(SignalLocalSemaphore((long)semaphore_id));
  }
  void destroy_semaphore(semaphore *semaphore_id)
  {
  	CloseLocalSemaphore((long)semaphore_id);
  }
  
  event *create_event(int manual, int initial, char *name)
  {
      return(NULL);
  }
  event *open_event(char *name)
  {
      return(NULL);
  }
  int acquire_event(event *event_id)
  {
      return(0);
  }
  int set_event(event *event_id)
  {
      return(0);
  }
  int reset_event(event *event_id)
  {
      return(0);
  }
  void destroy_event(event *event_id)
  {}
  
  
  
  
  
  
  1.1                  apache-1.3/src/os/netware/precomp.h
  
  Index: precomp.h
  ===================================================================
  #pragma precompile_target "precomp.mch"
  #define NETWARE
  
  #ifndef __int64
  #define __int64 long long
  #endif
  
  
  
  
  
  
  
  
  1.1                  apache-1.3/src/os/netware/test_char.h
  
  Index: test_char.h
  ===================================================================
  /* this file is automatically generated by gen_test_char, do not edit */
  #define T_ESCAPE_SHELL_CMD	(1)
  #define T_ESCAPE_PATH_SEGMENT	(2)
  #define T_OS_ESCAPE_PATH	(4)
  #define T_HTTP_TOKEN_STOP	(8)
  
  static const unsigned char test_char_table[256] = {
      0,14,14,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,14,14,
      14,14,14,14,14,14,14,14,14,14,14,14,14,0,7,6,1,6,1,1,
      9,9,1,0,8,0,0,10,0,0,0,0,0,0,0,0,0,0,8,15,
      15,8,15,15,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,15,15,15,7,0,7,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,15,7,15,1,14,6,6,6,6,6,6,6,6,6,6,6,6,
      6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
      6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
      6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
      6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
      6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
      6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 
  };
  
  
  
  1.1                  apache-1.3/src/os/netware/uri_delims.h
  
  Index: uri_delims.h
  ===================================================================
  /* this file is automatically generated by gen_uri_delims, do not edit */
  static const unsigned char uri_delims[256] = {
      T_NUL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,T_HASH,0,0,0,0,
      0,0,0,0,0,0,0,T_SLASH,0,0,0,0,0,0,0,0,0,0,T_COLON,0,
      0,0,0,T_QUESTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 
  };
  
  
  

Re: cvs commit: apache-1.3/src/os/netware Apache.def ApacheCore.imp ApacheCoreNW.def ApacheModuleAuthAnon.def ApacheModuleCERNMeta.def ApacheModuleDigest.def ApacheModuleExpires.def ApacheModuleHeaders.def ApacheModuleInfo.def ApacheModuleProxy.def Apach

Posted by Bill Stoddard <st...@raleigh.ibm.com>.
Don't you have something better to do?   Under the circumstances, I didn't
think much of it because all the changes are isolated in the os/netware
directory (including os.c and os.h)  and this port is still not complete.
BFD that a couple of port specific files with format changes are included.

> Sorry for complaining but could we please not check in formatting
> changes with a log message saying "Netware port"?
>
> Tony.
> --
> i am the dot at dotat dot at


Re: cvs commit: apache-1.3/src/os/netware Apache.def ApacheCore.imp ApacheCoreNW.def ApacheModuleAuthAnon.def ApacheModuleCERNMeta.def ApacheModuleDigest.def ApacheModuleExpires.def ApacheModuleHeaders.def ApacheModuleInfo.def ApacheModuleProxy.def ApacheModuleRewrite.def ApacheModuleSpeling.def ApacheModuleStatus.def ApacheModuleUserTrack.def getopt.c getopt.h main_nlm.c mod_nlm.c modules.c multithread.c precomp.h test_char.h uri_delims.h os.c os.h

Posted by Tony Finch <do...@dotat.at>.
stoddard@hyperreal.org wrote:
>
>  Modified:    os.c os.h
>  Log:
>  NetWare port of Apache 1.3, part 2 of 2.

Sorry for complaining but could we please not check in formatting
changes with a log message saying "Netware port"?

Tony.
-- 
i am the dot at dotat dot at