1 #include "buffer.h"
2 #include "strerr.h"
3 #include "uint32.h"
4
5 int i;
6 int pos =0;
7 uint32 eod;
8 uint32 klen;
9 uint32 dlen;
10 char buf[4];
11 char e[256];
12
get(char * buf,unsigned int l)13 void get(char *buf, unsigned int l) {
14 while (l > 0) {
15 i =buffer_get(buffer_0, buf, l);
16 if (i == -1) strerr_die1sys(111, "fatal: unable to read cdb: ");
17 if (i == 0) strerr_die1x(111, "fatal: unable to read cdb: truncated");
18 buf +=i; l -=i;
19 }
20 }
21
main()22 int main() {
23 get(buf, 4); pos +=4; uint32_unpack(buf, &eod);
24 while (pos < 2048) { get(buf, 4); pos +=4; }
25 while (pos < eod) {
26 get(buf, 4); pos +=4; uint32_unpack(buf, &klen);
27 get(buf, 4); pos +=4; uint32_unpack(buf, &dlen);
28 if ((klen > 256) || (dlen > 256))
29 strerr_die1x(111, "fatal: unable to read cdb: entry too long");
30 get(e, klen);
31 buffer_put(buffer_1, e, klen); buffer_put(buffer_1, ":", 1);
32 get(e, dlen);
33 buffer_put(buffer_1, e, dlen); buffer_putflush(buffer_1, "\n", 1);
34 pos +=klen +dlen;
35 }
36 return(0);
37 }
38