@@ -2342,6 +2342,7 @@ Dhcpv4Srv::appendRequestedVendorOptions(Dhcpv4Exchange& ex) {
23422342 }
23432343 }
23442344
2345+ const auto & cclasses = query->getClasses ();
23452346 for (uint32_t vendor_id : vendor_ids) {
23462347
23472348 std::set<uint8_t > cancelled_opts;
@@ -2406,7 +2407,7 @@ Dhcpv4Srv::appendRequestedVendorOptions(Dhcpv4Exchange& ex) {
24062407 if (!vendor_rsp->getOption (opt)) {
24072408 for (auto const & copts : co_list) {
24082409 OptionDescriptor desc = copts->get (vendor_id, opt);
2409- if (desc.option_ && desc.allowedForClientClasses (query-> getClasses () )) {
2410+ if (desc.option_ && desc.allowedForClientClasses (cclasses )) {
24102411 vendor_rsp->addOption (desc.option_ );
24112412 added = true ;
24122413 break ;
@@ -2446,6 +2447,7 @@ Dhcpv4Srv::appendBasicOptions(Dhcpv4Exchange& ex) {
24462447 }
24472448
24482449 Pkt4Ptr resp = ex.getResponse ();
2450+ const auto & cclasses = ex.getQuery ()->getClasses ();
24492451
24502452 // Try to find all 'required' options in the outgoing
24512453 // message. Those that are not present will be added.
@@ -2456,7 +2458,7 @@ Dhcpv4Srv::appendBasicOptions(Dhcpv4Exchange& ex) {
24562458 for (auto const & copts : co_list) {
24572459 OptionDescriptor desc = copts->get (DHCP4_OPTION_SPACE, required);
24582460 // / @todo TKM - not sure if otion class-tagging should be allowed here?
2459- if (desc.option_ && desc.allowedForClientClasses (ex. getQuery ()-> getClasses () )) {
2461+ if (desc.option_ && desc.allowedForClientClasses (cclasses )) {
24602462 resp->addOption (desc.option_ );
24612463 break ;
24622464 }
@@ -3635,7 +3637,7 @@ Dhcpv4Srv::setFixedFields(Dhcpv4Exchange& ex) {
36353637
36363638 // Step 2: Try to set the values based on classes.
36373639 // Any values defined in classes will override those from subnet level.
3638- const ClientClasses classes = query->getClasses ();
3640+ const ClientClasses& classes = query->getClasses ();
36393641 if (!classes.empty ()) {
36403642
36413643 // Let's get class definitions
0 commit comments