Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Adam Osuchowski
Kea
Commits
16bdc389
Commit
16bdc389
authored
Dec 18, 2012
by
Marcin Siodelski
Browse files
[2544] Subnet now inherits globally configured option value.
parent
16cc994d
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/bin/dhcp4/config_parser.cc
View file @
16bdc389
...
...
@@ -912,6 +912,27 @@ public:
subnet
->
addOption
(
desc
.
option
);
}
// Check all global options and add them to the subnet object if
// they have been configured in the global scope. If they have been
// configured in the subnet scope we don't add global option because
// the one configured in the subnet scope always takes precedence.
BOOST_FOREACH
(
Subnet
::
OptionDescriptor
desc
,
option_defaults
)
{
// Get all options specified locally in the subnet and having
// code equal to global option's code.
Subnet
::
OptionContainerTypeRange
range
=
idx
.
equal_range
(
desc
.
option
->
getType
());
// @todo: In the future we will be searching for options using either
// an option code or namespace. Currently we have only the option
// code available so if there is at least one option found with the
// specific code we don't add the globally configured option.
// @todo with this code the first globally configured option
// with the given code will be added to a subnet. We may
// want to issue a warning about dropping the configuration of
// a global option if one already exsists.
if
(
std
::
distance
(
range
.
first
,
range
.
second
)
==
0
)
{
subnet
->
addOption
(
desc
.
option
);
}
}
CfgMgr
::
instance
().
addSubnet4
(
subnet
);
}
...
...
@@ -966,6 +987,7 @@ private:
factories
[
"rebind-timer"
]
=
Uint32Parser
::
Factory
;
factories
[
"subnet"
]
=
StringParser
::
Factory
;
factories
[
"pool"
]
=
PoolParser
::
Factory
;
factories
[
"option-data"
]
=
OptionDataListParser
::
Factory
;
FactoryMap
::
iterator
f
=
factories
.
find
(
config_id
);
if
(
f
==
factories
.
end
())
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment