Here is an updated patch for this issue: --- dhcp.c +++ dhcp.c @@ -41,6 +41,7 @@ "domain", "hostname", "dns", + "search", "ntpsrv", /* extra */ NULL };
@@ -510,7 +511,7 @@ * nameservers now so we can do rDNS lookups later to possibly * find out the domain. */ - netcfg_write_resolv(NULL, interface); + netcfg_write_resolv(NULL, NULL, interface); state = HOSTNAME; break; @@ -613,7 +614,7 @@ netcfg_write_common("", hostname, domain); netcfg_write_loopback(); netcfg_write_interface(interface); - netcfg_write_resolv(domain, interface); + netcfg_write_resolv(domain, search, interface); #if !defined(__FreeBSD_kernel__) kill_dhcp_client(); #endif --- static.c +++ static.c @@ -258,14 +258,16 @@ return 1; } -int netcfg_write_resolv (const char *domain, const struct netcfg_interface *interface) +int netcfg_write_resolv (const char *domain , const char *search, const struct netcfg_interface *interface) { FILE* fp = NULL; if ((fp = file_open(RESOLV_FILE, "w"))) { unsigned int i = 0; + if (search && !empty_str(search)) + fprintf(fp, "search %s\n", search); if (domain && !empty_str(domain)) - fprintf(fp, "search %s\n", domain); + fprintf(fp, "domain %s\n", domain); for (i = 0; i < NETCFG_NAMESERVERS_MAX; i++) if (!empty_str(interface->nameservers[i])) This should do the trick. If someone comes across this issue and this patch hasn't been merged we found an ugly workaround using a preseed file: d-i preseed/early_command string \ sed -i '/^case /i domain="$search"' /etc/udhcpc/default.script; \ mv /sbin/udhcpc /sbin/udhcpc.real; \ echo '#!/bin/sh' > /sbin/udhcpc; \ echo 'exec /bin/busybox udhcpc -O search "$@"' >> /sbin/udhcpc; \ chmod +x /sbin/udhcpc It will make a wrapper for udhcpc that will force netcfg to query search domains, patch the default.script callback script from udhcpc to make domain="$seach". regards