mirror of
https://github.com/ipxe/ipxe
synced 2025-12-13 23:41:45 +03:00
[uri] Allow tftp_uri() to construct a URI with a custom port
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -66,6 +66,8 @@ struct uri_resolve_test {
|
||||
struct uri_tftp_test {
|
||||
/** Next-server address */
|
||||
struct in_addr next_server;
|
||||
/** Port number */
|
||||
unsigned int port;
|
||||
/** Filename */
|
||||
const char *filename;
|
||||
/** URI */
|
||||
@@ -330,7 +332,7 @@ static void uri_tftp_okx ( struct uri_tftp_test *test, const char *file,
|
||||
size_t len;
|
||||
|
||||
/* Construct URI */
|
||||
uri = tftp_uri ( test->next_server, test->filename );
|
||||
uri = tftp_uri ( test->next_server, test->port, test->filename );
|
||||
okx ( uri != NULL, file, line );
|
||||
if ( uri ) {
|
||||
uri_okx ( uri, &test->uri, file, line );
|
||||
@@ -674,7 +676,7 @@ static struct uri_resolve_test uri_fragment = {
|
||||
|
||||
/** TFTP URI with absolute path */
|
||||
static struct uri_tftp_test uri_tftp_absolute = {
|
||||
{ .s_addr = htonl ( 0xc0a80002 ) /* 192.168.0.2 */ },
|
||||
{ .s_addr = htonl ( 0xc0a80002 ) /* 192.168.0.2 */ }, 0,
|
||||
"/absolute/path",
|
||||
{
|
||||
.scheme = "tftp",
|
||||
@@ -686,7 +688,7 @@ static struct uri_tftp_test uri_tftp_absolute = {
|
||||
|
||||
/** TFTP URI with relative path */
|
||||
static struct uri_tftp_test uri_tftp_relative = {
|
||||
{ .s_addr = htonl ( 0xc0a80003 ) /* 192.168.0.3 */ },
|
||||
{ .s_addr = htonl ( 0xc0a80003 ) /* 192.168.0.3 */ }, 0,
|
||||
"relative/path",
|
||||
{
|
||||
.scheme = "tftp",
|
||||
@@ -698,7 +700,7 @@ static struct uri_tftp_test uri_tftp_relative = {
|
||||
|
||||
/** TFTP URI with path containing special characters */
|
||||
static struct uri_tftp_test uri_tftp_icky = {
|
||||
{ .s_addr = htonl ( 0x0a000006 ) /* 10.0.0.6 */ },
|
||||
{ .s_addr = htonl ( 0x0a000006 ) /* 10.0.0.6 */ }, 0,
|
||||
"C:\\tftpboot\\icky#path",
|
||||
{
|
||||
.scheme = "tftp",
|
||||
@@ -708,6 +710,19 @@ static struct uri_tftp_test uri_tftp_icky = {
|
||||
"tftp://10.0.0.6/C%3A\\tftpboot\\icky%23path",
|
||||
};
|
||||
|
||||
/** TFTP URI with custom port */
|
||||
static struct uri_tftp_test uri_tftp_port = {
|
||||
{ .s_addr = htonl ( 0xc0a80001 ) /* 192.168.0.1 */ }, 4069,
|
||||
"/another/path",
|
||||
{
|
||||
.scheme = "tftp",
|
||||
.host = "192.168.0.1",
|
||||
.port = "4069",
|
||||
.path = "/another/path",
|
||||
},
|
||||
"tftp://192.168.0.1:4069/another/path",
|
||||
};
|
||||
|
||||
/** Current working URI test */
|
||||
static struct uri_churi_test uri_churi[] = {
|
||||
{
|
||||
@@ -842,6 +857,7 @@ static void uri_test_exec ( void ) {
|
||||
uri_tftp_ok ( &uri_tftp_absolute );
|
||||
uri_tftp_ok ( &uri_tftp_relative );
|
||||
uri_tftp_ok ( &uri_tftp_icky );
|
||||
uri_tftp_ok ( &uri_tftp_port );
|
||||
|
||||
/* Current working URI tests */
|
||||
uri_churi_ok ( uri_churi );
|
||||
|
||||
Reference in New Issue
Block a user