Roxen.git / server / etc / include / roxen.pre.pike

version» Context lines:

Roxen.git/server/etc/include/roxen.pre.pike:1: + import files; +    void perror(string format,mixed ... args);    -  + #if !efun(error) + #define error(X) do{array Y=backtrace();throw(({(X),Y[..sizeof(Y)-2]}));}while(0) + #endif /* !error */ +    string popen(string s, void|mapping env, int|void uid, int|void gid)   {    object p,p2;    -  p2 = File(); +  p2 = file();    p=p2->pipe();    if(!p) error("Popen failed. (couldn't create pipe)\n");       if(!fork())    {    array (int) olduid = ({ -1, -1 });    catch {    if(p->query_fd() < 0)    {    perror("File to dup2 to closed!\n");    exit(99);    } -  p->dup2(File("stdout")); +  p->dup2(file("stdout"));    if(uid || gid)    {    object privs = ((program)"privs")("Executing script as non-www user");    olduid = ({ uid, gid });    setgid(olduid[1]);    setuid(olduid[0]);   #if efun(initgroups)    array pw = getpwuid((int)uid);    if(pw) initgroups(pw[0], (int)olduid[0]);   #endif    } -  catch(exece("/bin/sh", ({ "-c", s }), (env||environment))); +  catch(exece("/bin/sh", ({ "-c", s }), (env||getenv())));    };    exit(69);    }else{    string t;    destruct(p);    t=p2->read(0x7fffffff);    destruct(p2);    return t;    }   }
Roxen.git/server/etc/include/roxen.pre.pike:60:    object p;    int pid;    string t;       if(arrayp(env))    env = make_mapping(env);    if(!mappingp(env))    env=([]);       -  stdin->dup2(File("stdin")); -  stdout->dup2(File("stdout")); -  stderr->dup2(File("stderr")); +  stdin->dup2(file("stdin")); +  stdout->dup2(file("stdout")); +  stderr->dup2(file("stderr"));    if(stringp(wd) && sizeof(wd))    cd(wd);    exece(s, args, env);    perror(sprintf("Spawne: Failed to exece %s\n", s));    exit(0);   }      int spawne(string s,string *args, mapping|array env, object stdin,    object stdout, object stderr, void|string wd, void|array (int) uid)   {