<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/net/tcp, branch openslx</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/net/tcp?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/net/tcp?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2026-01-14T16:10:29+00:00</updated>
<entry>
<title>[build] Mark known reviewed files as permitted for UEFI Secure Boot</title>
<updated>2026-01-14T16:10:29+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2026-01-14T14:36:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=adcaaf9b93f9de14ba93bea54aecef103fe16b5f'/>
<id>urn:sha1:adcaaf9b93f9de14ba93bea54aecef103fe16b5f</id>
<content type='text'>
Some past security reviews carried out for UEFI Secure Boot signing
submissions have covered specific drivers or functional areas of iPXE.
Mark all of the files comprising these areas as permitted for UEFI
Secure Boot.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Mark core files as permitted for UEFI Secure Boot</title>
<updated>2026-01-14T13:25:34+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2026-01-14T13:25:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6cccb3bdc00359068c07125258d71ce24db5118a'/>
<id>urn:sha1:6cccb3bdc00359068c07125258d71ce24db5118a</id>
<content type='text'>
Mark all files used in a standard build of bin-x86_64-efi/snponly.efi
as permitted for UEFI Secure Boot.  These files represent the core
functionality of iPXE that is guaranteed to have been included in
every binary that was previously subject to a security review and
signed by Microsoft.  It is therefore legitimate to assume that at
least these files have already been reviewed to the required standard
multiple times.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[http] Abort connections after a long period of inactivity</title>
<updated>2025-12-04T14:47:45+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-12-04T13:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=88c3e68dfb2f1a3d5c2ada29b4eeef600c94c5ac'/>
<id>urn:sha1:88c3e68dfb2f1a3d5c2ada29b4eeef600c94c5ac</id>
<content type='text'>
Once an HTTP download has started (i.e. once all request headers have
been sent), we generally have no more data to transmit.  If an HTTP
connection dies silently (e.g. due to a network failure, a NIC driver
bug, or a server crash) then there is no mechanism that will currently
detect this situation by default.

We do send TCP keep-alives (to maintain state in intermediate routers
and firewalls), but we do not attempt to elicit a response from the
server.  RFC 9293 explicitly states that the absence of a response to
a TCP keep-alive probe must not be interpreted as indicating a dead
connection, since TCP cannot guarantee reliable delivery of packets
that do not advance the sequence number.

Scripts may use the "--timeout" option to impose an overall time limit
on downloads, but this mechanism is off by default and requires
additional thought and configuration by the user (which goes against
iPXE's general philosophy of being as automatic as possible).

Add an idle connection watchdog timer which will cause the HTTP
download to abort after 120 seconds of inactivity.  Activity is
defined as an I/O buffer being delivered to the HTTP transaction's
upstream data transfer interface.

Downloads over HTTPS may experience a substantial delay until the
first recorded activity, since all TLS negotiation (including
cross-chained certificate downloads and OCSP checks) must complete
before any application data can be sent.  We choose to not reset the
watchdog timer during TLS negotiation, on the basis that 120 seconds
is already an unreasonably long time for a TLS negotiation to take to
complete.  If necessary, resetting the watchdog timer could be
accomplished by having the TLS layer deliver zero-length I/O buffers
(via xfer_seek()) to indicate forward progress being made.

When using PeerDist content encoding, the downloaded content
information is not passed through to the content-decoded interface and
so will not be classed as activity.  Any activity in the individual
PeerDist block downloads (either from peers or as range requests from
the origin server) will be classed as activity in the overall
download, since individual block downloads do not buffer data but
instead pass it through directly via the PeerDist download
multiplexer.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[http] Rename connection retry timer</title>
<updated>2025-12-04T14:47:45+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-12-04T13:47:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1a789c1daa48212dfa76704c102e182d8e5b7342'/>
<id>urn:sha1:1a789c1daa48212dfa76704c102e182d8e5b7342</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[uaccess] Remove redundant copy_from_user() and copy_to_user()</title>
<updated>2025-04-30T14:32:03+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-04-30T14:18:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b6f9e4bab082c3b7a9b587ef64109069fba59baa'/>
<id>urn:sha1:b6f9e4bab082c3b7a9b587ef64109069fba59baa</id>
<content type='text'>
Remove the now-redundant copy_from_user() and copy_to_user() wrapper
functions.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[block] Remove userptr_t from block device abstraction</title>
<updated>2025-04-24T16:11:30+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-04-24T16:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=2f11f466e6b6cb47ac3b703b145e01f87bf8092e'/>
<id>urn:sha1:2f11f466e6b6cb47ac3b703b145e01f87bf8092e</id>
<content type='text'>
Simplify the block device code by assuming that all read/write buffers
are directly accessible via pointer dereferences.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[xfer] Use xfer_alloc_iob() for transmit I/O buffers on stream sockets</title>
<updated>2025-03-30T20:47:34+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-03-30T20:47:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d92551a320f32fa5d8fc8b2d2f02b174aa6fab66'/>
<id>urn:sha1:d92551a320f32fa5d8fc8b2d2f02b174aa6fab66</id>
<content type='text'>
Datagram sockets such as UDP, ICMP, and fibre channel tend to provide
a custom xfer_alloc_iob() handler to ensure that transmit I/O buffers
contain sufficient headroom to accommodate any required protocol
headers.

Stream sockets such as TCP and TLS do not typically provide a custom
xfer_alloc_iob() handler at present.  The default handler simply calls
alloc_iob(), and so stream socket consumers can therefore get away
with using alloc_iob() rather than xfer_alloc_iob().

Fix the HTTP and ONC RPC protocols to use xfer_alloc_iob() where
relevant, in order to operate correctly if the underlying stream
socket chooses to provide a custom xfer_alloc_iob() handler.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[http] Add error table entry for HTTP 404 Not Found error</title>
<updated>2024-03-29T14:46:13+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-03-29T12:35:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=764e34f15af89cc7c5e46694ac15c5266f13b3d3'/>
<id>urn:sha1:764e34f15af89cc7c5e46694ac15c5266f13b3d3</id>
<content type='text'>
Add an abbreviated "Not found" error message for an HTTP 404 status
code, so that any automatic attempt to download a non-existent
autoexec.ipxe script produces only a minimal error message.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[params] Allow for arbitrary HTTP request headers to be specified</title>
<updated>2023-03-01T12:20:02+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-02-28T17:46:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=96bb6ba441653a30729ade38dc6c23bc9e2d2339'/>
<id>urn:sha1:96bb6ba441653a30729ade38dc6c23bc9e2d2339</id>
<content type='text'>
Extend the request parameter mechanism to allow for arbitrary HTTP
headers to be specified via e.g.:

  params
  param --header Referer http://www.example.com
  imgfetch http://192.168.0.1/script.ipxe##params

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[http] Use POST method only if the form parameter list is non-empty</title>
<updated>2023-03-01T11:12:44+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-03-01T11:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=60531ff6e25d363f36f843cae29a95031aac2147'/>
<id>urn:sha1:60531ff6e25d363f36f843cae29a95031aac2147</id>
<content type='text'>
An attempt to use an existent but empty form parameter list will
currently result in an invalid POST request since the Content-Length
header will be missing.

Fix by using GET instead of POST if the form parameter list is empty.
This is a non-breaking change (since the current behaviour produces an
invalid request), and simplifies the imminent generalisation of the
parameter list concept to handle both header and form parameters.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
