summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Schroeder <mls@suse.de>2014-04-07 12:50:06 +0200
committerMichael Schroeder <mls@suse.de>2014-04-07 12:50:06 +0200
commit657a22165436c4f0791c869ca953c55b43d55aee (patch)
tree2d5268705c5354137affde715b8f7f51082a1f09 /src
parent721f58c32a0d29fa6aa4f96c8a389d5cd09e5b04 (diff)
downloadlibsolv-657a22165436c4f0791c869ca953c55b43d55aee.tar.gz
libsolv-657a22165436c4f0791c869ca953c55b43d55aee.tar.bz2
libsolv-657a22165436c4f0791c869ca953c55b43d55aee.zip
simplyfy checksum code
Also change dumpsolv to use solv_chksum_type2str instead of printing the internal type.
Diffstat (limited to 'src')
-rw-r--r--src/chksum.h12
-rw-r--r--src/repodata.c47
2 files changed, 18 insertions, 41 deletions
diff --git a/src/chksum.h b/src/chksum.h
index 455e9ae..02f1504 100644
--- a/src/chksum.h
+++ b/src/chksum.h
@@ -29,6 +29,18 @@ const char *solv_chksum_type2str(Id type);
Id solv_chksum_str2type(const char *str);
int solv_chksum_len(Id type);
+#ifdef LIBSOLV_INTERNAL
+
+#define case_CHKSUM_TYPES \
+ case REPOKEY_TYPE_MD5: \
+ case REPOKEY_TYPE_SHA1: \
+ case REPOKEY_TYPE_SHA224: \
+ case REPOKEY_TYPE_SHA256: \
+ case REPOKEY_TYPE_SHA384: \
+ case REPOKEY_TYPE_SHA512
+
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/src/repodata.c b/src/repodata.c
index 7ef29f8..85e9103 100644
--- a/src/repodata.c
+++ b/src/repodata.c
@@ -743,12 +743,7 @@ repodata_lookup_bin_checksum(Repodata *data, Id solvid, Id keyname, Id *typep)
return 0;
switch (key->type)
{
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
+ case_CHKSUM_TYPES:
break;
default:
return 0;
@@ -892,12 +887,7 @@ repodata_stringify(Pool *pool, Repodata *data, Repokey *key, KeyValue *kv, int f
kv->str = repodata_dir2str(data, kv->id, kv->str);
kv->num = 1; /* mark stringification */
return 1;
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
+ case_CHKSUM_TYPES:
if (!(flags & SEARCH_CHECKSUMS))
return 0; /* skip em */
if (kv->num)
@@ -1996,12 +1986,7 @@ dataiterator_strdup(Dataiterator *di)
return;
switch (di->key->type)
{
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
+ case_CHKSUM_TYPES:
case REPOKEY_TYPE_DIRSTRARRAY:
if (di->kv.num) /* was it stringified into tmp space? */
l = strlen(di->kv.str) + 1;
@@ -2017,23 +2002,8 @@ dataiterator_strdup(Dataiterator *di)
case REPOKEY_TYPE_DIRSTRARRAY:
l = strlen(di->kv.str) + 1;
break;
- case REPOKEY_TYPE_MD5:
- l = SIZEOF_MD5;
- break;
- case REPOKEY_TYPE_SHA1:
- l = SIZEOF_SHA1;
- break;
- case REPOKEY_TYPE_SHA224:
- l = SIZEOF_SHA224;
- break;
- case REPOKEY_TYPE_SHA256:
- l = SIZEOF_SHA256;
- break;
- case REPOKEY_TYPE_SHA384:
- l = SIZEOF_SHA384;
- break;
- case REPOKEY_TYPE_SHA512:
- l = SIZEOF_SHA512;
+ case_CHKSUM_TYPES:
+ l = solv_chksum_len(di->key->type);
break;
case REPOKEY_TYPE_BINARY:
l = di->kv.num;
@@ -3427,12 +3397,7 @@ repodata_create_stubs(Repodata *data)
case REPOKEY_TYPE_NUM:
repodata_set_num(sdata, SOLVID_META, di.key->name, SOLV_KV_NUM64(&di.kv));
break;
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
+ case_CHKSUM_TYPES:
repodata_set_bin_checksum(sdata, SOLVID_META, di.key->name, di.key->type, (const unsigned char *)di.kv.str);
break;
case REPOKEY_TYPE_IDARRAY: