1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-26 17:47:37 +00:00

(libT) move the tr_peer declaration from peer-mgr.h to peer-common.h

This commit is contained in:
Jordan Lee 2013-02-03 22:40:00 +00:00
parent 67ae1e7b2e
commit 3cb7595b85
3 changed files with 72 additions and 59 deletions

View file

@ -27,8 +27,9 @@
**/
#include "transmission.h"
struct tr_bitfield;
#include "bitfield.h"
#include "history.h"
#include "quark.h"
enum
{
@ -80,7 +81,69 @@ tr_peer_event;
extern const tr_peer_event TR_PEER_EVENT_INIT;
struct tr_peer;
/**
* State information about a connected peer.
*
* @see struct peer_atom
* @see tr_peermsgs
*/
typedef struct tr_peer
{
/* whether or not we should free this peer soon.
NOTE: private to peer-mgr.c */
bool doPurge;
/* Whether or not we've choked this peer.
Only applies to BitTorrent peers */
bool peerIsChoked;
/* whether or not the peer has indicated it will download from us.
Only applies to BitTorrent peers */
bool peerIsInterested;
/* whether or the peer is choking us.
Only applies to BitTorrent peers */
bool clientIsChoked;
/* whether or not we've indicated to the peer that we would download from them if unchoked.
Only applies to BitTorrent peers */
bool clientIsInterested;
/* number of bad pieces they've contributed to */
uint8_t strikes;
uint8_t encryption_preference;
/* how many requests the peer has made that we haven't responded to yet */
int pendingReqsToClient;
/* how many requests we've made and are currently awaiting a response for */
int pendingReqsToPeer;
struct tr_peerIo * io;
struct peer_atom * atom;
/** how complete the peer's copy of the torrent is. [0.0...1.0] */
float progress;
struct tr_bitfield blame;
struct tr_bitfield have;
/* the client name.
For BitTorrent peers, this is the app name derived from the `v' string in LTEP's handshake dictionary */
tr_quark client;
time_t chokeChangedAt;
tr_recentHistory blocksSentToClient;
tr_recentHistory blocksSentToPeer;
tr_recentHistory cancelsSentToClient;
tr_recentHistory cancelsSentToPeer;
struct tr_peermsgs * msgs;
}
tr_peer;
typedef void tr_peer_callback (struct tr_peer * peer,
const tr_peer_event * event,

View file

@ -23,10 +23,8 @@
#include <winsock2.h> /* struct in_addr */
#endif
#include "bitfield.h"
#include "history.h"
#include "net.h" /* tr_address */
#include "peer-common.h" /* struct peer_request */
#include "peer-common.h"
#include "quark.h"
/**
@ -81,56 +79,6 @@ enum
/* opaque forward declaration */
struct peer_atom;
/**
* State information about a connected peer.
*
* @see struct peer_atom
* @see tr_peermsgs
*/
typedef struct tr_peer
{
bool peerIsChoked;
bool peerIsInterested;
bool clientIsChoked;
bool clientIsInterested;
bool doPurge;
/* number of bad pieces they've contributed to */
uint8_t strikes;
uint8_t encryption_preference;
tr_port dht_port;
/* how many requests the peer has made that we haven't responded to yet */
int pendingReqsToClient;
/* how many requests we've made and are currently awaiting a response for */
int pendingReqsToPeer;
struct tr_peerIo * io;
struct peer_atom * atom;
struct tr_bitfield blame;
struct tr_bitfield have;
/** how complete the peer's copy of the torrent is. [0.0...1.0] */
float progress;
/* the client name from the `v' string in LTEP's handshake dictionary */
tr_quark client;
time_t chokeChangedAt;
tr_recentHistory blocksSentToClient;
tr_recentHistory blocksSentToPeer;
tr_recentHistory cancelsSentToClient;
tr_recentHistory cancelsSentToPeer;
struct tr_peermsgs * msgs;
}
tr_peer;
void tr_peerConstruct (struct tr_peer * peer);
void tr_peerDestruct (tr_torrent * tor, struct tr_peer * peer);

View file

@ -177,6 +177,8 @@ struct tr_peermsgs
uint16_t pexCount;
uint16_t pexCount6;
tr_port dht_port;
size_t metadata_size_hint;
#if 0
size_t fastsetSize;
@ -1466,11 +1468,11 @@ 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->dht_port > 0)
tr_peerIoReadUint16 (msgs->peer->io, inbuf, &msgs->dht_port);
if (msgs->dht_port > 0)
tr_dhtAddNode (getSession (msgs),
tr_peerAddress (msgs->peer),
msgs->peer->dht_port, 0);
msgs->dht_port, 0);
break;
case BT_FEXT_SUGGEST: