pike.git / NT / tools / sprshd

version» Context lines:

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)