diff --git a/src/core/uri.c b/src/core/uri.c index 42367170..cb1ac3bc 100644 --- a/src/core/uri.c +++ b/src/core/uri.c @@ -159,3 +159,14 @@ struct uri * parse_uri ( const char *uri_string ) { return uri; } + +/** + * Get port from URI + * + * @v uri URI + * @v default_port Default port to use if none specified in URI + * @ret port Port + */ +unsigned int uri_port ( struct uri *uri, unsigned int default_port ) { + return ( uri->port ? strtoul ( uri->port, NULL, 0 ) : default_port ); +} diff --git a/src/include/gpxe/uri.h b/src/include/gpxe/uri.h index 24f92c67..b8c7e098 100644 --- a/src/include/gpxe/uri.h +++ b/src/include/gpxe/uri.h @@ -112,5 +112,6 @@ static inline void free_uri ( struct uri *uri ) { } extern struct uri * parse_uri ( const char *uri_string ); +unsigned int uri_port ( struct uri *uri, unsigned int default_port ); #endif /* _GPXE_URI_H */