david/ipxe
Archived
1
0
Commit Graph

161 Commits

Author SHA1 Message Date
Michael Brown
b9f9230661 Work around another instance of the port re-use bug. 2006-12-05 23:15:35 +00:00
Michael Brown
8c3d09c564 Tweaked retry messages 2006-12-05 23:12:54 +00:00
Michael Brown
9600af14a3 Added debug messages 2006-12-05 22:53:49 +00:00
Michael Brown
cc0b92652f Call closed() method only when the connection is genuinely in the
TCP_CLOSED state (i.e. after the final FIN/ACK exchange), and has been
removed from the list of TCP connections.
2006-12-05 22:53:28 +00:00
Michael Brown
fcc70c9d60 Ensure that tcp_rx() always frees its received packet buffer. 2006-12-05 21:23:23 +00:00
Michael Brown
28c711b91d Killed off spurious <stdio.h> inclusion 2006-12-05 21:16:52 +00:00
Michael Brown
3fbfbad0f7 Avoid calling NULL methods! 2006-12-05 21:09:37 +00:00
Michael Brown
89bcb57201 Update ftp.c to work with Nikhil's TCP stack.
Remove the now-totally-obsolete sockaddr_in field from tcp.h.
2006-12-05 19:07:47 +00:00
Michael Brown
6842dd3222 Handle TargetAddress 2006-12-05 01:41:32 +00:00
Michael Brown
67577556a2 Handle strings as complete units, instead of a byte at a time. 2006-12-05 01:08:56 +00:00
Michael Brown
3a7d762c1c Add iscsi_rx_buffered_data() and supporting infrastructure. 2006-12-05 00:39:05 +00:00
Michael Brown
3f0b4d9ed8 Updated to use asynchronous operation model for iSCSI requests
Added CHAP authentication
2006-11-28 00:29:02 +00:00
Michael Brown
fedc186fd7 Split login into security negotation and operational parameter
negotiation phases, to allow inclusion of CHAP authentication.
2006-10-03 09:17:38 +00:00
Michael Brown
88e38fa148 We don't actually have a stdio.h header file. Our printf() functions are
defined in vsprintf.h.  (This may change, since vsprintf.h is a
non-standard name, but for now it's the one to use.)

There should be no need to include vsprintf.h just for DBG() statements,
since include/compiler.h forces it in for a debug build anyway.
2006-09-27 10:58:14 +00:00
Marty Connor
6ac78f6aff added stdio.h to includes for DBG compilation 2006-09-27 05:57:06 +00:00
Michael Brown
0dca1dc8ce Made eth_ntoa() public for use in legacy drivers' DBG() statements. 2006-09-15 12:34:34 +00:00
Michael Brown
095fce14f8 Added extra debugging 2006-08-30 13:39:07 +00:00
Michael Brown
cab3f4502b Correct option number for DHCP_DNS_SERVERS, and add it to the request
list.
2006-08-27 01:37:58 +00:00
Nikhil Chandru Rao
dccb8358bd Fixed a bug in the TCP state machine. Added a transition from ESTABLISHED to LAST_ACK on receiving a FIN,ACK 2006-08-19 16:14:53 +00:00
Nikhil Chandru Rao
d1d334b8e1 IP6 support 2006-08-19 15:58:22 +00:00
Michael Brown
f1e1dfae3d Added RX tracing as well. 2006-08-16 00:15:40 +00:00
Michael Brown
0743dc5b0d Added some minimal debugging for transmitted PDUs. 2006-08-15 23:56:18 +00:00
Derek Pryor
562ab6d65c Bug fixes to the HTTP protocol code 2006-08-12 19:05:08 +00:00
Derek Pryor
0f88703019 Bug fixes to the HTTP protocol code 2006-08-12 18:54:59 +00:00
Michael Brown
db0ff1731f Fail gracefully when set_dhcp_option() is called with options==NULL. 2006-08-11 18:16:34 +00:00
Derek Pryor
25ea34a8d7 New HTTP protocol and test code 2006-08-11 14:13:02 +00:00
Michael Brown
2497270c14 command->data_{in,out} are now userptr_t, so it is invalid to compare
against NULL.
2006-08-10 17:35:14 +00:00
Michael Brown
ea5fa82b91 Fixed variable name in assertion 2006-08-10 17:09:48 +00:00
Michael Brown
c3a4f3c5da Towards an RFC2988-compliant timer. 2006-08-09 15:54:17 +00:00
Michael Brown
f0718d562f Don't call stop_timer() from within the timer expiry callback; it's
already stopped.

Don't call start_timer() when sending a dataless ACK.  This may or may
not be the right thing to do; I can't tell.

Back out broken "send ACK only if required to" logic temporarily.
2006-08-09 15:50:20 +00:00
Nikhil Chandru Rao
3aff701001 Changed the TCP state machines behaviour in the ESTABLISHED state 2006-08-09 15:04:26 +00:00
Michael Brown
dc8b96b446 Temporarily work around the bug when port numbers are reused between
subsequent runs.
2006-08-09 14:44:58 +00:00
Michael Brown
09688cb3b5 Correct some packet ownership and freeing bugs. 2006-08-09 14:27:07 +00:00
Michael Brown
43d601b678 out_flags was being set but never used.
Use just random() to allocate initial sequence numbers; the previous
algorithm ended up with a high probability of zeroing the high word.
2006-08-09 13:35:03 +00:00
Michael Brown
065a2a486d Port the UDP port allocation code to TCP 2006-08-09 12:08:20 +00:00
Michael Brown
de0c36a98a Remove some of the confusion surrounding the amount to strip off from
a TCP packet before passing to newdata().
2006-08-09 12:01:09 +00:00
Michael Brown
867c7aef59 iphdr->hlen includes the IP header, so truncate packet *before*
stripping the header.  Also fix an htons/ntohs confusion.
2006-08-09 11:52:53 +00:00
Marty Connor
ee9ae8130a Remove _PROTOCOL macros for gcc 3.2 compatibility 2006-08-09 04:42:14 +00:00
Michael Brown
e9561aafc0 Derive xid dynamically from the netdev, so that we can call
create_dhcp_packet() from pxe_preboot.c, after the dhcp_session is long
gone.

Expose the functions required by pxe_preboot.c
2006-08-09 02:56:40 +00:00
Michael Brown
a3d508b648 Clarified packet ownership transfer between a few functions.
Added a large number of missing calls to free_pkb().  In the case of UDP,
no received packets were ever freed, which lead to memory exhaustion
remarkably quickly once pxelinux started up.

In general, any function with _rx() in its name which accepts a pk_buff
*must* either call free_pkb() or pass the pkb to another _rx() function
(e.g. the next layer up the stack).  Since the UDP (and TCP) layers don't
pass packet buffers up to the higher-layer protocols (the
"applications"), they must free the packet buffer after calling the
application's newdata() method.
2006-08-09 01:24:32 +00:00
Michael Brown
d1a123b1f4 Added TFTP test code (currently just dumps file to console). 2006-08-09 00:09:29 +00:00
Michael Brown
3611cb17b7 Initial (untested) implementation of TFTP over the new UDP API. 2006-08-08 23:45:52 +00:00
Nikhil Chandru Rao
409f69a08a Changed ipv4_dump() to consume only one line. 2006-08-08 22:26:35 +00:00
Nikhil Chandru Rao
8bf38fb400 Corrected bugs in the TCP logic. There might be a few more which need to be taken care of. 2006-08-08 22:25:20 +00:00
Michael Brown
68e33224ef gcc3 compatibility: removed ARP_NET_PROTOCOL(). 2006-08-08 17:44:25 +00:00
Nikhil Chandru Rao
d2bdf81505 Removed some bugs in TCP 2006-08-08 03:42:30 +00:00
Nikhil Chandru Rao
cb42e573a0 Added retransmissions to TCP 2006-08-07 18:52:26 +00:00
Michael Brown
885a630ddf Fix routing when a gateway exists. This should probably be split into
a separate function.
2006-08-07 17:51:19 +00:00
Michael Brown
d0e4f198d6 Add iSCSI to the DHCP tests.
Start updating iscsi.c to use Nikhil's TCP API.
2006-08-07 16:48:24 +00:00
Nikhil Chandru Rao
6714ec745a Minor corrections 2006-08-07 07:37:23 +00:00