Re: panel error *** ORBit patch ***



On Wed, 12 Aug 1998 16:58:15 -0400 (EDT), gleef@capital.net
<FrederickIGleef> wrote: 

>If you run gdb panel, it says that the segmentation fault comes in the
>file connection.c.  The problem is that a program using ORBit, on startup,
>does the following things:
>
>  1) Gets the local machine's hostname
>  2) Resolves it to an IP address
>  3) Resolves the IP address back to a name
>  4) Uses the resulting name
>
>If your machine name does not DNS properly, and has no entry in
>/etc/hosts, step 2 will set a pointer to null, and step 3 will fail with
>a segmentation fault, similar to how Mico did.  In addition, if your
>machine does not reverse DNS properly (as many peoples machines don't),
>step 3 will set a null pointer, and step 4 will fail with a segmentation
>fault.
>
>Attached is a patch to ORBit-0.2.  Note that the patch will NOT work with
>the current CVS version.  The CVS version has changed the section to take
>an errror message out, and the patch will not go in.  I patched against
>version 0.2 because I could verify that the patch works.  I get another
>segmentation fault later on in the CVS version.
>
>The patch changes the above behavior to the following:
>  1) Removed
>  2) Removed
>  3) Removed
>  4) Use the name "localhost"
>
>This should work even if networking on your machine is really screwed up,
>as long as you can "ping localhost".  I doubt that this is the right way
>to do it, since the patch probably turns ORBit into a non-networked
>version, but at the moment, but it's a temporary fix while we don't have
>any critical networked applets.
>
>In my opinion, ORBit is pickier about having a proper network setup than
>mico is.  Many people don't have proper network setups.  Where I work, via
>pointy-haired boss decision, I am not ALLOWED to have DNS or reverse DNS
>on the network.  I did not complain during the mico days, since there was
>little we could do about it, but I consider ORBit segfaulting under iffy
>network setups a bug.  I don't mind if it refrains from talking to other
>machines when it can't check the networking, but it has to at least work
>locally.

Segfaulting is a problem, but putting your hacks in would be even worse :)

I refuse to put broken DNS hacks in in order to cater to broken system
setups. I quite honestly do not care to support broken systems - should I
also check to make sure that you have IPv4 support on your system before
attempting to use it? :)

I'm not asking for the world - just edit your /etc/hosts so that your
hostname can be turned into an IP address, and back into a FQDN (e-mail me
privately if I can help you out with this).

I did add UNIX socket support to ORBit to allow not going out over any
IPv4 network, but it still needs to get a hostname to find out whether
that usock is on the current host (i.e. you still need to fix /etc/hosts
!) 

If you want to run the panel with UNIX socket support and no IPv4, you
could try running something like:
	panel -ORBIIOPUnixSock /home/gleef/.panel-socket -ORBIIOPIPv4 0
and then make sure that each of your applets gets passed the command line:
	appletname -ORBIIOPUnixSock /home/gleef/.appletN-socket -ORBIIOPIPv4 0
This is totally untested, so whoever does it can be Mr. Adventurer :)

If you want to send in a non-hackish patch to read a global config file
for default command line switches, including a nice way to generate a new
UNIX socket name for each app, I'll be glad to consider it.

I have committed stuff to fix the segfaults - please give it a try now! :)
-- Elliot
Progress (n.): The process through which Usenet has evolved from smart
people in front of dumb terminals to dumb people in front of smart
terminals.  -- obs@burnout.demon.co.uk



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]