(libT) fix r7234 bug reported by John_Clay

This commit is contained in:
Charles Kerr 2008-12-02 19:06:08 +00:00
parent 9d39ed2540
commit c414377c1a
2 changed files with 14 additions and 10 deletions

View File

@ -972,8 +972,8 @@ peerCallbackFunc( void * vpeer,
void * vevent,
void * vt )
{
tr_peer * peer = vpeer; /* may be NULL if peer is a webseed */
Torrent * t = (Torrent *) vt;
tr_peer * peer = vpeer; /* may be NULL if peer is a webseed */
Torrent * t = vt;
const tr_peer_event * e = vevent;
torrentLock( t );
@ -1276,7 +1276,7 @@ myHandshakeDoneCB( tr_handshake * handshake,
peer->port = port;
peer->io = io;
peer->msgs = tr_peerMsgsNew( t->tor, peer, peerCallbackFunc, t, &peer->msgsTag );
tr_peerMsgsNew( t->tor, peer, peerCallbackFunc, t, &peer->msgsTag );
tr_peerIoSetBandwidth( io, peer->bandwidth );
success = TRUE;

View File

@ -519,6 +519,9 @@ static void
publish( tr_peermsgs * msgs,
tr_peer_event * e )
{
assert( msgs->info );
assert( msgs->info->msgs == msgs );
tr_publisherPublish( msgs->publisher, msgs->info, e );
}
@ -2128,22 +2131,22 @@ pexPulse( void * vpeer )
tr_peermsgs*
tr_peerMsgsNew( struct tr_torrent * torrent,
struct tr_peer * info,
struct tr_peer * peer,
tr_delivery_func func,
void * userData,
tr_publisher_tag * setme )
{
tr_peermsgs * m;
assert( info );
assert( info->io );
assert( peer );
assert( peer->io );
m = tr_new0( tr_peermsgs, 1 );
m->publisher = tr_publisherNew( );
m->info = info;
m->info = peer;
m->session = torrent->session;
m->torrent = torrent;
m->io = info->io;
m->io = peer->io;
m->info->clientIsChoked = 1;
m->info->peerIsChoked = 1;
m->info->clientIsInterested = 0;
@ -2159,6 +2162,8 @@ tr_peerMsgsNew( struct tr_torrent * torrent,
m->peerAskedFor = REQUEST_LIST_INIT;
m->clientAskedFor = REQUEST_LIST_INIT;
m->clientWillAskFor = REQUEST_LIST_INIT;
peer->msgs = m;
*setme = tr_publisherSubscribe( m->publisher, func, userData );
if( tr_peerIoSupportsLTEP( m->io ) )
@ -2166,8 +2171,7 @@ tr_peerMsgsNew( struct tr_torrent * torrent,
tellPeerWhatWeHave( m );
tr_peerIoSetTimeoutSecs( m->io, 150 ); /* timeout after N seconds of
inactivity */
tr_peerIoSetTimeoutSecs( m->io, 150 ); /* timeout after N seconds of inactivity */
tr_peerIoSetIOFuncs( m->io, canRead, didWrite, gotError, m );
ratePulse( m );