root/replace/setenv.c

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. setenv

   1 /*
   2  * Copyright (C) 2001 Alan Robertson <alanr@unix.sh>
   3  * This software licensed under the GNU LGPL.
   4  *
   5  *
   6  * This library is free software; you can redistribute it and/or
   7  * modify it under the terms of the GNU Lesser General Public
   8  * License as published by the Free Software Foundation; either
   9  * version 2.1 of the License, or (at your option) any later version.
  10  * 
  11  * This library is distributed in the hope that it will be useful,
  12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14  * Lesser General Public License for more details.
  15  * 
  16  * You should have received a copy of the GNU Lesser General Public
  17  * License along with this library; if not, write to the Free Software
  18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  19  *
  20  */
  21 #include <crm_internal.h>
  22 #include <stdlib.h>
  23 #include <stdio.h>
  24 
  25 /*
  26  *      Small replacement function for setenv()
  27  */
  28 int
  29 setenv(const char *name, const char *value, int why)
     /* [previous][next][first][last][top][bottom][index][help] */
  30 {
  31     int rc = -1;
  32 
  33     if (name && value) {
  34         char *envp = crm_strdup_printf("%s=%s", name, value);
  35 
  36         /*
  37          * Cannot free envp (!)
  38          * Unfortunately, the putenv API guarantees memory leaks when
  39          * changing environment variables repeatedly...   :-(
  40          */
  41         rc = putenv(envp);
  42     }
  43     return (rc);
  44 }

/* [previous][next][first][last][top][bottom][index][help] */