Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Log mode change.
[doldaconnect.git]
/
daemon
/
client.c
diff --git
a/daemon/client.c
b/daemon/client.c
index
1bf2420
..
814ee0f
100644
(file)
--- a/
daemon/client.c
+++ b/
daemon/client.c
@@
-178,10
+178,13
@@
struct hash *parsehash(wchar_t *text)
wchar_t *unparsehash(struct hash *hash)
{
wchar_t *unparsehash(struct hash *hash)
{
- wchar_t *buf, *whbuf;
+ static wchar_t *buf = NULL;
+ wchar_t *whbuf;
char *hbuf;
size_t bufsize, bufdata;
char *hbuf;
size_t bufsize, bufdata;
+ if(buf != NULL)
+ free(buf);
buf = NULL;
bufsize = bufdata = 0;
hbuf = base64encode(hash->buf, hash->len);
buf = NULL;
bufsize = bufdata = 0;
hbuf = base64encode(hash->buf, hash->len);
@@
-195,9
+198,21
@@
wchar_t *unparsehash(struct hash *hash)
addtobuf(buf, ':');
bufcat(buf, whbuf, wcslen(whbuf));
free(whbuf);
addtobuf(buf, ':');
bufcat(buf, whbuf, wcslen(whbuf));
free(whbuf);
+ addtobuf(buf, 0);
return(buf);
}
return(buf);
}
+int hashcmp(struct hash *h1, struct hash *h2)
+{
+ if(wcscmp(h1->algo, h2->algo))
+ return(0);
+ if(h1->len != h2->len)
+ return(0);
+ if(memcmp(h1->buf, h2->buf, h1->len))
+ return(0);
+ return(1);
+}
+
static struct hashcache *newhashcache(void)
{
struct hashcache *new;
static struct hashcache *newhashcache(void)
{
struct hashcache *new;