Michael Brown
aec9b8a41b
[Settings] Use a settings applicator to configure IPv4 routes.
16 years ago
Alexey Zaytsev
a1572e0ab0
Modify gPXE core and drivers to work with the new timer subsystem
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com >
16 years ago
Michael Brown
844828cb15
[DHCP] Fix RFC4390 client identifier constructions.
RFC 4390 provides for the DHCP client identifier to contain the link-layer
hardware type and MAC address when the MAC address exceeds 16 bytes.
However, the hardware type field is only 8 bits; we were assuming 16 bits.
16 years ago
Michael Brown
f6a8158eed
Make seek information part of the xfer metadata, rather than an entirely
separate xfer method.
Add missing .alloc_iob entries to several xfer_interface_operations
structures.
17 years ago
Michael Brown
3311169707
When the DHCP file/sname fields are empty, don't allow them to override
their equivalent DHCP-option-specified values.
17 years ago
Michael Brown
df868476e7
Various warnings fixups for OpenBSD with gcc-3.3.5.
17 years ago
Michael Brown
b3abf25e3c
Allow DHCP server to instruct gPXE to ignore ProxyDHCP (which will
also avoid waiting for ProxyDHCP offers).
Also reduce the ProxyDHCP timeout, because it's already irritating me.
17 years ago
Michael Brown
0becbf5fba
Add ProxyDHCP support.
17 years ago
Michael Brown
fb809da2df
Remove some assumptions about DHCP obtaining only a single options block.
17 years ago
Michael Brown
8d18338ae7
Add PXE-required DHCP options to DHCPDISCOVER and DHCPREQUEST packets.
17 years ago
Michael Brown
26f3a09ccf
Add UUID to DHCP request as option 97 (if available).
17 years ago
Michael Brown
af303db75d
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
17 years ago
Michael Brown
7e4e5af462
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
17 years ago
Michael Brown
771455653b
Bugfix: DHCP message type should be a one-byte option... (d'oh)
17 years ago
Michael Brown
c0d99245a9
Bugfix: DHCP message type should be a one-byte option... (d'oh)
17 years ago
Michael Brown
2ff1b1245b
Use start_timer_nodelay() in protocols which rely on the retry timer
to generate the initial transmission; this cuts off around 0.3s per
instantiated connection.
17 years ago
Michael Brown
0acb016840
Add FEATURE() macro, plus code to display features at startup time,
and generate DHCP options to indicate features to DHCP server (and to
PXE NBPs).
17 years ago
Michael Brown
79691961ba
Add identifier for the network device into the DHCP request.
17 years ago
Michael Brown
5e26df0325
Centralise construction of the DHCP request and response packets.
17 years ago
Michael Brown
b34d4d0449
Separate the "is data ready" function of xfer_seek() into an
xfer_window() function, which can return a scalar rather than a
boolean.
17 years ago
Michael Brown
ca4c6f9eee
Kill off unused request() method in data-xfer interface.
17 years ago
Holger Lubitz
a4d3476e0e
convert to zalloc
17 years ago
Michael Brown
934b70d62c
Apply global DHCP options when register_dhcp_options() is called. Do
not apply DHCP options in dhcp_configure_netdev().
17 years ago
Michael Brown
1567b69895
Add concept of DHCP option applicators.
17 years ago
Michael Brown
3bf5eb49d0
Can't use strncpy() to copy strings that aren't NUL-terminated to
begin with.
17 years ago
Michael Brown
acd598b4f9
Don't build option-overloaded packets; they just confuse people (ISC
DHCPD and Windows RIS in particular).
17 years ago
Michael Brown
c73bff7ae5
Set current working URI based on TFTP server specified by DHCP.
17 years ago
Michael Brown
1ec7bb789d
Add dhcp_configure_netdev()
17 years ago
Michael Brown
cf33b568dc
Forgot to set initial session state. Now works!
17 years ago
Michael Brown
73fe1ba9dd
Kill off job::start() (it was only ever added as part of an aborted
attempt at triggering TCP-related protocols to start).
17 years ago
Michael Brown
07dc294de8
Update DHCP to use data-xfer interface (not yet tested).
17 years ago
Michael Brown
f77815f2b1
Kill off hotplug.h and just make net devices normal reference-counted
structures.
DHCP still broken and #if 0'd out.
17 years ago
Anselm Martin Hoffmeister
ed7dc02a95
hoffmeis: Preparations for syslog support (LOGSERVER in DHCP, linewise
output buffering defintions and the like)
17 years ago
Michael Brown
835d35749f
Improved debugging
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
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
7fafa89258
A DHCP session holds a persistent reference to a network device
18 years ago
Michael Brown
60a3f77711
Close UDP connection when DHCP completes.
18 years ago
Michael Brown
04c09823bd
Request all the options that we're prepared to do anything with.
18 years ago
Michael Brown
a1af111a87
Also request root-path.
18 years ago
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.
18 years ago
Marty Connor
6ac78f6aff
added stdio.h to includes for DBG compilation
18 years ago
Michael Brown
cab3f4502b
Correct option number for DHCP_DNS_SERVERS, and add it to the request
list.
18 years ago
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
18 years ago
Michael Brown
ffe0e24249
Make the UDP senddata() methods return a status code.
udp_connect() now follows the standard BSD sockets semantics and simply
sets the default address for outgoing packets; it doesn't filter incoming
packets.
18 years ago
Michael Brown
467e9627cc
Added features that will be required for PXE UDP support.
Introduced struct sockaddr_tcpip, to simplify code that deals with
both IPv4 and IPv6 addresses.
Reorganised parts of tcpip.c and udp.c.
18 years ago
Michael Brown
ae277992c2
Request bootfile name; it doesn't seem to be automatically supplied by
all servers.
18 years ago
Michael Brown
3085f03ad4
Request Etherboot encapsulated options.
Parameter request list is yet another option that ISC dhcpd ignores
unless it's in the main options block.
Fix logic error in parsing file and sname fields.
18 years ago
Michael Brown
6a0b4c9772
Free up any allocated options if we fail
18 years ago
Michael Brown
764cb41456
Document memory ownership.
18 years ago