pier 01/04/17 06:14:52 Added: connectors/lib Makefile.in wa_general.c wa_request.c Log: New sources for WebApp Library. Revision Changes Path 1.1 jakarta-tomcat-4.0/connectors/lib/Makefile.in Index: Makefile.in =================================================================== # ========================================================================= # # # # The Apache Software License, Version 1.1 # # # # Copyright (c) 1999-2001 The Apache Software Foundation. # # All rights reserved. # # # # ========================================================================= # # # # Redistribution and use in source and binary forms, with or without modi- # # fication, are permitted provided that the following conditions are met: # # # # 1. Redistributions of source code must retain the above copyright notice # # 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. The end-user documentation included with the redistribution, if any, # # must include the following acknowlegement: # # # # "This product includes software developed by the Apache Software # # Foundation <http://www.apache.org/>." # # # # Alternately, this acknowlegement may appear in the software itself, if # # and wherever such third-party acknowlegements normally appear. # # # # 4. The names "The Jakarta Project", "WebApp", and "Apache Software # # Foundation" must not be used to endorse or promote products derived # # from this software without prior written permission. For written # # permission, please contact <[EMAIL PROTECTED]>. # # # # 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 Software Foundation. # # # # THIS SOFTWARE IS PROVIDED "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 SOFTWARE FOUNDATION 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 indivi- # # duals on behalf of the Apache Software Foundation. For more information # # on the Apache Software Foundation, please see <http://www.apache.org/>. # # # # ========================================================================= # # @author Pier Fumagalli <mailto:[EMAIL PROTECTED]> # @version $Id: Makefile.in,v 1.1 2001/04/17 13:14:50 pier Exp $ include ../Makedefs OBJS = wa_general.o wa_request.o LIB = libwebapp.la all: $(LIB) $(LIB): $(OBJS) @echo - Linking library $(LIB) @$(AR) -cr $(LIB) $(OBJS) @$(RANLIB) $(LIB) clean: @echo Removing object files $(OBJS) $(LIB) @rm -f $(OBJS) $(LIB) 1.1 jakarta-tomcat-4.0/connectors/lib/wa_general.c Index: wa_general.c =================================================================== /* ========================================================================= * * * * The Apache Software License, Version 1.1 * * * * Copyright (c) 1999-2001 The Apache Software Foundation. * * All rights reserved. * * * * ========================================================================= * * * * Redistribution and use in source and binary forms, with or without modi- * * fication, are permitted provided that the following conditions are met: * * * * 1. Redistributions of source code must retain the above copyright notice * * 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. The end-user documentation included with the redistribution, if any, * * must include the following acknowlegement: * * * * "This product includes software developed by the Apache Software * * Foundation <http://www.apache.org/>." * * * * Alternately, this acknowlegement may appear in the software itself, if * * and wherever such third-party acknowlegements normally appear. * * * * 4. The names "The Jakarta Project", "WebApp", and "Apache Software * * Foundation" must not be used to endorse or promote products derived * * from this software without prior written permission. For written * * permission, please contact <[EMAIL PROTECTED]>. * * * * 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 Software Foundation. * * * * THIS SOFTWARE IS PROVIDED "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 SOFTWARE FOUNDATION 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 indivi- * * duals on behalf of the Apache Software Foundation. For more information * * on the Apache Software Foundation, please see <http://www.apache.org/>. * * * * ========================================================================= */ /* @version $Id: wa_general.c,v 1.1 2001/04/17 13:14:51 pier Exp $ */ #include <wa.h> /* The current APR memory pool. */ static apr_pool_t *pool=NULL; /* Initialize the WebApp Library. */ const char *wa_init(void) { if (pool==NULL) { if (apr_initialize()!=APR_SUCCESS) return("Cannot initialize APR"); if (apr_pool_create(&pool,NULL)!=APR_SUCCESS) return("Cannot create WebApp Library memory pool"); if (pool==NULL) return("Invalid WebApp Library memory pool created"); } return(NULL); } /* Clean up the WebApp Library. */ const char *wa_destroy(void) { if (pool==NULL) return("WebApp Library not initialized"); apr_pool_destroy(pool); pool=NULL; apr_terminate(); return(NULL); } /* Allocate and setup a connection */ const char *wa_connect(wa_connection **c, const char *p, const char *a) { wa_connection *conn=NULL; const char *msg=NULL; /* Check parameters */ if (c==NULL) return("Invalid storage location specified"); /* Allocate some memory */ conn=(wa_connection *)apr_palloc(pool,sizeof(wa_connection)); if (conn==NULL) return("Cannot allocate memory"); conn->pool=pool; /* Retrieve the provider and set up the conection */ conn->conf=NULL; // if ((conn->prov=wa_provider_get(p))==NULL) // return("Invalid provider name specified"); // if ((msg=conn->prov->configure(conn,a))!=NULL) return(msg); /* Done! :) */ *c=conn; return(NULL); } /* Allocate, set up and deploy an application. */ const char *wa_deploy(wa_application **a, wa_connection *c, const char *n, const char *p) { wa_application *appl=NULL; const char *msg=NULL; char *buf=NULL; int l=0; /* Check parameters */ if (a==NULL) return("Invalid storage location specified"); if (c==NULL) return("Invalid connection specified"); if (n==NULL) return("Invalid application name"); if (p==NULL) return("Invalid application path"); /* Allocate some memory */ appl=(wa_application *)apr_palloc(pool,sizeof(wa_application)); if (appl==NULL) return("Cannot allocate memory"); appl->pool=pool; /* Set up application structure */ appl->conn=c; appl->name=apr_pstrdup(pool,n); buf=apr_pstrdup(appl->pool,p); l=strlen(buf)-1; if (buf[l]=='/') buf[l]='\0'; if (buf[0]=='/') appl->rpth=apr_pstrcat(pool,buf,"/"); else appl->rpth=apr_pstrcat(pool,"/",buf,"/"); appl->lpth=NULL; /* Tell the connector provider we're deploying an application */ appl->conf=NULL; // if ((msg=appl->conn->prov->deploy(a))!=NULL) return(msg); /* Done! :) */ *a=appl; return(NULL); } 1.1 jakarta-tomcat-4.0/connectors/lib/wa_request.c Index: wa_request.c =================================================================== /* ========================================================================= * * * * The Apache Software License, Version 1.1 * * * * Copyright (c) 1999-2001 The Apache Software Foundation. * * All rights reserved. * * * * ========================================================================= * * * * Redistribution and use in source and binary forms, with or without modi- * * fication, are permitted provided that the following conditions are met: * * * * 1. Redistributions of source code must retain the above copyright notice * * 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. The end-user documentation included with the redistribution, if any, * * must include the following acknowlegement: * * * * "This product includes software developed by the Apache Software * * Foundation <http://www.apache.org/>." * * * * Alternately, this acknowlegement may appear in the software itself, if * * and wherever such third-party acknowlegements normally appear. * * * * 4. The names "The Jakarta Project", "WebApp", and "Apache Software * * Foundation" must not be used to endorse or promote products derived * * from this software without prior written permission. For written * * permission, please contact <[EMAIL PROTECTED]>. * * * * 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 Software Foundation. * * * * THIS SOFTWARE IS PROVIDED "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 SOFTWARE FOUNDATION 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 indivi- * * duals on behalf of the Apache Software Foundation. For more information * * on the Apache Software Foundation, please see <http://www.apache.org/>. * * * * ========================================================================= */ /* @version $Id: wa_request.c,v 1.1 2001/04/17 13:14:51 pier Exp $ */ #include <wa.h> /* Attempt to match an URL against a web application. */ boolean wa_match(const char *u, wa_application *a) { if (u==NULL) return(FALSE); if (a==NULL) return(FALSE); if (strncmp(u,a->rpth,strlen(a->rpth))==0) return(TRUE); else return(FALSE); } /* Invoke a request in a web application. */ int wa_invoke(wa_request *r, wa_application *a) { return(404); }