summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/uri.c11
-rw-r--r--src/include/gpxe/uri.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/core/uri.c b/src/core/uri.c
index 423671706..cb1ac3bcb 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 24f92c67d..b8c7e098a 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 */