f51155cf |
/*
* $Id$
*
* Process Table
*
*
|
7dd0b342 |
*
* Copyright (C) 2001-2003 Fhg Fokus
*
* This file is part of ser, a free SIP server.
*
* ser is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version
*
* For a license to use the ser software under conditions
* other than those described here, or to purchase support for this
* software, please contact iptel.org by e-mail at the following addresses:
* info@iptel.org
*
* ser is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
f51155cf |
*/
|
5dcfb23d |
/*
* History:
* --------
* 2003-04-15 added tcp_disable support (andrei)
*/
|
f51155cf |
|
7dd0b342 |
|
f51155cf |
#ifndef _PT_H
|
015f149a |
#define _PT_H
|
f51155cf |
#include <sys/types.h>
#include <unistd.h>
#include "globals.h"
#include "timer.h"
|
9f4c52ce |
#include "socket_info.h"
|
f51155cf |
#define MAX_PT_DESC 128
struct process_table {
int pid;
|
0c5da34b |
#ifdef USE_TCP
int unix_sock; /* unix socket on which tcp main listens */
int idx; /* tcp child index, -1 for other processes */
#endif
|
f51155cf |
char desc[MAX_PT_DESC];
};
extern struct process_table *pt;
extern int process_no;
/* get number of process started by main with
given configuration
*/
inline static int process_count()
{
|
9f4c52ce |
int udp_listeners;
struct socket_info* si;
for (si=udp_listen, udp_listeners=0; si; si=si->next, udp_listeners++);
|
f51155cf |
return
/* receivers and attendant */
|
9f4c52ce |
(dont_fork ? 1 : children_no*udp_listeners + 1)
|
f51155cf |
/* timer process */
+ (timer_list ? 1 : 0 )
/* fifo server */
|
6ee62314 |
+((fifo==NULL || strlen(fifo)==0) ? 0 : 1 )
#ifdef USE_TCP
|
200c0276 |
+((!tcp_disable)?( 1/* tcp main */ + tcp_children_no +
(timer_list ? 0: 1)):0) /* add the timer proc.
|
5dcfb23d |
if not already taken
into account */
|
6ee62314 |
#endif
;
|
f51155cf |
}
/* retun processes's pid */
inline static int my_pid()
{
return pt ? pt[process_no].pid : getpid();
}
#endif
|