diff options
| author | Richard Nyberg <rnyberg@murmeldjur.se> | 2005-10-05 08:59:01 +0000 |
|---|---|---|
| committer | Richard Nyberg <rnyberg@murmeldjur.se> | 2005-10-05 08:59:01 +0000 |
| commit | 80214ff0fbc4497b8e52e164b3ae58efc9b66f80 (patch) | |
| tree | 12c65fc0fc946c15b2dda7e96aefb813ba5c3590 | |
| parent | 9ba7dc69fc5fd859bc8d1de484ef45acef5c5709 (diff) | |
| download | btpd-80214ff0fbc4497b8e52e164b3ae58efc9b66f80.tar.gz btpd-80214ff0fbc4497b8e52e164b3ae58efc9b66f80.zip | |
Code shuffle.
| -rw-r--r-- | btpd/net.c | 15 | ||||
| -rw-r--r-- | btpd/peer.c | 16 | ||||
| -rw-r--r-- | btpd/peer.h | 1 |
3 files changed, 19 insertions, 13 deletions
diff --git a/btpd/net.c b/btpd/net.c index d0db03a..9958a3e 100644 --- a/btpd/net.c +++ b/btpd/net.c @@ -239,17 +239,7 @@ net_state(struct peer *p, const char *buf) || bcmp(buf, btpd.peer_id, 20) == 0)) goto bad; bcopy(buf, p->id, 20); - btpd_log(BTPD_L_CONN, "Got whole shake.\n"); - p->piece_field = btpd_calloc(1, (int)ceil(p->tp->meta.npieces / 8.0)); - if (p->tp->have_npieces > 0) { - if (p->tp->have_npieces * 9 < 5 + ceil(p->tp->meta.npieces / 8.0)) - peer_send(p, nb_create_multihave(p->tp)); - else { - peer_send(p, nb_create_bitfield(p->tp)); - peer_send(p, nb_create_bitdata(p->tp)); - } - } - cm_on_new_peer(p); + peer_on_shake(p); net_set_state(p, NET_MSGSIZE, 4); break; case NET_MSGSIZE: @@ -265,9 +255,8 @@ net_state(struct peer *p, const char *buf) if (net_dispatch_msg(p, buf) != 0) goto bad; net_set_state(p, NET_MSGSIZE, 4); - } else { + } else net_set_state(p, NET_MSGBODY, p->net.msg_len - 1); - } break; case NET_MSGBODY: if (net_dispatch_msg(p, buf) != 0) diff --git a/btpd/peer.c b/btpd/peer.c index 0576d40..a00569c 100644 --- a/btpd/peer.c +++ b/btpd/peer.c @@ -303,6 +303,22 @@ peer_create_out_compact(struct torrent *tp, const char *compact) } void +peer_on_shake(struct peer *p) +{ + btpd_log(BTPD_L_MSG, "received shake from %p.\n", p); + p->piece_field = btpd_calloc(1, (int)ceil(p->tp->meta.npieces / 8.0)); + if (p->tp->have_npieces > 0) { + if (p->tp->have_npieces * 9 < 5 + ceil(p->tp->meta.npieces / 8.0)) + peer_send(p, nb_create_multihave(p->tp)); + else { + peer_send(p, nb_create_bitfield(p->tp)); + peer_send(p, nb_create_bitdata(p->tp)); + } + } + cm_on_new_peer(p); +} + +void peer_on_choke(struct peer *p) { btpd_log(BTPD_L_MSG, "received choke from %p\n", p); diff --git a/btpd/peer.h b/btpd/peer.h index 84ef02b..4bf046b 100644 --- a/btpd/peer.h +++ b/btpd/peer.h @@ -88,6 +88,7 @@ void peer_create_out(struct torrent *tp, const uint8_t *id, void peer_create_out_compact(struct torrent *tp, const char *compact); void peer_kill(struct peer *p); +void peer_on_shake(struct peer *p); void peer_on_interest(struct peer *p); void peer_on_uninterest(struct peer *p); void peer_on_choke(struct peer *p); |