diff options
| author | David M. Syzdek <david@syzdek.net> | 2022-03-17 21:34:17 -0800 |
|---|---|---|
| committer | David M. Syzdek <david@syzdek.net> | 2022-03-17 21:34:17 -0800 |
| commit | 8c50435e9c8b35871b2837e74604b81527980407 (patch) | |
| tree | 8fd0632a0dcebd4310ba1641fdd85a2b3d747cc4 | |
| parent | 907ec60bc997462804ed3256152f192ae10d8887 (diff) | |
| download | tinyrad-8c50435e9c8b35871b2837e74604b81527980407.tar.gz tinyrad-8c50435e9c8b35871b2837e74604b81527980407.tar.bz2 tinyrad-8c50435e9c8b35871b2837e74604b81527980407.tar.xz tinyrad-8c50435e9c8b35871b2837e74604b81527980407.zip | |
libtinyrad: updating URL parser to allow empty secret
| -rw-r--r-- | lib/libtinyrad/lurl.c | 57 | ||||
| -rw-r--r-- | src/tinyrad-url.c | 10 | ||||
| -rw-r--r-- | tests/common-url.c | 42 |
3 files changed, 59 insertions, 50 deletions
diff --git a/lib/libtinyrad/lurl.c b/lib/libtinyrad/lurl.c index e0c79b5..139762a 100644 --- a/lib/libtinyrad/lurl.c +++ b/lib/libtinyrad/lurl.c | |||
| @@ -120,7 +120,7 @@ tinyrad_urldesc2str( | |||
| 120 | TinyRadDebug(TRAD_DEBUG_ARGS, " == %s(trudp)", __func__); | 120 | TinyRadDebug(TRAD_DEBUG_ARGS, " == %s(trudp)", __func__); |
| 121 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_host: %s", trudp->trud_host); | 121 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_host: %s", trudp->trud_host); |
| 122 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_port: %i", trudp->trud_port); | 122 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_port: %i", trudp->trud_port); |
| 123 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_secret: %s", trudp->trud_secret); | 123 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_secret: %s", (((trudp->trud_secret)) ? trudp->trud_secret : "n/a")); |
| 124 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_opts: 0x%04x", trudp->trud_opts); | 124 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_opts: 0x%04x", trudp->trud_opts); |
| 125 | 125 | ||
| 126 | memset(buff, 0, sizeof(buff)); | 126 | memset(buff, 0, sizeof(buff)); |
| @@ -162,7 +162,7 @@ tinyrad_urldesc2str( | |||
| 162 | 162 | ||
| 163 | // add URL secret | 163 | // add URL secret |
| 164 | strncat(buff, "/", (sizeof(buff)-strlen(buff)-1)); | 164 | strncat(buff, "/", (sizeof(buff)-strlen(buff)-1)); |
| 165 | if ( (trudp->trud_opts & TRAD_SCHEME) != TRAD_RADSEC) | 165 | if ( ((trudp->trud_opts & TRAD_SCHEME) != TRAD_RADSEC) && ((trudp->trud_secret)) ) |
| 166 | { | 166 | { |
| 167 | len = strlen(buff); | 167 | len = strlen(buff); |
| 168 | strncat(buff, trudp->trud_secret, (sizeof(buff)-strlen(buff)-1)); | 168 | strncat(buff, trudp->trud_secret, (sizeof(buff)-strlen(buff)-1)); |
| @@ -473,10 +473,10 @@ tinyrad_urldesc_parse_url( | |||
| 473 | return(TRAD_EURL); | 473 | return(TRAD_EURL); |
| 474 | if (!(trud_host[0])) | 474 | if (!(trud_host[0])) |
| 475 | return(TRAD_EURL); | 475 | return(TRAD_EURL); |
| 476 | if (!(trud_secret)) | 476 | |
| 477 | return(TRAD_EURL); | 477 | if ((trud_secret)) |
| 478 | if (!(trud_secret[0])) | 478 | if (!(trud_secret[0])) |
| 479 | return(TRAD_EURL); | 479 | trud_secret = NULL; |
| 480 | 480 | ||
| 481 | if (!(trudpp)) | 481 | if (!(trudpp)) |
| 482 | return(TRAD_SUCCESS); | 482 | return(TRAD_SUCCESS); |
| @@ -492,31 +492,34 @@ tinyrad_urldesc_parse_url( | |||
| 492 | return(TRAD_ENOMEM); | 492 | return(TRAD_ENOMEM); |
| 493 | }; | 493 | }; |
| 494 | 494 | ||
| 495 | if ((trudp->trud_secret = tinyrad_strdup(trud_secret)) == NULL) | 495 | if ((trud_secret)) |
| 496 | { | 496 | { |
| 497 | tinyrad_urldesc_free(trudp); | 497 | if ((trudp->trud_secret = tinyrad_strdup(trud_secret)) == NULL) |
| 498 | return(TRAD_ENOMEM); | ||
| 499 | }; | ||
| 500 | for(pos = 0; ((trudp->trud_secret[pos])); pos++) | ||
| 501 | { | ||
| 502 | switch(trudp->trud_secret[pos]) | ||
| 503 | { | 498 | { |
| 504 | case '+': | 499 | tinyrad_urldesc_free(trudp); |
| 505 | trudp->trud_secret[pos] = ' '; | 500 | return(TRAD_ENOMEM); |
| 506 | break; | 501 | }; |
| 502 | for(pos = 0; ((trudp->trud_secret[pos])); pos++) | ||
| 503 | { | ||
| 504 | switch(trudp->trud_secret[pos]) | ||
| 505 | { | ||
| 506 | case '+': | ||
| 507 | trudp->trud_secret[pos] = ' '; | ||
| 508 | break; | ||
| 507 | 509 | ||
| 508 | case '%': | 510 | case '%': |
| 509 | hex[0] = trudp->trud_secret[pos+1]; | 511 | hex[0] = trudp->trud_secret[pos+1]; |
| 510 | hex[1] = trudp->trud_secret[pos+2]; | 512 | hex[1] = trudp->trud_secret[pos+2]; |
| 511 | hex[2] = '\0'; | 513 | hex[2] = '\0'; |
| 512 | trudp->trud_secret[pos] = (char)strtol(hex, NULL, 16); | 514 | trudp->trud_secret[pos] = (char)strtol(hex, NULL, 16); |
| 513 | for(x = pos+1; ((trudp->trud_secret[x+2])); x++) | 515 | for(x = pos+1; ((trudp->trud_secret[x+2])); x++) |
| 516 | trudp->trud_secret[x] = trudp->trud_secret[x+2]; | ||
| 514 | trudp->trud_secret[x] = trudp->trud_secret[x+2]; | 517 | trudp->trud_secret[x] = trudp->trud_secret[x+2]; |
| 515 | trudp->trud_secret[x] = trudp->trud_secret[x+2]; | 518 | break; |
| 516 | break; | ||
| 517 | 519 | ||
| 518 | default: | 520 | default: |
| 519 | break; | 521 | break; |
| 522 | }; | ||
| 520 | }; | 523 | }; |
| 521 | }; | 524 | }; |
| 522 | 525 | ||
| @@ -552,7 +555,7 @@ tinyrad_urldesc_resolve( | |||
| 552 | TinyRadDebug(TRAD_DEBUG_ARGS, " == %s(trudp)", __func__); | 555 | TinyRadDebug(TRAD_DEBUG_ARGS, " == %s(trudp)", __func__); |
| 553 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_host: %s", trudp->trud_host); | 556 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_host: %s", trudp->trud_host); |
| 554 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_port: %i", trudp->trud_port); | 557 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_port: %i", trudp->trud_port); |
| 555 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_secret: %s", trudp->trud_secret); | 558 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_secret: %s", (((trudp->trud_secret)) ? trudp->trud_secret : "n/a")); |
| 556 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_opts: 0x%04x", trudp->trud_opts); | 559 | TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_opts: 0x%04x", trudp->trud_opts); |
| 557 | 560 | ||
| 558 | // clear existing sockaddrs | 561 | // clear existing sockaddrs |
diff --git a/src/tinyrad-url.c b/src/tinyrad-url.c index 91b4bf0..00d432a 100644 --- a/src/tinyrad-url.c +++ b/src/tinyrad-url.c | |||
| @@ -259,7 +259,7 @@ int my_print_urldesc( TinyRadURLDesc * trudp) | |||
| 259 | printf(" scheme: %s\n", scheme); | 259 | printf(" scheme: %s\n", scheme); |
| 260 | printf(" host: %s\n", trudp->trud_host); | 260 | printf(" host: %s\n", trudp->trud_host); |
| 261 | printf(" port: %i\n", trudp->trud_port); | 261 | printf(" port: %i\n", trudp->trud_port); |
| 262 | printf(" secret: %s\n", trudp->trud_secret); | 262 | printf(" secret: %s\n", (((trudp->trud_secret)) ? trudp->trud_secret : "n/a")); |
| 263 | printf(" protocol: %s\n", ((trudp->trud_opts & TRAD_TCP)) ? "tcp" : "udp"); | 263 | printf(" protocol: %s\n", ((trudp->trud_opts & TRAD_TCP)) ? "tcp" : "udp"); |
| 264 | if ( ((trudp->trud_sockaddrs)) && ((trudp->trud_sockaddrs[0])) ) | 264 | if ( ((trudp->trud_sockaddrs)) && ((trudp->trud_sockaddrs[0])) ) |
| 265 | { | 265 | { |
| @@ -299,10 +299,10 @@ void my_usage(void) | |||
| 299 | printf(" -r, --resolve resolve URLs\n"); | 299 | printf(" -r, --resolve resolve URLs\n"); |
| 300 | printf("\n"); | 300 | printf("\n"); |
| 301 | printf("URL Syntax:\n"); | 301 | printf("URL Syntax:\n"); |
| 302 | printf(" radius://hostport/secret[?proto] use RFC2865 (udp/port 1812)\n"); | 302 | printf(" radius://hostport/[secret][?proto] use RFC2865 (udp/port 1812)\n"); |
| 303 | printf(" radius-acct://hostport/secret[?proto] use RFC2866 (udp/port 1813)\n"); | 303 | printf(" radius-acct://hostport/[secret][?proto] use RFC2866 (udp/port 1813)\n"); |
| 304 | printf(" radsec://hostport/[?proto] use RFC6614/RFC7360 (tcp/port 2083)\n"); | 304 | printf(" radsec://hostport/[?proto] use RFC6614/RFC7360 (tcp/port 2083)\n"); |
| 305 | printf(" radius-dynauth://hostport/secret[?proto] use RFC5176 (udp/port 3799)\n"); | 305 | printf(" radius-dynauth://hostport/[secret][?proto] use RFC5176 (udp/port 3799)\n"); |
| 306 | printf("\n"); | 306 | printf("\n"); |
| 307 | printf(" where:\n"); | 307 | printf(" where:\n"); |
| 308 | printf(" 'hostport' is a host name with an optional ':portnumber'\n"); | 308 | printf(" 'hostport' is a host name with an optional ':portnumber'\n"); |
diff --git a/tests/common-url.c b/tests/common-url.c index 310775a..1f9d62f 100644 --- a/tests/common-url.c +++ b/tests/common-url.c | |||
| @@ -71,48 +71,30 @@ const char * test_urldesc_strs_bad[] = | |||
| 71 | "radius:///drowssap", | 71 | "radius:///drowssap", |
| 72 | "radius:/www.foo.org/drowssap", | 72 | "radius:/www.foo.org/drowssap", |
| 73 | "radius:///www.foo.org/drowssap", | 73 | "radius:///www.foo.org/drowssap", |
| 74 | "radius://www.foo.org", | ||
| 75 | "radius://www.foo.org/", | ||
| 76 | "radius://www.foo.org/?", | 74 | "radius://www.foo.org/?", |
| 77 | "radius://www.foo.org/?udp", | ||
| 78 | "radius://www.foo.org/?tcp", | ||
| 79 | "radius://www.foo.org/drowssap?", | 75 | "radius://www.foo.org/drowssap?", |
| 80 | "radius://www.foo.org/drowssap?u", | 76 | "radius://www.foo.org/drowssap?u", |
| 81 | "radius://www.foo.org:", | 77 | "radius://www.foo.org:", |
| 82 | "radius://www.foo.org:1111", | ||
| 83 | "radius://www.foo.org:1111/", | ||
| 84 | "radius://www.foo.org:1111/drowssap?", | 78 | "radius://www.foo.org:1111/drowssap?", |
| 85 | "radius://www.foo.org:1111/drowssap?u", | 79 | "radius://www.foo.org:1111/drowssap?u", |
| 86 | 80 | ||
| 87 | "radius-acct:///drowssap", | 81 | "radius-acct:///drowssap", |
| 88 | "radius-acct:/www.foo.org/drowssap", | 82 | "radius-acct:/www.foo.org/drowssap", |
| 89 | "radius-acct:///www.foo.org/drowssap", | 83 | "radius-acct:///www.foo.org/drowssap", |
| 90 | "radius-acct://www.foo.org", | ||
| 91 | "radius-acct://www.foo.org/", | ||
| 92 | "radius-acct://www.foo.org/?", | 84 | "radius-acct://www.foo.org/?", |
| 93 | "radius-acct://www.foo.org/?udp", | ||
| 94 | "radius-acct://www.foo.org/?tcp", | ||
| 95 | "radius-acct://www.foo.org/drowssap?", | 85 | "radius-acct://www.foo.org/drowssap?", |
| 96 | "radius-acct://www.foo.org/drowssap?u", | 86 | "radius-acct://www.foo.org/drowssap?u", |
| 97 | "radius-acct://www.foo.org:", | 87 | "radius-acct://www.foo.org:", |
| 98 | "radius-acct://www.foo.org:1111", | ||
| 99 | "radius-acct://www.foo.org:1111/", | ||
| 100 | "radius-acct://www.foo.org:1111/drowssap?", | 88 | "radius-acct://www.foo.org:1111/drowssap?", |
| 101 | "radius-acct://www.foo.org:1111/drowssap?u", | 89 | "radius-acct://www.foo.org:1111/drowssap?u", |
| 102 | 90 | ||
| 103 | "radius-dynauth:///drowssap", | 91 | "radius-dynauth:///drowssap", |
| 104 | "radius-dynauth:/www.foo.org/drowssap", | 92 | "radius-dynauth:/www.foo.org/drowssap", |
| 105 | "radius-dynauth:///www.foo.org/drowssap", | 93 | "radius-dynauth:///www.foo.org/drowssap", |
| 106 | "radius-dynauth://www.foo.org", | ||
| 107 | "radius-dynauth://www.foo.org/", | ||
| 108 | "radius-dynauth://www.foo.org/?", | 94 | "radius-dynauth://www.foo.org/?", |
| 109 | "radius-dynauth://www.foo.org/?udp", | ||
| 110 | "radius-dynauth://www.foo.org/?tcp", | ||
| 111 | "radius-dynauth://www.foo.org/drowssap?", | 95 | "radius-dynauth://www.foo.org/drowssap?", |
| 112 | "radius-dynauth://www.foo.org/drowssap?u", | 96 | "radius-dynauth://www.foo.org/drowssap?u", |
| 113 | "radius-dynauth://www.foo.org:", | 97 | "radius-dynauth://www.foo.org:", |
| 114 | "radius-dynauth://www.foo.org:1111", | ||
| 115 | "radius-dynauth://www.foo.org:1111/", | ||
| 116 | "radius-dynauth://www.foo.org:1111/drowssap?", | 98 | "radius-dynauth://www.foo.org:1111/drowssap?", |
| 117 | "radius-dynauth://www.foo.org:1111/drowssap?u", | 99 | "radius-dynauth://www.foo.org:1111/drowssap?u", |
| 118 | 100 | ||
| @@ -136,6 +118,8 @@ const char * test_urldesc_strs_bad[] = | |||
| 136 | #pragma mark test_urldesc_strs_desc2str[] | 118 | #pragma mark test_urldesc_strs_desc2str[] |
| 137 | const char * test_urldesc_strs_desc2str[] = | 119 | const char * test_urldesc_strs_desc2str[] = |
| 138 | { | 120 | { |
| 121 | "radius://www.foo.org/", | ||
| 122 | "radius://www.foo.org/?tcp", | ||
| 139 | "radius://www.foo.org/drowssap", | 123 | "radius://www.foo.org/drowssap", |
| 140 | "radius://www.foo.org/drow+ssap", | 124 | "radius://www.foo.org/drow+ssap", |
| 141 | "radius://www.foo.org/drow+ssap+", | 125 | "radius://www.foo.org/drow+ssap+", |
| @@ -144,6 +128,7 @@ const char * test_urldesc_strs_desc2str[] = | |||
| 144 | "radius://www.foo.org/drow+ssap?tcp", | 128 | "radius://www.foo.org/drow+ssap?tcp", |
| 145 | "radius://www.foo.org/drow+ssap+?tcp", | 129 | "radius://www.foo.org/drow+ssap+?tcp", |
| 146 | "radius://www.foo.org/drow+ss%2aap+%2a?tcp", | 130 | "radius://www.foo.org/drow+ss%2aap+%2a?tcp", |
| 131 | "radius://www.foo.org:1111/", | ||
| 147 | "radius://www.foo.org:1111/drowssap", | 132 | "radius://www.foo.org:1111/drowssap", |
| 148 | "radius://www.foo.org:1111/drow+ssap", | 133 | "radius://www.foo.org:1111/drow+ssap", |
| 149 | "radius://www.foo.org:1111/drow+ssap+", | 134 | "radius://www.foo.org:1111/drow+ssap+", |
| @@ -175,8 +160,11 @@ const char * test_urldesc_strs_desc2str[] = | |||
| 175 | "radius://[::1]/drow+ss%2aap+%2a radius://www.foo.org/drow+ss%2aap+%2a", | 160 | "radius://[::1]/drow+ss%2aap+%2a radius://www.foo.org/drow+ss%2aap+%2a", |
| 176 | "radius://[::1]/drowssap?tcp radius://www.foo.org/drowssap?tcp", | 161 | "radius://[::1]/drowssap?tcp radius://www.foo.org/drowssap?tcp", |
| 177 | 162 | ||
| 163 | "radius-acct://www.foo.org/", | ||
| 164 | "radius-acct://www.foo.org/?tcp", | ||
| 178 | "radius-acct://www.foo.org/drowssap", | 165 | "radius-acct://www.foo.org/drowssap", |
| 179 | "radius-acct://www.foo.org/drowssap?tcp", | 166 | "radius-acct://www.foo.org/drowssap?tcp", |
| 167 | "radius-acct://www.foo.org:1111/", | ||
| 180 | "radius-acct://www.foo.org:1111/drowssap", | 168 | "radius-acct://www.foo.org:1111/drowssap", |
| 181 | "radius-acct://www.foo.org:1111/drowssap?tcp", | 169 | "radius-acct://www.foo.org:1111/drowssap?tcp", |
| 182 | "radius-acct://[::1]/drowssap", | 170 | "radius-acct://[::1]/drowssap", |
| @@ -184,8 +172,11 @@ const char * test_urldesc_strs_desc2str[] = | |||
| 184 | "radius-acct://[::1]:1111/drowssap", | 172 | "radius-acct://[::1]:1111/drowssap", |
| 185 | "radius-acct://[::1]:1111/drowssap?tcp", | 173 | "radius-acct://[::1]:1111/drowssap?tcp", |
| 186 | 174 | ||
| 175 | "radius-dynauth://www.foo.org/", | ||
| 176 | "radius-dynauth://www.foo.org/?tcp", | ||
| 187 | "radius-dynauth://www.foo.org/drowssap", | 177 | "radius-dynauth://www.foo.org/drowssap", |
| 188 | "radius-dynauth://www.foo.org/drowssap?tcp", | 178 | "radius-dynauth://www.foo.org/drowssap?tcp", |
| 179 | "radius-dynauth://www.foo.org:1111/", | ||
| 189 | "radius-dynauth://www.foo.org:1111/drowssap", | 180 | "radius-dynauth://www.foo.org:1111/drowssap", |
| 190 | "radius-dynauth://www.foo.org:1111/drowssap?tcp", | 181 | "radius-dynauth://www.foo.org:1111/drowssap?tcp", |
| 191 | "radius-dynauth://[::1]/drowssap", | 182 | "radius-dynauth://[::1]/drowssap", |
| @@ -208,11 +199,17 @@ const char * test_urldesc_strs_desc2str[] = | |||
| 208 | #pragma mark test_urldesc_strs_good[] | 199 | #pragma mark test_urldesc_strs_good[] |
| 209 | const char * test_urldesc_strs_good[] = | 200 | const char * test_urldesc_strs_good[] = |
| 210 | { | 201 | { |
| 202 | "radius://www.foo.org", | ||
| 203 | "radius://www.foo.org/?udp", | ||
| 211 | "radius://www.foo.org/drowssap", | 204 | "radius://www.foo.org/drowssap", |
| 212 | "radius://www.foo.org/drowssap?tcp", | 205 | "radius://www.foo.org/drowssap?tcp", |
| 213 | "radius://www.foo.org/drowssap?udp", | 206 | "radius://www.foo.org/drowssap?udp", |
| 207 | "radius://www.foo.org:1111", | ||
| 208 | "radius://www.foo.org:1111/?udp", | ||
| 214 | "radius://www.foo.org:1111/drowssap", | 209 | "radius://www.foo.org:1111/drowssap", |
| 215 | "radius://www.foo.org:1111/drowssap?tcp", | 210 | "radius://www.foo.org:1111/drowssap?tcp", |
| 211 | "radius://[::1]", | ||
| 212 | "radius://[::1]/?udp", | ||
| 216 | "radius://[::1]/drowssap", | 213 | "radius://[::1]/drowssap", |
| 217 | "radius://[::1]/drowssap?tcp", | 214 | "radius://[::1]/drowssap?tcp", |
| 218 | "radius://[::1]/drowssap?udp", | 215 | "radius://[::1]/drowssap?udp", |
| @@ -220,12 +217,18 @@ const char * test_urldesc_strs_good[] = | |||
| 220 | "radius://[::1]:1111/drowssap?tcp", | 217 | "radius://[::1]:1111/drowssap?tcp", |
| 221 | "radius://[::1]:1111/drowssap?udp", | 218 | "radius://[::1]:1111/drowssap?udp", |
| 222 | 219 | ||
| 220 | "radius-acct://www.foo.org", | ||
| 221 | "radius-acct://www.foo.org/?udp", | ||
| 223 | "radius-acct://www.foo.org/drowssap", | 222 | "radius-acct://www.foo.org/drowssap", |
| 224 | "radius-acct://www.foo.org/drowssap?tcp", | 223 | "radius-acct://www.foo.org/drowssap?tcp", |
| 225 | "radius-acct://www.foo.org/drowssap?udp", | 224 | "radius-acct://www.foo.org/drowssap?udp", |
| 225 | "radius-acct://www.foo.org:1111", | ||
| 226 | "radius-acct://www.foo.org:1111/?udp", | ||
| 226 | "radius-acct://www.foo.org:1111/drowssap", | 227 | "radius-acct://www.foo.org:1111/drowssap", |
| 227 | "radius-acct://www.foo.org:1111/drowssap?tcp", | 228 | "radius-acct://www.foo.org:1111/drowssap?tcp", |
| 228 | "radius-acct://www.foo.org:1111/drowssap?udp", | 229 | "radius-acct://www.foo.org:1111/drowssap?udp", |
| 230 | "radius-acct://[::1]", | ||
| 231 | "radius-acct://[::1]/?udp", | ||
| 229 | "radius-acct://[::1]/drowssap", | 232 | "radius-acct://[::1]/drowssap", |
| 230 | "radius-acct://[::1]/drowssap?tcp", | 233 | "radius-acct://[::1]/drowssap?tcp", |
| 231 | "radius-acct://[::1]/drowssap?udp", | 234 | "radius-acct://[::1]/drowssap?udp", |
| @@ -233,9 +236,12 @@ const char * test_urldesc_strs_good[] = | |||
| 233 | "radius-acct://[::1]:1111/drowssap?tcp", | 236 | "radius-acct://[::1]:1111/drowssap?tcp", |
| 234 | "radius-acct://[::1]:1111/drowssap?udp", | 237 | "radius-acct://[::1]:1111/drowssap?udp", |
| 235 | 238 | ||
| 239 | "radius-dynauth://www.foo.org", | ||
| 240 | "radius-dynauth://www.foo.org/?udp", | ||
| 236 | "radius-dynauth://www.foo.org/drowssap", | 241 | "radius-dynauth://www.foo.org/drowssap", |
| 237 | "radius-dynauth://www.foo.org/drowssap?tcp", | 242 | "radius-dynauth://www.foo.org/drowssap?tcp", |
| 238 | "radius-dynauth://www.foo.org/drowssap?udp", | 243 | "radius-dynauth://www.foo.org/drowssap?udp", |
| 244 | "radius-dynauth://www.foo.org:1111", | ||
| 239 | "radius-dynauth://www.foo.org:1111/drowssap", | 245 | "radius-dynauth://www.foo.org:1111/drowssap", |
| 240 | "radius-dynauth://www.foo.org:1111/drowssap?tcp", | 246 | "radius-dynauth://www.foo.org:1111/drowssap?tcp", |
| 241 | "radius-dynauth://www.foo.org:1111/drowssap?udp", | 247 | "radius-dynauth://www.foo.org:1111/drowssap?udp", |
