Modify the way host.conf and nsswitch.conf are treated at boot time:

- if nsswitch.conf exists, host.conf is auto-generated for compatibility
   with legacy applications and libraries.

 - if host.conf exists but nsswitch.conf does not, nsswitch.conf is auto-
   generated as usual.
This commit is contained in:
Dag-Erling Smørgrav 2001-11-01 12:39:01 +00:00
parent 41466b50c1
commit bd0a2a3f93
7 changed files with 238 additions and 49 deletions

View File

@ -38,16 +38,21 @@
network_pass1() {
echo -n 'Doing initial network setup:'
# Generate host.conf for compatibility
#
if [ -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Generating /etc/host.conf for compatibility'
generate_host_conf /etc/nsswitch.conf /etc/host.conf
fi
# Convert host.conf to nsswitch.conf if necessary
if [ -f "/etc/host.conf" ]; then
#
if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Warning: /etc/host.conf is no longer used'
if [ -f "/etc/nsswitch.conf" ]; then
echo ' /etc/nsswitch.conf will be used instead'
else
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
# Set the host name if it is not already set
@ -866,3 +871,25 @@ convert_host_conf() {
}' < $host_conf > $nsswitch_conf
}
generate_host_conf() {
nsswitch_conf=$1; shift;
host_conf=$1; shift;
awk '
BEGIN {
xlat["files"] = "hosts";
xlat["dns"] = "bind";
xlat["nis"] = "nis";
}
/^hosts:/ {
print "# Auto-generated, do not edit";
for (n = 2; n <= NF; ++n)
if ($n in xlat)
print xlat[$n];
quit;
}
// {
next;
}
' <$nsswitch_conf >$host_conf
}

View File

@ -38,16 +38,21 @@
network_pass1() {
echo -n 'Doing initial network setup:'
# Generate host.conf for compatibility
#
if [ -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Generating /etc/host.conf for compatibility'
generate_host_conf /etc/nsswitch.conf /etc/host.conf
fi
# Convert host.conf to nsswitch.conf if necessary
if [ -f "/etc/host.conf" ]; then
#
if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Warning: /etc/host.conf is no longer used'
if [ -f "/etc/nsswitch.conf" ]; then
echo ' /etc/nsswitch.conf will be used instead'
else
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
# Set the host name if it is not already set
@ -866,3 +871,25 @@ convert_host_conf() {
}' < $host_conf > $nsswitch_conf
}
generate_host_conf() {
nsswitch_conf=$1; shift;
host_conf=$1; shift;
awk '
BEGIN {
xlat["files"] = "hosts";
xlat["dns"] = "bind";
xlat["nis"] = "nis";
}
/^hosts:/ {
print "# Auto-generated, do not edit";
for (n = 2; n <= NF; ++n)
if ($n in xlat)
print xlat[$n];
quit;
}
// {
next;
}
' <$nsswitch_conf >$host_conf
}

View File

@ -38,16 +38,21 @@
network_pass1() {
echo -n 'Doing initial network setup:'
# Generate host.conf for compatibility
#
if [ -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Generating /etc/host.conf for compatibility'
generate_host_conf /etc/nsswitch.conf /etc/host.conf
fi
# Convert host.conf to nsswitch.conf if necessary
if [ -f "/etc/host.conf" ]; then
#
if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Warning: /etc/host.conf is no longer used'
if [ -f "/etc/nsswitch.conf" ]; then
echo ' /etc/nsswitch.conf will be used instead'
else
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
# Set the host name if it is not already set
@ -866,3 +871,25 @@ convert_host_conf() {
}' < $host_conf > $nsswitch_conf
}
generate_host_conf() {
nsswitch_conf=$1; shift;
host_conf=$1; shift;
awk '
BEGIN {
xlat["files"] = "hosts";
xlat["dns"] = "bind";
xlat["nis"] = "nis";
}
/^hosts:/ {
print "# Auto-generated, do not edit";
for (n = 2; n <= NF; ++n)
if ($n in xlat)
print xlat[$n];
quit;
}
// {
next;
}
' <$nsswitch_conf >$host_conf
}

View File

@ -38,16 +38,21 @@
network_pass1() {
echo -n 'Doing initial network setup:'
# Generate host.conf for compatibility
#
if [ -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Generating /etc/host.conf for compatibility'
generate_host_conf /etc/nsswitch.conf /etc/host.conf
fi
# Convert host.conf to nsswitch.conf if necessary
if [ -f "/etc/host.conf" ]; then
#
if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Warning: /etc/host.conf is no longer used'
if [ -f "/etc/nsswitch.conf" ]; then
echo ' /etc/nsswitch.conf will be used instead'
else
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
# Set the host name if it is not already set
@ -866,3 +871,25 @@ convert_host_conf() {
}' < $host_conf > $nsswitch_conf
}
generate_host_conf() {
nsswitch_conf=$1; shift;
host_conf=$1; shift;
awk '
BEGIN {
xlat["files"] = "hosts";
xlat["dns"] = "bind";
xlat["nis"] = "nis";
}
/^hosts:/ {
print "# Auto-generated, do not edit";
for (n = 2; n <= NF; ++n)
if ($n in xlat)
print xlat[$n];
quit;
}
// {
next;
}
' <$nsswitch_conf >$host_conf
}

View File

@ -38,16 +38,21 @@
network_pass1() {
echo -n 'Doing initial network setup:'
# Generate host.conf for compatibility
#
if [ -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Generating /etc/host.conf for compatibility'
generate_host_conf /etc/nsswitch.conf /etc/host.conf
fi
# Convert host.conf to nsswitch.conf if necessary
if [ -f "/etc/host.conf" ]; then
#
if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Warning: /etc/host.conf is no longer used'
if [ -f "/etc/nsswitch.conf" ]; then
echo ' /etc/nsswitch.conf will be used instead'
else
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
# Set the host name if it is not already set
@ -866,3 +871,25 @@ convert_host_conf() {
}' < $host_conf > $nsswitch_conf
}
generate_host_conf() {
nsswitch_conf=$1; shift;
host_conf=$1; shift;
awk '
BEGIN {
xlat["files"] = "hosts";
xlat["dns"] = "bind";
xlat["nis"] = "nis";
}
/^hosts:/ {
print "# Auto-generated, do not edit";
for (n = 2; n <= NF; ++n)
if ($n in xlat)
print xlat[$n];
quit;
}
// {
next;
}
' <$nsswitch_conf >$host_conf
}

View File

@ -38,16 +38,21 @@
network_pass1() {
echo -n 'Doing initial network setup:'
# Generate host.conf for compatibility
#
if [ -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Generating /etc/host.conf for compatibility'
generate_host_conf /etc/nsswitch.conf /etc/host.conf
fi
# Convert host.conf to nsswitch.conf if necessary
if [ -f "/etc/host.conf" ]; then
#
if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Warning: /etc/host.conf is no longer used'
if [ -f "/etc/nsswitch.conf" ]; then
echo ' /etc/nsswitch.conf will be used instead'
else
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
# Set the host name if it is not already set
@ -866,3 +871,25 @@ convert_host_conf() {
}' < $host_conf > $nsswitch_conf
}
generate_host_conf() {
nsswitch_conf=$1; shift;
host_conf=$1; shift;
awk '
BEGIN {
xlat["files"] = "hosts";
xlat["dns"] = "bind";
xlat["nis"] = "nis";
}
/^hosts:/ {
print "# Auto-generated, do not edit";
for (n = 2; n <= NF; ++n)
if ($n in xlat)
print xlat[$n];
quit;
}
// {
next;
}
' <$nsswitch_conf >$host_conf
}

View File

@ -38,16 +38,21 @@
network_pass1() {
echo -n 'Doing initial network setup:'
# Generate host.conf for compatibility
#
if [ -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Generating /etc/host.conf for compatibility'
generate_host_conf /etc/nsswitch.conf /etc/host.conf
fi
# Convert host.conf to nsswitch.conf if necessary
if [ -f "/etc/host.conf" ]; then
#
if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
echo ''
echo 'Warning: /etc/host.conf is no longer used'
if [ -f "/etc/nsswitch.conf" ]; then
echo ' /etc/nsswitch.conf will be used instead'
else
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
echo ' /etc/nsswitch.conf will be created for you'
convert_host_conf /etc/host.conf /etc/nsswitch.conf
fi
# Set the host name if it is not already set
@ -866,3 +871,25 @@ convert_host_conf() {
}' < $host_conf > $nsswitch_conf
}
generate_host_conf() {
nsswitch_conf=$1; shift;
host_conf=$1; shift;
awk '
BEGIN {
xlat["files"] = "hosts";
xlat["dns"] = "bind";
xlat["nis"] = "nis";
}
/^hosts:/ {
print "# Auto-generated, do not edit";
for (n = 2; n <= NF; ++n)
if ($n in xlat)
print xlat[$n];
quit;
}
// {
next;
}
' <$nsswitch_conf >$host_conf
}