On 8/15/06, Marten <[EMAIL PROTECTED]> wrote:
<quote> Ethereal showed that only the 1st block of 512 bytes was being sent from the server and being acknowkedged. Block 2 was sent, but never acked.
(It didn't acknowledge because it already started booting!)
Given that the file pxeboot was 200KB, something was wrong.
if you had used tcpdump -Xs 99 you would have seen in the first few packets of the negotiation, the wrap netboot client sent a request for changing the packet length. This was silently ignored by the OpenBSD tftpd, because it is not supported. When the wrap recieved a packet smaller than the packetlength it asked for, it assumed EOF and began executing.... If i remember right the packetlength for the send buffer on tftpd is implemented as a global variable in netbsd's implementation that is modified by this command from the client. I havn't used it, but from code it looks like it would work for wrap. Netbsd's method is not so easy to port over, as they extended the server/client command framework to something very different (and kindof scary). dump what the wrap is requesting (i beleive the command sent to server is packetlength xxxx?) and hardcode xxxx as the sendbuffer in tftpd and recompile for a quick workaround.