pike.git
/
NT
/
tools
/
sprshd
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/NT/tools/sprshd:79:
while(string s=from->read(128,1)) if(to->write(s)!=strlen(s)) return; } #endif void handle_incoming_connection(object(Stdio.File) io) { object p;
+
mapping env=getenv();
sscanf(io->read(4),"%4c",int args); string *cmd=allocate(args); for(int e=0;e<args;e++) { sscanf(io->read(4),"%4c",int len); cmd[e]=io->read(len); } object pi=Stdio.File(); #ifdef NO_IPC object p2=pi->pipe(); #else object p2=pi->pipe(Stdio.PROP_IPC); #endif string dir=cmd[0]; cmd=cmd[1..]; write("Doing %s in %s\n",cmd*" ",dir);
-
+
while(sscanf(cmd[0],"%s=%s",string key, string val))
+
{
+
env[key]=val;
+
cmd=cmd[1..];
+
}
+
switch(lower_case(cmd[0])) { case "mkdir": { string dir=combine_path(combine_path(getcwd(),dir),cmd[1]); int ret; if(Stdio.file_size(dir)!=-2) ret=mkdir(dir); else ret=1;
pike.git/NT/tools/sprshd:153:
to, dir, combine_path(getcwd(),dir)); io->write(sprintf("%4c%s",strlen(x),x)); } io->write(sprintf("%4c",0)); io->write(sprintf("%4c",!ret)); break; } case "getenv": {
-
string s=
getenv
(cmd[1])+"\n";
+
string s=(
env[
cmd[1]
] || ""
)+"\n";
io->write(sprintf("%4c%s",strlen(s),s)); io->write(sprintf("%4c",0)); io->write(sprintf("%4c",0)); break; } default: #ifdef WINE { werror("Proxying.....\n");
pike.git/NT/tools/sprshd:184:
mixed err=catch { p=Process.create_process(cmd, ([ #ifndef WINE "stdin":io, "stdout":p2, "stderr":p2, #endif "cwd":dir,
+
"env":env,
])); }; destruct(p2); if(!err) { #ifdef NO_IPC thread_create(monitor,p2,p); #endif while(1) {