Michael Brown
a646e38f03
Use stdlib.h for malloc() instead of malloc.h.
před 18 roky
Michael Brown
04c09823bd
Request all the options that we're prepared to do anything with.
před 18 roky
Michael Brown
a1af111a87
Also request root-path.
před 18 roky
Michael Brown
38ae94f8ce
A cleaner method of handling login redirection; just use the existing
reconnection mechanism. This avoids the problems of trying to reuse
the TCP connection structure before the old connection has cleanly exited.
před 18 roky
Michael Brown
5edb85c8b4
Work around another confused-by-RST bug
před 18 roky
Michael Brown
b9f9230661
Work around another instance of the port re-use bug.
před 18 roky
Michael Brown
8c3d09c564
Tweaked retry messages
před 18 roky
Michael Brown
9600af14a3
Added debug messages
před 18 roky
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.
před 18 roky
Michael Brown
fcc70c9d60
Ensure that tcp_rx() always frees its received packet buffer.
před 18 roky
Michael Brown
28c711b91d
Killed off spurious <stdio.h> inclusion
před 18 roky
Michael Brown
3fbfbad0f7
Avoid calling NULL methods!
před 18 roky
Michael Brown
89bcb57201
Update ftp.c to work with Nikhil's TCP stack.
Remove the now-totally-obsolete sockaddr_in field from tcp.h.
před 18 roky
Michael Brown
6842dd3222
Handle TargetAddress
před 18 roky
Michael Brown
67577556a2
Handle strings as complete units, instead of a byte at a time.
před 18 roky
Michael Brown
3a7d762c1c
Add iscsi_rx_buffered_data() and supporting infrastructure.
před 18 roky
Michael Brown
3f0b4d9ed8
Updated to use asynchronous operation model for iSCSI requests
Added CHAP authentication
před 18 roky
Michael Brown
fedc186fd7
Split login into security negotation and operational parameter
negotiation phases, to allow inclusion of CHAP authentication.
před 18 roky
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.
před 18 roky
Marty Connor
6ac78f6aff
added stdio.h to includes for DBG compilation
před 18 roky
Michael Brown
0dca1dc8ce
Made eth_ntoa() public for use in legacy drivers' DBG() statements.
před 18 roky
Michael Brown
095fce14f8
Added extra debugging
před 18 roky
Michael Brown
cab3f4502b
Correct option number for DHCP_DNS_SERVERS, and add it to the request
list.
před 18 roky
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
před 18 roky
Nikhil Chandru Rao
d1d334b8e1
IP6 support
před 18 roky
Michael Brown
f1e1dfae3d
Added RX tracing as well.
před 18 roky
Michael Brown
0743dc5b0d
Added some minimal debugging for transmitted PDUs.
před 18 roky
Derek Pryor
562ab6d65c
Bug fixes to the HTTP protocol code
před 18 roky
Derek Pryor
0f88703019
Bug fixes to the HTTP protocol code
před 18 roky
Michael Brown
db0ff1731f
Fail gracefully when set_dhcp_option() is called with options==NULL.
před 18 roky
Derek Pryor
25ea34a8d7
New HTTP protocol and test code
před 18 roky
Michael Brown
2497270c14
command->data_{in,out} are now userptr_t, so it is invalid to compare
against NULL.
před 18 roky
Michael Brown
ea5fa82b91
Fixed variable name in assertion
před 18 roky
Michael Brown
c3a4f3c5da
Towards an RFC2988-compliant timer.
před 18 roky
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.
před 18 roky
Nikhil Chandru Rao
3aff701001
Changed the TCP state machines behaviour in the ESTABLISHED state
před 18 roky
Michael Brown
dc8b96b446
Temporarily work around the bug when port numbers are reused between
subsequent runs.
před 18 roky
Michael Brown
09688cb3b5
Correct some packet ownership and freeing bugs.
před 18 roky
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.
před 18 roky
Michael Brown
065a2a486d
Port the UDP port allocation code to TCP
před 18 roky
Michael Brown
de0c36a98a
Remove some of the confusion surrounding the amount to strip off from
a TCP packet before passing to newdata().
před 18 roky
Michael Brown
867c7aef59
iphdr->hlen includes the IP header, so truncate packet *before*
stripping the header. Also fix an htons/ntohs confusion.
před 18 roky
Marty Connor
ee9ae8130a
Remove _PROTOCOL macros for gcc 3.2 compatibility
před 18 roky
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
před 18 roky
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.
před 18 roky
Michael Brown
d1a123b1f4
Added TFTP test code (currently just dumps file to console).
před 18 roky
Michael Brown
3611cb17b7
Initial (untested) implementation of TFTP over the new UDP API.
před 18 roky
Nikhil Chandru Rao
409f69a08a
Changed ipv4_dump() to consume only one line.
před 18 roky
Nikhil Chandru Rao
8bf38fb400
Corrected bugs in the TCP logic. There might be a few more which need to be taken care of.
před 18 roky
Michael Brown
68e33224ef
gcc3 compatibility: removed ARP_NET_PROTOCOL().
před 18 roky