X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Futils.c;h=11759704b5d306be78abe1b10dd935eb8ccabde5;hb=1fc81821e3bc450a6b95588ebe7c90bf6363bed9;hp=c006b4f872afd3b2c3cb47dfc437e6cf5f09d13b;hpb=732471142064666ef8defeb70ad82281e9cbea4a;p=doldaconnect.git diff --git a/daemon/utils.c b/daemon/utils.c index c006b4f..1175970 100644 --- a/daemon/utils.c +++ b/daemon/utils.c @@ -533,6 +533,8 @@ char *base64decode(char *data, size_t *datalen) c = (int)(unsigned char)*data; if(c == '=') break; + if(c == '\n') + continue; if(base64rev[c] == -1) { if(buf != NULL) @@ -630,6 +632,8 @@ char *base32decode(char *data, size_t *datalen) c = (int)(unsigned char)*data; if(c == '=') break; + if(c == '\n') + continue; if(base32rev[c] == -1) { if(buf != NULL) @@ -741,3 +745,35 @@ char *findfile(char *gname, char *uname, char *homedir) } return(NULL); } + +struct wcspair *newwcspair(wchar_t *key, wchar_t *val, struct wcspair **list) +{ + struct wcspair *pair; + + pair = smalloc(sizeof(*pair)); + memset(pair, 0, sizeof(*pair)); + if(key != NULL) + pair->key = swcsdup(key); + if(val != NULL) + pair->val = swcsdup(val); + if(list == NULL) + { + pair->next = NULL; + } else { + pair->next = *list; + *list = pair; + } + return(pair); +} + +void freewcspair(struct wcspair *pair, struct wcspair **list) +{ + if(list != NULL) + { + if(*list == pair) + *list = pair->next; + } + free(pair->key); + free(pair->val); + free(pair); +}