- Doxygen updates on core files
authoroej <oej@edvina.net>
Mon, 19 Oct 2009 20:35:43 +0000 (22:35 +0200)
committeroej <oej@edvina.net>
Mon, 19 Oct 2009 20:35:43 +0000 (22:35 +0200)
- Add project name to doxygen in Makefile

22 files changed:
Makefile.rules
action.c
action.h
atomic_ops.h
atomic_ops_init.h
basex.c
basex.h
bit_scan.h
cfg_core.c
cfg_core.h
cfg_parser.c
cfg_parser.h
clist.h
compiler_opt.h
config.h
core_cmd.c
core_cmd.h
crc.c
daemonize.c
daemonize.h
data_lump.c
doc/doxygen/ser.doxygen

index 8e81150..29511f4 100644 (file)
@@ -280,6 +280,7 @@ doxygen:
        # disable call graphes, because of the DOT dependencies
        (cat ./$(COREPATH)/doc/doxygen/ser.doxygen; \
        echo "HAVE_DOT=no" ;\
+       echo "PROJECT_NAME=SIP-ROUTER" ;\
        echo "PROJECT_NUMBER=$(NAME)-$(RELEASE)" )| doxygen -
        -@echo "Doxygen documentation created"
 
index 746aa86..62848b2 100644 (file)
--- a/action.c
+++ b/action.c
@@ -52,6 +52,7 @@
  *  2009-05-04  switched IF_T to rval_expr (andrei)
  *  2009-09-15  added SET_{FWD,RPL}_NO_CONNECT, SET_{FWD,RPL}_CLOSE (andrei)
  */
+
 /*!
  * \file
  * \brief SIP-router core :: 
index c07b9ae..c11baa9 100644 (file)
--- a/action.h
+++ b/action.h
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+/*!
+ * \file
+ * \brief SIP-router core ::
+ * \ingroup core
+ * Module: \ref core
+ */
+
 
 #ifndef action_h
 #define action_h
index 22e281d..f65e43a 100644 (file)
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
+
+/*!
+ * \file
+ * \brief SIP-router core :: Atomic operations and memory barriers
+ * \ingroup core
+ * Module: \ref core
+ * See \ref atomicops
+ */
+
 /*
- *  atomic operations and memory barriers
+ * \page atomicops  Atomic operations and memory barriers
+ *
  *  WARNING: atomic ops do not include memory barriers
  *  
  *  memory barriers:
index 4de6e40..de4c029 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-/*
- * atomic_ops init functions
- * (needed for lock intializing if no native asm locks are available
- *  for the current arch./compiler combination, see atomic_ops.c)
+/*!
+ * \file
+ * \brief SIP-router core :: atomic_ops init functions
+ *
+ * \ingroup core
+ * Module: \ref core
+ *
+ * Needed for lock intializing if no native asm locks are available
+ *  for the current arch./compiler combination, see \ref atomic_ops.c
  */
 /* 
  * History:
@@ -38,9 +43,9 @@
 #ifndef __atomic_ops_init_h
 #define __atomic_ops_init_h
 
-/* init atomic ops */
+/*! \brief init atomic ops */
 int init_atomic_ops();
-/* destroy atomic ops (e.g. frees the locks, if locks are used) */
+/*! \brief destroy atomic ops (e.g. frees the locks, if locks are used) */
 void destroy_atomic_ops();
 
 #endif
diff --git a/basex.c b/basex.c
index 8846d8d..472c254 100644 (file)
--- a/basex.c
+++ b/basex.c
@@ -28,7 +28,7 @@
  */
 /*!
  * \file
- * \brief SIP-router core :: 
+ * \brief SIP-router core :: convert/decode to/from ascii using various bases
  * \ingroup core
  * Module: \ref core
  */
diff --git a/basex.h b/basex.h
index fea6e9a..0ea066c 100644 (file)
--- a/basex.h
+++ b/basex.h
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-/*
+/*!
+ * \file
+ * \brief SIP-router core :: convert/decode to/from ascii using various bases
+ *
+ * \ingroup core
+ *
+ * Module: \ref core
+ *
+ *
  * Functions:
- *  init_basex()                              - inits internal lookup tables
- *  HEX_HI(unsigned char c)                   - returns the first 4 bits of
- *                                              c converted to a hex digit
- *  HEX_LOW(unsigned char c)                  - returns the low 4 bits of
- *                                              c converted to a hex digit
- *  UNHEX(unsigned char hex_digit)            - converts hex_digit to a
+ *  - init_basex()                    : inits internal lookup tables
+ *  - HEX_HI(unsigned char c)         : returns the first 4 bits of c converted to a hex digit
+ *  - HEX_LOW(unsigned char c)         : returns the low 4 bits of converted to a hex digit
+ *  - UNHEX(unsigned char hex_digit)            : converts hex_digit to a
  *                                              number (0..15); it might
  *                                              return 0xff for invalid 
  *                                              digit (but with some compile
  *                                              option it won't check)
  *
- *  base16_enc(src, src_len, dst, dst_len)    - encode to standard hex
- *  base16_dec(src, src_len, dst, dst_len)    - decode from standard hex
- *  base16_enc_len(len)                       - length needed to encode len
- *                                              bytes (macro)
- *  base16_max_dec_len(len)                   - length needed to decode a 
- *                                              string of size len
+ *  - base16_enc(src, src_len, dst, dst_len)    : encode to standard hex
+ *  - base16_dec(src, src_len, dst, dst_len)    : decode from standard hex
+ *  - base16_enc_len(len)                       : length needed to encode len bytes (macro)
+ *  - base16_max_dec_len(len)                   : length needed to decode a string of size len
  *
- *  base64_enc(src, src_len, dst, dst_len)    - encode to base64, standard
- *                                              alphabet
- *  base64_dec(src, src_len, dst, dst_len)    - decode from base64, standard
- *                                              alphabet
- *  base64_enc_len(len)                       - length needed to encode
- *                                               len bytes (macro)
- *  base64_max_dec_len(len)                   - maximum length needed to
- *                                               decode len bytes (macro)
- *  base64_dec_len(str, len)                  - size of the decoded str 
+ *  - base64_enc(src, src_len, dst, dst_len)    : encode to base64, standard alphabet
+ *  - base64_dec(src, src_len, dst, dst_len)    : decode from base64, standard  alphabet
+ *  - base64_enc_len(len)                       : length needed to encode len bytes (macro)
+ *  - base64_max_dec_len(len)                   : maximum length needed to decode len bytes (macro)
+ *  - base64_dec_len(str, len)                  : size of the decoded str 
+ *  - q_base64_enc(src, src_len, dst, dst_len)  : encode to special base64 alphabet (non standard)
+ *  - q_base64_dec(src, src_len, dst, dst_len)  - decode from special non-standard base64 alphabet
  *
- *
- *  q_base64_enc(src, src_len, dst, dst_len)  - encode to special base64
- *                                              alphabet (non standard)
- *
- *  q_base64_dec(src, src_len, dst, dst_len)  - decode from special non-
- *                                              standard base64 alphabet
  *  All the above functions return the size used (in dst) on success and
  *   0 or a negative number (which is -1*size_needed) on error.
  *
@@ -65,6 +61,7 @@
  *  for some interesting tests and ideeas).
  *
  *  Test results for 40 bytes  (typical ser nounce) in average cpu cycles:
+<verbatim>
  *                    lookup   lookup_large lookup8k no-lookup
  *  base16_enc           211/231  218/199      -       1331
  *  base16_dec           252/251  236          -       1226
  *  q_base64_enc         -                              288
  *  q_base64_dec         -                              281
  *  (see test/basex.txt for more results)
+</verbatim>
  *
  * Defines:
- *  BASE64_LOOKUP_TABLE/NO_BASE64_LOOKUP_TABLE - use (default)/don't use
+ *  - BASE64_LOOKUP_TABLE/NO_BASE64_LOOKUP_TABLE : use (default)/don't use
  *     small lookup tables for conversions (faster in general).
- *  BASE64_LOOKUP_LARGE    - use large lookup tables (2560 bytes for 
+ *  - BASE64_LOOKUP_LARGE    : use large lookup tables (2560 bytes for 
  *    encoding and 256 bytes for decoding; without it 64 bytes are used for
  *    encoding and 85 bytes for decoding.
- *  BASE64_LOOKUP_8K - use even larger lookup tables (8K for encoding and
+ *  - BASE64_LOOKUP_8K : use even larger lookup tables (8K for encoding and
  *    256 for decoding); also try to write 2 bytes at a time (short) if
  *    the destination is 2 byte aligned
  *
- *  BASE16_LOOKUP_TABLE/NO_BASE16_LOOKUP_TABLE - use (default)/don't use
+ *  - BASE16_LOOKUP_TABLE/NO_BASE16_LOOKUP_TABLE : use (default)/don't use
  *     small lookup tables for conversions (faster in general).
- *  BASE16_LOOKUP_LARGE  - use large lookup tables (512 bytes for 
+ *  - BASE16_LOOKUP_LARGE  : use large lookup tables (512 bytes for 
  *    encoding and 256 bytes for decoding
- *  BASE16_READ_WHOLE_INTS - read an int at a time
+ *  - BASE16_READ_WHOLE_INTS : read an int at a time
  *
  * History:
  * --------
        defined BASE64_LOOKUP_8K
 #include "endianness.h"
 
-/* aligns p to a type* pointer, type must have a 2^k size */
+/*! \brief aligns p to a type* pointer, type must have a 2^k size */
 #define ALIGN_POINTER(p, type) \
        ((type*) ((long)((char*)(p)+sizeof(type)-1)&~(long)(sizeof(type)-1)))
 
 #ifdef BASE16_LOOKUP_TABLE
 
 #ifdef BASE16_LOOKUP_LARGE
-/* use large tables: 512 for lookup and 256 for decode */
+/*! \brief use large tables: 512 for lookup and 256 for decode */
 
 extern unsigned char _bx_hexdig_hi[256];
 extern unsigned char _bx_hexdig_low[256];
@@ -154,7 +152,7 @@ extern unsigned char _bx_unhexdig256[256];
 #define UNHEX(h)       _bx_unhexdig256[(h)]
 
 #else /* BASE16_LOOKUP_LARGE */
-/* use small tabes: 16 bytes for lookup and 32 for decode */
+/*! \brief use small tabes: 16 bytes for lookup and 32 for decode */
 
 extern unsigned char _bx_hexdig[16+1];
 
@@ -254,39 +252,40 @@ extern unsigned char _bx_ub64[0x54+1];
 
 
 
-/* lenght needed for encoding l bytes */
+/*! \brief lenght needed for encoding l bytes */
 #define base16_enc_len(l) (l*2)
-/* maximum lenght needed for decoding l bytes */
+/*! \brief maximum lenght needed for decoding l bytes */
 #define base16_max_dec_len(l) (l/2)
-/* actual space needed for decoding a string b of size l */
+/*! \brief actual space needed for decoding a string b of size l */
 #define base16_dec_len(b, l) base16_max_dec_len(l)
-/* minimum valid source len for decoding */
+/*! \brief minimum valid source len for decoding */
 #define base16_dec_min_len() 2
-/* minimum valid source len for encoding */
+/*! \brief minimum valid source len for encoding */
 #define base16_enc_min_len() 0
 
-/* space needed for encoding l bytes */
+/*! \brief space needed for encoding l bytes */
 #define base64_enc_len(l) (((l)+2)/3*4)
-/* maximum space needed for encoding l bytes */
+/*! \brief maximum space needed for encoding l bytes */
 #define base64_max_dec_len(l) ((l)/4*3)
-/* actual space needed for decoding a string b of size l, l>=4 */
+/*! \brief actual space needed for decoding a string b of size l, l>=4 */
 #define base64_dec_len(b, l) \
        (base64_max_dec_len(l)-((b)[(l)-2]=='=') -((b)[(l)-1]=='='))
-/* minimum valid source len for decoding */
+/*! \brief minimum valid source len for decoding */
 #define base64_dec_min_len() 4
-/* minimum valid source len for encoding */
+/*! \brief minimum valid source len for encoding */
 #define base64_enc_min_len() 0
 
 
 #ifdef BASE16_READ_WHOLE_INTS
 
-/* params: 
- * returns: size used from the output buffer (dst) on success,
+/*! 
+ * \params: 
+ * \return: size used from the output buffer (dst) on success,
  *          -size_needed on error
+ *
  * WARNING: the output string is not 0-term
  */
-inline static int base16_enc(unsigned char* src, int slen,
-                                                        unsigned char*  dst, int dlen)
+inline static int base16_enc(unsigned char* src, int slen, unsigned char*  dst, int dlen)
 {
        unsigned int* p;
        unsigned char* end;
@@ -454,10 +453,11 @@ inline static int base16_enc(unsigned char* src, int slen,
 #else /* BASE16_READ_WHOLE_INTS */
 
 
-/* params: 
- * returns: size used from the output buffer (dst) on success,
+/*!
+ * \return : size used from the output buffer (dst) on success,
  *          -size_needed on error
- * WARNING: the output string is not 0-term
+ *
+ * \note WARNING: the output string is not 0-term
  */
 inline static int base16_enc(unsigned char* src, int slen,
                                                         unsigned char*  dst, int dlen)
@@ -479,8 +479,7 @@ inline static int base16_enc(unsigned char* src, int slen,
 
 #endif /* BASE16_READ_WHOLE_INTS */
 
-inline static int base16_dec(unsigned char* src, int slen,
-                                                        unsigned char* dst, int dlen)
+inline static int base16_dec(unsigned char* src, int slen, unsigned char* dst, int dlen)
 {
        unsigned char* end;
        int osize;
@@ -498,8 +497,8 @@ inline static int base16_dec(unsigned char* src, int slen,
 
 
 
-/* helper internal function: encodes v (6 bits value)
- * returns char ascii encoding on success and 0xff on error
+/*! \brief helper internal function: encodes v (6 bits value)
+ * \return char ascii encoding on success and 0xff on error
  * (value out of range) */
 inline static unsigned char base64_enc_char(unsigned char v)
 {
@@ -519,8 +518,8 @@ inline static unsigned char base64_enc_char(unsigned char v)
        return 0xff;
 }
 
-/* helper internal function: decodes a base64 "digit",
- * returns value on success (0-63) and 0xff on error (invalid)*/
+/*! \brief helper internal function: decodes a base64 "digit",
+ * \return value on success (0-63) and 0xff on error (invalid)*/
 inline static unsigned base64_dec_char(unsigned char v)
 {
        switch(v){
@@ -557,10 +556,11 @@ inline static unsigned base64_dec_char(unsigned char v)
 
 
 #ifdef BASE64_LOOKUP_8K
-/* params: 
- * returns: size used from the output buffer (dst) on success ((slen+2)/3*4)
+/*!
+ * \return : size used from the output buffer (dst) on success ((slen+2)/3*4)
  *          -size_needed on error
- * WARNING: the output string is not 0-term
+ *
+ * \note WARNING: the output string is not 0-term
  */
 inline static int base64_enc(unsigned char* src, int slen,
                                                        unsigned char* dst,  int dlen)
@@ -614,10 +614,10 @@ inline static int base64_enc(unsigned char* src, int slen,
        return osize;
 }
 #else /*BASE64_LOOKUP_8K*/
-/* params: 
- * returns: size used from the output buffer (dst) on success ((slen+2)/3*4)
+/*! \brief Convert to base64
+ * \return size used from the output buffer (dst) on success ((slen+2)/3*4)
  *          -size_needed on error
- * WARNING: the output string is not 0-term
+ * \note WARNING: the output string is not 0-term
  */
 inline static int base64_enc(unsigned char* src, int slen,
                                                        unsigned char* dst,  int dlen)
@@ -655,10 +655,10 @@ inline static int base64_enc(unsigned char* src, int slen,
 
 
 
-/* params: 
- * returns: size used from the output buffer (dst) on success (max: slen/4*3)
+/*! \brief
+ * \return size used from the output buffer (dst) on success (max: slen/4*3)
  *          -size_needed on error or 0 on bad base64 encoded string
- * WARNING: the output string is not 0-term
+ * \note WARNING: the output string is not 0-term
  */
 inline static int base64_dec(unsigned char* src, int slen,
                                                        unsigned char* dst,  int dlen)
@@ -721,13 +721,12 @@ inline static int base64_dec(unsigned char* src, int slen,
 
 
 
-/*
- * same as base64_enc but with a different alphabet, that allows simpler and
+/*! \brief
+ * same as \ref base64_enc() but with a different alphabet, that allows simpler and
  *  faster enc/dec
- * params: 
- * returns: size used from the output buffer (dst) on success ((slen+2)/3*4)
+ * \return size used from the output buffer (dst) on success ((slen+2)/3*4)
  *          -size_needed on error
- * WARNING: the alphabet includes ":;<>?@[]\`", so it might not be suited
+ * \note WARNING: the alphabet includes ":;<>?@[]\`", so it might not be suited
  *  in all cases (e.g. encoding something in a sip uri).
  */
 inline static int q_base64_enc(unsigned char* src, int slen,
@@ -769,14 +768,13 @@ inline static int q_base64_enc(unsigned char* src, int slen,
 
 
 
-/*
- * same as base64_enc but with a different alphabet, that allows simpler and
+/*! \brief
+ * same as \ref base64_enc() but with a different alphabet, that allows simpler and
  *  faster enc/dec
- * params: 
- * params: 
- * returns: size used from the output buffer (dst) on success (max: slen/4*3)
+ *
+ * \return size used from the output buffer (dst) on success (max: slen/4*3)
  *          -size_needed on error or 0 on bad base64 encoded string
- * WARNING: the output string is not 0-term
+ * \note WARNING: the output string is not 0-term
  */
 inline static int q_base64_dec(unsigned char* src, int slen,
                                                        unsigned char* dst,  int dlen)
index 96279e9..6745bd7 100644 (file)
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-/*
+/*!
+ * \file
+ * \brief SIP-router core :: bit scan operations
+ * \ingroup core
+ * Module: \ref core
+ *
  *  bit scan operations
- *  int bit_scan_forward(unsigned long v)   - returns the index of the first
+ *
+ *  - int bit_scan_forward(unsigned long v)   - returns the index of the first
  *                                          set bit (undefined value if v==0)
- *  int bit_scan_forward32(unsigned int v)   - returns the index of the first
+ *  int bit_scan_forward32(unsigned int v)   - returns the index of the first
  *                                          set bit (undefined value if v==0)
- *  int bit_scan_forward64(long long v)      - returns the index of the first
+ *  int bit_scan_forward64(long long v)      - returns the index of the first
  *                                          set bit (undefined value if v==0)
- *  int bit_scan_reverse(unsigned long v)   - returns the index of the last
+ *  int bit_scan_reverse(unsigned long v)   - returns the index of the last
  *                                          set bit (undefined value if v==0)
- *  int bit_scan_reverse32(unsigned int v)  - returns the index of the last
+ *  int bit_scan_reverse32(unsigned int v)  - returns the index of the last
  *                                          set bit (undefined value if v==0)
- *  int bit_scan_reverse64(long long v)     - returns the index of the last
+ *  int bit_scan_reverse64(long long v)     - returns the index of the last
  *                                          set bit (undefined value if v==0)
  *
  * Config defines:   CC_GCC_LIKE_ASM  - the compiler support gcc style
@@ -46,7 +52,7 @@
 
 #include <limits.h>
 
-/* fix __CPU_i386 -> __CPU_x86 */
+/*! \brief fix __CPU_i386 -> __CPU_x86 */
 #if defined __CPU_i386 && ! defined __CPU_x86
 #define __CPU_x86
 #endif
@@ -59,7 +65,7 @@
 #endif
 
 
-/* set default bitscan versions, depending on the architecture
+/*! \brief set default bitscan versions, depending on the architecture
  * In general the order is  asm, debruijn, br, slow for bit_scan_forward
  *  and asm, br, slow, debruijn for bit_scan_reverse. */
 #ifdef BIT_SCAN_ASM
 #endif /* __CPU_XXX */
 
 
-/* try to use the right version for bit_scan_forward(unisgned long l)
+/*! \brief try to use the right version for bit_scan_forward(unisgned long l)
  */
 #if (defined (ULONG_MAX) && ULONG_MAX > 4294967295) || defined LP64
-/* long is 64 bits */
+/*! \brief long is 64 bits */
 #define bit_scan_forward(l)    bit_scan_forward64((unsigned long long)(l))
 #define bit_scan_reverse(l)    bit_scan_reverse64((unsigned long long)(l))
 
 #else
-/* long is 32 bits */
+/*! \brief long is 32 bits */
 #define bit_scan_forward(l)    bit_scan_forward32((l))
 #define bit_scan_reverse(l)    bit_scan_reverse32((l))
 #endif
 
 #ifdef BIT_SCAN_DEBRUIJN
 
-/* use a de Bruijn sequence to get the index of the set bit for a number
+/*! \brief use a de Bruijn sequence to get the index of the set bit for a number
  *  of the form 2^k (DEBRUIJN_HASH32() and DEBRUIJN_HASH64()).
  *  bit_scan_forward & bit_scan_reverse would need first to convert
  *  the argument to 2^k (where k is the first set bit or last set bit index)-
index 61772ba..574dcb2 100644 (file)
@@ -3,19 +3,14 @@
  *
  * Copyright (C) 2007 iptelorg GmbH
  *
- * This file is part of ser, a free SIP server.
+ * This file is part of SIP-router, a free SIP server.
  *
- * ser is free software; you can redistribute it and/or modify
+ * SIP-router 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,
+ * SIP-router 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.
@@ -31,7 +26,7 @@
  */
 /*!
  * \file
- * \brief SIP-router core :: 
+ * \brief SIP-router core ::  Core configuration
  * \ingroup core
  * Module: \ref core
  */
 #include "cfg_core.h"
 
 struct cfg_group_core default_core_cfg = {
-       L_WARN,         /*  print only msg. < L_WARN */
-       LOG_DAEMON,     /* log_facility -- see syslog(3) */
-       L_DBG,  /* memdbg */
+       L_WARN,         /*!<  print only msg. < L_WARN */
+       LOG_DAEMON,     /*!< log_facility -- see syslog(3) */
+       L_DBG,  /*!< memdbg */
 #ifdef USE_DST_BLACKLIST
        /* blacklist */
-       0, /* dst blacklist is disabled by default */
+       0, /*!< dst blacklist is disabled by default */
        DEFAULT_BLST_TIMEOUT,
        DEFAULT_BLST_MAX_MEM,
 #endif
        /* resolver */
 #ifdef USE_IPV6
-       1,  /* dns_try_ipv6 -- on by default */
+       1,  /*!< dns_try_ipv6 -- on by default */
 #else
-       0,  /* dns_try_ipv6 -- off, if no ipv6 support */
+       0,  /*!< dns_try_ipv6 -- off, if no ipv6 support */
 #endif
-       0,  /* dns_try_naptr -- off by default */
-       30,  /* udp transport preference (for naptr) */
-       20,  /* tcp transport preference (for naptr) */
-       10,  /* tls transport preference (for naptr) */
-       20,  /* sctp transport preference (for naptr) */
-       -1, /* dns_retr_time */
-       -1, /* dns_retr_no */
-       -1, /* dns_servers_no */
-       1,  /* dns_search_list */
-       1,  /* dns_search_fmatch */
-       0,  /* dns_reinit */
+       0,  /*!< dns_try_naptr -- off by default */
+       30,  /*!< udp transport preference (for naptr) */
+       20,  /*!< tcp transport preference (for naptr) */
+       10,  /*!< tls transport preference (for naptr) */
+       20,  /*!< sctp transport preference (for naptr) */
+       -1, /*!< dns_retr_time */
+       -1, /*!< dns_retr_no */
+       -1, /*!< dns_servers_no */
+       1,  /*!< dns_search_list */
+       1,  /*!< dns_search_fmatch */
+       0,  /*!< dns_reinit */
        /* DNS cache */
 #ifdef USE_DNS_CACHE
-       1,  /* use_dns_cache -- on by default */
-       0,  /* dns_cache_flags */
-       0,  /* use_dns_failover -- off by default */
-       0,  /* dns_srv_lb -- off by default */
-       DEFAULT_DNS_NEG_CACHE_TTL, /* neg. cache ttl */
-       DEFAULT_DNS_CACHE_MIN_TTL, /* minimum ttl */
-       DEFAULT_DNS_CACHE_MAX_TTL, /* maximum ttl */
-       DEFAULT_DNS_MAX_MEM, /* dns_cache_max_mem */
-       0, /* dns_cache_del_nonexp -- delete only expired entries by default */
+       1,  /*!< use_dns_cache -- on by default */
+       0,  /*!< dns_cache_flags */
+       0,  /*!< use_dns_failover -- off by default */
+       0,  /*!< dns_srv_lb -- off by default */
+       DEFAULT_DNS_NEG_CACHE_TTL, /*!< neg. cache ttl */
+       DEFAULT_DNS_CACHE_MIN_TTL, /*!< minimum ttl */
+       DEFAULT_DNS_CACHE_MAX_TTL, /*!< maximum ttl */
+       DEFAULT_DNS_MAX_MEM, /*!< dns_cache_max_mem */
+       0, /*!< dns_cache_del_nonexp -- delete only expired entries by default */
 #endif
 #ifdef PKG_MALLOC
-       0, /* mem_dump_pkg */
+       0, /*!< mem_dump_pkg */
 #endif
 #ifdef SHM_MEM
-       0, /* mem_dump_shm */
+       0, /*!< mem_dump_shm */
 #endif
-       DEFAULT_MAX_WHILE_LOOPS, /* max_while_loops */
-       0, /* udp_mtu (disabled by default) */
-       0, /* udp_mtu_try_proto -> default disabled */
-       0,  /* force_rport */
-       L_DBG, /* memlog */
-       1 /* mem_summary -flags: 0 off, 1 shm/pkg_status, 2 shm/pkg_sums */
+       DEFAULT_MAX_WHILE_LOOPS, /*!< max_while_loops */
+       0, /*!< udp_mtu (disabled by default) */
+       0, /*!< udp_mtu_try_proto -> default disabled */
+       0,  /*!< force_rport */
+       L_DBG, /*!< memlog */
+       1 /*!< mem_summary -flags: 0 off, 1 shm/pkg_status, 2 shm/pkg_sums */
 };
 
 void   *core_cfg = &default_core_cfg;
index b37aacc..a1124b9 100644 (file)
  * -------
  *  2007-12-03 Initial version (Miklos)
  */
+/*!
+ * \file
+ * \brief SIP-router core :: Core configuration
+ * \ingroup core
+ *
+ * Module: \ref core
+ */
+
 
 #ifndef _CFG_CORE_H
 #define _CFG_CORE_H
 
 extern void    *core_cfg;
 
+/*! \brief configuration default values */
 struct cfg_group_core {
        int     debug;
        int     log_facility;
-       int memdbg; /*< log level for memory debugging messages */
+       int memdbg; /*!< log level for memory debugging messages */
 #ifdef USE_DST_BLACKLIST
        /* blacklist */
-       int     use_dst_blacklist; /* 1 if blacklist is enabled */
-       unsigned int    blst_timeout; /* blacklist entry ttl */
-       unsigned int    blst_max_mem; /* maximum memory used for the
+       int     use_dst_blacklist; /*!< 1 if blacklist is enabled */
+       unsigned int    blst_timeout; /*!< blacklist entry ttl */
+       unsigned int    blst_max_mem; /*!< maximum memory used for the
                                        blacklist entries */
 #endif
        /* resolver */
@@ -87,11 +96,11 @@ struct cfg_group_core {
        int mem_dump_shm;
 #endif
        int max_while_loops;
-       int udp_mtu; /**< maximum send size for udp, if > try another protocol*/
-       int udp_mtu_try_proto; /**< if packet> udp_mtu, try proto (e.g. TCP) */
-       int force_rport; /**< if set rport will always be forced*/
-       int memlog; /*< log level for memory status/summary info */
-       int mem_summary; /**< display memory status/summary info on exit */
+       int udp_mtu; /*!< maximum send size for udp, if > try another protocol*/
+       int udp_mtu_try_proto; /*!< if packet> udp_mtu, try proto (e.g. TCP) */
+       int force_rport; /*!< if set rport will always be forced*/
+       int memlog; /*!< log level for memory status/summary info */
+       int mem_summary; /*!< display memory status/summary info on exit */
 };
 
 extern struct cfg_group_core default_core_cfg;
index 1bfebf3..737d5b7 100644 (file)
  * \file
  * \brief SIP-router core :: 
  * \ingroup core
+ *
  * Module: \ref core
+ *
+ * See \ref ConfigEngine
+ *
+ * \page ConfigEngine
+ * In file \ref cfg_parser.c 
+ * Configuration examples
+ * - \ref ConfigExample1
+ * - \ref ConfigExample2
+ * - \ref ConfigExample3
+ * - \ref ConfigExample4
+ * - \ref ConfigExample5
+ * - \ref ConfigExample6
+ * - \ref ConfigExample7
+ * - \ref ConfigExample8
+ *
+ * <b>Run-time Allocated Destination Variables</b>
+ * - the destination variable pointers in arrays are assigned at compile time
+ * - The address of variables allocated on the heap (typically in dynamically allocated
+ *   structures) is not know and thus we need to assign NULL initially and change the pointer
+ *   at runtime.
+ *   (provide an example).
+ *
+ * <b>Built-in parsing functions</b>
+ *
+ * *_val functions parse the whole option body (including =)
+ */
+
  */
 
 
-/** Example 1: Options without values
+/*! \page ConfigExample1  Configuration engine Example 1: Options without values
  *
+\verbatim
  *     str file = STR_STATIC_INIT("test.cfg");
  *     cfg_parser_t* parser;
  *     int feature_a = 0, feature_b = 0;
  *     }
  *
  *     cfg_parser_close(parser);
+\endverbatim
  */
 
-/** Example 2: Options with integer values
+/*! \page ConfigExample2  Configuration engine Example 2: Options with integer values
+\verbatim
  *     cfg_option_t options[] = {
  *             {"max_number",   .param = &max_number,   .f = cfg_parse_int_val },
  *             {"extra_checks", .param = &extra_checks, .f = cfg_parse_bool_val},
  *             {0}
  *     };
+\endverbatim
  */
 
-/** Example 3: Enum options
+/*! \page ConfigExample3 Configuration engine Example 3: Enum options
+\verbatim
  * int scope;
  *
  *     cfg_option_t scopes[] = {
  *             {"scope", .param = scopes, .f = cfg_parse_enum_val},
  *             {0}
  *     };
+\endverbatim
  */
 
-/** Example 4: Options with string values
- *     str filename = STR_NULL;
+/*! \page ConfigExample4 Configuration engine Example 4: Options with string values
+\verbatim
+*      str filename = STR_NULL;
  *
  *     cfg_option_t options[] = {
  *             {"filename", .param = &filename, .f = cfg_parse_str_val},
  *   by a subsequent call
  * - There are flags to tell the function to copy the resuting string in a pkg, shm, glibc,
  *   or static buffers
+\endverbatim
  */
 
-/** Example 5: Custom value parsing
+/*! \page ConfigExample5 Configuration engine Example 5: Custom value parsing
  * TBD
  */
 
-/** Example 6: Parsing Sections
+/*! \page ConfigExample6 Configuration engine Example 6: Parsing Sections
  * TBD
  */
 
-/** Example 7: Default Options
+/*! \page ConfigExample7 Configuration engine Example 7: Default Options
  * TBD
  */
 
-/** Example 8: Memory management of strings
- * - Data types with fixed size are easy, they can be copied into a pre-allocated memory
+/*! \page ConfigExample8 Configuration engine Example 8: Memory management of strings
+ *
+ * Data types with fixed size are easy, they can be copied into a pre-allocated memory
  * buffer, strings cannot because their length is unknown.
  */
 
-/** Run-time Allocated Destination Variables
- * - the destination variable pointers in arrays are assigned at compile time
- * - The address of variables allocated on the heap (typically in dynamically allocated
- *   structures) is not know and thus we need to assign NULL initially and change the pointer
- *   at runtime.
- *   (provide an example).
- */
-
-/** Built-in parsing functions
- * *_val functions parse the whole option body (including =)
- */
-
 #include "cfg_parser.h"
 
 #include "mem/mem.h"
 #include <libgen.h>
 
 
-/* The states of the lexical scanner */
+/*! \brief The states of the lexical scanner */
 enum st {
-       ST_S,  /**< Begin */
-       ST_A,  /**< Alphanumeric */
-       ST_AE, /**< Alphanumeric escaped */
-       ST_Q,  /**< Quoted */
-       ST_QE, /**< Quoted escaped */
-       ST_C,  /**< Comment */
-       ST_CE, /**< Comment escaped */
-       ST_E,  /**< Escaped */
+       ST_S,  /*!< Begin */
+       ST_A,  /*!< Alphanumeric */
+       ST_AE, /*!< Alphanumeric escaped */
+       ST_Q,  /*!< Quoted */
+       ST_QE, /*!< Quoted escaped */
+       ST_C,  /*!< Comment */
+       ST_CE, /*!< Comment escaped */
+       ST_E,  /*!< Escaped */
 };
 
 
-/* Test for alphanumeric characters */
+/*! \brief Test for alphanumeric characters */
 #define IS_ALPHA(c) \
     (((c) >= 'a' && (c) <= 'z') || \
      ((c) >= 'A' && (c) <= 'Z') || \
@@ -163,7 +188,7 @@ enum st {
      (c) == '_')
 
 
-/* Test for delimiter characters */
+/*! \brief Test for delimiter characters */
 #define IS_DELIM(c) \
     ((c) == '=' || \
      (c) == ':' || \
@@ -188,7 +213,7 @@ enum st {
      (c) == '\'')
 
 
-/* Whitespace characters */
+/*! \brief Whitespace characters */
 #define IS_WHITESPACE(c) ((c) == ' ' || (c) == '\t' || (c) == '\r') 
 #define IS_QUOTE(c)      ((c) == '\"')  /* Quote characters */
 #define IS_COMMENT(c)    ((c) == '#')   /* Characters that start comments */
@@ -196,9 +221,8 @@ enum st {
 #define IS_EOL(c)        ((c) == '\n')  /* End of line */
 
 
-/*
- * Append character to the value of current
- * token
+/*! \brief
+ * Append character to the value of current token
  */
 #define PUSH(c)                            \
     if (token->val.len >= MAX_TOKEN_LEN) { \
@@ -213,7 +237,7 @@ enum st {
     token->val.s[token->val.len++] = (c);
 
 
-/*
+/*! \brief
  * Return current token from the lexical analyzer
  */
 #define RETURN(c)               \
@@ -224,7 +248,7 @@ enum st {
     return 0;
 
 
-/*
+/*! \brief
  * Get next character and update counters
  */
 #define READ_CHAR      \
index 648b438..d11e8c5 100644 (file)
  * with this program; if not, write to the Free Software Foundation, Inc., 
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
+/*!
+ * \file
+ * \brief SIP-router core :: Standalone Configuration File Parser
+ *
+ * \ingroup core
+ * Module: \ref core
+ *
+ * See \ref ConfigEngine
+ */
 
 #ifndef _CFG_PARSER_H
 #define _CFG_PARSER_H
 #include "str.h"
 #include <stdio.h>
 
-#define MAX_TOKEN_LEN 512 /**< Token names cannot be longer than this value */
+#define MAX_TOKEN_LEN 512 /*!< Token names cannot be longer than this value */
 
 
+/*! \brief Configuration flags */
 typedef enum cfg_flags {
-       /** Extended tokens can contain also delimiters, in addition to
+       /*! \brief Extended tokens can contain also delimiters, in addition to
         * alpha-numeric characters, this is used on the righ side of assignments
         * where no quotes are used.
         */
        CFG_EXTENDED_ALPHA = (1 << 0),
 
-       /** The parser performs case-insensitive comparisons of token strings by
+       /*! \brief The parser performs case-insensitive comparisons of token strings by
         * default. The parser will use case-sensitive comparison instead if this
         * flag is set.
         */
        CFG_CASE_SENSITIVE = (1 << 1), 
 
-       /** This is a flag that can be set in the last element of cfg_option
+       /*! \brief This is a flag that can be set in the last element of cfg_option
         * arrays (this is the one with 0 as token name). When this flag is set
         * then the value or parsing function of the element will be used for
         * options that do not match any other element in the array.
@@ -52,30 +62,30 @@ typedef enum cfg_flags {
        CFG_DEFAULT = (1 << 2),
 
 
-       /** When this flag is set then the name of the options is a prefix and all
+       /*! \brief When this flag is set then the name of the options is a prefix and all
         * options that have the same prefix will be matched by this entry.
         */
        CFG_PREFIX = (1 << 3),
 
-       /** The result of cfg_parse_str_val will be in a buffer allocated by
+       /*! \brief The result of cfg_parse_str_val will be in a buffer allocated by
         * pkg_malloc, if the destination varaiable contains a pointer to a buffer
         * already then it will be freed with pkg_free first.
         */
        CFG_STR_PKGMEM = (1 << 4),
 
-       /** The result of cfg_parse_str_val will be in a buffer allocated by
+       /*! \brief The result of cfg_parse_str_val will be in a buffer allocated by
         * shm_malloc, if the destination variable contains a pointer to a buffer
         * already then it will be freed with shm_free first.
         */
        CFG_STR_SHMMEM = (1 << 5),
 
-       /** The result of cfg_parse_str_val will be in a buffer allocated by
+       /*! \brief The result of cfg_parse_str_val will be in a buffer allocated by
         * malloc, if the destination variable contains a pointer to a buffer
         * already then it will be freed with free first.
         */
        CFG_STR_MALLOC = (1 << 6),
 
-       /** The result of cfg_parse_str_val will be copied into a pre-allocated
+       /*! \brief The result of cfg_parse_str_val will be copied into a pre-allocated
         * buffer with a fixed size, a pointer to str variable which contains the
         * buffer and its size is passed to the function in parameter 'param'.
         */
@@ -91,14 +101,14 @@ enum cfg_token_type {
 };
 
 
-/** Structure representing a lexical token */
+/*! \brief Structure representing a lexical token */
 typedef struct cfg_token {
        char buf [MAX_TOKEN_LEN];
-       int type;  /**< Token type */
-       str val;   /**< Token value */
-       struct {   /**< Position of first and last character of token in file */
-               int line; /**< The starting/ending line of the token */
-               int col;  /**< The starting/ending column of the token */
+       int type;  /*!< Token type */
+       str val;   /*!< Token value */
+       struct {   /*!< Position of first and last character of token in file */
+               int line; /*!< The starting/ending line of the token */
+               int col;  /*!< The starting/ending column of the token */
        } start, end;
 } cfg_token_t;
 
@@ -109,31 +119,32 @@ typedef int (*cfg_func_f)(void* param, struct cfg_parser* st,
                                                  unsigned int flags);
 
 
-/** Token mapping structure.
+/*! \brief Token mapping structure.
+ *
  * This structure is used to map tokens to values or function calls. Arrays of
  * such structures are typically provided by the caller of the parser.
  */
 typedef struct cfg_option {
-       char* name;    /**< Token name */
+       char* name;    /*!< Token name */
        unsigned int flags;
-       void* param;   /**< Pointer to the destination variable */
-       int val;       /**< Value */
-       cfg_func_f f;  /**< Parser function to be called */
+       void* param;   /*!< Pointer to the destination variable */
+       int val;       /*!< Value */
+       cfg_func_f f;  /*!< Parser function to be called */
 } cfg_option_t;
 
 
-/* Parser state */
+/*! \brief Parser state */
 typedef struct cfg_parser {
-       FILE* f;                 /**< Handle of the currently open file */
-       char* file;              /**< Current file name */
-       int line;                /**< Current line */
-       int col;                 /**< Column index */
-       struct cfg_option* options; /**< Array of supported options */
+       FILE* f;                 /*!< Handle of the currently open file */
+       char* file;              /*!< Current file name */
+       int line;                /*!< Current line */
+       int col;                 /*!< Column index */
+       struct cfg_option* options; /*!< Array of supported options */
        struct {
-               cfg_func_f parser;   /**< Section parser function */
-               void* param;         /**< Parameter value for the parser function */
+               cfg_func_f parser;   /*!< Section parser function */
+               void* param;         /*!< Parameter value for the parser function */
        } section;
-       struct cfg_token* cur_opt; /**< Current option */
+       struct cfg_token* cur_opt; /*!< Current option */
 } cfg_parser_t;
 
 
@@ -151,7 +162,7 @@ void cfg_parser_close(struct cfg_parser* st);
 
 struct cfg_option* cfg_lookup_token(struct cfg_option* options, str* token);
 
-/*Interface to the lexical scanner */
+/*! ! \briefInterface to the lexical scanner */
 int cfg_get_token(struct cfg_token* token, struct cfg_parser* st, unsigned int flags);
 
 /* Commonly needed parser functions */
@@ -160,13 +171,13 @@ int cfg_eat_equal(struct cfg_parser* st, unsigned int flags);
 
 int cfg_eat_eol(struct cfg_parser* st, unsigned int flags);
 
-/* Parse section identifier of form [section]. The function expects parameter
+/*! \brief Parse section identifier of form [section]. The function expects parameter
  * param to be of type (str*). The result string is allocated using pkg_malloc
  * and is zero terminated. To free the memory use pkg_free(((str*)param)->s)
  */
 int cfg_parse_section(void* param, struct cfg_parser* st, unsigned int flags);
 
-/* Parse string parameter value, either quoted or unquoted */
+/*! \brief Parse string parameter value, either quoted or unquoted */
 int cfg_parse_str_opt(void* param, struct cfg_parser* st, unsigned int flags);
 
 int cfg_parse_str(void* param, struct cfg_parser* st, unsigned int flags);
@@ -175,12 +186,12 @@ int cfg_parse_enum_opt(void* param, struct cfg_parser* st, unsigned int flags);
 
 int cfg_parse_enum(void* param, struct cfg_parser* st, unsigned int flags);
 
-/* Parser integer parameter value */
+/*! \brief Parser integer parameter value */
 int cfg_parse_int_opt(void* param, struct cfg_parser* st, unsigned int flags);
 
 int cfg_parse_int(void* param, struct cfg_parser* st, unsigned int flags);
 
-/* Parse boolean parameter value */
+/*! \brief Parse boolean parameter value */
 int cfg_parse_bool_opt(void* param, struct cfg_parser* st, unsigned int flags);
 
 int cfg_parse_bool(void* param, struct cfg_parser* st, unsigned int flags);
diff --git a/clist.h b/clist.h
index f10c104..4bc32c6 100644 (file)
--- a/clist.h
+++ b/clist.h
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+/*!
+ * \file
+ * \brief SIP-router core :: circular list maintenance macros
+ *
+ * \ingroup core
+ * Module: \ref core
+ */
+
 /* History:
  * --------
  *  2005-08-08  created by andrei
 
 
 
-/* adds an entire sublist { s,e } (including s & e )
+/*! \brief adds an entire sublist { s,e } (including s & e )
  * after head
- * WARNING: clist_insert_sublist(head, n, n->prev) won't work,
+ *
+ * \note WARNING: clist_insert_sublist(head, n, n->prev) won't work,
  *          same for clist_insert_sublist(head, n->next, n)
  *  (macro!), use  e=n->prev; clist_insert_sublist(head, n, e, ...)
  *  instead!
@@ -61,8 +70,9 @@
 
 
 
-/* appends an entire sublist { s,e } (including s & e )
+/*! \brief appends an entire sublist { s,e } (including s & e )
  * at the end of the list
+ *
  * WARNING: clist_append_sublist(head, n, n->prev, ...) won't work,
  *  (macro!), use  e=n->prev; clist_append_sublist(head, n, e, ...)
  *  instead!
@@ -78,7 +88,7 @@
 
 
 
-/* remove sublist { s,e } (including s & e )
+/*! \brief remove sublist { s,e } (including s & e )
  * always, if start is the beginning of the list use
  * clist_rm_sublist(head->next, e, next, prev )
  * WARNING: clist_rm_sublist(n, n->prev, ...) won't work,
 
 
 
-/* insert after (head) */
+/*! \brief insert after (head) */
 #define clist_insert(head, c, next, prev) \
        clist_insert_sublist(head, c, c, next, prev)
 
 
 
-/* append at the end of the list (head->prev) */
+/*! \brief  append at the end of the list (head->prev) */
 #define clist_append(head, c, next, prev) \
        clist_append_sublist(head, c, c, next, prev)
 
 
 
-/* remove and element */
+/*! \brief  remove and element */
 #define clist_rm(c, next, prev) \
        clist_rm_sublist(c, c, next, prev)
 
 
 
-/* iterate on a clist */
+/*! \brief  iterate on a clist */
 #define clist_foreach(head, v, dir) \
        for((v)=(head)->dir; (v)!=(void*)(head); (v)=(v)->dir)
 
-/* iterate on a clist, safe version (requires an extra bak. var)
+/*! \brief  iterate on a clist, safe version (requires an extra bak. var)
  * (it allows removing of the current element) */
 #define clist_foreach_safe(head, v, bak,  dir) \
        for((v)=(head)->dir, (bak)=(v)->dir; (v)!=(void*)(head); \
index fd39638..6cd4702 100644 (file)
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-/*
- * compiler specific optimizations:
- * --------------------------------
+/*!
+ * \file
+ * \brief SIP-router core :: Compiler specific optimizations
+ * \see \ref CompilerOptions
+ *
+ * \ingroup core
+ * Module: \ref core
  *
- *   likely(expr)         - branch predicition optimization - is more likely
+ * \page CompilerOptions compiler specific optimizations:
+ *
+\verbatim
+ *   - likely(expr)         - branch predicition optimization - is more likely
  *                          that expr value will be 1 so optimize for this 
  *                          case.
  *                          Example: if (likely(p!=NULL)) {... }
- *   unlikely(expr)       - branch prediction optimization - is unlikely that 
+ *   unlikely(expr)       - branch prediction optimization - is unlikely that 
  *                          expr will be true, so optimize for this case
- *   prefetch(addr)        - will prefetch addr. for reading
- *   prefetch_w(addr)      - will prefetch addr. for writing
- *   prefetch_loc_r(addr, loc) - prefetch for reading, data at addr has
+ *   prefetch(addr)        - will prefetch addr. for reading
+ *   prefetch_w(addr)      - will prefetch addr. for writing
+ *   prefetch_loc_r(addr, loc) - prefetch for reading, data at addr has
  *                                no temporal locality (loc==0), a short
  *                                degree of temporal locality (loc==1), 
  *                                moderate (loc==2) or high (loc==3).
  *                                prefetch(addr) is equiv. to 
  *                                prefetch_loc_r(addr, 3).
  *  prefetch_loc_w(addr, loc) - like above but for writing.
+\endverbatim
  */
+
 /* 
  * History:
  * --------
index 09ec79a..907e47e 100644 (file)
--- a/config.h
+++ b/config.h
@@ -3,19 +3,14 @@
  *
  * Copyright (C) 2001-2003 FhG Fokus
  *
- * This file is part of ser, a free SIP server.
+ * This file is part of SIP-router, a free SIP server.
  *
- * ser is free software; you can redistribute it and/or modify
+ * SIP-router 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,
+ * SIP-router 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.
  *
  */
 
+/*!
+ * \file
+ * \brief SIP-router core :: Configuration options
+ *
+ * These settings are settable by the user before compilation
+ *
+ * \ingroup core
+ * Module: \ref core
+ */
 
 
 
 
 #include "types.h"
 
-/* default sip port if none specified */
-#define SIP_PORT  5060
-#define SIPS_PORT 5061
+#define SIP_PORT  5060 /*!< default SIP port if none specified */
+#define SIPS_PORT 5061 /*!< default SIP port for TLS if none specified */
 
 #define CFG_FILE CFG_DIR NAME ".cfg"
 
-#define TLS_PKEY_FILE "cert.pem" 
-#define TLS_CERT_FILE "cert.pem"
-#define TLS_CA_FILE 0 /* no CA list file by default */
+#define TLS_PKEY_FILE "cert.pem"       /*!< The certificate private key file */
+#define TLS_CERT_FILE "cert.pem"       /*!< The certificate file */
+#define TLS_CA_FILE 0                  /*!< no CA list file by default */
 
 
-/* maximum number of addresses on which we will listen */
-#define MAX_LISTEN 16
+#define MAX_LISTEN 16                  /*!< maximum number of addresses on which we will listen */
 
-/* default number of child processes started */
-#define CHILD_NO    8
+#define CHILD_NO    8                  /*!< default number of child processes started */
 
-#define RT_NO 2 /* routing tables number */
-#define FAILURE_RT_NO RT_NO /* on_failure routing tables number */
-#define ONREPLY_RT_NO RT_NO /* on_reply routing tables number */
-#define BRANCH_RT_NO RT_NO /* branch_route routing tables number */
-#define ONSEND_RT_NO 1  /* onsend_route routing tables number */
-#define EVENT_RT_NO RT_NO /* event_route routing tables number */
-#define DEFAULT_RT 0 /* default routing table */
+#define RT_NO 2                        /*!< routing tables number */
+#define FAILURE_RT_NO RT_NO            /*!< on_failure routing tables number */
+#define ONREPLY_RT_NO RT_NO            /*!< on_reply routing tables number */
+#define BRANCH_RT_NO RT_NO             /*!< branch_route routing tables number */
+#define ONSEND_RT_NO 1                 /*!< onsend_route routing tables number */
+#define EVENT_RT_NO RT_NO              /*!< event_route routing tables number */
+#define DEFAULT_RT 0                   /*!< default routing table */
 
-#define MAX_REC_LEV 100 /* maximum number of recursive calls */
-#define ROUTE_MAX_REC_LEV 100 /* maximum number of recursive calls
-                                                          for route()*/
+#define MAX_REC_LEV 100                /*!< maximum number of recursive calls */
+#define ROUTE_MAX_REC_LEV 100          /*!< maximum number of recursive calls for route()*/
 
-#define MAX_URI_SIZE 1024      /* used when rewriting URIs */
+#define MAX_URI_SIZE 1024              /*!< Max URI size used when rewriting URIs */
 
-#define MAX_PATH_SIZE 256 /* Maximum length of path header buffer */
+#define MAX_PATH_SIZE 256              /*!< Maximum length of path header buffer */
 
 #define MY_VIA "Via: SIP/2.0/UDP "
 #define MY_VIA_LEN (sizeof(MY_VIA) - 1)
 
 #define SRV_MAX_PREFIX_LEN SRV_TLS_PREFIX_LEN
 
-/*used only if PKG_MALLOC is defined*/
-#define PKG_MEM_POOL_SIZE 4*1024*1024
+#define PKG_MEM_POOL_SIZE 4*1024*1024          /*!< used only if PKG_MALLOC is defined*/
 
-/*used if SH_MEM is defined*/
-#define SHM_MEM_SIZE 32
+#define SHM_MEM_SIZE 32                                /*!< used if SH_MEM is defined*/
 
 
 /* dimensioning buckets in q_malloc */
-/* size of the size2bucket table; everything beyond that asks for
+/*! \brief size of the size2bucket table; everything beyond that asks for
    a variable-size kilo-bucket
  */
 #define MAX_FIXED_BLOCK         3072
-/* distance of kilo-buckets */
-#define BLOCK_STEP                      512
-/* maximum number of possible buckets */
-#define MAX_BUCKET             15
+#define BLOCK_STEP              512            /*!< distance of kilo-buckets */
+#define MAX_BUCKET             15              /*!< maximum number of possible buckets */
 
-/* receive buffer size -- preferably set low to
+/*! \brief receive buffer size -- preferably set low to
    avoid terror of excessively huge messages; they are
    useless anyway
 */
 #define BUF_SIZE 65535
 
-/* forwarding  -- Via buffer dimensioning */
-#define MAX_VIA_LINE_SIZE      240
-#define MAX_RECEIVED_SIZE      57
-#define MAX_RPORT_SIZE         13
+#define MAX_VIA_LINE_SIZE      240     /*!< forwarding  -- Via buffer dimensioning */
+#define MAX_RECEIVED_SIZE      57      /*!< forwarding  -- Via buffer dimensioning - Received header */
+#define MAX_RPORT_SIZE         13      /*!< forwarding  -- Via buffer dimensioning - Rport */
 
-/* maximum number of branches per transaction */
-#define MAX_BRANCHES    12
+#define MAX_BRANCHES           12      /*!< maximum number of branches per transaction */
 
-/* max length of the text of fifo 'print' command */
-#define MAX_PRINT_TEXT 256
+#define MAX_PRINT_TEXT                 256     /*!< max length of the text of fifo 'print' command */
 
-/* maximum length of Contact header field in redirection replies */
-#define MAX_REDIRECTION_LEN 512
+#define MAX_REDIRECTION_LEN    512     /*!< maximum length of Contact header field in redirection replies */
 
-/* used by FIFO statistics in module to terminate line;
+/*! \brief used by FIFO statistics in module to terminate line;
    extra whitespaces are used to overwrite remainders of
    previous line if longer than current one
 */
 #define CLEANUP_EOL "      \n"
 
-/* magic cookie for transaction matching as defined in RFC3261 */
-#define MCOOKIE "z9hG4bK"
+#define MCOOKIE "z9hG4bK"              /*!< magic cookie for transaction matching as defined in RFC3261 */
 #define MCOOKIE_LEN (sizeof(MCOOKIE)-1)
-/* Maximum length of values appended to Via-branch parameter */
+/*! \brief Maximum length of values appended to Via-branch parameter */
 #define MAX_BRANCH_PARAM_LEN  (MCOOKIE_LEN+8 /*int2hex*/ + 1 /*sep*/ + \
                                                                MD5_LEN /* max(int2hex, MD5_LEN) */ \
                                                                + 1 /*sep*/ + 8 /*int2hex*/ + \
                                                                1 /*extra space, needed by t_calc_branch*/)
 
-#define DEFAULT_SER_KILL_TIMEOUT 60 /* seconds */
+#define DEFAULT_SER_KILL_TIMEOUT 60    /*!< Kill timeout : seconds */
 
-/* maximum path length */
-#define PATH_MAX_GUESS 1024
+#define PATH_MAX_GUESS 1024            /*!< maximum path length */
 
 #ifdef OPENSER_MOD_INTERFACE
        #define DEFAULT_DB_URL "mysql://openser:openserrw@localhost/openser"
        #define DEFAULT_RODB_URL_LEN (sizeof(DEFAULT_RODB_URL) - 1)
 #endif
 
-/* table holding versions of other ser tables */
-#define VERSION_TABLE "version"
-#define VERSION_COLUMN "table_version"
-#define TABLENAME_COLUMN "table_name"
+#define VERSION_TABLE "version"                        /*!< table holding versions of other ser tables */
+#define VERSION_COLUMN "table_version"         /*!< Column holding version number in version table */
+#define TABLENAME_COLUMN "table_name"          /*!< Column holding module name in version table */
 
-/* minimum packet size; smaller packets will be dropped silently */
-#define MIN_UDP_PACKET        32
+#define MIN_UDP_PACKET        32               /*!< minimum UDP packet size; smaller packets will be dropped silently */
 
-#define MIN_SCTP_PACKET  MIN_UDP_PACKET 
+#define MIN_SCTP_PACKET  MIN_UDP_PACKET        /*!< minimum size of SCTP packet */
 
-#define DEFAULT_RADIUS_CONFIG "/usr/local/etc/radiusclient/radiusclient.conf"
+#define DEFAULT_RADIUS_CONFIG "/usr/local/etc/radiusclient/radiusclient.conf"  /*!< Default FreeRadius configuration file */
 
 #define DEFAULT_DID "_default"
 
-/*  maximum allowed iterations for a while (to catch runaways) */
-#define DEFAULT_MAX_WHILE_LOOPS 100
+#define DEFAULT_MAX_WHILE_LOOPS 100            /*!< Maximum allowed iterations for a while (to catch runaways) */
 
 #endif
index b0a04b7..ad500ae 100644 (file)
@@ -3,19 +3,14 @@
  *
  * Copyright (C) 2005 iptelorg GmbH
  *
- * This file is part of ser, a free SIP server.
+ * This file is part of SIP-router, a free SIP server.
  *
- * ser is free software; you can redistribute it and/or modify
+ * SIP-router 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,
+ * SIP-router 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.
@@ -24,6 +19,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
+
 /*!
  * \file
  * \brief SIP-router core :: 
index ab90c9e..caebc17 100644 (file)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+/*!
+ * \file
+ * \brief SIP-router core :: 
+ * \ingroup core
+ * Module: \ref core
+ */
+
 #ifndef _CORE_CMD_H
 #define _CORE_CMD_H
 
diff --git a/crc.c b/crc.c
index 8776db6..776b917 100644 (file)
--- a/crc.c
+++ b/crc.c
@@ -5,19 +5,14 @@
  *
  * Copyright (C) 2001-2003 FhG Fokus
  *
- * This file is part of ser, a free SIP server.
+ * This file is part of SIP-router, a free SIP server.
  *
- * ser is free software; you can redistribute it and/or modify
+ * SIP-router 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,
+ * SIP-router 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.
@@ -28,8 +23,9 @@
  */
 /*!
  * \file
- * \brief SIP-router core :: 
+ * \brief SIP-router core ::  Crc - 32 + 16 BIT ANSI X3.66 + CCITT CRC checksum files
  * \ingroup core
+ *
  * Module: \ref core
  */
 
index 16d73ce..dee40ee 100644 (file)
@@ -3,19 +3,14 @@
  *
  * Copyright (C) 2001-2003 FhG Fokus
  *
- * This file is part of ser, a free SIP server.
+ * This file is part of SIP-router, a free SIP server.
  *
- * ser is free software; you can redistribute it and/or modify
+ * SIP-router 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,
+ * SIP-router 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.
 
 #include <sys/types.h>
 
-#define _XOPEN_SOURCE   /* needed on linux for the  getpgid prototype,  but
+#define _XOPEN_SOURCE   /*!< needed on linux for the  getpgid prototype,  but
                            openbsd 3.2 won't include common types (uint a.s.o)
                            if defined before including sys/types.h */
-#define _XOPEN_SOURCE_EXTENDED /* same as above */
-#define __USE_XOPEN_EXTENDED /* same as above, overrides features.h */
-#define __EXTENSIONS__ /* needed on solaris: if XOPEN_SOURCE is defined
+#define _XOPEN_SOURCE_EXTENDED /*!< same as \ref _XOPEN_SOURCE */
+#define __USE_XOPEN_EXTENDED /*!< same as \ref _XOPEN_SOURCE, overrides features.h */
+#define __EXTENSIONS__ /*!< needed on solaris: if XOPEN_SOURCE is defined
                           struct timeval defintion from <sys/time.h> won't
                           be included => workarround define _EXTENSIONS_
                            -andrei */
@@ -86,7 +81,7 @@
 #define MAX_FD 32 /* maximum number of inherited open file descriptors,
                    (normally it shouldn't  be bigger  than 3) */
 
-/* daemon init, return 0 on success, -1 on error */
+/*! \brief daemon init, return 0 on success, -1 on error */
 int daemonize(char*  name)
 {
        FILE *pid_stream;
@@ -267,7 +262,7 @@ error:
 
 
 
-/* try to increase the open file limit */
+/*! \brief try to increase the open file limit */
 int increase_open_fds(int target)
 {
        struct rlimit lim;
@@ -321,7 +316,7 @@ error:
 
 
 
-/* enable core dumps */
+/*! \brief enable core dumps */
 int set_core_dump(int enable, int size)
 {
        struct rlimit lim;
@@ -376,7 +371,7 @@ error:
 
 
 
-/* lock pages in memory (make the process not swapable) */
+/*! \brief lock pages in memory (make the process not swapable) */
 int mem_lock_pages()
 {
 #ifdef HAVE_MLOCKALL
@@ -395,7 +390,7 @@ error:
 }
 
 
-/* tries to set real time priority 
+/*! \brief tries to set real time priority 
  * policy: 0 - SCHED_OTHER, 1 - SCHED_RR, 2 - SCHED_FIFO */
 int set_rt_prio(int prio, int policy)
 {
index d59d1b5..d1964d2 100644 (file)
@@ -3,19 +3,14 @@
  *
  * Copyright (C) 2001-2003 FhG Fokus
  *
- * This file is part of ser, a free SIP server.
+ * This file is part of SIP-router, a free SIP server.
  *
- * ser is free software; you can redistribute it and/or modify
+ * SIP-router 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,
+ * SIP-router 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.
index b995cea..024f602 100644 (file)
@@ -3,19 +3,14 @@
  *
  * Copyright (C) 2001-2003 FhG Fokus
  *
- * This file is part of ser, a free SIP server.
+ * This file is part of SIP-router, a free SIP server.
  *
- * ser is free software; you can redistribute it and/or modify
+ * SIP-router 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,
+ * SIP-router 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.
index fb3b829..1b91f40 100644 (file)
@@ -25,13 +25,13 @@ DOXYFILE_ENCODING      = UTF-8
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
 # by quotes) that should identify the project.
 
-PROJECT_NAME           = SER
+# --- Set by the SIP-router makefile
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number. 
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER         = 2.1
+# --- Set by the SIP-router makefile
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put.