main: use g_setenv() instead of setenv()
Removed the fallback setenv() implementation for solaris.
This commit is contained in:
		| @@ -360,7 +360,6 @@ AC_CHECK_LIB(socket,socket,MPD_LIBS="$MPD_LIBS -lsocket",) | ||||
| AC_CHECK_LIB(nsl,gethostbyname,MPD_LIBS="$MPD_LIBS -lnsl",) | ||||
|  | ||||
| AC_CHECK_LIB(m,exp,MPD_LIBS="$MPD_LIBS -lm",) | ||||
| AC_CHECK_FUNCS(setenv) | ||||
|  | ||||
| # Check for pkg-config before using it | ||||
| PKG_PROG_PKG_CONFIG | ||||
|   | ||||
							
								
								
									
										43
									
								
								src/main.c
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								src/main.c
									
									
									
									
									
								
							| @@ -71,47 +71,6 @@ | ||||
| #include <locale.h> | ||||
| #endif | ||||
|  | ||||
| /*  | ||||
|  * from git-1.3.0, needed for solaris | ||||
|  */ | ||||
| #ifndef HAVE_SETENV | ||||
| static int setenv(const char *name, const char *value, int replace) | ||||
| { | ||||
| 	int out; | ||||
| 	size_t namelen, valuelen; | ||||
| 	char *envstr; | ||||
|  | ||||
| 	if (!name || !value) | ||||
| 		return -1; | ||||
| 	if (!replace) { | ||||
| 		char *oldval = NULL; | ||||
| 		oldval = getenv(name); | ||||
| 		if (oldval) | ||||
| 			return 0; | ||||
| 	} | ||||
|  | ||||
| 	namelen = strlen(name); | ||||
| 	valuelen = strlen(value); | ||||
| 	envstr = xmalloc((namelen + valuelen + 2)); | ||||
| 	if (!envstr) | ||||
| 		return -1; | ||||
|  | ||||
| 	memcpy(envstr, name, namelen); | ||||
| 	envstr[namelen] = '='; | ||||
| 	memcpy(envstr + namelen + 1, value, valuelen); | ||||
| 	envstr[namelen + valuelen + 1] = 0; | ||||
|  | ||||
| 	out = putenv(envstr); | ||||
| 	/* putenv(3) makes the argument string part of the environment, | ||||
| 	 * and changing that string modifies the environment --- which | ||||
| 	 * means we do not own that storage anymore.  Do not free | ||||
| 	 * envstr. | ||||
| 	 */ | ||||
|  | ||||
| 	return out; | ||||
| } | ||||
| #endif /* HAVE_SETENV */ | ||||
|  | ||||
| static void changeToUser(void) | ||||
| { | ||||
| 	ConfigParam *param = getConfigParam(CONF_USER); | ||||
| @@ -148,7 +107,7 @@ static void changeToUser(void) | ||||
|  | ||||
| 		/* this is needed by libs such as arts */ | ||||
| 		if (userpwd->pw_dir) { | ||||
| 			setenv("HOME", userpwd->pw_dir, 1); | ||||
| 			g_setenv("HOME", userpwd->pw_dir, true); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann