"Fossies" - the Fresh Open Source Software Archive

Member "mod_spnego-0.2.0/unix-env.c" (8 May 2011, 3596 Bytes) of package /linux/www/apache_httpd_modules/old/mod_spnego-0.2.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "unix-env.c" see the Fossies "Dox" file reference documentation.

    1 /* unix-env.c */
    2 
    3 /*
    4  * Frank Balluffi modified the following code from Apache 2.0.
    5  */
    6 
    7 /* ====================================================================
    8  * The Apache Software License, Version 1.1
    9  *
   10  * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
   11  * reserved.
   12  *
   13  * Redistribution and use in source and binary forms, with or without
   14  * modification, are permitted provided that the following conditions
   15  * are met:
   16  *
   17  * 1. Redistributions of source code must retain the above copyright
   18  *    notice, this list of conditions and the following disclaimer.
   19  *
   20  * 2. Redistributions in binary form must reproduce the above copyright
   21  *    notice, this list of conditions and the following disclaimer in
   22  *    the documentation and/or other materials provided with the
   23  *    distribution.
   24  *
   25  * 3. The end-user documentation included with the redistribution,
   26  *    if any, must include the following acknowledgment:
   27  *       "This product includes software developed by the
   28  *        Apache Software Foundation (http://www.apache.org/)."
   29  *    Alternately, this acknowledgment may appear in the software itself,
   30  *    if and wherever such third-party acknowledgments normally appear.
   31  *
   32  * 4. The names "Apache" and "Apache Software Foundation" must
   33  *    not be used to endorse or promote products derived from this
   34  *    software without prior written permission. For written
   35  *    permission, please contact apache@apache.org.
   36  *
   37  * 5. Products derived from this software may not be called "Apache",
   38  *    nor may "Apache" appear in their name, without prior written
   39  *    permission of the Apache Software Foundation.
   40  *
   41  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   42  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   43  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   44  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   45  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   46  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   47  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   48  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   49  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   50  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   51  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   52  * SUCH DAMAGE.
   53  * ====================================================================
   54  *
   55  * This software consists of voluntary contributions made by many
   56  * individuals on behalf of the Apache Software Foundation.  For more
   57  * information on the Apache Software Foundation, please see
   58  * <http://www.apache.org/>.
   59  */
   60 
   61 #ifdef APACHE13
   62 #include "httpd.h"
   63 
   64 #define APR_DECLARE(rc) rc
   65 #define APR_ENOMEM      1
   66 #define APR_ENOTIMPL    1
   67 #define APR_SUCCESS     0
   68 #define apr_palloc      ap_palloc
   69 #define apr_pool_t      pool
   70 
   71 typedef int apr_status_t;
   72 typedef size_t apr_size_t;
   73 
   74 APR_DECLARE(apr_status_t) apr_env_set(const char *envvar,
   75     const char *value,
   76     apr_pool_t * pool)
   77 {
   78 #if defined(HAVE_SETENV)
   79 
   80     if (0 > setenv(envvar, value, 1))
   81     return APR_ENOMEM;
   82     return APR_SUCCESS;
   83 
   84 #elif defined(HAVE_PUTENV)
   85 
   86     apr_size_t elen = strlen(envvar);
   87     apr_size_t vlen = strlen(value);
   88     char *env = apr_palloc(pool, elen + vlen + 2);
   89     char *p = env + elen;
   90 
   91     memcpy(env, envvar, elen);
   92     *p++ = '=';
   93     memcpy(p, value, vlen);
   94     p[vlen] = '\0';
   95 
   96     if (0 > putenv(env))
   97     return APR_ENOMEM;
   98     return APR_SUCCESS;
   99 
  100 #else
  101     return APR_ENOTIMPL;
  102 #endif
  103 }
  104 #endif