From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30651 invoked by uid 1002); 22 Mar 2003 21:31:03 -0000 Mailing-List: contact gentoo-dev-help@gentoo.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@gentoo.org Received: (qmail 7819 invoked from network); 22 Mar 2003 21:31:02 -0000 Message-ID: <51175.192.168.1.70.1048368929.squirrel@gentoo.lan> Date: Sat, 22 Mar 2003 21:35:29 -0000 (GMT) From: "Stroller" To: X-Priority: 3 Importance: Normal Reply-To: stroller@bigfoot.com X-Mailer: SquirrelMail (version 1.2.11) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_20030322213529_51124" Subject: [gentoo-dev] init.d net scripts & Bash wierdness - idiot in distress X-Archives-Salt: 7b2c4423-83d0-4c31-95ff-4c21b89d7c94 X-Archives-Hash: 3730b1c7722d17f7089abaf9d174b7ac ------=_20030322213529_51124 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit I'm hoping someone can take a look at the attached scripts & give me some pointers, becuase I'm clearly doing something extremely dumb. I'm trying to run a transparent bridge for my home network, much as discussed in the FAQs & tutorials at http://www.sparkle-cc.co.uk/firewall/firewall.html & http://www.tldp.org/HOWTO/Ethernet-Bridge-netfilter-HOWTO.html I thought I'd be clever & elegant & create a new runlevel for this, so that my /etc/init.d/net.br0 script is started instead of eth0 & eth1. It's largely working very well & I've been very impressed by Gentoo's run-levels system. I initially implemented this with a very simple script in which all variables, IPs & interface names are static. This is attached as net.br0.old - if I copy this to /etc/init.d/net.br0 everything works perfectly. All I do is type `rc bridge` and all the other services shutdown before eth0 & eth1 do, then nothing happens for a moment & then my bridge device finishes initialising and up everything comes again. I then decided to be "clever" and edit a copy of the /etc/init.d/net.eth0 script, and so my new net.br0 (or net.br1 or whatever) script takes the name of it's ${IFACE} from its own filename & gets it's other parameters from /etc/config.d/net.br0 (or br1 &c). Unfortunately, for some reason my new script doesn't seem to read the gateway="br0/192.168.1.1" line from the config.d file, and I can't work out why not. If I use my dumb script the gateway is allocated correctly, but not when I try to read parameters from file. You can see where I've tried `echo "foo"` and `echo "wibble"` for debugging purposes. When I use this script as /etc/init.d/net.br0 & type `rc bridge` the "foo" & "bar" are displayed, but not the "wibble". Clearly the `if [ -n "${gateway}" ]...` line is not being returning true; yet I do not understand why, as my script seems to be just the same as the standard net.eth0 script in this respect, and my config file (also attached) seems the same. If anyone can explain what I'm doing wrong, I would be eternally grateful. Whilst I have your attention, I would also ideally like to have a list of physical interfaces to be included in the config file. I think the startup file would need a while loop to read them, as the bridge interface can bridge any number of physical interfaces, as long as there are at least 2 of them. Then the startup script needs to perform a couple of loops through, ifconfig'ing each physical interface to IP 0.0.0.0 before adding it to the bridge device using the `brtcl add ...` command. I would guess that the list of physical devices might be stored in an array, or read from a list, but I am completely inexperienced at Bash scripting, so have no idea how to implement this. I found the Advanced Bash Scripting Guide a bit too advanced for me - can anyone recommend an alternative..? Is the O'Reilly Bash in a Nutshell any good..? I usually like their books. I do hope I've explained myself clearly, Thanks for any pointers, Stroller. ------=_20030322213529_51124 Content-Type: application/octet-stream; name="net.br0.old" Content-Disposition: attachment; filename="net.br0.old" Content-Transfer-Encoding: base64 IyEvc2Jpbi9ydW5zY3JpcHQKCiMgSm9lIFN0cm9sbGVyJ3MgYnJpZGdlIGluaXQuZCBzY3JpcHQK CmRlcGVuZCgpIHsKICAgICAgICB1c2UgcGNtY2lhCSMgSSB0aGluayBpdCByYXRoZXIgdW5saWtl bHksIGJ1dCB0aGlzIG1haW50YWlucwoJCQkjIHN0YW5kYXJkIHdpdGggbmV0LmV0aDAgJmMKfQoK c3RhcnQoKSB7CgoJZWJlZ2luICJCcmluZ2luZyBicmlkZ2UgYnIwIHVwIgoKCSMgc2V0IHRoZWly IElQIGFkZHJlc3NlcyB0byBudWxsIHRvIHByZXZlbnQgaW50ZXJmZXJlbmNlIHdpdGggYnJpZGdl CglpZmNvbmZpZyBldGgwIDAuMC4wLjAKCWlmY29uZmlnIGV0aDEgMC4wLjAuMAoKCSMgY3JlYXRl IGEgYnJpZGdlIGFuZCBhc3NpZ24gdGhlIEV0aGVybmV0IGludGVyZmFjZXMgdG8gaXQKCWJyY3Rs IGFkZGJyIGJyMAoKCWJyY3RsIGFkZGlmIGJyMCBldGgwCglicmN0bCBhZGRpZiBicjAgZXRoMQoK CSMgZmluYWxseSBicmluZyB0aGUgYnJpZGdlIHVwCglpZmNvbmZpZyBicjAgMTkyLjE2OC4xLjQz IGJyb2FkY2FzdCAxOTIuMTY4LjEuMjU1IG5ldG1hc2sgMjU1LjI1NS4yNTUuMAoJL3NiaW4vcm91 dGUgYWRkIC1uZXQgZGVmYXVsdCBndyAxOTIuMTY4LjEuMSBuZXRtYXNrIDAuMC4wLjAgbWV0cmlj IDEKfQoKc3RvcCgpIHsKCWViZWdpbiAiQnJpbmdpbmcgYnJpZGdlIGRvd24iCgoJYnJjdGwgZGVs aWYgYnIwIGV0aDAKICAgICAgICBicmN0bCBkZWxpZiBicjAgZXRoMQoKCSMgYnJpbmcgdGhlIGJy aWRnZSBkb3duCglpZmNvbmZpZyBicjAgZG93bgoKCSMgQnJpbmcgaW50ZXJmYWNlcyBkb3duCiAg ICAgICAgaWZjb25maWcgZXRoMCBkb3duCiAgICAgICAgaWZjb25maWcgZXRoMSBkb3duCgoJYnJj dGwgZGVsYnIgYnIwCgkjIHRoaXMgc2VlbXMgdG8gZnJlZSBhbGwgaW50ZXJmYWNlcwoKfQo= ------=_20030322213529_51124 Content-Type: application/octet-stream; name="net.br0" Content-Disposition: attachment; filename="net.br0" Content-Transfer-Encoding: base64 IyEvc2Jpbi9ydW5zY3JpcHQKCiMgSm9lIFN0cm9sbGVyJ3MgYnJpZGdlIGluaXQuZCBzY3JpcHQK IyBDb25maWcgc2hvdWxkIGJlIHNvbWV0aGluZyBsaWtlIC9ldGMvY29uZi5kL25ldC5icjAKCgoj IEZvciBwY21jaWEgdXNlcnMuIG5vdGUgdGhhdCBwY21jaWEgbXVzdCBiZSBhZGRlZCB0byB0aGUg c2FtZQojIHJ1bmxldmVsIGFzIHRoZSBuZXQuKiBzY3JpcHQgdGhhdCBuZWVkcyBpdC4KZGVwZW5k KCkgewoJdXNlIHBjbWNpYQp9CgpjaGVja2NvbmZpZygpIHsKCiAgICAgICAgaWYgWyAhIC14ICIk KHdoaWNoIGJyY3RsKSIgXQogICAgICAgIHRoZW4KICAgICAgICBlZXJyb3IgIkl0IG1pZ2h0IGhl bHAgaWYgeW91IGVtZXJnZWQgYnJpZGdlLXV0aWxzLiBJIGhvcGUgeW91IC8KcmVtZW1iZXJlZCB0 byBwYXRjaCB5b3VyIGtlcm5lbC4iCiAgICAgICAgICAgICAgICByZXR1cm4gMQogICAgICAgIGZp Cn0KCnN0YXJ0KCkgewoJY2hlY2tjb25maWcgfHwgcmV0dXJuIDEKCWxvY2FsIGlmYWNlX2FyZ3M9 IiQoZXZhbCBlY2hvIFwkXHtpZmFjZV8ke0lGQUNFfVx9KSIKCWxvY2FsIHJldHZhbD0wCgoJZWJl Z2luICJCcmluZ2luZyAke0lGQUNFfSB1cCIKCgkjIHdlIGFsbG9jYXRlIElQIGFkZHJlc3MgdG8g YnIwIHZpcnR1YWwgaWZhY2UsIG5vdCB0byBwaHlzaWNhbCBldGgwLzEKICAgICAgICBpZmNvbmZp ZyBldGgwIDAuMC4wLjAKICAgICAgICBpZmNvbmZpZyBldGgxIDAuMC4wLjAKCgkjIGNyZWF0ZSBh IGJyaWRnZSBhbmQgYXNzaWduIHRoZSBFdGhlcm5ldCBpbnRlcmZhY2VzIHRvIGl0CiAgICAgICAg YnJjdGwgYWRkYnIgJHtJRkFDRX0KCiAgICAgICAgYnJjdGwgYWRkaWYgJHtJRkFDRX0gZXRoMAog ICAgICAgIGJyY3RsIGFkZGlmICR7SUZBQ0V9IGV0aDEKCgkjIGZpbmFsbHkgYnJpbmcgdGhlIGJy aWRnZSB1cAoJL3NiaW4vaWZjb25maWcgJHtJRkFDRX0gJHtpZmFjZV9hcmdzfSA+L2Rldi9udWxs IHx8IHsKCQlyZXR2YWw9JD8KCQllZW5kICR7cmV0dmFsfSAiRmFpbGVkIHRvIGJyaW5nICR7SUZB Q0V9IHVwIgoJCXJldHVybiAke3JldHZhbH0KCX0KCQojIE1pZ2h0IGhhdmUgdG8gcmVtb3ZlIHRo aXMgbmV4dCBiaXQKIyAtIGl0IHByb2JhYmx5IG5lZWRzIHRvIHdhaXQgMzAgc2Vjb25kcyBiZWZv cmUgdGVzdGluZwoKZWNobyAiZm9vIgoKCSMgaWZjb25maWcgZG8gbm90IGFsd2F5cyByZXR1cm4g ZmFpbHVyZSAuLgoJL3NiaW4vaWZjb25maWcgJHtJRkFDRX0gJj4gL2Rldi9udWxsIHx8IHsKCQly ZXR2YWw9JD8KCQllZW5kICR7cmV0dmFsfSAiRmFpbGVkIHRvIGJyaW5nICR7SUZBQ0V9IHVwIgoJ CXJldHVybiAke3JldHZhbH0KCX0KCgllZW5kIDAKCiMgSSdtIHJlYWxseSBub3Qgc3VyZSBpZiB3 ZSB3YW50IGFsaWFzZXMgb24gb3VyIGJyaWRnZSwKIyBzbyBJJ20ganVzdCBsZWF2aW5nIHRoaXMg aGVyZSBmb3IgdGhlIG1vbWVudC4KIwoJaWYgWyAtbiAiJChldmFsIGVjaG8gXCRce2FsaWFzXyR7 SUZBQ0V9XH0pIiBdCgl0aGVuCgkJbG9jYWwgeD0iIgoJCWxvY2FsIG51bT0wCgkJbG9jYWwgYWxp YXNiY2FzdD0iIgoJCWxvY2FsIGFsaWFzbm1hc2s9IiIKCgkJZWJlZ2luICIgIEFkZGluZyBhbGlh c2VzIgoJCWZvciB4IGluICQoZXZhbCBlY2hvIFwkXHthbGlhc18ke0lGQUNFfVx9KQoJCWRvCgkJ CWFsaWFzYmNhc3Q9IiQoZXZhbCBlY2hvIFwkXHticm9hZGNhc3RfJHtJRkFDRX1cfSBcfCBhd2sg XCdceyBwcmludCBcJCQoKG51bSArIDEpKSBcfVwnKSIKCQkJaWYgWyAtbiAiJHthbGlhc2JjYXN0 fSIgXQoJCQl0aGVuCgkJCQlhbGlhc2JjYXN0PSJicm9hZGNhc3QgJHthbGlhc2JjYXN0fSIKCQkJ ZmkKCgkJCWFsaWFzbm1hc2s9IiQoZXZhbCBlY2hvIFwkXHtuZXRtYXNrXyR7SUZBQ0V9XH0gXHwg YXdrIFwnXHsgcHJpbnQgXCQkKChudW0gKyAxKSkgXH1cJykiCgkJCWlmIFsgLW4gIiR7YWxpYXNu bWFza30iIF0KCQkJdGhlbgoJCQkJYWxpYXNubWFzaz0ibmV0bWFzayAke2FsaWFzbm1hc2t9IgoJ CQlmaQoJCQoJCQllYmVnaW4gIiAgICAke0lGQUNFfToke251bX0iCgkJCS9zYmluL2lmY29uZmln ICR7SUZBQ0V9OiR7bnVtfSAke3h9IFwKCQkJCSR7YWxpYXNiY2FzdH0gJHthbGlhc25tYXNrfSA+ L2Rldi9udWxsCgkJCW51bT0kKChudW0gKyAxKSkKCQkJZWVuZCAwCgkJZG9uZQoJCXNhdmVfb3B0 aW9ucyAiYWxpYXMiICIkKGV2YWwgZWNobyBcJFx7YWxpYXNfJHtJRkFDRX1cfSkiCglmaQoKIyBJ IGRvbid0IG5lZWQgSVAgdjYgcmlnaHQgbm93LCBzbyBpJ20gZGlzYWJsaW5nIGl0LgojCiMJaWYg WyAtbiAiJChldmFsIGVjaG8gXCRce2luZXQ2XyR7SUZBQ0V9XH0pIiBdCiMJdGhlbgojCQlsb2Nh bCB4PSIiCiMJCWViZWdpbiAiICBBZGRpbmcgaW5ldDYgYWRkcmVzc2VzIgojCQlmb3IgeCBpbiAk KGV2YWwgZWNobyBcJFx7aW5ldDZfJHtJRkFDRX1cfSkKIwkJZG8KIwkJCWViZWdpbiAiICAgICR7 SUZBQ0V9IGluZXQ2IGFkZCAke3h9IgojCQkJL3NiaW4vaWZjb25maWcgJHtJRkFDRX0gaW5ldDYg YWRkICR7eH0gPi9kZXYvbnVsbAojCQkJZWVuZCAwCiMJCWRvbmUKIwkJc2F2ZV9vcHRpb25zICJp bmV0NiIgIiQoZXZhbCBlY2hvIFwkXHtpbmV0Nl8ke0lGQUNFfVx9KSIKIwlmaQoJCmVjaG8gImJh ciIKCmlmIFsgLW4gIiR7Z2F0ZXdheX0iIF0gJiYgWyAiJHtnYXRld2F5JS8qfSIgPSAiJHtJRkFD RX0iIF0KICAgICAgICB0aGVuCmVjaG8gIndpYmJsZSIKICAgICAgICAgICAgICAgIGViZWdpbiAi ICBTZXR0aW5nIGRlZmF1bHQgZ2F0ZXdheSIKICAgICAgICAgICAgICAgIC9zYmluL3JvdXRlIGFk ZCBkZWZhdWx0IGd3ICR7Z2F0ZXdheSMqL30gZGV2ICR7Z2F0ZXdheSUvKn0gXAogICAgICAgICAg ICAgICAgICAgICAgICBuZXRtYXNrIDAuMC4wLjAgbWV0cmljIDEgPi9kZXYvbnVsbCB8fCB7CiAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCBlcnJv cj0kPwogICAgICAgICAgICAgICAgICAgICAgICBpZmNvbmZpZyAke0lGQUNFfSBkb3duICY+L2Rl di9udWxsCiAgICAgICAgICAgICAgICAgICAgICAgIGVlbmQgJHtlcnJvcn0gIkZhaWxlZCB0byBi cmluZyAke0lGQUNFfSB1cCIKICAgICAgICAgICAgICAgICAgICAgICAgc3RvcAogICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gJHtlcnJvcn0KICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIGVlbmQgMAogICAgICAgIGZpCgoJIyBFbmFibGluZyBycF9maWx0ZXIgY2F1c2VzIHdh Y2t5IHBhY2tldHMgdG8gYmUgYXV0by1kcm9wcGVkIGJ5CgkjIHRoZSBrZXJuZWwKCWlmIFsgLWUg L3Byb2Mvc3lzL25ldC9pcHY0L2NvbmYvJHtJRkFDRX0vcnBfZmlsdGVyIF0KCXRoZW4KCQllY2hv IDEgPiAvcHJvYy9zeXMvbmV0L2lwdjQvY29uZi8ke0lGQUNFfS9ycF9maWx0ZXIKCWZpCn0KCnN0 b3AoKSB7Cglsb2NhbCBteWFsaWFzPSIkKGdldF9vcHRpb25zIGFsaWFzKSIKCWViZWdpbiAiQnJp bmdpbmcgJHtJRkFDRX0gZG93biIKCiMJIyBBbHNvIGRvd24gdGhlIGluZXQ2IGludGVyZmFjZXMK Iwlsb2NhbCBteWluZXQ2PSIkKGdldF9vcHRpb25zIGluZXQ2KSIKIwlpZiBbIC1uICIke215aW5l dDZ9IiBdCiMJdGhlbgojCQlsb2NhbCB4PSIiCiMJCWZvciB4IGluICR7bXlpbmV0Nn0KIwkJZG8K IwkJCS9zYmluL2lmY29uZmlnICR7SUZBQ0V9IGluZXQ2IGRlbCAke3h9ID4vZGV2L251bGwKIwkJ ZG9uZQojCWZpCgkKCSMgRG8gc29tZSBjbGVhbnVwIGluIGNhc2UgdGhlIGFtb3VudCBvZiBhbGlh c2VzIGNoYW5nZQoJaWYgWyAtbiAiJHtteWFsaWFzfSIgXQoJdGhlbgoJCWxvY2FsIHg9IiIKCQls b2NhbCBudW09MAoJCWZvciB4IGluICR7bXlhbGlhc30KCQlkbwoJCQkvc2Jpbi9pZmNvbmZpZyAk e0lGQUNFfToke251bX0gZG93biA+L2Rldi9udWxsCgkJCW51bT0kKChudW0gKyAxKSkKCQlkb25l CglmaQoKCSMgUmVtb3ZlIHBoeXNpY2FsIGludGVyZmFjZSBmcm9tIGJyaWRnZSB2aXJ0dWFsIGlu dGVyZmFjZQoJYnJjdGwgZGVsaWYgJHtJRkFDRX0gZXRoMAogICAgICAgIGJyY3RsIGRlbGlmICR7 SUZBQ0V9IGV0aDEKCgkjIEFjdHVhbGx5IGJyaW5nIHRoZSBicmlkZ2UgZG93bgoJL3NiaW4vaWZj b25maWcgJHtJRkFDRX0gZG93biA+L2Rldi9udWxsCgoJIyBCcmluZyBpbnRlcmZhY2VzIGRvd24g dG8gYmUgdGlkeQogICAgICAgIGlmY29uZmlnIGV0aDAgZG93bgogICAgICAgIGlmY29uZmlnIGV0 aDEgZG93bgoKICAgICAgICBicmN0bCBkZWxiciAke0lGQUNFfQogICAgICAgICMgdGhpcyBzZWVt cyB0byBmcmVlIGFsbCBpbnRlcmZhY2VzCgoJZWVuZCAwCn0K ------=_20030322213529_51124 Content-Type: application/octet-stream; name="conf.d-net.br0" Content-Disposition: attachment; filename="conf.d-net.br0" Content-Transfer-Encoding: base64 IyAvZXRjL2NvbmYuZC9uZXQ6CgojIEdsb2JhbCBjb25maWcgZmlsZSBmb3IgbmV0LiogcmMtc2Ny aXB0cwoKIyBUaGlzIGlzIGJhc2ljYWxseSB0aGUgaWZjb25maWcgYXJndW1lbnQgd2l0aG91dCB0 aGUgaWZjb25maWcgJGlmYWNlICMKCmlmYWNlX2JyMD0iMTkyLjE2OC4xLjQzIGJyb2FkY2FzdCAx OTIuMTY4LjEuMjU1IG5ldG1hc2sgMjU1LjI1NS4yNTUuMCIKCiMgRm9yIHNldHRpbmcgdGhlIGRl ZmF1bHQgZ2F0ZXdheQojCmdhdGV3YXk9ImJyMC8xOTIuMTY4LjEuMSIK ------=_20030322213529_51124 Content-Type: text/plain; charset=us-ascii -- gentoo-dev@gentoo.org mailing list ------=_20030322213529_51124--