]>
Commit | Line | Data |
---|---|---|
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 |
8 | find_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 |
22 | find_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 |
35 | get_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 | 74 | source_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 | ||
89 | do_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 | ||
101 | need_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 | ||
111 | set_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 |