Explorar el Código

Code shuffle.

master
Richard Nyberg hace 20 años
padre
commit
80214ff0fb
Se han modificado 3 ficheros con 19 adiciones y 13 borrados
  1. +2
    -13
      btpd/net.c
  2. +16
    -0
      btpd/peer.c
  3. +1
    -0
      btpd/peer.h

+ 2
- 13
btpd/net.c Ver fichero

@@ -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)


+ 16
- 0
btpd/peer.c Ver fichero

@@ -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)
{


+ 1
- 0
btpd/peer.h Ver fichero

@@ -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);


Cargando…
Cancelar
Guardar