Sorry, my first post have not enough explanation.
So I will supplement about that.


I have said that btlaunchmany does not send "event=stopped" to the tracker on 
exit.
"event=stopped" means "I'm exiting".
That is, btlaunchmany exited without telling "I'm exiting" to the tracker.
So that the client is remain on the tracker after the client is exited.


Here is how to reproduce this problem:

1. Create a .torrent file
$ echo abcd > test.txt
$ btmakemetafile http://localhost:8081/announce test.txt


2. Launch bttrack
$ bttrack --dfile foo --port 8081


3. Open the tracker with Web Browser
$ filefox http://localhost:8081/


4. Download .torrent with btdownload
$ ls test.txt*
test.txt  test.txt.torrent
$ btdownloadcurses test.txt.torrent

Reload Firefox.
You can see that "complete" is 1.

And then exit btdownloadcurses by pressing "Q" key.

Reload Firefox.
You can see that "complete" is 0.

That is correct.
"complete" is decreased when client is exited.


4. Download .torrent with btlaunchmany
$ ls test.txt*
test.txt  test.txt.torrent
$ btlaunchmanycurses .

Reload Firefox.
You can see that "complete" is 1.

And then exit btlaunchmanycurses by pressing "Q" key.

Reload Firefox.
You can see that "complete" is still 1.

This is the problem.
btlaunchmanycurses exited without telling "I'm exiting" to the tracker.
The client is remain on the tracker after the client is exited.


I think this problem is Debian specific because
bittornado-0.3.15/debian/patches/09_timtuckerfixes.dpatch includes a bug.

I have made a patch for 09_timtuckerfixes.dpatch

--- 09_timtuckerfixes.dpatch.orig       2006-09-19 19:46:16.000000000 +0900
+++ 09_timtuckerfixes.dpatch    2006-09-19 19:46:42.000000000 +0900
@@ -230,10 +230,10 @@
 +            self.Output.exception(data.getvalue())

 -            self.Output.message('shutting down')
-             self.hashcheck_queue = []
-             for hash in self.torrent_list:
- self.Output.message('dropped "'+self.torrent_cache[hash]['path']+'"')
-                 self.downloads[hash].shutdown()
+-            self.hashcheck_queue = []
+-            for hash in self.torrent_list:
+- self.Output.message('dropped "'+self.torrent_cache[hash]['path']+'"')
+-                self.downloads[hash].shutdown()
 -            self.rawserver.shutdown()
 -
 -        except:
@@ -241,6 +241,10 @@
 -            print_exc(file = data)
 -            Output.exception(data.getvalue())

++        self.hashcheck_queue = []
++        for hash in self.torrent_list:
++            self.Output.message('dropped 
"'+self.torrent_cache[hash]['path']+'"')
++            self.downloads[hash].shutdown()
 +        self.rawserver.shutdown()

      def scan(self):


regards,
Morita Sho


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to