summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-11-25 12:57:56 +0000
committerRoy Marples <roy@marples.name>2008-11-25 12:57:56 +0000
commitfe36434eb4a933f7c49615083f6296098ed97493 (patch)
tree704fd99a23413869bb08b15b4cc2239f34671ba2
parent2372a5d787f6666db7e3af2df71543b571c7681d (diff)
downloaddhcpcd-fe36434eb4a933f7c49615083f6296098ed97493.tar.xz
CSR should come before other route options according to RFC 3442.
-rw-r--r--dhcp.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/dhcp.c b/dhcp.c
index e5371684..65de421c 100644
--- a/dhcp.c
+++ b/dhcp.c
@@ -67,8 +67,13 @@ struct dhcp_opt {
static const struct dhcp_opt const dhcp_opts[] = {
{ 1, IPV4 | REQUEST, "subnet_mask" },
- { 2, UINT32, "time_offset" },
+ /* RFC 3442 states that the CSR has to come before all other routes.
+ * For completeness, we also specify static routes, then routers. */
+ { 121, RFC3442 | REQUEST, "classless_static_routes" },
+ { 249, RFC3442, "ms_classless_static_routes" },
+ { 33, IPV4 | ARRAY | REQUEST, "static_routes" },
{ 3, IPV4 | ARRAY | REQUEST, "routers" },
+ { 2, UINT32, "time_offset" },
{ 4, IPV4 | ARRAY, "time_servers" },
{ 5, IPV4 | ARRAY, "ien116_name_servers" },
{ 6, IPV4 | ARRAY, "domain_name_servers" },
@@ -98,7 +103,6 @@ static const struct dhcp_opt const dhcp_opts[] = {
{ 30, UINT8, "mask_supplier" },
{ 31, UINT8, "router_discovery" },
{ 32, IPV4, "router_solicitation_address" },
- { 33, IPV4 | ARRAY | REQUEST, "static_routes" },
{ 34, UINT8, "trailer_encapsulation" },
{ 35, UINT32, "arp_cache_timeout" },
{ 36, UINT16, "ieee802_3_encapsulation" },
@@ -153,8 +157,6 @@ static const struct dhcp_opt const dhcp_opts[] = {
{ 114, STRING, "default_url" },
{ 118, IPV4, "subnet_selection" },
{ 119, STRING | RFC3397, "domain_search" },
- { 121, RFC3442 | REQUEST, "classless_static_routes" },
- { 249, RFC3442, "ms_classless_static_routes" },
{ 0, 0, NULL }
};