X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ffnet-dc.c;h=0009d54e3226643736927d6e6b6556e75ba92d98;hb=3ea7528f421c6fb41172073504e03c555c87d9fb;hp=a99b6804d7833c0ecf1cb4c366c0b30c377cbd92;hpb=5eee9d66fce5434f02e42b11e98db3f9330a8497;p=doldaconnect.git diff --git a/daemon/fnet-dc.c b/daemon/fnet-dc.c index a99b680..0009d54 100644 --- a/daemon/fnet-dc.c +++ b/daemon/fnet-dc.c @@ -575,8 +575,11 @@ static char *getadcid(struct dcpeer *peer) { char *buf; char *ret; + int isfilelist; - if((peer->transfer->hash != NULL) && isdchash(peer->transfer->hash) && supports(peer, "tthf")) + if(!wcscmp(peer->transfer->path, L"files.xml") || !wcscmp(peer->transfer->path, L"files.xml.bz2") || !wcscmp(peer->transfer->path, L"MyList.DcLst")) + isfilelist = 1; + if(!isfilelist && (peer->transfer->hash != NULL) && isdchash(peer->transfer->hash) && supports(peer, "tthf")) { buf = base32encode(peer->transfer->hash->buf, 24); ret = sprintf2("TTH/%.39s", buf); @@ -1475,7 +1478,8 @@ static void cmd_direction(struct socket *sk, struct dcpeer *peer, char *cmd, cha freedcpeer(peer); return; } - requestfile(peer); + if(peer->direction == TRNSD_DOWN) + requestfile(peer); } else { if(peer->wcsname == NULL) {