GNOME Bugzilla – Bug 525348
Orca uses wget
Last modified: 2009-03-10 00:04:38 UTC
Seriously. Start using D-Bus and poke the main daemon regularly over it (using a babysitter process, and probably a low-ish timeout), the D-Bus call will timeout if it's dead. Even then, bash can do socket access (first hit on Google: http://thesmithfam.org/blog/2006/05/23/bash-socket-programming-with-devtcp-2/), so there's no need for wget, or open ports on the local system (and hard-coding ports means that multi-user systems won't work as expected either).
I'm confused. Orca doesn't use DBus and I don't believe any of the components it uses use DBus.
No, they _should_ use D-Bus instead of opening sockets on the local network interfaces, and using wget as a baby-sitter.
Do you know if this is because the AT-SPI infrastructure is CORBA based? In addition, do you know which port(s) are in use?
From /usr/bin/orca: ---8<--- # Runs a watchdog process in the background. It merely attempts to # get to Orca via some other means than the AT-SPI. Here we use # Orca's http server at port 20433. If it doesn't respond, then # we assume Orca is dead. ---8<--- and: ---8<--- $WGETCMD -q -t 0 -O /dev/null -w 2 "http://localhost:20433" || { echo Orca watchdog detected something bad. Cleaning up. cleanup ---8<--- Probably nothing to do with Corba, but using Corba (or better D-Bus) for the baby-sitting would be a step in the right direction. Orca certainly shouldn't have an HTTP server embedded.
Thanks for the additional information -- that helps. I see you marked this as major, the definition of which is "Major loss of functionality- menu item broken, data output extremely incorrect, or otherwise difficult/useless to use." Can you describe how 'major' applies in this case? I would tend to put this more in the 'enhancement' category.
It's a potential security hole, it doesn't work on multi-user setups, it doesn't work with SELinux.
Created attachment 108654 [details] [review] Patch to use DBus instead of HTTP This patch converts what we can of the HTTP service into a DBus service, including the stuff to handle the watchdog and the stuff used by the test harness, eliminating the use of wget (i.e., the stuff this bug is about). Due to at least one user stating they still need the FireVox support for Orca, we cannot get rid of the HTTP server completely. However, we can now disable it by default and provide users with instructions on how to enable it.
Patch committed after testing a fair amount locally. Marking as [pending] waiting upon successful completion of the next nightly test run.
I'm not sure I'm the best one to verify this one
Closing as FIXED. This went into Orca v2.23.1 according to my logs.