summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2013-03-23 12:36:19 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2013-03-23 12:36:19 +0100
commit487711fb5e64a5311b62eee9ce103d8044b915e3 (patch)
tree4b9bfd34d7b5dd95e2e0e90fc5e62965b561ccec
parent6bc94b09b219aee8ef81db78fe7f2b280cb40b6a (diff)
downloadrsyslog-487711fb5e64a5311b62eee9ce103d8044b915e3.tar.gz
rsyslog-487711fb5e64a5311b62eee9ce103d8044b915e3.tar.bz2
rsyslog-487711fb5e64a5311b62eee9ce103d8044b915e3.zip
rsgtutil: refactor 'show-sigblock-params" mode
-rw-r--r--runtime/librsgt_read.c27
1 files changed, 8 insertions, 19 deletions
diff --git a/runtime/librsgt_read.c b/runtime/librsgt_read.c
index 2a9ff7c3..82efa245 100644
--- a/runtime/librsgt_read.c
+++ b/runtime/librsgt_read.c
@@ -483,17 +483,6 @@ rsgt_tlvrdOctetString(FILE *fp, uint8_t **data, size_t len)
done: return r;
}
static int
-rsgt_tlvrdSkipVal(FILE *fp, size_t len)
-{
- size_t i;
- int c, r = 1;
- for(i = 0 ; i < len ; ++i) {
- NEXTC;
- }
- r = 0;
-done: return r;
-}
-static int
rsgt_tlvrdHASH_ALGO(FILE *fp, uint8_t *hashAlg)
{
int r = 1;
@@ -863,9 +852,10 @@ rsgt_getBlockParams(FILE *fp, uint8_t bRewind, block_sig_t **bs,
{
int r;
uint64_t nRecs = 0;
- uint16_t tlvtype, tlvlen;
uint8_t bDone = 0;
off_t rewindPos = 0;
+ void *obj;
+ tlvrecord_t rec;
if(bRewind)
rewindPos = ftello(fp);
@@ -874,25 +864,24 @@ rsgt_getBlockParams(FILE *fp, uint8_t bRewind, block_sig_t **bs,
*bs = NULL;
while(!bDone) { /* we will err out on EOF */
- if((r = rsgt_tlvrdTL(fp, &tlvtype, &tlvlen)) != 0) goto done;
- switch(tlvtype) {
+ if((r = rsgt_tlvrd(fp, &rec, &obj)) != 0) goto done;
+ switch(rec.tlvtype) {
case 0x0900:
++nRecs;
*bHasRecHashes = 1;
- rsgt_tlvrdSkipVal(fp, tlvlen);
break;
case 0x0901:
*bHasIntermedHashes = 1;
- rsgt_tlvrdSkipVal(fp, tlvlen);
break;
case 0x0902:
- r = rsgt_tlvrdBLOCK_SIG(fp, bs, tlvlen);
- if(r != 0) goto done;
+ *bs = (block_sig_t*) obj;
bDone = 1;
break;
- default:fprintf(fp, "unknown tlv record %4.4x\n", tlvtype);
+ default:fprintf(fp, "unknown tlv record %4.4x\n", rec.tlvtype);
break;
}
+ if(!bDone)
+ rsgt_objfree(rec.tlvtype, obj);
}
if(*bHasRecHashes && (nRecs != (*bs)->recCount)) {