pike.git / NT / tools / sprshd

version» Context lines:

pike.git/NT/tools/sprshd:15:    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);    }       object pi=Stdio.File(); + #if constant(Stdio.PROP_IPC) +  object p2=pi->pipe(Stdio.PROP_IPC); + #else    object p2=pi->pipe(); -  + #endif    string dir=cmd[0];    cmd=cmd[1..];       write("Doing "+cmd*" "+"\n");       switch(lower_case(cmd[0]))    {    case "mkdir":    {    io->write(sprintf("%4c",0));
pike.git/NT/tools/sprshd:37:    io->write(sprintf("%4c",0));    break;    }       case "copy":    {    string from=combine_path(combine_path(getcwd(),dir),cmd[1]);    string to=combine_path(combine_path(getcwd(),dir),cmd[2]);       if(mixed stat=file_stat(to)) +  {    if(stat[1]==-2) -  to=combine_path(to,cmd[1]); +  { +  to=combine_path(to,basename(cmd[1])); +  } +  }    -  +  +  int ret=Stdio.cp(from,to); +  if(!ret) +  { +  string x=sprintf("Errno is %d\n" +  "CWD=%s\n" +  "from=%s\n" +  "to=%s\n" +  "dir=%s (%s)\n", +  errno(), +  getcwd(), +  from, +  to, +  dir, combine_path(getcwd(),dir)); +  io->write(sprintf("%4c%s",strlen(x),x)); +  }    io->write(sprintf("%4c",0)); -  io->write(sprintf("%4c",!Stdio.cp(from,to))); +  io->write(sprintf("%4c",!ret));    break;    }    case "getenv":    {    string s=getenv(cmd[1])+"\n";    io->write(sprintf("%4c%s",strlen(s),s));    io->write(sprintf("%4c",0));    io->write(sprintf("%4c",0));    break;    }
pike.git/NT/tools/sprshd:67:    "stdin":io,    "stdout":p2,    "stderr":p2,    "cwd":dir,    ]));    };          if(!err)    { + #if !constant(Process.PROP_IPC)    thread_create(monitor,p2,p); -  + #endif    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)   {    if(argc<2)    {    werror("Usage: sprshd <port> <host to accept connections from>\n");    exit(1);    }    if(!bind((int)argv[1]))    {    werror("Failed to bind port.\n");