summaryrefslogtreecommitdiffstats
path: root/kdeprint/kdeprintcheck.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeprint/kdeprintcheck.cpp')
-rw-r--r--kdeprint/kdeprintcheck.cpp134
1 files changed, 0 insertions, 134 deletions
diff --git a/kdeprint/kdeprintcheck.cpp b/kdeprint/kdeprintcheck.cpp
deleted file mode 100644
index 1ace082a4..000000000
--- a/kdeprint/kdeprintcheck.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * This file is part of the KDE libraries
- * Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License version 2 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- **/
-
-/*
- * Implementation of simple checking mechanism. Rules are defined in
- * the form of an URI. Available syntax is:
- * - exec:/<execname> -> check for an executable in
- * $PATH variable.
- * - config:/path/to/file -> check for the existence of a file
- * or directory in KDE or standard
- * UNIX config locations
- * - file:/path/to/file
- * - dir:/path/to/dir -> simply check the existence of the
- * a file or directory
- * - service:/serv -> try to connect to a port on the
- * specified host (usually localhost)
- * "serv" can be a port value or service name
- *
- * TO BE IMPLEMENTED:
- * - run:/<execname> -> check for a running executable
- */
-
-#include "tdeprintcheck.h"
-
-#include <kstandarddirs.h>
-#include <kdebug.h>
-#include <kextsock.h>
-#include <tqfile.h>
-#include <unistd.h>
-
-static const char* const config_stddirs[] = {
- "/etc/",
- "/usr/etc/",
- "/usr/local/etc/",
- "/opt/etc/",
- "/opt/local/etc/",
- 0
-};
-
-bool KdeprintChecker::check(KConfig *conf, const TQString& group)
-{
- if (!group.isEmpty())
- conf->setGroup(group);
- TQStringList uris = conf->readListEntry("Require");
- return check(uris);
-}
-
-bool KdeprintChecker::check(const TQStringList& uris)
-{
- bool state(true);
- for (TQStringList::ConstIterator it=uris.begin(); it!=uris.end() && state; ++it)
- {
- state = (state && checkURL(KURL(*it)));
- // kdDebug( 500 ) << "auto-detection uri=" << *it << ", state=" << state << endl;
- }
- return state;
-}
-
-bool KdeprintChecker::checkURL(const KURL& url)
-{
- QString prot(url.protocol());
- if (prot == "config")
- return checkConfig(url);
- else if (prot == "exec")
- return checkExec(url);
- else if (prot == "file" || prot == "dir")
- return KStandardDirs::exists(url.url());
- else if (prot == "service")
- return checkService(url);
- return false;
-}
-
-bool KdeprintChecker::checkConfig(const KURL& url)
-{
- // get the config filename (may contain a path)
- QString f(url.path().mid(1));
- bool state(false);
-
- // first check for standard KDE config file
- if (!locate("config",f).isEmpty())
- state = true;
- else
- // otherwise check in standard UNIX config directories
- {
- const char* const *p = config_stddirs;
- while (*p)
- {
- // kdDebug( 500 ) << "checkConfig() with " << TQString::tqfromLatin1( *p ) + f << endl;
- if ( TQFile::exists( TQString::tqfromLatin1( *p ) + f ) )
- {
- state = true;
- break;
- }
- else
- p++;
- }
- }
- return state;
-}
-
-bool KdeprintChecker::checkExec(const KURL& url)
-{
- QString execname(url.path().mid(1));
- return !(KStandardDirs::findExe(execname).isEmpty());
-}
-
-bool KdeprintChecker::checkService(const KURL& url)
-{
- QString serv(url.path().mid(1));
- KExtendedSocket sock;
-
- bool ok;
- int port = serv.toInt(&ok);
-
- if (ok) sock.setAddress("localhost", port);
- else sock.setAddress("localhost", serv);
- return (sock.connect() == 0);
-}