Browse code

core, lib, modules: restructured source code tree

- new folder src/ to hold the source code for main project applications
- main.c is in src/
- all core files are subfolder are in src/core/
- modules are in src/modules/
- libs are in src/lib/
- application Makefiles are in src/
- application binary is built in src/ (src/kamailio)

Daniel-Constantin Mierla authored on 07/12/2016 11:03:51
Showing 1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,46 +0,0 @@
1
-/*
2
- *
3
- * Copyright (C) 2001-2003 FhG Fokus
4
- *
5
- * Permission to use, copy, modify, and distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-/*!
18
- * \file
19
- * \brief Kamailio core :: Daemonize
20
- * \author andrei
21
- *      
22
- * \ingroup core 
23
- * Module: \ref core                    
24
- *  
25
- * 
26
- */
27
-
28
-#ifndef _daemonize_h
29
-#define _daemonize_h
30
-
31
-int daemonize(char* name, int daemon_status_fd_input);
32
-int do_suid(void);
33
-int increase_open_fds(int target);
34
-int set_core_dump(int enable, long unsigned int size);
35
-int mem_lock_pages(void);
36
-int set_rt_prio(int prio, int policy);
37
-
38
-void daemon_status_init(void);
39
-void daemon_status_on_fork_cleanup(void);
40
-int daemon_status_send(char status);
41
-void daemon_status_no_wait(void);
42
-void daemon_status_on_fork_cleanup(void);
43
-
44
-#endif /*_daemonize_h */
45
-
46
-/* vi: set ts=4 sw=4 tw=79:ai:cindent: */
Browse code

core: Modify doxygen, remove history, remove SVN IDs, change "ser" and "sip-router" to "KAMAILIO"

Olle E. Johansson authored on 16/01/2015 16:38:46
Showing 1 changed files
... ...
@@ -16,7 +16,7 @@
16 16
  */
17 17
 /*!
18 18
  * \file
19
- * \brief SIP-router core :: Daemonize
19
+ * \brief Kamailio core :: Daemonize
20 20
  * \author andrei
21 21
  *      
22 22
  * \ingroup core 
Browse code

core : Update include files - delete IDs, update doxygen, delete history

Olle E. Johansson authored on 03/01/2015 10:55:48
Showing 1 changed files
... ...
@@ -1,5 +1,4 @@
1 1
 /*
2
- * $Id$
3 2
  *
4 3
  * Copyright (C) 2001-2003 FhG Fokus
5 4
  *
... ...
@@ -15,13 +14,15 @@
15 14
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 15
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 16
  */
18
-/*
17
+/*!
18
+ * \file
19
+ * \brief SIP-router core :: Daemonize
20
+ * \author andrei
21
+ *      
22
+ * \ingroup core 
23
+ * Module: \ref core                    
24
+ *  
19 25
  * 
20
- * History:
21
- * --------
22
- *  2004-02-20  created by andrei
23
- *  2007-06-07  added mem_lock_pages() (andrei)
24
- *  2010-08-19  send status via pipe code derived from 9167c1 (ibc) (andrei)
25 26
  */
26 27
 
27 28
 #ifndef _daemonize_h
Browse code

core: Added void to declarations of functions with empty argument list

In C language, a declaration in the form int f(); is equivalent to int f(...);, thus being able to accept an indefinit number of parameters. With the -Wstrict-prototypes GCC options, these declarations are reported as "function declaration isn’t a prototype".
On some cases, this may trick the compiler into generating unoptimized code (like preparing to handle variadic argument list).
In all cases having a declaration int f() and a definition inf f(int) is missleading, even if standard compliant.
This is still Work in Progress. (maybe adding the -Wstrict-prototypes option to default is desireable)

Marius Zbihlei authored on 02/04/2012 14:19:17
Showing 1 changed files
... ...
@@ -28,17 +28,17 @@
28 28
 #define _daemonize_h
29 29
 
30 30
 int daemonize(char* name, int daemon_status_fd_input);
31
-int do_suid();
31
+int do_suid(void);
32 32
 int increase_open_fds(int target);
33 33
 int set_core_dump(int enable, long unsigned int size);
34
-int mem_lock_pages();
34
+int mem_lock_pages(void);
35 35
 int set_rt_prio(int prio, int policy);
36 36
 
37
-void daemon_status_init();
38
-void daemon_status_on_fork_cleanup();
37
+void daemon_status_init(void);
38
+void daemon_status_on_fork_cleanup(void);
39 39
 int daemon_status_send(char status);
40
-void daemon_status_no_wait();
41
-void daemon_status_on_fork_cleanup();
40
+void daemon_status_no_wait(void);
41
+void daemon_status_on_fork_cleanup(void);
42 42
 
43 43
 #endif /*_daemonize_h */
44 44
 
Browse code

core: enable dumpable flag after setuid() on Linux

- init rlimit struct for proper dbg message when core limits are not
changed

Daniel-Constantin Mierla authored on 05/03/2011 23:51:41
Showing 1 changed files
... ...
@@ -30,7 +30,7 @@
30 30
 int daemonize(char* name, int daemon_status_fd_input);
31 31
 int do_suid();
32 32
 int increase_open_fds(int target);
33
-int set_core_dump(int enable, int size);
33
+int set_core_dump(int enable, long unsigned int size);
34 34
 int mem_lock_pages();
35 35
 int set_rt_prio(int prio, int policy);
36 36
 
Browse code

core: daemon status/pipe fixes & interface changes

- moved most of the daemon status stuff to daemonize.[ch].
- nicer interface (e.g. daemon_status_send(code))
- send/read only 1 byte which will be used as exit code
- send an error status on error (fixes
"Main process exited before writing to pipe" error message)
- disabled the timeout. Not needed (now a status is sent always
and even an unlikely process crash before sending it is detected via
the read() failure) and very hard to find a good value (some
setups start very slow).
- close the pipe "send" fd in processes not needing it
- attempt to send back status only if dont_daemonize is not set
(not only if dont_fork==0, it is possible to have forking
enabled, but daemonize disabled: ser -DD)
- BSDed daemonize.[ch] and pt.[ch]

Andrei Pelinescu-Onciul authored on 19/08/2010 18:03:54
Showing 1 changed files
... ...
@@ -3,28 +3,25 @@
3 3
  *
4 4
  * Copyright (C) 2001-2003 FhG Fokus
5 5
  *
6
- * This file is part of SIP-router, a free SIP server.
6
+ * Permission to use, copy, modify, and distribute this software for any
7
+ * purpose with or without fee is hereby granted, provided that the above
8
+ * copyright notice and this permission notice appear in all copies.
7 9
  *
8
- * SIP-router is free software; you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation; either version 2 of the License, or
11
- * (at your option) any later version
12
- *
13
- * SIP-router is distributed in the hope that it will be useful,
14
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
- * GNU General Public License for more details.
17
- *
18
- * You should have received a copy of the GNU General Public License 
19
- * along with this program; if not, write to the Free Software 
20
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
10
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 17
  */
22 18
 /*
23 19
  * 
24 20
  * History:
25 21
  * --------
26 22
  *  2004-02-20  created by andrei
27
- *  2007-06-07 added mem_lock_pages() (andrei)
23
+ *  2007-06-07  added mem_lock_pages() (andrei)
24
+ *  2010-08-19  send status via pipe code derived from 9167c1 (ibc) (andrei)
28 25
  */
29 26
 
30 27
 #ifndef _daemonize_h
... ...
@@ -37,5 +34,12 @@ int set_core_dump(int enable, int size);
37 34
 int mem_lock_pages();
38 35
 int set_rt_prio(int prio, int policy);
39 36
 
37
+void daemon_status_init();
38
+void daemon_status_on_fork_cleanup();
39
+int daemon_status_send(char status);
40
+void daemon_status_no_wait();
41
+void daemon_status_on_fork_cleanup();
42
+
43
+#endif /*_daemonize_h */
40 44
 
41
-#endif
45
+/* vi: set ts=4 sw=4 tw=79:ai:cindent: */
Browse code

core: The patch allows ser started in daemonize mode to return the proper error code.

If for example the listen address is not local or a DB connection uses an invalid password, then the command
"ser" would return 0 (OK) anyway (even if it fails to start).This occurs because all those checking
(socket, DB connections...) are performed *after* invoking daemonize() so the parent process (which
could be invoked by "/etc/init.d/ser start") returns 0 knowing nothing about those errors. This caused some
management tools like HeartBeat to work badly.

The patch is simple: the master process opens a pipe, and reads from one end. The forked main process,
after the correct initialization of components, will write some bytes to the writting end. In case of error,
no data is written to the pipe.

The master process waits for 10 seconds, or else it considers the main process blocked and exits with a different
error code( -2 ). In this case, it is left for the user to ensure that all ser children are killed correctly.

Patch initially from Iñaki Baz Castillo.

Marius Zbihlei authored on 21/04/2010 09:35:16
Showing 1 changed files
... ...
@@ -30,7 +30,7 @@
30 30
 #ifndef _daemonize_h
31 31
 #define _daemonize_h
32 32
 
33
-int daemonize(char* name);
33
+int daemonize(char* name, int daemon_status_fd_input);
34 34
 int do_suid();
35 35
 int increase_open_fds(int target);
36 36
 int set_core_dump(int enable, int size);
Browse code

- Doxygen updates on core files - Add project name to doxygen in Makefile

oej authored on 19/10/2009 20:35:43
Showing 1 changed files
... ...
@@ -3,19 +3,14 @@
3 3
  *
4 4
  * Copyright (C) 2001-2003 FhG Fokus
5 5
  *
6
- * This file is part of ser, a free SIP server.
6
+ * This file is part of SIP-router, a free SIP server.
7 7
  *
8
- * ser is free software; you can redistribute it and/or modify
8
+ * SIP-router is free software; you can redistribute it and/or modify
9 9
  * it under the terms of the GNU General Public License as published by
10 10
  * the Free Software Foundation; either version 2 of the License, or
11 11
  * (at your option) any later version
12 12
  *
13
- * For a license to use the ser software under conditions
14
- * other than those described here, or to purchase support for this
15
- * software, please contact iptel.org by e-mail at the following addresses:
16
- *    info@iptel.org
17
- *
18
- * ser is distributed in the hope that it will be useful,
13
+ * SIP-router is distributed in the hope that it will be useful,
19 14
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 15
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 16
  * GNU General Public License for more details.
Browse code

- new script config vars: mlock_pages, shm_force_alloc, real_time, rt_prio, rt_policy, rt_timer1_prio, rt_timer1_policy, rt_timer2_prio, rt_timer2_policy (for more info see NEWS)

Andrei Pelinescu-Onciul authored on 07/06/2007 21:44:00
Showing 1 changed files
... ...
@@ -29,6 +29,7 @@
29 29
  * History:
30 30
  * --------
31 31
  *  2004-02-20  created by andrei
32
+ *  2007-06-07 added mem_lock_pages() (andrei)
32 33
  */
33 34
 
34 35
 #ifndef _daemonize_h
... ...
@@ -38,6 +39,8 @@ int daemonize(char* name);
38 39
 int do_suid();
39 40
 int increase_open_fds(int target);
40 41
 int set_core_dump(int enable, int size);
42
+int mem_lock_pages();
43
+int set_rt_prio(int prio, int policy);
41 44
 
42 45
 
43 46
 #endif
Browse code

- Spelling checked - READMEs updated

Jan Janak authored on 24/08/2004 08:45:09
Showing 1 changed files
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * $Id$
3 3
  *
4
- * Copyright (C) 2001-2003 Fhg Fokus
4
+ * Copyright (C) 2001-2003 FhG Fokus
5 5
  *
6 6
  * This file is part of ser, a free SIP server.
7 7
  *
Browse code

- core dump limits are by default set to unlimited or a high enough value (to disable set disable_core_dump=yes in ser.cfg). - open file limits set-able in ser.cfg, use open_files_limit=no to make ser automatically try to increase this limit (if no<current limit nothing will be done). You must start ser as root to be able to increase its open file limit past the hardlimit (default 1024 on most systems). - move process table init. before module init. (sanity)

Andrei Pelinescu-Onciul authored on 30/03/2004 09:44:19
Showing 1 changed files
... ...
@@ -36,6 +36,8 @@
36 36
 
37 37
 int daemonize(char* name);
38 38
 int do_suid();
39
+int increase_open_fds(int target);
40
+int set_core_dump(int enable, int size);
39 41
 
40 42
 
41 43
 #endif
Browse code

- moved daemonize in its own file - removed suid stuff from daemonize and moved it in do_suid() (ser will change uid now after opening the listening sockets)

Andrei Pelinescu-Onciul authored on 08/03/2004 14:05:46
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,41 @@
1
+/*
2
+ * $Id$
3
+ *
4
+ * Copyright (C) 2001-2003 Fhg Fokus
5
+ *
6
+ * This file is part of ser, a free SIP server.
7
+ *
8
+ * ser is free software; you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation; either version 2 of the License, or
11
+ * (at your option) any later version
12
+ *
13
+ * For a license to use the ser software under conditions
14
+ * other than those described here, or to purchase support for this
15
+ * software, please contact iptel.org by e-mail at the following addresses:
16
+ *    info@iptel.org
17
+ *
18
+ * ser is distributed in the hope that it will be useful,
19
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21
+ * GNU General Public License for more details.
22
+ *
23
+ * You should have received a copy of the GNU General Public License 
24
+ * along with this program; if not, write to the Free Software 
25
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
26
+ */
27
+/*
28
+ * 
29
+ * History:
30
+ * --------
31
+ *  2004-02-20  created by andrei
32
+ */
33
+
34
+#ifndef _daemonize_h
35
+#define _daemonize_h
36
+
37
+int daemonize(char* name);
38
+int do_suid();
39
+
40
+
41
+#endif