pike.git
/
NT
/
tools
/
sprshd
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/NT/tools/sprshd:1:
#!/usr/local/bin/pike inherit Stdio.Port;
+
void monitor(object(Stdio.File) io, object proc)
+
{
+
proc->wait();
+
io->close("rw");
+
io->close();
+
destruct(io);
+
}
+
void handle_incoming_connection(object(Stdio.File) io) { object p; 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); }
pike.git/NT/tools/sprshd:53:
} default: mixed err=catch { p=Process.create_process(cmd, ([ "stdin":io, "stdout":p2, "stderr":p2, "cwd":dir,
-
])); };
+
]));
+
};
-
destruct(p2);
+
if(!err) {
-
+
thread_create(monitor,p2,p);
while(1) { string s=pi->read(1000,1); if(!s || !strlen(s)) break; io->write(sprintf("%4c%s",strlen(s),s)); } io->write(sprintf("%4c",0)); io->write(sprintf("%4c",p->wait())); }else{
-
+
destruct(p2);
io->write(sprintf("%4c",0)); io->write(sprintf("%4c",69)); } } io->close("w"); destruct(io); } int main(int argc, string *argv)