Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.bugs.dist > #1251728

Bug#1069897: Netcfg to get search domain

From Frédéric Guyot <guyot.frederic26@gmail.com>
Newsgroups linux.debian.bugs.dist, linux.debian.maint.boot
Subject Bug#1069897: Netcfg to get search domain
Date 2025-07-03 12:40 +0200
Message-ID <L4pwd-eVD3-3@gated-at.bofh.it> (permalink)
References <IxvZL-98wP-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Cross-posted to 2 groups.

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

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

Back to linux.debian.bugs.dist | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Bug#1069897: Netcfg to get search domain Frédéric Guyot <guyot.frederic26@gmail.com> - 2025-07-03 12:40 +0200
  Bug#1069897: Netcfg to get search domain Frédéric Guyot <guyot.frederic26@gmail.com> - 2025-07-03 14:20 +0200

csiph-web