I found another little bug, this time with the "fifo_mode" directive in the ser.cfg file. Since the YACC/Bison config defines the directive as a integer type, you can only use decimal integers. Therefore, config lines such as "fifo_mode=0660" will be interpreted as "660" DECIMAL, resulting in unexpected modes being set. If you use the decimal number "432", the equivelant of octal "660" it sets modes as expected.
Unless YACC/Bison/[F]Lex can be made to interpret the value as octal (I'm no expert in these), you should probably change the type to string and just use strtol(in,out,8) or strtol(in,out,0) (which lets the user use decimal, or 0xHEX, or 0NNN octal in the ser.cfg file) in the code somewhere.
- Jim
Andrei Pelinescu-Onciul wrote:
On Nov 26, 2003 at 15:03, Jim Burwell jimb@jsbc.cc wrote:
Ok. I didn't know that SER had the ability to change the GID it runs under (and therefore change the group owner of the FIFO hopefully). This would solve the problem. In my case I'd just set "group=serfifo".
HOWEVER, why I try this, I get:
{root@fs/pts/7}~# ser -P /var/run/ser.pid -dddd -g serfifo Segmentation fault
Thanks. It seems I never tried group= myself :-)
It's fixed on the cvs (rel_0_8_11, rel_0_8_12 and HEAD), so either update or apply the attacged patch.
Andrei
Index: main.c
RCS file: /cvsroot/ser/sip_router/main.c,v retrieving revision 1.168 diff -u -r1.168 main.c --- main.c 2003/10/12 15:09:08 1.168 +++ main.c 2003/11/26 23:34:48 @@ -1523,7 +1523,7 @@ } } if (group){
gid=strtol(user, &tmp, 10);
if ((tmp==0) ||(*tmp)){ /* maybe it's a string */ gr_entry=getgrnam(group);gid=strtol(group, &tmp, 10);