There's no need to test for DHT/uTP being enabled in tr-udp. The DHT
will silently discard any packets directed at the wrong session (see the
beginning of dhtCallback). As to uTP, we need to grok uTP packets
to close any remaining connections after we disabled uTP, so it's better
to participate in uTP, just reject any incoming connections.
if(rc <= 0)
return;
- if((buf[0] == 'd') && tr_sessionIsDHTEnabled(ss)) {
+ if( buf[0] == 'd' ) {
/* DHT packet. */
buf[rc] = '\0';
tr_dhtCallback(buf, rc, (struct sockaddr*)&from, fromlen, sv);
- } else if(tr_sessionIsUTPEnabled(ss)){
+ } else {
rc = tr_utpPacket(buf, rc, (struct sockaddr*)&from, fromlen, ss);
if(!rc)
tr_ndbg("UDP", "Unexpected UDP packet");
socklen_t fromlen = sizeof(from_storage);
tr_address addr;
tr_port port;
+
+ if( !tr_sessionIsUTPEnabled(ss) ) {
+ UTP_Close(s);
+ return;
+ }
UTP_GetPeerName(s, from, &fromlen);
if(from->sa_family == AF_INET) {