On 2018-06-26 04:33, john doe wrote: > In gnupg2 the use of dirmngr utility is required to interact with a keyserver. > Dirmngr requires that '/etc/resolv.conf' be populated with my name servers. > That means that everytime the dns changes (new network ...) I need to manually > edit that file. > How can I let Cygwin update that file whenever the DNS is changed?
Attached an awk script to generate resolv.conf from Windows ipconfig /all output, run from .cygwin_profile (sourced under Cygwin from login .bash_profile) using the stanza below: it only replaces an existing writable /etc/resolv.conf when the content changes - touch, chown, chmod /etc/resolv.conf to enable. # update /etc/resolv.conf if changed c=/etc/resolv.conf test -w $c && \ i=$(/usr/bin/which -- ipconfig) && \ r=$(/usr/bin/which -- resolv.awk) && \ t=$(/bin/mktemp -t -- resolv.conf.$$.XXXXXXXX) && \ if $i /all | $r > $t; then /usr/bin/cmp -s -- $t $c || \ /bin/cp -fv -- $t $c /bin/rm -f -- $t fi unset c i r t This could be used in a bash script run from a Windows scheduled task when a relevant DHCP event occurs: you can find DHCP events by checking Windows Admin Tools/Event Viewer/Window Logs/System/Filter Current Log/Event Sources/Dhcp-Client,DHCPv6-Client, or a similar PowerShell script. -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
#!/usr/bin/awk -f # resolv.awk - create Windows resolv.conf from ipconfig /all output { sub( /\r/, "", $NF) } # trim \r # collect DNS domain suffixes /D[Nn][Ss]\sSuffix[^:]*:\s\S/ { domain[$NF] = $NF } # collect DNS search suffixes /Search\sList[^:]*:\s\S/ { search[$NF] = $NF } # collect DNS server IP addresses /DNS\sServers[^:]*:\s\S/ { dns = 1 } # enable dns && $NF ~ /^[0-9.]+$/ { nameserver[++ns] = $NF } # collect dns && $NF !~ /^[0-9.]+$/ { dns = 0 } # disable # output unique resolv.conf entries END { for (n = 1; n <= ns; ++n) { print "nameserver", nameserver[n] } for (d in domain) { print "domain", domain[d] } p = "search" for (s in search) { printf "%s %s", p, search[s] p = "" } if (!p) { print p } }
-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple