From 23f25b04b95f08f5fc3aeaf9ea745326246dec9f Mon Sep 17 00:00:00 2001 From: Fritz Elfert Date: Mon, 18 Mar 2002 05:01:40 +0000 Subject: - made kpsion SIBO-aware - Added SIBO-related stuff in PsiTime - Added new class PsiProcess, renamed rpcs:queryDrive to queryPrograms and changed it accordingly - Adapted kspion, plpbackup, plpnfsd and plpftp to use queryPrograms - Several cleanups in rfsv16 --- lib/rpcs32.cc | 55 ++++++++++--------------------------------------------- 1 file changed, 10 insertions(+), 45 deletions(-) (limited to 'lib/rpcs32.cc') diff --git a/lib/rpcs32.cc b/lib/rpcs32.cc index ebb4f9c..92132af 100644 --- a/lib/rpcs32.cc +++ b/lib/rpcs32.cc @@ -40,53 +40,12 @@ rpcs32::rpcs32(ppsocket * _skt) { skt = _skt; + mtCacheS5mx = 0; reset(); } Enum rpcs32:: -queryDrive(char drive, bufferArray &ret) -{ - bufferStore a; - Enum res; - - a.addByte(drive); - if (!sendCommand(rpcs::QUERY_DRIVE, a)) - return rfsv::E_PSI_FILE_DISC; - if ((res = getResponse(a, false)) != rfsv::E_PSI_GEN_NONE) - return res; - int l = a.getLen(); - ret.clear(); - while (l > 0) { - bufferStore b, c; - const char *s; - char *p; - int pid; - int sl; - - s = a.getString(0); - sl = strlen(s) + 1; - l -= sl; - a.discardFirstBytes(sl); - if ((p = strstr(s, ".$"))) { - *p = '\0'; p += 2; - sscanf(p, "%d", &pid); - } else - pid = 0; - b.addWord(pid); - b.addStringT(s); - s = a.getString(0); - sl = strlen(s) + 1; - l -= sl; - a.discardFirstBytes(sl); - c.addStringT(s); - ret.push(c); - ret.push(b); - } - return res; -} - -Enum rpcs32:: -getCmdLine(const char *process, bufferStore &ret) +getCmdLine(const char *process, string &ret) { bufferStore a; Enum res; @@ -94,8 +53,8 @@ getCmdLine(const char *process, bufferStore &ret) a.addStringT(process); if (!sendCommand(rpcs::GET_CMDLINE, a)) return rfsv::E_PSI_FILE_DISC; - res = getResponse(a, true); - ret = a; + if ((res = getResponse(a, true)) == rfsv::E_PSI_GEN_NONE) + ret = a.getString(0); return res; } @@ -163,6 +122,12 @@ getMachineInfo(machineInfo &mi) mi.externalPower = (a.getDWord(120) != 0); + mtCacheS5mx |= 8; + if (res == rfsv::E_PSI_GEN_NONE) { + if (!strcmp(mi.machineName, "SERIES5mx")) + mtCacheS5mx |= 2; + } + return res; } -- cgit v1.2.3