251 lines
8.7 KiB
Text
251 lines
8.7 KiB
Text
--- kdeprint/cups/Makefile.in Tue Sep 26 17:18:13 2006
|
|
+++ kdeprint/cups/Makefile.in Tue Sep 26 17:19:12 2006
|
|
@@ -110,7 +110,7 @@
|
|
make_driver_db_cups_DEPENDENCIES = ../libdriverparse.a \
|
|
$(top_builddir)/kdecore/libkdefakes.la $(am__DEPENDENCIES_1) \
|
|
$(am__DEPENDENCIES_1)
|
|
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/dcop -I$(top_builddir)/kdecore -I$(top_builddir)/kio/kssl -I$(top_builddir)/kjs
|
|
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/dcop -I$(top_builddir)/kdecore -I$(top_builddir)/kdecore/network -I$(top_builddir)/kio/kssl -I$(top_builddir)/kjs
|
|
depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
|
|
am__depfiles_maybe = depfiles
|
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|
--- kdeprint/cups/cupsinfos.cpp 2005/09/29 09:47:40 465272
|
|
+++ kdeprint/cups/cupsinfos.cpp 2006/09/20 15:33:24 586778
|
|
@@ -69,6 +69,13 @@
|
|
{
|
|
}
|
|
|
|
+QString CupsInfos::hostaddr() const
|
|
+{
|
|
+ if (host_[0] != '/')
|
|
+ return host_ + ":" + port_;
|
|
+ return host_;
|
|
+}
|
|
+
|
|
void CupsInfos::setHost(const QString& s)
|
|
{
|
|
host_ = s;
|
|
--- kdeprint/cups/kmcupsmanager.cpp 2005/11/28 03:56:46 483752
|
|
+++ kdeprint/cups/kmcupsmanager.cpp 2006/09/20 15:38:41 586782
|
|
@@ -45,12 +45,14 @@
|
|
#include <klocale.h>
|
|
#include <kconfig.h>
|
|
#include <kstandarddirs.h>
|
|
+#include <ksocketbase.h>
|
|
#include <klibloader.h>
|
|
#include <kmessagebox.h>
|
|
#include <kaction.h>
|
|
#include <kdialogbase.h>
|
|
#include <kextendedsocket.h>
|
|
#include <kprocess.h>
|
|
+#include <kbufferedsocket.h>
|
|
#include <kfilterdev.h>
|
|
#include <cups/cups.h>
|
|
#include <cups/ppd.h>
|
|
@@ -88,7 +90,7 @@
|
|
|
|
KMCupsManager::~KMCupsManager()
|
|
{
|
|
- //delete m_socket;
|
|
+ delete m_socket;
|
|
}
|
|
|
|
QString KMCupsManager::driverDbCreationProgram()
|
|
@@ -135,7 +137,8 @@
|
|
{
|
|
req.setOperation(CUPS_ADD_CLASS);
|
|
QStringList members = p->members(), uris;
|
|
- QString s = QString::fromLocal8Bit("ipp://%1:%2/printers/").arg(CupsInfos::self()->host()).arg(CupsInfos::self()->port());
|
|
+ QString s;
|
|
+ s = QString::fromLocal8Bit("ipp://%1/printers/").arg(CupsInfos::self()->hostaddr());
|
|
for (QStringList::ConstIterator it=members.begin(); it!=members.end(); ++it)
|
|
uris.append(s+(*it));
|
|
req.addURI(IPP_TAG_PRINTER,"member-uris",uris);
|
|
@@ -907,25 +910,23 @@
|
|
|
|
QString KMCupsManager::stateInformation()
|
|
{
|
|
- return QString("%1: %2:%3")
|
|
+ return QString("%1: %2")
|
|
.arg(i18n("Server"))
|
|
- .arg(CupsInfos::self()->host())
|
|
- .arg(CupsInfos::self()->port());
|
|
+ .arg(CupsInfos::self()->hostaddr());
|
|
}
|
|
|
|
void KMCupsManager::checkUpdatePossibleInternal()
|
|
{
|
|
kdDebug(500) << "Checking for update possible" << endl;
|
|
delete m_socket;
|
|
- /*m_socket = new KExtendedSocket( CupsInfos::self()->host(), CupsInfos::self()->port() );
|
|
- connect( m_socket, SIGNAL( connectionSuccess() ), SLOT( slotConnectionSuccess() ) );
|
|
- connect( m_socket, SIGNAL( connectionFailed( int ) ), SLOT( slotConnectionFailed( int ) ) );
|
|
- m_socket->setTimeout( 1 );*/
|
|
- m_socket = new QSocket( this );
|
|
- connect( m_socket, SIGNAL( connected() ), SLOT( slotConnectionSuccess() ) );
|
|
- connect( m_socket, SIGNAL( error( int ) ), SLOT( slotConnectionFailed( int ) ) );
|
|
- trials = 5;
|
|
- QTimer::singleShot( 1, this, SLOT( slotAsyncConnect() ) );
|
|
+ m_socket = new KNetwork::KBufferedSocket;
|
|
+ m_socket->setTimeout( 1 );
|
|
+ connect( m_socket, SIGNAL( connected(const KResolverEntry&) ),
|
|
+ SLOT( slotConnectionSuccess() ) );
|
|
+ connect( m_socket, SIGNAL( gotError( int ) ), SLOT( slotConnectionFailed( int ) ) );
|
|
+
|
|
+ trials = 5;
|
|
+ QTimer::singleShot( 1, this, SLOT( slotAsyncConnect() ) );
|
|
}
|
|
|
|
void KMCupsManager::slotConnectionSuccess()
|
|
@@ -959,7 +960,10 @@
|
|
{
|
|
kdDebug(500) << "Starting async connect" << endl;
|
|
//m_socket->startAsyncConnect();
|
|
- m_socket->connectToHost( CupsInfos::self()->host(), CupsInfos::self()->port() );
|
|
+ if (CupsInfos::self()->host().startsWith("/"))
|
|
+ m_socket->connect( QString(), CupsInfos::self()->host());
|
|
+ else
|
|
+ m_socket->connectToHost( CupsInfos::self()->host(), CupsInfos::self()->port() );
|
|
}
|
|
|
|
void KMCupsManager::slotConnectionFailed( int errcode )
|
|
@@ -975,9 +979,25 @@
|
|
return;
|
|
}
|
|
|
|
- setErrorMsg( i18n( "Connection to CUPS server failed. Check that the CUPS server is correctly installed and running. "
|
|
- "Error: %1." ).arg( errcode == QSocket::ErrConnectionRefused ? i18n( "connection refused" ) : i18n( "host not found" ) ) );
|
|
- setUpdatePossible( false );
|
|
+ QString einfo;
|
|
+
|
|
+ switch (errcode) {
|
|
+ case KNetwork::KSocketBase::ConnectionRefused:
|
|
+ case KNetwork::KSocketBase::ConnectionTimedOut:
|
|
+ einfo = i18n("connection refused") + QString(" (%1)").arg(errcode);
|
|
+ break;
|
|
+ case KNetwork::KSocketBase::LookupFailure:
|
|
+ einfo = i18n("host not found") + QString(" (%1)").arg(errcode);
|
|
+ break;
|
|
+ case KNetwork::KSocketBase::WouldBlock:
|
|
+ default:
|
|
+ einfo = i18n("read failed (%1)").arg(errcode);
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ setErrorMsg( i18n( "Connection to CUPS server failed. Check that the CUPS server is correctly installed and running. "
|
|
+ "Error: %2: %1." ).arg( einfo, CupsInfos::self()->host()));
|
|
+ setUpdatePossible( false );
|
|
}
|
|
|
|
void KMCupsManager::hostPingSlot() {
|
|
@@ -1014,7 +1034,7 @@
|
|
if (use && !p->uri().isEmpty())
|
|
uri = p->uri().prettyURL();
|
|
else
|
|
- uri = QString("ipp://%1:%2/%4/%3").arg(CupsInfos::self()->host()).arg(CupsInfos::self()->port()).arg(p->printerName()).arg((p->isClass(false) ? "classes" : "printers"));
|
|
+ uri = QString("ipp://%1/%3/%2").arg(CupsInfos::self()->hostaddr()).arg(p->printerName()).arg((p->isClass(false) ? "classes" : "printers"));
|
|
return uri;
|
|
}
|
|
|
|
--- kdeprint/cups/kmcupsuimanager.cpp 2005/09/29 09:47:40 465272
|
|
+++ kdeprint/cups/kmcupsuimanager.cpp 2006/09/20 15:38:41 586782
|
|
@@ -135,7 +135,7 @@
|
|
QString uri;
|
|
|
|
req.setOperation(CUPS_GET_DEVICES);
|
|
- uri = QString::fromLocal8Bit("ipp://%1:%2/printers/").arg(CupsInfos::self()->host()).arg(CupsInfos::self()->port());
|
|
+ uri = QString::fromLocal8Bit("ipp://%1/printers/").arg(CupsInfos::self()->hostaddr());
|
|
req.addURI(IPP_TAG_OPERATION,"printer-uri",uri);
|
|
|
|
if (req.doRequest("/"))
|
|
--- kdeprint/cups/cupsinfos.h 2005/09/29 09:47:40 465272
|
|
+++ kdeprint/cups/cupsinfos.h 2006/09/20 15:33:24 586778
|
|
@@ -32,6 +32,7 @@
|
|
~CupsInfos();
|
|
|
|
const QString& host() const;
|
|
+ QString hostaddr() const;
|
|
int port() const;
|
|
const QString& login() const;
|
|
const QString& password() const;
|
|
--- kdeprint/cups/kmcupsmanager.h 2005/09/29 09:47:40 465272
|
|
+++ kdeprint/cups/kmcupsmanager.h 2006/09/20 15:38:41 586782
|
|
@@ -25,7 +25,10 @@
|
|
class IppRequest;
|
|
class KLibrary;
|
|
class KExtendedSocket;
|
|
-class QSocket;
|
|
+
|
|
+namespace KNetwork {
|
|
+ class KStreamSocket;
|
|
+}
|
|
|
|
class KMCupsManager : public KMManager
|
|
{
|
|
@@ -95,7 +98,7 @@
|
|
private:
|
|
KLibrary *m_cupsdconf;
|
|
KMPrinter *m_currentprinter;
|
|
- QSocket *m_socket;
|
|
+ KNetwork::KStreamSocket *m_socket;
|
|
bool m_hostSuccess;
|
|
bool m_lookupDone;
|
|
};
|
|
--- kdeprint/cups/cupsdconf2/cups-util.c 2005/11/30 19:59:17 484443
|
|
+++ kdeprint/cups/cupsdconf2/cups-util.c 2006/09/20 15:22:50 586776
|
|
@@ -14,7 +14,7 @@
|
|
static int cups_local_auth(http_t *http);
|
|
|
|
const char * /* O - Filename for PPD file */
|
|
-cupsGetConf()
|
|
+cupsGetConf(void)
|
|
{
|
|
int fd; /* PPD file */
|
|
int bytes; /* Number of bytes read */
|
|
@@ -142,7 +142,11 @@
|
|
*/
|
|
|
|
snprintf(plain, sizeof(plain), "%s:%s", cupsUser(), pwdstring);
|
|
- httpEncode64(encode, plain);
|
|
+#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
|
|
+ httpEncode64_2(encode, sizeof(encode), plain, sizeof(plain));
|
|
+#else
|
|
+ httpEncode64(encode, plain);
|
|
+#endif
|
|
snprintf(authstring, sizeof(authstring), "Basic %s", encode);
|
|
}
|
|
else
|
|
@@ -364,7 +368,11 @@
|
|
*/
|
|
|
|
snprintf(plain, sizeof(plain), "%s:%s", cupsUser(), pwdstring);
|
|
- httpEncode64(encode, plain);
|
|
+#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
|
|
+ httpEncode64_2(encode, sizeof(encode), plain, sizeof(plain));
|
|
+#else
|
|
+ httpEncode64(encode, plain);
|
|
+#endif
|
|
snprintf(authstring, sizeof(authstring), "Basic %s", encode);
|
|
}
|
|
else
|
|
@@ -443,8 +451,7 @@
|
|
the struct has changed in newer versions - PiggZ (adam@piggz.co.uk)
|
|
*/
|
|
#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
|
|
- if (ntohl(*(int*)&http->_hostaddr.sin_addr) != 0x7f000001 &&
|
|
- strcasecmp(http->hostname, "localhost") != 0)
|
|
+ if (!httpAddrLocalhost(http))
|
|
#else
|
|
if (ntohl(*(int*)&http->hostaddr.sin_addr) != 0x7f000001 &&
|
|
strcasecmp(http->hostname, "localhost") != 0)
|
|
--- kdeprint/cups/cupsdconf2/cups-util.h 2005/09/29 09:47:40 465272
|
|
+++ kdeprint/cups/cupsdconf2/cups-util.h 2006/09/20 15:22:50 586776
|
|
@@ -20,7 +20,7 @@
|
|
#ifndef CUPS_UTIL_H
|
|
#define CUPS_UTIL_H
|
|
|
|
-const char* cupsGetConf();
|
|
+const char* cupsGetConf(void);
|
|
int cupsPutConf(const char *filename);
|
|
|
|
#endif
|