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;
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);
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;
}