summaryrefslogtreecommitdiffstats
path: root/kdeprint/management/kmwsocketutil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeprint/management/kmwsocketutil.cpp')
-rw-r--r--kdeprint/management/kmwsocketutil.cpp219
1 files changed, 0 insertions, 219 deletions
diff --git a/kdeprint/management/kmwsocketutil.cpp b/kdeprint/management/kmwsocketutil.cpp
deleted file mode 100644
index e6d06bae2..000000000
--- a/kdeprint/management/kmwsocketutil.cpp
+++ /dev/null
@@ -1,219 +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.
- **/
-
-#include <config.h>
-
-#include "kmwsocketutil.h"
-
-#include <tqprogressbar.h>
-#include <tqlineedit.h>
-#include <tqlabel.h>
-#include <tqcombobox.h>
-#include <tqpushbutton.h>
-#include <kmessagebox.h>
-#include <tqlayout.h>
-#include <tqregexp.h>
-#include <knumvalidator.h>
-
-#include <kapplication.h>
-#include <klocale.h>
-#include <kextsock.h>
-#include <kdebug.h>
-
-#include <unistd.h>
-
-TQString localRootIP();
-
-//----------------------------------------------------------------------------------------
-
-SocketConfig::SocketConfig(KMWSocketUtil *util, TQWidget *parent, const char *name)
-: KDialogBase(parent, name, true, TQString::null, Ok|Cancel, Ok, true)
-{
- TQWidget *dummy = new TQWidget(this);
- setMainWidget(dummy);
- KIntValidator *val = new KIntValidator( this );
- TQLabel *masklabel = new TQLabel(i18n("&Subnetwork:"),dummy);
- TQLabel *portlabel = new TQLabel(i18n("&Port:"),dummy);
- TQLabel *toutlabel = new TQLabel(i18n("&Timeout (ms):"),dummy);
- TQLineEdit *mm = new TQLineEdit(dummy);
- mm->setText(TQString::tqfromLatin1(".[0-255]"));
- mm->setReadOnly(true);
- mm->setFixedWidth(fontMetrics().width(mm->text())+10);
-
- mask_ = new TQLineEdit(dummy);
- mask_->tqsetAlignment(Qt::AlignRight);
- port_ = new TQComboBox(true,dummy);
- if ( port_->lineEdit() )
- port_->lineEdit()->setValidator( val );
- tout_ = new TQLineEdit(dummy);
- tout_->setValidator( val );
-
- masklabel->setBuddy(mask_);
- portlabel->setBuddy(port_);
- toutlabel->setBuddy(tout_);
-
- mask_->setText(util->root_);
- port_->insertItem("631");
- port_->insertItem("9100");
- port_->insertItem("9101");
- port_->insertItem("9102");
- port_->setEditText(TQString::number(util->port_));
- tout_->setText(TQString::number(util->timeout_));
-
- TQGridLayout *main_ = new TQGridLayout(dummy, 3, 2, 0, 10);
- TQHBoxLayout *lay1 = new TQHBoxLayout(0, 0, 5);
- main_->addWidget(masklabel, 0, 0);
- main_->addWidget(portlabel, 1, 0);
- main_->addWidget(toutlabel, 2, 0);
- main_->addLayout(lay1, 0, 1);
- main_->addWidget(port_, 1, 1);
- main_->addWidget(tout_, 2, 1);
- lay1->addWidget(mask_,1);
- lay1->addWidget(mm,0);
-
- resize(250,130);
- setCaption(i18n("Scan Configuration"));
-}
-
-SocketConfig::~SocketConfig()
-{
-}
-
-void SocketConfig::slotOk()
-{
- TQString msg;
- TQRegExp re("(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})");
- if (!re.exactMatch(mask_->text()))
- msg = i18n("Wrong subnetwork specification.");
- else
- {
- for (int i=1; i<=3; i++)
- if (re.cap(i).toInt() >= 255)
- {
- msg = i18n("Wrong subnetwork specification.");
- break;
- }
- }
-
- bool ok(false);
- int v = tout_->text().toInt(&ok);
- if (!ok || v <= 0)
- msg = i18n("Wrong timeout specification.");
- v = port_->currentText().toInt(&ok);
- if (!ok || v <= 0)
- msg = i18n("Wrong port specification.");
- if (!msg.isEmpty())
- {
- KMessageBox::error(this,msg);
- return;
- }
-
- KDialogBase::slotOk();
-}
-
-//----------------------------------------------------------------------------------------
-
-KMWSocketUtil::KMWSocketUtil()
-{
- printerlist_.setAutoDelete(true);
- root_ = localRootIP();
- port_ = 9100;
- timeout_ = 50;
-}
-
-bool KMWSocketUtil::checkPrinter(const TQString& IPstr, int port, TQString* hostname)
-{
- KExtendedSocket sock(IPstr, port, KExtendedSocket::inetSocket|KExtendedSocket::streamSocket);
- bool result(false);
- sock.setTimeout(0, timeout_ * 1000);
- if (sock.connect() == 0)
- {
- if (hostname)
- {
- TQString portname;
- KExtendedSocket::resolve((KSocketAddress*)(sock.peerAddress()), *hostname, portname);
- }
- result = true;
- }
- sock.close();
- return result;
-}
-
-bool KMWSocketUtil::scanNetwork(TQProgressBar *bar)
-{
- printerlist_.setAutoDelete(true);
- printerlist_.clear();
- int n(256);
- if (bar)
- bar->setTotalSteps(n);
- for (int i=0; i<n; i++)
- {
- TQString IPstr = root_ + "." + TQString::number(i);
- TQString hostname;
- if (checkPrinter(IPstr, port_, &hostname))
- { // we found a printer at this address, create SocketInfo entry in printer list
- SocketInfo *info = new SocketInfo;
- info->IP = IPstr;
- info->Port = port_;
- info->Name = hostname;
- printerlist_.append(info);
- }
- if (bar)
- {
- bar->setProgress(i);
- kapp->flushX();
- }
- }
- return true;
-}
-
-void KMWSocketUtil::configureScan(TQWidget *parent)
-{
- SocketConfig *dlg = new SocketConfig(this,parent);
- if (dlg->exec())
- {
- root_ = dlg->mask_->text();
- port_ = dlg->port_->currentText().toInt();
- timeout_ = dlg->tout_->text().toInt();
- }
- delete dlg;
-}
-
-//----------------------------------------------------------------------------------------
-
-TQString localRootIP()
-{
- char buf[256];
- buf[0] = '\0';
- if (!gethostname(buf, sizeof(buf)))
- buf[sizeof(buf)-1] = '\0';
- TQPtrList<KAddressInfo> infos = KExtendedSocket::lookup(buf, TQString::null);
- infos.setAutoDelete(true);
- if (infos.count() > 0)
- {
- TQString IPstr = infos.first()->address()->nodeName();
- int p = IPstr.findRev('.');
- IPstr.truncate(p);
- return IPstr;
- }
- return TQString::null;
-}
-
-#include "kmwsocketutil.moc"