From 80214ff0fbc4497b8e52e164b3ae58efc9b66f80 Mon Sep 17 00:00:00 2001 From: Richard Nyberg Date: Wed, 5 Oct 2005 08:59:01 +0000 Subject: [PATCH] Code shuffle. --- btpd/net.c | 15 ++------------- btpd/peer.c | 16 ++++++++++++++++ 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 @@ -302,6 +302,22 @@ peer_create_out_compact(struct torrent *tp, const char *compact) peer_send(p, nb_create_shake(p->tp)); } +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) { 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);