Thanks for the quick reply.
I looked at the sr_module.h and saw the defs that you are talking about.
Now I am starting SER with fork=yes and children=2.
so I get the following output from serctl ps cmd.
[root@test gl]# serctl ps
0 10771 attendant
1 10773 receiver child=0 sock=0 @ 192.168.160.12:5060
2 10774 receiver child=1 sock=0 @ 192.168.160.12:5060
3 10775 fifo server
4 10776 timer
5 10777 tcp receiver
6 10778 tcp receiver
7 10779 tcp main process
The only rank values that I can count on not to startup a socket connection
in the child_init function are -1, -2, -4.
The question I have is, how can I know in my child_init function that the
process that the child_init() function is called from is
"receiver child=n" ?
for example I know that if I have set children=2 in ser.cfg than the first 2
times the child_init function will be called from the receiver child=0 and
receiver child=1 thread. Also How come the tcp receiver is getting started
for each child ?
I hope that I am making sense here.
thanks,
Jignesh Gandhi
-----Original Message
From: Jan Janak
To: Gandhi, Jignesh
Cc: 'serusers(a)lists.iptel.org'
Sent: 11/3/2004 11:08 AM
Subject: Re: [Serusers] RE: SER in debug mode
no fork mode means that there will be only one process listening for and
processing SIP messages. In addition to that there will be also the
timer process (taking care of timers) and fifo process (processing
commands sent to ser over the FIFO interface). The child init function
will be called for all of them. See:
root@localhost:/home/janakj# serctl ps
0 6266 stand-alone receiver @ 127.0.0.1:5060
1 6267 timer
2 6268 fifo server
If you want to execute the code in the listening process only, then you
can ignore calls of child_init that have the parameter set to PROC_TIMER
and PROC_FIFO (defined in sr_module.h).
Note that it is usually a good idea to have the same environment in the
timer process as in the receiver as some functionality might be called
from the timer.
Jan.
On 03-11 10:14, Gandhi, Jignesh wrote:
Hello all,
I am trying to debug a new module that I have written.
So I have set fork=no and debug=4 and commented out the
child line.
The question I have is that the how may times the child_init()
function be called ?
The child_init() function in my module sets up a socket connection
to a server and I can see that the child_init() function is getting
called 3 times. I do not understand this. Am I missing something ?
The mod_init function is getting called only once, like it is supposed
to.
I have attached the output from ser startup. The module that I have
written
is called gl.
Nov 2 14:07:20 sara ser: INFO: glenayre redirector(gl module)
initializing
Nov 2 14:07:20 sara ser: INFO: udp_init: SO_RCVBUF is
initially 65535
Nov 2 14:07:20 sara ser: INFO: udp_init: SO_RCVBUF is finally 262142
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): init_child #-1 /
pid
<10269>
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): Initializing TCP
connection
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): TCP port = 1234
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): TCP host =
localhost
Nov 2 14:07:20 sara ser: INFO: fifo process starting:
10270
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): init_child #-2 /
pid
<10270>
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): Initializing TCP
connection
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): TCP port = 1234
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): TCP host =
localhost
Nov 2 14:07:20 sara ser: SER: open_uac_fifo: fifo
server up at
/tmp/ser_fifo...
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): init_child #1 /
pid
<10268>
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): Initializing TCP
connection
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): TCP port = 1234
Nov 2 14:07:20 sara ser: gl:INFO: gl_child_init(): TCP host =
localhost
any help is appreciated,
thanks,
Jignesh Gandhi
Software Engineer II
Jignesh.Gandhi(a)glenayre.com
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers