Re: IPX without suidroot

Stas Sergeev
2002-08-01T14:02:58Z

[-- Attachment #1: Type: text/plain, Size: 845 bytes --]

Hello.

Reinhard Karcher wrote:
>> Only question I have: "Can I use IPX while being simple user
>> without any sudo or suidroot?"
> As far as I know, it is not possible. Dosemu has to create sockets
> of the IPX-type, and thagt can't be done without rootpriviledges.
I *think* (without too much knowledge
of an IPX networking) that this is
possible.
I have traced the IPXOpenSocket()
and the only place which fails without
root is setting SO_DEBUG opt to
socket which is used only for
debugging and must not fail, so it's
a bug.
For everything else root doesn't
seem to be required.
I started doom's ipxsetup and it
doesn't complain, log indicates
that packets are floating OK.
So I think IPX must work without
root.
And if not, Grigory or Reinhard,
please apply the attached patch
and produce a -D9+n log and also
cat /proc/net/ipx_interface

[-- Attachment #2: ipx_root.diff --]
[-- Type: text/plain, Size: 802 bytes --]

--- src/dosext/net/net/ipx.c Fri Jul 19 02:04:37 2002
+++ src/dosext/net/net/ipx.c Thu Aug 1 17:30:44 2002
@@ -443,17 +443,14 @@
}

opt = 1;
- /* turn on socket debugging */
- if (debug_level('n')) {
+ /* turn on socket debugging - requires root! */
+ if (debug_level('n') && can_do_root_stuff) {
enter_priv_on();
- if (setsockopt(sock, SOL_SOCKET, SO_DEBUG, &opt, sizeof(opt)) == -1) {
- leave_priv_setting();
+ if (setsockopt(sock, SOL_SOCKET, SO_DEBUG, &opt, sizeof(opt)) == -1)
n_printf("IPX: could not set socket option for debugging: %s.\n", strerror(errno));
- /* I can't think of anything else to return */
- return (RCODE_SOCKET_TABLE_FULL);
- }
leave_priv_setting();
}
+
opt = 1;
/* Permit broadcast output */
enter_priv_on();