- Fix reading delta rpm checksum from solv file.
authorMichael Andres <ma@suse.de>
Mon, 13 Oct 2008 11:29:36 +0000 (11:29 +0000)
committerMichael Andres <ma@suse.de>
Mon, 13 Oct 2008 11:29:36 +0000 (11:29 +0000)
package/libzypp.changes
zypp/repo/PackageDelta.cc

index 9271d2f..b4d0db1 100644 (file)
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Mon Oct 13 13:28:48 CEST 2008 - ma@suse.de
+
+- Fix reading delta rpm checksum from solv file.
+- revision 11313
+
+-------------------------------------------------------------------
 Mon Oct 13 12:12:39 CEST 2008 - ma@suse.de
 
 - Fix package-manager script to properly quote arguments. (bnc #30903)
index 3a576de..c102e5e 100644 (file)
@@ -96,8 +96,18 @@ namespace zypp
           }
           case DELTA_CHECKSUM:
           {
-            loc.setChecksum(CheckSum::sha1(di.kv.str));
-            break;
+            const char * s = ::repodata_chk2str( di.data, di.key->type, (const unsigned char*)di.kv.str );
+            if ( s )
+            {
+              CheckSum val;
+              switch ( di.key->type )
+              {
+                case REPOKEY_TYPE_MD5:    val = CheckSum::md5( s ); break;
+                case REPOKEY_TYPE_SHA1:   val = CheckSum::sha1( s ); break;
+                case REPOKEY_TYPE_SHA256: val = CheckSum::sha256( s ); break;
+              }
+              loc.setChecksum( val );
+            }
           }
           case DELTA_BASE_EVR:
           {