I experimented over the weekend but was too tired to post the results :-)
Here are the major problems:
- '-D' doesn't prevent forking to background
The single process which runs in the background does indeed work as confirmed with tests using 'sipsak', but only on one interface (loopback, unless it is explicitly specified in ser.cfg).
Without using command-line options: "fork=yes" set in ser.cfg results on only a single process running in the background "fork=no" set in ser'cfg results in several processes starting followed by a segfault (in one of them, the rest remain running): (gdb) bt #0 0x83a2584 in _atomic_lock () #1 0x83a2564 in _spinlock_debug ()
also, the fifo is created and 'serctl ps' will list the (2) running processes, but this query will kill those processes.
I tried running with various values of shmem (-m 4, 8, 12, etc) which doesn't seem to change the behavior but changes the corefile size somewhat. The machine has 16MB RAM and 500MB swap space -- for the mixture of tasks it runs as a router (isakmpd, pf, snort, various proxies) it never swaps; the swap space is there for big compiles -- I vainly tried building OpenH323 and after eight days it gave up on h323.cxx -- note that searching archives shows others have been unable to build it on OpenBSD/sparc regardless of how much ram they have.
For my intended application (a few phones on our natted lan) I wouldn't mind using just a single process with a very small memory footprint, but it would need to listen on all of the interfaces and work with rtpproxy.
- no fifo is created regardless of the 'fifo=' statement in 'ser.cfg'
or the command-line '-i' argument
Did you comment out log_stderror and fork in ser.cfg? ser.cfg takes precedence over the command line (so if you have fork=yes in ser.cfg, -D will be ignored).
See above for strange behavior.
Permissions are correct for creating a fifo in the specified directory (I ususally use /tmp).
See above -- fifo is created if "fork=no"
Strange, I've tried this on openbsd 3.2/x86 and it works.
Andrei
Regards,
Michael Grigoni Cybertheque Museum