]> git.pld-linux.org Git - projects/rc-scripts.git/blame - rc.d/init.d/functions.network
- now realy handle ifup <dev>
[projects/rc-scripts.git] / rc.d / init.d / functions.network
CommitLineData
b0443108 1#
111f7a0d 2# $Id: functions.network,v 1.30 1999/11/06 00:23:53 wiget Exp $
b0443108 3#
7e04fe0e 4# This is not a shell script; it provides functions to network scripts
5# that source it.
6
c6df6b37
JK
7# This will work only after starting interface to which LDAP server is connected
8find_ldap_interfaces()
12d804ca 9{
c6df6b37
JK
10 [ "$USE_LDAP" == "yes" ] && [ -x /usr/bin/ldapsearch ] || exit 1
11 if [ -n "$LDAP_BASE_DN" ] ; then
12 BSWITCH="-b$LDAP_BASE_DN"
13 else
14 BSWITH=""
15 fi
16 QUERY="(&(objectclass=pldinterface)(if_onboot=yes))"
17 ldapsearch "$BSWITCH" "$QUERY" if_device | \
18 grep "^if_device=" | sed -e "s/^if_device=//"
19}
85ebccea 20
c6df6b37
JK
21# find aliases for device
22find_ldap_aliases()
23{
24 [ "$USE_LDAP" == "yes" ] && [ -x /usr/bin/ldapsearch ] || exit 1
25 if [ -n "$LDAP_BASE_DN" ] ; then
26 BSWITCH="-b$LDAP_BASE_DN"
27 else
28 BSWITH=""
29 fi
30 QUERY="(&(objectclass=pldinterface)(if_onboot=yes)(if_device~=$1:*))"
31 ldapsearch "$BSWITCH" "$QUERY" if_device | \
32 grep "^if_device=" | sed -e "s/^if_device=//"
33}
85ebccea 34
c6df6b37
JK
35get_ldap_config ()
36{
37 [ "$USE_LDAP" == "yes" ] && [ -x /usr/bin/ldapsearch ] || exit 1
38 # Initialise fields which can have multiple values:
39 IPV6_ADDR=""
40 IPADDR_ALIASES=""
41
42 QUERY="(&(objectclass=pldinterface)(if_device=$1))"
43 if [ -n "$LDAP_BASE_DN" ] ; then
44 BSWITCH="-b$LDAP_BASE_DN"
45 else
46 BSWITH=""
47 fi
48 ldapsearch "$BSWITCH" "$QUERY" | grep "=" | sed -e "s/=/ /" | {
49 while read FIELD VALUE ; do
50 # Field, which have name compatible with other
51 # LDAP object
52 if [ "$FIELD" = "iphostnumber" ] ; then
53 VAR="IPADDR";
54 else # Other fields
55 VAR=`echo "$FIELD" | grep "^if_" \
56 | tr [:lower:] [:upper:] \
57 | sed -e "s/IF_//"`
58 fi
59 # Fields which can have multiple values:
60 if [ "$VAR" = "IPV6_ADDR" \
61 -o "$VAR" = "IPADDR_ALIASES" ] && \
62 [ -n "`eval echo \$$VAR`" ] ; then
63 echo "$VAR=\"\$$VAR $VALUE\"" ;
85ebccea 64
12d804ca 65 # single value fields, or the first value
85ebccea 66 elif [ -n "$VAR" ] ; then
67 eval "$VAR=\"$VALUE\""
68 echo "$VAR=\"$VALUE\""
12d804ca
JK
69 fi
70 done
71 }
72}
73
7e04fe0e 74source_config ()
75{
111f7a0d
AF
76 DEVNAME="`basename "$CONFIG" | sed 's/^ifcfg-//g'`"
77
78 if echo "$CONFIG"|egrep "^/" >/dev/null 2>&1 ; then
79 if [ -f "$CONFIG" ] ; then
80 . "$CONFIG"
81 fi
82 elif [ -f "/etc/sysconfig/interfaces/$CONFIG" ] ; then
83 . "/etc/sysconfig/interfaces/$CONFIG"
391798b5 84 elif [ "$USE_LDAP" = "yes" ] ; then
85 eval `get_ldap_config $DEVNAME`
12d804ca 86 fi
7e04fe0e 87}
88
89do_netreport ()
90{
85ebccea 91 # Notify programs that have requested notification
92 ( cd /var/run/netreport || exit
93 for i in * ; do
94 [ -f $i ] && \
95 kill -SIGIO $i >/dev/null 2>&1 || \
96 rm -f $i >/dev/null 2>&1
97 done
98 )
7e04fe0e 99}
100
101need_hostname()
102{
85ebccea 103 if [ "`hostname`" = "(none)" -o "`hostname`" = "localhost" -o \
104 "`hostname`" = "localhost.localdomain" ]; then
105 NEEDHOSTNAME=yes
106 else
107 unset NEEDHOSTNAME
108 fi
7e04fe0e 109}
110
111set_hostname()
112{
85ebccea 113 echo "$1" > /etc/HOSTNAME
114 hostname $1
115 if ! grep search /etc/resolv.conf; then
116 domain=`echo $1 | sed 's/^[^\.]*\.//'`
117 echo "search $domain" >> /etc/resolv.conf
118 fi
7e04fe0e 119}
120
767c8707 121# PLD/Linux network functions
7e04fe0e 122