示例#1
0
int
ls_rtask(char *host, char **argv, int options)
{
    char **envp;
    int numEnv;
    int ret;

    for (numEnv = 0; environ[numEnv]; numEnv++)
        ;
    envp = (char **)calloc(numEnv + 1, sizeof(char *));
    for (numEnv = 0; environ[numEnv]; numEnv ++)
        envp[numEnv] = strdup(environ[numEnv]);
    envp[numEnv] = NULL;

    ret = ls_rtaske(host, argv, options, envp);

    if (envp) {
        for (numEnv = 0; envp[numEnv]; numEnv++)
            FREEUP(envp[numEnv]);
        FREEUP(envp);
    }

    return ret;

}
示例#2
0
int
ls_rtask(char *host, char **argv, int options)
{
    char **envp;
    char *sp;
    int numEnv;
    int i;
    int ret;

    for (numEnv = 0; environ[numEnv]; numEnv++)
        ;
    envp = (char **)calloc(numEnv + 2, sizeof(char *));

    i = 0;
    for (numEnv = 0; environ[numEnv]; numEnv ++) {
        if ((is_replace_user_map_env!=0)
			&& (sp = strstr(environ[numEnv], "WIN_USER_MAPPING")) != NULL)
	    continue;
		
        envp[i] = strdup(environ[numEnv]);
	i++;
    }
    if (user_map_value && user_map_value[0] != NULL) {
	envp[i] = strdup(user_map_value);
	i++;
    }
    envp[i] = NULL;

    ret = ls_rtaske(host, argv, options, envp);

    if (envp) {
        for (numEnv = 0; envp[numEnv]; numEnv++)
            FREEUP(envp[numEnv]);
        FREEUP(envp);
    }

    return ret;

}