diff options
Diffstat (limited to 'kioslave/finger/kio_finger.cpp')
-rw-r--r-- | kioslave/finger/kio_finger.cpp | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/kioslave/finger/kio_finger.cpp b/kioslave/finger/kio_finger.cpp deleted file mode 100644 index 8f330b95e..000000000 --- a/kioslave/finger/kio_finger.cpp +++ /dev/null @@ -1,266 +0,0 @@ - -/*************************************************************************** - kio_finger.cpp - description - ------------------- - begin : Sun Aug 12 2000 - copyright : (C) 2000 by Andreas Schlapbach - email : schlpbch@iam.unibe.ch - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <sys/stat.h> -#include <string.h> - -#include <tqtextstream.h> -#include <tqdict.h> -#include <tqcstring.h> -#include <tqfile.h> -#include <tqregexp.h> - -#include <kdebug.h> -#include <kinstance.h> -#include <kglobal.h> -#include <kstandarddirs.h> -#include <klocale.h> -#include <kurl.h> - -#include "kio_finger.h" - - -using namespace TDEIO; - -static const TQString defaultRefreshRate = "60"; - -extern "C" -{ - KDE_EXPORT int kdemain( int argc, char **argv ) - { - TDEInstance instance( "kio_finger" ); - - //kdDebug() << "*** Starting kio_finger " << getpid() << endl; - - if (argc != 4) - { - fprintf(stderr, "Usage: kio_finger protocol domain-socket1 domain-socket2\n"); - exit(-1); - } - - FingerProtocol slave(argv[2], argv[3]); - slave.dispatchLoop(); - - //kdDebug() << "*** kio_finger Done" << endl; - return 0; - } -} - - -/* ---------------------------------------------------------------------------------- */ - - -FingerProtocol::FingerProtocol(const TQCString &pool_socket, const TQCString &app_socket) - : TQObject(), SlaveBase("finger", pool_socket, app_socket) -{ - myStdStream = new TQString(); - getProgramPath(); -} - - -/* ---------------------------------------------------------------------------------- */ - - -FingerProtocol::~FingerProtocol() -{ - //kdDebug() << "FingerProtocol::~FingerProtocol()" << endl; - delete myURL; - delete myPerlPath; - delete myFingerPath; - delete myFingerPerlScript; - delete myFingerCSSFile; - delete myStdStream; -} - - -/* ---------------------------------------------------------------------------------- */ - - -void FingerProtocol::get(const KURL& url ) -{ - //kdDebug() << "kio_finger::get(const KURL& url)" << endl ; - - this->parseCommandLine(url); - - //kdDebug() << "myURL: " << myURL->prettyURL() << endl; - - // Reset the stream - *myStdStream=""; - - TQString query = myURL->query(); - TQString refreshRate = defaultRefreshRate; - - //kdDebug() << "query: " << query << endl; - - // Check the validity of the query - - TQRegExp regExp("?refreshRate=[0-9][0-9]*", true, true); - if (query.contains(regExp)) { - //kdDebug() << "looks like a valid query" << endl; - TQRegExp regExp( "([0-9]+)" ); - regExp.search(query); - refreshRate = regExp.cap(0); - } - - //kdDebug() << "Refresh rate: " << refreshRate << endl; - - myTDEProcess = new TDEProcess(); - *myTDEProcess << *myPerlPath << *myFingerPerlScript - << *myFingerPath << *myFingerCSSFile - << refreshRate << myURL->host() << myURL->user() ; - - connect(myTDEProcess, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)), - this, TQT_SLOT(slotGetStdOutput(TDEProcess *, char *, int))); - //connect(myTDEProcess, TQT_SIGNAL(receivedStderr(TDEProcess *, char *, int)), - // this, TQT_SLOT(slotGetStdOutput(TDEProcess *, char *, int))); - - myTDEProcess->start(TDEProcess::Block, TDEProcess::All); - - data(TQCString(TQString(*myStdStream).local8Bit())); - - data(TQByteArray()); - finished(); - - //clean up - - delete myTDEProcess; -} - - -/* ---------------------------------------------------------------------------------- */ - - -void FingerProtocol::slotGetStdOutput(TDEProcess* /* p */, char *s, int len) -{ - //kdDebug() << "void FingerProtocol::slotGetStdoutOutput()" << endl; - *myStdStream += TQString::fromLocal8Bit(s, len); -} - - -/* ---------------------------------------------------------------------------------- */ - - -void FingerProtocol::mimetype(const KURL & /*url*/) -{ - mimeType("text/html"); - finished(); -} - - -/* ---------------------------------------------------------------------------------- */ - - -void FingerProtocol::getProgramPath() -{ - //kdDebug() << "kfingerMainWindow::getProgramPath()" << endl; - // Not to sure wether I'm using the right error number here. - schlpbch - - - myPerlPath = new TQString(TDEGlobal::dirs()->findExe("perl")); - if (myPerlPath->isEmpty()) - { - //kdDebug() << "Perl command not found" << endl; - this->error(ERR_CANNOT_LAUNCH_PROCESS, - i18n("Could not find the Perl program on your system, please install.")); - exit(); - } - else - { - //kdDebug() << "Perl command found:" << *myPerlPath << endl; - } - - myFingerPath = new TQString(TDEGlobal::dirs()->findExe("finger")); - if ((myFingerPath->isEmpty())) - { - //kdDebug() << "Finger command not found" << endl; - this->error(ERR_CANNOT_LAUNCH_PROCESS, - i18n("Could not find the Finger program on your system, please install.")); - exit(); - } - else - { - //kdDebug() << "Finger command found:" << *myFingerPath << endl; - } - - myFingerPerlScript = new TQString(locate("data","kio_finger/kio_finger.pl")); - if (myFingerPerlScript->isEmpty()) - { - //kdDebug() << "kio_finger.pl script not found" << endl; - this->error(ERR_CANNOT_LAUNCH_PROCESS, - i18n("kio_finger Perl script not found.")); - exit(); - } - else - { - //kdDebug() << "kio_finger perl script found: " << *myFingerPerlScript << endl; - } - - myFingerCSSFile = new TQString(locate("data","kio_finger/kio_finger.css")); - if (myFingerCSSFile->isEmpty()) - { - //kdDebug() << "kio_finger.css file not found" << endl; - this->warning(i18n("kio_finger CSS script not found. Output will look ugly.")); - } - else - { - //kdDebug() << "kio_finger CSS file found: " << *myFingerCSSFile << endl; - } -} - - -/* --------------------------------------------------------------------------- */ - - -void FingerProtocol::parseCommandLine(const KURL& url) -{ - myURL = new KURL(url); - - /* - * Generate a valid finger url - */ - - if(myURL->isEmpty() || !myURL->isValid() || - (myURL->user().isEmpty() && myURL->host().isEmpty())) - { - myURL->setProtocol("finger"); - myURL->setUser(""); - myURL->setHost("localhost"); - } - - /* - * If no specific port is specified, set it to 79. - */ - - if(myURL->port() == 0) { - myURL->setPort(79); - } - - /* - * If no refresh rate is given, set it to defaultRefreshRate - */ - - if (myURL->query().isEmpty()) { - myURL->setQuery("?refreshRate="+defaultRefreshRate); - } -} - -/* ---------------------------------------------------------------------------------- */ -#include "kio_finger.moc" -/* ---------------------------------------------------------------------------------- */ - |