X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=lib%2Fuimisc.c;h=be10115bd729b5bf6e7ac25a4fe3da35b50acd52;hb=f21784806e83a8aa0a334ee8877059cbde5c3ff1;hp=6a759bedcab54d2657377744021e69479cc6447f;hpb=d3372da97568d5e1f35fa19787c8ec8af93a0435;p=doldaconnect.git diff --git a/lib/uimisc.c b/lib/uimisc.c index 6a759be..be10115 100644 --- a/lib/uimisc.c +++ b/lib/uimisc.c @@ -778,6 +778,13 @@ static int gettrlistcallback(struct dc_response *resp) transfer->state = ires->argv[2].val.num; transfer->size = ires->argv[6].val.num; transfer->curpos = ires->argv[7].val.num; + if(transfer->hash != NULL) + { + free(transfer->hash); + transfer->hash = NULL; + } + if(wcslen(ires->argv[8].val.str) > 0) + transfer->hash = swcsdup(ires->argv[8].val.str); } else { transfer = newtransfer(); transfer->id = ires->argv[0].val.num; @@ -788,6 +795,8 @@ static int gettrlistcallback(struct dc_response *resp) transfer->path = swcsdup(ires->argv[5].val.str); transfer->size = ires->argv[6].val.num; transfer->curpos = ires->argv[7].val.num; + if(wcslen(ires->argv[8].val.str) > 0) + transfer->hash = swcsdup(ires->argv[8].val.str); transfer->found = 1; } dc_freeires(ires); @@ -930,6 +939,18 @@ void dc_uimisc_handlenotify(struct dc_response *resp) if((transfer = dc_findtransfer(ires->argv[0].val.num)) != NULL) freetransfer(transfer); break; + case 618: + if((transfer = dc_findtransfer(ires->argv[0].val.num)) != NULL) + { + if(transfer->hash != NULL) + { + free(transfer->hash); + transfer->hash = NULL; + } + if(wcslen(ires->argv[1].val.str) > 0) + transfer->hash = swcsdup(ires->argv[1].val.str); + } + break; default: break; }