Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F174412888
D60256.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D60256.diff
View Options
diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c
--- a/sbin/dhclient/dhclient.c
+++ b/sbin/dhclient/dhclient.c
@@ -2816,7 +2816,8 @@
case DHO_DHCP_CLIENT_IDENTIFIER:
case DHO_BOOTFILE_NAME:
case DHO_DHCP_USER_CLASS_ID:
- case DHO_URL:
+ case DHO_CAPTIVE_PORTAL:
+ case DHO_CAPTIVE_PORTAL_LEGACY:
case DHO_SIP_SERVERS:
case DHO_V_I_VENDOR_CLASS:
case DHO_V_I_VENDOR_OPTS:
diff --git a/sbin/dhclient/dhcp-options.5 b/sbin/dhclient/dhcp-options.5
--- a/sbin/dhclient/dhcp-options.5
+++ b/sbin/dhclient/dhcp-options.5
@@ -36,7 +36,7 @@
.\" see ``http://www.isc.org/isc''. To learn more about Vixie
.\" Enterprises, see ``http://www.vix.com''.
.\"
-.Dd January 1, 1995
+.Dd October 2, 2026
.Dt DHCP-OPTIONS 5
.Os
.Sh NAME
@@ -591,9 +591,20 @@
The StreetTalk Directory Assistance (STDA) server option specifies a
list of STDA servers available to the client.
Servers should be listed in order of preference.
-.It Ic option url Ar string ;
-This option specifies the URL that the client may use when using UEFI
-boot from a HTTP server.
+.It Ic option captive-portal Ar string ;
+This option specifies the URI of a captive portal API, as defined by
+RFC 8910.
+The value is a URI, usually of the form
+.Dq Li https:// Ns Ar host Ns Pa /path .
+A single option may contain more than one URI, separated by a space.
+.Pp
+The name
+.Ic url
+is retained as a deprecated alias.
+.It Ic option captive-portal-legacy Ar string ;
+This option specifies the URI of a captive portal API as defined by
+RFC 7710, which used DHCP option code 160.
+RFC 8910 obsoleted RFC 7710 and moved the option to code 114.
.El
.Sh SEE ALSO
.Xr dhclient.conf 5 ,
@@ -602,7 +613,7 @@
.Xr dhclient 8 ,
.Xr dhcpd 8
.Rs
-.%R "RFC 2131, RFC 2132, RFC 3769, RFC 8925"
+.%R "RFC 2131, RFC 2132, RFC 3769, RFC 8910, RFC 8925"
.Re
.Sh AUTHORS
.An -nosplit
diff --git a/sbin/dhclient/dhcp.h b/sbin/dhclient/dhcp.h
--- a/sbin/dhclient/dhcp.h
+++ b/sbin/dhclient/dhcp.h
@@ -173,12 +173,13 @@
#define DHO_STREETTALK_DA_SERVER 76
#define DHO_DHCP_USER_CLASS_ID 77
#define DHO_IPV6_ONLY 108
-#define DHO_URL 114
+#define DHO_CAPTIVE_PORTAL 114
#define DHO_DOMAIN_SEARCH 119
#define DHO_SIP_SERVERS 120
#define DHO_CLASSLESS_ROUTES 121
#define DHO_V_I_VENDOR_CLASS 124
#define DHO_V_I_VENDOR_OPTS 125
+#define DHO_CAPTIVE_PORTAL_LEGACY 160
#define DHO_END 255
/* DHCP message types. */
diff --git a/sbin/dhclient/tables.c b/sbin/dhclient/tables.c
--- a/sbin/dhclient/tables.c
+++ b/sbin/dhclient/tables.c
@@ -179,7 +179,7 @@
{ "option-111", "X", &dhcp_universe, 111 },
{ "option-112", "X", &dhcp_universe, 112 },
{ "option-113", "X", &dhcp_universe, 113 },
- { "url", "t", &dhcp_universe, 114 },
+ { "captive-portal", "t", &dhcp_universe, 114 },
{ "option-115", "X", &dhcp_universe, 115 },
{ "option-116", "X", &dhcp_universe, 116 },
{ "option-117", "X", &dhcp_universe, 117 },
@@ -225,7 +225,7 @@
{ "option-157", "X", &dhcp_universe, 157 },
{ "option-158", "X", &dhcp_universe, 158 },
{ "option-159", "X", &dhcp_universe, 159 },
- { "option-160", "X", &dhcp_universe, 160 },
+ { "captive-portal-legacy", "t", &dhcp_universe, 160 },
{ "option-161", "X", &dhcp_universe, 161 },
{ "option-162", "X", &dhcp_universe, 162 },
{ "option-163", "X", &dhcp_universe, 163 },
@@ -402,8 +402,9 @@
DHO_STREETTALK_DA_SERVER,
DHO_DHCP_USER_CLASS_ID,
DHO_DOMAIN_SEARCH,
- DHO_URL,
+ DHO_CAPTIVE_PORTAL,
DHO_IPV6_ONLY,
+ DHO_CAPTIVE_PORTAL_LEGACY,
/* Presently-undefined options... */
62, 63, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
@@ -412,7 +413,7 @@
118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
+ 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166,
167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
@@ -443,6 +444,9 @@
(const unsigned char *)dhcp_options[i].name, 0,
(unsigned char *)&dhcp_options[i]);
}
+ /* "url" is a deprecated alias for option 114. */
+ add_hash(dhcp_universe.hash, (const unsigned char *)"url", 0,
+ (unsigned char *)&dhcp_options[DHO_CAPTIVE_PORTAL]);
universe_hash.hash_count = DEFAULT_HASH_SIZE;
add_hash(&universe_hash,
(const unsigned char *)dhcp_universe.name, 0,
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Oct 4, 12:36 AM (4 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40164000
Default Alt Text
D60256.diff (4 KB)
Attached To
Mode
D60256: dhclient: recognize the Captive Portal DHCP options
Attached
Detach File
Event Timeline
Log In to Comment