]> granicus.if.org Git - transmission/commitdiff
(libT) recognize BitSpirit peer-ids.
authorCharles Kerr <charles@transmissionbt.com>
Tue, 12 Aug 2008 17:33:36 +0000 (17:33 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Tue, 12 Aug 2008 17:33:36 +0000 (17:33 +0000)
libtransmission/clients.c

index cd280242b80251df33af51be5bd5b16c97837cfa..23963c0be915138b5b4e09fd3323cfd823b81b2e 100644 (file)
@@ -135,6 +135,18 @@ decodeBitCometClient( char * buf, size_t buflen, const uint8_t * id )
     return TRUE;
 }
 
+static int
+decodeBitSpiritClient( char * buf, size_t buflen, const uint8_t * id )
+{
+    const int isBS = !memcmp( id+2, "BS", 2 );
+    if( isBS )
+    {
+        const int version = id[1] ? id[1] : 1;
+        tr_snprintf( buf, buflen, "BitSpirit v%d", version );
+    }
+    return isBS;
+}
+
 void
 tr_clientForId( char * buf, size_t buflen, const void * id_in )
 {
@@ -291,6 +303,8 @@ tr_clientForId( char * buf, size_t buflen, const void * id_in )
 
     if( decodeBitCometClient( buf, buflen, id ) )
         return;
+    if( decodeBitSpiritClient( buf, buflen, id ) )
+        return;
 
     /* Clients with no version */
          if( !memcmp( id, "AZ2500BT", 8 ) )  no_version( buf, buflen, "BitTyrant (Azureus Mod)" );