rpms/kdepim/devel kdepim-3.5.9-kde#127696.patch, NONE, 1.1 kdepim.spec, 1.156, 1.157
Kevin Kofler (kkofler)
fedora-extras-commits at redhat.com
Fri Feb 15 07:30:39 UTC 2008
- Previous message (by thread): rpms/tellico/F-7 .cvsignore, 1.10, 1.11 sources, 1.10, 1.11 tellico.spec, 1.14, 1.15
- Next message (by thread): rpms/php-pear-Net-SMTP/devel .cvsignore, 1.3, 1.4 php-pear-Net-SMTP.spec, 1.3, 1.4 sources, 1.3, 1.4 xml2changelog, 1.1, 1.2 PHP-LICENSE-3.01, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: kkofler
Update of /cvs/pkgs/rpms/kdepim/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv8936/devel
Modified Files:
kdepim.spec
Added Files:
kdepim-3.5.9-kde#127696.patch
Log Message:
* Fri Feb 15 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 6:3.5.9-3
- backport upstream fix for kde#127696 from enterprise branch
kdepim-3.5.9-kde#127696.patch:
--- NEW FILE kdepim-3.5.9-kde#127696.patch ---
Index: kmail/popaccount.h
===================================================================
--- kmail/popaccount.h (revision 775014)
+++ kmail/popaccount.h (revision 775015)
@@ -150,6 +150,7 @@
QMap<QString, int> mTimeOfNextSeenMsgsMap; // map of uid to times of seen messages
QDict<int> mSizeOfNextSeenMsgsDict;
QStringList idsOfMsgsToDelete;
+ QStringList idsOfForcedDeletes;
int indexOfCurrentMsg;
QValueList<KMMessage*> msgsAwaitingProcessing;
Index: kmail/popaccount.cpp
===================================================================
--- kmail/popaccount.cpp (revision 775014)
+++ kmail/popaccount.cpp (revision 775015)
@@ -389,6 +389,8 @@
idsOfMsgs.clear();
mUidForIdMap.clear();
idsOfMsgsToDelete.clear();
+ idsOfForcedDeletes.clear();
+
//delete any headers if there are some this have to be done because of check again
headersOnServer.clear();
headers = false;
@@ -735,6 +737,12 @@
idsOfMsgsToDelete.remove( it.key().second );
}
}
+
+ if ( !idsOfForcedDeletes.isEmpty() ) {
+ idsOfMsgsToDelete += idsOfForcedDeletes;
+ idsOfForcedDeletes.clear();
+ }
+
// If there are messages to delete then delete them
if ( !idsOfMsgsToDelete.isEmpty() ) {
stage = Dele;
@@ -923,8 +931,8 @@
QString qdata = data;
qdata = qdata.simplifyWhiteSpace(); // Workaround for Maillennium POP3/UNIBOX
int spc = qdata.find( ' ' );
- if (spc > 0) {
- if (stage == List) {
+ if ( stage == List ) {
+ if ( spc > 0 ) {
QString length = qdata.mid(spc+1);
if (length.find(' ') != -1) length.truncate(length.find(' '));
int len = length.toInt();
@@ -933,46 +941,76 @@
idsOfMsgs.append( id );
mMsgsPendingDownload.insert( id, len );
}
- else { // stage == Uidl
- const QString id = qdata.left(spc);
- const QString uid = qdata.mid(spc + 1);
- int *size = new int; //malloc(size_of(int));
- *size = mMsgsPendingDownload[id];
- mSizeOfNextSeenMsgsDict.insert( uid, size );
- if ( mUidsOfSeenMsgsDict.find( uid ) != 0 ) {
+ else {
+ stage = Idle;
+ if ( job ) job->kill();
+ job = 0;
+ mSlave = 0;
+ KMessageBox::error( 0, i18n( "Unable to complete LIST operation." ),
+ i18n( "Invalid Response From Server") );
+ return;
+ }
+ }
+ else { // stage == Uidl
+ Q_ASSERT ( stage == Uidl);
- if ( mMsgsPendingDownload.contains( id ) ) {
- mMsgsPendingDownload.remove( id );
- }
- else
- kdDebug(5006) << "PopAccount::slotData synchronization failure." << endl;
- idsOfMsgsToDelete.append( id );
- mUidsOfNextSeenMsgsDict.insert( uid, (const int *)1 );
- if ( mTimeOfSeenMsgsVector.empty() ) {
- mTimeOfNextSeenMsgsMap.insert( uid, time(0) );
- }
- else {
- // cast the int* with a long to can convert it to a int, BTW
- // works with g++-4.0 and amd64
- mTimeOfNextSeenMsgsMap.insert( uid,
- mTimeOfSeenMsgsVector[(int)( long )mUidsOfSeenMsgsDict[uid] - 1] );
- }
+ QString id;
+ QString uid;
+
+ if ( spc <= 0 ) {
+ // an invalid uidl line. we might just need to skip it, but
+ // some servers generate invalid uids with valid ids. in that
+ // case we will just make up a uid - which will cause us to
+ // not cache the document, but we will be able to interoperate
+
+ int testid = atoi ( qdata.ascii() );
+ if ( testid < 1 ) {
+ // we'll just have to skip this
+ kdDebug(5006) << "PopAccount::slotData skipping UIDL entry due to parse error "
+ << endl << qdata.ascii() << endl;
+ return;
}
- mUidForIdMap.insert( id, uid );
+ id.setNum (testid, 10);
+
+ QString datestring, serialstring;
+
+ serialstring.setNum ( ++dataCounter, 10 );
+ datestring.setNum ( time(NULL),10 );
+ uid = QString( "uidlgen" ) + datestring + QString( "." ) + serialstring;
+ kdDebug(5006) << "PopAccount::slotData message " << id.ascii()
+ << "%d has bad UIDL, cannot keep a copy on server" << endl;
+ idsOfForcedDeletes.append( id );
}
+ else {
+ id = qdata.left( spc );
+ uid = qdata.mid( spc + 1 );
+ }
+
+ int *size = new int; //malloc(size_of(int));
+ *size = mMsgsPendingDownload[id];
+ mSizeOfNextSeenMsgsDict.insert( uid, size );
+ if ( mUidsOfSeenMsgsDict.find( uid ) != 0 ) {
+ if ( mMsgsPendingDownload.contains( id ) ) {
+ mMsgsPendingDownload.remove( id );
+ }
+ else
+ kdDebug(5006) << "PopAccount::slotData synchronization failure." << endl;
+ idsOfMsgsToDelete.append( id );
+ mUidsOfNextSeenMsgsDict.insert( uid, (const int *)1 );
+ if ( mTimeOfSeenMsgsVector.empty() ) {
+ mTimeOfNextSeenMsgsMap.insert( uid, time(0) );
+ }
+ else {
+ // cast the int* with a long to can convert it to a int, BTW
+ // works with g++-4.0 and amd64
+ mTimeOfNextSeenMsgsMap.insert( uid, mTimeOfSeenMsgsVector[(int)( long )
+ mUidsOfSeenMsgsDict[uid] - 1] );
+ }
+ }
+ mUidForIdMap.insert( id, uid );
}
- else {
- stage = Idle;
- if (job) job->kill();
- job = 0;
- mSlave = 0;
- KMessageBox::error(0, i18n( "Unable to complete LIST operation." ),
- i18n("Invalid Response From Server"));
- return;
- }
}
-
//-----------------------------------------------------------------------------
void PopAccount::slotResult( KIO::Job* )
{
Index: kdepim.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kdepim/devel/kdepim.spec,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -r1.156 -r1.157
--- kdepim.spec 15 Feb 2008 06:04:22 -0000 1.156
+++ kdepim.spec 15 Feb 2008 07:29:58 -0000 1.157
@@ -35,9 +35,9 @@
# script used to generate svn checkout Source0 above
Source1: kdepim-enterprise-svn_checkout.sh
-Release: 2.%{ent_date}svn.ent%{?dist}
+Release: 3.%{ent_date}svn.ent%{?dist}
%else
-Release: 2%{?dist}
+Release: 3%{?dist}
Source0: ftp://ftp.kde.org/pub/kde/stable/%{version}/src/%{name}-%{version}.tar.bz2
%endif
@@ -51,6 +51,11 @@
# LANG=en_US.UTF-8 svn diff svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.9/kdepim/kitchensync@774532 \
# svn://anonsvn.kde.org/home/kde/branches/work/kitchensync-OpenSync0.30API@774532 >kdepim-3.5.9-opensync03.patch
Patch3: kdepim-3.5.9-opensync03.patch
+# http://websvn.kde.org/?view=rev&revision=775015
+# http://bugs.kde.org/show_bug.cgi?id=127696
+# Upstream fix for "Unable to complete LIST operation" errors with some servers,
+# just missed the 3.5.9 tagging.
+Patch4: kdepim-3.5.9-kde#127696.patch
## upstream patches
@@ -166,6 +171,8 @@
popd
%endif
+%patch4 -p0 -b .kde127696
+
%if %{make_cvs}
make -f admin/Makefile.common cvs
%endif
@@ -297,6 +304,9 @@
%changelog
+* Fri Feb 15 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 6:3.5.9-3
+- backport upstream fix for kde#127696 from enterprise branch
+
* Fri Feb 15 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 6:3.5.9-2
- update opensync03 patch
- Previous message (by thread): rpms/tellico/F-7 .cvsignore, 1.10, 1.11 sources, 1.10, 1.11 tellico.spec, 1.14, 1.15
- Next message (by thread): rpms/php-pear-Net-SMTP/devel .cvsignore, 1.3, 1.4 php-pear-Net-SMTP.spec, 1.3, 1.4 sources, 1.3, 1.4 xml2changelog, 1.1, 1.2 PHP-LICENSE-3.01, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list