diff options
author | Michael Brown | 2015-02-06 13:18:18 +0100 |
---|---|---|
committer | Michael Brown | 2015-02-06 13:18:18 +0100 |
commit | e2a26f76de49b80c882b7f537d7eb5583ef78a29 (patch) | |
tree | a9ea9322ad43476caab9067efb2bbbe3d822797e /src/core/uri.c | |
parent | [tftp] Explicitly abort connection whenever parent interface is closed (diff) | |
download | ipxe-e2a26f76de49b80c882b7f537d7eb5583ef78a29.tar.gz ipxe-e2a26f76de49b80c882b7f537d7eb5583ef78a29.tar.xz ipxe-e2a26f76de49b80c882b7f537d7eb5583ef78a29.zip |
[uri] Allow tftp_uri() to construct a URI with a custom port
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core/uri.c')
-rw-r--r-- | src/core/uri.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/core/uri.c b/src/core/uri.c index 9ec21cee..d60f5d2b 100644 --- a/src/core/uri.c +++ b/src/core/uri.c @@ -661,6 +661,7 @@ struct uri * resolve_uri ( const struct uri *base_uri, * Construct TFTP URI from next-server and filename * * @v next_server Next-server address + * @v port Port number, or zero to use the default port * @v filename Filename * @ret uri URI, or NULL on failure * @@ -669,12 +670,18 @@ struct uri * resolve_uri ( const struct uri *base_uri, * generic URI parser. We provide a mechanism for directly * constructing a TFTP URI from the next-server and filename. */ -struct uri * tftp_uri ( struct in_addr next_server, const char *filename ) { +struct uri * tftp_uri ( struct in_addr next_server, unsigned int port, + const char *filename ) { + char buf[ 6 /* "65535" + NUL */ ]; struct uri uri; memset ( &uri, 0, sizeof ( uri ) ); uri.scheme = "tftp"; uri.host = inet_ntoa ( next_server ); + if ( port ) { + snprintf ( buf, sizeof ( buf ), "%d", port ); + uri.port = buf; + } uri.path = filename; return uri_dup ( &uri ); } |