[Pkg-sysvinit-devel] Bug#405870: sysvinit: halt binary missing ifdown, breaks wake on lan, src...

HarryCoin at aol.com HarryCoin at aol.com
Sun Jan 7 16:07:38 CET 2007


 
In a message dated 1/6/2007 5:55:02 P.M. Central Standard Time,  
pere at hungry.com writes:


I  read throught this bug, but fail to understand it.  Can you please
try  to rephrase it?  Without understanding it, I'm not sure where to
start  to try to solve it.

Friendly,
-- 
Petter Reinholdtsen
One of  the sysvinit maintainers


Yes, I will try.   To see the problem get the latest sysvinit and  cd to the 
src directory and run 'make halt'.   Look at the size of the  binary file 
halt.   Then look at the size of the binary file  /sbin/halt that comes with etch. 
 There you will see /sbin/halt is  smaller.   The reason it is smaller is 
that ifdown.c in /sbin/halt is  made into a no-op or blank or stub function and 
it doesn't bring the network  interface down at all no matter if 
'-i' is present or '-i' is not present on the halt command  line.   The 
version in the sysvinit src directory is larger and it  does work properly.
 
I will write this again in another way to help with language translation  
efforts.
 
At the present time, the ifdown.c module in the halt program in the  sysvinit 
set does not get compiled in to the halt binary that is distributed  with 
etch.  However, the usage and man pages write that it is there and it  does work. 
 If you download the sysvinit source and compile it with 'make  halt' in the 
src directory, it does get compiled in, that binary is 2K larger  than than 
the one distributed with etch, and it does do the ifdown function  properly.
 
I have an idea about how this happened:
 
The problem began some time ago as a result of a fix notice in the  change 
log -- because. on one of the *bsd distros the ifdown.c wasn't  appropriate for 
*bsd, and so in a 'fix' listed in the changelog to  make it a do-nothing 
function but just on *bsd.    However,  somehow, this crippled version wrongly is 
sent out with linux too, that is the  problem.
 
To solve it, take a look at the ifdown.c in the 'halt' sysvinit  program.  
Make sure that in the Debian and other Linux distros, the ifdown  function 
actually is compiled in and that it works.
 
To check, make sure a system with the network works.   Then  do
 
ifconfig
halt -i -w
ifconfig
 
all interfaces should be 'DOWN' on the second ifconfig if you have the  right 
version of halt.  The wrong version with etch will not change  the state of 
the network interfaces.
 
Thanks all!
 
Harry Coin
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.alioth.debian.org/pipermail/pkg-sysvinit-devel/attachments/20070107/d30b645a/attachment.html


More information about the Pkg-sysvinit-devel mailing list