Return-Path: Delivered-To: new-httpd-archive@hyperreal.org Received: (qmail 5655 invoked by uid 6000); 3 Feb 1998 04:26:22 -0000 Received: (qmail 5647 invoked from network); 3 Feb 1998 04:26:21 -0000 Received: from saga1.stanford.edu (171.64.15.131) by taz.hyperreal.org with SMTP; 3 Feb 1998 04:26:21 -0000 Received: (from akosut@localhost) by saga1.Stanford.EDU (8.8.8/8.8.4) id UAA26529; Mon, 2 Feb 1998 20:26:14 -0800 (PST) Date: Mon, 2 Feb 1998 20:26:14 -0800 (PST) From: Alexei Kosut To: new-httpd@apache.org Subject: Re: apache/linux modules In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org On Mon, 2 Feb 1998, Cristian Gafton wrote: > I propose to have the modules shared objects named like mod-NAME.so. Each > module exports a symbol (struct module) named "module". We load all the > .so files and try to resolve in each module the "module" symbol. We then > fill in the preloaded_modules and prelinked_modules arrays with relevant > information and proceed further. "We" shouldn't do anything. A module that loads modules (e.g., mod_dld, mod_dll, mod_so) just needs to extract the module structure and call add_module() on it. The Apache core takes care of the rest. > We could have the modules ecport a version symbol ("mod_version") and try > to dlsym() that symbol also and compare it with the current server version > to be sure that the module was compiled for this version of apache. This is already done. If the module's API version (found in the version member of module_struct) doesn't match the current MODULE_MAGIC_NUMBER (which is changed every time we change the API), Apache will refuse to load a module. -- Alexei Kosut Stanford University, Class of 2001 * Apache *