169
170 if (param >= (sizeof (defaults) / sizeof (*defaults)))
171 return (NULL);
172
173 if (stat(DHCP_AGENT_DEFAULTS, &statbuf) != 0) {
174 if (!df_unavail_msg) {
175 dhcpmsg(MSG_WARNING, "cannot access %s; using "
176 "built-in defaults", DHCP_AGENT_DEFAULTS);
177 df_unavail_msg = B_TRUE;
178 }
179 return (defaults[param].df_default);
180 }
181
182 /*
183 * if our cached parameters are stale, rebuild.
184 */
185
186 if (statbuf.st_mtime != df_statbuf.st_mtime ||
187 statbuf.st_size != df_statbuf.st_size) {
188 df_statbuf = statbuf;
189 if (df_nvlist != NULL)
190 nvlist_free(df_nvlist);
191 df_nvlist = df_build_cache();
192 }
193
194 if (isv6) {
195 (void) snprintf(name, sizeof (name), ".V6.%s",
196 defaults[param].df_name);
197 (void) snprintf(paramstr, sizeof (paramstr), "%s%s", if_name,
198 name);
199 } else {
200 (void) strlcpy(name, defaults[param].df_name, sizeof (name));
201 (void) snprintf(paramstr, sizeof (paramstr), "%s.%s", if_name,
202 name);
203 }
204
205 /*
206 * first look for `if_name.[v6.]param', then `[v6.]param'. if neither
207 * has been set, use the built-in default.
208 */
209
|
169
170 if (param >= (sizeof (defaults) / sizeof (*defaults)))
171 return (NULL);
172
173 if (stat(DHCP_AGENT_DEFAULTS, &statbuf) != 0) {
174 if (!df_unavail_msg) {
175 dhcpmsg(MSG_WARNING, "cannot access %s; using "
176 "built-in defaults", DHCP_AGENT_DEFAULTS);
177 df_unavail_msg = B_TRUE;
178 }
179 return (defaults[param].df_default);
180 }
181
182 /*
183 * if our cached parameters are stale, rebuild.
184 */
185
186 if (statbuf.st_mtime != df_statbuf.st_mtime ||
187 statbuf.st_size != df_statbuf.st_size) {
188 df_statbuf = statbuf;
189 nvlist_free(df_nvlist);
190 df_nvlist = df_build_cache();
191 }
192
193 if (isv6) {
194 (void) snprintf(name, sizeof (name), ".V6.%s",
195 defaults[param].df_name);
196 (void) snprintf(paramstr, sizeof (paramstr), "%s%s", if_name,
197 name);
198 } else {
199 (void) strlcpy(name, defaults[param].df_name, sizeof (name));
200 (void) snprintf(paramstr, sizeof (paramstr), "%s.%s", if_name,
201 name);
202 }
203
204 /*
205 * first look for `if_name.[v6.]param', then `[v6.]param'. if neither
206 * has been set, use the built-in default.
207 */
208
|