diff options
author | Fritz Elfert <felfert@to.com> | 2001-05-21 21:33:56 +0000 |
---|---|---|
committer | Fritz Elfert <felfert@to.com> | 2001-05-21 21:33:56 +0000 |
commit | 54c8cf6f971719937edbd38c4e78c57c69894a30 (patch) | |
tree | 4047b2bc78ab999fbf28c39ccf43c8d39f6ace1a | |
parent | 422a24ab12eb8ae22be9ee17de6dcc879f202f41 (diff) | |
download | plptools-54c8cf6f971719937edbd38c4e78c57c69894a30.tar.gz plptools-54c8cf6f971719937edbd38c4e78c57c69894a30.tar.bz2 plptools-54c8cf6f971719937edbd38c4e78c57c69894a30.zip |
Implemented slave_status (to correctly return idle slaves to pool).
Fixed some NLS probs.
-rw-r--r-- | kde2/kioslave/kio_plp.cpp | 37 | ||||
-rw-r--r-- | kde2/kioslave/kio_plp.h | 1 |
2 files changed, 32 insertions, 6 deletions
diff --git a/kde2/kioslave/kio_plp.cpp b/kde2/kioslave/kio_plp.cpp index 2c03009..5853205 100644 --- a/kde2/kioslave/kio_plp.cpp +++ b/kde2/kioslave/kio_plp.cpp @@ -37,6 +37,7 @@ #include <kinstance.h> #include <kdebug.h> +#include <kglobal.h> #include <klocale.h> #include <kconfig.h> @@ -66,7 +67,7 @@ extern "C" { int kdemain( int argc, char **argv ) { - KInstance instance( "kio_nfs" ); + KInstance instance("kio_plp"); if (argc != 4) { fprintf(stderr, "Usage: kio_plp protocol domain-socket1 domain-socket2\n"); @@ -74,6 +75,7 @@ kdemain( int argc, char **argv ) { } kdDebug(PLP_DEBUGAREA) << "PLP: kdemain: starting" << endl; + KGlobal::locale()->insertCatalogue(QString::fromLatin1("plptools")); PLPProtocol slave(argv[2], argv[3]); slave.dispatchLoop(); return 0; @@ -113,7 +115,9 @@ removeFirstPart(const QString& path, QString &removed) { } PLPProtocol::PLPProtocol (const QCString &pool, const QCString &app) - :SlaveBase("psion", pool, app), plpRfsv(0), plpRfsvSocket(0) { + :SlaveBase("psion", pool, app), plpRfsv(0), plpRfsvSocket(0), + plpRpcs(0), plpRpcsSocket(0) +{ kdDebug(PLP_DEBUGAREA) << "PLPProtocol::PLPProtocol(" << pool << "," << app << ")" << endl; @@ -168,8 +172,14 @@ closeConnection() { delete(plpRfsv); if (plpRfsvSocket) delete(plpRfsvSocket); + if (plpRpcs) + delete(plpRpcs); + if (plpRpcsSocket) + delete(plpRpcsSocket); plpRfsv = 0; plpRfsvSocket = 0; + plpRpcs = 0; + plpRpcsSocket = 0; } bool PLPProtocol:: @@ -237,27 +247,33 @@ openConnection() { closeConnection(); plpRfsvSocket = new ppsocket(); - QString estr = i18n("Could not connect to ncpd at %1:%2").arg(currentHost).arg(currentPort); + QString estr = QString("%1:%2").arg(currentHost).arg(currentPort); if (!plpRfsvSocket->connect((char *)(currentHost.data()), currentPort)) { + closeConnection(); error(ERR_COULD_NOT_CONNECT, estr); return; } rfsvfactory factory(plpRfsvSocket); plpRfsv = factory.create(false); if (plpRfsv == 0L) { - error(ERR_COULD_NOT_CONNECT, estr); + closeConnection(); + error(ERR_COULD_NOT_CONNECT, estr + ": " + + KGlobal::locale()->translate((const char *)factory.getError())); return; } plpRpcsSocket = new ppsocket(); if (!plpRpcsSocket->connect((char *)(currentHost.data()), currentPort)) { + closeConnection(); error(ERR_COULD_NOT_CONNECT, estr); return; } rpcsfactory factory2(plpRpcsSocket); plpRpcs = factory2.create(false); if (plpRpcs == 0L) { - error(ERR_COULD_NOT_CONNECT, estr); + closeConnection(); + error(ERR_COULD_NOT_CONNECT, estr + ": " + + KGlobal::locale()->translate((const char *)factory2.getError())); return; } @@ -272,6 +288,9 @@ openConnection() { plpRpcs->getMachineInfo(machInfo); } + drives.clear(); + drivechars.clear(); + u_int32_t devbits; if ((res = plpRfsv->devlist(devbits)) == rfsv::E_PSI_GEN_NONE) { @@ -300,6 +319,12 @@ openConnection() { kdDebug(PLP_DEBUGAREA) << "openConnection succeeded" << endl; } +void PLPProtocol:: +slave_status() { + kdDebug(PLP_DEBUGAREA) << "PLP::slave_status " << (plpRfsv != 0) << endl; + slaveStatus(QString::null, (plpRfsv != 0)); +} + bool PLPProtocol:: checkConnection() { kdDebug(PLP_DEBUGAREA) << "PLP::checkConnection" << endl; @@ -1109,7 +1134,7 @@ special(const QByteArray &a) { kdDebug(PLP_DEBUGAREA) << "get Ownerinfo" << endl; bufferArray b; - Enum<rfsv::errs> res = plpRpcs->getOwnerInfo(b); + Enum<rfsv::errs>res = plpRpcs->getOwnerInfo(b); if (res != rfsv::E_PSI_GEN_NONE) { error(ERR_COULD_NOT_STAT, "Owner"); return; diff --git a/kde2/kioslave/kio_plp.h b/kde2/kioslave/kio_plp.h index c5c0701..4f2763a 100644 --- a/kde2/kioslave/kio_plp.h +++ b/kde2/kioslave/kio_plp.h @@ -54,6 +54,7 @@ public: virtual void chmod(const KURL& url, int permissions); virtual void rename(const KURL &src, const KURL &dest, bool overwrite); virtual void copy(const KURL& src, const KURL &dest, int mode, bool overwrite ); + virtual void slave_status(void); virtual void special(const QByteArray &a); void calcprogress(long total); |