Michael Brown
a3695b1ff6
Placeholder for TLS insertion
18 years ago
Michael Brown
2d726144f7
Filter insertion now actually works
18 years ago
Michael Brown
138967dd6b
Tidy up debug messages
18 years ago
Michael Brown
e38e516463
Add insert_filter() function
18 years ago
Michael Brown
6d32f0e6e2
Changed to use the generic stream API.
18 years ago
Michael Brown
02f18565da
First sketch of stream API
18 years ago
Michael Brown
55601b2d38
Placeholder
18 years ago
Michael Brown
2f7eac1646
Low-overhead filter streams
18 years ago
Michael Brown
bde8878eef
Keep HTTP progress updated, and display a progress indicator during the
download
18 years ago
Michael Brown
92a78c8e15
Added SIGKILL handler
18 years ago
Michael Brown
73b09ecba6
Use stdio.h instead of vsprintf.h
18 years ago
Michael Brown
4e3976711d
A working name resolution framework
18 years ago
Michael Brown
075f8144ff
Have DHCP set the nameserver, rather than DNS read the DHCP nameserver
value.
18 years ago
Michael Brown
c014f607a8
Use total free memory as advertised window. This seems to be sufficient
to avoid drops even on slow NICs.
18 years ago
Michael Brown
6d4e37cf42
Move include/malloc.h to include/gpxe/malloc.h, since everything in there
is now gPXE-specific. (The standard malloc() et al have been in stdlib.h
for a while).
Add free memory counter.
18 years ago
Michael Brown
5ff23aa406
Include stdlib.h rather than malloc.h
18 years ago
Michael Brown
05f4c3d176
Remove the one-packet-per-poll-cycle limit; it seems to no longer be
needed now that performance is up.
18 years ago
Michael Brown
6c72bf13a1
Presize the download buffer when we see the Content-Length header;
this saves around 70us per received packet (which is around 50% of the
overall packet processing time).
18 years ago
Michael Brown
08da93a311
Reorder functions to more closely reflect the flow of control
18 years ago
Michael Brown
06630a3036
Switch from calloc() to malloc()+memset() to match the practices used
almost everywhere else.
18 years ago
Michael Brown
dd6d94004f
HTTP/DNS now working fully asynchronously. HTTP/IP addresses and any
other protocol won't work at the moment.
18 years ago
Michael Brown
99e58865c7
Use struct sockaddr rather than struct sockaddr_tcpip
Tidy up code
18 years ago
Michael Brown
f11da20f25
When a network device is specified to tcpip_tx() or it's children, treat
it as a fallback network device rather than an explicitly forced network
device.
Clear routing table entries before re-attempting DHCP.
18 years ago
Michael Brown
1a1fc23417
Improve debugging
18 years ago
Michael Brown
bcdb6fad3e
Improve debug messages
18 years ago
Michael Brown
835d35749f
Improved debugging
18 years ago
Michael Brown
143d14614d
Quickly hack in DNS resolution as a proof of concept
18 years ago
Michael Brown
9af12d5fba
A working DNS resolver (not yet tied in to anything)
18 years ago
Michael Brown
df0397f334
Update TFTP and FTP to take the same temporary URI scheme as HTTP
18 years ago
Michael Brown
afa752f5fb
Protocol's get() method no longer takes ownership of the URI. HTTP is the
exception rather than the rule; we may as well keep things clean for other
protocols.
18 years ago
Michael Brown
1f92c6b3e8
Must free http on the error path; nothing else will do it
18 years ago
Michael Brown
c676591cd1
Unmaintained example code is probably worse than useless.
18 years ago
Michael Brown
4e20d73bb5
Gave asynchronous operations approximate POSIX signal semantics. This
will enable us to cascade async operations, which is necessary in order to
properly support DNS. (For example, an HTTP request may have to redirect
to a new location and will have to perform a new DNS lookup, so we can't
just rely on doing the name lookup at the time of parsing the initial
URL).
Anything other than HTTP is probably broken right now; I'll fix the others
up asap.
18 years ago
Michael Brown
76aa9ad07d
Make TCP give up immediately when it receives -ENETUNREACH from
tcpip_tx(). This avoids the irritating wait when you accidentally type
"kernel pxelinux.0" before bringing up the network interface.
Add ENETUNREACH to strerror()'s list.
18 years ago
Michael Brown
c953c1a1c3
Use -ENETUNREACH to mean "no reachable network device exists, don't bother
retrying".
18 years ago
Michael Brown
526d314266
Advertise a larger MSS to improve TCP performance.
18 years ago
Michael Brown
497c3a5aad
Fixed HTTP
18 years ago
Michael Brown
ad22cccc09
No need to maintain a received byte count; we always fill in sequential
order so we can just use buffer->fill.
18 years ago
Michael Brown
0010e10ef3
Update TFTP to use a struct buffer rather than a callback.
Add debug autocolourisation to TFTP.
18 years ago
Michael Brown
037da9d840
I hate NULL pointer dereferences.
18 years ago
Michael Brown
a3ed0cbbc7
Extract packet-padding login from rtl8139.c to a separate pkbpad.c file.
18 years ago
Michael Brown
6918cf9e9e
Change FTP to use a data buffer rather than a callback function.
18 years ago
Michael Brown
d9ba8f790b
Add route() function to display routing table.
18 years ago
Michael Brown
1fa5cd0e2b
Add find_pci_netdev()
18 years ago
Michael Brown
dad5274522
Add "name" field to struct device to allow human-readable hardware device
names.
Add "dev" pointer in struct net_device to tie network interfaces back to a
hardware device.
Force natural alignment of data types in __table() macros. This seems to
prevent gcc from taking the unilateral decision to occasionally increase
their alignment (which screws up the table packing).
18 years ago
Michael Brown
cc9b32c405
Remove uIP; we haven't used it for quite some time now.
18 years ago
Michael Brown
753e156844
Allow udp_{send,sendto,sendto_via} to be called outside of the
udp_senddata() callback. This will simplify any UDP protocols that don't
need the temporary buffer.
18 years ago
Michael Brown
649b789e93
DHCP transmits via specified net device, so no need to create a dummy
routing table entry just to fool ipv4.c any more.
18 years ago
Michael Brown
c821a7b20d
Add udp_sendto_via() to allow e.g. DHCP to transmit without first having
to set up dummy routing entries.
18 years ago
Michael Brown
f008b77ba2
Allow an explicit network device to be specified for IP-layer
transmissions.
18 years ago