Mi a helyzet a DCC 1024 bájt-nál behal hibával. Az 1024 bájtot becsülettel kiküldi, (egy linuxos chattel, mint fogadóval teszteltem). Tehát:
Kézfogás megtörtént:
> SYN,
< SYN-ACK
> ACK
Adatküldés:
> PSH,ACK (1024 bájt) // sent = send (sok, buf, 1024, 0);
< ACK
< PSH,ACK (4 bájt) (0x00000400) // send (dcc->sok, (char *) &pos, 4, 0);
> ACK
ÉS vége...
dcc.c:1467
Hmm...
n = recv (dcc->sok, buf, sizeof (buf), 0);
if (n < 1)
{
if (n < 0)
{
if (would_block ())
{
if (need_ack)
dcc_send_ack (dcc);
return TRUE;
}
}
EMIT_SIGNAL (XP_TE_DCCRECVERR, dcc->serv->front_session, dcc->file,
dcc->destfile, dcc->nick,
errorstring ((n < 0) ? sock_error () : 0), 0);
/* send ack here? but the socket is dead */
/*if (need_ack)
dcc_send_ack (dcc);*/
dcc_close (dcc, STAT_FAILED, FALSE);
return TRUE;
}
Újabb bugocska:
Egy háromgigás fájlt akarok elküldeni ezt írja ki:
Cannot send directories or empty files.
hmmm... az st.st_size signed int?