]> err.no Git - sope/commitdiff
changed pwd encoding in Sieve client (OGo bug #1228)
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Mon, 14 Feb 2005 11:37:09 +0000 (11:37 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Mon, 14 Feb 2005 11:37:09 +0000 (11:37 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@556 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-core/NGExtensions/ChangeLog
sope-core/NGExtensions/NGBase64Coding.m
sope-core/NGExtensions/NGExtensions/NGBase64Coding.h
sope-core/NGExtensions/Version
sope-mime/ChangeLog
sope-mime/NGImap4/ChangeLog
sope-mime/NGImap4/NGSieveClient.m
sope-mime/Version

index 45213e0e0662aed47ee4330a2a8b9e0d49af0bfd..416b9b76189040293606a4e53f408252b536231e 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-14  Helge Hess  <helge.hess@skyrix.com>
+
+       * NGBase64Coding.m: added method -dataByEncodingBase64WithLineLength:
+         to support the fix for OGo bug #1228 (v4.5.146)
+
 2005-02-12  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * NGCalendarDateRange.[hm]: new method -duration (v4.5.145)
index 2105406f582430e9dabc8072fd28ca85f2b1ac00..3146101dd59abc2cf6f4f8412692a716b2fd3249 100644 (file)
@@ -57,7 +57,7 @@ static int NSStringMaxLineWidth = 1024;
     return @"";
   
   destSize = (len + 2) / 3 * 4; // 3:4 conversion ratio
-  destSize += destSize / NSStringMaxLineWidth + 2; // space for newlines and '\0'
+  destSize += destSize / NSStringMaxLineWidth + 2; // space for '\n' and '\0'
   destSize += 64;
   dest = malloc(destSize + 4);
   if (dest == NULL) return nil;
@@ -162,9 +162,10 @@ static int NSStringMaxLineWidth = 1024;
 
 @implementation NSData(Base64Coding)
 
+// TODO: explain that size (which RFC specifies that?)
 static int NSDataMaxLineWidth = 72;
 
-- (NSData *)dataByEncodingBase64 {
+- (NSData *)dataByEncodingBase64WithLineLength:(unsigned)_lineLength {
   unsigned len;
   size_t destSize;
   size_t destLength = -1;
@@ -174,7 +175,7 @@ static int NSDataMaxLineWidth = 72;
     return [NSData data];
   
   destSize   = (len + 2) / 3 * 4; // 3:4 conversion ratio
-  destSize += destSize / NSDataMaxLineWidth + 2; // space for newlines and '\0'
+  destSize += destSize / _lineLength + 2; // space for newlines and '\0'
   destSize += 64;
 
   dest = malloc(destSize + 4);
@@ -183,13 +184,15 @@ static int NSDataMaxLineWidth = 72;
   NSAssert(dest,         @"invalid buffer ..");
   
   if (encode_base64([self bytes], len,
-                    dest, destSize, &destLength, NSDataMaxLineWidth) == 0) {
+                    dest, destSize, &destLength, _lineLength) == 0) {
     return [NSData dataWithBytesNoCopy:dest length:destLength];
   }
-  else {
-    if (dest) free((void *)dest);
-    return nil;
-  }
+
+  if (dest != NULL) free((void *)dest);
+  return nil;
+}
+- (NSData *)dataByEncodingBase64 {
+  return [self dataByEncodingBase64WithLineLength:NSDataMaxLineWidth];
 }
 
 - (NSData *)dataByDecodingBase64 {
index 3d11f07b4248053d992a4e25bd895c390cebc282..746c17afc9363c17f6bfc2c21698fb21edd8008b 100644 (file)
 
 @interface NSData(Base64Coding)
 
-- (NSData *)dataByEncodingBase64;
+- (NSData *)dataByEncodingBase64; /* Note: inserts '\n' every 72 chars */
 - (NSData *)dataByDecodingBase64;
 - (NSString *)stringByEncodingBase64;
 - (NSString *)stringByDecodingBase64;
 
+- (NSData *)dataByEncodingBase64WithLineLength:(unsigned)_lineLength;
+
 @end
 
 /*
index 1b28f6daa8be2f082b9cd93dd74d66e128be8c17..476d30731f135f65b0bce292828c597ec44b62b1 100644 (file)
@@ -1,6 +1,6 @@
 # version
 
-SUBMINOR_VERSION:=145
+SUBMINOR_VERSION:=146
 
 # v4.3.115 requires libFoundation v1.0.59
 # v4.2.72  requires libEOControl  v4.2.39
index aeaf6f9fa57a1da1782930c75496eb61a9a321fc..0bf8627f1fb44c639c1b674b3d03b1c430fb713b 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-14  Helge Hess  <helge.hess@skyrix.com>
+
+       * NGImap4: changed base64 encoding in Sieve client to fix OGo bug #1228
+          (v4.5.214)
+
 2005-02-12  Helge Hess  <helge.hess@opengroupware.org>
 
        * NGImap4: reworked qualifier generation, fixed handling of OR
index 672d3273b0298f67fe9752946a333c85eebcc7f3..05ae3f405375e21325d571a4b7b954229812b409 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-14  Helge Hess  <helge.hess@skyrix.com>
+
+       * NGSieveClient.m: encode base64 with a large line break to fix OGo
+         bug #1228
+
 2005-02-12  Helge Hess  <helge.hess@opengroupware.org>
 
        * EOQualifier+IMAPAdditions.m: more reworks in qualifier generation,
index 1f4c673af739cf446534588ef5cf0d6ff7639323..547c23ae0ac544cf4d1d59aa821e2bff5b815dbe 100644 (file)
@@ -311,7 +311,7 @@ static BOOL     debugImap4         = NO;
   buf[logLen * 2 + 1] = '\0';
   
   auth = [NSData dataWithBytesNoCopy:buf length:bufLen];
-  auth = [auth dataByEncodingBase64];
+  auth = [auth dataByEncodingBase64WithLineLength:4096 /* 'unlimited' */];
   
   if (LOG_PASSWORD) {
     NSString *s;
index f1a8c404aa42e4f7b3986bf7ef5e506a3336a51a..8f5d80cb9aa4535433f9a35e1e7094a29ef39508 100644 (file)
@@ -2,6 +2,7 @@
 
 MAJOR_VERSION:=4
 MINOR_VERSION:=5
-SUBMINOR_VERSION:=213
+SUBMINOR_VERSION:=214
 
-# v4.2.149 requires libNGStreams v4.2.34
+# v4.5.214 requires libNGExtensions v4.5.146
+# v4.2.149 requires libNGStreams    v4.2.34