From af263a749326b9d26df34e85fa9349f1bc6461b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Fri, 7 May 1999 17:18:24 -0700 Subject: [PATCH] some fixes Rev: NT/tools/sprshd:1.15 --- NT/tools/sprshd | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/NT/tools/sprshd b/NT/tools/sprshd index f7fc1442bf..180781369b 100755 --- a/NT/tools/sprshd +++ b/NT/tools/sprshd @@ -33,14 +33,14 @@ int cp(string from, string to) object tmp=Stdio.File(); if(!tmp->open(from,"r")) { - werror(sprintf("Open %s failed.\n",from)); + werror(sprintf("Open %s for reading failed.\n",from)); return 0; } function r=tmp->read; tmp=Stdio.File(); if(!tmp->open(to,"wct")) { - werror(sprintf("Open %s failed.\n",to)); + werror(sprintf("Open %s for writing failed.\n",to)); return 0; } function w=tmp->write; @@ -103,15 +103,25 @@ void handle_incoming_connection(object(Stdio.File) io) string dir=cmd[0]; cmd=cmd[1..]; - write("Doing "+cmd*" "+"\n"); + write("Doing %s in %s\n",cmd*" ",dir); 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; + if(!ret) + { + string x=sprintf("MKDIR %s failed, errno=%d\n",dir,errno()); + io->write(sprintf("%4c%s",strlen(x),x)); + } io->write(sprintf("%4c",0)); - mkdir(combine_path(combine_path(getcwd(),dir),cmd[1])); - io->write(sprintf("%4c",0)); + io->write(sprintf("%4c",!ret)); break; } @@ -199,13 +209,18 @@ void handle_incoming_connection(object(Stdio.File) io) io->write(sprintf("%4c",0)); io->write(sprintf("%4c",p->wait())); }else{ + werror("dir=%s\n",dir); werror(master()->describe_backtrace(err)); destruct(p2); io->write(sprintf("%4c",0)); io->write(sprintf("%4c",69)); } } +#ifdef WINE + io->close("rw"); +#else io->close("w"); +#endif destruct(io); } -- GitLab