]> granicus.if.org Git - transmission/commitdiff
(trunk libT) modified transmission-dht-20090619.patch
authorCharles Kerr <charles@transmissionbt.com>
Wed, 20 May 2009 03:55:09 +0000 (03:55 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Wed, 20 May 2009 03:55:09 +0000 (03:55 +0000)
libtransmission/peer-msgs.c
libtransmission/tr-dht.c

index 7fa22453b8a86802a81727d441c99e28fc9eb22c..3b24b3b72a0d31d27cca5da7f1bd02c8ce6d3bab 100644 (file)
@@ -1443,6 +1443,8 @@ readBtMessage( tr_peermsgs * msgs, struct evbuffer * inbuf, size_t inlen )
         case BT_PORT:
             dbgmsg( msgs, "Got a BT_PORT" );
             tr_peerIoReadUint16( msgs->peer->io, inbuf, &msgs->peer->dht_port );
+            if( msgs->peer->port > 0 )
+                tr_dhtAddNode( msgs->session, &msgs->peer->addr, msgs->peer->dht_port, 0 );
             break;
 
         case BT_FEXT_SUGGEST:
index c45f3f4c0c0f2b48ba6b62d6682fc4a8fcba94f9..4123f1098403c7bf5a38b607fa9d26d6b22d44fb 100644 (file)
@@ -46,6 +46,7 @@ THE SOFTWARE.
 #include "trevent.h"
 #include "tr-dht.h"
 #include "utils.h"
+#include "version.h"
 
 static int dht_socket;
 static struct event dht_event;
@@ -108,6 +109,7 @@ tr_dhtInit(tr_session *ss)
     uint8_t * nodes = NULL;
     const uint8_t * raw;
     size_t len;
+    char v[5];
 
     if(session)
         return -1;
@@ -161,7 +163,8 @@ tr_dhtInit(tr_session *ss)
         have_id = TRUE;
     }
 
-    rc = dht_init(dht_socket, myid);
+    tr_snprintf( v, sizeof( v ), "TR%02x", SVN_REVISION_NUM );
+    rc = dht_init( dht_socket, myid, (const unsigned char*)v );
     if(rc < 0)
         goto fail;
 
@@ -394,3 +397,10 @@ dht_hash(void *hash_return, int hash_size,
     }
     memcpy(hash_return, sha1, hash_size > 20 ? 20 : hash_size);
 }
+
+int
+dht_random_bytes( void * buf, size_t size )
+{
+    tr_cryptoRandBuf( buf, size );
+    return size;
+}