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