From e2a26f76de49b80c882b7f537d7eb5583ef78a29 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 6 Feb 2015 12:18:18 +0000 Subject: [uri] Allow tftp_uri() to construct a URI with a custom port Signed-off-by: Michael Brown --- src/core/uri.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/uri.c b/src/core/uri.c index 9ec21cee4..d60f5d2b7 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 ); } -- cgit v1.2.3-55-g7522