{"action":"closed","issue":{"url":"https://api.github.com/repos/jhthorsen/net-isc-dhcpd/issues/15","labels_url":"https://api.github.com/repos/jhthorsen/net-isc-dhcpd/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/jhthorsen/net-isc-dhcpd/issues/15/comments","events_url":"https://api.github.com/repos/jhthorsen/net-isc-dhcpd/issues/15/events","html_url":"https://github.com/jhthorsen/net-isc-dhcpd/issues/15","id":92142202,"number":15,"title":"Unable to parse a config with \"authoritative\" within subnet statements","user":{"login":"b00s1","id":13121588,"avatar_url":"https://avatars.githubusercontent.com/u/13121588?v=3","gravatar_id":"","url":"https://api.github.com/users/b00s1","html_url":"https://github.com/b00s1","followers_url":"https://api.github.com/users/b00s1/followers","following_url":"https://api.github.com/users/b00s1/following{/other_user}","gists_url":"https://api.github.com/users/b00s1/gists{/gist_id}","starred_url":"https://api.github.com/users/b00s1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/b00s1/subscriptions","organizations_url":"https://api.github.com/users/b00s1/orgs","repos_url":"https://api.github.com/users/b00s1/repos","events_url":"https://api.github.com/users/b00s1/events{/privacy}","received_events_url":"https://api.github.com/users/b00s1/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-30T16:50:02Z","updated_at":"2015-07-04T14:39:30Z","closed_at":"2015-07-04T14:39:30Z","body":"When using \"authoritative\" statements within subnet declarations the parser bails out with:\r\nCould not parse \" authoritative;\" at test.authoritative-subnet.conf line 17\r\n\r\nAccording to the man-page:\r\n\"Usually, writing authoritative; at the top level of the file should be sufficient.   However, if a DHCP server is to be set up so that it is aware of some networks for which it is authoritative and some networks for which it is not, it may be more appropriate to declare authority on a per-network-segment basis.\"\r\n\r\ntest.authoritative-subnet.conf:\r\ndefault-lease-time 3600;\r\nmax-lease-time 3600;\r\noption domain-name \"foobar.com\";\r\noption domain-name-servers 10.0.0.11, 10.0.0.12;\r\noption time-servers 10.0.0.13,10.0.0.14;\r\noption ntp-servers 10.0.0.20,10.0.0.14;\r\n\r\ndeny client-updates;\r\nlog-facility local6;\r\nomapi-port 7911;\r\n\r\nset vendorclass = option vendor-class-identifier;\r\n\r\nddns-update-style none; ddns-updates off;\r\n\r\nsubnet 10.1.10.0 netmask 255.255.255.0 { \r\n  authoritative;\r\n  option broadcast-address 10.1.10.255;\r\n  option routers 10.1.10.1;\r\n  option subnet-mask 255.255.255.0;\r\n  option domain-name-servers 10.1.10.11, 10.1.10.12;\r\n  if substring (option vendor-class-identifier,0,9) = \"PXEClient\" {\r\n    filename \"pxelinux.0\";\r\n  }\r\n  host testhost01 {hardware ethernet 00:01:02:03:04:01;fixed-address 10.1.10.21;}\r\n  host testhost02 {hardware ethernet 00:01:02:03:04:02;fixed-address 10.1.10.22;}\r\n}\r\n\r\nsubnet 10.2.10.0 netmask 255.255.255.0 {\r\n  option broadcast-address 10.2.10.255;\r\n  option routers 10.2.10.1;\r\n  option subnet-mask 255.255.255.0;\r\n  option domain-name-servers 10.1.10.11, 10.1.10.12;\r\n  if substring (option vendor-class-identifier,0,9) = \"PXEClient\" {\r\n    filename \"pxelinux.0\";\r\n  }\r\n  host testhost03 {hardware ethernet 00:01:02:03:04:03;fixed-address 10.2.10.21;}\r\n  host testhost04 {hardware ethernet 00:01:02:03:04:04;fixed-address 10.2.10.22;}\r\n}\r\n"}}