Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 98530 Details for
Bug 149746
New KDEPrint 3.5.4 CUPS 1.2.x Patch to Enhance Compatibility.
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
kdelibs-3.5.4-kdelibs-cups.patch
kdelibs-3.5.4-kdelibs-cups.patch (text/plain), 10.37 KB, created by
Jon
on 2006-10-01 09:36:24 UTC
(
hide
)
Description:
kdelibs-3.5.4-kdelibs-cups.patch
Filename:
MIME Type:
Creator:
Jon
Created:
2006-10-01 09:36:24 UTC
Size:
10.37 KB
patch
obsolete
>diff -purN kdelibs-3.5.4.orig/kdeprint/cups/cupsdconf2/cups-util.c kdelibs-3.5.4/kdeprint/cups/cupsdconf2/cups-util.c >--- kdelibs-3.5.4.orig/kdeprint/cups/cupsdconf2/cups-util.c 2006-01-19 11:07:12.000000000 -0600 >+++ kdelibs-3.5.4/kdeprint/cups/cupsdconf2/cups-util.c 2006-10-01 10:26:26.000000000 -0500 >@@ -14,7 +14,7 @@ static char pwdstring[33]; > 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 @@ cupsGetConf() > */ > > 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 @@ cupsPutConf(const char *name) /* I - Na > */ > > 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 @@ cups_local_auth(http_t *http) /* I - Con > 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) >diff -purN kdelibs-3.5.4.orig/kdeprint/cups/cupsdconf2/cups-util.h kdelibs-3.5.4/kdeprint/cups/cupsdconf2/cups-util.h >--- kdelibs-3.5.4.orig/kdeprint/cups/cupsdconf2/cups-util.h 2005-10-10 10:06:30.000000000 -0500 >+++ kdelibs-3.5.4/kdeprint/cups/cupsdconf2/cups-util.h 2006-10-01 10:26:26.000000000 -0500 >@@ -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 >diff -purN kdelibs-3.5.4.orig/kdeprint/cups/cupsdoprint.c kdelibs-3.5.4/kdeprint/cups/cupsdoprint.c >--- kdelibs-3.5.4.orig/kdeprint/cups/cupsdoprint.c 2005-10-10 10:06:30.000000000 -0500 >+++ kdelibs-3.5.4/kdeprint/cups/cupsdoprint.c 2006-10-01 10:26:26.000000000 -0500 >@@ -41,7 +41,7 @@ FILE *debugF = NULL; > #endif > > /* utility functions */ >-void error(const char* msg) >+static void error(const char* msg) > { > fprintf(stderr, "%s\n", msg); > #if USE_LOG >@@ -50,7 +50,7 @@ void error(const char* msg) > exit(-1); > } > >-void usage() >+static void usage() > { > error("usage: cupsdoprint [-H host[:port]][-P dest][-J name][-o opt=value[,...]][-U login[:password]] files..."); > } >@@ -81,7 +81,7 @@ static char * shell_quote(const char *s) > return result; > } > >-const char* getPasswordCB(const char* prompt) >+static const char* getPasswordCB(const char* prompt) > { > char buf[ 256 ] = {0}, *c; > char *_user = shell_quote( cupsUser() ), *_passwd = NULL; >diff -purN kdelibs-3.5.4.orig/kdeprint/cups/cupsinfos.cpp kdelibs-3.5.4/kdeprint/cups/cupsinfos.cpp >--- kdelibs-3.5.4.orig/kdeprint/cups/cupsinfos.cpp 2005-10-10 10:06:30.000000000 -0500 >+++ kdelibs-3.5.4/kdeprint/cups/cupsinfos.cpp 2006-10-01 10:26:26.000000000 -0500 >@@ -69,6 +69,13 @@ CupsInfos::~CupsInfos() > { > } > >+QString CupsInfos::hostaddr() const >+{ >+ if (host_[0] != '/') >+ return host_ + ":" + QString::number(port_); >+ return host_; >+} >+ > void CupsInfos::setHost(const QString& s) > { > host_ = s; >diff -purN kdelibs-3.5.4.orig/kdeprint/cups/cupsinfos.h kdelibs-3.5.4/kdeprint/cups/cupsinfos.h >--- kdelibs-3.5.4.orig/kdeprint/cups/cupsinfos.h 2005-10-10 10:06:30.000000000 -0500 >+++ kdelibs-3.5.4/kdeprint/cups/cupsinfos.h 2006-10-01 10:26:26.000000000 -0500 >@@ -32,6 +32,7 @@ public: > ~CupsInfos(); > > const QString& host() const; >+ QString hostaddr() const; > int port() const; > const QString& login() const; > const QString& password() const; >diff -purN kdelibs-3.5.4.orig/kdeprint/cups/kmcupsmanager.cpp kdelibs-3.5.4/kdeprint/cups/kmcupsmanager.cpp >--- kdelibs-3.5.4.orig/kdeprint/cups/kmcupsmanager.cpp 2006-01-19 11:07:12.000000000 -0600 >+++ kdelibs-3.5.4/kdeprint/cups/kmcupsmanager.cpp 2006-10-01 10:26:26.000000000 -0500 >@@ -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 @@ static int trials = 5; > > KMCupsManager::~KMCupsManager() > { >- //delete m_socket; >+ delete m_socket; > } > > QString KMCupsManager::driverDbCreationProgram() >@@ -135,7 +137,8 @@ bool KMCupsManager::createPrinter(KMPrin > { > 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 @@ void KMCupsManager::ippReport(IppRequest > > 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 @@ void KMCupsManager::slotAsyncConnect() > { > 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 @@ void KMCupsManager::slotConnectionFailed > 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 @@ QString printerURI(KMPrinter *p, bool us > 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; > } > >diff -purN kdelibs-3.5.4.orig/kdeprint/cups/kmcupsmanager.h kdelibs-3.5.4/kdeprint/cups/kmcupsmanager.h >--- kdelibs-3.5.4.orig/kdeprint/cups/kmcupsmanager.h 2005-10-10 10:06:30.000000000 -0500 >+++ kdelibs-3.5.4/kdeprint/cups/kmcupsmanager.h 2006-10-01 10:26:26.000000000 -0500 >@@ -25,7 +25,10 @@ > class IppRequest; > class KLibrary; > class KExtendedSocket; >-class QSocket; >+ >+namespace KNetwork { >+ class KStreamSocket; >+} > > class KMCupsManager : public KMManager > { >@@ -95,7 +98,7 @@ protected: > private: > KLibrary *m_cupsdconf; > KMPrinter *m_currentprinter; >- QSocket *m_socket; >+ KNetwork::KStreamSocket *m_socket; > bool m_hostSuccess; > bool m_lookupDone; > }; >diff -purN kdelibs-3.5.4.orig/kdeprint/cups/kmcupsuimanager.cpp kdelibs-3.5.4/kdeprint/cups/kmcupsuimanager.cpp >--- kdelibs-3.5.4.orig/kdeprint/cups/kmcupsuimanager.cpp 2005-10-10 10:06:30.000000000 -0500 >+++ kdelibs-3.5.4/kdeprint/cups/kmcupsuimanager.cpp 2006-10-01 10:26:26.000000000 -0500 >@@ -135,7 +135,7 @@ void KMCupsUiManager::setupWizard(KMWiza > 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("/"))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 149746
: 98530