diff --git a/epan/dissectors/packet-dhcp.c b/epan/dissectors/packet-dhcp.c index 2f6f47722b..a970f13392 100644 --- a/epan/dissectors/packet-dhcp.c +++ b/epan/dissectors/packet-dhcp.c @@ -62,6 +62,7 @@ * RFC 7710: Captive-Portal Identification Using DHCP or Router Advertisements (RAs) * RFC 7839: Access-Network-Identifier Option in DHCP * RFC 8357: Generalized UDP Source Port for DHCP Relay + * RFC 8910: Captive-Portal Identification in DHCP and Router Advertisements (RAs) * draft-ietf-dhc-fqdn-option-07.txt * TFTP Server Address Option for DHCPv4 [draft-raj-dhc-tftp-addr-option-06.txt: https://tools.ietf.org/html/draft-raj-dhc-tftp-addr-option-06] * BOOTP and DHCP Parameters @@ -528,6 +529,7 @@ static int hf_dhcp_option_tz_pcode = -1; /* 100 */ static int hf_dhcp_option_tz_tcode = -1; /* 101 */ static int hf_dhcp_option_netinfo_parent_server_address = -1; /* 112 */ static int hf_dhcp_option_netinfo_parent_server_tag = -1; /* 113 */ +static int hf_dhcp_option_captive_portal = -1; /* 114 (ex 160) */ static int hf_dhcp_option_dhcp_auto_configuration = -1; /* 116 */ static int hf_dhcp_option_dhcp_name_service_search_option = -1; /* 117 */ static int hf_dhcp_option_dhcp_dns_domain_search_list_rfc_3396_detected = -1; /* 119 */ @@ -601,7 +603,6 @@ static int hf_dhcp_option_pcp_server = -1; /* 158 */ static int hf_dhcp_option_portparams_offset = -1; /* 159 */ static int hf_dhcp_option_portparams_psid_length = -1; /* 159 */ static int hf_dhcp_option_portparams_psid = -1; /* 159 */ -static int hf_dhcp_option_captive_portal = -1; /* 160 */ static int hf_dhcp_option_mudurl = -1; /* 161 */ static int hf_dhcp_option_pxe_config_file = -1; /* 209 */ static int hf_dhcp_option_pxe_path_prefix = -1; /* 210 */ @@ -1488,7 +1489,7 @@ static struct opt_info default_dhcp_opt[DHCP_OPT_NUM] = { /* 111 */ { "Unassigned", opaque, NULL }, /* 112 */ { "NetInfo Parent Server Address", ipv4_list, &hf_dhcp_option_netinfo_parent_server_address }, /* 113 */ { "NetInfo Parent Server Tag", string, &hf_dhcp_option_netinfo_parent_server_tag }, -/* 114 */ { "URL [TODO:RFC3679]", opaque, NULL }, +/* 114 */ { "DHCP Captive-Portal", special, NULL }, /* 115 */ { "Removed/Unassigned", opaque, NULL }, /* 116 */ { "DHCP Auto-Configuration", val_u_byte, &hf_dhcp_option_dhcp_auto_configuration }, /* 117 */ { "Name Service Search", special, NULL }, @@ -1534,7 +1535,7 @@ static struct opt_info default_dhcp_opt[DHCP_OPT_NUM] = { /* 157 */ { "Leasequery Data Source", val_boolean, &hf_dhcp_option_bulk_lease_data_source }, /* 158 */ { "PCP Server", special, NULL }, /* 159 */ { "Portparams", special, NULL }, -/* 160 */ { "DHCP Captive-Portal", special, NULL }, +/* 160 */ { "Unassigned (ex DHCP Captive-Portal)", special, NULL }, /* Previously assigned by [RFC7710]; known to also be used by Polycom. */ /* 161 */ { "Manufacturer Usage Description", string, &hf_dhcp_option_mudurl}, /* 162 */ { "Unassigned", opaque, NULL }, /* 163 */ { "Unassigned", opaque, NULL }, @@ -10257,6 +10258,7 @@ proto_reg_handoff_dhcp(void) dissector_add_uint("dhcp.option", 94, create_dissector_handle( dissect_dhcpopt_client_network_interface_id, -1 )); dissector_add_uint("dhcp.option", 97, create_dissector_handle( dissect_dhcpopt_client_identifier_uuid, -1 )); dissector_add_uint("dhcp.option", 99, create_dissector_handle( dissect_dhcpopt_civic_location, -1 )); + dissector_add_uint("dhcp.option", 114, create_dissector_handle( dissect_dhcpopt_dhcp_captive_portal, -1 )); dissector_add_uint("dhcp.option", 117, create_dissector_handle( dissect_dhcpopt_name_server_search, -1 )); dissector_add_uint("dhcp.option", 119, create_dissector_handle( dissect_dhcpopt_dhcp_domain_search, -1 )); dissector_add_uint("dhcp.option", 120, create_dissector_handle( dissect_dhcpopt_sip_servers, -1 ));