This file is indexed.

/usr/sbin/decnetconf is in dnet-common 2.64.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
#!/bin/sh
#
# Configure /etc/decnet.conf
#

# Use a temp file
if [ -x /bin/tempfile ]
then
  CONFFILE="`tempfile`"
else
  CONFFILE="/tmp/decnet.conf$$"
fi
REALFILE=/etc/decnet.conf

if [ -f "$REALFILE" ]
then
  echo "The file $REALFILE already exists. Not overwriting it"
  exit 0
fi

control_c()
{
  rm -f $CONFFILE
  echo
  echo "DECnet configuration abandoned"
  exit 1
}

trap "control_c" SIGINT

# Validate the DECnet node address
validate_addr()
{
  if [ -z "$1" ]
  then
    return 0
  fi

  if [ `expr $1 : '[0-9]*\.[0-9]*'` -ne "`expr length $1`" ]
  then
    echo "The node address nust be in the format area.node"
    return 0
  fi

  area=`echo $1|cut -d. -f1`
  node=`echo $1|cut -d. -f2`
  if [ "$area" -le 0 -o "$area" -ge 64 ]
  then
    echo 'Area must be between 1 and 63 inclusive'
  fi

  if [ "$node" -le 0 -o "$node" -ge 1024 ]
  then
    echo 'Node must be between 1 and 1024 inclusive'
  fi
  
  if [ "$node" -gt 0 -a "$node" -lt 1024 -a "$area" -gt 0 -a "$area" -lt 64 ]
  then
    return 1
  fi
  return 0
}

# Just check the name is 6 characters or less.
validate_name()
{
   if [ "`expr length $1`" -gt 6 ]
   then
    echo "DECnet node names must be less than six characaters long"
    return 0
   else
    return 1
   fi
}

# Check the interface name is in /proc/net/dev
validate_iface()
{
  grep -q "$1:" /proc/net/dev
  if [ $? = 0 ]
  then
    return 1
  else
    echo "Can't find device $1 on your system. Choose one of the following:"
    awk '/.*:/ { print substr($1,0,index($1,":")-1) }' < /proc/net/dev
    return 0
  fi
}

echo
echo "DECnet configuration."
echo "Press control/C to cancel."
echo

#
# Get the current host (executor) information
#
if [ -f $REALFILE ]
then
  def_addr="`awk '/^executor/ { print $2 }' <$REALFILE`"
  def_name="`awk '/^executor/ { print $4 }' <$REALFILE`"
  def_iface="`awk '/^executor/ { print $6 }' <$REALFILE`"
else
  def_name=`hostname -s|cut -b1-6`
  def_addr="1.1"
  def_iface="eth0"
fi

addr_valid=0
name_valid=0
iface_valid=0
while [ $addr_valid = "0" ]
do
  echo -n "Enter your DECnet node address [$def_addr] : "
  read addr
  if [ -z "$addr" ]
  then
    addr=$def_addr
  fi
  validate_addr $addr
  addr_valid=$?
done

while [ $name_valid = "0" ]
do
  echo -n "Enter your DECnet node name [$def_name] : "
  read name
  if [ -z "$name" ]
  then
    name=$def_name
  fi
  validate_name $name
  name_valid=$?
done

while [ $iface_valid = "0" ]
do
  echo -n "Enter your Ethernet interface name [$def_iface] : "
  read interface
  if [ -z "$interface" ]
  then
    interface=$def_iface
  fi
  validate_iface $interface
  iface_valid=$?
done

#
# Start generating the file with our local node information in it.
#
cat >$CONFFILE <<EOF
#
#               DECnet hosts file
#
#Node           Node            Name            Node    Line    Line
#Type           Address         Tag             Name    Tag     Device
#-----          -------         -----           -----   -----   ------
EOF
printf >>$CONFFILE "executor         %-7s        name            %-6s  line    %s\n" $addr $name $interface

#-----------------------------------------------------------------------------

#
# Now add some nodes
#
echo
echo 'You may now add some other DECnet nodes on your network. When you have'
echo 'finished, press [ENTER] when prompted for the node address'
echo 

while [ 1 ]
do
  addr_valid=0
  name_valid=0
  while [ $addr_valid = "0" ]
  do
    echo -n "Enter the node's address: area.node (eg 1.1) : "
    read addr
    if [ -z "$addr" ]
    then
      break 2
    fi
    validate_addr $addr
    addr_valid=$?
  done

  while [ $name_valid = "0" ]
  do
    echo -n "Enter it's node name                         : "
    read name
    validate_name $name
    name_valid=$?
  done
  printf >>$CONFFILE "node             %-7s        name            %-6s\n" $addr $name
  echo

done

#
# Confirm copying the file to /etc
#
echo
cat $CONFFILE
echo 
echo "This is your DECnet configuration file. Press [ENTER] to make it"
echo "live or Control/C to exit"
read dummy
cp $CONFFILE $REALFILE
if [ $? -ne 0 ]
then
  echo
  echo "Could not copy file to $REALFILE, you must be root to do this."
  echo "This script will exit now, leaving your new file saved as"
  echo "$CONFFILE"
  echo
  echo "su to root and copy this file to $REALFILE to complete installation"
  echo
  exit
fi
rm -f $CONFFILE

exit