From d29d27b5513735bdb0f77505f5124b1bed390a17 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 28 Nov 2015 15:46:31 +0100 Subject: [PATCH] fix program name detection in rsh method Regression intoduced in 23e64f6d0facf9610c1042326ad9850e071e8349 --- methods/rsh.cc | 9 ++++----- methods/rsh.h | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/methods/rsh.cc b/methods/rsh.cc index bcd688833..9d82a99e3 100644 --- a/methods/rsh.cc +++ b/methods/rsh.cc @@ -34,7 +34,6 @@ #include /*}}}*/ -const char *Prog; unsigned long TimeOut = 120; Configuration::Item const *RshOptions = 0; time_t RSHMethod::FailTime = 0; @@ -44,8 +43,8 @@ int RSHMethod::FailFd = -1; // RSHConn::RSHConn - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -RSHConn::RSHConn(URI Srv) : Len(0), WriteFd(-1), ReadFd(-1), - ServerName(Srv), Process(-1) { +RSHConn::RSHConn(std::string const &pProg, URI Srv) : Len(0), WriteFd(-1), ReadFd(-1), + ServerName(Srv), Prog(pProg), Process(-1) { Buffer[0] = '\0'; } /*}}}*/ @@ -128,7 +127,7 @@ bool RSHConn::Connect(std::string Host, unsigned int Port, std::string User) // Probably should do // dup2(open("/dev/null",O_RDONLY),STDERR_FILENO); - Args[i++] = Prog; + Args[i++] = Prog.c_str(); // Insert user-supplied command line options Configuration::Item const *Opts = RshOptions; @@ -443,7 +442,7 @@ bool RSHMethod::Fetch(FetchItem *Itm) // Connect to the server if (Server == 0 || Server->Comp(Get) == false) { delete Server; - Server = new RSHConn(Get); + Server = new RSHConn(Prog, Get); } // Could not connect is a transient error.. diff --git a/methods/rsh.h b/methods/rsh.h index 35cbee3e0..64a5cf661 100644 --- a/methods/rsh.h +++ b/methods/rsh.h @@ -25,6 +25,7 @@ class RSHConn int WriteFd; int ReadFd; URI ServerName; + std::string const Prog; // Private helper functions bool ReadLine(std::string &Text); @@ -49,7 +50,7 @@ class RSHConn bool Get(const char *Path,FileFd &To,unsigned long long Resume, Hashes &Hash,bool &Missing, unsigned long long Size); - explicit RSHConn(URI Srv); + RSHConn(std::string const &Prog, URI Srv); ~RSHConn(); }; -- 2.45.2