X-Git-Url: https://git.hcoop.net/hcoop/debian/courier-authlib.git/blobdiff_plain/781cfcb8fd50934c470e0dabf79d32ab333dec68:/bdbobj/testbdb.C..f77892e671e1261ec26e5133f86b8a52635f3dd2:/libs/bdbobj/static/git-favicon.png diff --git a/bdbobj/testbdb.C b/bdbobj/testbdb.C deleted file mode 100644 index 24cec6c..0000000 --- a/bdbobj/testbdb.C +++ /dev/null @@ -1,164 +0,0 @@ -#include "bdbobj.h" -#include -#include - -static void fw(char *p, size_t a, size_t b, FILE *f) -{ -size_t i, j=a*b; - - for (i=0; ikey, - (*(const struct kd **)b)->key)); -} - -int main(int argc, char **argv) -{ - if (argc < 2) exit(1); - - if (argc < 3) - { - BDbObj dbw; - char *key, *data; - size_t keylen, datalen; - struct kd *kdlist, **kdarray; - size_t kdcnt; - - if (dbw.Open(argv[1], "R")) - { - perror("open"); - exit(1); - } - - printf("Dumping %s:\n", argv[1]); - kdlist=0; - kdcnt=0; - for (key=dbw.FetchFirstKeyVal(keylen, data, datalen); - key; key=dbw.FetchNextKeyVal(keylen, data, datalen)) - { - struct kd *k=(struct kd *)malloc(sizeof(struct kd)); - - if (!k) - { - perror("malloc"); - exit(1); - } - if ((k->key=(char *)malloc(keylen+1)) == 0 || - (k->data=(char *)malloc(datalen+1)) == 0) - { - perror("malloc"); - exit(1); - } - memcpy(k->key, key, keylen); - k->key[keylen]=0; - memcpy(k->data, data, datalen); - k->data[datalen]=0; - free(data); - ++kdcnt; - k->next=kdlist; - kdlist=k; - } - - if ((kdarray=(struct kd **) - malloc( (kdcnt+1)*sizeof(struct kd *))) == 0) - { - perror("malloc"); - exit(1); - } - kdcnt=0; - while ( kdlist ) - { - kdarray[kdcnt++]=kdlist; - kdlist=kdlist->next; - } - kdarray[kdcnt]=0; - - qsort( kdarray, kdcnt, sizeof(kdarray[0]), &kdcmp); - - for (kdcnt=0; kdarray[kdcnt]; kdcnt++) - { - printf("Key: "); - fw(kdarray[kdcnt]->key, strlen(kdarray[kdcnt]->key), - 1, stdout); - printf(", Data: "); - fw(kdarray[kdcnt]->data, strlen(kdarray[kdcnt]->data), - 1, stdout); - printf("\n"); - free(kdarray[kdcnt]->key); - free(kdarray[kdcnt]->data); - free(kdarray[kdcnt]); - } - free(kdarray); - - dbw.Close(); - } else if (argc < 4 && argv[2][0] == '-') - { - BDbObj dbw; - - if (dbw.Open(argv[1], "W")) - { - perror("open"); - exit(1); - } - - printf("Deleting %s from %s:\n", argv[2], argv[1]); - if (dbw.Delete(argv[2]+1, strlen(argv[2]+1))) - fprintf(stderr, "Not found.\n"); - - dbw.Close(); - } else if (argc < 4) - { - BDbObj dbw; - - if (dbw.Open(argv[1], "R")) - { - perror("open"); - exit(1); - } - - size_t len; - char *val=dbw.Fetch(argv[2], strlen(argv[2]), len, 0); - - if (!val) - { - fprintf(stderr, "%s: not found.\n", argv[2]); - exit(1); - } - printf("Fetching %s from %s: ", argv[2], argv[1]); - fw(val, len, 1, stdout); - printf("\n"); - free(val); - dbw.Close(); - } - else - { - BDbObj dbw; - - if (dbw.Open(argv[1], "C")) - { - perror("open"); - exit(1); - } - - printf("Storing %s/%s into %s:\n", argv[2], argv[3], argv[1]); - if (dbw.Store(argv[2], strlen(argv[2]), - argv[3], strlen(argv[3]), "R")) - { - perror("write"); - exit(1); - } - - dbw.Close(); - } - exit(0); - return (0); -}