After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 525348 - Orca uses wget
Orca uses wget
Status: RESOLVED FIXED
Product: orca
Classification: Applications
Component: general
unspecified
Other Linux
: Normal major
: 2.24.0
Assigned To: Willie Walker
Orca Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-03-31 14:53 UTC by Bastien Nocera
Modified: 2009-03-10 00:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to use DBus instead of HTTP (16.29 KB, patch)
2008-04-05 01:39 UTC, Willie Walker
committed Details | Review

Description Bastien Nocera 2008-03-31 14:53:36 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).
Comment 1 Willie Walker 2008-03-31 15:02:21 UTC
I'm confused.  Orca doesn't use DBus and I don't believe any of the components it uses use DBus.
Comment 2 Bastien Nocera 2008-03-31 15:04:47 UTC
No, they _should_ use D-Bus instead of opening sockets on the local network interfaces, and using wget as a baby-sitter.
Comment 3 Willie Walker 2008-03-31 15:09:54 UTC
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?
Comment 4 Bastien Nocera 2008-03-31 15:14:29 UTC
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.
Comment 5 Willie Walker 2008-03-31 15:45:37 UTC
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.
Comment 6 Bastien Nocera 2008-03-31 16:18:57 UTC
It's a potential security hole, it doesn't work on multi-user setups, it doesn't work with SELinux.
Comment 7 Willie Walker 2008-04-05 01:39:21 UTC
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.
Comment 8 Willie Walker 2008-04-07 19:21:15 UTC
Patch committed after testing a fair amount locally.  Marking as [pending] waiting upon successful completion of the next nightly test run.
Comment 9 Mike Pedersen 2008-04-18 21:23:22 UTC
I'm not sure I'm the best one to verify this one
Comment 10 Willie Walker 2008-05-21 18:48:01 UTC
Closing as FIXED.  This went into Orca v2.23.1 according to my logs.