[Pkg-voip-commits] r1351 - in ser/trunk: . debian

Mark Purcell msp at costa.debian.org
Sun Feb 26 17:43:33 UTC 2006


Author: msp
Date: 2006-02-26 17:43:32 +0000 (Sun, 26 Feb 2006)
New Revision: 1351

Removed:
   ser/trunk/AUTHORS
   ser/trunk/COPYING
   ser/trunk/CREDITS
   ser/trunk/CVS/
   ser/trunk/ChangeLog
   ser/trunk/INSTALL
   ser/trunk/ISSUES
   ser/trunk/Makefile
   ser/trunk/Makefile.defs
   ser/trunk/Makefile.modules
   ser/trunk/Makefile.radius
   ser/trunk/Makefile.rules
   ser/trunk/Makefile.sources
   ser/trunk/NEWS
   ser/trunk/README
   ser/trunk/README-MODULES
   ser/trunk/README.cfg
   ser/trunk/TODO
   ser/trunk/action.c
   ser/trunk/action.h
   ser/trunk/ccopts.sh
   ser/trunk/ccver.sh
   ser/trunk/cfg.lex
   ser/trunk/cfg.y
   ser/trunk/comp_defs.h
   ser/trunk/config.h
   ser/trunk/crc.c
   ser/trunk/crc.h
   ser/trunk/daemonize.c
   ser/trunk/daemonize.h
   ser/trunk/data_lump.c
   ser/trunk/data_lump.h
   ser/trunk/data_lump_rpl.c
   ser/trunk/data_lump_rpl.h
   ser/trunk/db/
   ser/trunk/doc/
   ser/trunk/dprint.c
   ser/trunk/dprint.h
   ser/trunk/dset.c
   ser/trunk/dset.h
   ser/trunk/error.c
   ser/trunk/error.h
   ser/trunk/etc/
   ser/trunk/examples/
   ser/trunk/fastlock.h
   ser/trunk/fifo_server.c
   ser/trunk/fifo_server.h
   ser/trunk/flags.c
   ser/trunk/flags.h
   ser/trunk/forward.c
   ser/trunk/forward.h
   ser/trunk/freebsd/
   ser/trunk/gentoo/
   ser/trunk/globals.h
   ser/trunk/hash_func.c
   ser/trunk/hash_func.h
   ser/trunk/ip_addr.c
   ser/trunk/ip_addr.h
   ser/trunk/lock_alloc.h
   ser/trunk/lock_ops.h
   ser/trunk/locking.h
   ser/trunk/lump_struct.h
   ser/trunk/main.c
   ser/trunk/md5.c
   ser/trunk/md5.h
   ser/trunk/md5global.h
   ser/trunk/md5utils.c
   ser/trunk/md5utils.h
   ser/trunk/mem/
   ser/trunk/mod_fix.h
   ser/trunk/modparam.c
   ser/trunk/modparam.h
   ser/trunk/modules/
   ser/trunk/msg_translator.c
   ser/trunk/msg_translator.h
   ser/trunk/name_alias.h
   ser/trunk/netbsd/
   ser/trunk/openbsd/
   ser/trunk/parser/
   ser/trunk/pass_fd.c
   ser/trunk/pass_fd.h
   ser/trunk/profile/
   ser/trunk/proxy.c
   ser/trunk/proxy.h
   ser/trunk/pt.h
   ser/trunk/qvalue.c
   ser/trunk/qvalue.h
   ser/trunk/re.c
   ser/trunk/re.h
   ser/trunk/receive.c
   ser/trunk/receive.h
   ser/trunk/resolve.c
   ser/trunk/resolve.h
   ser/trunk/route.c
   ser/trunk/route.h
   ser/trunk/route_struct.c
   ser/trunk/route_struct.h
   ser/trunk/rpm/
   ser/trunk/script_cb.c
   ser/trunk/script_cb.h
   ser/trunk/scripts/
   ser/trunk/ser.8
   ser/trunk/ser.cfg.5
   ser/trunk/socket_info.c
   ser/trunk/socket_info.h
   ser/trunk/solaris/
   ser/trunk/sr_module.c
   ser/trunk/sr_module.h
   ser/trunk/stats.c
   ser/trunk/stats.h
   ser/trunk/str.h
   ser/trunk/tags
   ser/trunk/tags.h
   ser/trunk/tcp_conn.h
   ser/trunk/tcp_init.h
   ser/trunk/tcp_main.c
   ser/trunk/tcp_read.c
   ser/trunk/tcp_server.h
   ser/trunk/test/
   ser/trunk/timer.c
   ser/trunk/timer.h
   ser/trunk/tmp/
   ser/trunk/trim.h
   ser/trunk/tsend.c
   ser/trunk/tsend.h
   ser/trunk/types.h
   ser/trunk/udp_server.c
   ser/trunk/udp_server.h
   ser/trunk/unixsock_server.c
   ser/trunk/unixsock_server.h
   ser/trunk/usr_avp.c
   ser/trunk/usr_avp.h
   ser/trunk/ut.h
   ser/trunk/utils/
   ser/trunk/version.h
Modified:
   ser/trunk/debian/changelog
   ser/trunk/debian/control
Log:
* Welcome to pkg-voip-maintainers

Deleted: ser/trunk/AUTHORS
===================================================================
--- ser/trunk/AUTHORS	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/AUTHORS	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,94 +0,0 @@
-# $Id: AUTHORS,v 1.13 2004/12/16 17:39:46 andrei Exp $
-# The format of this file was inspired by the Linux kernel CREDITS file.
-# 
-# Authors and contributors are listed alphabetically (first name).
-# 
-# The fields are: name (N), email (E), web-address (W), CVS account login (C),
-# PGP key ID and fingerprint (P), description (D), and snail-mail address (S).
-
-N: Andrei Pelinescu - Onciul
-C: andrei
-E: pelinescu-onciul at fokus.fraunhofer.de
-P: 2CF56A2D   D96D 8B80 BA31 9B93 6208  5D68 3910 FA00 2CF5 6A2D
-D: 
-
-N: Bogdan Andrei Iancu
-C: bogdan
-E:
-D:
-
-N: Daniel-Constantin Mierla
-C: dcm
-E: mierla at fokus.fraunhofer.de
-D:
-
-N: Gabriel Vasile
-C: gabriel
-E:
-D:
-
-N: Greg Fausak
-C: lgfausak
-E:
-D:
-
-N: Jan Janak
-C: janakj
-E: jan at iptel.org
-W: http://iptel.org/~janakj
-P: F8190A31   FCC0 3F4A 1ACB 84C2 505C  573E CC03 B08E F819 0A31
-D:
-
-N: Jamey Hicks
-C: jamey
-E: 
-D:
-
-
-N: Jiri Kuthan
-C: jiri
-E:
-D:
-
-N: Juha Heinanen
-C: jih
-E: jh at song.fi
-W: http://lohi.eng.song.fi
-D:
-
-N: Maxim Sobolev
-C: sobomax
-E:
-D:
-
-N: Miklos Tirpak
-C: tirpi
-E:
-D:
-
-N: Nils Ohlmeier
-C: calrissian, noh
-E: nils at iptel.org
-W: http://www.ohlmeier.org
-P: BAD6CA40   B5E7 4FB0 800F 0A2C E3E9  4073 C7C3 F275 BAD6 CA40
-D:
-
-N: Ramona-Elena Modroiu
-C: ramona
-E:
-D:
-
-N: Raphael Coeffic
-C: rco
-E: raphael.coeffic at gmx.de
-
-N: Ricardo Baratto
-C: ric
-E:
-D:
-
-N: Stelios Sidiroglou-Douskos
-C: ssi
-E:
-D:
-

Deleted: ser/trunk/COPYING
===================================================================
--- ser/trunk/COPYING	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/COPYING	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,320 +0,0 @@
-
--------------------------------------------------------------------------
-IMPORTANT NOTES
-
-1) The GPL applies to this copy of SIP Express Router software (ser).
-   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 at iptel.org
-
-   (see http://www.gnu.org/copyleft/gpl-faq.html#TOCHeardOtherLicense
-    for an explanation how parallel licenses comply with GPL)
-
-2) ser software allows programmers to plug-in external modules to the
-   core part. Note that GPL mandates all plug-ins developed for the
-   ser software released under GPL license to be GPL-ed as well.
-
-   (see http://www.gnu.org/copyleft/gpl-faq.html#GPLAndPlugins
-    for a detailed explanation)
-
-3) Note that the GPL bellow is copyrighted by the Free Software Foundation,
-   but the ser software is copyrighted by FhG
-
--------------------------------------------------------------------------
-
-GNU Licence FAQ 
-
-This FAQ provides answers to most frequently asked questions. To fully
-understand implications of the GNU license, read it.
-
-- you can run SER for any purpose
-- you can redistribute it as long as you include source code and
-  license conditions with the distribution
-- you cannot release programs derived from SER without releasing
-  their source code
-
-
--------------------------------------------------------------------------
-
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS

Deleted: ser/trunk/CREDITS
===================================================================
--- ser/trunk/CREDITS	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/CREDITS	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,36 +0,0 @@
-Current ser core team in alphabetical order as of 23 November 2004:
-
-Andrei Pelinescu - Onciul
-Bogdan Andrei Iancu
-Daniel-Constantin Mierla
-Jan Janak
-Jiri Kuthan
-
-
-Contributors:
-
-Adrian Georgescu
-Dan Pascu
-Greg Fausak
-Jamey Hicks
-Juha Heinanen
-Maxim Sobolev
-Miklos Tirpak
-Nils Ohlmeier
-Ramona-Elena Modroiu
-Raphael Coeffic
-
-
-Emeritus contributors (old ser contributors now off doing other things):
-
-Gabriel Vasile
-Ricardo Baratto
-Stelios Sidiroglou-Douskos
-
-
-Outstanding email support (ser users which helped a lot other people on 
-                           ser's mailing lists):
-
-Java Rockx
-Klaus Darilion
-Zeus Ng

Deleted: ser/trunk/ChangeLog
===================================================================
--- ser/trunk/ChangeLog	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ChangeLog	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,82 +0,0 @@
-================================= Release 0.9.6 ==============================
-
-2006-01-11  Jan Janak <jan at iptel.org>
-
-	* debian: Fixed config file checking in debian start script
-	
-	* tm: Added missing diversion header to SIP message cloner,
-	   this caused crash in diversion module, reported by Adrian
-	   Georgescu and Dan Pascu
-
-================================= Release 0.9.5 ==============================
-
-2005-12-14  Andrei Pelinescu-Onciul <andrei at iptel.org>
-
-        * core: malloc real_used/initial size accounting fixes (*realloc
-	    shrink accounting fix; initial size does not contain the 
-	    overhead anymore)
-	  DBG_F_MALLOC typo and warning fixes
-
-2005-12-06  Michal Matyska <michal at iptel.org>
-
-        * nathelper: Documentation of nat_uac_test had switched 
-	    descriptions of tests for flags 1 and 2.
-
-2005-12-06  Andrei Pelinescu-Onciul <andrei at iptel.org>
-
-        * tm: insert_timer used to eat too much cpu, decreasing dramatically
-	   the performance if lots of calls per second are made (unstable 
-	   test results: ~1500 cps w/o the bugfix and ~6000 with the bug fix)
-
-2005-12-06  Andrei Pelinescu-Onciul <andrei at iptel.org>
-
-        * core: fixed statements in ifs w/o {} 
-	     (now if (cond) a(); else b(); should work)
-	    fixed debug config printing
-
-2005-12-05  Jan Janak <jan at iptel.org>
-
-        * tm: fixed misplaced set_avp list, courtesy of 
-	      cesc.santa at gmail.com
-
-2005-12-02  Andrei Pelinescu-Onciul <andrei at iptel.org>
-
-        * makefiles: backport from unstable gcc version number 
-	    detections -- fixes gentoo gcc version detection 
-	    (thanks to Dennis Kisilyov) (closes SER-81)
-
-2005-11-29  Andrei Pelinescu-Onciul <andrei at iptel.org>
-
-        * core: int2reverse_hex/reverse_hex2int fixes 
-	    (tm with large "labels" was affected by it)
-
-2005-11-29  Jan Janak <jan at iptel.org>
-
-        * tm: Fixed local ACK matching, courtesy of
-	      cesc.santa at gmail.com
-
-2005-11-21  Jan Janak <jan at iptel.org>
-
-	* domain: Fixed hash problem (was not case-insensitive)
-	    reported and patch provided by
-	    Axel Böger <Axel.Boeger at freenet-ag.de>
-
-2005-11-01  Jan Janak <jan at iptel.org>
-
-        * domain: Free memory allocated for hash table entry in case
-	          of failure
-
-2005-10-04  Jan Janak <jan at iptel.org>
-	
-	* tm: timer avp race condition fix backported from head
-	* registrar: Race condition in registered function fixed (SER-79)
-
-2005-09-29  Jan Janak <jan at iptel.org>
-
-	* usrloc: Missing unlock_udomain added (SER-75)
-
-2005-09-05  Jan Janak <jan at iptel.org>
-
-	* tm: bugfix - terminate timers when canceling a transaction
-
-================================= Release 0.9.4 ==============================

Deleted: ser/trunk/INSTALL
===================================================================
--- ser/trunk/INSTALL	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/INSTALL	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,496 +0,0 @@
-$Id: INSTALL,v 1.40.2.1 2005/09/12 06:09:49 andrei Exp $
-
-
-     ===========================================
-
-     SIP Express Router (ser) Installation Notes
-
-             http://www.iptel.org/ser/
-
-     ===========================================
-
-  This memo gives you hints how to set up SER quickly. To 
-  understand how SER works and how to configure it properly,
-  read admin's guide available from SER website. We also
-  urge you to read latest ISSUES (available from SER website 
-  too) and check for potential problems in this release.
-  Users of previous releases are encouraged to read NEWS to
-  learn how to move to this new SER version.
-  
-
-TOC
-
-1. Supported Architectures and Requirements
-2. Howto Build ser From Source Distribution
-3. Quick-Start Installation Guide
-   A) Getting Help
-   B) Disclaimers
-   C) Quick Start
-   D) ser with Persistent Data Storage
-4. Troubleshooting
-
-
-
-1. Supported Architectures and Requirements
--------------------------------------------
-
-Supported operating systems: Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Darwin
-Supported architectures: i386, x86_64 (amd64), armv4l, sparc64, powerpc,
- powerpc64
-Experimental architectures: mips1, mips2, sparc32, alpha
-
-(for other architectures the Makefiles might need to be edited)
-
-There are various configuration options defined in the Makefile.
-
-
-Requirements:
-
-- gcc or icc : gcc >= 2.9x; 3.[12] recommended (it will work with older version
-  but it might require some options tweaking for best performance)
-- bison or yacc (Berkley yacc)
-- flex
-- GNU make (on Linux this is the standard "make", on *BSD and Solaris is
- called "gmake") version >= 3.79.
-- sed and tr (used in the makefiles)
-- GNU tar ("gtar" on Solaris) and gzip if you want "make tar" to work
-- GNU install, BSD install or Solaris install if you want "make
-  install", "make bin", "make sunpkg" to work
-- libmysqlclient & libz (zlib) if you want mysql support (the mysql module)
-- libexpat if you want the jabber gateway support (the jabber module)
-- libxml2 if you want to compile the cpl-c (CPL support) or pa (presence) 
-modules
-- libradiusclient-ng (> 5.0) if you need radius support (the auth_radius,
-group_radius, uri_radius and avp_radius modules)
-- libpq if you need postgres support (the postgres module)
-
-
-OS Notes:
-
- FreeBSD/OpenBSD/NetBSD: make sure gmake, bison or yacc & flex are installed.
-  
-  FreeBSD 5.4:
-  
-  If you want to compile all the modules, you will need the following packages:
-  - mysql-client-* (any version, install one of the mysql*-client ports) for
-  libmysqlclient
-  - postgresql-libpqxx-2.4.2_1 (/usr/ports/databases/postgresql-libpqxx) for
-  libpq
-  - expat-1.95.8 (/usr/ports/textproc/expat2) for libexpat
-  - libxml2-2.6.18 (/usr/ports/textproc/libxml2) for libxml2
-  - radiusclient-0.4.7 (/usr/ports/net/radiusclient) for libradiusclient-ng 
-  NOTE: you'll need to add radiusclient_ng=4 to the gmake command line if you
-  use the 0.4.* version.
-  
-  Compile example (all the modules and ser in a tar.gz):
-     gmake bin radiusclient_ng=4 include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
-
-  OpenBSD 3.7
-  - mysql-client-4.0.23 (/usr/ports/databases/mysql) for libmysqlclient
-  - expat-1.95.6 (/usr/ports/textproc/expat) for libexpat
-  - libxml-2.6.16p0 (/usr/ports/textproc/libxml) for libxml2
-  - radiusclient-ng-0.5.1 from 
-   http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.1.tar.gz
-   (you need to download and install it, since there is no "official" 
-   openbsd port for it) for libradiusclient-ng 
-  Compile example (all the modules and ser in a tar.gz):
-     gmake bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius pa"
-
-  NetBSD 2.0
-  - mysql-client-4.1.12 (/usr/pkgsrc/databases/mysql4-client) for libmysqlclient
-  - expat-1.95.8nb2 (/usr/pkgsrc/textproc/expat) for libexpat
-  - libxml2-2.6.19 (/usr/pkgsrc/textproc/libxml2) for libxml2
-  - radiusclient-ng-0.5.1 (see OpenBSD)
-  
-  Compile example (all the modules and ser in a tar.gz):
-     gmake bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius pa"
-
- Solaris 10
- 
-  As above; you can use Solaris's yacc instead of bison. You might
-  need also gtar and ginstall. If you don't have ginstall you can use Solaris
-  install, just make sure it's in the PATH (it's usually in /usr/sbin) and
-  add INSTALL=install either to the environment or to the make command line
-  (e.g.: gmake INSTALL=install all).
-  
-  Needed packages:
-  [TODO]
-  
-  Compile example (all the modules and ser in a tar.gz):
-     gmake bin INSTALL=install include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
-
- Linux
-
- Needed packages for compiling all the modules:
-  Debian:
-      - libmysqlclient-dev for libmysqlclient
-      - libpq-dev for libpq
-      - libexpat1-dev for libexpat
-      - libxml2-dev for libxml2
-      - libradiusclient-ng-dev for libradiusclient (you can download the 
-      package from http://apt.sip-router.org/debian/dists/unstable/main/binary-i386/libradiusclient-ng-dev_0.5.1-0.5_i386.deb ).
-      NOTE: you can get up-to-date ser packages or libradiusclient packages
-      from http://apt.sip-router.org: add to your /etc/apt/sources.list the
-      following lines:
-         deb http://apt.sip-router.org/debian testing main contrib non-free
-         deb http://apt.sip-router.org/debian unstable main contrib non-free
-      and then: apt-get update; apt-get install libradiusclient-ng-dev
-      (or, if you want to use the pre-built modules:
-       apt-get install ser ser-cpl-module ser-jabber-module ser-mysq-module ser-pa-module ser-postgres-module ser-radius-modules )
-
-
-  Compile example (all the modules and ser in a tar.gz):
-     make bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
-
-
-2. Howto Build ser From Source Distribution
--------------------------------------------
-
-
-(NOTE: if make doesn't work try gmake  instead)
-
-- compile with default options:
-
-make   #builds only ser core, equivalent to make ser
-make modules
-
-or make all #builds everything
-
-By default make all will not build modules that require external libraries or
-that are considered to be "experimental". The modules that have external
-dependecies are: mysql, jabber, cpl-c, auth_radius, group_radius, uri_radius,
-avp_radius, postgres, pa.
-To build all of them (provided you have all the required libraries installed) 
-use:
-    make all include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius avp_radius postgres pa"
-If you want to install or to build a binary package (a tar.gz with ser and
- the modules), substitute "all" in the above command with "install" or "bin".
-
-
-More compile examples:
-
-- compile with profiling
-
-make PROFILE=-pg all
-
--compile debug mode version
-
-make mode=debug all
-
--compile debug version with profiling
-
-make mode=debug PROFILE=-pg all
-
--compile only the print module
-
-make modules=modules/print modules
-
--compile all the "default" modules except textops and vm
-
-make skip_modules="textops vm" modules
-
--compile all default modules and include uri_radius (not compiled by default):
-
-make include_modules="uri_radius" modules
-
--compile all the modules from the modules subdirectory (even the one excluded
-by default):
-
-make exclude_modules="" modules
-
--compile all the modules from the modules subdirectory excluding vm:
-
-make exclude_modules=vm modules
-
-or
-
-make exclude_modules="" skip_modules=vm modules
-
-
--compile with the "tm" module statically linked and with profiling
-
-make static_modules=tm PROFILE=-pg all
-
--compile with gcc-3.2 instead of gcc
-
-make CC=gcc-3.2 all
-
-or
-
-CC=gcc-3.2 make all
-
-
-
-Make targets:
-
-Clean:
-
-make clean   (clean the modules too)
-make proper  (clean also the dependencies)
-make distclean (the same as proper)
-make mantainer-clean (clean everything, including auto generated files,
- tags, *.dbg a.s.o)
-
-Compile:
-
-make proper
-make
-(or gmake on non-Linux systems)
-make modules 
-or make modules exclude_modules="CVS print" etc.
-
-Make tags:
-
-make TAGS
-
-Create a tar.gz with the sources (in ../):
-
-make tar
-
-Create a tar.gz with the binary distribution (in ../):
-
-make bin
-
-Create a gzipped solaris package (in ../):
-
-make sunpkg
-
-Create debian packages (in ../):
-
-make deb
-
-or
-
-dpkg-buildpackage
-
-Install:
-
-make prefix=/usr/local  install
-
-Note: If you use prefix parameter in make install then you also need
-to use this parameter in previous make commands, i.e. make, make modules,
-or make all. If you fail to do this then SER will look for the default
-configuration file in a wrong directory, because the directory of the
-default configuration file is hard coded into ser during compile time. 
-When you use a different prefix parameter when installing then the 
-directory hard coded in ser and the directory in which the file will be 
-installed by make install will not match. (You can specify exact location
-of the configuration file using -f parameter of ser).
-
-For example, if you do the following:
-make all
-make prefix=/ install
-
-Then the installation will put the default configuration file into
-/etc/ser/ser.cfg (because prefix is /), but ser will look for the file
-in /usr/local/etc/ser/ser.cfg (because there was no prefix parameter
-in make all and /usr/local is the default value of prefix).
-
-Workaround is trivial, use the same parameters in all make commands:
-make prefix=/ all
-make prefix=/ install
-
-That applies to other make parameters as well (for example parameters
-"modules" or "excluded_modules").
-
-
-3. Quick-Start Installation Guide
-----------------------------------------------
-
-A) Getting Help
-
-This guide gives you instructions on how to set up the SIP Express 
-Router (ser) on your box quickly. In case the default configuration
-does not fly, check documentation at ser site
-  http://www.iptel.org/ser/
-to learn how to configure SER for your site.
-
-If the documentation does not resolve your problem you may try contacting 
-our user forum by E-mail at serusers at iptel.org -- that is the mailing list 
-of ser community. To participate in the mailing list, subscribe at the 
-following web address:
-  http://mail.iptel.org/mailman/listinfo/serusers
-
-To participate in our commercial support program, contact info at iptel.org.
-The support program will provide you with most timely and accurate help
-for configuration, integration, development and any other technical
-activity.
-
-
-B) Disclaimers
- 
-Note well the default "quick-start" configuration is very simple in order 
-to be easily installable. It provides minimum features. Particularly, 
-authentication is by default disabled, which means anyone can register using
-any name with the server. (This is on purpose to avoid installation 
-dependencies on MySQL which is needed for storing user credentials.)
-
-
-C) Quick Start
-
-The following step-by step guide gives you instructions how to install the 
-sql-free distribution of ser. If you need persistence and authentication, 
-then you have to install additional MySql support -- proceed to section D)
-after you are finished with C).
-
-1) Download an RPM or debian package from our site
-    http://www.iptel.org/ser
-If you don't use an rpm or debian based distribution, try our tar.gz'ed binaries
- (ser-$(version)_$(os)_$(arch).tar.gz, e.g: ser-0.8.8_linux_i386.tar.gz).
-If you use Solaris 8 you can try our solaris package.
-If you use Gentoo Linux you do not have to download a package.
-
-2) install the package
-RPM:
-    rpm -i <package_name>
-debian:
-    dpkg -i <package_name>
-gentoo:
-    emerge ser
-	(or if use only stable packets:
-	 ACCEPT_KEYWORDS="~x86" emerge ser)
-tar.gz:
-    cd /; tar zxvf <package_name>_os_arch.tar.gz
-    (it will install in /usr/local/, and the configuration file in
-     /usr/local/etc/ser/ser.cfg)
-Solaris:
-    gunzip <package_name>.gz ; pkgadd -d <package_name>
-*BSD:
-    pkg_add package_name
-    
-3) start the server
-RPM + gentoo:
-    /etc/init.d/ser start
-debian:
-    ser is started automatically after the install
-    (in case something fails you can start it with /etc/init.d/ser start)
-tar.gz:
-    the tar.gz does not include an init.d script, you'll have to create one of
-    your own or adapt one from the source distribution (debian/init.d,
-    rpm/ser.init.*, gentoo/ser.init)
-    You can start ser directly with /usr/local/sbin/ser.
-Solaris:
-    see tar.gz.
-    
-4) optionally, watch server's health using the
-   serctl utility
-    - to do so, first set the environment variable SIP_DOMAIN to your domain 
-      name, e.g., in Bourne shell, call
-        export SIP_DOMAIN="myserver.foobar.com"
-	- if you are using other than 'localhost' mysql server for maintaining
-	  subscriber database, change the variable 'SQL_HOST' to the proper
-	  host name in the serctl script
-    - run the serctl utility
-        /usr/sbin/serctl moni
-      or
-        /usr/local/sbin/serctl moni (if you installed from a tar.gz or solaris
-        package)
-
-5) Register with the server using your favorite
-   SIP User Agent. You may want to look at configuration
-   hints for use of iptel.org site at
-     http://www.iptel.org/phpBB/viewforum.php?forum=1&8
-   For example, users of Windows Messenger need to set
-   in Tools->Options->Accounts the following values:
-     Sign-in Name: <username>@<your_server_address>
-     Advanced->Configure Settings (on)
-     Advanced->Server: <your_server_address>
-     Connect Using: UDP
-
-
-
-D) ser with Persistent Data Storage
-
-The default configuration is very simple and features many simplifications. 
-In particular, it does not authenticate users and loses User Location database 
-on reboot. To provide persistence, keep user credentials and remember users' 
-locations across reboots, ser can be configured to use MySQL. Before you proceed, 
-you need to make sure MySQL is installed on your box. Your MySQL server must be 
-configured to deal with a large number of connection. To increase it, set the 
-following line in [mysqld] section of your configuration file:
-
-   set-variable    = max_connections=500
-
-1) Download the package containing mysql support for ser from: 
-    http://www.iptel.org/ser/
-    (rpm and deb provided, most of the binary tar.gz distributions and the 
-     solaris package include it; if it is not present you'll have to rebuild
-     from the source).
-	For gentoo please include 'mysql' to your USE variable in /etc/make.conf
-	or give it as variable to the emerge command.
-2) install the package
-    rpm -i <package_name>
-    or
-    dpkg -i <package_name>
-	or
-	emerge ser
-	(if do not want to put 'mysql' into your USE variable you can type:
-	 USE="mysql" emerge ser)
-3) create MySQL tables
-	- if you have a previously installed SER on your system, use
-    	/usr/sbin/ser_mysql.sh reinstall 
-	  to convert your SER database into new structures
-	- otherwise, if this is your very first installation, use
-    	/usr/sbin/ser_mysql.sh create
-	  to create SER database structures
-   (you will be prompted for password of MySql "root" user)
-4) configure ser to use SQL
-    uncomment all lines in configuration file ser.cfg which are related to 
-    authentication:
-    - loadmodule "/usr/lib/ser/modules/mysql.so"
-    - loadmodule "/usr/lib/ser/modules/auth.so"
-    - loadmodule "/usr/lib/ser/modules/auth_db.so"
-    - modparam("usrloc", "db_mode", 2)
-    - modparam("auth", "calculate_ha1", yes)
-    - modparam("auth_db", "password_column", "password")
-    - if (!www_authorize("iptel.org", "subscriber")) {
-        www_challenge("iptel.org", "0"); 
-        break;
-      }; 
-5) be sure to replace realm, the first parameter in www_* actions, 
-   with name of your server; some broken UAC implementations don't 
-   authenticate otherwise; the authentication command in your
-   configuration script should look then like this:
-      if (!www_authorize("myserver.foobar.com", "subscriber")) {
-        www_challenge("myserver.foobar.com", "0"); 
-        break;
-      }
-6) restart the server
-    /etc/init.d/ser restart
-7) you can now start  managing the server using the serctl utility; 
-   you need to first set the environment variable SIP_DOMAIN to your 
-   local SIP realm, e.g.,
-       export SIP_DOMAIN="myserver.foobar.com"
-
-   a) watch the server status using 'serctl moni'
-   b) try to login with your SIP client as user 'admin' with password 'heslo'
-   c) try adding new users using 
-       'serctl add <name> <password> <email>'
-
-
-4. Troubleshooting
-------------------
-
-Q: Windows Messenger authentication fails. 
-
-A: The most likely reason for this problem is a bug in Windows Messenger. 
-WM only authenticates if server name in request URI equals authentication 
-realm. After a challenge is sent by SIP server, WM does not resubmit the 
-challenged request at all and pops up authentication window again. If you 
-want to authenticate WM, you need to set up your realm value to equal server 
-name. If your server has no name, IP address can be used as realm too.
-
-Q: SIP requests are replied by ser with "483 Too Many Hops" or 
-   "513 Message Too Large"
-
-A: In both cases, the reason is probably an error in request routing script 
-   which caused an infinite loop. You can easily verify whether this happens 
-   by watching SIP traffic on loopback interface. A typical reason for misrouting 
-   is a failure to match local domain correctly. If a server fails to recognize 
-   a request for itself, it will try to forward it to current URI in believe it 
-   would forward them to a foreign domain. Alas, it forwards the request to itself 
-   again. This continues to happen until value of max_forwards header field reaches 
-   zero or the request grows too big. Solutions is easy: make sure that domain matching 
-   is correctly configured. A quick way to achieve that is to introduce a config
-   option to ser.cfg: alias=domainname, where domainname shall be replaced with
-   name of domain, which you wish to server and which appears in request-URIs.

Deleted: ser/trunk/ISSUES
===================================================================
--- ser/trunk/ISSUES	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ISSUES	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,236 +0,0 @@
-#
-# $Id: ISSUES,v 1.27 2004/08/24 08:45:09 janakj Exp $
-#
-
-This is a collection of issues which have shown up
-since the version 0.8.8 was released. The issues are
-ordered by numbers of ser versions to which they relate,
-beginning with the newest release. Issues related to
-operating systems are summarized in the bottom.
---------------------------------------------------------------
-Desc: ser crashes on startup if a group is specified (-g or group=)
-Ser version:  <=0.8.12
-Reason:  bad copy & paste :-)
-Patch: http://www.mobile-ip.de/~andrei/ser/main_group.patch
-Workaround: update from cvs or  apply the corresponding patch
-CVS status: fixed
---------------------------------------------------------------
-Desc: textops search REs like "^From" fail to match on RH8
-Ser version: all
-Reason: there is a bug in RH8 libc, this kind of REs will never match
-        in case insensitive mode
-Test:  compile test/re_test.c (gcc re_test.c -o re_test) and try
-        echo -e "From:\nTo:" |./re_test -v '^From'
-       if your system is ok you should see 1 match, if not (and 
-       your libc has this bug), 0 matches.
-Workaround: ?upgrade?
---------------------------------------------------------------
-Desc: textops REs match newline in constructs such [^@]
-Ser version: all 
-Reason: there is a bug in newer linux libc versions (at least in
-         Debian libc6 2.3.x, Gentoo 1.4 lib 2.3.2, RH8, RH9, Fedora)
-Test:  compile test/re_test.c (gcc re_test.c -o re_test) and try
-        echo -e "From:\nTo:" |./re_test -v '[^.]+'
-       if your system is ok you should see 2 matches, if not (and 
-       your libc has this bug), only 1 match.
-Workaround: - use an older or fixed libc6 or avoid [^something]
-             - rewrite [^something] as [^something[:cntrl:]]
----------------------------------------------------------------
-Desc: memory leaks occurs if SIP requests are processed in which
-      a Via header field occurs in end of header and includes
-      a parameter
-Ser version: 0.8.10
-Reason: parameter fragment is not linked to a list when EoH is
-        encountered
-Patch: http://www.iptel.org/ser/issues/via_ml_0810.patch
-CVS Status: fixed
----------------------------------------------------------------
-Desc: ser segfaults on receipt of some messages (occurs
-      rather rarely with a very high number of messages, 
-      typically during stress tests)
-Ser version: 0.8.10 and before
-Reason: valid TM label value 0 is considered mistakenly 
-        a special value
-Workaround: turn syn_branch config option off
-Patch: http://www.iptel.org/ser/issues/hash_fix.patch
-CVS Status: fixed
----------------------------------------------------------------
-Desc: serctl returns "read: Illegal option -s" for "add user"
-Ser version: 0.8.10 and before
-Reason: serctl's use of some shell script commands not portable
-Workaround: download serctl 1.45 and set SUBSCRIBER_COLUMN back
-            to user_id
-Download: http://cvs.berlios.de/cgi-bin/viewcvs.cgi/*checkout*/ser/sip_router/scripts/sc?rev=1.45
-CVS Status: fixed
----------------------------------------------------------------
-Desc: 3261 ACKs for 200s are consumed by stateful processing
-Ser version: 0.8.10
-Reason: 200/ACKs which happen to have the same transaction ID
-        as original INVITE were not distinguished from hbh
-        ACKs and consequently absorbed
-Patch: http://www.iptel.org/ser/issues/tid3261ack.patch
-Workaround: apply the patch to 0.8.10 sources
-CVS status: fixed
----------------------------------------------------------------
-Desc: on sparc machines, usage of mysql library causes a bus error
-Ser version: 0.8.10
-Reason: ser is compiled with DBG_QM_MALLOC, which mistakenly uses
-        only alignment of four (ROUNDTO) -- insufficient for sparc
-        boxes, mysql library uses long long
-Workaround: recompile with DBG_QM_MALLOC turned off or ROUNDTO redefined
-            to 8
-CVS status: fixed
----------------------------------------------------------------
-Desc: nonce validation doesn't work correctly on big endian machines.
-BugId: 498
-Ser version: 0.8.10
-Patch: http://iptel.org/~janakj/nonce.c.patch
-Workaround: Apply the patch to 0.8.10 sources
-CVS status: fixed
----------------------------------------------------------------
-Desc: ser 0.8.10 memory leak when an INVITE containing Route
-      header fields is received.
-      Symptoms: ser reports No memory left or crashes with BUG: qm_*: fragm.
-BugId:n/a
-Ser version: 0.8.10
-Patch: http://iptel.org/~janakj/invroute.patch
-Workaround: Apply the patch to 0.8.10 sources
-CVS status: fixed
----------------------------------------------------------------
-Desc: ser 0.8.10 fails to remove consumed verified credentials properly
-      and leaves characters in forwarded messages when consume_credentials
-      is used
-BugId:n/a
-Ser version: 0.8.10
-Module:     http://www.iptel.org/~jiri/ser/auth.tar.gz
-Workaround: compile the auth module newly from sources above or
-            don't remove credentials (they only harm in terms of
-            packet size)
-CVS status: fixed
----------------------------------------------------------------
-Desc: ser 0.8.10 and earlier versions crash if contact list
-      excessively long
-BugId: n/a
-Ser version: 0.8.8, 0.8.9, 0.8.10
-Patch: http://www.iptel.org/ser/security/secalert-002-0_8_10.patch
-Workaround: apply the patch to 0.8.10 sources
-CVS status: fixed 
----------------------------------------------------------------
-Desc:  ser 0.8.10 won't compile with bison 1.75
-BugId:  n/a
-Ser version: 0.8.8, 0.8.9, 0.8.10 
-Patch: 
- 0.8.10 http://www.mobile-ip.de/~andrei/ser/0.8.10/ser-0.8.10-bison-1.75.patch
- 0.8.9  http://www.mobile-ip.de/~andrei/ser/0.8.9/ser-0.8.9-bison-1.75.patch
-Workaround: update from cvs,  apply the corresponding patch or downgrade bison
-CVS status: fixed
----------------------------------------------------------------
-
-=================================================================================
-* ser 0.8.10 released, all the issues below this are fixed in ser 0.8.10, all the
-* issues above are not :-)
-=================================================================================
-
-Desc:  ser 0.8.9 won't log to stderr or syslog unless dontfork is set
-        (introduced when trying to fix bug 376)
-BugId:  n/a
-Ser version: =0.8.9 (0.8.8 is ok)
-Patch: http://www.mobile-ip.de/~andrei/ser/0.8.9/ser-0.8.9_log.patch
-Workaround: update from cvs or apply the patch.
-CVS status: fixed
----------------------------------------------------------------
-Desc: local domain mismatch resulting in infinite loops
-      (With default configuration and domain names in a request
-      URI's, ser may not match "owned domain" in the
-      script's uri==myself condition, consider the request to
-	  be for outside domain, and forward it to itself, resulting
-	  in an infinite loop and "482" returned back to UAC.)
-BugId: n/a
-Reason: aliases do not support reverse DNS lookups yet
-Workaround: Start ser with "alias=hostname" in config file
-CVS status: fixed
----------------------------------------------------------------
-Desc: sendto problems on FreeBSD
-      (when using tm sendto fails because of bad sockaddr len passed
-        to it)
-BugId: n/a
-Workaround:  update from cvs or  apply the following patch: 
-   http://www.mobile-ip.de/~andrei/ser/0.8.9/update_sock_struct_from_ip.patch
-CVS status:  fixed
----------------------------------------------------------------
-Desc: full ipv6 addresses (w/o ::) are converted to 0:0:0:0:0:0:0
-      (ser will listen on :: instead of the specified address)
-BugId: n/a
-Workaround: use ipv6 addresses w/ :: or compile ser without -DDNS_IP_HACK 
-            (Makefile.defs).
-CVS status: fixed
-
-================================================================================
-* ser 0.8.9 released, all the issues below this are fixed in ser 0.8.9, all the
-* issues above are not :-)
-================================================================================
-
-Desc: in default configuration, SER prints '127.0.0.1' in
-      Warning header field of all replies
-BugId: 372
-Workaround: use listen=<ip_address> in your configuration file;
-      that will make SER listen only on one interface (and not
-      on '127.0.0.1' in parallel) and advertise correct IP
-      address
-Bug reason: multiple listening address ignored in message
-      translator
-CVS status: fixed
----------------------------------------------------------------
-Desc: serctl add ... returns "user exists"
-BugId: 374
-Workaround: either use serweb for adding new users or update
-      the serctl utility from CVS; the fixed version is at
-      http://www.iptel.org/ser/issues/374/
-Bug reason: phplib_id ignored in sc
-CVS Status: fixed
----------------------------------------------------------------
-Desc: SMS, MSILO & JABBER modules fail to load because of unresolved
-dependency on im.so
-BugId: 375
-Workaround: change the makefiles & recompile  
-Bug reason: removal of RTLD_GLOBAL from dlopen.
-CVS status: fixed 
----------------------------------------------------------------
-Desc: when forking & std_error=yes no open FD is closed
-BugId: 376
-CVS status: fixed
----------------------------------------------------------------
-Desc: exec module missing in binary RPM distro
-BugId: -
-CVS status: fixed
-Workaround: compile from source distribution
----------------------------------------------------------------
-Desc: when debug=3 & iptel.cfg is used mysql module fails in submit_query.
-Workaround: use debug=9 or use log_stderr
-Reason: unknown
-BugId: 377
-Cvs status: not fixed
-
-
-================================================================================
-* OS-related issues
-================================================================================
-
-----------------------------------------------------------------
-Desc:  ser won't run on linux kernels <2.4  (fails with EINVAL when
-      initializing the shared memory)
-BugId:  n/a
-Ser version: 0.8.8, 0.8.9, 0.8.10 
-Workaround: Upgrade to a 2.4.* kernel (older kernels don't support shared 
-            mmaping of /dev/zero ) or recompile ser with SYSV shm instead of
-            mmap (remove -DSHM_MMAP from Makefile.defs)
-CVS status: n/a
----------------------------------------------------------------
-Desc: Solaris resolver memory leak
-	  (getipnodebyname on Solaris has a memory leak. unpatched
-	  solaris 8 installations will fail after processing 
-	  ~ 360000 requests)
-BugId: n/a
-CVS status: n/a
-Workaround: patch your Solaris OS
----------------------------------------------------------------

Deleted: ser/trunk/Makefile
===================================================================
--- ser/trunk/Makefile	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/Makefile	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,354 +0,0 @@
-# $Id: Makefile,v 1.136.2.5 2005/11/02 17:45:38 andrei Exp $
-#
-# sip_router makefile
-#
-# WARNING: requires gmake (GNU Make)
-#  Arch supported: Linux, FreeBSD, SunOS (tested on Solaris 8), OpenBSD (3.2),
-#  NetBSD (1.6).
-#
-#  History:
-#  --------
-#              created by andrei
-#  2003-02-24  make install no longer overwrites ser.cfg  - patch provided
-#               by Maxim Sobolev   <sobomax at FreeBSD.org> and 
-#                  Tomas Björklund <tomas at webservices.se>
-#  2003-03-11  PREFIX & LOCALBASE must also be exported (andrei)
-#  2003-04-07  hacked to work with solaris install (andrei)
-#  2003-04-17  exclude modules overwritable from env. or cmd. line,
-#               added include_modules and skip_modules (andrei)
-#  2003-05-30  added extra_defs & EXTRA_DEFS
-#               Makefile.defs force-included to allow recursive make
-#               calls -- see comment (andrei)
-#  2003-06-02  make tar changes -- unpacks in $NAME-$RELEASE  (andrei)
-#  2003-06-03  make install-cfg will properly replace the module path
-#               in the cfg (re: /usr/.*lib/ser/modules)
-#              ser.cfg.default is installed only if there is a previous
-#               cfg. -- fixes packages containing ser.cfg.default (andrei)
-#  2003-08-29  install-modules-doc split from install-doc, added 
-#               install-modules-all, removed README.cfg (andrei)
-#              added skip_cfg_install (andrei)
-#  2004-09-02  install-man will automatically "fix" the path of the files
-#               referred in the man pages
-#
-
-auto_gen=lex.yy.c cfg.tab.c #lexx, yacc etc
-auto_gen_others=cfg.tab.h  # auto generated, non-c
-
-#include  source related defs
-include Makefile.sources
-
-# whether or not to install ser.cfg or just ser.cfg.default
-# (ser.cfg will never be overwritten by make install, this is usefull
-#  when creating packages)
-skip_cfg_install?=
-
-#extra modules to exclude
-skip_modules?=
-
-# if not set on the cmd. line or the env, exclude this modules:
-exclude_modules?= 			cpl ext extcmd \
-							postgres snmp \
-							im \
-							jabber mysql \
-							cpl-c \
-							auth_radius group_radius uri_radius avp_radius \
-							pa
-# always exclude the CVS dir
-override exclude_modules+= CVS $(skip_modules)
-
-#always include this modules
-include_modules?=
-
-# first 2 lines are excluded because of the experimental or incomplete
-# status of the modules
-# the rest is excluded because it depends on external libraries
-#
-static_modules=
-static_modules_path=$(addprefix modules/, $(static_modules))
-extra_sources=$(wildcard $(addsuffix /*.c, $(static_modules_path)))
-extra_objs=$(extra_sources:.c=.o)
-
-static_defs= $(foreach  mod, $(static_modules), \
-		-DSTATIC_$(shell echo $(mod) | tr [:lower:] [:upper:]) )
-
-override extra_defs+=$(static_defs) $(EXTRA_DEFS)
-export extra_defs
-
-modules=$(filter-out $(addprefix modules/, \
-			$(exclude_modules) $(static_modules)), \
-			$(wildcard modules/*))
-modules:=$(filter-out $(modules), $(addprefix modules/, $(include_modules) )) \
-			$(modules)
-modules_names=$(shell echo $(modules)| \
-				sed -e 's/modules\/\([^/ ]*\)\/*/\1.so/g' )
-modules_basenames=$(shell echo $(modules)| \
-				sed -e 's/modules\/\([^/ ]*\)\/*/\1/g' )
-#modules_names=$(patsubst modules/%, %.so, $(modules))
-modules_full_path=$(join  $(modules), $(addprefix /, $(modules_names)))
-
-
-ALLDEP=Makefile Makefile.sources Makefile.defs Makefile.rules
-
-#include general defs (like CC, CFLAGS  a.s.o)
-# hack to force makefile.defs re-inclusion (needed when make calls itself with
-# other options -- e.g. make bin)
-makefile_defs=0
-DEFS:=
-include Makefile.defs
-
-NAME=$(MAIN_NAME)
-
-#export relevant variables to the sub-makes
-export DEFS PROFILE CC LD MKDEP MKTAGS CFLAGS LDFLAGS MOD_CFLAGS MOD_LDFLAGS 
-export LIBS
-export LEX YACC YACC_FLAGS
-export PREFIX LOCALBASE
-# export relevant variables for recursive calls of this makefile 
-# (e.g. make deb)
-#export LIBS
-#export TAR 
-#export NAME RELEASE OS ARCH 
-#export cfg-prefix cfg-dir bin-prefix bin-dir modules-prefix modules-dir
-#export doc-prefix doc-dir man-prefix man-dir ut-prefix ut-dir
-#export cfg-target modules-target
-#export INSTALL INSTALL-CFG INSTALL-BIN INSTALL-MODULES INSTALL-DOC INSTALL-MAN 
-#export INSTALL-TOUCH
-
-tar_extra_args+=$(addprefix --exclude=$(notdir $(CURDIR))/, \
-					$(auto_gen) $(auto_gen_others))
-ifneq ($(TLS),)
-	tar_extra_args+=
-else
-	tar_extra_args+=--exclude=$(notdir $(CURDIR))/tls* 
-endif
-# include the common rules
-include Makefile.rules
-
-#extra targets 
-
-$(NAME): $(extra_objs) # static_modules
-
-lex.yy.c: cfg.lex cfg.tab.h $(ALLDEP)
-	$(LEX) $<
-
-cfg.tab.c cfg.tab.h: cfg.y  $(ALLDEP)
-	$(YACC) $(YACC_FLAGS) $<
-
-.PHONY: all
-all: $(NAME) modules
-
-
-
-.PHONY: modules
-modules:
-	- at for r in $(modules) "" ; do \
-		if [ -n "$$r" ]; then \
-			echo  "" ; \
-			echo  "" ; \
-			$(MAKE) -C $$r ; \
-		fi ; \
-	done 
-
-$(extra_objs):
-	- at echo "Extra objs: $(extra_objs)" 
-	- at for r in $(static_modules_path) "" ; do \
-		if [ -n "$$r" ]; then \
-			echo  "" ; \
-			echo  "Making static module $r" ; \
-			$(MAKE) -C $$r static ; \
-		fi ; \
-	done 
-
-
-	
-dbg: ser
-	gdb -command debug.gdb
-
-.PHONY: tar
-.PHONY: dist
-
-dist: tar
-
-tar: 
-	$(TAR) -C .. \
-		--exclude=$(notdir $(CURDIR))/test* \
-		--exclude=$(notdir $(CURDIR))/tmp* \
-		--exclude=$(notdir $(CURDIR))/debian/ser \
-		--exclude=$(notdir $(CURDIR))/debian/ser-* \
-		--exclude=$(notdir $(CURDIR))/ser_tls* \
-		--exclude=CVS* \
-		--exclude=.cvsignore \
-		--exclude=*.[do] \
-		--exclude=*.so \
-		--exclude=*.il \
-		--exclude=$(notdir $(CURDIR))/ser \
-		--exclude=*.gz \
-		--exclude=*.bz2 \
-		--exclude=*.tar \
-		--exclude=*.patch \
-		--exclude=.\#* \
-		--exclude=*.swp \
-		${tar_extra_args} \
-		-cf - $(notdir $(CURDIR)) | \
-			(mkdir -p tmp/_tar1; mkdir -p tmp/_tar2 ; \
-			    cd tmp/_tar1; $(TAR) -xf - ) && \
-			    mv tmp/_tar1/$(notdir $(CURDIR)) \
-			       tmp/_tar2/"$(NAME)-$(RELEASE)" && \
-			    (cd tmp/_tar2 && $(TAR) \
-			                    -zcf ../../"$(NAME)-$(RELEASE)_src".tar.gz \
-			                               "$(NAME)-$(RELEASE)" ) ; \
-			    rm -rf tmp/_tar1; rm -rf tmp/_tar2
-
-# binary dist. tar.gz
-.PHONY: bin
-bin:
-	mkdir -p tmp/ser/usr/local
-	$(MAKE) install basedir=tmp/ser prefix=/usr/local 
-	$(TAR) -C tmp/ser/ -zcf ../$(NAME)-$(RELEASE)_$(OS)_$(ARCH).tar.gz .
-	rm -rf tmp/ser
-
-.PHONY: deb
-deb:
-	dpkg-buildpackage -rfakeroot -tc
-
-.PHONY: sunpkg
-sunpkg:
-	mkdir -p tmp/ser
-	mkdir -p tmp/ser_sun_pkg
-	$(MAKE) install basedir=tmp/ser prefix=/usr/local
-	(cd solaris; \
-	pkgmk -r ../tmp/ser/usr/local -o -d ../tmp/ser_sun_pkg/ -v "$(RELEASE)" ;\
-	cd ..)
-	cat /dev/null > ../$(NAME)-$(RELEASE)-$(OS)-$(ARCH)-local
-	pkgtrans -s tmp/ser_sun_pkg/ ../$(NAME)-$(RELEASE)-$(OS)-$(ARCH)-local \
-		IPTELser
-	gzip -9 ../$(NAME)-$(RELEASE)-$(OS)-$(ARCH)-local
-	rm -rf tmp/ser
-	rm -rf tmp/ser_sun_pkg
-
-
-.PHONY: install
-install: all mk-install-dirs install-cfg install-bin install-modules \
-	install-doc install-man
-
-.PHONY: dbinstall
-dbinstall:
-	- at echo "Initializing ser database"
-	scripts/ser_mysql.sh create
-	- at echo "Done"
-
-mk-install-dirs: $(cfg-prefix)/$(cfg-dir) $(bin-prefix)/$(bin-dir) \
-			$(modules-prefix)/$(modules-dir) $(doc-prefix)/$(doc-dir) \
-			$(man-prefix)/$(man-dir)/man8 $(man-prefix)/$(man-dir)/man5
-
-
-$(cfg-prefix)/$(cfg-dir): 
-		mkdir -p $(cfg-prefix)/$(cfg-dir)
-
-$(bin-prefix)/$(bin-dir):
-		mkdir -p $(bin-prefix)/$(bin-dir)
-
-$(modules-prefix)/$(modules-dir):
-		mkdir -p $(modules-prefix)/$(modules-dir)
-
-
-$(doc-prefix)/$(doc-dir):
-		mkdir -p $(doc-prefix)/$(doc-dir)
-
-$(man-prefix)/$(man-dir)/man8:
-		mkdir -p $(man-prefix)/$(man-dir)/man8
-
-$(man-prefix)/$(man-dir)/man5:
-		mkdir -p $(man-prefix)/$(man-dir)/man5
-		
-# note: on solaris 8 sed: ? or \(...\)* (a.s.o) do not work
-install-cfg: $(cfg-prefix)/$(cfg-dir)
-		sed -e "s#/usr/.*lib/ser/modules/#$(modules-target)#g" \
-			< etc/ser.cfg > $(cfg-prefix)/$(cfg-dir)ser.cfg.sample
-		chmod 644 $(cfg-prefix)/$(cfg-dir)ser.cfg.sample
-		if [ -z "${skip_cfg_install}" -a \
-				! -f $(cfg-prefix)/$(cfg-dir)ser.cfg ]; then \
-			mv -f $(cfg-prefix)/$(cfg-dir)ser.cfg.sample \
-				$(cfg-prefix)/$(cfg-dir)ser.cfg; \
-		fi
-		# radius dictionary
-		$(INSTALL-TOUCH) $(cfg-prefix)/$(cfg-dir)/dictionary.ser 
-		$(INSTALL-CFG) etc/dictionary.ser $(cfg-prefix)/$(cfg-dir)
-#		$(INSTALL-CFG) etc/ser.cfg $(cfg-prefix)/$(cfg-dir)
-
-install-bin: $(bin-prefix)/$(bin-dir) utils/gen_ha1/gen_ha1 utils/serunix/serunix
-		$(INSTALL-TOUCH) $(bin-prefix)/$(bin-dir)/ser 
-		$(INSTALL-BIN) ser $(bin-prefix)/$(bin-dir)
-		$(INSTALL-TOUCH)   $(bin-prefix)/$(bin-dir)/sc
-		$(INSTALL-BIN) scripts/sc $(bin-prefix)/$(bin-dir)
-		mv -f $(bin-prefix)/$(bin-dir)/sc $(bin-prefix)/$(bin-dir)/serctl
-		$(INSTALL-TOUCH)   $(bin-prefix)/$(bin-dir)/ser_mysql.sh  
-		$(INSTALL-BIN) scripts/ser_mysql.sh  $(bin-prefix)/$(bin-dir)
-		$(INSTALL-TOUCH)   $(bin-prefix)/$(bin-dir)/gen_ha1
-		$(INSTALL-BIN) utils/gen_ha1/gen_ha1 $(bin-prefix)/$(bin-dir)
-		$(INSTALL-TOUCH)   $(bin-prefix)/$(bin-dir)/serunix
-		$(INSTALL-BIN) utils/serunix/serunix $(bin-prefix)/$(bin-dir)
-
-utils/gen_ha1/gen_ha1:
-		cd utils/gen_ha1; $(MAKE) all
-
-utils/serunix/serunix:
-		cd utils/serunix; $(MAKE) all
-
-install-modules: modules $(modules-prefix)/$(modules-dir)
-	- at for r in $(modules_full_path) "" ; do \
-		if [ -n "$$r" ]; then \
-			if [ -f "$$r" ]; then \
-				$(INSTALL-TOUCH) \
-					$(modules-prefix)/$(modules-dir)/`basename "$$r"` ; \
-				$(INSTALL-MODULES)  "$$r"  $(modules-prefix)/$(modules-dir) ; \
-			else \
-				echo "ERROR: module $$r not compiled" ; \
-			fi ;\
-		fi ; \
-	done 
-
-
-install-modules-all: install-modules install-modules-doc
-
-
-install-doc: $(doc-prefix)/$(doc-dir) install-modules-doc
-	$(INSTALL-TOUCH) $(doc-prefix)/$(doc-dir)/INSTALL 
-	$(INSTALL-DOC) INSTALL $(doc-prefix)/$(doc-dir)
-	$(INSTALL-TOUCH) $(doc-prefix)/$(doc-dir)/README-MODULES 
-	$(INSTALL-DOC) README-MODULES $(doc-prefix)/$(doc-dir)
-	$(INSTALL-TOUCH) $(doc-prefix)/$(doc-dir)/AUTHORS 
-	$(INSTALL-DOC) AUTHORS $(doc-prefix)/$(doc-dir)
-	$(INSTALL-TOUCH) $(doc-prefix)/$(doc-dir)/NEWS
-	$(INSTALL-DOC) NEWS $(doc-prefix)/$(doc-dir)
-	$(INSTALL-TOUCH) $(doc-prefix)/$(doc-dir)/README 
-	$(INSTALL-DOC) README $(doc-prefix)/$(doc-dir)
-
-
-install-modules-doc: $(doc-prefix)/$(doc-dir)
-	- at for r in $(modules_basenames) "" ; do \
-		if [ -n "$$r" ]; then \
-			if [ -f modules/"$$r"/README ]; then \
-				$(INSTALL-TOUCH)  $(doc-prefix)/$(doc-dir)/README ; \
-				$(INSTALL-DOC)  modules/"$$r"/README  \
-									$(doc-prefix)/$(doc-dir)/README ; \
-				mv -f $(doc-prefix)/$(doc-dir)/README \
-						$(doc-prefix)/$(doc-dir)/README."$$r" ; \
-			fi ; \
-		fi ; \
-	done 
-
-
-install-man: $(man-prefix)/$(man-dir)/man8 $(man-prefix)/$(man-dir)/man5
-		sed -e "s#/etc/ser/ser\.cfg#$(cfg-target)ser.cfg#g" \
-			-e "s#/usr/sbin/#$(bin-target)#g" \
-			-e "s#/usr/lib/ser/modules/#$(modules-target)#g" \
-			-e "s#/usr/share/doc/ser/#$(doc-target)#g" \
-			< ser.8 >  $(man-prefix)/$(man-dir)/man8/ser.8
-		chmod 644  $(man-prefix)/$(man-dir)/man8/ser.8
-		sed -e "s#/etc/ser/ser\.cfg#$(cfg-target)ser.cfg#g" \
-			-e "s#/usr/sbin/#$(bin-target)#g" \
-			-e "s#/usr/lib/ser/modules/#$(modules-target)#g" \
-			-e "s#/usr/share/doc/ser/#$(doc-target)#g" \
-			< ser.cfg.5 >  $(man-prefix)/$(man-dir)/man5/ser.cfg.5
-		chmod 644  $(man-prefix)/$(man-dir)/man5/ser.cfg.5

Deleted: ser/trunk/Makefile.defs
===================================================================
--- ser/trunk/Makefile.defs	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/Makefile.defs	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,1126 +0,0 @@
-# $Id: Makefile.defs,v 1.296.2.30 2006/01/11 00:25:58 janakj Exp $
-#
-# makefile defs (CC, LD,a.s.o)
-#
-# Environment variables:
-#   PREFIX, LOCALBASE, BASEDIR
-#   INSTALL, TAR , CC, LEX, YACC,
-#   CPU, CC_EXTRA_OPTS,
-#   exclude_modules, skip_modules, include_modules
-#   extra_defs
-#
-# History:
-# --------
-#              created by andrei
-#  2003-02-24  added LOCALBASE, fixed doc-dir for freebsd - patch provided
-#               by Maxim Sobolev <sobomax at FreeBSD.org>
-#  2003-02-25  added -DDISABLE_NAGLE (andrei)
-#  2003-03-02  added -DDIGEST_DOMAIN (janakj)
-#  2003-03-10  added -xcode=pic32 for module compilation w/ sun cc
-#               (too many symbols for pic13)  (andrei)
-#  2003-04-16  added CC_EXTRA_OPTS, s/march/mcpu, added CPU (cpu to optimize 
-#               for, used only with gcc-3.x) (andrei)
-#  2003-05-23  check if this makefile was already included (andrei)
-#              removed -DDIGEST_DOMAIN (andrei)
-#  2003-05-30  added extra_defs (andrei)
-#  2003-06-06  moved compiler detection before DEFS (andrei)
-#  2003-06-10  removed -m32 for gcc 3.x/sparc64  -- it will use 
-#              arch. default: -m32 on solaris, -m64 on *bsd (andrei)
-#  2003-09-25  added -pthread into LIBS when compiling on FreeBSD/alpha
-#              and other FreeBSD arches for which no fast locking assembly
-#              code exists (sobomax)
-#  2003-11-08  mips1 support introduced (andrei)
-#  2003-11-24  openbsd 3.4 (elf) fixes (andrei)
-#  2004-07-27  darwin (mac os x) port  (andrei)
-#  2004-09-12  mips2 & cobalt support introduced (andrei)
-#  2004-09-28  x86_64 support introduced (andrei)
-#  2004-12-14  gcc-3.4 special case added (andrei)
-#  2004-12-15  HAVE_ALLOCA_H added (andrei)
-#  2004-12-19  amd64 transformed in x86_64 (andrei)
-#  2005-04-27  alpha support added (andrei)
-#  2005-06-01  use $(LOCALBASE) instead of /usr/{local,pkg} (andrei)
-#  2005-06-06  ppc64 support & missing ppc optimizations section added (andrei)
-#  2005-07-06  gcc 4.0 optimizations support (andrei)
-#  2005-07-25  better solaris arch detection (andrei)
-#  2005-10-02  distcc get gcc version hack (andrei)
-
-
-# check if already included/exported
-
-ifeq ($(makefile_defs), 1)
-else
-makefile_defs=1
-export makefile_defs
-
-# main binary name
-MAIN_NAME=ser
-
-#version number
-VERSION = 0
-PATCHLEVEL = 9
-SUBLEVEL = 6
-EXTRAVERSION = 
-
-RELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
-OS = $(shell uname -s | sed -e s/SunOS/solaris/ | tr "[A-Z]" "[a-z]")
-
-ifeq ($(OS),solaris)
-	GETARCH=uname -p
-else
-	GETARCH=uname -m
-endif
-
-ARCH := $(shell $(GETARCH) |sed -e s/i.86/i386/ -e s/sun4u/sparc64/  \
-			-e s/armv4l/arm/ -e "s/Power Macintosh/ppc/" \
-			-e "s/cobalt/mips2/" \
-			-e s/amd64/x86_64/ )
-# fix sparc -> sparc64
-ifeq ($(ARCH),sparc)
-	ifeq ($(shell uname -m),sun4u)
-		ARCH := sparc64
-	endif
-endif
-
-OSREL = $(shell uname -r)
-
-# TLS support
-TLS ?= 
-ifneq ($(TLS),)
-	RELEASE:=$(RELEASE)-tls
-endif
-# extra CC command line options (e.g  -march=athlon-mp)
-CC_EXTRA_OPTS ?=
-
-# dirs 
-cfg-dir = etc/ser/
-bin-dir = sbin/
-modules-dir = lib/ser/modules/
-ifeq ($(OS), linux)
-	doc-dir = share/doc/ser/
-	man-dir = share/man/
-	LOCALBASE ?= /usr/local
-else
-ifeq ($(OS), freebsd)
-	doc-dir = share/doc/ser/
-	man-dir = man/
-	LOCALBASE ?= /usr/local
-else
-ifeq ($(OS), openbsd)
-	doc-dir = share/doc/ser/
-	man-dir = man/
-	LOCALBASE ?= /usr/local
-else
-ifeq ($(OS), netbsd)
-	doc-dir = share/doc/ser
-	man-dir = man/
-	LOCALBASE ?= /usr/pkg
-else
-ifeq ($(OS), darwin)
-	doc-dir = share/doc/ser/
-	man-dir = man/
-	LOCALBASE ?= /usr/local
-else
-	doc-dir = doc/ser/
-	man-dir = man/
-	LOCALBASE ?= /usr/local
-endif
-endif
-endif
-endif
-endif
-
- # install location
-DESTDIR ?= $(LOCALBASE)
-PREFIX ?= $(DESTDIR)
-prefix = $(PREFIX)
-# install path is $(basedir) $(prefix) 
-# example:
-#  creating a bin. archive in /tmp, which unpacks in /usr/local
-#  basedir=/tmp
-#  prefix=/usr/local
-
-BASEDIR ?=
-basedir = $(BASEDIR)
-# install prefixes for various stuff
-cfg-prefix = $(basedir)$(prefix)
-bin-prefix = $(basedir)$(prefix)
-modules-prefix = $(basedir)$(prefix)
-doc-prefix = $(basedir)$(prefix)
-man-prefix = $(basedir)$(prefix)
-ut-prefix = $(basedir)$(prefix)
-
-
-# target dirs for various stuff
-cfg-target = $(prefix)/$(cfg-dir)
-bin-target = $(prefix)/$(bin-dir)
-modules-target = $(prefix)/$(modules-dir)
-doc-target = $(prefix)/$(doc-dir)
-
-
-ifeq ($(OS), solaris)
-#use GNU versions
-INSTALL ?= ginstall
-TAR ?= gtar
-else
-INSTALL ?= install 
-TAR ?= tar
-endif
-
-INSTALL-TOUCH = touch          # used to create the file first (good to 
-                               #  make solaris install work)
-INSTALL-CFG = $(INSTALL) -m 644
-INSTALL-BIN = $(INSTALL) -m 755
-INSTALL-MODULES = $(INSTALL) -m 755
-INSTALL-DOC = $(INSTALL) -m 644
-INSTALL-MAN = $(INSTALL) -m 644
-
-#set some vars from the environment (and not make builtins)
-CC   := $(shell echo "$${CC}")
-LEX  := $(shell echo "$${LEX}")
-YACC := $(shell echo "$${YACC}")
-
-
-
-
-# find compiler name & version
-ifeq ($(CC),)
-	CC=gcc
-endif
-LD= $(CC)
-CC_LONGVER=$(shell if  $(CC) -v 2>/dev/null; then \
-						$(CC) -v 2>&1 ;\
-					else \
-						$(CC) -V 2>&1 ; \
-					fi )
-MKTAGS=ctags -R .
-
-#find-out the compiler's name
-
-ifneq (,$(findstring gcc, $(CC_LONGVER)))
-	CC_NAME=gcc
-	CC_VER=$(word 1,$(CC)) $(shell $(CC) - --version|head -n 1|cut -d" " -f 3|\
-				 sed -e 's/^.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/'\
-				 	 -e 's/^[^0-9].*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/')
-	# sun sed is a little brain damaged => this complicated expression
-	MKDEP=$(CC) -MM 
-	#transform gcc version into 2.9x or 3.0
-	CC_SHORTVER=$(shell echo "$(CC_VER)" | cut -d" " -f 2| \
-				 sed -e 's/[^0-9]*-\(.*\)/\1/'| \
-				 sed -e 's/2\.9.*/2.9x/' -e 's/3\.[0-3]\..*/3.0/' -e \
-				 	's/3\.[0-3]/3.0/' -e 's/3\.[4-9]\..*/3.4/' -e \
-					's/3\.[4-9]/3.4/' -e 's/4\.[0-9]\..*/4.x/' -e \
-					's/4\.[0-9]/4.x/' )
-endif
-
-ifneq (, $(findstring Sun, $(CC_LONGVER)))
-	CC_NAME=suncc
-	CC_SHORTVER=$(shell echo "$(CC_LONGVER)"|head -n 1| \
-					sed -e 's/.*\([0-9]\.[0-9]\).*/\1/g' )
-	CC_VER=$(CC) $(CC_SHORTVER)
-	MKDEP=$(CC) -xM1 
-endif
-
-ifneq (, $(findstring Intel(R) C++ Compiler, $(CC_LONGVER)))
-	# very nice: gcc compatible
-	CC_NAME=icc
-	CC_FULLVER=$(shell echo "$(CC_LONGVER)"|head -n 1| \
-					sed -e 's/.*Version \([0-9]\.[0-9]\.[0-9]*\).*/\1/g' )
-	CC_SHORTVER=$(shell echo "$(CC_FULLVER)" | cut -d. -f1,2 )
-	CC_VER=$(CC) $(CC_FULLVER)
-	MKDEP=$(CC) -MM 
-endif
-
-
-ifeq (,$(CC_NAME))
-#not found
-	CC_NAME=$(CC)
-	CC_SHORTVER=unknown
-	CC_VER=unknown
-	MKDEP=gcc -MM 
-$(warning	Unknown compiler $(CC)\; supported compilers: \
-			gcc, sun cc, intel icc )
-endif
-
-
-# compile-time options
-#
-# -DSTATS
-#		allows to print out number of packets processed on CTRL-C;
-# 		implementation still nasty and reports per-process
-# -DNO_DEBUG
-#		turns off some of the debug messages (DBG(...)).
-# -DNO_LOG
-#		completely turns of all the logging (and DBG(...))
-# -DEXTRA_DEBUG
-#		compiles in some extra debugging code
-# -DDNS_IP_HACK
-#		faster ip address resolver for ip strings (e.g "127.0.0.1")
-# -DSHM_MEM
-#		compiles in shared mem. support, needed by some modules and
-#		by USE_SHM_MEM
-# -DSHM_MMAP
-#		use mmap instead of SYSV shared memory
-# -DPKG_MALLOC
-#		uses a faster malloc (exclusive w/ USE_SHM_MEM)
-# -DUSE_SHM_MEM
-#		all pkg_malloc => shm_malloc (most mallocs use a common sh.
-#		mem. segment); don't define PKG_MALLOC if you want this!
-# -DDBG_QM_MALLOC
-#		qm_malloc debug code, will cause pkg_malloc and shm_malloc
-#		to keep and display lot of debuging information: file name,
-#		function, line number of malloc/free call for each block,
-#		extra error checking (trying to free the same pointer
-#		twice, trying to free a pointer alloc'ed with a different
-#		malloc etc.)
-# -DVQ_MALLOC
-#		additional option to PKG_MALLOC which utilizes a fater then
-#		qm version
-#		(not true anymore, q_malloc performs approx. the same)
-# -DF_MALLOC
-#		an even faster malloc, not recommended for debugging
-# -DDBG_MALLOC
-#		issues additional debugging information if lock/unlock is called
-# -DFAST_LOCK
-#		uses fast arhitecture specific locking (see the arh. specific section)
-# -DUSE_SYSV_SEM
-#		uses sys v sems for locking (slower & limited number)
-# -DUSE_PTHREAD_MUTEX
-#		uses pthread mutexes, faster than sys v or posix sems, but do not 
-#		work on all systems inter-processes (e.g. linux)
-# -DUSE_POSIX_SEM
-#		uses posix semaphores for locking (faster than sys v)
-# -DBUSY_WAIT
-#		uses busy waiting on the lock (FAST_LOCK)
-# -DADAPTIVE_WAIT
-#		try busy waiting for a while and if the lock is still held go to
-#		force reschedule (FAST_LOCK)
-# -DADAPTIVE_WAIT_LOOPS=number
-#		number of loops we busy wait, after "number" loops have elapsed we 
-#		force a reschedule (FAST_LOCK)
-# -DNOSMP
-#		don't use smp compliant locking (faster but won't work on SMP machines)
-#		(not yet enabled) (FAST_LOCK)
-# -DNO_PINGTEL_TAG_HACK
-#		if enabled, To-header-field will be less liberal and will not accept
-#		'tag=' (tag parameter with equal sign and without value); it is called
-#		this way because such message was sighted from a Pingtel phone
-# -DWITH_SNMP_MOD
-#  		if enabled, allows forking of the snmp agent just before child
-#  		forking (done at the top of main_loop). Needed if you want
-#  		to use the snmp module.
-# -DUSE_TCP
-#		compiles in tcp support
-# -DDISABLE_NAGLE
-#		disable the tcp Nagle algorithm (lower delay)
-# -DUSE_TLS
-#		compiles in tls support, requires -DUSE_TCP. Please use
-#		make TLS=1 instead. (tls support is highly experimental for now)
-
-
-DEFS+= $(extra_defs) \
-	 -DNAME='"$(MAIN_NAME)"' -DVERSION='"$(RELEASE)"' -DARCH='"$(ARCH)"' \
-	 -DOS='"$(OS)"' -DCOMPILER='"$(CC_VER)"' -D__CPU_$(ARCH) -D__OS_$(OS) \
-	 -DCFG_DIR='"$(cfg-target)"'\
-	 -DPKG_MALLOC \
-	 -DSHM_MEM  -DSHM_MMAP \
-	 -DDNS_IP_HACK \
-	 -DUSE_IPV6 \
-	 -DUSE_MCAST \
-	 -DUSE_TCP \
-	 -DDISABLE_NAGLE \
-	 -DF_MALLOC \
-	 #-DDBG_QM_MALLOC \
-	 #-DDBG_F_MALLOC \
-	 #-DNO_DEBUG \
-	 #-DNO_LOG \
-	 #-DVQ_MALLOC  \
-	 #-DCONTACT_BUG \
-	 #-DDBG_LOCK \
-	 #-DNOSMP \
-	 #-DEXTRA_DEBUG \
-	 #-DUSE_SHM_MEM \
-	 #-DSTATS \
-	 #-DNO_LOG
-
-#PROFILE=  -pg #set this if you want profiling
-
-# WARNING: do not add mode=debug or mode=release anymore in the Makefile,
-# use make mode=debug all instead. Anyway no by default ser is  compiled w/ 
-# debugging symbols in all cases (-g). --andrei
-
-ifneq ($(TLS),)
-	DEFS+= -DUSE_TLS
-endif
-
-ifeq ($(mode),)
-	mode = release
-endif
-
-ifeq ($(mode),debug)
-	DEFS+= -DEXTRA_DEBUG
-endif
-
-# platform dependent settings
-
-# find ld & as name (gnu or solaris)
-ifeq ($(OS), solaris)
-ifeq ($(CC_NAME), gcc)
-		LDGCC=$(shell $(CC) -v 2>&1 | grep with-ld| \
-				   sed -e 's/.*--with-ld=\([^ ][^ ]*\).*/\1/' )
-		ASGCC=$(shell $(CC) -v 2>&1 | grep with-as| \
-				   sed -e 's/.*--with-as=\([^ ][^ ]*\).*/\1/' )
-		LDPATH=$(shell  if [ -z "$(LDGCC)" ] ; then echo "ld" ;\
-						else \
-						if $(LDGCC) -V 2>/dev/null 1>/dev/null; then \
-							echo $(LDGCC); \
-						else echo "ld" ; \
-						fi\
-						fi)
-		ASPATH=$(shell  if [ -z "$(ASGCC)" ] ; then echo "as" ;\
-						else \
-						if $(ASGCC) -V 2>/dev/null 1>/dev/null; then \
-							echo $(ASGCC); \
-						else echo "as" ; \
-						fi\
-						fi)
-							
-		LDTYPE=$(shell if $(LDPATH) -V 1>/dev/null  2>/dev/null; then \
-							if $(LDPATH) -V 2>&1|grep GNU >/dev/null; \
-							then echo gnu; \
-							else \
-							if $(LDPATH) -V 2>&1|grep Solaris >/dev/null;\
-							then echo solaris; \
-							else \
-								echo unknown ; \
-							fi \
-							fi \
-						fi)
-		ASTYPE=$(shell if $(ASPATH) -V 1>/dev/null  2>/dev/null </dev/null; \
-						then \
-							if $(ASPATH) -V 2>&1 </dev/null |grep GNU >/dev/null; \
-							then echo gnu; \
-							else \
-							if $(ASPATH) -V 2>&1 </dev/null |grep Sun >/dev/null;\
-							then echo solaris; \
-							else \
-								echo unknown ; \
-							fi \
-							fi \
-						fi)
-#$(warning "using ld=$(LDPATH)/$(LDTYPE), as=$(ASPATH)/$(ASTYPE)")
-
-endif
-endif
-
-# arh. specific definitions
-ifeq ($(ARCH), i386)
-	use_fast_lock=yes
-endif
-
-ifeq ($(ARCH), x86_64)
-	use_fast_lock=yes
-endif
-
-ifeq ($(ARCH), sparc64)
-ifeq 	($(CC_NAME), gcc)
-	use_fast_lock=yes
-endif
-endif
-
-ifeq ($(ARCH), sparc)
-	# smp no supported on sparc32
-	DEFS+= -DNOSMP 
-	use_fast_lock=yes
-endif
-
-ifeq ($(ARCH), arm)
-	use_fast_lock=yes
-endif
-
-ifeq ($(ARCH), ppc)
-	use_fast_lock=yes
-endif
-
-ifeq ($(ARCH), ppc64)
-	use_fast_lock=yes
-endif
-
-ifeq ($(ARCH), mips)
-# mips1 arch. (e.g. R3000) - no hardware locking support
-	use_fast_lock=no
-endif
-
-ifeq ($(ARCH), mips2)
-# mips2 arch and newer (mips3=R4000, mips4=R5000 a.s.o)
-	use_fast_lock=yes
-endif
-
-ifeq ($(ARCH), alpha)
-	use_fast_lock=yes
-endif
-
-ifeq ($(use_fast_lock), yes)
-	DEFS+= -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 
-	found_lock_method=yes
-endif
-
-CFLAGS=
-LDFLAGS=
-# setting CFLAGS
-ifeq ($(mode), release)
-	#if i386
-ifeq	($(ARCH), i386)
-		# if gcc 
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS=-g -O9 -funroll-loops  -Wcast-align $(PROFILE) \
-					-Wall  
-			#if gcc 4.0+
-ifeq			($(CC_SHORTVER), 4.x)
-					CPU ?= athlon64
-					CFLAGS+=-minline-all-stringops -malign-double \
-							-falign-loops \
-							-ftree-vectorize \
-							-mtune=$(CPU) 
-else
-			#if gcc 3.4+
-ifeq			($(CC_SHORTVER), 3.4)
-					CPU ?= athlon
-					CFLAGS+=-minline-all-stringops -malign-double \
-							-falign-loops \
-							-mtune=$(CPU) 
-else
-			#if gcc 3.0+
-ifeq			($(CC_SHORTVER), 3.0)
-					CPU ?= athlon
-					CFLAGS+=-minline-all-stringops -malign-double \
-							-falign-loops \
-							-mcpu=$(CPU) 
-else
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc >= 3.1 \
-					for better results)
-					
-					CFLAGS+=-m486 \
-							-malign-loops=4
-else
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version  ($(CC_SHORTVER)), compile at your own risk!)
-
-endif			# CC_SHORTVER, 2.9x
-endif			# CC_SHORTVER, 3.0
-endif			# CC_SHORTVER, 3.4
-endif			# CC_SHORTVER, 4.x
-
-else		# CC_NAME, gcc
-ifeq		($(CC_NAME), icc)
-			CFLAGS=-g -O3  -ipo -ipo_obj -unroll  $(PROFILE) \
-					 -tpp6 -xK  #-openmp  #optimize for PIII 
-				# -prefetch doesn't seem to work
-				#( ty to inline acroos files, unroll loops,prefetch,
-				# optimize for PIII, use PIII instructions & vect.,
-				# mutlithread loops)
-else
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, icc
-endif		#CC_NAME, gcc
-endif	#ARCH, i386
-
-#x86_64
-ifeq	($(ARCH), x86_64)
-		# if gcc 
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS=-g -O9 -funroll-loops  -Wcast-align $(PROFILE) \
-					-Wall 
-			#if gcc 4.0+
-ifeq			($(CC_SHORTVER), 4.x)
-					CPU ?= opteron
-					CFLAGS+=-minline-all-stringops \
-							-falign-loops \
-							-ftree-vectorize \
-							-mtune=$(CPU) 
-else
-			#if gcc 3.4
-ifeq			($(CC_SHORTVER), 3.4)
-					CPU ?= athlon64
-					CFLAGS+=-minline-all-stringops \
-							-falign-loops 
-else
-			#if gcc 3.0
-ifeq			($(CC_SHORTVER), 3.0)
-					CPU ?= athlon64
-					CFLAGS+=-minline-all-stringops \
-							-falign-loops 
-							#-mcpu=$(CPU) \ # not working on all x86_64 gccs
-							#-mcpu=athlon
-else
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc >= 3.1 \
-					for better results)
-					
-					CFLAGS+=-m486 \
-							-malign-loops=4
-else
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version  ($(CC_SHORTVER)), compile at your own risk!)
-
-endif			# CC_SHORTVER, 2.9x
-endif			# CC_SHORTVER, 3.0
-endif			# CC_SHORTVER, 3.4
-endif			# CC_SHORTVER, 4.x
-
-else		# CC_NAME, gcc
-ifeq		($(CC_NAME), icc)
-			CFLAGS=-g -O3  -ipo -ipo_obj -unroll  $(PROFILE) \
-					 -tpp6 -xK  #-openmp  #optimize for PIII 
-				# -prefetch doesn't seem to work
-				#( ty to inline acroos files, unroll loops,prefetch,
-				# optimize for PIII, use PIII instructions & vect.,
-				# mutlithread loops)
-else
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, icc
-endif		#CC_NAME, gcc
-endif	#ARCH, x86_64
-
-	#if sparc
-ifeq	($(ARCH), sparc64)
-			#if gcc
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS=-g -O9 -funroll-loops  $(PROFILE) \
-					-Wall\
-					#-Wcast-align \
-					#-Wmissing-prototypes 
-				#if gcc 4.x
-ifeq			($(CC_SHORTVER), 4.x)
-					CPU ?= ultrasparc
-					#use 32bit for now
-					CFLAGS+=-mcpu=ultrasparc -minline-all-stringops \
-							-mtune=$(CPU) \
-							-ftree-vectorize
-else
-				#if gcc 3.4
-ifeq			($(CC_SHORTVER), 3.4)
-					CPU ?= ultrasparc
-					#use 32bit for now
-					CFLAGS+= -mcpu=ultrasparc -mtune=$(CPU)
-else
-				#if gcc 3.0
-ifeq			($(CC_SHORTVER), 3.0)
-					CPU ?= ultrasparc
-					#use 32bit for now
-					CFLAGS+= -mcpu=ultrasparc -mtune=$(CPU)   \
-					# use -m64 to force 64 bit (but add it also to LDFLAGS), 
-					# -m32 for 32 bit (default on solaris),
-					# nothing for arch. default
-					# -mcpu=v9 or ultrasparc? # -mtune implied by -mcpu
-					#-mno-epilogue #try to inline function exit code
-					#-mflat # omit save/restore
-					#-,faster-structs #faster non Sparc ABI structure copy ops
-else			# CC_SHORTVER, 3.0
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc >= 3.1 \
-					for better results)
-ifneq				($(OS), netbsd)
-						# on netbsd/sparc64,  gcc 2.95.3 does not compile
-						# ser with -mv8
-						CFLAGS+= -mv8 
-endif
-ifeq					($(ASTYPE), solaris)
-							CFLAGS+= -Wa,-xarch=v8plus
-endif					
-else			#CC_SHORTVER, 2.9x
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version ($(CC_SHORTVER)), compile at your own risk!)
-					
-					CFLAGS+= -mv8 
-ifeq					($(ASTYPE), solaris)
-							CFLAGS+= -Wa,-xarch=v8plus
-endif					
-	
-endif			#CC_SHORTVER, 2.9x
-endif			#CC_SHORTVER, 3.0
-endif			#CC_SHORTVER, 3.4
-endif			#CC_SHORTVER, 4.x
-
-else		#CC_NAME, gcc
-ifeq		($(CC_NAME), suncc)
-			CFLAGS+=-g -xO5 -fast -native -xarch=v8plusa -xCC \
-					-xc99 # C99 support
-			# -Dinline="" # add this if cc < 5.3 (define inline as null)
-else
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, suncc
-endif		#CC_NAME, gcc
-endif	#ARCH, sparc64
-
-	#if ipaq/netwinder
-ifeq	($(ARCH), arm)
-		# if gcc 
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS=-O9 -funroll-loops  -Wcast-align $(PROFILE) \
-					-Wall   
-			#if gcc 4.x+
-ifeq			($(CC_SHORTVER), 4.x)
-					CFLAGS+=-mcpu=strongarm1100 -minline-all-stringops \
-							-ftree-vectorize
-else
-			#if gcc 3.4+
-ifeq			($(CC_SHORTVER), 3.4)
-					CFLAGS+= -mcpu=strongarm1100
-else
-			#if gcc 3.0
-ifeq			($(CC_SHORTVER), 3.0)
-					CFLAGS+= -mcpu=strongarm1100
-							#-mcpu=athlon
-else
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc 3.0.x \
-					for better results)
-					
-					CFLAGS+=
-else
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version ($(CC_SHORTVER)), compile at your own risk!)
-	
-endif			# CC_SHORTVER, 2.9x
-endif			# CC_SHORTVER, 3.0
-endif			# CC_SHORTVER, 3.4
-endif			# CC_SHORTVER, 4.0
-	
-else		# CC_NAME, gcc
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, gcc
-endif	#ARCH, arm 
-
-	#if  mips (R3000)
-ifeq	($(ARCH), mips)
-		# if gcc 
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS=-O9 -funroll-loops  -Wcast-align $(PROFILE) \
-					-Wall 
-			#if gcc 4.0+
-ifeq			($(CC_SHORTVER), 4.x)
-					CFLAGS+=-mcpu=r3000 -minline-all-stringops \
-							-ftree-vectorize
-else
-			#if gcc 3.4+
-ifeq			($(CC_SHORTVER), 3.4)
-					CFLAGS+= -mcpu=r3000
-else
-			#if gcc 3.0
-ifeq			($(CC_SHORTVER), 3.0)
-					CFLAGS+= -mcpu=r3000
-							#-mcpu=athlon
-else
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc 3.0.x \
-					for better results)
-					
-					CFLAGS+=-mcpu=r3000
-else
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version ($(CC_SHORTVER)), compile at your own risk!)
-	
-endif			# CC_SHORTVER, 2.9x
-endif			# CC_SHORTVER, 3.0
-endif			# CC_SHORTVER, 3.4
-endif			# CC_SHORTVER, 4.x
-	
-else		# CC_NAME, gcc
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, gcc
-endif	#ARCH, mips
-
-	#if  >=mips2 (R4000, R5000, R6000 ....)
-ifeq	($(ARCH), mips2)
-		# if gcc 
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS= -mips2 -O9 -funroll-loops $(PROFILE) \
-					-Wall 
-			#if gcc 4.0+
-ifeq			($(CC_SHORTVER), 4.x)
-					CFLAGS+=-minline-all-stringops -ftree-vectorize
-else
-			#if gcc 3.4+
-ifeq			($(CC_SHORTVER), 3.4)
-					CFLAGS+=
-else
-			#if gcc 3.0
-ifeq			($(CC_SHORTVER), 3.0)
-					CFLAGS+=
-else
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc 3.0.x \
-					for better results)
-					CFLAGS+=
-else
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version ($(CC_SHORTVER)), compile at your own risk!)
-	
-endif			# CC_SHORTVER, 2.9x
-endif			# CC_SHORTVER, 3.0
-endif			# CC_SHORTVER, 3.4
-endif			# CC_SHORTVER, 4.x
-	
-else		# CC_NAME, gcc
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, gcc
-endif	#ARCH, mips2
-
-
-#if  alpha
-ifeq	($(ARCH), alpha)
-		# if gcc 
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS= -O9 -funroll-loops $(PROFILE)  -Wall 
-			#if gcc 4.0+
-ifeq			($(CC_SHORTVER), 4.x)
-					CFLAGS+=-minline-all-stringops
-else
-			#if gcc 3.4+
-ifeq			($(CC_SHORTVER), 3.4)
-					CFLAGS+=
-else
-			#if gcc 3.0
-ifeq			($(CC_SHORTVER), 3.0)
-					CFLAGS+=
-else
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc 3.0.x \
-					for better results)
-					CFLAGS+=
-else
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version ($(CC_SHORTVER)), compile at your own risk!)
-	
-endif			# CC_SHORTVER, 2.9x
-endif			# CC_SHORTVER, 3.0
-endif			# CC_SHORTVER, 3.4
-endif			# CC_SHORTVER, 4.x
-	
-else		# CC_NAME, gcc
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, gcc
-endif	#ARCH, alpha 
-
-#if  ppc
-ifeq	($(ARCH), ppc)
-		# if gcc 
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS= -O9 -funroll-loops $(PROFILE)  -Wall 
-			#if gcc 4.0+
-ifeq			($(CC_SHORTVER), 4.x)
-					CPU ?= powerpc
-					CFLAGS+=-ftree-vectorize \
-							-mtune=$(CPU) -maltivec
-else
-			#if gcc 3.4+
-ifeq			($(CC_SHORTVER), 3.4)
-					CFLAGS+=
-else
-			#if gcc 3.0
-ifeq			($(CC_SHORTVER), 3.0)
-					CFLAGS+=
-else
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc 3.0.x \
-					for better results)
-					CFLAGS+=
-else
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version ($(CC_SHORTVER)), compile at your own risk!)
-	
-endif			# CC_SHORTVER, 2.9x
-endif			# CC_SHORTVER, 3.0
-endif			# CC_SHORTVER, 3.4
-endif			# CC_SHORTVER, 4.x
-	
-else		# CC_NAME, gcc
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, gcc
-endif	#ARCH, ppc 
-
-#if  ppc64
-ifeq	($(ARCH), ppc64)
-		# if gcc 
-ifeq		($(CC_NAME), gcc)
-				#common stuff
-				CFLAGS= -O9 -funroll-loops $(PROFILE)  -Wall 
-ifeq			($(CC_SHORTVER), 4.x)
-					CPU ?= powerpc64
-					CFLAGS+=-ftree-vectorize \
-							-mtune=$(CPU) -maltivec
-else
-			#if gcc 3.4+
-ifeq			($(CC_SHORTVER), 3.4)
-					CFLAGS+=
-else
-			#if gcc 3.0
-ifeq			($(CC_SHORTVER), 3.0)
-					CFLAGS+=
-else
-ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
-$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc 3.0.x \
-					for better results)
-					CFLAGS+=
-else
-				#really old version
-$(warning			You are using an old and unsupported gcc \
-					 version ($(CC_SHORTVER)), compile at your own risk!)
-	
-endif			# CC_SHORTVER, 2.9x
-endif			# CC_SHORTVER, 3.0
-endif			# CC_SHORTVER, 3.4
-endif			# CC_SHORTVER, 4.x
-	
-else		# CC_NAME, gcc
-				#other compilers
-$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
-endif		#CC_NAME, gcc
-endif	#ARCH, ppc 
-
-CFLAGS+= $(CC_EXTRA_OPTS)
-
-
-# setting LDFLAGS
-ifeq	($(CC_NAME), gcc)
-ifeq		($(LDTYPE), solaris)
-		# solaris ld
-		LDFLAGS+=-O2 $(PROFILE)
-		MOD_LDFLAGS=-G $(LDFLAGS)
-else		
-		#gcc and maybe others, => gnu ld
-		LDFLAGS+=-Wl,-O2 -Wl,-E $(PROFILE) 
-		MOD_LDFLAGS=-shared $(LDFLAGS)
-endif
-endif
-ifeq	($(CC_NAME), icc)
-	#gcc and maybe others
-	LDFLAGS+=-Wl,-O2 -Wl,-E $(PROFILE) 
-	MOD_LDFLAGS=-shared $(LDFLAGS)
-endif
-ifeq	($(CC_NAME), suncc)
-	LDFLAGS+=-xO5 $(PROFILE)
-	MOD_LDFLAGS=-G $(LDFLAGS)
-endif
-	# we need -fPIC -DPIC only for shared objects, we don't need them for
-	# the executable file, because it's always loaded at a fixed address
-	# -andrei
-else	#mode,release
-ifeq	($(CC_NAME), gcc)
-		CFLAGS=-g -Wcast-align $(PROFILE)
-ifeq		($(ARCH), sparc64)
-			CFLAGS+= -mcpu=ultrasparc 
-endif
-ifeq		($(LDTYPE), solaris)
-			#solaris ld
-			LDFLAGS+=-g $(PROFILE)
-			MOD_LDFLAGS=-G $(LDFLAGS)
-else
-			#gnu or other ld type
-			LDFLAGS+=-g -Wl,-E $(PROFILE)
-			MOD_LDFLAGS=-shared $(LDFLAGS)
-endif
-endif
-ifeq	($(CC_NAME), icc)
-		CFLAGS=-g  $(PROFILE)
-		LDFLAGS+=-g -Wl,-E $(PROFILE)
-		MOD_LDFLAGS=-shared $(LDFLAGS)
-endif
-ifeq	($(CC_NAME), suncc)
-		CFLAGS= -g $(PROFILE)
-		LDFLAGS+=-g $(PROFILE)
-		MOD_LDFLAGS=-G $(LDFLAGS)
-endif
-
-endif #mode=release
-
-
-#*FLAGS used for compiling the modules
-ifeq	($(CC_NAME), gcc)
-MOD_CFLAGS=-fPIC -DPIC $(CFLAGS)
-endif
-ifeq	($(CC_NAME), icc)
-MOD_CFLAGS=-Kpic $(CFLAGS)
-endif
-ifeq	($(CC_NAME), suncc)
-MOD_CFLAGS=-xcode=pic32  $(CFLAGS)
-endif
-
-ifeq ($(LEX),)
-	LEX=flex
-endif
-ifeq ($(YACC),)
-	YACC=bison
-endif
-YACC_FLAGS=-d -b cfg
-# on solaris add -lxnet (e.g. LIBS= -lxnet)
-LIBS= -lfl -ldl -lresolv
-
-
-#os specific stuff
-ifeq ($(OS), linux)
-	DEFS+=-DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD \
-			-DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H
-	ifneq ($(found_lock_method), yes)
-		DEFS+= -DUSE_SYSV_SEM  # try posix sems
-		found_lock_method=yes
-	endif
-endif
-
-ifeq  ($(OS), solaris)
-	DEFS+= -DHAVE_GETIPNODEBYNAME -DHAVE_SYS_SOCKIO_H -DHAVE_SCHED_YIELD \
-			-DHAVE_ALLOCA_H -DUSE_SIGACTION
-	ifneq ($(found_lock_method), yes)
-		DEFS+= -DUSE_PTHREAD_MUTEX  # try pthread sems
-		found_lock_method=yes
-	endif
-	ifeq ($(mode), release)
-		#use these only if you're using gcc with Solaris ld
-		#LDFLAGS=-O2 $(PROFILE)
-		#MOD_LDFLAGS=-O2 -G
-	else
-		#LDFLAGS=-g $(PROFILE)
-		#MOD_LDFLAGS=-g -G
-	endif
-ifneq ($(TLS),)
-	DEFS+= -I/usr/local/ssl/include
-endif
-	YACC=yacc
-
-ifeq ($(CC_NAME), suncc)
-	LIBS= -lfast -ldl -lresolv
-endif
-	OLD_SOLARIS= $(shell echo "$(OSREL)" | \
-				sed -e 's/^5\.[0-6][^0-9]*$$/yes/' )
-	LIBS+= -L$(LOCALBASE)/lib -lfl -lxnet -lnsl 
-ifeq	($(OLD_SOLARIS), yes)
-		LIBS+=-lposix4
-else
-		LIBS+=-lrt
-endif
-	# -lrt needed for sched_yield
-endif
-
-ifeq ($(OS), freebsd)
-	DEFS+=-DHAVE_SOCKADDR_SA_LEN -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN \
-		-DHAVE_SCHED_YIELD -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_CONNECT_ECONNRESET_BUG
-	ifneq ($(found_lock_method), yes)
-		DEFS+= -DUSE_PTHREAD_MUTEX  # try pthread sems
-		found_lock_method=yes
-		LIBS= -pthread -lfl  #dlopen is in libc
-	else
-		LIBS= -lfl  #dlopen is in libc
-	endif
-	YACC=yacc
-endif
-
-ifeq ($(OS), openbsd)
-	DEFS+=-DHAVE_SOCKADDR_SA_LEN  -DHAVE_GETHOSTBYNAME2 \
-		-DHAVE_UNION_SEMUN -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_CONNECT_ECONNRESET_BUG
-	ifneq ($(found_lock_method), yes)
-		DEFS+= -DUSE_PTHREAD_MUTEX  # try pthread sems
-		found_lock_method=yes
-	endif
-	# (symbols on openbsd are prefixed by "_")
-	YACC=yacc
-	# no sched_yield on openbsd unless linking with c_r (not recommended)
-	LIBS= -lfl 
-	OPENBSD_IS_AOUT= $(shell echo "$(OSREL)" | \
-				sed -e 's/^3\.[0-3][^0-9]*$$/yes/' |sed -e 's/^[0-2]\..*/yes/')
-# exception: on sparc openbsd 3.2 is elf and not aout
-ifeq ($(OSREL), 3.2)
-ifeq	($(ARCH), sparc)
-		OPENBSD_IS_AOUT:=no
-endif
-ifeq	($(ARCH), sparc64)
-		OPENBSD_IS_AOUT:=no
-endif
-endif
-	
-ifeq ($(OPENBSD_IS_AOUT), yes)
-		DEFS+=-DDLSYM_PREFIX='"_"'
-		LDFLAGS=        # openbsd ld doesn't like -O2 or -E
-endif
-endif   # if opensd
-	
-ifeq ($(OS), netbsd)
-	DEFS+=-DHAVE_SOCKADDR_SA_LEN -DHAVE_GETHOSTBYNAME2 \
-		-DHAVE_MSGHDR_MSG_CONTROL -DHAVE_CONNECT_ECONNRESET_BUG
-	ifneq ($(found_lock_method), yes)
-		DEFS+= -DUSE_SYSV_SEM  # try pthread sems
-		found_lock_method=yes
-	endif
-	YACC=yacc
-	LIBS= -lfl 
-endif
-
-# OS X support, same as freebsd
-ifeq ($(OS), darwin)
-	DEFS+=-DHAVE_SOCKADDR_SA_LEN -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN \
-		-DHAVE_SCHED_YIELD -DHAVE_MSGHDR_MSG_CONTROL \
-		-DUSE_ANON_MMAP \
-		-DNDEBUG -DHAVE_CONNECT_ECONNRESET_BUG
-	# -DNDEBUG used to turn off assert (assert wants to call
-	# eprintf which doesn't seem to be defined in any shared lib
-	ifneq ($(found_lock_method), yes)
-		DEFS+= -DUSE_PTHREAD_MUTEX  # try pthread sems
-		found_lock_method=yes
-		LIBS= -pthread -lfl -lresolv  #dlopen is in libc
-	else
-		LIBS= -lfl -lresolv  #dlopen is in libc
-	endif
-	LDFLAGS=        # darwin doesn't like -O2 or -E
-	MOD_LDFLAGS= -bundle -bundle_loader ../../$(MAIN_NAME)
-	YACC=yacc
-endif
-
-ifneq (,$(findstring CYGWIN, $(OS)))
-	#cygwin is the same as common
-	ifneq ($(found_lock_method), yes)
-		DEFS+= -DUSE_SYSV_SEM  # try sys v sems
-		found_lock_method=yes
-	endif
-endif
-
-#add libssl if needed
-ifneq ($(TLS),)
-DEFS+= -I$(LOCALBASE)/ssl/include
-LIBS+= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -lssl  -lcrypto
-endif
-
-ifneq ($(found_lock_method), yes)
-$(warning	No locking method found so far, trying SYS V sems)
-		DEFS+= -DUSE_SYSV_SEM  # try sys v sems
-		found_lock_method=yes
-endif
-
-
-
-
-
-endif  # ifeq ($(makefile_defs, 1)

Deleted: ser/trunk/Makefile.modules
===================================================================
--- ser/trunk/Makefile.modules	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/Makefile.modules	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,40 +0,0 @@
-#
-# $Id: Makefile.modules,v 1.7 2004/09/07 15:48:52 andrei Exp $
-#
-# module Makefile
-#(to be included from each module)
-#
-MOD_NAME=$(NAME:.so=)
-
-ALLDEP=Makefile ../../Makefile.sources ../../Makefile.rules \
- ../../Makefile.modules
-
-#override modules value, a module cannot have submodules
-override modules=
-override static_modules=
-override static_modules_path=
-
-
-ifeq ($(MAKELEVEL), 0)
-# make called directly in the module dir!
-
-$(warning "you should run make from the main ser directory")
-ifneq ($(makefile_defs), 1)
-$(error "the local makefile does not include Makefile.defs!")
-endif
-
-else
-# called by the main Makefile
-
-ALLDEP+=../../Makefile ../../Makefile.defs
-
-endif
-
-include ../../Makefile.sources
-
-ifeq (,$(filter $(MOD_NAME), $(static_modules)))
-CFLAGS:=$(MOD_CFLAGS)
-LDFLAGS:=$(MOD_LDFLAGS)
-endif
-
-include ../../Makefile.rules

Deleted: ser/trunk/Makefile.radius
===================================================================
--- ser/trunk/Makefile.radius	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/Makefile.radius	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,37 +0,0 @@
-#
-# $Id: Makefile.radius,v 1.1.2.2 2005/09/07 16:22:59 andrei Exp $
-#
-#
-# Radiusclient library detection comes here
-#
-# (To be included from Makefiles of radius related modules)
-#
-# The purpose of this makefile is to perform radiusclient library
-# detection and setup library and include paths in DEFS and LIBS
-# variables. In addition RADIUSCLIENT_NG_4 will be defined when
-# libradiusclient-ng version 4 is detected. That means the module
-# should include radiusclient.h, otherwise radiusclient-ng.h
-# should be included. Variable RADIUSCLIENT_LIB contains the
-# name of the shared library.
-#
-
-#
-# Radiusclient-ng is often installed from tarballs so we
-# need to look int /usr/local/lib as well
-#
-DEFS+=-I$(LOCALBASE)/include
-
-ifneq ($(radiusclient_ng), 4)
-
-# radiusclient-ng 5+
-# DEFS+=-DRADIUSCLIENT_NG_5P
-RADIUSCLIENT_LIB=radiusclient-ng
-
-else
-
-DEFS+=-DRADIUSCLIENT_NG_4
-RADIUSCLIENT_LIB=radiusclient
-
-endif
-
-LIBS=-L$(LOCALBASE)/lib -l$(RADIUSCLIENT_LIB)

Deleted: ser/trunk/Makefile.rules
===================================================================
--- ser/trunk/Makefile.rules	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/Makefile.rules	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,85 +0,0 @@
-#
-# $Id: Makefile.rules,v 1.14.2.2 2005/11/02 17:45:39 andrei Exp $
-#
-#
-# common Makefile rules, included by main Makefile & the  modules
-#
-
-#
-# Uses: NAME, ALLDEP, CC, CFLAGS, DEFS, LIBS, MKDEP, auto_gen, auto_gen_others,
-# depends, objs, extra_objs, static_modules, static_modules_path
-# (all this must  be defined previously!,  see Makefile.defs & Makefile)
-#
-
-
-
-#implicit rules
-%.o:%.c  $(ALLDEP)
-	$(CC) $(CFLAGS) $(DEFS) -c $< -o $@
-
-%.d: %.c $(ALLDEP)
-	@set -e; $(MKDEP) $(DEFS) $< \
-	|  sed 's#\(\($*D)\)\?$(*F)\)\.o[ :]*#$*.o $@ : #g' > $@; \
-	[ -s $@ ] || rm -f $@
-
-
-# normal rules
-$(NAME): $(objs) $(ALLDEP)
-	$(LD) $(LDFLAGS) $(objs) $(extra_objs) $(LIBS) -o $(NAME) 
-
-
-.PHONY: all
-all: $(NAME) modules
-
-.PHONY: dep
-dep: $(depends)
-
-.PHONY: static
-static: $(objs)
-
-.PHONY: clean
-clean: 
-	- at rm -f $(objs) $(NAME) $(objs:.o=.il) 2>/dev/null
-	- at for r in $(modules) $(static_modules_path) "" ; do \
-		if [ -d "$$r" ]; then \
-			echo "module $$r" ; \
-			$(MAKE) -C $$r clean ; \
-		fi ; \
-	done
-	@if [ -n "$(modules)" -a -d utils/gen_ha1 ]; then \
-		cd utils/gen_ha1; $(MAKE) clean; \
-		cd ../serunix; $(MAKE) clean; \
-	fi
-
-.PHONY: proper
-.PHONY: distclean
-.PHONY: realclean
-proper realclean distclean: clean 
-	- at rm -f $(depends) $(auto_gen) $(auto_gen_others) 2>/dev/null
-	- at for r in $(modules) "" ; do \
-		if [ -d "$$r" ]; then \
-			 $(MAKE) -C $$r proper ; \
-		fi ; \
-	done 
-
-.PHONY: mantainer-cleaan
-mantainer-clean: distclean
-	-rm -f TAGS tags *.dbg .*.swp
-	- at for r in $(modules) "" ; do \
-		if [ -d "$$r" ]; then \
-			$(MAKE) -C $$r mantainer-clean; \
-		fi ; \
-	 done 
-
-
-.PHONY: TAGS
-TAGS:
-	$(MKTAGS) 
-	
-ifeq (,$(MAKECMDGOALS))
-include $(depends)
-endif
-ifneq (,$(filter-out clean proper distclean realclean mantainer-clean TAGS \
-		tar modules, $(MAKECMDGOALS)))
-include $(depends)
-endif

Deleted: ser/trunk/Makefile.sources
===================================================================
--- ser/trunk/Makefile.sources	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/Makefile.sources	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,25 +0,0 @@
-#
-# $Id: Makefile.sources,v 1.13 2003/06/30 16:23:36 andrei Exp $
-#
-# common Makefile variables 
-# (source files, objs, etc)
-
-
-#
-# expects: auto_gen defined
-#
-# defines: sources, objs, depends
-#
-
-sources=$(filter-out $(auto_gen), $(wildcard *.c) $(wildcard mem/*.c) \
-		$(wildcard parser/*.c) $(wildcard parser/digest/*.c) \
-		$(wildcard parser/contact/*.c) $(wildcard db/*.c) ) $(auto_gen)
-ifneq ($(TLS),)
-	sources+= $(wildcard tls/*.c)
-endif
-objs=$(sources:.c=.o)
-extra_objs=
-depends=$(sources:.c=.d)
-modules=
-static_modules=
-static_modules_path=

Deleted: ser/trunk/NEWS
===================================================================
--- ser/trunk/NEWS	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/NEWS	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,429 +0,0 @@
-Release notes for SIP Express Router (ser)
-***********************************************
-
-$Id: NEWS,v 1.38.2.3 2005/09/06 13:22:43 andrei Exp $
-
-0.9.4 fixes/improvements (0.9.4 is a bug fix release for 0.9.3)
- 
-general:
- - gcc 4.0 support
- - mutlicast options are set for all the sockets
- - mediaproxy: memory leak, unchecked memory allocations
- - postgress: some bugs and cleanups (compiles cleanly now)
- - tm: shm cloned lumps (SER-55) 
- - tm: t_fifo: 64-bit fix
- - tm: dst_uri clone fix
- - tm: t_newtran/t_restransmit* races  (!)
- - usloc: memory leak
-
-solaris:
- - serctl, better ISA detection, signals
-*bsd:
- - multicast options are properly set
-openbsd:
- - tcp 64 bit fix
-
-
-
-0.9.3 changes
-
-
-new archs:
- - alpha experimental support
- - mips2/cobalt experimental support
- - x86_64 support
- - OS X (darwin) support
- - sparc32 single cpu highly experimental support
- - ppc64 experimental support
-
-modules:
- - enum - support for more than one NAPTR
- - msilo - explicit multidomain support -- recipient's user ID is stored in
-   the columns username and domain -- r_uri column kept for compatibility
-   reasons (will be removed in future) but not filled by this version of
-   module
- - mysql - implements a connection pool, all modules will use same connection
-   to access the database
- - nathelper received port  test (flag 16 for nat_uac_test): compares the
-   source port of the message with sip port in the first Via and returns
-   true if different.
- - permsions - support for multiple allow/deny files, allow_register function
- - TM has a new parameter: restart_fr_on_each_reply. If set (default)
-   fr_inv timer will be restarted for each provisional reply, if not set
-   it will be restarted only for the first reply and for replies >=180
-   (but only if increasing, eg.: 180, 181 ...). Usefull when dealing with bad
-   UAs that re-transmit 180s.
- - TM saves the avp list into transactions, and make it available into
-   callbacks, failure and reply routes.
- - TM contains new command - t_write_unix("/tmp/sems.sock", "announcement")
-   sends a message using unix socket interface instead of FIFO interface.
- - TM contains new config variable - unix_tx_timeout -- it specifies the
-   transmit timeout of t_write_sock
- - VM functionality was transfered into TM module. Instead of fetching the
-   email value from DB (as VM), TM looks for the "email" attribute to get the
-   value.
-   vm() function was replaced with t_write_req()
-   vm_reply() fifo functions was replcated by TM with t_reply() fifo function
-   NOTE!! because current version of SEMS/AA try to send reply via vm_reply,
-   it will not work with the TM version.
- - xlog - printing the body of any header by specifying the name; new
-   specifiers for user-agent, message buffer, message length, message's flags,
-   message id.
-
-new modules:
- - avp / avp_db / avp_radius - load and check avps per caller or callee
- - avpops - flexible module for operations with avps and database, introducing
-   a pseudo-varible support in SER configuration file
- - cpl-c - implementation of Call Processing Language
- - dispatcher - implements a dispatcher for incoming requests using hashes
-   over parts of the request to select the destination
- - diversion - implements the Diversion extensions as per 
-   draft-levy-sip-diversion-08
- - flatstore - simple module that implements very fast inserts for accounting
-   purposes
- - gflags - keeps a bitmap of flags in shared memory and may be used to change
-   behaviour of server based on value of the flags
- - options - answer server options requests
- - speeddial - provides on-server speed dial facilities
- - uri_db - split from uri module, performs various checks related to SIP URI
-   over database fields
-
-removed modules:
- - vm - the functionality was transfered to tm module (see t_write_req(...)
-   method)
-
-core:
- - new parts:
-       UNIX domain socket server implemented
- - changes: 
-    - command line: removed -p port and extended -l:
-       -l [proto:]addr[:port] , where proto=udp|tcp and 
-       addr= host|ip_address|interface_name. The format is the same
-       as for listen in the config file. ipv6 addresses must be enclosed in
-       [].
-    - added from_uri & to_uri: behave exactly like uri but use the
-      "From:"/"To:" uris
-       (e.g.: if (from_uri==myself) ..., if (to_uri=~"^sip:test@")... )
-    - config: better escape support in strings (e.g. \", \<cr>, \x0a, \012)
-    - bad network addresses are now automatically fixed
-      (e.g. 192.168.1.80/27 => 192.168.1.64/27)
-    - avp (Attribute-Value Pair) support added
-    - avp alias support added
-    - multicast support added (see mcast_loopback & mcast_ttl)
-    - saving of procces group id enabled, if the -G option is specified
-      (a safe way to quickly kill all ser processes)
-    - core dump-ing is enabled by default, see also disable_core_dump
-    - protocol and port can be specified in the alias and listen lines, e.g.:
-        alias= tcp:foo.bar:* udp:test.bar:5080 foo.com
-        listen= eth0   tcp:eth0:5065 udp:127.0.0.1 [3ffe::1]
-    - multiple operator support: ==, != for special operations (e.g myself, ip)
-                              ==, !=, ~= for strings
-                              ==, !=, >, <, >=, <= for integers
-    - database api changed to support usage of different drivers
-      simultaneously. The database URL must start now with the name of the
-      driver (module). Example: for mysql the DB URL
-      'sql://user:password@dbhost:port/database' must be specified now as
-      'mysql://user:password@dbhost:port/database'
- - new config variables:
-   mcast_loopback = <yes/no> - loopback sent multicast datagram, default no.
-   mcast_ttl = number - set multicast ttl, default OS specific (usually 1).
-   sock_mode = <permissions> (e.g. sock_mode=0600:  default value = 0660)
-       ser unix sockets and fifo will be created with this permissions
-       (old name fifo_mode is still supported, but deprecated)
-   sock_user = username|"uid"
-   sock_group = groupname|"gid"
-      change the owner and/or group of the ser unix sockets or fifo
-      Short example config snippet:
-           sock_mode=0600        # ser socket/fifo mode
-           sock_user="www-data"  # ser socket/fifo owner
-           sock_group=nogroup  
-           user=nobody       # ser user (ser will suid to it)
-   disable_core_dump= yes|no 
-       by default core dump limits are set to unlimited or a high enough
-       value, set this config variable o yes to disable core dump-ing
-       (will set core limits to 0)
-   open_files_limit= number
-       if set and bigger than the current open file limit, ser will try
-       to increase its open file limit to this number. Note: ser must be
-       started as root to be able to increase a limit past the hard limit
-       (which, for open files, is 1024 on most systems)
-   tcp_connect_timeout= seconds
-       time before an ongoing connect will be aborted
-   tcp_send_timeout= seconds
-       time after a tcp connection will be closed if it is not available 
-       for writing in this interval (and ser wants to send something on it)
-   tcp_accept_aliases= yes|no
-       if a message received over a tcp connection has "alias" in its via
-       a new tcp alias port will be created for the connection the message
-       came from (the alias port will be set to the via one).
-       Based on draft-ietf-sip-connect-reuse-00.txt, but using only the port
-       (host aliases are too dangerous IMHO, involve extra DNS
-        lookups and the need for them is questionable)
-       See force_tcp_alias for more details.
-   log_facility = LOG_LOCAL0
-       if ser logs to syslog, you can control the facility for logging. Very
-       useful when you want to divert all ser logs to a different log file.
-       See man page syslog(3) for more detailes.
-   unix_sock = "/tmp/ser.sock"
-       The name of the socket the unixsock server should listen on.
-   unix_sock_children = 1
-       The number of children that will listen on the unix domain socket.
-   unix_tx_timeout = 2000
-       Timeout (in ms) used when sending replies through unix sockets.
- - new script commands:
-   force_send_socket([proto:]address[:port])
-       sends the message from the specified socket (it _must_ be one of the
-       sockets ser listens on). If the protocol doesn't match (e.g. udp
-       message "forced" to a tcp socket) the closest socket of the same
-       protocol is used.
-   force_tcp_alias()
-   force_tcp_alias(port)
-       adds a tcp port alias for the current connection (if tcp).
-       Usefull if you want to send all the trafic to port_alias through
-       the same connection this request came from [it could help 
-       for firewall or nat traversal].
-       With no parameters adds the port from the message via as the alias.
-       When the "aliased" connection is closed (e.g. it's idle for too
-       much time), all the port aliases are removed.
-       Note: by default ser closes idle connection after 3 minutes (stable)
-       or 1 minute (unstable) so to take full advantage of tcp aliases for
-       things like firewall and nat traversal, redefine TCP_CON_*TIMEOUT
-       in tcp_conn.h and recompile. Also right now there can be maximum
-       3 port aliases to a connection (you shouldn't need more than one).
-       To change this redefine TCP_CON_MAX_ALIASES in the same file
-       (set it to you desired value + 1; 1 is needed for the real port).
-
-utilities:
- - ngrep patch for displaying new lines in captured SIP messages is no longer
-   needed; use ngrep V 1.42 with the option "-W byline"
-
-
-
-***********************************************
-* Changes/fixes introduced in 0.8.12
-***********************************************
-+--------------------------------------------------------+
-| WARNING: if you want to use a 0.8.11 config script     |
-| with 0.8.12, replace if ( len_gt(number) ) with:       |
-|                      if ( msg:len > bumber )           |
-+--------------------------------------------------------+
-
-New Features
-============
-
-texops:
- - subst('s/re/repl/flags') support
-core:
- - added switch to check the config file (-c)
- - changes: removed len_gt() and replaced with if (msg:len op number|max_len)
- - multiple operator support: ==, != for special operations (e.g myself, ip)
-                              ==, !=, ~= for strings
-                              ==, !=, >, <, >=, <= for integers
- - new config variables:
-     advertised_address= ip | string
-       address advertised in via and in the DST_* lumps (e.g RR)
-       This is the default value, if empty (default) the socket
-       address will be used.
-       WARNING: - don't set it unless you know what you are doing
-                 (e.g. nat traversal)
-               - you can set anything here, no check is made
-                (e.g. foo.bar will be accepted even if 
-                 foo.bar doesn't exist)
-    advertised_port= no
-       port advertised in via and in the DST_*lumps (e.g. RR)
-       This is the default value, if empty (default) the socket
-       port will be used.
-       Same warnings as above.
- - new script commands:
-    set_advertised_address(ip|string)
-       same as advertised_address but it affects only the current message:
-       Message host/lump address= the set_advertised one if
-       present, else advertised_address else socket address.
-    set_advertised_port(no)
-       same as advertised_port but it affects only the current
-       message; see set_advertised_address & s/address/port/g
-
-usrloc:
- - usernames are case insensitive
- 
-registrar:
- - lookup function succeeds when appending of a branch failed
-
-auth_db:
- - support for rpid stored in database (thanks to Jakob Schlyter)
-
-Bug fixes
-=========
-- memory leak in digest credentials parser fixed
-- authenticathion ha1 didn't include domain if username was of the form
-  user at domain and calculate_ha1 was set to yes (modules/auth_db)
-- tm reply processing race condition (modules/tm), special thanks go to
- Dong Liu
-- Many bugs in pa module fixed, works with registrar again.
- 
-Security updates
-================
- 
-- fifo processing code will write responses only to other
- fifos and only if they are not hard-linked, also default
- ser fifo persmissions were changed to 0600.
-                                                                                
-Performance improvements
-========================
-- tuned internal malloc implementation parameters to better reflect the
-actual workload (malloc is a little bit faster now)
-
-
-
-***********************************************
-* Changes introduced in 0.8.11
-***********************************************
-
-+--------------------------------------------------------+
-| CAUTION: the 0.8.11 release include changes which      |
-| are incompatible with scripts and databases used       |
-| in previous versions. Care is advised when upgrading   |
-| from previous releases to 0.8.11.                      |
-+--------------------------------------------------------+
-
-New features
-=============
-- RFC3261 support
-	- TCP support and cross-transport forwarding [core]
-	- loose routing support [rr module]
-- New modules
-	- vm -- voicemail interface [vm]
-	- ENUM support [enum]
-	- presence agent [pa]
-	- dynamic domain management -- allows to manipulate 
-	  hosting of multiple domains in run-time [module]
-	- flat-text-file database support [dbtext]
-	- rich access control lists [permissions]
-- Feature Improvements
-	- click-to-dial, which is based on improved tm/FIFO 
-	  that better supports external applications [tm module]
-	- web accounting -- acc module can report to serweb
-  	  on placed calls [acc module]
-	- improved exec module (header fields passed now
-      as environment variables to scripts) [exec module]
-- Architectural Improvements
-	- powerpc fast locking support
-	- netbsd support
-	- 64 bits arch. support (e.g. netbsd/sparc64).
-- New Experimental Features (not tested at all yet)
-	- nathelper utility for Cisco/ATA NAT traversal [nathelper]
-	- another NAT traversal utility [mangler]
-	- postgress support [postgress]
-	- fcp module [fcp]
-	- pdt module (prefix2domain) [pdt]
-
-Changes to use of ser scripts
-=============================
-
-About Multiple Transport Support
---------------------------------
-SER now suports multiple transport protocols: UDP and TCP. As there
-may be UAs which support only either protocol and cannot speak to
-each other directly, we recommend to alway record-route SIP requests,
-to keep the transport-translating SER in path. Also, if a destination
-transport is not known, stateful forwarding is recommended -- use of
-stateless forwarding for TCP2UDP would result in loss of reliability.
-
-
-core
-----
-- reply_route has been renamed to failure_route -- the old name caused
-  too much confusion
-- forward_tcp and forward_udp can force SER to forward via specific
-  transport protocol
-
-acc module:
------------
-- radius and sql support integrated in this module; you need to
-  recompile to enable it
-- acc_flag is now called log_flag to better reflect it relates
-  to the syslog mode (as opposed to sql/radius); for the same
-  reasons, the accounting action is now called "acc_log_request"
-  and the option for missed calls "log_missed_calls"
-- log_fmt allows now to specify what will be printed to syslog
-
-auth module:
-------------
-- auth module has been split in auth, auth_db, auth_radius, group
-  group_radius, uri and uri_radius 
-- all the parameters that were part of former auth module are now 
-  part of auth_db module
-- auth_db module contains all functions needed for database
-  authentication
-- auth_radius contains functions needed for radius authentication
-- group module contains group membership checking functions
-- group_radius contains radius group membeship checking functions
-- is_in_group has been renamed to is_user_in and places to groups
-  module
-- check_to and check_from have been moved to the uri module
- 
-
-im module:
-----------
-- im is no longer used and has been obsoleted by TM
-
-exec module:
-------------
-- exec_uri and exec_user have been obsoleted by exec_dset; 
-  exec_dset is identical to exec_uri in capabilities; it 
-  additionaly passes content of request elements (header 
-  fields and URI parts) in environment variables; users of 
-  exec_user can use exec_dset now and use the "URI_USER"  
-  variable to learn user part of URI
-- exec_dset and exec_msg return false, if return value of 
-  script does not euqal zero
-- exec_dset takes an additional parameter, which enables 
-  validation of SIP URIs returned by external application
-
-jabber module:
---------------
-- presence support for Jabber users is enabled loading the PA
-  module and using handle_subscribe("jabber") for SUBSCRIBE 
-  requests to jabber user 
-
-msilo module:
--------------
-- m_store has now a parameter to set what should be considered
-  for storing as destination uri. This enables support for saving
-  the messages on negative replies.
-
-radius_acc module:
-------------------
-- radius_acc module has been removed and radius accounting 
-  is now part of acc module
-
-registrar/usrloc modules:
--------------------------
-- multi domain support, the modules user username at domain as AOR
-  if enabled
-- descent modification time ordering of contacts
-- case sensitive/insensitive comparison of URI can be enabled
-
-rr module:
-----------
-- addRecordRoute has been replaced with record_route
-- rewriteFromRoute has been replaced with loose_route()
-- a new option, "enable_full_lr" can be set to make life
-  with misimplemented UAs easier and put LR in from "lr=on"
-- rr module can insert two Record-Route header fields when
-  necesarry (disconnected networks, UDP->TCP and so on)
-
-tm module:
-----------
-- t_reply_unsafe, used in former versions within reply_routes,
-  is deprecated; now t_reply is used from any places in script
-- t_on_negative is renamed to t_on_failure -- the old name just
-  caused too much confusion
-- FIFO t_uac used by some applications (like serweb) has been
-  replaced with t_uac_dlg (which allows easier use by dialog-
-  oriented applications, like click-to-dial) 
-- if you wish to do forward to another destination from 
-  failure_route (reply_route formerly), you need to call t_relay
-  or t_relay_to explicitely now
-- t_relay_to has been replaced with t_relay_to_udp and t_relay_to_tcp
-

Deleted: ser/trunk/README
===================================================================
--- ser/trunk/README	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/README	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,107 +0,0 @@
-$Id: README,v 1.12 2004/12/16 17:46:44 andrei Exp $
-
-
-             iptel.org SIP Express Router (ser)
-                http://www.iptel.org/ser/
-               
-
-
-I.   About SIP Express Router (ser)
-II.  Feature List
-III. About iptel.org
-IV.  Obtaining Help
-V.   Contact, Licensing and More Information
-
-
- SIP Express Router (SER) is an industrial-strength, free VoIP 
-server based on the session initiation protocol (SIP RFC2543-bis). 
-It is engineered to power IP telephony infrastructures up to large 
-scale. The server keeps track of users, sets up VoIP sessions, 
-relays instant messages and creates space for new plug-in 
-applications. Its proven interoperability guarantees seamless 
-integration with components from other vendors, eliminating the 
-risk of a single-vendor trap. It has successfully participated in 
-various interoperability tests in which it worked with the products 
-of other leading SIP vendors.
-
-The SIP Express Router enables a flexible plug-in model for new 
-applications: Third parties can easily link their plug-ins with 
-the server code and provide thereby advanced and customized 
-services.  In this way, plug-ins such as SNMP support, RADIUS 
-accounting, or SMS gateway have already been developed and are 
-provided as advanced features. Other modules are underway: 
-Presence server, firewall control, and more.
-
-Its performance and robustness allows it to serve millions of users 
-and accommodate needs of very large operators. With a $3000 dual-CPU, 
-the SIP Express Router is able to power IP telephony services in an 
-area as large as the Bay Area during peak hours. Even on an IPAQ PDA, 
-the server withstands 150 calls per second (CPS)! The server has been 
-powering our iptel.org free SIP site withstanding heavy daily load 
-that is further increasing with the popularity of Microsoft's 
-Messenger.  
-
-The SIP Express Router is extremely configurable to allow the creation
-of various routing and admission policies as well as setting up new 
-and customized services. Its configurability allows it to serve many 
-roles: network security barrier, application server, or PSTN gateway 
-guard for example.
-
-
-II. Feature List
-
-Based on the latest standards, the SIP Express Router (SER) includes 
-support for registrar, proxy and redirect mode. Further it acts as 
-an application server with support for CPL, instant messaging and 
-presence (IM&P) including a 2G/SMS gateway, a call control policy 
-language, call number translation, private dial plans and accounting, 
-authorization and authentication (AAA) services. SER runs on Sun/
-Solaris, PC/Linux, IPAQ/Linux platforms and supports  both IPv4 and 
-IPv6.
-
-Most of SER features are implemented as plug-in modules. See
-README-MODULES for a description of modules available in
-ser distribution.
-
-
-III. About iptel.org
-
-iptel.org is a know-how organization spun off from Germany's national 
-research company FhG Fokus. One of the first SIP implementations ever, 
-low-QoS enhancements, interoperability tests and VoIP-capable firewall 
-control concepts are examples of well-known FhG's work.
-
-iptel.org continues to keep this know-how leadership in SIP. 
-The access rate of the company's site, a well-known source of 
-technological information, is a best proof of interest. Thousands 
-of hits come every day from the whole Internet.
-
-IV. Obtaining Help
-
-We offer best-effort free support for ser. "best-effort" means 
-that we try to solve your problems via email as soon as we can, 
-subject to available manpower. If you need commercial support, 
-contact info at iptel.org.
-
-To receive feedback to your inquiries, we recommend you to subscribe 
-to the serusers mailing list and post your queries there. This mailing 
-list is set up for mutual help by the community of ser users and developers. 
-To participate in the mailing list, subscribe at the following web address: 
-         http://mail.iptel.org/mailman/listinfo/serusers.
-Send your questions to 
-         serusers at iptel.org. 
-
-V. Contact, Licensing and More Information
-
-For any additional information, send an inquiry to info at iptel.org. 
-Licensing conditions other than GPL are available on request. 
-
-Most up-to-date information is always available at our website,
-                 http://www.iptel.org/ser/
-
-Particularly, it includes:
-- administrator's guide
-- installation guidelines (INSTALL)
-- download links
-- list of known issues (ISSUES)
-- etc.

Deleted: ser/trunk/README-MODULES
===================================================================
--- ser/trunk/README-MODULES	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/README-MODULES	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,363 +0,0 @@
-# $Id: README-MODULES,v 1.12 2004/12/16 17:39:46 andrei Exp $
-
-'Owner' field contains a developers CVS username, see file
-AUTHORS for more details.
-
-'Use' tells how deployable a module is. Regular indicates
-we deploy and use this feature in our infrastructure.
-Experimental tells we are still gaining operation experience.
-Temporary labels modules which momentarily fix some
-bugs/lacks and will disappear later. Example modules
-are primarily useful as educational source code for
-ser programmers.
-
-'Maturity' is label as stable if a module has been deployed
-for longer time, alpha if it is still being developed and
-beta if it is under test.
-
-'Depends on' field tells which modules the module needs. 
-
-Modules underway include firewall control, and more. 
-If you are interested in any of these or other modules, 
-write us to info at iptel.org.
-
-List of currently available ser modules:
-
-Name:       acc
-Owner:      jiri
-Use:        regular
-Maturity:   stable
-Depends on: tm
-Purpose:    Transaction accounting/example (the module server also as an
-            example of how to bind to transaction management)
-
-Name:       auth
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: sl
-Purpose:    Common functions for digest authentication
-
-Name:       auth_db
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: mysql auth
-Purpose:    Database support for digest authentication
-
-Name:       auth_radius
-Owner:      janakj
-Use:        experimental
-Maturity:   beta
-Depends on: auth
-Purpose:    Radius support for digest authentication
-
-Name:       avp
-Owner:      jiri
-Use:        regular
-Maturity:   beta
-Depends on: -
-Purpose:    Loads and checks avps per caller or callee
-
-Name:       avp_db
-Owner:      janakj
-Use:        regular
-Maturity:   beta
-Depends on: mysql avp
-Purpose:    Database support for avps
-
-Name:       avp_db
-Owner:      janakj
-Use:        regular
-Maturity:   beta
-Depends on: avp
-Purpose:    Radius support for avps
-
-Name:       avpops
-Owner:      ramona
-Use:        regular
-Maturity:   beta
-Depends on: 
-Purpose:    avp operations, pseudo-variable support
-
-Name:       cpl-c
-Owner:      bogdan
-Use:        regular
-Maturity:   beta
-Depends on: -
-Purpose:    Call Processing Language
-
-Name:       dbtext
-Owner:      dcm
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Database emulation in plaintext files
-
-Name:       dispatcher
-Owner:      dcm
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Implements a dispatcher for incoming requests using hashes
-
-Name:       diversion
-Owner:      janakj
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Support for the Diversion extensions (draft-levy-sip-diversion-08)
-
-Name:       exec
-Owner:      jiri
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    Execution of external URI processing logic
-
-Name:       ext
-Owner:      bogdan
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Execution of external URI processing logic
-
-Name:       extcmd
-Owner:      bogdan
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Execution of external commands
-
-Name:       flatstore
-Owner:      janakj
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    Very fast accounting in flat text files
-
-Name:       gflags
-Owner:      jiri
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    global flags that can be changed by fifo commands
-
-Name:       group
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: database
-Purpose:    Group membership checking using database
-
-Name:       group_radius
-Owner:      janakj
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    Group membership checking using Radius
-
-Name:       jabber
-Owner:      dcm
-Use:        experimental
-Maturity:   beta
-Depends on: database tm
-Purpose:    SIMPLE 2 Jabber gateway
-
-Name:       maxfwd
-Owner:      bogdan
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    Max-Forwards check
-
-Name:       msilo
-Owner:      dcm
-Use:        experimental
-Maturity:   beta
-Depends on: database tm
-Purpose:    Message store
-
-Name:       mysql
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    MySQL database support
-
-Name:       options
-Owner:      calrissian
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    Answers server options requests
-
-Name:       pa
-Owner:      janakj
-Use:        experimental
-Maturity:   alpha
-Depends on: tm (usrloc jabber)
-Purpose:    Presence agent
-
-Name:       pike
-Owner:      bogdan
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Excessive load detection
-
-Name:       print
-Owner:      andrei
-Use:        example
-Maturity:   stable
-Depends on: -
-Purpose:    Printing messages to stdout
-
-Name:       registrar
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: usrloc sl
-Purpose:    Registrar
-
-Name:       rr
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    Routing and Record-Routing
-
-Name:       sl
-Owner:      bogdan
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    Stateless replies
-
-Name:       sms
-Owner:      bogdan
-Use:        regular
-Maturity:   stable
-Depends on: tm
-Purpose:    SMS gateway
-
-Name:       snmp
-Owner:      ric
-Use:        removed
-Maturity:   removed
-Depends on: -
-Purpose:    SNMP Management
-
-Name:       speeddial
-Owner:      ramona
-Use:        regular
-Maturity:   beta
-Depends on: -
-Purpose:    On-server speed dial facilities
-
-Name:       textops
-Owner:      andrei
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    Message Textual Operations
-
-Name:       tm
-Owner:      jiri
-Use:        regular
-Maturity:   beta
-Depends on: -
-Purpose:    Transaction Management
-
-Name:       uri
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: database
-Purpose:    Various URI checks
-
-Name:       uri_db
-Owner:      janakj
-Use:        experimental
-Maturity:   beta
-Depends on: mysql uri
-Purpose:    URI checking using DB
-
-Name:       uri_radius
-Owner:      janakj
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    URI checking using Radius
-
-Name:       usrloc
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: database
-Purpose:    User location support
-
-Name:       vm
-Owner:      rco
-Use:        removed (functionality moved in tm)
-Maturity:   removed
-Depends on: tm
-Purpose:    Voicemail interface
-
-Name:       xlog
-Owner:      ramona
-Use:        regular
-Maturity:   stable
-Depends on: 
-Purpose:    formatted logging (printf style)
-
-Contributions
--------------
-Name:       domain
-Owner:      jih
-Use:        experimental
-Maturity:   beta
-Depends on: mysql
-Purpose:    Local domain lists and related functions
-
-Name:       enum
-Owner:      jih
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    Enum support
-
-Name:       domain
-Owner:      jih
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    support for maintenance of multiple domains
-
-Name:       mediaproxy
-Owner:      danp, agprojects
-Use:        regular
-Maturity:   stable
-Depends on: mediaproxy media relay
-Purpose:    nat traversal
-
-Name:       nathelper
-Owner:      sobomax
-Use:        regular
-Maturity:   stable
-Depends on: rtpproxy
-Purpose:    nat traversal
-
-Name:		permissions
-Owner:		tirpi
-Use:		experimental
-Maturity:	beta
-Depends on:	-
-Purpose:	hosts.allow-like ACLs
-
-Name:       postgress
-Owner:      lgfausak
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    Postgress DB support

Deleted: ser/trunk/README.cfg
===================================================================
--- ser/trunk/README.cfg	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/README.cfg	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,66 +0,0 @@
-$Id: README.cfg,v 1.1 2002/09/26 12:16:17 andrei Rel $
-
-[ under construction :) ]
-
-Sources:
-
- - set your tab stop to 4 (in vi: set ts=4).
-
-
-Compile & Install:
-
-- read INSTALL
-- compile & sip_router -h
-
-
-Configuration files:
-
-	Example configuration files in ./tests/*.cfg
-
-	Global parameters:
-		- debug
-		- listen
-		- alias
-		- port
-		- fork
-		- children_no
-		- log_stderror
-		- fifo
-		- loadmodule "path/modulename"
-		...
-
-	Logical expressions [missing]
-		Operators:
-			==
-			=~
-			and/&
-			or/|
-			not/!
-		Lvalues:
-			- uri
-			- method
-			- src_ip
-			- dst_ip
-			- myself
-		Rvalues:
-			- string
-			- integer
-			- ipv4 or ipv6 address
-			- netv4 or netv6 address
-			- myself (matches any uri or ip address the server listens on or 
-			 registered as an alias for the server)
-			
-	Commands:
-		- forward
-		- send
-		- error [not implemented yet ]
-		- log
-		- exec
-		- route/goto
-		- drop/break
-		- if {} else{}
-	Modules:
-		- loadmodule "..."
-		- commands registered by modules
-
-

Deleted: ser/trunk/TODO
===================================================================
--- ser/trunk/TODO	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/TODO	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,214 +0,0 @@
-$Id: TODO,v 1.88 2004/11/15 16:46:14 andrei Exp $
-
-( - todo, x - done)
-x change subst_run/str to return error (different from not found)
-x change subst_user as on serdev
-x tm : fake_env: fake also bind_address (else the default will be used
- in the failure route)
-- [core] parse_uri support for new uri params
-x [core] on sig_child, kill the processes if they don't exit in a 
-  reasonable time
-- [doc] document force_rport()
-- [fifo] fix fgets error handling (it does not set errno always,
-   , right now kills all ser if interrupted by a signal on ?solaris?)
-- [mem] make shm_realloc be fragmentation friendly: call shm_compact_frags
-   for the small frags?, don't produce smaller frags -- be wastefull?
-- [mem] qm_compact_frags (compacts frags if possible), keep a 
-        fragment count/bucket and if too much mem. is blocked in one bucket
-        de-frag.
-x [mem] investigate: don't produce frag if frag size < request
-      (should reduce the unrequested fragments number)
-x [mem] investigate: keep an used/unused flag per fragment, on free
-      check if neighboring frags were not used and if so defragment
-- [timer] multiple timers? at least ticks should no be affected by the amount
-   of work done in the timer handlers
-- [tcp] ser intiated tcp connections use INADDR_ANY (they should be bound first
-  to some ip/port ?function of the dest?)
-- [tcp] need to confirm fd receipt after send_fd, before closing it (this might
- happen in tcp_send new conn.) (see FreeBSD send BUGS for more info)
-x [tcp] make send_all, send  non-blocking ready ?
-x [tcp] tcp_send w/ timeout (to avoid waiting forever to send DOS)
-
-- forward port fixes from testing
-- [udp] use recvmsg to get the dst ip address in udp_rcv_loop
- (it won't work on solaris, but...)
-x nathelper: extract_body broken-> uses content_length value form the 
- message instead of recalculating it + duplicate code for get_body()
-- fix check_sel_op -- add proto for uri proto checks
-- [tcp] add setting for infinite tcp conn life?
-
-- fix 2 different fixups for diff. no of parameter
- (add no of params to struct action?) -- linked to var. no. of params
-x alias support fot tcp/tls port numbers
-- warning builder set_advertised address support
-- grep parse_uri & replace with parse_sip_msg_uri (e.g do_action!)
-x update AUTHORS, debian/copyright, ser.8, ser.cfg.5 from stable
-x update Makefile*  from stable
-x update all package specs from stable
-- [tcp] add BUG checks for  fd > 0 && fd <= maxfd to all selects?
-- [tcp] switch to poll if HAVE_POLL defined (it's unifix so  everybody 
-   should have it, but it would be slower on systems emulating it, like
-   older linuxes)
-- [tcp] switch to epoll if HAVE_EPOLL defined (linux 2.6.*)
-- [tcp] switch to SIGIO if no epoll (linux only, better than poll)
-x tcp_main_loop: BUG cases should "conitnue;"
-x change len_gt into and expr (e.g msg:len).
-x sipit: uri == myself doesn't match tls port = 5061 
-  -- updated: new socket_info list code should fix it
-x sipit: fix check_self & *_alias to work with tcp & tls
-  -- updated: new socket_info list code should fix it
-x sipit: fix ipv6 references in check_self
-x regex subst on uris?
-x port receive.c pre_script_cb fix from stable
-x extend alias to include port numbers :
-    something like alias= foo1.bar:5080 foo2.bar foo3.bar:*
-x extend listen and alias to include port numbers and protocol:
-       tcp foo.bar:5063, udp foo.bar:5062, foo2.bar
-x added set_advertised_{address,port} -- was: add force_via, force_srcip a.s.o
-(the advertised addresses should be overwritable from the script).
-x ? add force_outbound_socket(ip)? (choose an apropriate socket from the
- listen list for sending the msg; works on udp only)
-
-release:
-- unlink_timer_lists -- unsafe ???
-x print_cseq_num max. size fix.
-x backport: tcp conn id fix to stable + destroy_tcp 
-x backport: acc mem. leak fixes
-x backport: dns mem. leak fixes (resolve.[ch])
-x backport: id_builder receive_msg mem. leak (msg_translator.c)
-x backport: check_self ipv6/case fixes (forward.c)
-x change tcp timeouts to 2 or 3 min?
-x check via ipv6 fixes and backport to stable
-x fix kill(0, SIGTERM) on startup error (will kill also the launching shell
- if non-interactive)
-- fix modules destroy (some modules will try to free uninitialized resources
-   if modules_init was not called first)
-x fix CC_VER bug in newer Makefile (move DEFS after CC?)
-x openbsd 3.2 packages -> doc in share/doc (and not in doc)
-- openbsd 3.2 -> add jabber and mysql to the package
-x fix modules makefiles (so that cd modules/foo; make will also link the proper
-   libs)
-x fix -march=..., or compile w/ i386 for the release
-x resolver should resolve [ipv6]
-x remove parse_uri debugging info
-- fix DBG("<%.*s>", len, _null_)
-x add -t, -w, -u -g equivalents to the config file
-x force add rport : force_rport()
-- kill all the fprintf
-see also tcp & tm
-
-
-
-not so critical:
-x replace  remaining mallocs/frees at least in msg_translator.c
-- add $(INCLUDES) to the Makefiles
-x make ser suncc ready
-- fix parse_cseq!!! (it doesnt parse 1234\n INVITE a.s.o)
-x fix 0 parameter module f. call
-x better Via parsing (handle ' ' in uri, eg: foo.bar : 1234 ; received=) and
- ipv6 addresses ([fec0:aa::01]).
-- fix format string vulnerability in log()
-- fix alignment access problems (warning on Sun)
-x (different way) add request header bitmap field for the modules
-- introduce variables & function in the script language (cfg. file)
-- ? variable number of params functions in script (no longer limited to 2)?
-- kill bind_idx
-x fix bind_address for tcp (in some  way)
-x add conflict in debs/rpms/etc (conflict w/ older ser-mysql, ser-jabber)
-x new packages ser-radius etc
-x tcp_destroy (called on ser exit)
-- BUG:?? ipv6 only and try to send to ipv4 => getsendsocket=>0 (send_ipv6=0)
-  the reverse is also true
-- SUBST lumps for replies (involves setting the send_socket in forward_reply, 
-  before build_res_from_res, & adding it to buid_res_from_res).
-
-
-High priority:
-x- parse_uri should not copy anymore the uri members (and it should not 0
- terminate them anylonger).
-x fix/replace T_REF/T_UNREF
-x review all the tm locking
-x if () {} else {}
-x plugin interface
-x ipv6 support
-x reply ("response line")
-x drop ACKs for our replies
-x add To-tag (for the replies)
-x add User-Agent (for the replies)
-
-Low priority:
-- icmp error handling
-x fix via address someday
-- fix listen=0.0.0.0 case (see [udp] use recvmsg...)
-x forward to received= if present
-- make it easier to register a statically linkable module.
-x add support for -u user and -g group (not only -u uid, -g uid)
-x change uid/gid after opening the sockets
-- exec improvments (add format strings to it)
-x command line switch for checking the config file syntax
-- config file version (a la sendmail)
-0 loop detection
-- cfg. file reload
-- flags for using names or ip adresses in Via ?
-- escape char injection/printing fix (verify all log/printed messages
- for terminal escapes and remove them)
-
-x handle SIGCHLD, SIGHUP
-- use a  standard lex compatible .lex format (instead of flex)
-x try & use native compiler & ld if possible
-
-x make install
-x init.d scripts (and rc.local? for *BSD or Slackware)
-x man page
-- autoconf scripts
-x Debian package build files
-x the same for rpm
-x the same for *BSD
-
-
-x jku: branch hash computation over canonical values
-0 jku: loop checking
-- jku: try CRC as opposed to MD5
-
-
-x freopen stdin, stdout, stderr to /dev/null
-- add a section on building ser & configuring it for maximum performance
- (-DF_MALLOC, -DNO_DBG, ... sip_warning=0, a.s.o)
-x add src_port, dst_port, proto to cfg.{y,lex}
-x generic locking lib
-x convert tm to use new locking lib
-
-optimizations:
-- better timer interface with hashes (a la openbsd)
-- change lumps (flags for malloc type, recursive? see COND lumps )
-- atomic ops?
-- assembly for some very common used function
-- getsock* cache
-- fd cache for tcp_send
-- dns cache? (see DNS)
-- make option to use openssl MD5 (HMAC_Init(hmac_ctx, (void*)key, 16, md5_md))
- [ 0.9.7 version is really fast ]
-
-
-tcp stuff:
-x timeout on long sends
-x tcp disable nagle 
-x set TOS to minimize delay
-x tcp locking/atomic ops review
-- tcp fix simultaneous connects (ser process is blocked until connect timeouts
- => possible DOS)
-
-tm optimizations:
-
-- inline/macro/drop for: get_tm_table, set_kr, lock_hash, unlock_hash,
-  set_t, get_t
-- replace snprintfs int build_uac_request, *_dlg
-- fix the huge param no. in this functions (use structs if neccessary):
-  build_uac_request, build_uac_request_dlg, t_uac, t_uac_dlg
-- uri2proxy - t_uac_dlg => extra malloc/free (no üroxy needed here)
-  
-dns stuff:
- - dns cache
- - support for NAPTR (naptr(domain, pref_proto)=> srv_rec + proto => srv(srv_rec, proto) => A or AAAA => A/AAAA(name))
- - support for fallback (inside the same A/AAAA record, other ip; if fails => other SRV ; if it fails too other NAPTR
-[see rfc3263]

Deleted: ser/trunk/action.c
===================================================================
--- ser/trunk/action.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/action.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,741 +0,0 @@
-/*
- * $Id: action.c,v 1.66 2004/11/30 16:28:23 andrei Exp $
- *
- * 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 at 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
- *
- * History:
- * ---------
- *  2003-02-28  scratchpad compatibility abandoned (jiri)
- *  2003-01-29  removed scratchpad (jiri)
- *  2003-03-19  fixed set* len calculation bug & simplified a little the code
- *              (should be a little faster now) (andrei)
- *              replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-04-01  Added support for loose routing in forward (janakj)
- *  2003-04-12  FORCE_RPORT_T added (andrei)
- *  2003-04-22  strip_tail added (jiri)
- *  2003-10-02  added SET_ADV_ADDR_T & SET_ADV_PORT_T (andrei)
- *  2003-10-29  added FORCE_TCP_ALIAS_T (andrei)
- *  2004-11-30  added FORCE_SEND_SOCKET_T (andrei)
- */
-
-
-#include "comp_defs.h"
-
-#include "action.h"
-#include "config.h"
-#include "error.h"
-#include "dprint.h"
-#include "proxy.h"
-#include "forward.h"
-#include "udp_server.h"
-#include "route.h"
-#include "parser/msg_parser.h"
-#include "parser/parse_uri.h"
-#include "ut.h"
-#include "sr_module.h"
-#include "mem/mem.h"
-#include "globals.h"
-#include "dset.h"
-#ifdef USE_TCP
-#include "tcp_server.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <string.h>
-
-#ifdef DEBUG_DMALLOC
-#include <dmalloc.h>
-#endif
-
-
-/* ret= 0! if action -> end of list(e.g DROP), 
-      > 0 to continue processing next actions
-   and <0 on error */
-int do_action(struct action* a, struct sip_msg* msg)
-{
-	int ret;
-	int v;
-	union sockaddr_union* to;
-	struct socket_info* send_sock;
-	struct proxy_l* p;
-	char* tmp;
-	char *new_uri, *end, *crt;
-	int len;
-	int user;
-	struct sip_uri uri, next_hop;
-	struct sip_uri *u;
-	unsigned short port;
-	int proto;
-
-	/* reset the value of error to E_UNSPEC so avoid unknowledgable
-	   functions to return with error (status<0) and not setting it
-	   leaving there previous error; cache the previous value though
-	   for functions which want to process it */
-	prev_ser_error=ser_error;
-	ser_error=E_UNSPEC;
-
-	ret=E_BUG;
-	switch ((unsigned char)a->type){
-		case DROP_T:
-				ret=0;
-			break;
-		case FORWARD_T:
-#ifdef USE_TCP
-		case FORWARD_TCP_T:
-#endif
-#ifdef USE_TLS
-		case FORWARD_TLS_T:
-#endif
-		case FORWARD_UDP_T:
-
-			if (a->type==FORWARD_UDP_T) proto=PROTO_UDP;
-#ifdef USE_TCP
-			else if (a->type==FORWARD_TCP_T) proto= PROTO_TCP;
-#endif
-#ifdef USE_TLS
-			else if (a->type==FORWARD_TLS_T) proto= PROTO_TLS;
-#endif
-			else proto= PROTO_NONE;
-			if (a->p1_type==URIHOST_ST){
-				/*parse uri*/
-
-				if (msg->dst_uri.len) {
-					ret = parse_uri(msg->dst_uri.s, msg->dst_uri.len, &next_hop);
-					u = &next_hop;
-				} else {
-					ret = parse_sip_msg_uri(msg);
-					u = &msg->parsed_uri;
-				}
-
-				if (ret<0) {
-					LOG(L_ERR, "ERROR: do_action: forward: bad_uri "
-								" dropping packet\n");
-					break;
-				}
-				
-				switch (a->p2_type){
-					case URIPORT_ST:
-									port=u->port_no;
-									break;
-					case NUMBER_ST:
-									port=a->p2.number;
-									break;
-					default:
-							LOG(L_CRIT, "BUG: do_action bad forward 2nd"
-										" param type (%d)\n", a->p2_type);
-							ret=E_UNSPEC;
-							goto error_fwd_uri;
-				}
-				if (proto == PROTO_NONE){ /* only if proto not set get it
-											 from the uri */
-					switch(u->proto){
-						case PROTO_NONE:
-							proto=PROTO_UDP;
-							break;
-						case PROTO_UDP:
-#ifdef USE_TCP
-						case PROTO_TCP:
-#endif
-#ifdef USE_TLS
-						case PROTO_TLS:
-#endif
-							proto=u->proto;
-							break;
-						default:
-							LOG(L_ERR,"ERROR: do action: forward: bad uri"
-									" transport %d\n", u->proto);
-							ret=E_BAD_PROTO;
-							goto error_fwd_uri;
-					}
-#ifdef USE_TLS
-					if (u->secure){
-						if (u->proto==PROTO_UDP){
-							LOG(L_ERR, "ERROR: do_action: forward: secure uri"
-									" incompatible with transport %d\n", u->proto);
-							ret=E_BAD_PROTO;
-							goto error_fwd_uri;
-						}
-						proto=PROTO_TLS;
-					}
-#endif
-				}
-				/* create a temporary proxy*/
-				p=mk_proxy(&u->host, port, proto);
-				if (p==0){
-					LOG(L_ERR, "ERROR:  bad host name in uri,"
-							" dropping packet\n");
-					ret=E_BAD_ADDRESS;
-					goto error_fwd_uri;
-				}
-				ret=forward_request(msg, p, proto);
-				/*free_uri(&uri); -- no longer needed, in sip_msg*/
-				free_proxy(p); /* frees only p content, not p itself */
-				pkg_free(p);
-				if (ret>=0) ret=1;
-			}else if ((a->p1_type==PROXY_ST) && (a->p2_type==NUMBER_ST)){
-				if (proto==PROTO_NONE)
-					proto=msg->rcv.proto;
-				ret=forward_request(msg,(struct proxy_l*)a->p1.data, proto);
-				if (ret>=0) ret=1;
-			}else{
-				LOG(L_CRIT, "BUG: do_action: bad forward() types %d, %d\n",
-						a->p1_type, a->p2_type);
-				ret=E_BUG;
-			}
-			break;
-		case SEND_T:
-		case SEND_TCP_T:
-			if ((a->p1_type!= PROXY_ST)|(a->p2_type!=NUMBER_ST)){
-				LOG(L_CRIT, "BUG: do_action: bad send() types %d, %d\n",
-						a->p1_type, a->p2_type);
-				ret=E_BUG;
-				break;
-			}
-			to=(union sockaddr_union*)
-					pkg_malloc(sizeof(union sockaddr_union));
-			if (to==0){
-				LOG(L_ERR, "ERROR: do_action: "
-							"memory allocation failure\n");
-				ret=E_OUT_OF_MEM;
-				break;
-			}
-			
-			p=(struct proxy_l*)a->p1.data;
-			
-			if (p->ok==0){
-				if (p->host.h_addr_list[p->addr_idx+1])
-					p->addr_idx++;
-				else 
-					p->addr_idx=0;
-				p->ok=1;
-			}
-			ret=hostent2su(	to, &p->host, p->addr_idx,
-						(p->port)?p->port:SIP_PORT );
-			if (ret==0){
-				p->tx++;
-				p->tx_bytes+=msg->len;
-				if (a->type==SEND_T){
-					/*udp*/
-					send_sock=get_send_socket(msg, to, PROTO_UDP);
-					if (send_sock!=0){
-						ret=udp_send(send_sock, msg->buf, msg->len, to);
-					}else{
-						ret=-1;
-					}
-				}
-#ifdef USE_TCP
-					else{
-					/*tcp*/
-					ret=tcp_send(PROTO_TCP, msg->buf, msg->len, to, 0);
-				}
-#endif
-			}
-			pkg_free(to);
-			if (ret<0){
-				p->errors++;
-				p->ok=0;
-			}else ret=1;
-			
-			break;
-		case LOG_T:
-			if ((a->p1_type!=NUMBER_ST)|(a->p2_type!=STRING_ST)){
-				LOG(L_CRIT, "BUG: do_action: bad log() types %d, %d\n",
-						a->p1_type, a->p2_type);
-				ret=E_BUG;
-				break;
-			}
-			LOG(a->p1.number, a->p2.string);
-			ret=1;
-			break;
-
-		/* jku -- introduce a new branch */
-		case APPEND_BRANCH_T:
-			if ((a->p1_type!=STRING_ST)) {
-				LOG(L_CRIT, "BUG: do_action: bad append_branch_t %d\n",
-					a->p1_type );
-				ret=E_BUG;
-				break;
-			}
-			ret=append_branch( msg, a->p1.string, 
-					   a->p1.string ? strlen(a->p1.string):0,
-					   0, 0, a->p2.number);
-			break;
-
-		/* jku begin: is_length_greater_than */
-		case LEN_GT_T:
-			if (a->p1_type!=NUMBER_ST) {
-				LOG(L_CRIT, "BUG: do_action: bad len_gt type %d\n",
-					a->p1_type );
-				ret=E_BUG;
-				break;
-			}
-			/* DBG("XXX: message length %d, max %d\n", 
-				msg->len, a->p1.number ); */
-			ret = msg->len >= a->p1.number ? 1 : -1;
-			break;
-		/* jku end: is_length_greater_than */
-			
-		/* jku - begin : flag processing */
-
-		case SETFLAG_T:
-			if (a->p1_type!=NUMBER_ST) {
-				LOG(L_CRIT, "BUG: do_action: bad setflag() type %d\n",
-					a->p1_type );
-				ret=E_BUG;
-				break;
-			}
-			if (!flag_in_range( a->p1.number )) {
-				ret=E_CFG;
-				break;
-			}
-			setflag( msg, a->p1.number );
-			ret=1;
-			break;
-
-		case RESETFLAG_T:
-			if (a->p1_type!=NUMBER_ST) {
-				LOG(L_CRIT, "BUG: do_action: bad resetflag() type %d\n",
-					a->p1_type );
-				ret=E_BUG;
-				break;
-			}
-			if (!flag_in_range( a->p1.number )) {
-				ret=E_CFG;
-				break;
-			}
-			resetflag( msg, a->p1.number );
-			ret=1;
-			break;
-			
-		case ISFLAGSET_T:
-			if (a->p1_type!=NUMBER_ST) {
-				LOG(L_CRIT, "BUG: do_action: bad isflagset() type %d\n",
-					a->p1_type );
-				ret=E_BUG;
-				break;
-			}
-			if (!flag_in_range( a->p1.number )) {
-				ret=E_CFG;
-				break;
-			}
-			ret=isflagset( msg, a->p1.number );
-			break;
-		/* jku - end : flag processing */
-
-		case ERROR_T:
-			if ((a->p1_type!=STRING_ST)|(a->p2_type!=STRING_ST)){
-				LOG(L_CRIT, "BUG: do_action: bad error() types %d, %d\n",
-						a->p1_type, a->p2_type);
-				ret=E_BUG;
-				break;
-			}
-			LOG(L_NOTICE, "WARNING: do_action: error(\"%s\", \"%s\") "
-					"not implemented yet\n", a->p1.string, a->p2.string);
-			ret=1;
-			break;
-		case ROUTE_T:
-			if (a->p1_type!=NUMBER_ST){
-				LOG(L_CRIT, "BUG: do_action: bad route() type %d\n",
-						a->p1_type);
-				ret=E_BUG;
-				break;
-			}
-			if ((a->p1.number>RT_NO)||(a->p1.number<0)){
-				LOG(L_ERR, "ERROR: invalid routing table number in"
-							"route(%lu)\n", a->p1.number);
-				ret=E_CFG;
-				break;
-			}
-			ret=((ret=run_actions(rlist[a->p1.number], msg))<0)?ret:1;
-			break;
-		case EXEC_T:
-			if (a->p1_type!=STRING_ST){
-				LOG(L_CRIT, "BUG: do_action: bad exec() type %d\n",
-						a->p1_type);
-				ret=E_BUG;
-				break;
-			}
-			LOG(L_NOTICE, "WARNING: exec(\"%s\") not fully implemented,"
-						" using dumb version...\n", a->p1.string);
-			ret=system(a->p1.string);
-			if (ret!=0){
-				LOG(L_NOTICE, "WARNING: exec() returned %d\n", ret);
-			}
-			ret=1;
-			break;
-		case REVERT_URI_T:
-			if (msg->new_uri.s) {
-				pkg_free(msg->new_uri.s);
-				msg->new_uri.len=0;
-				msg->new_uri.s=0;
-				msg->parsed_uri_ok=0; /* invalidate current parsed uri*/
-			};
-			ret=1;
-			break;
-		case SET_HOST_T:
-		case SET_HOSTPORT_T:
-		case SET_USER_T:
-		case SET_USERPASS_T:
-		case SET_PORT_T:
-		case SET_URI_T:
-		case PREFIX_T:
-		case STRIP_T:
-		case STRIP_TAIL_T:
-				user=0;
-				if (a->type==STRIP_T || a->type==STRIP_TAIL_T) {
-					if (a->p1_type!=NUMBER_ST) {
-						LOG(L_CRIT, "BUG: do_action: bad set*() type %d\n",
-							a->p1_type);
-						break;
-					}
-				} else if (a->p1_type!=STRING_ST){
-					LOG(L_CRIT, "BUG: do_action: bad set*() type %d\n",
-							a->p1_type);
-					ret=E_BUG;
-					break;
-				}
-				if (a->type==SET_URI_T){
-					if (msg->new_uri.s) {
-							pkg_free(msg->new_uri.s);
-							msg->new_uri.len=0;
-					}
-					msg->parsed_uri_ok=0;
-					len=strlen(a->p1.string);
-					msg->new_uri.s=pkg_malloc(len+1);
-					if (msg->new_uri.s==0){
-						LOG(L_ERR, "ERROR: do_action: memory allocation"
-								" failure\n");
-						ret=E_OUT_OF_MEM;
-						break;
-					}
-					memcpy(msg->new_uri.s, a->p1.string, len);
-					msg->new_uri.s[len]=0;
-					msg->new_uri.len=len;
-					
-					ret=1;
-					break;
-				}
-				if (msg->new_uri.s) {
-					tmp=msg->new_uri.s;
-					len=msg->new_uri.len;
-				}else{
-					tmp=msg->first_line.u.request.uri.s;
-					len=msg->first_line.u.request.uri.len;
-				}
-				if (parse_uri(tmp, len, &uri)<0){
-					LOG(L_ERR, "ERROR: do_action: bad uri <%s>, dropping"
-								" packet\n", tmp);
-					ret=E_UNSPEC;
-					break;
-				}
-				
-				new_uri=pkg_malloc(MAX_URI_SIZE);
-				if (new_uri==0){
-					LOG(L_ERR, "ERROR: do_action: memory allocation "
-								" failure\n");
-					ret=E_OUT_OF_MEM;
-					break;
-				}
-				end=new_uri+MAX_URI_SIZE;
-				crt=new_uri;
-				/* begin copying */
-				len=strlen("sip:"); if(crt+len>end) goto error_uri;
-				memcpy(crt,"sip:",len);crt+=len;
-
-				/* user */
-
-				/* prefix (-jiri) */
-				if (a->type==PREFIX_T) {
-					tmp=a->p1.string;
-					len=strlen(tmp); if(crt+len>end) goto error_uri;
-					memcpy(crt,tmp,len);crt+=len;
-					/* whatever we had before, with prefix we have username 
-					   now */
-					user=1;
-				}
-
-				if ((a->type==SET_USER_T)||(a->type==SET_USERPASS_T)) {
-					tmp=a->p1.string;
-					len=strlen(tmp);
-				} else if (a->type==STRIP_T) {
-					if (a->p1.number>uri.user.len) {
-						LOG(L_WARN, "Error: too long strip asked; "
-									" deleting username: %lu of <%.*s>\n",
-									a->p1.number, uri.user.len, uri.user.s );
-						len=0;
-					} else if (a->p1.number==uri.user.len) {
-						len=0;
-					} else {
-						tmp=uri.user.s + a->p1.number;
-						len=uri.user.len - a->p1.number;
-					}
-				} else if (a->type==STRIP_TAIL_T) {
-					if (a->p1.number>uri.user.len) {
-						LOG(L_WARN, "WARNING: too long strip_tail asked; "
-									" deleting username: %lu of <%.*s>\n",
-									a->p1.number, uri.user.len, uri.user.s );
-						len=0;
-					} else if (a->p1.number==uri.user.len) {
-						len=0;
-					} else {
-						tmp=uri.user.s;
-						len=uri.user.len - a->p1.number;
-					}
-				} else {
-					tmp=uri.user.s;
-					len=uri.user.len;
-				}
-
-				if (len){
-					if(crt+len>end) goto error_uri;
-					memcpy(crt,tmp,len);crt+=len;
-					user=1; /* we have an user field so mark it */
-				}
-
-				if (a->type==SET_USERPASS_T) tmp=0;
-				else tmp=uri.passwd.s;
-				/* passwd */
-				if (tmp){
-					len=uri.passwd.len; if(crt+len+1>end) goto error_uri;
-					*crt=':'; crt++;
-					memcpy(crt,tmp,len);crt+=len;
-				}
-				/* host */
-				if (user || tmp){ /* add @ */
-					if(crt+1>end) goto error_uri;
-					*crt='@'; crt++;
-				}
-				if ((a->type==SET_HOST_T) ||(a->type==SET_HOSTPORT_T)) {
-					tmp=a->p1.string;
-					if (tmp) len = strlen(tmp);
-					else len=0;
-				} else {
-					tmp=uri.host.s;
-					len = uri.host.len;
-				}
-				if (tmp){
-					if(crt+len>end) goto error_uri;
-					memcpy(crt,tmp,len);crt+=len;
-				}
-				/* port */
-				if (a->type==SET_HOSTPORT_T) tmp=0;
-				else if (a->type==SET_PORT_T) {
-					tmp=a->p1.string;
-					if (tmp) len = strlen(tmp);
-					else len = 0;
-				} else {
-					tmp=uri.port.s;
-					len = uri.port.len;
-				}
-				if (tmp){
-					if(crt+len+1>end) goto error_uri;
-					*crt=':'; crt++;
-					memcpy(crt,tmp,len);crt+=len;
-				}
-				/* params */
-				tmp=uri.params.s;
-				if (tmp){
-					len=uri.params.len; if(crt+len+1>end) goto error_uri;
-					*crt=';'; crt++;
-					memcpy(crt,tmp,len);crt+=len;
-				}
-				/* headers */
-				tmp=uri.headers.s;
-				if (tmp){
-					len=uri.headers.len; if(crt+len+1>end) goto error_uri;
-					*crt='?'; crt++;
-					memcpy(crt,tmp,len);crt+=len;
-				}
-				*crt=0; /* null terminate the thing */
-				/* copy it to the msg */
-				if (msg->new_uri.s) pkg_free(msg->new_uri.s);
-				msg->new_uri.s=new_uri;
-				msg->new_uri.len=crt-new_uri;
-				msg->parsed_uri_ok=0;
-				ret=1;
-				break;
-		case IF_T:
-				/* if null expr => ignore if? */
-				if ((a->p1_type==EXPR_ST)&&a->p1.data){
-					v=eval_expr((struct expr*)a->p1.data, msg);
-					if (v<0){
-						if (v==EXPR_DROP){ /* hack to quit on DROP*/
-							ret=0;
-							break;
-						}else{
-							LOG(L_WARN,"WARNING: do_action:"
-										"error in expression\n");
-						}
-					}
-					
-					ret=1;  /*default is continue */
-					if (v>0) {
-						if ((a->p2_type==ACTIONS_ST)&&a->p2.data){
-							ret=run_actions((struct action*)a->p2.data, msg);
-						}
-					}else if ((a->p3_type==ACTIONS_ST)&&a->p3.data){
-							ret=run_actions((struct action*)a->p3.data, msg);
-					}
-				}
-			break;
-		case MODULE_T:
-			if ( ((a->p1_type==CMDF_ST)&&a->p1.data)/*&&
-					((a->p2_type==STRING_ST)&&a->p2.data)*/ ){
-				ret=((cmd_function)(a->p1.data))(msg, (char*)a->p2.data,
-													  (char*)a->p3.data);
-			}else{
-				LOG(L_CRIT,"BUG: do_action: bad module call\n");
-			}
-			break;
-		case FORCE_RPORT_T:
-			msg->msg_flags|=FL_FORCE_RPORT;
-			ret=1; /* continue processing */
-			break;
-		case SET_ADV_ADDR_T:
-			if (a->p1_type!=STR_ST){
-				LOG(L_CRIT, "BUG: do_action: bad set_advertised_address() "
-						"type %d\n", a->p1_type);
-				ret=E_BUG;
-				break;
-			}
-			msg->set_global_address=*((str*)a->p1.data);
-			ret=1; /* continue processing */
-			break;
-		case SET_ADV_PORT_T:
-			if (a->p1_type!=STR_ST){
-				LOG(L_CRIT, "BUG: do_action: bad set_advertised_port() "
-						"type %d\n", a->p1_type);
-				ret=E_BUG;
-				break;
-			}
-			msg->set_global_port=*((str*)a->p1.data);
-			ret=1; /* continue processing */
-			break;
-#ifdef USE_TCP
-		case FORCE_TCP_ALIAS_T:
-			if ( msg->rcv.proto==PROTO_TCP
-#ifdef USE_TLS
-					|| msg->rcv.proto==PROTO_TLS
-#endif
-			   ){
-				
-				if (a->p1_type==NOSUBTYPE)	port=msg->via1->port;
-				else if (a->p1_type==NUMBER_ST) port=(int)a->p1.number;
-				else{
-					LOG(L_CRIT, "BUG: do_action: bad force_tcp_alias"
-							" port type %d\n", a->p1_type);
-					ret=E_BUG;
-					break;
-				}
-						
-				if (tcpconn_add_alias(msg->rcv.proto_reserved1, port,
-									msg->rcv.proto)!=0){
-					LOG(L_ERR, " ERROR: receive_msg: tcp alias failed\n");
-					ret=E_UNSPEC;
-					break;
-				}
-			}
-#endif
-			ret=1; /* continue processing */
-			break;
-		case FORCE_SEND_SOCKET_T:
-			if (a->p1_type!=SOCKETINFO_ST){
-				LOG(L_CRIT, "BUG: do_action: bad force_send_socket argument"
-						" type: %d\n", a->p1_type);
-				ret=E_BUG;
-				break;
-			}
-			msg->force_send_socket=(struct socket_info*)a->p1.data;
-			ret=1; /* continue processing */
-			break;
-		default:
-			LOG(L_CRIT, "BUG: do_action: unknown type %d\n", a->type);
-	}
-/*skip:*/
-	return ret;
-	
-error_uri:
-	LOG(L_ERR, "ERROR: do_action: set*: uri too long\n");
-	if (new_uri) pkg_free(new_uri);
-	return E_UNSPEC;
-error_fwd_uri:
-	/*free_uri(&uri); -- not needed anymore, using msg->parsed_uri*/
-	return ret;
-}
-
-
-
-/* returns: 0, or 1 on success, <0 on error */
-/* (0 if drop or break encountered, 1 if not ) */
-int run_actions(struct action* a, struct sip_msg* msg)
-{
-	struct action* t;
-	int ret=E_UNSPEC;
-	static int rec_lev=0;
-	struct sr_module *mod;
-
-	rec_lev++;
-	if (rec_lev>ROUTE_MAX_REC_LEV){
-		LOG(L_ERR, "WARNING: too many recursive routing table lookups (%d)"
-					" giving up!\n", rec_lev);
-		ret=E_UNSPEC;
-		goto error;
-	}
-		
-	if (a==0){
-		LOG(L_ERR, "WARNING: run_actions: null action list (rec_level=%d)\n", 
-			rec_lev);
-		ret=0;
-	}
-
-	for (t=a; t!=0; t=t->next){
-		ret=do_action(t, msg);
-		if(ret==0) break;
-		/* ignore errors */
-		/*else if (ret<0){ ret=-1; goto error; }*/
-	}
-	
-	rec_lev--;
-	/* process module onbreak handlers if present */
-	if (rec_lev==0 && ret==0) 
-		for (mod=modules;mod;mod=mod->next) 
-			if (mod->exports && mod->exports->onbreak_f) {
-				mod->exports->onbreak_f( msg );
-				DBG("DEBUG: %s onbreak handler called\n", mod->exports->name);
-			}
-	return ret;
-	
-
-error:
-	rec_lev--;
-	return ret;
-}
-
-
-

Deleted: ser/trunk/action.h
===================================================================
--- ser/trunk/action.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/action.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,43 +0,0 @@
-/*
- * $Id: action.h,v 1.4 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- */
-
-
-#ifndef action_h
-#define action_h
-
-#include "parser/msg_parser.h"
-#include "route_struct.h"
-
-int do_action(struct action* a, struct sip_msg* msg);
-int run_actions(struct action* a, struct sip_msg* msg);
-
-
-
-
-
-#endif

Deleted: ser/trunk/ccopts.sh
===================================================================
--- ser/trunk/ccopts.sh	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ccopts.sh	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,127 +0,0 @@
-#!/bin/sh
-
-#$Id: ccopts.sh,v 1.1 2002/11/07 15:26:11 andrei Exp $
-#
-# returns the CFLAGS for the given compiler (maximum optimizations)
-#
-
-
-ARCH=`uname -m |sed -e s/i.86/i386/ -e s/sun4u/sparc64/ `
-
-# gcc 3.x optimize for:
-x86CPU=athlon
-WARN_ARCH="WARNING: Not tested on architecture $ARCH, using default flags"
-
-if [ $# -lt 1 ]
-then 
-	echo "ERROR: you must specify the compiler name" 1>&2
-	exit 1
-fi
-
-if [ "$1" = "-h" ]
-then
-	echo "Usage: "
-	echo "      $0 compiler_name"
-	exit 1
-fi
-
-
-if  CCVER=`./ccver.sh $1` 
-then
-	NAME=`echo "$CCVER"|cut -d" " -f 1`
-	VER=`echo "$CCVER"|cut -d" " -f 2`
-	MAJOR_VER=`echo "$CCVER"|cut -d" " -f 3`
-else
-	echo "ERROR executing ./ccver.sh" 2>&1
-	exit 1
-fi
-
-echo "name=$NAME, ver=$VER, mver=$MAJOR_VER"
-case $NAME
-in
-gcc) 
-		#common stuff
-		CFLAGS="-O9 -funroll-loops -Winline -Wall"
-		case $MAJOR_VER
-		in
-			3)
-				case $ARCH
-				in
-					i386)
-						CFLAGS="$CFLAGS -minline-all-stringops -malign-double"
-						CFLAGS="$CFLAGS -falign-loops -march=$x86CPU"
-						;;
-					sparc64)
-						CFLAGS="$CFLAGS -mcpu=ultrasparc -mtune=ultrasparc"
-						CFLAGS="$CFLAGS -m32"
-						#other interesting options:
-						# -mcpu=v9 or ultrasparc? # -mtune implied by -mcpu
-						#-mno-epilogue #try to inline function exit code
-						#-mflat # omit save/restore
-						#-faster-structs #faster non Sparc ABI structure copy
-						;;
-					armv4l)
-						CFLAGS="$CFLAGS -mcpu=strongarm1100"
-						;;
-						*)
-						echo "$WARN_ARCH" 1>&2
-						;;
-				esac
-				;;
-			2|*)
-				case $ARCH
-				in
-					i386)
-						CFLAGS="$CFLAGS -m486 -malign-loops=4"
-						;;
-					sparc64)
-						CFLAGS="$CFLAGS -mv8 -Wa,-xarch=v8plus"
-						;;
-					armv4l)
-						;;
-						*)
-						echo "$WARN_ARCH" 1>&2
-						;;
-				esac
-				;;
-		esac
-		;;
-
-icc)
-	CFLAGS="-O3 -ipo -ipo_obj -unroll"
-	case $ARCH
-	in
-		i386)
-			CFLAGS="$CFLAGS -tpp6 -xK"
-			#-openmp  #optimize for PIII 
-			# -prefetch doesn't seem to work
-			#( ty to inline acroos files, unroll loops,prefetch,
-			# optimize for PIII, use PIII instructions & vect.,
-			# mutlithread loops)
-		;;
-		*)
-			echo "$WARN_ARCH" 1>&2
-		;;
-	esac
-	;;
-
-suncc)
-	CFLAGS="-xO5 -fast -native -xCC -xc99"
-	case $ARCH
-	in
-		sparc64)
-			CFLAGS="$CFLAGS -xarch=v8plusa"
-			;;
-		*)
-			echo "$WARN_ARCH" 1>&2
-			;;
-	esac
-	;;
-
-*)
-	echo "WARNING: unknown compiler $NAME, trying _very_ generic flags" 1>&2
-	CFLAGS="-O2"
-esac
-
-
-echo "CFLAGS=$CFLAGS"

Deleted: ser/trunk/ccver.sh
===================================================================
--- ser/trunk/ccver.sh	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ccver.sh	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,83 +0,0 @@
-#!/bin/sh
-
-#$Id: ccver.sh,v 1.3 2004/08/24 08:45:10 janakj Exp $
-#
-# finds CC version and prints it in the following format:
-# compiler_name version major_version
-#
-
-
-
-if [ $# -lt 1 ]
-then 
-	echo "Error: you must specify the compiler name" 1>&2
-	exit 1
-fi
-
-if [ "$1" = "-h" ]
-then
-	echo "Usage: "
-	echo "      $0 compiler_name"
-	exit 1
-fi
-
-
-CC=$1
-
-if  which $CC >/dev/null
-then
-	(test ! -x `which $CC`) && echo "Error: $CC not executable" 1>&2 && exit 1
-else
-	echo "Error: $CC not found or not executable" 1>&2
-	exit 1 
-fi
-
-
-if $CC -v 2>/dev/null 1>/dev/null
-then
-	FULLVER=`$CC -v 2>&1` 
-else
-	FULLVER=`$CC -V 2>&1`
-fi
-
-
-
-if [ -n "$FULLVER" ]
-then
-	# check if gcc
-	if echo "$FULLVER"|grep gcc >/dev/null
-	then
-		NAME=gcc
-		VER=`$CC --version|head -n 1| \
-				sed -e 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/'\
-				    -e 's/^[^.0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/'`
-	elif echo "$FULLVER"|grep Sun >/dev/null
-	then
-		NAME=suncc
-		VER=`echo "$FULLVER"|head -n 1| \
-				sed -e 's/.*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/'`
-	elif echo "$FULLVER"|grep "Intel(R) C++ Compiler" >/dev/null
-	then
-		NAME=icc
-		VER=`echo "$FULLVER"|head -n 1| \
-				sed -e 's/.*Version \([0-9]\.[0-9]\.[0-9]*\).*/\1/' ` 
-	fi
-	
-	# find major ver
-	if [  -n "$VER"  -a -z "$MAJOR_VER" ]
-	then
-		MAJOR_VER=`echo "$VER" |cut -d. -f1`
-	fi
-fi	
-
-
-#unknown
-if [ -z "$NAME" ]
-then
-	NAME="unknown"
-	VER="unknown"
-	MAJOR_VER="unknown"
-fi
-
-
-echo "$NAME $VER $MAJOR_VER"

Deleted: ser/trunk/cfg.lex
===================================================================
--- ser/trunk/cfg.lex	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/cfg.lex	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,613 +0,0 @@
-/*
- * $Id: cfg.lex,v 1.64 2004/11/30 16:28:23 andrei Exp $
- *
- * scanner for cfg files
- *
- * 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 at 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
- *
- * History:
- * -------
- *  2003-01-29  src_port added (jiri)
- *  2003-01-23  mhomed added (jiri)
- *  2003-03-19  replaced all the mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-04-01  added dst_port, proto (tcp, udp, tls), af(inet, inet6) (andrei)
- *  2003-04-05  s/reply_route/failure_route, onreply_route introduced (jiri)
- *  2003-04-12  added force_rport, chdir and wdir (andrei)
- *  2003-04-22  strip_tail added (jiri)
- *  2003-07-03  tls* (disable, certificate, private_key, ca_list, verify, 
- *               require_certificate added (andrei)
- *  2003-07-06  more tls config. vars added: tls_method, tls_port_no (andrei)
- *  2003-10-02  added {,set_}advertised_{address,port} (andrei)
- *  2003-10-07  added hex and octal numbers support (andrei)
- *  2003-10-10  replaced len_gt w/ msg:len (andrei)
- *  2003-10-13  added fifo_dir (andrei)
- *  2003-10-28  added tcp_accept_aliases (andrei)
- *  2003-11-29  added {tcp_send, tcp_connect, tls_*}_timeout (andrei)
- *  2004-03-30  added DISABLE_CORE and OPEN_FD_LIMIT (andrei)
- *  2004-04-28  added sock_mode (replaces fifo_mode), sock_user &
- *               sock_group  (andrei)
- *  2004-05-03  applied multicast support patch from janakj
- *              added MCAST_TTL (andrei)
- *  2004-10-08  more escapes: \", \xHH, \nnn and minor optimizations (andrei)
- *  2004-10-19  added FROM_URI and TO_URI (andrei)
- *  2004-11-30  added force_send_socket
- */
-
-
-%{
-	#include "cfg.tab.h"
-	#include "dprint.h"
-	#include "globals.h"
-	#include "mem/mem.h"
-	#include <string.h>
-	#include <stdlib.h>
-	#include "ip_addr.h"
-
-
-	/* states */
-	#define INITIAL_S		0
-	#define COMMENT_S		1
-	#define COMMENT_LN_S	2
-	#define STRING_S		3
-
-	#define STR_BUF_ALLOC_UNIT	128
-	struct str_buf{
-		char* s;
-		char* crt;
-		int left;
-	};
-
-	
-	static int comment_nest=0;
-	static int state=0;
-	static struct str_buf s_buf;
-	int line=1;
-	int column=1;
-	int startcolumn=1;
-
-	static char* addchar(struct str_buf *, char);
-	static char* addstr(struct str_buf *, char*, int);
-	static void count();
-
-
-%}
-
-/* start conditions */
-%x STRING1 STRING2 COMMENT COMMENT_LN
-
-/* action keywords */
-FORWARD	forward
-FORWARD_TCP	forward_tcp
-FORWARD_UDP	forward_udp
-FORWARD_TLS	forward_tls
-DROP	"drop"|"break"
-SEND	send
-SEND_TCP	send_tcp
-LOG		log
-ERROR	error
-ROUTE	route
-ROUTE_FAILURE failure_route
-ROUTE_ONREPLY onreply_route
-EXEC	exec
-FORCE_RPORT		"force_rport"|"add_rport"
-FORCE_TCP_ALIAS		"force_tcp_alias"|"add_tcp_alias"
-SETFLAG		setflag
-RESETFLAG	resetflag
-ISFLAGSET	isflagset
-SET_HOST		"rewritehost"|"sethost"|"seth"
-SET_HOSTPORT	"rewritehostport"|"sethostport"|"sethp"
-SET_USER		"rewriteuser"|"setuser"|"setu"
-SET_USERPASS	"rewriteuserpass"|"setuserpass"|"setup"
-SET_PORT		"rewriteport"|"setport"|"setp"
-SET_URI			"rewriteuri"|"seturi"
-REVERT_URI		"revert_uri"
-PREFIX			"prefix"
-STRIP			"strip"
-STRIP_TAIL		"strip_tail"
-APPEND_BRANCH	"append_branch"
-IF				"if"
-ELSE			"else"
-SET_ADV_ADDRESS	"set_advertised_address"
-SET_ADV_PORT	"set_advertised_port"
-FORCE_SEND_SOCKET	"force_send_socket"
-
-/*ACTION LVALUES*/
-URIHOST			"uri:host"
-URIPORT			"uri:port"
-
-MAX_LEN			"max_len"
-
-
-/* condition keywords */
-METHOD	method
-/* hack -- the second element in first line is referable
-   as either uri or status; it only would makes sense to
-   call it "uri" from route{} and status from onreply_route{}
-*/
-URI		"uri"|"status"
-FROM_URI	"from_uri"
-TO_URI		"to_uri"
-SRCIP	src_ip
-SRCPORT	src_port
-DSTIP	dst_ip
-DSTPORT	dst_port
-PROTO	proto
-AF		af
-MYSELF	myself
-MSGLEN			"msg:len"
-/* operators */
-EQUAL	=
-EQUAL_T	==
-GT	>
-LT	<
-GTE	>=
-LTE	<=
-DIFF	!=
-MATCH	=~
-NOT		!|"not"
-AND		"and"|"&&"|"&"
-OR		"or"|"||"|"|"
-PLUS	"+"
-MINUS	"-"
-
-/* config vars. */
-DEBUG	debug
-FORK	fork
-LOGSTDERROR	log_stderror
-LOGFACILITY	log_facility
-LISTEN		listen
-ALIAS		alias
-DNS		 dns
-REV_DNS	 rev_dns
-PORT	port
-STAT	statistics
-MAXBUFFER maxbuffer
-CHILDREN children
-CHECK_VIA	check_via
-SYN_BRANCH syn_branch
-MEMLOG		"memlog"|"mem_log"
-SIP_WARNING sip_warning
-FIFO fifo
-FIFO_DIR  fifo_dir
-SOCK_MODE "fifo_mode"|"sock_mode"|"file_mode"
-SOCK_USER "fifo_user"|"sock_user"
-SOCK_GROUP "fifo_group"|"sock_group"
-FIFO_DB_URL fifo_db_url
-UNIX_SOCK unix_sock
-UNIX_SOCK_CHILDREN unix_sock_children
-UNIX_TX_TIMEOUT unix_tx_timeout
-SERVER_SIGNATURE server_signature
-REPLY_TO_VIA reply_to_via
-USER		"user"|"uid"
-GROUP		"group"|"gid"
-CHROOT		"chroot"
-WDIR		"workdir"|"wdir"
-MHOMED		mhomed
-DISABLE_TCP		"disable_tcp"
-TCP_CHILDREN	"tcp_children"
-TCP_ACCEPT_ALIASES	"tcp_accept_aliases"
-TCP_SEND_TIMEOUT	"tcp_send_timeout"
-TCP_CONNECT_TIMEOUT	"tcp_connect_timeout"
-DISABLE_TLS		"disable_tls"
-TLSLOG			"tlslog"|"tls_log"
-TLS_PORT_NO		"tls_port_no"
-TLS_METHOD		"tls_method"
-TLS_VERIFY		"tls_verify"
-TLS_REQUIRE_CERTIFICATE "tls_require_certificate"
-TLS_CERTIFICATE	"tls_certificate"
-TLS_PRIVATE_KEY "tls_private_key"
-TLS_CA_LIST		"tls_ca_list"
-TLS_HANDSHAKE_TIMEOUT	"tls_handshake_timeout"
-TLS_SEND_TIMEOUT	"tls_send_timeout"
-ADVERTISED_ADDRESS	"advertised_address"
-ADVERTISED_PORT		"advertised_port"
-DISABLE_CORE		"disable_core_dump"
-OPEN_FD_LIMIT		"open_files_limit"
-MCAST_LOOPBACK		"mcast_loopback"
-MCAST_TTL			"mcast_ttl"
-
-LOADMODULE	loadmodule
-MODPARAM        modparam
-
-/* values */
-YES			"yes"|"true"|"on"|"enable"
-NO			"no"|"false"|"off"|"disable"
-UDP			"udp"|"UDP"
-TCP			"tcp"|"TCP"
-TLS			"tls"|"TLS"
-INET		"inet"|"INET"
-INET6		"inet6"|"INET6"
-SSLv23			"sslv23"|"SSLv23"|"SSLV23"
-SSLv2			"sslv2"|"SSLv2"|"SSLV2"
-SSLv3			"sslv3"|"SSLv3"|"SSLV3"
-TLSv1			"tlsv1"|"TLSv1"|"TLSV1"
-
-LETTER		[a-zA-Z]
-DIGIT		[0-9]
-ALPHANUM	{LETTER}|{DIGIT}|[_]
-NUMBER		0|([1-9]{DIGIT}*)
-ID			{LETTER}{ALPHANUM}*
-HEX			[0-9a-fA-F]
-HEXNUMBER	0x{HEX}+
-OCTNUMBER	0[0-7]+
-HEX4		{HEX}{1,4}
-IPV6ADDR	({HEX4}":"){7}{HEX4}|({HEX4}":"){1,7}(":"{HEX4}){1,7}|":"(":"{HEX4}){1,7}|({HEX4}":"){1,7}":"|"::"
-QUOTES		\"
-TICK		\'
-SLASH		"/"
-SEMICOLON	;
-RPAREN		\)
-LPAREN		\(
-LBRACE		\{
-RBRACE		\}
-LBRACK		\[
-RBRACK		\]
-COMMA		","
-COLON		":"
-STAR		\*
-DOT			\.
-CR			\n
-
-
-
-COM_LINE	#
-COM_START	"/\*"
-COM_END		"\*/"
-
-EAT_ABLE	[\ \t\b\r]
-
-%%
-
-
-<INITIAL>{EAT_ABLE}	{ count(); }
-
-<INITIAL>{FORWARD}	{count(); yylval.strval=yytext; return FORWARD; }
-<INITIAL>{FORWARD_TCP}	{count(); yylval.strval=yytext; return FORWARD_TCP; }
-<INITIAL>{FORWARD_TLS}	{count(); yylval.strval=yytext; return FORWARD_TLS; }
-<INITIAL>{FORWARD_UDP}	{count(); yylval.strval=yytext; return FORWARD_UDP; }
-<INITIAL>{DROP}	{ count(); yylval.strval=yytext; return DROP; }
-<INITIAL>{SEND}	{ count(); yylval.strval=yytext; return SEND; }
-<INITIAL>{SEND_TCP}	{ count(); yylval.strval=yytext; return SEND_TCP; }
-<INITIAL>{LOG}	{ count(); yylval.strval=yytext; return LOG_TOK; }
-<INITIAL>{ERROR}	{ count(); yylval.strval=yytext; return ERROR; }
-<INITIAL>{SETFLAG}	{ count(); yylval.strval=yytext; return SETFLAG; }
-<INITIAL>{RESETFLAG}	{ count(); yylval.strval=yytext; return RESETFLAG; }
-<INITIAL>{ISFLAGSET}	{ count(); yylval.strval=yytext; return ISFLAGSET; }
-<INITIAL>{MSGLEN}	{ count(); yylval.strval=yytext; return MSGLEN; }
-<INITIAL>{ROUTE}	{ count(); yylval.strval=yytext; return ROUTE; }
-<INITIAL>{ROUTE_ONREPLY}	{ count(); yylval.strval=yytext;
-								return ROUTE_ONREPLY; }
-<INITIAL>{ROUTE_FAILURE}	{ count(); yylval.strval=yytext;
-								return ROUTE_FAILURE; }
-<INITIAL>{EXEC}	{ count(); yylval.strval=yytext; return EXEC; }
-<INITIAL>{SET_HOST}	{ count(); yylval.strval=yytext; return SET_HOST; }
-<INITIAL>{SET_HOSTPORT}	{ count(); yylval.strval=yytext; return SET_HOSTPORT; }
-<INITIAL>{SET_USER}	{ count(); yylval.strval=yytext; return SET_USER; }
-<INITIAL>{SET_USERPASS}	{ count(); yylval.strval=yytext; return SET_USERPASS; }
-<INITIAL>{SET_PORT}	{ count(); yylval.strval=yytext; return SET_PORT; }
-<INITIAL>{SET_URI}	{ count(); yylval.strval=yytext; return SET_URI; }
-<INITIAL>{REVERT_URI}	{ count(); yylval.strval=yytext; return REVERT_URI; }
-<INITIAL>{PREFIX}	{ count(); yylval.strval=yytext; return PREFIX; }
-<INITIAL>{STRIP}	{ count(); yylval.strval=yytext; return STRIP; }
-<INITIAL>{STRIP_TAIL}	{ count(); yylval.strval=yytext; return STRIP_TAIL; }
-<INITIAL>{APPEND_BRANCH}	{ count(); yylval.strval=yytext; 
-								return APPEND_BRANCH; }
-<INITIAL>{FORCE_RPORT}	{ count(); yylval.strval=yytext; return FORCE_RPORT; }
-<INITIAL>{FORCE_TCP_ALIAS}	{ count(); yylval.strval=yytext;
-								return FORCE_TCP_ALIAS; }
-<INITIAL>{IF}	{ count(); yylval.strval=yytext; return IF; }
-<INITIAL>{ELSE}	{ count(); yylval.strval=yytext; return ELSE; }
-
-<INITIAL>{SET_ADV_ADDRESS}	{ count(); yylval.strval=yytext;
-										return SET_ADV_ADDRESS; }
-<INITIAL>{SET_ADV_PORT}	{ count(); yylval.strval=yytext;
-										return SET_ADV_PORT; }
-<INITIAL>{FORCE_SEND_SOCKET}	{	count(); yylval.strval=yytext;
-									return FORCE_SEND_SOCKET; }
-
-<INITIAL>{URIHOST}	{ count(); yylval.strval=yytext; return URIHOST; }
-<INITIAL>{URIPORT}	{ count(); yylval.strval=yytext; return URIPORT; }
-
-<INITIAL>{MAX_LEN}	{ count(); yylval.strval=yytext; return MAX_LEN; }
-
-<INITIAL>{METHOD}	{ count(); yylval.strval=yytext; return METHOD; }
-<INITIAL>{URI}	{ count(); yylval.strval=yytext; return URI; }
-<INITIAL>{FROM_URI}	{ count(); yylval.strval=yytext; return FROM_URI; }
-<INITIAL>{TO_URI}	{ count(); yylval.strval=yytext; return TO_URI; }
-<INITIAL>{SRCIP}	{ count(); yylval.strval=yytext; return SRCIP; }
-<INITIAL>{SRCPORT}	{ count(); yylval.strval=yytext; return SRCPORT; }
-<INITIAL>{DSTIP}	{ count(); yylval.strval=yytext; return DSTIP; }
-<INITIAL>{DSTPORT}	{ count(); yylval.strval=yytext; return DSTPORT; }
-<INITIAL>{PROTO}	{ count(); yylval.strval=yytext; return PROTO; }
-<INITIAL>{AF}	{ count(); yylval.strval=yytext; return AF; }
-<INITIAL>{MYSELF}	{ count(); yylval.strval=yytext; return MYSELF; }
-
-<INITIAL>{DEBUG}	{ count(); yylval.strval=yytext; return DEBUG; }
-<INITIAL>{FORK}		{ count(); yylval.strval=yytext; return FORK; }
-<INITIAL>{LOGSTDERROR}	{ yylval.strval=yytext; return LOGSTDERROR; }
-<INITIAL>{LOGFACILITY}	{ yylval.strval=yytext; return LOGFACILITY; }
-<INITIAL>{LISTEN}	{ count(); yylval.strval=yytext; return LISTEN; }
-<INITIAL>{ALIAS}	{ count(); yylval.strval=yytext; return ALIAS; }
-<INITIAL>{DNS}	{ count(); yylval.strval=yytext; return DNS; }
-<INITIAL>{REV_DNS}	{ count(); yylval.strval=yytext; return REV_DNS; }
-<INITIAL>{PORT}	{ count(); yylval.strval=yytext; return PORT; }
-<INITIAL>{STAT}	{ count(); yylval.strval=yytext; return STAT; }
-<INITIAL>{MAXBUFFER}	{ count(); yylval.strval=yytext; return MAXBUFFER; }
-<INITIAL>{CHILDREN}	{ count(); yylval.strval=yytext; return CHILDREN; }
-<INITIAL>{CHECK_VIA}	{ count(); yylval.strval=yytext; return CHECK_VIA; }
-<INITIAL>{SYN_BRANCH}	{ count(); yylval.strval=yytext; return SYN_BRANCH; }
-<INITIAL>{MEMLOG}	{ count(); yylval.strval=yytext; return MEMLOG; }
-<INITIAL>{SIP_WARNING}	{ count(); yylval.strval=yytext; return SIP_WARNING; }
-<INITIAL>{USER}		{ count(); yylval.strval=yytext; return USER; }
-<INITIAL>{GROUP}	{ count(); yylval.strval=yytext; return GROUP; }
-<INITIAL>{CHROOT}	{ count(); yylval.strval=yytext; return CHROOT; }
-<INITIAL>{WDIR}	{ count(); yylval.strval=yytext; return WDIR; }
-<INITIAL>{MHOMED}	{ count(); yylval.strval=yytext; return MHOMED; }
-<INITIAL>{DISABLE_TCP}	{ count(); yylval.strval=yytext; return DISABLE_TCP; }
-<INITIAL>{TCP_CHILDREN}	{ count(); yylval.strval=yytext; return TCP_CHILDREN; }
-<INITIAL>{TCP_ACCEPT_ALIASES}	{ count(); yylval.strval=yytext;
-									return TCP_ACCEPT_ALIASES; }
-<INITIAL>{TCP_SEND_TIMEOUT}		{ count(); yylval.strval=yytext;
-									return TCP_SEND_TIMEOUT; }
-<INITIAL>{TCP_CONNECT_TIMEOUT}		{ count(); yylval.strval=yytext;
-									return TCP_CONNECT_TIMEOUT; }
-<INITIAL>{DISABLE_TLS}	{ count(); yylval.strval=yytext; return DISABLE_TLS; }
-<INITIAL>{TLSLOG}		{ count(); yylval.strval=yytext; return TLS_PORT_NO; }
-<INITIAL>{TLS_PORT_NO}	{ count(); yylval.strval=yytext; return TLS_PORT_NO; }
-<INITIAL>{TLS_METHOD}	{ count(); yylval.strval=yytext; return TLS_METHOD; }
-<INITIAL>{TLS_VERIFY}	{ count(); yylval.strval=yytext; return TLS_VERIFY; }
-<INITIAL>{TLS_REQUIRE_CERTIFICATE}	{ count(); yylval.strval=yytext;
-										return TLS_REQUIRE_CERTIFICATE; }
-<INITIAL>{TLS_CERTIFICATE}	{ count(); yylval.strval=yytext; 
-										return TLS_CERTIFICATE; }
-<INITIAL>{TLS_PRIVATE_KEY}	{ count(); yylval.strval=yytext; 
-										return TLS_PRIVATE_KEY; }
-<INITIAL>{TLS_CA_LIST}	{ count(); yylval.strval=yytext; 
-										return TLS_CA_LIST; }
-<INITIAL>{TLS_HANDSHAKE_TIMEOUT}	{ count(); yylval.strval=yytext;
-										return TLS_HANDSHAKE_TIMEOUT; }
-<INITIAL>{TLS_SEND_TIMEOUT}	{ count(); yylval.strval=yytext;
-										return TLS_SEND_TIMEOUT; }
-<INITIAL>{FIFO}	{ count(); yylval.strval=yytext; return FIFO; }
-<INITIAL>{FIFO_DIR}	{ count(); yylval.strval=yytext; return FIFO_DIR; }
-<INITIAL>{FIFO_DB_URL}	{ count(); yylval.strval=yytext; return FIFO_DB_URL; }
-<INITIAL>{SOCK_MODE}	{ count(); yylval.strval=yytext; return SOCK_MODE; }
-<INITIAL>{SOCK_USER}	{ count(); yylval.strval=yytext; return SOCK_USER; }
-<INITIAL>{SOCK_GROUP}	{ count(); yylval.strval=yytext; return SOCK_GROUP; }
-<INITIAL>{UNIX_SOCK} { count(); yylval.strval=yytext; return UNIX_SOCK; }
-<INITIAL>{UNIX_SOCK_CHILDREN} { count(); yylval.strval=yytext; return UNIX_SOCK_CHILDREN; }
-<INITIAL>{UNIX_TX_TIMEOUT} { count(); yylval.strval=yytext; return UNIX_TX_TIMEOUT; }
-<INITIAL>{SERVER_SIGNATURE}	{ count(); yylval.strval=yytext; return SERVER_SIGNATURE; }
-<INITIAL>{REPLY_TO_VIA}	{ count(); yylval.strval=yytext; return REPLY_TO_VIA; }
-<INITIAL>{ADVERTISED_ADDRESS}	{	count(); yylval.strval=yytext;
-									return ADVERTISED_ADDRESS; }
-<INITIAL>{ADVERTISED_PORT}		{	count(); yylval.strval=yytext;
-									return ADVERTISED_PORT; }
-<INITIAL>{DISABLE_CORE}		{	count(); yylval.strval=yytext;
-									return DISABLE_CORE; }
-<INITIAL>{OPEN_FD_LIMIT}		{	count(); yylval.strval=yytext;
-									return OPEN_FD_LIMIT; }
-<INITIAL>{MCAST_LOOPBACK}		{	count(); yylval.strval=yytext;
-									return MCAST_LOOPBACK; }
-<INITIAL>{MCAST_TTL}		{	count(); yylval.strval=yytext;
-									return MCAST_TTL; }
-<INITIAL>{LOADMODULE}	{ count(); yylval.strval=yytext; return LOADMODULE; }
-<INITIAL>{MODPARAM}     { count(); yylval.strval=yytext; return MODPARAM; }
-
-<INITIAL>{EQUAL}	{ count(); return EQUAL; }
-<INITIAL>{EQUAL_T}	{ count(); return EQUAL_T; }
-<INITIAL>{GT}	{ count(); return GT; }
-<INITIAL>{LT}	{ count(); return LT; }
-<INITIAL>{GTE}	{ count(); return GTE; }
-<INITIAL>{LTE}	{ count(); return LTE; }
-<INITIAL>{DIFF}	{ count(); return DIFF; }
-<INITIAL>{MATCH}	{ count(); return MATCH; }
-<INITIAL>{NOT}		{ count(); return NOT; }
-<INITIAL>{AND}		{ count(); return AND; }
-<INITIAL>{OR}		{ count(); return OR;  }
-<INITIAL>{PLUS}		{ count(); return PLUS; }
-<INITIAL>{MINUS}	{ count(); return MINUS; }
-
-
-
-<INITIAL>{IPV6ADDR}		{ count(); yylval.strval=yytext; return IPV6ADDR; }
-<INITIAL>{NUMBER}		{ count(); yylval.intval=atoi(yytext);return NUMBER; }
-<INITIAL>{HEXNUMBER}	{ count(); yylval.intval=(int)strtol(yytext, 0, 16);
-							return NUMBER; }
-<INITIAL>{OCTNUMBER}	{ count(); yylval.intval=(int)strtol(yytext, 0, 8);
-							return NUMBER; }
-<INITIAL>{YES}			{ count(); yylval.intval=1; return NUMBER; }
-<INITIAL>{NO}			{ count(); yylval.intval=0; return NUMBER; }
-<INITIAL>{TCP}			{ count(); return TCP; }
-<INITIAL>{UDP}			{ count(); return UDP; }
-<INITIAL>{TLS}			{ count(); return TLS; }
-<INITIAL>{INET}			{ count(); yylval.intval=AF_INET; return NUMBER; }
-<INITIAL>{INET6}		{ count();
-						#ifdef USE_IPV6
-						  yylval.intval=AF_INET6;
-						#else
-						  yylval.intval=-1; /* no match*/
-						#endif
-						  return NUMBER; }
-<INITIAL>{SSLv23}		{ count(); yylval.strval=yytext; return SSLv23; }
-<INITIAL>{SSLv2}		{ count(); yylval.strval=yytext; return SSLv2; }
-<INITIAL>{SSLv3}		{ count(); yylval.strval=yytext; return SSLv3; }
-<INITIAL>{TLSv1}		{ count(); yylval.strval=yytext; return TLSv1; }
-
-<INITIAL>{COMMA}		{ count(); return COMMA; }
-<INITIAL>{SEMICOLON}	{ count(); return SEMICOLON; }
-<INITIAL>{COLON}	{ count(); return COLON; }
-<INITIAL>{STAR}	{ count(); return STAR; }
-<INITIAL>{RPAREN}	{ count(); return RPAREN; }
-<INITIAL>{LPAREN}	{ count(); return LPAREN; }
-<INITIAL>{LBRACE}	{ count(); return LBRACE; }
-<INITIAL>{RBRACE}	{ count(); return RBRACE; }
-<INITIAL>{LBRACK}	{ count(); return LBRACK; }
-<INITIAL>{RBRACK}	{ count(); return RBRACK; }
-<INITIAL>{SLASH}	{ count(); return SLASH; }
-<INITIAL>{DOT}		{ count(); return DOT; }
-<INITIAL>\\{CR}		{count(); } /* eat the escaped CR */
-<INITIAL>{CR}		{ count();/* return CR;*/ }
-
-
-<INITIAL>{QUOTES} { count(); state=STRING_S; BEGIN(STRING1); }
-<INITIAL>{TICK} { count(); state=STRING_S; BEGIN(STRING2); }
-
-
-<STRING1>{QUOTES} { count(); state=INITIAL_S; BEGIN(INITIAL); 
-						yytext[yyleng-1]=0; yyleng--;
-						addstr(&s_buf, yytext, yyleng);
-						yylval.strval=s_buf.s;
-						memset(&s_buf, 0, sizeof(s_buf));
-						return STRING;
-					}
-<STRING2>{TICK}  { count(); state=INITIAL_S; BEGIN(INITIAL); 
-						yytext[yyleng-1]=0; yyleng--;
-						addstr(&s_buf, yytext, yyleng);
-						yylval.strval=s_buf.s;
-						memset(&s_buf, 0, sizeof(s_buf));
-						return STRING;
-					}
-<STRING2>.|{EAT_ABLE}|{CR}	{ yymore(); }
-
-<STRING1>\\n		{ count(); addchar(&s_buf, '\n'); }
-<STRING1>\\r		{ count(); addchar(&s_buf, '\r'); }
-<STRING1>\\a		{ count(); addchar(&s_buf, '\a'); }
-<STRING1>\\t		{ count(); addchar(&s_buf, '\t'); }
-<STRING1>\\{QUOTES}	{ count(); addchar(&s_buf, '"');  }
-<STRING1>\\\\		{ count(); addchar(&s_buf, '\\'); } 
-<STRING1>\\x{HEX}{1,2}	{ count(); addchar(&s_buf, 
-											(char)strtol(yytext+2, 0, 16)); }
- /* don't allow \[0-7]{1}, it will eat the backreferences from
-    subst_uri if allowed (although everybody should use '' in subt_uri) */
-<STRING1>\\[0-7]{2,3}	{ count(); addchar(&s_buf, 
-											(char)strtol(yytext+1, 0, 8));  }
-<STRING1>\\{CR}		{ count(); } /* eat escaped CRs */
-<STRING1>.|{EAT_ABLE}|{CR}	{ addchar(&s_buf, *yytext); }
-
-
-<INITIAL,COMMENT>{COM_START}	{ count(); comment_nest++; state=COMMENT_S;
-										BEGIN(COMMENT); }
-<COMMENT>{COM_END}				{ count(); comment_nest--;
-										if (comment_nest==0){
-											state=INITIAL_S;
-											BEGIN(INITIAL);
-										}
-								}
-<COMMENT>.|{EAT_ABLE}|{CR}				{ count(); };
-
-<INITIAL>{COM_LINE}.*{CR}	{ count(); } 
-
-<INITIAL>{ID}			{ count(); addstr(&s_buf, yytext, yyleng); 
-									yylval.strval=s_buf.s;
-									memset(&s_buf, 0, sizeof(s_buf));
-									return ID; }
-
-
-<<EOF>>							{
-									switch(state){
-										case STRING_S: 
-											LOG(L_CRIT, "ERROR: cfg. parser: unexpected EOF in"
-														" unclosed string\n");
-											if (s_buf.s){
-												pkg_free(s_buf.s);
-												memset(&s_buf, 0,
-															sizeof(s_buf));
-											}
-											break;
-										case COMMENT_S:
-											LOG(L_CRIT, "ERROR: cfg. parser: unexpected EOF:"
-														" %d comments open\n", comment_nest);
-											break;
-										case COMMENT_LN_S:
-											LOG(L_CRIT, "ERROR: unexpected EOF:"
-														"comment line open\n");
-											break;
-									}
-									return 0;
-								}
-			
-%%
-
-
-static char* addchar(struct str_buf* dst, char c)
-{
-	return addstr(dst, &c, 1);
-}
-
-
-
-static char* addstr(struct str_buf* dst_b, char* src, int len)
-{
-	char *tmp;
-	unsigned size;
-	unsigned used;
-	
-	if (dst_b->left<(len+1)){
-		used=(unsigned)(dst_b->crt-dst_b->s);
-		size=used+len+1;
-		/* round up to next multiple */
-		size+= STR_BUF_ALLOC_UNIT-size%STR_BUF_ALLOC_UNIT;
-		tmp=pkg_malloc(size);
-		if (tmp==0) goto error;
-		if (dst_b->s){
-			memcpy(tmp, dst_b->s, used); 
-			pkg_free(dst_b->s);
-		}
-		dst_b->s=tmp;
-		dst_b->crt=dst_b->s+used;
-		dst_b->left=size-used;
-	}
-	memcpy(dst_b->crt, src, len);
-	dst_b->crt+=len;
-	*(dst_b->crt)=0;
-	dst_b->left-=len;
-	
-	return dst_b->s;
-error:
-	LOG(L_CRIT, "ERROR:lex:addstr: memory allocation error\n");
-	return 0;
-}
-
-
-
-static void count()
-{
-	int i;
-	
-	startcolumn=column;
-	for (i=0; i<yyleng;i++){
-		if (yytext[i]=='\n'){
-			line++;
-			column=startcolumn=1;
-		}else if (yytext[i]=='\t'){
-			column++;
-			/*column+=8 -(column%8);*/
-		}else{
-			column++;
-		}
-	}
-}
-
-

Deleted: ser/trunk/cfg.y
===================================================================
--- ser/trunk/cfg.y	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/cfg.y	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,1716 +0,0 @@
-/*
- * $Id: cfg.y,v 1.84.2.3 2005/12/06 12:17:17 andrei Exp $
- *
- *  cfg grammar
- *
- * 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 at 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
- */
- /*
- * History:
- * ---------
- * 2003-01-29  src_port added (jiri)
- * 2003-01-23  mhomed added (jiri)
- * 2003-03-19  replaced all mallocs/frees with pkg_malloc/pkg_free (andrei)
- * 2003-03-19  Added support for route type in find_export (janakj)
- * 2003-03-20  Regex support in modparam (janakj)
- * 2003-04-01  added dst_port, proto , af (andrei)
- * 2003-04-05  s/reply_route/failure_route, onreply_route introduced (jiri)
- * 2003-04-12  added force_rport, chroot and wdir (andrei)
- * 2003-04-15  added tcp_children, disable_tcp (andrei)
- * 2003-04-22  strip_tail added (jiri)
- * 2003-07-03  tls* (disable, certificate, private_key, ca_list, verify, 
- *              require_certificate added (andrei)
- * 2003-07-06  more tls config. vars added: tls_method, tls_port_no (andrei)
- * 2003-10-02  added {,set_}advertised_{address,port} (andrei)
- * 2003-10-10  added <,>,<=,>=, != operators support
- *             added msg:len (andrei)
- * 2003-10-11  if(){} doesn't require a ';' after it anymore (andrei)
- * 2003-10-13  added FIFO_DIR & proto:host:port listen/alias support (andrei)
- * 2003-10-24  converted to the new socket_info lists (andrei)
- * 2003-10-28  added tcp_accept_aliases (andrei)
- * 2003-11-20  added {tcp_connect, tcp_send, tls_*}_timeout (andrei)
- * 2004-03-30  added DISABLE_CORE and OPEN_FD_LIMIT (andrei)
- * 2004-04-29  added SOCK_MODE, SOCK_USER & SOCK_GROUP (andrei)
- * 2004-05-03  applied multicast support patch (MCAST_LOOPBACK) from janakj
-               added MCAST_TTL (andrei)
- * 2004-07-05  src_ip & dst_ip will detect ip addresses between quotes
- *              (andrei)
- * 2004-10-19  added FROM_URI, TO_URI (andrei)
- * 2004-11-30  added force_send_socket (andrei)
- * 2005-11-16  fixed if (cond) cmd; (andrei)
- */
-
-
-%{
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <string.h>
-#include <errno.h>
-#include "route_struct.h"
-#include "globals.h"
-#include "route.h"
-#include "dprint.h"
-#include "sr_module.h"
-#include "modparam.h"
-#include "ip_addr.h"
-#include "resolve.h"
-#include "socket_info.h"
-#include "name_alias.h"
-#include "ut.h"
-#include "dset.h"
-
-
-#include "config.h"
-#ifdef USE_TLS
-#include "tls/tls_config.h"
-#endif
-
-#ifdef DEBUG_DMALLOC
-#include <dmalloc.h>
-#endif
-
-/* hack to avoid alloca usage in the generated C file (needed for compiler
- with no built in alloca, like icc*/
-#undef _ALLOCA_H
-
-
-extern int yylex();
-static void yyerror(char* s);
-static char* tmp;
-static int i_tmp;
-static void* f_tmp;
-static struct socket_id* lst_tmp;
-static int rt;  /* Type of route block for find_export */
-static str* str_tmp;
-static str s_tmp;
-static struct ip_addr* ip_tmp;
-
-static void warn(char* s);
-static struct socket_id* mk_listen_id(char*, int, int);
- 
-
-%}
-
-%union {
-	long intval;
-	unsigned long uval;
-	char* strval;
-	struct expr* expr;
-	struct action* action;
-	struct net* ipnet;
-	struct ip_addr* ipaddr;
-	struct socket_id* sockid;
-}
-
-/* terminals */
-
-
-/* keywords */
-%token FORWARD
-%token FORWARD_TCP
-%token FORWARD_TLS
-%token FORWARD_UDP
-%token SEND
-%token SEND_TCP
-%token DROP
-%token LOG_TOK
-%token ERROR
-%token ROUTE
-%token ROUTE_FAILURE
-%token ROUTE_ONREPLY
-%token EXEC
-%token SET_HOST
-%token SET_HOSTPORT
-%token PREFIX
-%token STRIP
-%token STRIP_TAIL
-%token APPEND_BRANCH
-%token SET_USER
-%token SET_USERPASS
-%token SET_PORT
-%token SET_URI
-%token REVERT_URI
-%token FORCE_RPORT
-%token FORCE_TCP_ALIAS
-%token IF
-%token ELSE
-%token SET_ADV_ADDRESS
-%token SET_ADV_PORT
-%token FORCE_SEND_SOCKET
-%token URIHOST
-%token URIPORT
-%token MAX_LEN
-%token SETFLAG
-%token RESETFLAG
-%token ISFLAGSET
-%token METHOD
-%token URI
-%token FROM_URI
-%token TO_URI
-%token SRCIP
-%token SRCPORT
-%token DSTIP
-%token DSTPORT
-%token PROTO
-%token AF
-%token MYSELF
-%token MSGLEN 
-%token UDP
-%token TCP
-%token TLS
-
-/* config vars. */
-%token DEBUG
-%token FORK
-%token LOGSTDERROR
-%token LOGFACILITY
-%token LISTEN
-%token ALIAS
-%token DNS
-%token REV_DNS
-%token PORT
-%token STAT
-%token CHILDREN
-%token CHECK_VIA
-%token SYN_BRANCH
-%token MEMLOG
-%token SIP_WARNING
-%token FIFO
-%token FIFO_DIR
-%token SOCK_MODE
-%token SOCK_USER
-%token SOCK_GROUP
-%token FIFO_DB_URL
-%token UNIX_SOCK
-%token UNIX_SOCK_CHILDREN
-%token UNIX_TX_TIMEOUT
-%token SERVER_SIGNATURE
-%token REPLY_TO_VIA
-%token LOADMODULE
-%token MODPARAM
-%token MAXBUFFER
-%token USER
-%token GROUP
-%token CHROOT
-%token WDIR
-%token MHOMED
-%token DISABLE_TCP
-%token TCP_ACCEPT_ALIASES
-%token TCP_CHILDREN
-%token TCP_CONNECT_TIMEOUT
-%token TCP_SEND_TIMEOUT
-%token DISABLE_TLS
-%token TLSLOG
-%token TLS_PORT_NO
-%token TLS_METHOD
-%token TLS_HANDSHAKE_TIMEOUT
-%token TLS_SEND_TIMEOUT
-%token SSLv23
-%token SSLv2
-%token SSLv3
-%token TLSv1
-%token TLS_VERIFY
-%token TLS_REQUIRE_CERTIFICATE
-%token TLS_CERTIFICATE
-%token TLS_PRIVATE_KEY
-%token TLS_CA_LIST
-%token ADVERTISED_ADDRESS
-%token ADVERTISED_PORT
-%token DISABLE_CORE
-%token OPEN_FD_LIMIT
-%token MCAST_LOOPBACK
-%token MCAST_TTL
-
-
-
-
-/* operators */
-%nonassoc EQUAL
-%nonassoc EQUAL_T
-%nonassoc GT
-%nonassoc LT
-%nonassoc GTE
-%nonassoc LTE
-%nonassoc DIFF
-%nonassoc MATCH
-%left OR
-%left AND
-%left NOT
-%left PLUS
-%left MINUS
-
-/* values */
-%token <intval> NUMBER
-%token <strval> ID
-%token <strval> STRING
-%token <strval> IPV6ADDR
-
-/* other */
-%token COMMA
-%token SEMICOLON
-%token RPAREN
-%token LPAREN
-%token LBRACE
-%token RBRACE
-%token LBRACK
-%token RBRACK
-%token SLASH
-%token DOT
-%token CR
-%token COLON
-%token STAR
-
-
-/*non-terminals */
-%type <expr> exp exp_elem /*, condition*/
-%type <action> action actions cmd if_cmd stm exp_stm
-%type <ipaddr> ipv4 ipv6 ipv6addr ip
-%type <ipnet> ipnet
-%type <strval> host
-%type <strval> listen_id
-%type <sockid>  id_lst
-%type <sockid>  phostport
-%type <intval> proto port
-%type <intval> equalop strop intop
-%type <strval> host_sep
-%type <intval> uri_type
-/*%type <route_el> rules;
-  %type <route_el> rule;
-*/
-
-
-
-%%
-
-
-cfg:	statements
-	;
-
-statements:	statements statement {}
-		| statement {}
-		| statements error { yyerror(""); YYABORT;}
-	;
-
-statement:	assign_stm 
-		| module_stm
-		| {rt=REQUEST_ROUTE;} route_stm 
-		| {rt=FAILURE_ROUTE;} failure_route_stm
-		| {rt=ONREPLY_ROUTE;} onreply_route_stm
-		| CR	/* null statement*/
-	;
-
-listen_id:	ip			{	tmp=ip_addr2a($1);
-		 					if(tmp==0){
-								LOG(L_CRIT, "ERROR: cfg. parser: bad ip "
-										"address.\n");
-								$$=0;
-							}else{
-								$$=pkg_malloc(strlen(tmp)+1);
-								if ($$==0){
-									LOG(L_CRIT, "ERROR: cfg. parser: out of "
-											"memory.\n");
-								}else{
-									strncpy($$, tmp, strlen(tmp)+1);
-								}
-							}
-						}
-		 |	STRING			{	$$=pkg_malloc(strlen($1)+1);
-		 					if ($$==0){
-									LOG(L_CRIT, "ERROR: cfg. parser: out of "
-											"memory.\n");
-							}else{
-									strncpy($$, $1, strlen($1)+1);
-							}
-						}
-		 |	host		{	$$=pkg_malloc(strlen($1)+1);
-		 					if ($$==0){
-									LOG(L_CRIT, "ERROR: cfg. parser: out of "
-											"memory.\n");
-							}else{
-									strncpy($$, $1, strlen($1)+1);
-							}
-						}
-	;
-
-proto:	  UDP	{ $$=PROTO_UDP; }
-		| TCP	{ $$=PROTO_TCP; }
-		| TLS	{ $$=PROTO_TLS; }
-		| STAR	{ $$=0; }
-		;
-
-port:	  NUMBER	{ $$=$1; }
-		| STAR		{ $$=0; }
-;
-
-phostport:	listen_id				{ $$=mk_listen_id($1, 0, 0); }
-			| listen_id COLON port	{ $$=mk_listen_id($1, 0, $3); }
-			| proto COLON listen_id	{ $$=mk_listen_id($3, $1, 0); }
-			| proto COLON listen_id COLON port	{ $$=mk_listen_id($3, $1, $5);}
-			| listen_id COLON error { $$=0; yyerror(" port number expected"); }
-			;
-
-id_lst:		phostport		{  $$=$1 ; }
-		| phostport id_lst	{ $$=$1; $$->next=$2; }
-		;
-
-
-assign_stm:	DEBUG EQUAL NUMBER { debug=$3; }
-		| DEBUG EQUAL error  { yyerror("number  expected"); }
-		| FORK  EQUAL NUMBER { dont_fork= ! $3; }
-		| FORK  EQUAL error  { yyerror("boolean value expected"); }
-		| LOGSTDERROR EQUAL NUMBER { if (!config_check) log_stderr=$3; }
-		| LOGSTDERROR EQUAL error { yyerror("boolean value expected"); }
-		| LOGFACILITY EQUAL ID {
-					if ( (i_tmp=str2facility($3))==-1)
-						yyerror("bad facility (see syslog(3) man page)");
-					if (!config_check)
-						log_facility=i_tmp;
-									}
-		| LOGFACILITY EQUAL error { yyerror("ID expected"); }
-		| DNS EQUAL NUMBER   { received_dns|= ($3)?DO_DNS:0; }
-		| DNS EQUAL error { yyerror("boolean value expected"); }
-		| REV_DNS EQUAL NUMBER { received_dns|= ($3)?DO_REV_DNS:0; }
-		| REV_DNS EQUAL error { yyerror("boolean value expected"); }
-		| PORT EQUAL NUMBER   { port_no=$3; }
-		| STAT EQUAL STRING {
-					#ifdef STATS
-							stat_file=$3;
-					#endif
-							}
-		| MAXBUFFER EQUAL NUMBER { maxbuffer=$3; }
-		| MAXBUFFER EQUAL error { yyerror("number expected"); }
-		| PORT EQUAL error    { yyerror("number expected"); } 
-		| CHILDREN EQUAL NUMBER { children_no=$3; }
-		| CHILDREN EQUAL error { yyerror("number expected"); } 
-		| CHECK_VIA EQUAL NUMBER { check_via=$3; }
-		| CHECK_VIA EQUAL error { yyerror("boolean value expected"); }
-		| SYN_BRANCH EQUAL NUMBER { syn_branch=$3; }
-		| SYN_BRANCH EQUAL error { yyerror("boolean value expected"); }
-		| MEMLOG EQUAL NUMBER { memlog=$3; }
-		| MEMLOG EQUAL error { yyerror("int value expected"); }
-		| SIP_WARNING EQUAL NUMBER { sip_warning=$3; }
-		| SIP_WARNING EQUAL error { yyerror("boolean value expected"); }
-		| FIFO EQUAL STRING { fifo=$3; }
-		| FIFO EQUAL error { yyerror("string value expected"); }
-		| FIFO_DIR EQUAL STRING { fifo_dir=$3; }
-		| FIFO_DIR EQUAL error { yyerror("string value expected"); }
-		| SOCK_MODE EQUAL NUMBER { sock_mode=$3; }
-		| SOCK_MODE EQUAL error { yyerror("int value expected"); }
-		| SOCK_USER EQUAL STRING { sock_user=$3; }
-		| SOCK_USER EQUAL ID     { sock_user=$3; }
-		| SOCK_USER EQUAL error { yyerror("string value expected"); }
-		| SOCK_GROUP EQUAL STRING { sock_group=$3; }
-		| SOCK_GROUP EQUAL ID     { sock_group=$3; }
-		| SOCK_GROUP EQUAL error { yyerror("string value expected"); }
-		| FIFO_DB_URL EQUAL STRING { fifo_db_url=$3; }
-		| FIFO_DB_URL EQUAL error  { yyerror("string value expected"); }
-		| UNIX_SOCK EQUAL STRING { unixsock_name=$3; }
-		| UNIX_SOCK EQUAL error { yyerror("string value expected"); }
-		| UNIX_SOCK_CHILDREN EQUAL NUMBER { unixsock_children=$3; }
-		| UNIX_SOCK_CHILDREN EQUAL error { yyerror("int value expected\n"); }
-		| UNIX_TX_TIMEOUT EQUAL NUMBER { unixsock_tx_timeout=$3; }
-		| UNIX_TX_TIMEOUT EQUAL error { yyerror("int value expected\n"); }
-		| USER EQUAL STRING     { user=$3; }
-		| USER EQUAL ID         { user=$3; }
-		| USER EQUAL error      { yyerror("string value expected"); }
-		| GROUP EQUAL STRING     { group=$3; }
-		| GROUP EQUAL ID         { group=$3; }
-		| GROUP EQUAL error      { yyerror("string value expected"); }
-		| CHROOT EQUAL STRING     { chroot_dir=$3; }
-		| CHROOT EQUAL ID         { chroot_dir=$3; }
-		| CHROOT EQUAL error      { yyerror("string value expected"); }
-		| WDIR EQUAL STRING     { working_dir=$3; }
-		| WDIR EQUAL ID         { working_dir=$3; }
-		| WDIR EQUAL error      { yyerror("string value expected"); }
-		| MHOMED EQUAL NUMBER { mhomed=$3; }
-		| MHOMED EQUAL error { yyerror("boolean value expected"); }
-		| DISABLE_TCP EQUAL NUMBER {
-									#ifdef USE_TCP
-										tcp_disable=$3;
-									#else
-										warn("tcp support not compiled in");
-									#endif
-									}
-		| DISABLE_TCP EQUAL error { yyerror("boolean value expected"); }
-		| TCP_ACCEPT_ALIASES EQUAL NUMBER {
-									#ifdef USE_TCP
-										tcp_accept_aliases=$3;
-									#else
-										warn("tcp support not compiled in");
-									#endif
-									}
-		| TCP_ACCEPT_ALIASES EQUAL error { yyerror("boolean value expected"); }
-		| TCP_CHILDREN EQUAL NUMBER {
-									#ifdef USE_TCP
-										tcp_children_no=$3;
-									#else
-										warn("tcp support not compiled in");
-									#endif
-									}
-		| TCP_CHILDREN EQUAL error { yyerror("number expected"); }
-		| TCP_CONNECT_TIMEOUT EQUAL NUMBER {
-									#ifdef USE_TCP
-										tcp_connect_timeout=$3;
-									#else
-										warn("tcp support not compiled in");
-									#endif
-									}
-		| TCP_CONNECT_TIMEOUT EQUAL error { yyerror("number expected"); }
-		| TCP_SEND_TIMEOUT EQUAL NUMBER {
-									#ifdef USE_TCP
-										tcp_send_timeout=$3;
-									#else
-										warn("tcp support not compiled in");
-									#endif
-									}
-		| TCP_SEND_TIMEOUT EQUAL error { yyerror("number expected"); }
-		| DISABLE_TLS EQUAL NUMBER {
-									#ifdef USE_TLS
-										tls_disable=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| DISABLE_TLS EQUAL error { yyerror("boolean value expected"); }
-		| TLSLOG EQUAL NUMBER 		{ 
-									#ifdef USE_TLS
-										tls_log=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLSLOG EQUAL error { yyerror("int value expected"); }
-		| TLS_PORT_NO EQUAL NUMBER {
-									#ifdef USE_TLS
-										tls_port_no=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_PORT_NO EQUAL error { yyerror("number expected"); }
-		| TLS_METHOD EQUAL SSLv23 {
-									#ifdef USE_TLS
-										tls_method=TLS_USE_SSLv23;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_METHOD EQUAL SSLv2 {
-									#ifdef USE_TLS
-										tls_method=TLS_USE_SSLv2;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_METHOD EQUAL SSLv3 {
-									#ifdef USE_TLS
-										tls_method=TLS_USE_SSLv3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_METHOD EQUAL TLSv1 {
-									#ifdef USE_TLS
-										tls_method=TLS_USE_TLSv1;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_METHOD EQUAL error {
-									#ifdef USE_TLS
-										yyerror("SSLv23, SSLv2, SSLv3 or TLSv1"
-													" expected");
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-										
-		| TLS_VERIFY EQUAL NUMBER {
-									#ifdef USE_TLS
-										tls_verify_cert=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_VERIFY EQUAL error { yyerror("boolean value expected"); }
-		| TLS_REQUIRE_CERTIFICATE EQUAL NUMBER {
-									#ifdef USE_TLS
-										tls_require_cert=$3;
-									#else
-										warn( "tls support not compiled in");
-									#endif
-									}
-		| TLS_REQUIRE_CERTIFICATE EQUAL error { yyerror("boolean value"
-																" expected"); }
-		| TLS_CERTIFICATE EQUAL STRING { 
-									#ifdef USE_TLS
-											tls_cert_file=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_CERTIFICATE EQUAL error { yyerror("string value expected"); }
-		| TLS_PRIVATE_KEY EQUAL STRING { 
-									#ifdef USE_TLS
-											tls_pkey_file=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_PRIVATE_KEY EQUAL error { yyerror("string value expected"); }
-		| TLS_CA_LIST EQUAL STRING { 
-									#ifdef USE_TLS
-											tls_ca_file=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_CA_LIST EQUAL error { yyerror("string value expected"); }
-		| TLS_HANDSHAKE_TIMEOUT EQUAL NUMBER {
-									#ifdef USE_TLS
-										tls_handshake_timeout=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_HANDSHAKE_TIMEOUT EQUAL error { yyerror("number expected"); }
-		| TLS_SEND_TIMEOUT EQUAL NUMBER {
-									#ifdef USE_TLS
-										tls_send_timeout=$3;
-									#else
-										warn("tls support not compiled in");
-									#endif
-									}
-		| TLS_SEND_TIMEOUT EQUAL error { yyerror("number expected"); }
-		| SERVER_SIGNATURE EQUAL NUMBER { server_signature=$3; }
-		| SERVER_SIGNATURE EQUAL error { yyerror("boolean value expected"); }
-		| REPLY_TO_VIA EQUAL NUMBER { reply_to_via=$3; }
-		| REPLY_TO_VIA EQUAL error { yyerror("boolean value expected"); }
-		| LISTEN EQUAL id_lst {
-							for(lst_tmp=$3; lst_tmp; lst_tmp=lst_tmp->next){
-								if (add_listen_iface(	lst_tmp->name,
-														lst_tmp->port,
-														lst_tmp->proto,
-														0
-													)!=0){
-									LOG(L_CRIT,  "ERROR: cfg. parser: failed"
-											" to add listen address\n");
-									break;
-								}
-							}
-							 }
-		| LISTEN EQUAL  error { yyerror("ip address or hostname"
-						"expected"); }
-		| ALIAS EQUAL  id_lst { 
-							for(lst_tmp=$3; lst_tmp; lst_tmp=lst_tmp->next)
-								add_alias(lst_tmp->name, strlen(lst_tmp->name),
-											lst_tmp->port, lst_tmp->proto);
-							  }
-		| ALIAS  EQUAL error  { yyerror(" hostname expected"); }
-		| ADVERTISED_ADDRESS EQUAL listen_id {
-								default_global_address.s=$3;
-								default_global_address.len=strlen($3);
-								}
-		|ADVERTISED_ADDRESS EQUAL error {yyerror("ip address or hostname "
-												"expected"); }
-		| ADVERTISED_PORT EQUAL NUMBER {
-								tmp=int2str($3, &i_tmp);
-								if ((default_global_port.s=pkg_malloc(i_tmp))
-										==0){
-										LOG(L_CRIT, "ERROR: cfg. parser:"
-													" out of memory.\n");
-										default_global_port.len=0;
-								}else{
-									default_global_port.len=i_tmp;
-									memcpy(default_global_port.s, tmp,
-											default_global_port.len);
-								};
-								}
-		|ADVERTISED_PORT EQUAL error {yyerror("ip address or hostname "
-												"expected"); }
-		| DISABLE_CORE EQUAL NUMBER {
-										disable_core_dump=$3;
-									}
-		| DISABLE_CORE EQUAL error { yyerror("boolean value expected"); }
-		| OPEN_FD_LIMIT EQUAL NUMBER {
-										open_files_limit=$3;
-									}
-		| OPEN_FD_LIMIT EQUAL error { yyerror("number expected"); }
-		| MCAST_LOOPBACK EQUAL NUMBER {
-								#ifdef USE_MCAST
-										mcast_loopback=$3;
-								#else
-									warn("no multicast support compiled in");
-								#endif
-		  }
-		| MCAST_LOOPBACK EQUAL error { yyerror("boolean value expected"); }
-		| MCAST_TTL EQUAL NUMBER {
-								#ifdef USE_MCAST
-										mcast_ttl=$3;
-								#else
-									warn("no multicast support compiled in");
-								#endif
-		  }
-		| MCAST_TTL EQUAL error { yyerror("number expected"); }
-		| error EQUAL { yyerror("unknown config variable"); }
-	;
-
-module_stm:	LOADMODULE STRING	{ DBG("loading module %s\n", $2);
-		  						  if (load_module($2)!=0){
-								  		yyerror("failed to load module");
-								  }
-								}
-		 | LOADMODULE error	{ yyerror("string expected");  }
-                 | MODPARAM LPAREN STRING COMMA STRING COMMA STRING RPAREN {
-			 if (set_mod_param_regex($3, $5, STR_PARAM, $7) != 0) {
-				 yyerror("Can't set module parameter");
-			 }
-		   }
-                 | MODPARAM LPAREN STRING COMMA STRING COMMA NUMBER RPAREN {
-			 if (set_mod_param_regex($3, $5, INT_PARAM, (void*)$7) != 0) {
-				 yyerror("Can't set module parameter");
-			 }
-		   }
-                 | MODPARAM error { yyerror("Invalid arguments"); }
-		 ;
-
-
-ip:		 ipv4  { $$=$1; }
-		|ipv6  { $$=$1; }
-		;
-
-ipv4:	NUMBER DOT NUMBER DOT NUMBER DOT NUMBER { 
-											$$=pkg_malloc(
-													sizeof(struct ip_addr));
-											if ($$==0){
-												LOG(L_CRIT, "ERROR: cfg. "
-													"parser: out of memory.\n"
-													);
-											}else{
-												memset($$, 0, 
-													sizeof(struct ip_addr));
-												$$->af=AF_INET;
-												$$->len=4;
-												if (($1>255) || ($1<0) ||
-													($3>255) || ($3<0) ||
-													($5>255) || ($5<0) ||
-													($7>255) || ($7<0)){
-													yyerror("invalid ipv4"
-															"address");
-													$$->u.addr32[0]=0;
-													/* $$=0; */
-												}else{
-													$$->u.addr[0]=$1;
-													$$->u.addr[1]=$3;
-													$$->u.addr[2]=$5;
-													$$->u.addr[3]=$7;
-													/*
-													$$=htonl( ($1<<24)|
-													($3<<16)| ($5<<8)|$7 );
-													*/
-												}
-											}
-												}
-	;
-
-ipv6addr:	IPV6ADDR {
-					$$=pkg_malloc(sizeof(struct ip_addr));
-					if ($$==0){
-						LOG(L_CRIT, "ERROR: cfg. parser: out of memory.\n");
-					}else{
-						memset($$, 0, sizeof(struct ip_addr));
-						$$->af=AF_INET6;
-						$$->len=16;
-					#ifdef USE_IPV6
-						if (inet_pton(AF_INET6, $1, $$->u.addr)<=0){
-							yyerror("bad ipv6 address");
-						}
-					#else
-						yyerror("ipv6 address & no ipv6 support compiled in");
-						YYABORT;
-					#endif
-					}
-				}
-	;
-
-ipv6:	ipv6addr { $$=$1; }
-	| LBRACK ipv6addr RBRACK {$$=$2; }
-;
-
-
-route_stm:  ROUTE LBRACE actions RBRACE { push($3, &rlist[DEFAULT_RT]); }
-
-	    | ROUTE LBRACK NUMBER RBRACK LBRACE actions RBRACE { 
-										if (($3<RT_NO) && ($3>=0)){
-											push($6, &rlist[$3]);
-										}else{
-											yyerror("invalid routing "
-													"table number");
-											YYABORT; }
-										}
-		| ROUTE error { yyerror("invalid  route  statement"); }
-	;
-
-failure_route_stm: ROUTE_FAILURE LBRACK NUMBER RBRACK LBRACE actions RBRACE {
-										if (($3<FAILURE_RT_NO)&&($3>=1)){
-											push($6, &failure_rlist[$3]);
-										} else {
-											yyerror("invalid reply routing"
-												"table number");
-											YYABORT; }
-										}
-		| ROUTE_FAILURE error { yyerror("invalid failure_route statement"); }
-	;
-
-onreply_route_stm: ROUTE_ONREPLY LBRACK NUMBER RBRACK LBRACE actions RBRACE {
-										if (($3<ONREPLY_RT_NO)&&($3>=1)){
-											push($6, &onreply_rlist[$3]);
-										} else {
-											yyerror("invalid reply routing"
-												"table number");
-											YYABORT; }
-										}
-		| ROUTE_ONREPLY error { yyerror("invalid onreply_route statement"); }
-	;
-/*
-rules:	rules rule { push($2, &$1); $$=$1; }
-	| rule {$$=$1; }
-	| rules error { $$=0; yyerror("invalid rule"); }
-	 ;
-
-rule:	condition	actions CR {
-								$$=0;
-								if (add_rule($1, $2, &$$)<0) {
-									yyerror("error calling add_rule");
-									YYABORT;
-								}
-							  }
-	| CR		{ $$=0;}
-	| condition error { $$=0; yyerror("bad actions in rule"); }
-	;
-
-condition:	exp {$$=$1;}
-*/
-
-exp:	exp AND exp 	{ $$=mk_exp(AND_OP, $1, $3); }
-	| exp OR  exp		{ $$=mk_exp(OR_OP, $1, $3);  }
-	| NOT exp 			{ $$=mk_exp(NOT_OP, $2, 0);  }
-	| LPAREN exp RPAREN	{ $$=$2; }
-	| exp_elem			{ $$=$1; }
-	;
-
-equalop:	  EQUAL_T {$$=EQUAL_OP; }
-			| DIFF	{$$=DIFF_OP; }
-		;
-		
-intop:	equalop	{$$=$1; }
-		|  GT	{$$=GT_OP; }
-		| LT	{$$=LT_OP; }
-		| GTE	{$$=GTE_OP; }
-		| LTE	{$$=LTE_OP; }
-		;
-		
-strop:	equalop	{$$=$1; }
-		| MATCH	{$$=MATCH_OP; }
-		;
-
-uri_type:	URI			{$$=URI_O;}
-		|	FROM_URI	{$$=FROM_URI_O;}
-		|	TO_URI		{$$=TO_URI_O;}
-		;
-
-exp_elem:	METHOD strop STRING	{$$= mk_elem(	$2, STRING_ST, 
-													METHOD_O, $3);
-									}
-		| METHOD strop  ID	{$$ = mk_elem(	$2, STRING_ST,
-											METHOD_O, $3); 
-				 			}
-		| METHOD strop error { $$=0; yyerror("string expected"); }
-		| METHOD error	{ $$=0; yyerror("invalid operator,"
-										"== , !=, or =~ expected");
-						}
-		| uri_type strop STRING	{$$ = mk_elem(	$2, STRING_ST,
-												$1, $3); 
-				 				}
-		| uri_type strop host 	{$$ = mk_elem(	$2, STRING_ST,
-											$1, $3); 
-				 			}
-		| uri_type equalop MYSELF	{ $$=mk_elem(	$2, MYSELF_ST,
-													$1, 0);
-								}
-		| uri_type strop error { $$=0; yyerror("string or MYSELF expected"); }
-		| uri_type error	{ $$=0; yyerror("invalid operator,"
-									" == , != or =~ expected");
-					}
-		| SRCPORT intop NUMBER	{ $$=mk_elem(	$2, NUMBER_ST,
-												SRCPORT_O, (void *) $3 ); }
-		| SRCPORT intop error { $$=0; yyerror("number expected"); }
-		| SRCPORT error { $$=0; yyerror("==, !=, <,>, >= or <=  expected"); }
-		| DSTPORT intop NUMBER	{ $$=mk_elem(	$2, NUMBER_ST,
-												DSTPORT_O, (void *) $3 ); }
-		| DSTPORT intop error { $$=0; yyerror("number expected"); }
-		| DSTPORT error { $$=0; yyerror("==, !=, <,>, >= or <=  expected"); }
-		| PROTO intop proto	{ $$=mk_elem(	$2, NUMBER_ST,
-												PROTO_O, (void *) $3 ); }
-		| PROTO intop error { $$=0;
-								yyerror("protocol expected (udp, tcp or tls)");
-							}
-		| PROTO error { $$=0; yyerror("equal/!= operator expected"); }
-		| AF intop NUMBER	{ $$=mk_elem(	$2, NUMBER_ST,
-												AF_O, (void *) $3 ); }
-		| AF intop error { $$=0; yyerror("number expected"); }
-		| AF error { $$=0; yyerror("equal/!= operator expected"); }
-		| MSGLEN intop NUMBER	{ $$=mk_elem(	$2, NUMBER_ST,
-												MSGLEN_O, (void *) $3 ); }
-		| MSGLEN intop MAX_LEN	{ $$=mk_elem(	$2, NUMBER_ST,
-												MSGLEN_O, (void *) BUF_SIZE); }
-		| MSGLEN intop error { $$=0; yyerror("number expected"); }
-		| MSGLEN error { $$=0; yyerror("equal/!= operator expected"); }
-		| SRCIP equalop ipnet	{ $$=mk_elem(	$2, NET_ST,
-												SRCIP_O, $3);
-								}
-		| SRCIP strop STRING	{	s_tmp.s=$3;
-									s_tmp.len=strlen($3);
-									ip_tmp=str2ip(&s_tmp);
-									if (ip_tmp==0)
-										ip_tmp=str2ip6(&s_tmp);
-									if (ip_tmp){
-										$$=mk_elem(	$2, NET_ST, SRCIP_O,
-												mk_net_bitlen(ip_tmp, 
-														ip_tmp->len*8) );
-									}else{
-										$$=mk_elem(	$2, STRING_ST,
-												SRCIP_O, $3);
-									}
-								}
-		| SRCIP strop host	{ $$=mk_elem(	$2, STRING_ST,
-												SRCIP_O, $3);
-								}
-		| SRCIP equalop MYSELF  { $$=mk_elem(	$2, MYSELF_ST,
-												SRCIP_O, 0);
-								}
-		| SRCIP strop error { $$=0; yyerror( "ip address or hostname"
-						 "expected" ); }
-		| SRCIP error  { $$=0; 
-						 yyerror("invalid operator, ==, != or =~ expected");}
-		| DSTIP equalop ipnet	{ $$=mk_elem(	$2, NET_ST,
-												DSTIP_O, $3);
-								}
-		| DSTIP strop STRING	{	s_tmp.s=$3;
-									s_tmp.len=strlen($3);
-									ip_tmp=str2ip(&s_tmp);
-									if (ip_tmp==0)
-										ip_tmp=str2ip6(&s_tmp);
-									if (ip_tmp){
-										$$=mk_elem(	$2, NET_ST, DSTIP_O,
-												mk_net_bitlen(ip_tmp, 
-														ip_tmp->len*8) );
-									}else{
-										$$=mk_elem(	$2, STRING_ST,
-												DSTIP_O, $3);
-									}
-								}
-		| DSTIP strop host	{ $$=mk_elem(	$2, STRING_ST,
-												DSTIP_O, $3);
-								}
-		| DSTIP equalop MYSELF  { $$=mk_elem(	$2, MYSELF_ST,
-												DSTIP_O, 0);
-								}
-		| DSTIP strop error { $$=0; yyerror( "ip address or hostname"
-						 			"expected" ); }
-		| DSTIP error { $$=0; 
-						yyerror("invalid operator, ==, != or =~ expected");}
-		| MYSELF equalop uri_type	{ $$=mk_elem(	$2, MYSELF_ST,
-													$3, 0);
-								}
-		| MYSELF equalop SRCIP  { $$=mk_elem(	$2, MYSELF_ST,
-												SRCIP_O, 0);
-								}
-		| MYSELF equalop DSTIP  { $$=mk_elem(	$2, MYSELF_ST,
-												DSTIP_O, 0);
-								}
-		| MYSELF equalop error {	$$=0; 
-									yyerror(" URI, SRCIP or DSTIP expected"); }
-		| MYSELF error	{ $$=0; 
-							yyerror ("invalid operator, == or != expected");
-						}
-		| exp_stm			{ $$=mk_elem( NO_OP, ACTIONS_ST, ACTION_O, $1 );  }
-		| NUMBER		{$$=mk_elem( NO_OP, NUMBER_ST, NUMBER_O, (void*)$1 ); }
-	;
-
-ipnet:	ip SLASH ip	{ $$=mk_net($1, $3); } 
-	| ip SLASH NUMBER 	{	if (($3<0) || ($3>$1->len*8)){
-								yyerror("invalid bit number in netmask");
-								$$=0;
-							}else{
-								$$=mk_net_bitlen($1, $3);
-							/*
-								$$=mk_net($1, 
-										htonl( ($3)?~( (1<<(32-$3))-1 ):0 ) );
-							*/
-							}
-						}
-	| ip				{ $$=mk_net_bitlen($1, $1->len*8); }
-	| ip SLASH error	{ $$=0;
-						 yyerror("netmask (eg:255.0.0.0 or 8) expected");
-						}
-	;
-
-
-
-host_sep:	DOT {$$=".";}
-		|	MINUS {$$="-"; }
-		;
-
-host:	ID				{ $$=$1; }
-	| host host_sep ID	{ $$=(char*)pkg_malloc(strlen($1)+1+strlen($3)+1);
-						  if ($$==0){
-						  	LOG(L_CRIT, "ERROR: cfg. parser: memory allocation"
-										" failure while parsing host\n");
-						  }else{
-							memcpy($$, $1, strlen($1));
-							$$[strlen($1)]=*$2;
-							memcpy($$+strlen($1)+1, $3, strlen($3));
-							$$[strlen($1)+1+strlen($3)]=0;
-						  }
-						  pkg_free($1); pkg_free($3);
-						}
-	| host DOT error { $$=0; pkg_free($1); yyerror("invalid hostname"); }
-	;
-
-
-exp_stm:	cmd						{ $$=$1; }
-		|	if_cmd					{ $$=$1; }
-		|	LBRACE actions RBRACE	{ $$=$2; }
-	;
-
-stm:		action					{ $$=$1; }
-		|	LBRACE actions	RBRACE	{ $$=$2; }
-	;
-
-actions:	actions action	{$$=append_action($1, $2); }
-		| action			{$$=$1;}
-		| actions error { $$=0; yyerror("bad command"); }
-	;
-
-action:		cmd SEMICOLON {$$=$1;}
-		| if_cmd {$$=$1;}
-		| SEMICOLON /* null action */ {$$=0;}
-		| cmd error { $$=0; yyerror("bad command: missing ';'?"); }
-	;
-
-if_cmd:		IF exp stm				{ $$=mk_action3( IF_T,
-													 EXPR_ST,
-													 ACTIONS_ST,
-													 NOSUBTYPE,
-													 $2,
-													 $3,
-													 0);
-									}
-		|	IF exp stm ELSE stm		{ $$=mk_action3( IF_T,
-													 EXPR_ST,
-													 ACTIONS_ST,
-													 ACTIONS_ST,
-													 $2,
-													 $3,
-													 $5);
-									}
-	;
-
-cmd:		FORWARD LPAREN host RPAREN	{ $$=mk_action(	FORWARD_T,
-														STRING_ST,
-														NUMBER_ST,
-														$3,
-														0);
-										}
-		| FORWARD LPAREN STRING RPAREN	{ $$=mk_action(	FORWARD_T,
-														STRING_ST,
-														NUMBER_ST,
-														$3,
-														0);
-										}
-		| FORWARD LPAREN ip RPAREN	{ $$=mk_action(	FORWARD_T,
-														IP_ST,
-														NUMBER_ST,
-														(void*)$3,
-														0);
-										}
-		| FORWARD LPAREN host COMMA NUMBER RPAREN { $$=mk_action(FORWARD_T,
-																 STRING_ST,
-																 NUMBER_ST,
-																$3,
-																(void*)$5);
-												 }
-		| FORWARD LPAREN STRING COMMA NUMBER RPAREN {$$=mk_action(FORWARD_T,
-																 STRING_ST,
-																 NUMBER_ST,
-																$3,
-																(void*)$5);
-													}
-		| FORWARD LPAREN ip COMMA NUMBER RPAREN { $$=mk_action(FORWARD_T,
-																 IP_ST,
-																 NUMBER_ST,
-																 (void*)$3,
-																(void*)$5);
-												  }
-		| FORWARD LPAREN URIHOST COMMA URIPORT RPAREN {
-													$$=mk_action(FORWARD_T,
-																 URIHOST_ST,
-																 URIPORT_ST,
-																0,
-																0);
-													}
-													
-									
-		| FORWARD LPAREN URIHOST COMMA NUMBER RPAREN {
-													$$=mk_action(FORWARD_T,
-																 URIHOST_ST,
-																 NUMBER_ST,
-																0,
-																(void*)$5);
-													}
-		| FORWARD LPAREN URIHOST RPAREN {
-													$$=mk_action(FORWARD_T,
-																 URIHOST_ST,
-																 NUMBER_ST,
-																0,
-																0);
-										}
-		| FORWARD error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| FORWARD LPAREN error RPAREN { $$=0; yyerror("bad forward"
-										"argument"); }
-		| FORWARD_UDP LPAREN host RPAREN	{ $$=mk_action(	FORWARD_UDP_T,
-														STRING_ST,
-														NUMBER_ST,
-														$3,
-														0);
-										}
-		| FORWARD_UDP LPAREN STRING RPAREN	{ $$=mk_action(	FORWARD_UDP_T,
-														STRING_ST,
-														NUMBER_ST,
-														$3,
-														0);
-										}
-		| FORWARD_UDP LPAREN ip RPAREN	{ $$=mk_action(	FORWARD_UDP_T,
-														IP_ST,
-														NUMBER_ST,
-														(void*)$3,
-														0);
-										}
-		| FORWARD_UDP LPAREN host COMMA NUMBER RPAREN { $$=mk_action(
-																FORWARD_UDP_T,
-																 STRING_ST,
-																 NUMBER_ST,
-																$3,
-																(void*)$5);
-												 }
-		| FORWARD_UDP LPAREN STRING COMMA NUMBER RPAREN {$$=mk_action(
-																FORWARD_UDP_T,
-																 STRING_ST,
-																 NUMBER_ST,
-																$3,
-																(void*)$5);
-													}
-		| FORWARD_UDP LPAREN ip COMMA NUMBER RPAREN { $$=mk_action(
-																FORWARD_UDP_T,
-																 IP_ST,
-																 NUMBER_ST,
-																 (void*)$3,
-																(void*)$5);
-												  }
-		| FORWARD_UDP LPAREN URIHOST COMMA URIPORT RPAREN {
-													$$=mk_action(FORWARD_UDP_T,
-																 URIHOST_ST,
-																 URIPORT_ST,
-																0,
-																0);
-													}
-													
-									
-		| FORWARD_UDP LPAREN URIHOST COMMA NUMBER RPAREN {
-													$$=mk_action(FORWARD_UDP_T,
-																 URIHOST_ST,
-																 NUMBER_ST,
-																0,
-																(void*)$5);
-													}
-		| FORWARD_UDP LPAREN URIHOST RPAREN {
-													$$=mk_action(FORWARD_UDP_T,
-																 URIHOST_ST,
-																 NUMBER_ST,
-																0,
-																0);
-										}
-		| FORWARD_UDP error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| FORWARD_UDP LPAREN error RPAREN { $$=0; yyerror("bad forward_udp"
-										"argument"); }
-		| FORWARD_TCP LPAREN host RPAREN	{ $$=mk_action(	FORWARD_TCP_T,
-														STRING_ST,
-														NUMBER_ST,
-														$3,
-														0);
-										}
-		| FORWARD_TCP LPAREN STRING RPAREN	{ $$=mk_action(	FORWARD_TCP_T,
-														STRING_ST,
-														NUMBER_ST,
-														$3,
-														0);
-										}
-		| FORWARD_TCP LPAREN ip RPAREN	{ $$=mk_action(	FORWARD_TCP_T,
-														IP_ST,
-														NUMBER_ST,
-														(void*)$3,
-														0);
-										}
-		| FORWARD_TCP LPAREN host COMMA NUMBER RPAREN { $$=mk_action(
-																FORWARD_TCP_T,
-																 STRING_ST,
-																 NUMBER_ST,
-																$3,
-																(void*)$5);
-												 }
-		| FORWARD_TCP LPAREN STRING COMMA NUMBER RPAREN {$$=mk_action(
-																FORWARD_TCP_T,
-																 STRING_ST,
-																 NUMBER_ST,
-																$3,
-																(void*)$5);
-													}
-		| FORWARD_TCP LPAREN ip COMMA NUMBER RPAREN { $$=mk_action(FORWARD_TCP_T,
-																 IP_ST,
-																 NUMBER_ST,
-																 (void*)$3,
-																(void*)$5);
-												  }
-		| FORWARD_TCP LPAREN URIHOST COMMA URIPORT RPAREN {
-													$$=mk_action(FORWARD_TCP_T,
-																 URIHOST_ST,
-																 URIPORT_ST,
-																0,
-																0);
-													}
-													
-									
-		| FORWARD_TCP LPAREN URIHOST COMMA NUMBER RPAREN {
-													$$=mk_action(FORWARD_TCP_T,
-																 URIHOST_ST,
-																 NUMBER_ST,
-																0,
-																(void*)$5);
-													}
-		| FORWARD_TCP LPAREN URIHOST RPAREN {
-													$$=mk_action(FORWARD_TCP_T,
-																 URIHOST_ST,
-																 NUMBER_ST,
-																0,
-																0);
-										}
-		| FORWARD_TCP error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| FORWARD_TCP LPAREN error RPAREN { $$=0; yyerror("bad forward_tcp"
-										"argument"); }
-		| FORWARD_TLS LPAREN host RPAREN	{
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-														STRING_ST,
-														NUMBER_ST,
-														$3,
-														0);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-										}
-		| FORWARD_TLS LPAREN STRING RPAREN	{
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-															STRING_ST,
-															NUMBER_ST,
-															$3,
-															0);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-										}
-		| FORWARD_TLS LPAREN ip RPAREN	{ 
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-															IP_ST,
-															NUMBER_ST,
-															(void*)$3,
-															0);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-										}
-		| FORWARD_TLS LPAREN host COMMA NUMBER RPAREN { 
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-															 STRING_ST,
-															 NUMBER_ST,
-															$3,
-															(void*)$5);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-												 }
-		| FORWARD_TLS LPAREN STRING COMMA NUMBER RPAREN {
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-															 STRING_ST,
-															 NUMBER_ST,
-															$3,
-															(void*)$5);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-													}
-		| FORWARD_TLS LPAREN ip COMMA NUMBER RPAREN {
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-															 IP_ST,
-															 NUMBER_ST,
-															 (void*)$3,
-															(void*)$5);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-												  }
-		| FORWARD_TLS LPAREN URIHOST COMMA URIPORT RPAREN {
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-															 URIHOST_ST,
-															 URIPORT_ST,
-															0,
-															0);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-													}
-													
-									
-		| FORWARD_TLS LPAREN URIHOST COMMA NUMBER RPAREN {
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-															 URIHOST_ST,
-															 NUMBER_ST,
-															0,
-															(void*)$5);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-													}
-		| FORWARD_TLS LPAREN URIHOST RPAREN {
-										#ifdef USE_TLS
-											$$=mk_action(	FORWARD_TLS_T,
-															 URIHOST_ST,
-															 NUMBER_ST,
-															0,
-															0);
-										#else
-											$$=0;
-											yyerror("tls support not "
-													"compiled in");
-										#endif
-										}
-		| FORWARD_TLS error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| FORWARD_TLS LPAREN error RPAREN { $$=0; yyerror("bad forward_tls"
-										"argument"); }
-		
-		| SEND LPAREN host RPAREN	{ $$=mk_action(	SEND_T,
-													STRING_ST,
-													NUMBER_ST,
-													$3,
-													0);
-									}
-		| SEND LPAREN STRING RPAREN { $$=mk_action(	SEND_T,
-													STRING_ST,
-													NUMBER_ST,
-													$3,
-													0);
-									}
-		| SEND LPAREN ip RPAREN		{ $$=mk_action(	SEND_T,
-													IP_ST,
-													NUMBER_ST,
-													(void*)$3,
-													0);
-									}
-		| SEND LPAREN host COMMA NUMBER RPAREN	{ $$=mk_action(	SEND_T,
-																STRING_ST,
-																NUMBER_ST,
-																$3,
-																(void*)$5);
-												}
-		| SEND LPAREN STRING COMMA NUMBER RPAREN {$$=mk_action(	SEND_T,
-																STRING_ST,
-																NUMBER_ST,
-																$3,
-																(void*)$5);
-												}
-		| SEND LPAREN ip COMMA NUMBER RPAREN { $$=mk_action(	SEND_T,
-																IP_ST,
-																NUMBER_ST,
-																(void*)$3,
-																(void*)$5);
-											   }
-		| SEND error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| SEND LPAREN error RPAREN { $$=0; yyerror("bad send"
-													"argument"); }
-		| SEND_TCP LPAREN host RPAREN	{ $$=mk_action(	SEND_TCP_T,
-													STRING_ST,
-													NUMBER_ST,
-													$3,
-													0);
-									}
-		| SEND_TCP LPAREN STRING RPAREN { $$=mk_action(	SEND_TCP_T,
-													STRING_ST,
-													NUMBER_ST,
-													$3,
-													0);
-									}
-		| SEND_TCP LPAREN ip RPAREN		{ $$=mk_action(	SEND_TCP_T,
-													IP_ST,
-													NUMBER_ST,
-													(void*)$3,
-													0);
-									}
-		| SEND_TCP LPAREN host COMMA NUMBER RPAREN	{ $$=mk_action(	SEND_TCP_T,
-																STRING_ST,
-																NUMBER_ST,
-																$3,
-																(void*)$5);
-												}
-		| SEND_TCP LPAREN STRING COMMA NUMBER RPAREN {$$=mk_action(	SEND_TCP_T,
-																STRING_ST,
-																NUMBER_ST,
-																$3,
-																(void*)$5);
-												}
-		| SEND_TCP LPAREN ip COMMA NUMBER RPAREN { $$=mk_action(	SEND_TCP_T,
-																IP_ST,
-																NUMBER_ST,
-																(void*)$3,
-																(void*)$5);
-											   }
-		| SEND_TCP error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| SEND_TCP LPAREN error RPAREN { $$=0; yyerror("bad send_tcp"
-													"argument"); }
-		| DROP LPAREN RPAREN	{$$=mk_action(DROP_T,0, 0, 0, 0); }
-		| DROP					{$$=mk_action(DROP_T,0, 0, 0, 0); }
-		| LOG_TOK LPAREN STRING RPAREN	{$$=mk_action(	LOG_T, NUMBER_ST, 
-													STRING_ST,(void*)4,$3);
-									}
-		| LOG_TOK LPAREN NUMBER COMMA STRING RPAREN	{$$=mk_action(	LOG_T,
-																NUMBER_ST, 
-																STRING_ST,
-																(void*)$3,
-																$5);
-												}
-		| LOG_TOK error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| LOG_TOK LPAREN error RPAREN { $$=0; yyerror("bad log"
-									"argument"); }
-		| SETFLAG LPAREN NUMBER RPAREN {$$=mk_action( SETFLAG_T, NUMBER_ST, 0,
-													(void *)$3, 0 ); }
-		| SETFLAG error { $$=0; yyerror("missing '(' or ')'?"); }
-		| RESETFLAG LPAREN NUMBER RPAREN {$$=mk_action(	RESETFLAG_T, NUMBER_ST, 0,
-													(void *)$3, 0 ); }
-		| RESETFLAG error { $$=0; yyerror("missing '(' or ')'?"); }
-		| ISFLAGSET LPAREN NUMBER RPAREN {$$=mk_action(	ISFLAGSET_T, NUMBER_ST, 0,
-													(void *)$3, 0 ); }
-		| ISFLAGSET error { $$=0; yyerror("missing '(' or ')'?"); }
-		| ERROR LPAREN STRING COMMA STRING RPAREN {$$=mk_action(ERROR_T,
-																STRING_ST, 
-																STRING_ST,
-																$3,
-																$5);
-												  }
-		| ERROR error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| ERROR LPAREN error RPAREN { $$=0; yyerror("bad error"
-														"argument"); }
-		| ROUTE LPAREN NUMBER RPAREN	{ $$=mk_action(ROUTE_T, NUMBER_ST,
-														0, (void*)$3, 0);
-										}
-		| ROUTE error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| ROUTE LPAREN error RPAREN { $$=0; yyerror("bad route"
-						"argument"); }
-		| EXEC LPAREN STRING RPAREN	{ $$=mk_action(	EXEC_T, STRING_ST, 0,
-													$3, 0);
-									}
-		| SET_HOST LPAREN STRING RPAREN { $$=mk_action(SET_HOST_T, STRING_ST,
-														0, $3, 0); }
-		| SET_HOST error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| SET_HOST LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"string expected"); }
-
-		| PREFIX LPAREN STRING RPAREN { $$=mk_action(PREFIX_T, STRING_ST,
-														0, $3, 0); }
-		| PREFIX error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| PREFIX LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"string expected"); }
-		| STRIP_TAIL LPAREN NUMBER RPAREN { $$=mk_action(STRIP_TAIL_T, 
-									NUMBER_ST, 0, (void *) $3, 0); }
-		| STRIP_TAIL error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| STRIP_TAIL LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"number expected"); }
-
-		| STRIP LPAREN NUMBER RPAREN { $$=mk_action(STRIP_T, NUMBER_ST,
-														0, (void *) $3, 0); }
-		| STRIP error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| STRIP LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"number expected"); }
-                | APPEND_BRANCH LPAREN STRING COMMA STRING RPAREN { 
-		    {   qvalue_t q;
-			if (str2q(&q, $5, strlen($5)) < 0) {
-				yyerror("bad argument, q value expected");
-			}
-			$$=mk_action(APPEND_BRANCH_T, STRING_ST, NUMBER_ST, $3, 
-							(void *)(long)q); } 
-		}
-	
-		| APPEND_BRANCH LPAREN STRING RPAREN { $$=mk_action( APPEND_BRANCH_T,
-													STRING_ST, NUMBER_ST, $3, (void *)Q_UNSPECIFIED) ; }
-		| APPEND_BRANCH LPAREN RPAREN { $$=mk_action( APPEND_BRANCH_T,
-													STRING_ST, NUMBER_ST, 0, (void *)Q_UNSPECIFIED ) ; }
-		| APPEND_BRANCH {  $$=mk_action( APPEND_BRANCH_T, STRING_ST, 0, 0, 0 ) ; }
-
-		| SET_HOSTPORT LPAREN STRING RPAREN { $$=mk_action( SET_HOSTPORT_T, 
-														STRING_ST, 0, $3, 0); }
-		| SET_HOSTPORT error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| SET_HOSTPORT LPAREN error RPAREN { $$=0; yyerror("bad argument,"
-												" string expected"); }
-		| SET_PORT LPAREN STRING RPAREN { $$=mk_action( SET_PORT_T, STRING_ST,
-														0, $3, 0); }
-		| SET_PORT error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| SET_PORT LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"string expected"); }
-		| SET_USER LPAREN STRING RPAREN { $$=mk_action( SET_USER_T, STRING_ST,
-														0, $3, 0); }
-		| SET_USER error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| SET_USER LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"string expected"); }
-		| SET_USERPASS LPAREN STRING RPAREN { $$=mk_action( SET_USERPASS_T, 
-														STRING_ST, 0, $3, 0); }
-		| SET_USERPASS error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| SET_USERPASS LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"string expected"); }
-		| SET_URI LPAREN STRING RPAREN { $$=mk_action( SET_URI_T, STRING_ST, 
-														0, $3, 0); }
-		| SET_URI error { $$=0; yyerror("missing '(' or ')' ?"); }
-		| SET_URI LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-										"string expected"); }
-		| REVERT_URI LPAREN RPAREN { $$=mk_action( REVERT_URI_T, 0,0,0,0); }
-		| REVERT_URI { $$=mk_action( REVERT_URI_T, 0,0,0,0); }
-		| FORCE_RPORT LPAREN RPAREN	{ $$=mk_action(FORCE_RPORT_T,0, 0, 0, 0); }
-		| FORCE_RPORT				{$$=mk_action(FORCE_RPORT_T,0, 0, 0, 0); }
-		| FORCE_TCP_ALIAS LPAREN NUMBER RPAREN	{
-					#ifdef USE_TCP
-						$$=mk_action(FORCE_TCP_ALIAS_T,NUMBER_ST, 0,
-										(void*)$3, 0);
-					#else
-						yyerror("tcp support not compiled in");
-					#endif
-												}
-		| FORCE_TCP_ALIAS LPAREN RPAREN	{
-					#ifdef USE_TCP
-						$$=mk_action(FORCE_TCP_ALIAS_T,0, 0, 0, 0); 
-					#else
-						yyerror("tcp support not compiled in");
-					#endif
-										}
-		| FORCE_TCP_ALIAS				{
-					#ifdef USE_TCP
-						$$=mk_action(FORCE_TCP_ALIAS_T,0, 0, 0, 0);
-					#else
-						yyerror("tcp support not compiled in");
-					#endif
-										}
-		| FORCE_TCP_ALIAS LPAREN error RPAREN	{$$=0; 
-					yyerror("bad argument, number expected");
-					}
-		| SET_ADV_ADDRESS LPAREN listen_id RPAREN {
-								$$=0;
-								if ((str_tmp=pkg_malloc(sizeof(str)))==0){
-										LOG(L_CRIT, "ERROR: cfg. parser:"
-													" out of memory.\n");
-								}else{
-										str_tmp->s=$3;
-										str_tmp->len=strlen($3);
-										$$=mk_action(SET_ADV_ADDR_T, STR_ST,
-										             0, str_tmp, 0);
-								}
-												  }
-		| SET_ADV_ADDRESS LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"string expected"); }
-		| SET_ADV_ADDRESS error {$$=0; yyerror("missing '(' or ')' ?"); }
-		| SET_ADV_PORT LPAREN NUMBER RPAREN {
-								$$=0;
-								tmp=int2str($3, &i_tmp);
-								if ((str_tmp=pkg_malloc(sizeof(str)))==0){
-										LOG(L_CRIT, "ERROR: cfg. parser:"
-													" out of memory.\n");
-								}else{
-									if ((str_tmp->s=pkg_malloc(i_tmp))==0){
-										LOG(L_CRIT, "ERROR: cfg. parser:"
-													" out of memory.\n");
-									}else{
-										memcpy(str_tmp->s, tmp, i_tmp);
-										str_tmp->len=i_tmp;
-										$$=mk_action(SET_ADV_PORT_T, STR_ST,
-													0, str_tmp, 0);
-									}
-								}
-								            }
-		| SET_ADV_PORT LPAREN error RPAREN { $$=0; yyerror("bad argument, "
-														"string expected"); }
-		| SET_ADV_PORT  error {$$=0; yyerror("missing '(' or ')' ?"); }
-		| FORCE_SEND_SOCKET LPAREN phostport RPAREN {
-										$$=mk_action(FORCE_SEND_SOCKET_T,
-														SOCKID_ST, 0, $3, 0);
-													}
-		| FORCE_SEND_SOCKET LPAREN error RPAREN { $$=0; yyerror("bad argument,"
-											" [proto:]host[:port] expected"); }
-		| FORCE_SEND_SOCKET error {$$=0; yyerror("missing '(' or ')' ?"); }
-		| ID LPAREN RPAREN			{ f_tmp=(void*)find_export($1, 0, rt);
-									   if (f_tmp==0){
-										   if (find_export($1, 0, 0)) {
-											   yyerror("Command cannot be used in the block\n");
-										   } else {
-											   yyerror("unknown command, missing"
-												   " loadmodule?\n");
-										   }
-										$$=0;
-									   }else{
-										$$=mk_action(	MODULE_T,
-														CMDF_ST,
-														0,
-														f_tmp,
-														0
-													);
-									   }
-									}
-		| ID LPAREN STRING RPAREN { f_tmp=(void*)find_export($1, 1, rt);
-									if (f_tmp==0){
-										if (find_export($1, 1, 0)) {
-											yyerror("Command cannot be used in the block\n");
-										} else {
-											yyerror("unknown command, missing"
-												" loadmodule?\n");
-										}
-										$$=0;
-									}else{
-										$$=mk_action(	MODULE_T,
-														CMDF_ST,
-														STRING_ST,
-														f_tmp,
-														$3
-													);
-									}
-								  }
-		| ID LPAREN STRING  COMMA STRING RPAREN 
-								  { f_tmp=(void*)find_export($1, 2, rt);
-									if (f_tmp==0){
-										if (find_export($1, 2, 0)) {
-											yyerror("Command cannot be used in the block\n");
-										} else {
-											yyerror("unknown command, missing"
-												" loadmodule?\n");
-										}
-										$$=0;
-									}else{
-										$$=mk_action3(	MODULE_T,
-														CMDF_ST,
-														STRING_ST,
-														STRING_ST,
-														f_tmp,
-														$3,
-														$5
-													);
-									}
-								  }
-		| ID LPAREN error RPAREN { $$=0; yyerror("bad arguments"); }
-	;
-
-
-%%
-
-extern int line;
-extern int column;
-extern int startcolumn;
-static void warn(char* s)
-{
-	LOG(L_WARN, "cfg. warning: (%d,%d-%d): %s\n", line, startcolumn, 
-			column, s);
-	cfg_errors++;
-}
-
-static void yyerror(char* s)
-{
-	LOG(L_CRIT, "parse error (%d,%d-%d): %s\n", line, startcolumn, 
-			column, s);
-	cfg_errors++;
-}
-
-
-static struct socket_id* mk_listen_id(char* host, int proto, int port)
-{
-	struct socket_id* l;
-	l=pkg_malloc(sizeof(struct socket_id));
-	if (l==0){
-		LOG(L_CRIT,"ERROR: cfg. parser: out of memory.\n");
-	}else{
-		l->name=host;
-		l->port=port;
-		l->proto=proto;
-		l->next=0;
-	}
-	return l;
-}
-
-
-/*
-int main(int argc, char ** argv)
-{
-	if (yyparse()!=0)
-		fprintf(stderr, "parsing error\n");
-}
-*/

Deleted: ser/trunk/comp_defs.h
===================================================================
--- ser/trunk/comp_defs.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/comp_defs.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,41 +0,0 @@
-/*
- * $Id: comp_defs.h,v 1.4 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-/* compatibility defs for emergency roll-back if things do not work ;
- * if that happens:
- * a) define PRESERVE_ZT (affects most of parser)
- * b) define DONT_REMOVE_ZT (affects first line)
- * c) define SCRATCH
- * d) undefine REMOVE_ALL_ZT (affects via)
- */
-
-
-#ifndef _COMP_DEFS_H
-#define _COMP_DEFS_H
-
-
-#endif

Deleted: ser/trunk/config.h
===================================================================
--- ser/trunk/config.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/config.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,205 +0,0 @@
-/*
- *  $Id: config.h,v 1.61.2.2 2005/11/29 19:39:45 andrei Exp $
- *
- * 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 at 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
- *
- * History:
- * --------
- * 2003-04-05  DEFAULT_*_URL introduced (jiri)
- * 2003-07-04  fixed SRV lookup prefix for TLS/sips (andrei)
- * 2005-04-25  MAX_BRANCH_PARAM_LEN too small, fixed (andrei)
- */
-
-
-
-
-#ifndef config_h
-#define config_h
-
-#include "types.h"
-
-/* default sip port if none specified */
-#define SIP_PORT  5060
-#define SIPS_PORT 5061
-
-#define CFG_FILE CFG_DIR "ser.cfg"
-
-#define TLS_PKEY_FILE CFG_DIR "cert.pem" 
-#define TLS_CERT_FILE CFG_DIR "cert.pem"
-#define TLS_CA_FILE 0 /* no CA list file by default */
-
-
-/* maximum number of addresses on which we will listen */
-#define MAX_LISTEN 16
-
-/* default number of child processes started */
-#define CHILD_NO    8
-
-#define RT_NO 20 /* 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 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_URI_SIZE 1024	/* used when rewriting URIs */
-
-#define MY_VIA "Via: SIP/2.0/UDP "
-#define MY_VIA_LEN (sizeof(MY_VIA) - 1)
-
-#define CONTENT_LENGTH "Content-Length: "
-#define CONTENT_LENGTH_LEN (sizeof(CONTENT_LENGTH)-1)
-
-#define USER_AGENT "User-Agent: Sip EXpress router"\
-		"(" VERSION " (" ARCH "/" OS"))"
-#define USER_AGENT_LEN (sizeof(USER_AGENT)-1)
-
-#define SERVER_HDR "Server: Sip EXpress router "\
-		"(" VERSION " (" ARCH "/" OS"))"
-#define SERVER_HDR_LEN (sizeof(SERVER_HDR)-1)
-
-#define MAX_WARNING_LEN  256
-		
-#define MY_BRANCH ";branch="
-#define MY_BRANCH_LEN (sizeof(MY_BRANCH) - 1)
-
-#define MAX_PORT_LEN 7 /* ':' + max 5 letters + \0 */
-#define CRLF "\r\n"
-#define CRLF_LEN (sizeof(CRLF) - 1)
-
-#define RECEIVED        ";received="
-#define RECEIVED_LEN (sizeof(RECEIVED) - 1)
-
-#define TRANSPORT_PARAM ";transport="
-#define TRANSPORT_PARAM_LEN (sizeof(TRANSPORT_PARAM) - 1)
-
-#define TOTAG_TOKEN ";tag="
-#define TOTAG_TOKEN_LEN (sizeof(TOTAG_TOKEN)-1)
-
-#define RPORT ";rport="
-#define RPORT_LEN (sizeof(RPORT) - 1)
-
-#define ID_PARAM ";i="
-#define ID_PARAM_LEN (sizeof(ID_PARAM) - 1)
-
-#define SRV_UDP_PREFIX "_sip._udp."
-#define SRV_UDP_PREFIX_LEN (sizeof(SRV_UDP_PREFIX) - 1)
-
-#define SRV_TCP_PREFIX "_sip._tcp."
-#define SRV_TCP_PREFIX_LEN (sizeof(SRV_TCP_PREFIX) - 1)
-
-#define SRV_TLS_PREFIX "_sips._tcp."
-#define SRV_TLS_PREFIX_LEN (sizeof(SRV_TLS_PREFIX) - 1)
-
-#define SRV_MAX_PREFIX_LEN SRV_TLS_PREFIX_LEN
-
-/*used only if PKG_MALLOC is defined*/
-#define PKG_MEM_POOL_SIZE 1024*1024
-
-/*used if SH_MEM is defined*/
-#define SHM_MEM_SIZE 32
-
-#define TIMER_TICK 1
-
-/* dimensioning buckets in q_malloc */
-/* 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
-
-/* 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
-
-/* maximum number of branches per transaction */
-#define MAX_BRANCHES    12
-
-/* maximum length of a FIFO server command */
-#define MAX_FIFO_COMMAND 512
-
-/* buffer dimensions for FIFO server */
-#define MAX_CONSUME_BUFFER 1024
-/* where reply pipes may be opened */
-#define DEFAULT_FIFO_DIR "/tmp/"
-/* max length of the text of fifo 'print' command */
-#define MAX_PRINT_TEXT 256
-
-/* maximum length of Contact header field in redirection replies */
-#define MAX_REDIRECTION_LEN 512
-
-/* 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"
-
-/* how patient is ser with FIFO clients not awaiting a reply? 
-	4 x 80ms = 0.32 sec
-*/
-#define FIFO_REPLY_RETRIES	4
-#define FIFO_REPLY_WAIT		80000
-
-/* magic cookie for transaction matching as defined in RFC3261 */
-#define MCOOKIE "z9hG4bK"
-#define MCOOKIE_LEN (sizeof(MCOOKIE)-1)
-/* 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*/)
-
-
-/* maximum path length */
-#define PATH_MAX_GUESS	1024
-
-#define DEFAULT_DB_URL "mysql://ser:heslo@localhost/ser"
-#define DEFAULT_DB_URL_LEN (sizeof(DEFAULT_DB_URL) - 1)
-
-#define DEFAULT_RODB_URL "mysql://serro:47serro11@localhost/ser"
-#define DEFAULT_RODB_URL_LEN (sizeof(DEFAULT_RODB_URL) - 1)
-
-/* table holding versions of other ser tables */
-#define VERSION_TABLE "version"
-#define VERSION_COLUMN "table_version"
-#define TABLENAME_COLUMN "table_name"
-
-/* minimum packet size; smaller packets will be dropped silently */
-#define MIN_UDP_PACKET        32
-
-
-
-#endif

Deleted: ser/trunk/crc.c
===================================================================
--- ser/trunk/crc.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/crc.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,309 +0,0 @@
-/*
- * $Id: crc.c,v 1.6 2004/08/24 08:45:10 janakj Exp $
- *
- *  Crc - 32 + 16 BIT ANSI X3.66 + CCITT CRC checksum files
- *
- * 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 at 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
- */
-
-
-#include <stdio.h>
-#include "str.h"
-#include "ut.h"
-#include "crc.h"
-
-#define OK 0
-#define ERROR (-1)
-#define UPDC32(ch, crc) (crc_32_tab[((crc) ^ (ch)) & 0xff] ^ ((crc) >> 8))
-#define UPDCIT(ch, crc) (ccitt_tab[((crc) ^ (ch)) & 0xff] ^ ((crc) >> 8))
-#define UPDC16(ch, crc) (crc_16_tab[((crc) ^ (ch)) & 0xff] ^ ((crc) >> 8))
-
-/*
- * Copyright (C) 1986 Gary S. Brown.  You may use this program, or
- * code or tables extracted from it, as desired without restriction.
- */
-/* First, the polynomial itself and its table of feedback terms.  The  */
-/* polynomial is                                                       */
-/* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 */
-/* Note that we take it "backwards" and put the highest-order term in  */
-/* the lowest-order bit.  The X^32 term is "implied"; the LSB is the   */
-/* X^31 term, etc.  The X^0 term (usually shown as "+1") results in    */
-/* the MSB being 1.                                                    */
-
-/* added CCITT (X^16+X^12+X^5+X^0) and CRC-16 (X^16+X^15+X^2+X^0)      */
-/* polynomials (Heinz Repp, Feb 4 1997)                                */
-
-/* Note that the usual hardware shift register implementation, which   */
-/* is what we're using (we're merely optimizing it by doing eight-bit  */
-/* chunks at a time) shifts bits into the lowest-order term.  In our   */
-/* implementation, that means shifting towards the right.  Why do we   */
-/* do it this way?  Because the calculated CRC must be transmitted in  */
-/* order from highest-order term to lowest-order term.  UARTs transmit */
-/* characters in order from LSB to MSB.  By storing the CRC this way,  */
-/* we hand it to the UART in the order low-byte to high-byte; the UART */
-/* sends each low-bit to hight-bit; and the result is transmission bit */
-/* by bit from highest- to lowest-order term without requiring any bit */
-/* shuffling on our part.  Reception works similarly.                  */
-
-/* The feedback terms table consists of 256, 32-bit entries.  Notes:   */
-/*                                                                     */
-/*  1. The table can be generated at runtime if desired; code to do so */
-/*     is shown later.  It might not be obvious, but the feedback      */
-/*     terms simply represent the results of eight shift/xor opera-    */
-/*     tions for all combinations of data and CRC register values.     */
-/*                                                                     */
-/*  2. The CRC accumulation logic is the same for all CRC polynomials, */
-/*     be they sixteen or thirty-two bits wide.  You simply choose the */
-/*     appropriate table.  Alternatively, because the table can be     */
-/*     generated at runtime, you can start by generating the table for */
-/*     the polynomial in question and use exactly the same "updcrc",   */
-/*     if your application needn't simultaneously handle two CRC       */
-/*     polynomials.  (Note, however, that XMODEM is strange.)          */
-/*                                                                     */
-/*  3. For 16-bit CRCs, the table entries need be only 16 bits wide;   */
-/*     of course, 32-bit entries work OK if the high 16 bits are zero. */
-/*                                                                     */
-/*  4. The values must be right-shifted by eight bits by the "updcrc"  */
-/*     logic; the shift must be unsigned (bring in zeroes).  On some   */
-/*     hardware you could probably optimize the shift in assembler by  */
-/*     using byte-swap instructions.                                   */
-
-unsigned long int crc_32_tab[] = { /* CRC polynomial 0xedb88320 */
-0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
-0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
-0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
-0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
-0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
-0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
-0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
-0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
-0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
-0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
-0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
-0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
-0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
-0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
-0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
-0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
-0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
-0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
-0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
-0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
-0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
-0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
-0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
-0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
-0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
-0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
-0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
-0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
-0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
-0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
-0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
-0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
-0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
-0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
-0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
-0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
-0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
-0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
-0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
-0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
-0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
-0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
-0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
-};
-
-unsigned short int ccitt_tab[] = { /* CRC polynomial 0x8408 */
-0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF,
-0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7,
-0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E,
-0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876,
-0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD,
-0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5,
-0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C,
-0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974,
-0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB,
-0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3,
-0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A,
-0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72,
-0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9,
-0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1,
-0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738,
-0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70,
-0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7,
-0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF,
-0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036,
-0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E,
-0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5,
-0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD,
-0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134,
-0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C,
-0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3,
-0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB,
-0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232,
-0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A,
-0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1,
-0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9,
-0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330,
-0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78,
-};
-
-unsigned short int crc_16_tab[] = { /* CRC polynomial 0xA001 */
-0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,
-0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,
-0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,
-0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,
-0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,
-0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,
-0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,
-0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,
-0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,
-0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,
-0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,
-0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,
-0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,
-0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,
-0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,
-0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,
-0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,
-0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,
-0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,
-0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,
-0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,
-0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,
-0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,
-0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,
-0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,
-0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,
-0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,
-0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,
-0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,
-0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,
-0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,
-0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040,
-};
-
-unsigned short crcitt_string( char *s, int len )
-{
-	register unsigned short ccitt;
-	
-	ccitt = 0xFFFF;
-
-	while( len ) {
-		ccitt = UPDCIT(*s, ccitt);
-		s++; len--;
-	}
-	return ~ccitt;
-}
-
-void crcitt_string_array( char *dst, str src[], int size )
-{
-	register int i;
-	register unsigned short ccitt;
-	register char *c;
-	register int len;
-	int str_len;
-
-	ccitt = 0xFFFF;
-	str_len=CRC16_LEN;
-	for (i=0; i<size; i++ ) {
-		c=src[i].s;
-		len=src[i].len;
-		while(len) {
-			ccitt = UPDCIT( *c, ccitt );
-			c++;len--;
-		}
-	}
-	ccitt = ~ccitt;
-	if (int2reverse_hex( &dst, &str_len, ccitt )==-1) {
-		/* bug ... printed ccitt value longer than CRC32_LEN */
-		LOG(L_CRIT, "ERROR: crcitt_string_array: string conversion incomplete\n");
-	}
-	/* padding */
-	while( str_len ) {
-		*dst='0';
-		dst++;
-		str_len--;
-	}
-}
-		
-				
-
-int crc32file (char *name)
-{
-	register FILE *fin;
-	register unsigned long crc32;
-	register unsigned short ccitt, crc16;
-	register int c;
-	register long charcnt;
-
-	crc32 = 0xFFFFFFFF; ccitt = 0xFFFF;
-	crc16 = charcnt = 0;
-	if ((fin=fopen(name, "rb"))==NULL)
-	{
-		perror(name);
-		return ERROR;
-	}
-	while ((c=getc(fin))!=EOF) {
-		++charcnt;
-		crc32 = UPDC32(c, crc32);
-		ccitt = UPDCIT(c, ccitt);
-		crc16 = UPDC16(c, crc16);
-	}
-
-	if (ferror(fin))
-	{
-		perror(name);
-		fclose(fin); return ERROR;
-	}
-	else
-	{
-		crc32 = ~crc32;
-		ccitt = ~ccitt;
-
-		printf(" %08lX  %04X  %04X%10ld   %s\n",
-						crc32, ccitt, crc16, charcnt, name);
-	}
-
-	fclose(fin); return OK;
-}
-
-/*
-
-int main(int argc, char **argv)
-{
-	register int errors = 0;
-
-	puts("  CRC-32  CCITT  CRC-16    size   name\n"
-			 "-----------------------------------------------");
-
-	while( --argc > 0)
-		errors |= crc32file( *++argv);
-	exit(errors != 0);
-}
-*/
-
-/* End of crc.c */
-

Deleted: ser/trunk/crc.h
===================================================================
--- ser/trunk/crc.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/crc.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,18 +0,0 @@
-/* $Id: crc.h,v 1.3 2003/04/10 12:37:50 janakj Exp $*/
-
-#ifndef _CRC_H_
-#define _CRC_H_
-
-#include "str.h"
-
-#define CRC16_LEN	4
-
-extern unsigned long int crc_32_tab[];
-extern unsigned short int ccitt_tab[];
-extern unsigned short int crc_16_tab[];
-
-unsigned short crcitt_string( char *s, int len );
-void crcitt_string_array( char *dst, str src[], int size );
-
-#endif /* _CRC_H_ */
-

Deleted: ser/trunk/daemonize.c
===================================================================
--- ser/trunk/daemonize.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/daemonize.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,339 +0,0 @@
-/*
- * $Id: daemonize.c,v 1.11.2.1 2004/12/22 23:30:08 calrissian Exp $
- *
- * 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 at 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
- */
-/*
- * 
- * History:
- * --------
- *  2004-02-20  removed from ser main.c into its own file (andrei)
- *  2004-03-04  moved setuid/setgid in do_suid() (andrei)
- *  2004-03-25  added increase_open_fds & set_core_dump (andrei)
- *  2004-05-03  applied pgid patch from janakj
- */
-
-
-#include <sys/types.h>
-
-#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
-                          struct timeval defintion from <sys/time.h> won't
-                          be included => workarround define _EXTENSIONS_
-                           -andrei */
-#include <signal.h>
-#include <syslog.h>
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>    
-#include <sys/resource.h> /* setrlimit */
-#include <unistd.h>
-
-#include "daemonize.h"
-#include "globals.h"
-#include "dprint.h"
-
-
-#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 */
-int daemonize(char*  name)
-{
-	FILE *pid_stream;
-	pid_t pid;
-	int r, p;
-
-
-	p=-1;
-
-	/* flush std file descriptors to avoid flushes after fork
-	 *  (same message appearing multiple times)
-	 *  and switch to unbuffered
-	 */
-	setbuf(stdout, 0);
-	setbuf(stderr, 0);
-	if (chroot_dir&&(chroot(chroot_dir)<0)){
-		LOG(L_CRIT, "Cannot chroot to %s: %s\n", chroot_dir, strerror(errno));
-		goto error;
-	}
-	
-	if (chdir(working_dir)<0){
-		LOG(L_CRIT,"cannot chdir to %s: %s\n", working_dir, strerror(errno));
-		goto error;
-	}
-
-	/* fork to become!= group leader*/
-	if ((pid=fork())<0){
-		LOG(L_CRIT, "Cannot fork:%s\n", strerror(errno));
-		goto error;
-	}else if (pid!=0){
-		/* parent process => exit*/
-		exit(0);
-	}
-	/* become session leader to drop the ctrl. terminal */
-	if (setsid()<0){
-		LOG(L_WARN, "setsid failed: %s\n",strerror(errno));
-	}else{
-		own_pgid=1;/* we have our own process group */
-	}
-	/* fork again to drop group  leadership */
-	if ((pid=fork())<0){
-		LOG(L_CRIT, "Cannot  fork:%s\n", strerror(errno));
-		goto error;
-	}else if (pid!=0){
-		/*parent process => exit */
-		exit(0);
-	}
-
-	/* added by noh: create a pid file for the main process */
-	if (pid_file!=0){
-		
-		if ((pid_stream=fopen(pid_file, "r"))!=NULL){
-			fscanf(pid_stream, "%d", &p);
-			fclose(pid_stream);
-			if (p==-1){
-				LOG(L_CRIT, "pid file %s exists, but doesn't contain a valid"
-					" pid number\n", pid_file);
-				goto error;
-			}
-			if (kill((pid_t)p, 0)==0 || errno==EPERM){
-				LOG(L_CRIT, "running process found in the pid file %s\n",
-					pid_file);
-				goto error;
-			}else{
-				LOG(L_WARN, "pid file contains old pid, replacing pid\n");
-			}
-		}
-		pid=getpid();
-		if ((pid_stream=fopen(pid_file, "w"))==NULL){
-			LOG(L_WARN, "unable to create pid file %s: %s\n", 
-				pid_file, strerror(errno));
-			goto error;
-		}else{
-			fprintf(pid_stream, "%i\n", (int)pid);
-			fclose(pid_stream);
-		}
-	}
-
-	if (pgid_file!=0){
-		if ((pid_stream=fopen(pgid_file, "r"))!=NULL){
-			fscanf(pid_stream, "%d", &p);
-			fclose(pid_stream);
-			if (p==-1){
-				LOG(L_CRIT, "pgid file %s exists, but doesn't contain a valid"
-				    " pgid number\n", pgid_file);
-				goto error;
-			}
-		}
-		if (own_pgid){
-			pid=getpgid(0);
-			if ((pid_stream=fopen(pgid_file, "w"))==NULL){
-				LOG(L_WARN, "unable to create pgid file %s: %s\n",
-					pgid_file, strerror(errno));
-				goto error;
-			}else{
-				fprintf(pid_stream, "%i\n", (int)pid);
-				fclose(pid_stream);
-			}
-		}else{
-			LOG(L_WARN, "we don't have our own process so we won't save"
-					" our pgid\n");
-			unlink(pgid_file); /* just to be sure nobody will miss-use the old
-								  value*/
-		}
-	}
-	
-	/* try to replace stdin, stdout & stderr with /dev/null */
-	if (freopen("/dev/null", "r", stdin)==0){
-		LOG(L_ERR, "unable to replace stdin with /dev/null: %s\n",
-				strerror(errno));
-		/* continue, leave it open */
-	};
-	if (freopen("/dev/null", "w", stdout)==0){
-		LOG(L_ERR, "unable to replace stdout with /dev/null: %s\n",
-				strerror(errno));
-		/* continue, leave it open */
-	};
-	/* close stderr only if log_stderr=0 */
-	if ((!log_stderr) &&(freopen("/dev/null", "w", stderr)==0)){
-		LOG(L_ERR, "unable to replace stderr with /dev/null: %s\n",
-				strerror(errno));
-		/* continue, leave it open */
-	};
-	
-	/* close any open file descriptors */
-	closelog();
-	for (r=3;r<MAX_FD; r++){
-			close(r);
-	}
-	
-	if (log_stderr==0)
-		openlog(name, LOG_PID|LOG_CONS, log_facility);
-		/* LOG_CONS, LOG_PERRROR ? */
-
-	return  0;
-
-error:
-	return -1;
-}
-
-
-
-int do_suid()
-{
-	if (gid){
-		if(setgid(gid)<0){
-			LOG(L_CRIT, "cannot change gid to %d: %s\n", gid, strerror(errno));
-			goto error;
-		}
-	}
-	
-	if(uid){
-		if(setuid(uid)<0){
-			LOG(L_CRIT, "cannot change uid to %d: %s\n", uid, strerror(errno));
-			goto error;
-		}
-	}
-	return 0;
-error:
-	return -1;
-}
-
-
-
-/* try to increase the open file limit */
-int increase_open_fds(int target)
-{
-	struct rlimit lim;
-	struct rlimit orig;
-	
-	if (getrlimit(RLIMIT_NOFILE, &lim)<0){
-		LOG(L_CRIT, "cannot get the maximum number of file descriptors: %s\n",
-				strerror(errno));
-		goto error;
-	}
-	orig=lim;
-	DBG("current open file limits: %lu/%lu\n",
-			(unsigned long)lim.rlim_cur, (unsigned long)lim.rlim_max);
-	if ((lim.rlim_cur==RLIM_INFINITY) || (target<=lim.rlim_cur))
-		/* nothing to do */
-		goto done;
-	else if ((lim.rlim_max==RLIM_INFINITY) || (target<=lim.rlim_max)){
-		lim.rlim_cur=target; /* increase soft limit to target */
-	}else{
-		/* more than the hard limit */
-		LOG(L_INFO, "trying to increase the open file limit"
-				" past the hard limit (%ld -> %d)\n", 
-				(unsigned long)lim.rlim_max, target);
-		lim.rlim_max=target;
-		lim.rlim_cur=target;
-	}
-	DBG("increasing open file limits to: %lu/%lu\n",
-			(unsigned long)lim.rlim_cur, (unsigned long)lim.rlim_max);
-	if (setrlimit(RLIMIT_NOFILE, &lim)<0){
-		LOG(L_CRIT, "cannot increase the open file limit to"
-				" %lu/%lu: %s\n",
-				(unsigned long)lim.rlim_cur, (unsigned long)lim.rlim_max,
-				strerror(errno));
-		if (orig.rlim_max>orig.rlim_cur){
-			/* try to increase to previous maximum, better than not increasing
-		 	* at all */
-			lim.rlim_max=orig.rlim_max;
-			lim.rlim_cur=orig.rlim_max;
-			if (setrlimit(RLIMIT_NOFILE, &lim)==0){
-				LOG(L_CRIT, " maximum number of file descriptors increased to"
-						" %u\n",(unsigned)orig.rlim_max);
-			}
-		}
-		goto error;
-	}
-done:
-	return 0;
-error:
-	return -1;
-}
-
-
-
-/* enable core dumps */
-int set_core_dump(int enable, int size)
-{
-	struct rlimit lim;
-	struct rlimit newlim;
-	
-	if (enable){
-		if (getrlimit(RLIMIT_CORE, &lim)<0){
-			LOG(L_CRIT, "cannot get the maximum core size: %s\n",
-					strerror(errno));
-			goto error;
-		}
-		if (lim.rlim_cur<size){
-			/* first try max limits */
-			newlim.rlim_max=RLIM_INFINITY;
-			newlim.rlim_cur=newlim.rlim_max;
-			if (setrlimit(RLIMIT_CORE, &newlim)==0) goto done;
-			/* now try with size */
-			if (lim.rlim_max<size){
-				newlim.rlim_max=size;
-			}
-			newlim.rlim_cur=newlim.rlim_max;
-			if (setrlimit(RLIMIT_CORE, &newlim)==0) goto done;
-			/* if this failed too, try rlim_max, better than nothing */
-			newlim.rlim_max=lim.rlim_max;
-			newlim.rlim_cur=newlim.rlim_max;
-			if (setrlimit(RLIMIT_CORE, &newlim)<0){
-				LOG(L_CRIT, "could increase core limits at all: %s\n",
-						strerror (errno));
-			}else{
-				LOG(L_CRIT, "core limits increased only to %lu\n",
-						(unsigned long)lim.rlim_max);
-			}
-			goto error; /* it's an error we haven't got the size we wanted*/
-		}
-		goto done; /*nothing to do */
-	}else{
-		/* disable */
-		newlim.rlim_cur=0;
-		newlim.rlim_max=0;
-		if (setrlimit(RLIMIT_CORE, &newlim)<0){
-			LOG(L_CRIT, "failed to disable core dumps: %s\n",
-					strerror(errno));
-			goto error;
-		}
-	}
-done:
-	DBG("core dump limits set to %lu\n", (unsigned long)newlim.rlim_cur);
-	return 0;
-error:
-	return -1;
-}

Deleted: ser/trunk/daemonize.h
===================================================================
--- ser/trunk/daemonize.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/daemonize.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,43 +0,0 @@
-/*
- * $Id: daemonize.h,v 1.3 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-/*
- * 
- * History:
- * --------
- *  2004-02-20  created by andrei
- */
-
-#ifndef _daemonize_h
-#define _daemonize_h
-
-int daemonize(char* name);
-int do_suid();
-int increase_open_fds(int target);
-int set_core_dump(int enable, int size);
-
-
-#endif

Deleted: ser/trunk/data_lump.c
===================================================================
--- ser/trunk/data_lump.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/data_lump.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,597 +0,0 @@
-/* $Id: data_lump.c,v 1.18.2.1 2005/07/27 12:32:22 andrei Exp $
- *
- *
- * 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 at 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
- *
- * History:
- * --------
- *  2003-01-19  support for duplication lump lists added (jiri)
- *  2003-03-31  added subst lumps --they expand in ip addr, port a.s.o (andrei)
- *  2003-04-01  added conditional lump support functions (andrei)
- *  2003-10-20  anchor_lump & del_lump will automatically choose the lump list
- *              based on  msg->eoh comparisons (andrei)
- *  2003-10-28  added extra checks (paranoia) for {anchor,del}_lump (andrei)
- */
-
-
-#include "data_lump.h"
-#include "dprint.h"
-#include "mem/mem.h"
-#include "globals.h"
-#include "error.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef DEBUG_DMALLOC
-#include <dmalloc.h>
-#endif
-
-/* WARNING: all lump add/insert operations expect a pkg_malloc'ed char* 
- * pointer the will be DEALLOCATED when the sip_msg is destroyed! */
-
-enum lump_dir { LD_NEXT, LD_BEFORE, LD_AFTER };
-
-/* adds a header to the end
- * returns  pointer on success, 0 on error */
-struct lump* append_new_lump(struct lump** list, char* new_hdr,
-							 int len, int type)
-{
-	struct lump** t;
-	struct lump* tmp;
-	
-	for (t=list;*t;t=&((*t)->next));
-
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		LOG(L_ERR, "ERROR: append_new_lump: out of memory\n");
-		return 0;
-	}
-		
-	memset(tmp,0,sizeof(struct lump));
-	tmp->type=type;
-	tmp->op=LUMP_ADD;
-	tmp->u.value=new_hdr;
-	tmp->len=len;
-	*t=tmp;
-	return tmp;
-}
-
-
-
-/* inserts a header to the beginning 
- * returns pointer if success, 0 on error */
-struct lump* insert_new_lump(struct lump** list, char* new_hdr,
-								int len, int type)
-{
-	struct lump* tmp;
-
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		LOG(L_ERR, "ERROR: insert_new_lump: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->next=*list;
-	tmp->type=type;
-	tmp->op=LUMP_ADD;
-	tmp->u.value=new_hdr;
-	tmp->len=len;
-	*list=tmp;
-	return tmp;
-}
-
-
-
-/* inserts a  header/data lump immediately after hdr 
- * returns pointer on success, 0 on error */
-struct lump* insert_new_lump_after( struct lump* after, char* new_hdr,
-							int len, int type)
-{
-	struct lump* tmp;
-
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: insert_new_lump_after: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->after=after->after;
-	tmp->type=type;
-	tmp->op=LUMP_ADD;
-	tmp->u.value=new_hdr;
-	tmp->len=len;
-	after->after=tmp;
-	return tmp;
-}
-
-
-
-/* inserts a  header/data lump immediately before "before" 
- * returns pointer on success, 0 on error */
-struct lump* insert_new_lump_before( struct lump* before, char* new_hdr,
-							int len, int type)
-{
-	struct lump* tmp;
-
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR,"ERROR: insert_new_lump_before: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->before=before->before;
-	tmp->type=type;
-	tmp->op=LUMP_ADD;
-	tmp->u.value=new_hdr;
-	tmp->len=len;
-	before->before=tmp;
-	return tmp;
-}
-
-
-
-/* inserts a  subst lump immediately after hdr 
- * returns pointer on success, 0 on error */
-struct lump* insert_subst_lump_after( struct lump* after, enum lump_subst subst,
-										int type)
-{
-	struct lump* tmp;
-	
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: insert_new_lump_after: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->after=after->after;
-	tmp->type=type;
-	tmp->op=LUMP_ADD_SUBST;
-	tmp->u.subst=subst;
-	tmp->len=0;
-	after->after=tmp;
-	return tmp;
-}
-
-
-
-/* inserts a  subst lump immediately before "before" 
- * returns pointer on success, 0 on error */
-struct lump* insert_subst_lump_before(	struct lump* before, 
-										enum lump_subst subst,
-										int type)
-{
-	struct lump* tmp;
-	
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR,"ERROR: insert_new_lump_before: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->before=before->before;
-	tmp->type=type;
-	tmp->op=LUMP_ADD_SUBST;
-	tmp->u.subst=subst;
-	tmp->len=0;
-	before->before=tmp;
-	return tmp;
-}
-
-
-
-/* inserts a  cond lump immediately after hdr 
- * returns pointer on success, 0 on error */
-struct lump* insert_cond_lump_after( struct lump* after, enum lump_conditions c,
-										int type)
-{
-	struct lump* tmp;
-	
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: insert_new_lump_after: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->after=after->after;
-	tmp->type=type;
-	tmp->op=LUMP_ADD_OPT;
-	tmp->u.cond=c;
-	tmp->len=0;
-	after->after=tmp;
-	return tmp;
-}
-
-
-
-/* inserts a  conditional lump immediately before "before" 
- * returns pointer on success, 0 on error */
-struct lump* insert_cond_lump_before(	struct lump* before, 
-										enum lump_conditions c,
-										int type)
-{
-	struct lump* tmp;
-	
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR,"ERROR: insert_new_lump_before: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->before=before->before;
-	tmp->type=type;
-	tmp->op=LUMP_ADD_OPT;
-	tmp->u.cond=c;
-	tmp->len=0;
-	before->before=tmp;
-	return tmp;
-}
-
-
-
-/* removes an already existing header/data lump */
-/* WARNING: this function adds the lump either to the msg->add_rm or
- * msg->body_lumps list, depending on the offset being greater than msg->eoh,
- * so msg->eoh must be parsed (parse with HDR_EOH) if you think your lump
- *  might affect the body!! */
-struct lump* del_lump(struct sip_msg* msg, int offset, int len, int type)
-{
-	struct lump* tmp;
-	struct lump* prev, *t;
-	struct lump** list;
-
-	/* extra checks */
-	if (offset>msg->len){
-		LOG(L_CRIT, "BUG: del_lump: offset exceeds message size (%d > %d)"
-					" aborting...\n", offset, msg->len);
-		abort();
-	}
-	if (offset+len>msg->len){
-		LOG(L_CRIT, " BUG: del_lump: offset + len exceeds message"
-				" size (%d + %d > %d)\n", offset, len,  msg->len);
-		abort();
-	}
-	if (len==0){
-		LOG(L_WARN, "WARNING: del_lump: called with 0 len (offset =%d)\n",
-				offset);
-	}
-	
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		LOG(L_ERR, "ERROR: insert_new_lump_before: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->op=LUMP_DEL;
-	tmp->type=type;
-	tmp->u.offset=offset;
-	tmp->len=len;
-	prev=0;
-	/* check to see whether this might be a body lump */
-	if ((msg->eoh) && (offset> (int)(msg->eoh-msg->buf)))
-		list=&msg->body_lumps;
-	else
-		list=&msg->add_rm;
-	for (t=*list;t; prev=t, t=t->next){
-		/* insert it sorted after offset */
-		if (((t->op==LUMP_DEL)||(t->op==LUMP_NOP))&&(t->u.offset>offset))
-			break;
-	}
-	tmp->next=t;
-	if (prev) prev->next=tmp;
-	else *list=tmp;
-	return tmp;
-}
-
-
-
-/* add an anchor
- * WARNING: this function adds the lump either to the msg->add_rm or
- * msg->body_lumps list, depending on the offset being greater than msg->eoh,
- * so msg->eoh must be parsed (parse with HDR_EOH) if you think your lump
- *  might affect the body!! */
-struct lump* anchor_lump(struct sip_msg* msg, int offset, int len, int type)
-{
-	struct lump* tmp;
-	struct lump* prev, *t;
-	struct lump** list;
-
-	
-	/* extra checks */
-	if (offset>msg->len){
-		LOG(L_CRIT, "BUG: anchor_lump: offset exceeds message size (%d > %d)"
-					" aborting...\n", offset, msg->len);
-		abort();
-	}
-	if (len){
-		LOG(L_WARN, "WARNING: anchor_lump: called with len !=0 (%d)\n", len);
-		if (offset+len>msg->len)
-			LOG(L_WARN, "WARNING: anchor_lump: offset + len exceeds message"
-					" size (%d + %d > %d)\n", offset, len,  msg->len);
-	}
-	
-	tmp=pkg_malloc(sizeof(struct lump));
-	if (tmp==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: insert_new_lump_before: out of memory\n");
-		return 0;
-	}
-	memset(tmp,0,sizeof(struct lump));
-	tmp->op=LUMP_NOP;
-	tmp->type=type;
-	tmp->u.offset=offset;
-	tmp->len=len;
-	prev=0;
-	/* check to see whether this might be a body lump */
-	if ((msg->eoh) && (offset> (int)(msg->eoh-msg->buf)))
-		list=&msg->body_lumps;
-	else
-		list=&msg->add_rm;
-		
-	for (t=*list;t; prev=t, t=t->next){
-		/* insert it sorted after offset */
-		if (((t->op==LUMP_DEL)||(t->op==LUMP_NOP))&&(t->u.offset>offset))
-			break;
-	}
-	tmp->next=t;
-	
-	if (prev) prev->next=tmp;
-	else *list=tmp;
-	return tmp;
-}
-
-
-
-void free_lump(struct lump* lmp)
-{
-	if (lmp && (lmp->op==LUMP_ADD)){
-		if (lmp->u.value){
-			if (lmp->flags &(LUMPFLAG_DUPED|LUMPFLAG_SHMEM)){
-				LOG(L_CRIT, "BUG: free_lump: called on a not free-able lump:"
-						"%p flags=%x\n", lmp, lmp->flags);
-				abort();
-			}else{
-				pkg_free(lmp->u.value);
-				lmp->u.value=0;
-				lmp->len=0;
-			}
-		}
-	}
-}
-
-
-
-void free_lump_list(struct lump* l)
-{
-	struct lump* t, *r, *foo,*crt;
-	t=l;
-	while(t){
-		crt=t;
-		t=t->next;
-	/*
-		 dangerous recursive clean
-		if (crt->before) free_lump_list(crt->before);
-		if (crt->after)  free_lump_list(crt->after);
-	*/
-		/* no more recursion, clean after and before and that's it */
-		r=crt->before;
-		while(r){
-			foo=r; r=r->before;
-			free_lump(foo);
-			pkg_free(foo);
-		}
-		r=crt->after;
-		while(r){
-			foo=r; r=r->after;
-			free_lump(foo);
-			pkg_free(foo);
-		}
-		
-		/*clean current elem*/
-		free_lump(crt);
-		pkg_free(crt);
-	}
-}
-
-/* free (shallow-ly) a lump and its after/before lists */
-static void free_shallow_lump( struct lump *l )
-{
-	struct lump *r, *foo;
-
-	r=l->before;
-	while(r){
-		foo=r; r=r->before;
-		pkg_free(foo);
-	}
-	r=l->after;
-	while(r){
-		foo=r; r=r->after;
-		pkg_free(foo);
-	}
-	pkg_free(l);
-}
-
-/* duplicate (shallow-ly) a lump list into pkg memory */
-static struct lump *dup_lump_list_r( struct lump *l, 
-				enum lump_dir dir, int *error)
-{
-	int deep_error;
-	struct lump *new_lump;
-
-	deep_error=0; /* optimist: assume success in recursion */
-	/* if at list end, terminate recursion successfully */
-	if (!l) { *error=0; return 0; }
-	/* otherwise duplicate current element */
-	new_lump=pkg_malloc(sizeof(struct lump));
-	if (!new_lump) { *error=1; return 0; }
-
-	memcpy(new_lump, l, sizeof(struct lump));
-	new_lump->flags=LUMPFLAG_DUPED;
-	new_lump->next=new_lump->before=new_lump->after=0;
-
-	switch(dir) {
-		case LD_NEXT:	
-				new_lump->before=dup_lump_list_r(l->before, 
-								LD_BEFORE, &deep_error);
-				if (deep_error) goto deeperror;
-				new_lump->after=dup_lump_list_r(l->after, 
-								LD_AFTER, &deep_error);
-				if (deep_error) goto deeperror;
-				new_lump->next=dup_lump_list_r(l->next, 
-								LD_NEXT, &deep_error);
-				break;
-		case LD_BEFORE:
-				new_lump->before=dup_lump_list_r(l->before, 
-								LD_BEFORE, &deep_error);
-				break;
-		case LD_AFTER:
-				new_lump->after=dup_lump_list_r(l->after, 
-								LD_AFTER, &deep_error);
-				break;
-		default:
-				LOG(L_CRIT, "BUG: dup_limp_list_r: unknown dir: "
-						"%d\n", dir );
-				deep_error=1;
-	}
-	if (deep_error) goto deeperror;
-
-	*error=0;
-	return new_lump;
-
-deeperror:
-	LOG(L_ERR, "ERROR: dup_lump_list_r: out of mem\n");
-	free_shallow_lump(new_lump);
-	*error=1;
-	return 0;
-}
-
-
-
-/* shallow pkg copy of a lump list
- *
- * if either original list empty or error occur returns, 0
- * is returned, pointer to the copy otherwise
- */
-struct lump* dup_lump_list( struct lump *l )
-{
-	int deep_error;
-
-	deep_error=0;
-	return dup_lump_list_r(l, LD_NEXT, &deep_error);
-}
-
-
-
-void free_duped_lump_list(struct lump* l)
-{
-	struct lump *r, *foo,*crt;
-	while(l){
-		crt=l;
-		l=l->next;
-
-		r=crt->before;
-		while(r){
-			foo=r; r=r->before;
-			/* (+): if a new item was introduced to the shallow-ly
-			 * duped list, remove it completely, preserve it
-			 * otherwise (it is still referred by original list)
-			 */
-			if (foo->flags!=LUMPFLAG_DUPED) 
-					free_lump(foo);
-			pkg_free(foo);
-		}
-		r=crt->after;
-		while(r){
-			foo=r; r=r->after;
-			if (foo->flags!=LUMPFLAG_DUPED) /* (+) ... see above */
-				free_lump(foo);
-			pkg_free(foo);
-		}
-		
-		/*clean current elem*/
-		if (crt->flags!=LUMPFLAG_DUPED) /* (+) ... see above */
-			free_lump(crt);
-		pkg_free(crt);
-	}
-}
-
-
-
-void del_nonshm_lump( struct lump** lump_list )
-{
-	struct lump *r, *foo, *crt, **prev, *prev_r;
-
-	prev = lump_list;
-	crt = *lump_list;
-
-	while (crt) {
-		if (crt->flags!=LUMPFLAG_SHMEM) {
-			/* unlink it */
-			foo = crt;
-			crt = crt->next;
-			foo->next = 0;
-			/* update the 'next' link of the previous lump */
-			*prev = crt;
-			/* entire before/after list must be removed */
-			free_lump_list( foo );
-		} else {
-			/* check on before and prev list for non-shmem lumps */
-			r = crt->after;
-			prev_r = crt;
-			while(r){
-				foo=r; r=r->after;
-				if (foo->flags!=LUMPFLAG_SHMEM) {
-					prev_r->after = r;
-					free_lump(foo);
-					pkg_free(foo);
-				} else {
-					prev_r = foo;
-				}
-			}
-			/* before */
-			r = crt->before;
-			prev_r = crt;
-			while(r){
-				foo=r; r=r->before;
-				if (foo->flags!=LUMPFLAG_SHMEM) {
-					prev_r->before = r;
-					free_lump(foo);
-					pkg_free(foo);
-				} else {
-					prev_r = foo;
-				}
-			}
-			/* go to next lump */
-			prev = &(crt->next);
-			crt = crt->next;
-		}
-	}
-}
-

Deleted: ser/trunk/data_lump.h
===================================================================
--- ser/trunk/data_lump.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/data_lump.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,84 +0,0 @@
-/*
- * $Id: data_lump.h,v 1.11 2004/08/24 08:45:10 janakj Exp $
- *
- * adding/removing headers or any other data chunk from a message
- *
- * 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 at 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
- */
-/* History:
- * --------
- *  2003-01-29  s/int/enum ... more convenient for gdb (jiri)
- *  2003-03-31  added subst lumps -- they expand in ip addr, port a.s.o (andrei)
- *  2003-04-01  added opt (condition) lumps (andrei)
- *  2003-04-02  added more subst lumps: SUBST_{SND,RCV}_ALL  
- *              => ip:port;transport=proto (andrei)
- *
- */
-
-
-#ifndef data_lump_h
-#define data_lump_h
-
-#include "lump_struct.h"
-#include "parser/msg_parser.h"
-
-/* adds a header to the end */
-struct lump* append_new_lump(struct lump** list, char* new_hdr,
-							 int len, int type);
-/* inserts a header to the beginning */
-struct lump* insert_new_lump(struct lump** list, char* new_hdr,
-							  int len, int type);
-struct lump* insert_new_lump_after(struct lump* after,
-									char* new_hdr, int len, int type);
-struct lump* insert_new_lump_before(struct lump* before, char* new_hdr,
-									int len,int type);
-/* substitutions (replace with ip address, port etc) */
-struct lump* insert_subst_lump_after(struct lump* after,  enum lump_subst subst,
-									int type);
-struct lump* insert_subst_lump_before(struct lump* before,enum lump_subst subst,
-									int type);
-
-/* conditional lumps */
-struct lump* insert_cond_lump_after(struct lump* after, enum lump_conditions c,
-									int type);
-struct lump* insert_cond_lump_before(struct lump* after, enum lump_conditions c,
-									int type);
-
-/* removes an already existing header */
-struct lump* del_lump(struct sip_msg* msg, int offset, int len, int type);
-/* set an anchor */
-struct lump* anchor_lump(struct sip_msg* msg, int offset, int len, int type);
-
-
-
-/* duplicates a lump list shallowly in pkg-mem */
-struct lump* dup_lump_list( struct lump *l );
-/* frees a shallowly duplicated lump list */
-void free_duped_lump_list(struct lump* l);
-
-
-/* remove all non-SHMEM lumps from the list */
-void del_nonshm_lump( struct lump** lump_list );
-
-#endif

Deleted: ser/trunk/data_lump_rpl.c
===================================================================
--- ser/trunk/data_lump_rpl.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/data_lump_rpl.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,157 +0,0 @@
-/*
- * $Id: data_lump_rpl.c,v 1.14 2004/12/03 19:09:31 andrei Exp $
- *
- *
- * 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 at 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
- *
- * History:
- * 2002-02-14 : created by bogdan
- * 2003-09-11 : lump_rpl type added - LUMP_RPL_BODY & LUMP_RPL_HDR (bogdan)
- * 2003-11-11 : build_lump_rpl merged into add_lump_rpl; types -> flags ;
- *              flags LUMP_RPL_NODUP and LUMP_RPL_NOFREE added (bogdan)
- */
-
-
-#include <string.h>
-#include "dprint.h"
-#include "mem/mem.h"
-#include "data_lump_rpl.h"
-
-
-
-struct lump_rpl* add_lump_rpl(struct sip_msg *msg, char *s, int len, int flags)
-{
-	struct lump_rpl *lump = 0;
-	struct lump_rpl *foo;
-
-	/* some checking */
-	if ( (flags&(LUMP_RPL_HDR|LUMP_RPL_BODY))==(LUMP_RPL_HDR|LUMP_RPL_BODY)
-	|| (flags&(LUMP_RPL_HDR|LUMP_RPL_BODY))==0 || (flags&LUMP_RPL_SHMEM) ) {
-		LOG(L_ERR,"ERROR:add_lump_rpl: bad flags combination (%d)!\n",flags);
-		goto error;
-	}
-	if (len<=0 || s==0) {
-		LOG(L_ERR,"ERROR:add_lump_rpl: I won't add an empty lump!\n");
-		goto error;
-	}
-
-	/* build the lump */
-	lump = (struct lump_rpl*) pkg_malloc
-		( sizeof(struct lump_rpl) + ((flags&LUMP_RPL_NODUP)?0:len) );
-	if (!lump) {
-		LOG(L_ERR,"ERROR:add_lump_rpl : no free pkg memory !\n");
-		goto error;
-	}
-
-	if (flags&LUMP_RPL_NODUP) {
-		lump->text.s = s;
-	} else {
-		lump->text.s = ((char*)lump)+sizeof(struct lump_rpl);
-		memcpy( lump->text.s, s, len);
-	}
-	lump->text.len = len;
-	lump->flags = flags;
-	lump->next = 0;
-
-	/* add the lump to the msg */
-	if (!msg->reply_lump) {
-		msg->reply_lump = lump;
-	}else{
-		if (!(flags&LUMP_RPL_BODY))
-			for(foo=msg->reply_lump;foo->next;foo=foo->next);
-		else
-			for(foo=msg->reply_lump; ;foo=foo->next) {
-				if (foo->flags&LUMP_RPL_BODY) {
-					LOG(L_ERR,"ERROR:add_lump_rpl: LUMP_RPL_BODY "
-						"already added!\n");
-					pkg_free(lump);
-					goto error;
-				}
-				if (foo->next==0)
-					break;
-			}
-		foo->next = lump;
-	}
-
-	return lump;
-error:
-	return 0;
-}
-
-
-
-void free_lump_rpl(struct lump_rpl* lump)
-{
-	if (lump) {
-		if (!((lump->flags)&LUMP_RPL_NOFREE) && ((lump->flags)&LUMP_RPL_NODUP)
-		&& lump->text.s)
-			pkg_free(lump->text.s);
-		pkg_free(lump);
-	}
-}
-
-
-void unlink_lump_rpl(struct sip_msg * msg, struct lump_rpl* lump)
-{
-	struct lump_rpl *foo,*prev;
-
-	/* look for the lump to be unlink */
-	foo = msg->reply_lump;
-	prev = 0;
-	while( foo && foo!=lump ) {
-		prev = foo;
-		foo = foo->next;
-	}
-
-	/* if the lump was found into the list -> unlink it */
-	if (foo) {
-		if (prev)
-			prev->next = foo->next;
-		else
-			msg->reply_lump = foo->next;
-	}
-}
-
-void del_nonshm_lump_rpl(struct lump_rpl** list)
-{
-        struct lump_rpl* it, *tmp;
-        struct lump_rpl** pred;
-
-        it = *list;
-        pred = list;
-
-        while(it) {
-                if (!(it->flags & LUMP_RPL_SHMEM)) {
-                        tmp = it;
-                        *pred = it->next;
-                        it = it->next;
-                        free_lump_rpl(tmp);
-                        continue;
-                }
-
-                pred = &it->next;
-                it = it->next;
-        }
-}
-

Deleted: ser/trunk/data_lump_rpl.h
===================================================================
--- ser/trunk/data_lump_rpl.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/data_lump_rpl.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,64 +0,0 @@
-/*
- * $Id: data_lump_rpl.h,v 1.8 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- *
- * History:
- * 2002-02-14 : created by bogdan
- * 2003-09-11 : lump_rpl type added - LUMP_RPL_BODY & LUMP_RPL_HDR (bogdan)
- * 2003-11-11 : build_lump_rpl merged into add_lump_rpl; type removed;
- *              flags LUMP_RPL_BODY, LUMP_RPL_NODUP and LUMP_RPL_NOFREE
- *              added (bogdan)
- */
-
-
-#ifndef data_lump_rpl_h
-#define data_lump_rpl_h
-
-#include "parser/msg_parser.h"
-
-
-#define LUMP_RPL_HDR     (1<<1)
-#define LUMP_RPL_BODY    (1<<2)
-#define LUMP_RPL_NODUP   (1<<3)
-#define LUMP_RPL_NOFREE  (1<<4)
-#define LUMP_RPL_SHMEM   (1<<5)
-
-struct lump_rpl
-{
-	str text;
-	int flags;
-	struct lump_rpl* next;
-};
-
-struct lump_rpl* add_lump_rpl(struct sip_msg *, char *, int , int );
-
-void free_lump_rpl(struct lump_rpl* );
-
-void unlink_lump_rpl(struct sip_msg *, struct lump_rpl* );
-
-void del_nonshm_lump_rpl(  struct lump_rpl ** );
-
-#endif

Modified: ser/trunk/debian/changelog
===================================================================
--- ser/trunk/debian/changelog	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/debian/changelog	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,3 +1,9 @@
+ser (0.9.6-1) unstable; urgency=low
+
+  * Welcome to pkg-voip-maintainers
+
+ -- Mark Purcell <msp at debian.org>  Sun, 26 Feb 2006 17:40:16 +0000
+
 ser (0.9.6-0.1) unstable; urgency=low
 
   * new upstream release (bug fixes) 

Modified: ser/trunk/debian/control
===================================================================
--- ser/trunk/debian/control	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/debian/control	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,7 +1,8 @@
 Source: ser
 Section: net
 Priority: optional
-Maintainer: Andrei Pelinescu-Onciul <andrei at iptel.org>
+Maintainer: Debian VoIP Team <pkg-voip-maintainers at lists.alioth.debian.org>
+Uploaders: Mark Purcell <msp at debian.org>, Andrei Pelinescu-Onciul <andrei at iptel.org>, Jan Janak <jan at iptel.org>
 Build-Depends: debhelper (>= 4), libmysqlclient-dev | libmysqlclient14-dev | libmysqlclient12-dev, libexpat1-dev, libradiusclient-ng-dev | libradius1-dev, libxml2-dev, libpq-dev | postgresql-dev
 Standards-Version: 3.5.2
 

Deleted: ser/trunk/dprint.c
===================================================================
--- ser/trunk/dprint.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/dprint.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,81 +0,0 @@
-/*
- * $Id: dprint.c,v 1.8 2004/08/24 08:45:10 janakj Exp $
- *
- * debug print 
- *
- *
- * 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 at 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
- */
-
- 
-#include "dprint.h"
-#include "globals.h"
-#include "pt.h"
- 
-#include <stdarg.h>
-#include <stdio.h>
-#include <strings.h>
-
-static char* str_fac[]={"LOG_AUTH","LOG_CRON","LOG_DAEMON",
-					"LOG_KERN","LOG_LOCAL0","LOG_LOCAL1",
-					"LOG_LOCAL2","LOG_LOCAL3","LOG_LOCAL4","LOG_LOCAL5",
-					"LOG_LOCAL6","LOG_LOCAL7","LOG_LPR","LOG_MAIL",
-					"LOG_NEWS","LOG_USER","LOG_UUCP",
-#ifndef __OS_solaris
-					"LOG_AUTHPRIV","LOG_FTP","LOG_SYSLOG",
-#endif
-					0};
-static int int_fac[]={LOG_AUTH ,  LOG_CRON , LOG_DAEMON ,
-					LOG_KERN , LOG_LOCAL0 , LOG_LOCAL1 ,
-					LOG_LOCAL2 , LOG_LOCAL3 , LOG_LOCAL4 , LOG_LOCAL5 ,
-					LOG_LOCAL6 , LOG_LOCAL7 , LOG_LPR , LOG_MAIL ,
-					LOG_NEWS , LOG_USER , LOG_UUCP
-#ifndef __OS_solaris
-					,LOG_AUTHPRIV,LOG_FTP,LOG_SYSLOG
-#endif
-					};
-
-
-void dprint(char * format, ...)
-{
-	va_list ap;
-
-	fprintf(stderr, "%2d(%d) ", process_no, my_pid());
-	va_start(ap, format);
-	vfprintf(stderr,format,ap);
-	fflush(stderr);
-	va_end(ap);
-}
-
-
-int str2facility(char *s)
-{
-	int i;
-
-	for( i=0; str_fac[i] ; i++) {
-		if (!strcasecmp(s,str_fac[i]))
-			return int_fac[i];
-	}
-	return -1;
-}

Deleted: ser/trunk/dprint.h
===================================================================
--- ser/trunk/dprint.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/dprint.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,187 +0,0 @@
-/*
- * $Id: dprint.h,v 1.9 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-
-#ifndef dprint_h
-#define dprint_h
-
-#include <syslog.h>
-
-
-#define L_ALERT -3
-#define L_CRIT  -2
-#define L_ERR   -1
-#define L_WARN   1
-#define L_NOTICE 2
-#define L_INFO   3
-#define L_DBG    4
-
-/* vars:*/
-
-extern int debug;
-extern int log_stderr;
-extern int log_facility;
-
-
-#define DPRINT_LEV	1
-/* priority at which we log */
-#define DPRINT_PRIO LOG_DEBUG
-
-
-void dprint (char* format, ...);
-
-int str2facility(char *s);
-
-
-#ifdef NO_DEBUG
-	#ifdef __SUNPRO_C
-		#define DPrint(...)
-	#else
-		#define DPrint(fmt, args...)
-	#endif
-#else
-	#ifdef __SUNPRO_C
-		#define DPrint( ...) \
-			do{ \
-				if (debug>=DPRINT_LEV){ \
-					if (log_stderr){ \
-						dprint (__VA_ARGS__); \
-					}else{ \
-						syslog(DPRINT_LEV|log_facility,  __VA_ARGS__); \
-					}\
-				} \
-			}while(0)
-	#else
-			#define DPrint(fmt,args...) \
-			do{ \
-				if (debug>=DPRINT_LEV){ \
-					if (log_stderr){ \
-						dprint (fmt, ## args); \
-					}else{ \
-						syslog(DPRINT_LEV|log_facility, fmt, ## args); \
-					}\
-				} \
-			}while(0)
-	#endif
-
-#endif
-
-#ifndef NO_DEBUG
-	#undef NO_LOG
-#endif
-
-#ifdef NO_LOG
-	#ifdef __SUNPRO_C
-		#define LOG(lev, ...)
-	#else
-		#define LOG(lev, fmt, args...)
-	#endif
-#else
-	#ifdef __SUNPRO_C
-		#define LOG(lev, ...) \
-			do { \
-				if (debug>=(lev)){ \
-					if (log_stderr) dprint (__VA_ARGS__); \
-					else { \
-						switch(lev){ \
-							case L_CRIT: \
-								syslog(LOG_CRIT|log_facility, __VA_ARGS__); \
-								break; \
-							case L_ALERT: \
-								syslog(LOG_ALERT|log_facility, __VA_ARGS__); \
-								break; \
-							case L_ERR: \
-								syslog(LOG_ERR|log_facility, __VA_ARGS__); \
-								break; \
-							case L_WARN: \
-								syslog(LOG_WARNING|log_facility, __VA_ARGS__);\
-								break; \
-							case L_NOTICE: \
-								syslog(LOG_NOTICE|log_facility, __VA_ARGS__); \
-								break; \
-							case L_INFO: \
-								syslog(LOG_INFO|log_facility, __VA_ARGS__); \
-								break; \
-							case L_DBG: \
-								syslog(LOG_DEBUG|log_facility, __VA_ARGS__); \
-								break; \
-						} \
-					} \
-				} \
-			}while(0)
-	#else
-		#define LOG(lev, fmt, args...) \
-			do { \
-				if (debug>=(lev)){ \
-					if (log_stderr) dprint (fmt, ## args); \
-					else { \
-						switch(lev){ \
-							case L_CRIT: \
-								syslog(LOG_CRIT|log_facility, fmt, ##args); \
-								break; \
-							case L_ALERT: \
-								syslog(LOG_ALERT|log_facility, fmt, ##args); \
-								break; \
-							case L_ERR: \
-								syslog(LOG_ERR|log_facility, fmt, ##args); \
-								break; \
-							case L_WARN: \
-								syslog(LOG_WARNING|log_facility, fmt, ##args);\
-								break; \
-							case L_NOTICE: \
-								syslog(LOG_NOTICE|log_facility, fmt, ##args); \
-								break; \
-							case L_INFO: \
-								syslog(LOG_INFO|log_facility, fmt, ##args); \
-								break; \
-							case L_DBG: \
-								syslog(LOG_DEBUG|log_facility, fmt, ##args); \
-								break; \
-						} \
-					} \
-				} \
-			}while(0)
-	#endif /*SUN_PRO_C*/
-#endif
-
-
-#ifdef NO_DEBUG
-	#ifdef __SUNPRO_C
-		#define DBG(...)
-	#else
-		#define DBG(fmt, args...)
-	#endif
-#else
-	#ifdef __SUNPRO_C
-		#define DBG(...) LOG(L_DBG, __VA_ARGS__)
-	#else
-		#define DBG(fmt, args...) LOG(L_DBG, fmt, ## args)
-	#endif
-#endif
-
-#endif /* ifndef dprint_h */

Deleted: ser/trunk/dset.c
===================================================================
--- ser/trunk/dset.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/dset.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,342 +0,0 @@
-/*
- * $Id: dset.c,v 1.15.2.1 2005/02/17 14:58:26 janakj Exp $
- *
- * destination set
- *
- * Copyright (C) 2001-2004 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 at 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
- */
-
-#include <string.h>
-#include "dprint.h"
-#include "config.h"
-#include "parser/parser_f.h"
-#include "parser/msg_parser.h"
-#include "ut.h"
-#include "hash_func.h"
-#include "error.h"
-#include "dset.h"
-#include "mem/mem.h"
-
-#define CONTACT "Contact: "
-#define CONTACT_LEN (sizeof(CONTACT) - 1)
-
-#define CONTACT_DELIM ", "
-#define CONTACT_DELIM_LEN (sizeof(CONTACT_DELIM) - 1)
-
-#define Q_PARAM ">;q="
-#define Q_PARAM_LEN (sizeof(Q_PARAM) - 1)
-
-struct branch
-{
-	char uri[MAX_URI_SIZE];
-	unsigned int len;
-
-	     /* Real destination of the request */
-	char dst_uri[MAX_URI_SIZE];
-	unsigned int dst_uri_len;
-
-	int q; /* Preference of the contact among
-		* contact within the array */
-};
-
-
-/* 
- * Where we store URIs of additional transaction branches
- * (-1 because of the default branch, #0)
- */
-static struct branch branches[MAX_BRANCHES - 1];
-
-/* how many of them we have */
-unsigned int nr_branches = 0;
-
-/* branch iterator */
-static int branch_iterator = 0;
-
-/* The q parameter of the Request-URI */
-static qvalue_t ruri_q = Q_UNSPECIFIED; 
-
-
-/*
- * Initialize the branch iterator, the next
- * call to next_branch will return the first
- * contact from the dset array
- */
-void init_branch_iterator(void)
-{
-	branch_iterator = 0;
-}
-
-
-/*
- * Return the next branch from the dset
- * array, 0 is returned if there are no
- * more branches
- */
-char* next_branch(int* len, qvalue_t* q, char** dst_uri, int* dst_len)
-{
-	unsigned int i;
-
-	i = branch_iterator;
-	if (i < nr_branches) {
-		branch_iterator++;
-		*len = branches[i].len;
-		*q = branches[i].q;
-		if (dst_uri && dst_len) {
-			*dst_uri = branches[i].dst_uri;
-			*dst_len = branches[i].dst_uri_len;
-		}
-		return branches[i].uri;
-	} else {
-		*len = 0;
-		*q = Q_UNSPECIFIED;
-		if (dst_uri && dst_len) {
-			*dst_uri = 0;
-			*dst_len = 0;
-		}
-		return 0;
-	}
-}
-
-
-/*
- * Empty the dset array
- */
-void clear_branches(void)
-{
-	nr_branches = 0;
-	ruri_q = Q_UNSPECIFIED;
-}
-
-
-/* 
- * Add a new branch to current transaction 
- */
-int append_branch(struct sip_msg* msg, char* uri, int uri_len, char* dst_uri, int dst_uri_len, qvalue_t q)
-{
-	     /* if we have already set up the maximum number
-	      * of branches, don't try new ones 
-	      */
-	if (nr_branches == MAX_BRANCHES - 1) {
-		LOG(L_ERR, "ERROR: append_branch: max nr of branches exceeded\n");
-		ser_error = E_TOO_MANY_BRANCHES;
-		return -1;
-	}
-
-	if (uri_len > MAX_URI_SIZE - 1) {
-		LOG(L_ERR, "ERROR: append_branch: too long uri: %.*s\n",
-		    uri_len, uri);
-		return -1;
-	}
-
-	     /* if not parameterized, take current uri */
-	if (uri == 0) {
-		if (msg->new_uri.s) { 
-			uri = msg->new_uri.s;
-			uri_len = msg->new_uri.len;
-		} else {
-			uri = msg->first_line.u.request.uri.s;
-			uri_len = msg->first_line.u.request.uri.len;
-		}
-	}
-	
-	memcpy(branches[nr_branches].uri, uri, uri_len);
-	     /* be safe -- add zero termination */
-	branches[nr_branches].uri[uri_len] = 0;
-	branches[nr_branches].len = uri_len;
-	branches[nr_branches].q = q;
-	
- 	if (dst_uri && dst_uri_len) {
-  		memcpy(branches[nr_branches].dst_uri, dst_uri, dst_uri_len);
-  		branches[nr_branches].dst_uri[dst_uri_len] = 0;
-  		branches[nr_branches].dst_uri_len = dst_uri_len;
- 	} else {
- 		branches[nr_branches].dst_uri[0] = '\0';
- 		branches[nr_branches].dst_uri_len = 0;
-	}
-
-	nr_branches++;
-	return 1;
-}
-
-
-/*
- * Create a Contact header field from the dset
- * array
- */
-char* print_dset(struct sip_msg* msg, int* len) 
-{
-	int cnt, i;
-	unsigned int qlen;
-	qvalue_t q;
-	str uri;
-	char* p, *qbuf;
-	static char dset[MAX_REDIRECTION_LEN];
-
-	if (msg->new_uri.s) {
-		cnt = 1;
-		*len = msg->new_uri.len;
-		if (ruri_q != Q_UNSPECIFIED) {
-			*len += 1 + Q_PARAM_LEN + len_q(ruri_q);
-		}
-	} else {
-		cnt = 0;
-		*len = 0;
-	}
-
-	init_branch_iterator();
-	while ((uri.s = next_branch(&uri.len, &q, 0, 0))) {
-		cnt++;
-		*len += uri.len;
-		if (q != Q_UNSPECIFIED) {
-			*len += 1 + Q_PARAM_LEN + len_q(q);
-		}
-	}
-
-	if (cnt == 0) return 0;	
-
-	*len += CONTACT_LEN + CRLF_LEN + (cnt - 1) * CONTACT_DELIM_LEN;
-
-	if (*len + 1 > MAX_REDIRECTION_LEN) {
-		LOG(L_ERR, "ERROR: redirection buffer length exceed\n");
-		return 0;
-	}
-
-	memcpy(dset, CONTACT, CONTACT_LEN);
-	p = dset + CONTACT_LEN;
-	if (msg->new_uri.s) {
-		if (ruri_q != Q_UNSPECIFIED) {
-			*p++ = '<';
-		}
-
-		memcpy(p, msg->new_uri.s, msg->new_uri.len);
-		p += msg->new_uri.len;
-
-		if (ruri_q != Q_UNSPECIFIED) {
-			memcpy(p, Q_PARAM, Q_PARAM_LEN);
-			p += Q_PARAM_LEN;
-
-			qbuf = q2str(ruri_q, &qlen);
-			memcpy(p, qbuf, qlen);
-			p += qlen;
-		}
-		i = 1;
-	} else {
-		i = 0;
-	}
-
-	init_branch_iterator();
-	while ((uri.s = next_branch(&uri.len, &q, 0, 0))) {
-		if (i) {
-			memcpy(p, CONTACT_DELIM, CONTACT_DELIM_LEN);
-			p += CONTACT_DELIM_LEN;
-		}
-
-		if (q != Q_UNSPECIFIED) {
-			*p++ = '<';
-		}
-
-		memcpy(p, uri.s, uri.len);
-		p += uri.len;
-		if (q != Q_UNSPECIFIED) {
-			memcpy(p, Q_PARAM, Q_PARAM_LEN);
-			p += Q_PARAM_LEN;
-
-			qbuf = q2str(q, &qlen);
-			memcpy(p, qbuf, qlen);
-			p += qlen;
-		}
-		i++;
-	}
-
-	memcpy(p, CRLF " ", CRLF_LEN + 1);
-	return dset;
-}
-
-
-/*
- * Sets the q parameter of the Request-URI
- */
-void set_ruri_q(qvalue_t q)
-{
-	ruri_q = q;
-}
-
-
-/*
- * Return the q value of the Request-URI
- */
-qvalue_t get_ruri_q(void)
-{
-	return ruri_q;
-}
-
-
-
-/*
- * Get actual Request-URI
- */
-int get_request_uri(struct sip_msg* _m, str* _u)
-{
-	     /* Use new_uri if present */
-	if (_m->new_uri.s) {
-		_u->s = _m->new_uri.s;
-		_u->len = _m->new_uri.len;
-	} else {
-		_u->s = _m->first_line.u.request.uri.s;
-		_u->len = _m->first_line.u.request.uri.len;
-	}
-
-	return 0;
-}
-
-
-/*
- * Rewrite Request-URI
- */
-int rewrite_uri(struct sip_msg* _m, str* _s)
-{
-        char* buf;
-
-        buf = (char*)pkg_malloc(_s->len + 1);
-        if (!buf) {
-                LOG(L_ERR, "ERROR: TOI: rewrite_uri: No memory left\n");
-                return -1;
-        }
-
-        memcpy(buf, _s->s, _s->len);
-        buf[_s->len] = '\0';
-
-        _m->parsed_uri_ok = 0;
-        if (_m->new_uri.s) {
-                pkg_free(_m->new_uri.s);
-        }
-
-        _m->new_uri.s = buf;
-        _m->new_uri.len = _s->len;
-
-        DBG("TOI: rewrite_uri: Rewriting Request-URI with '%.*s'\n", _s->len, 
-																		   buf);
-        return 1;
-}
-

Deleted: ser/trunk/dset.h
===================================================================
--- ser/trunk/dset.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/dset.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,84 +0,0 @@
-/*
- * $Id: dset.h,v 1.7.2.1 2005/02/15 21:55:02 janakj Exp $
- *
- * Copyright (C) 2001-2004 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 at 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
- */
-
-#ifndef _DSET_H
-#define _DSET_H
-
-#include "qvalue.h"
-
-struct sip_msg;
-
-extern unsigned int nr_branches;
-
-
-/* 
- * Add a new branch to current transaction 
- */
-int append_branch(struct sip_msg* msg, char* uri, int uri_len, char* dst_uri, int dst_uri_len, qvalue_t q);
-
-
-/* 
- * Iterate through the list of transaction branches 
- */
-void init_branch_iterator(void);
-
-
-/*
- * Get the next branch in the current transaction
- */
-char* next_branch(int* len, qvalue_t* q, char** dst_uri, int* dst_len);
-
-
-/*
- * Empty the array of branches
- */
-void clear_branches(void);
-
-
-/*
- * Create a Contact header field from the
- * list of current branches
- */
-char* print_dset(struct sip_msg* msg, int* len);
-
-
-/* 
- * Set the q value of the Request-URI
- */
-void set_ruri_q(qvalue_t q);
-
-
-/* 
- * Get the q value of the Request-URI
- */
-qvalue_t get_ruri_q(void);
-
-int get_request_uri(struct sip_msg* _m, str* _u);
-int rewrite_uri(struct sip_msg* _m, str* _s);
-
-
-#endif /* _DSET_H */

Deleted: ser/trunk/error.c
===================================================================
--- ser/trunk/error.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/error.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,225 +0,0 @@
-/*
- * $Id: error.c,v 1.10 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- *
- * History:
- * --------
- * 2003-04-04 phrase length corrected not to include trailer 0 (jiri)
- */
-
-
-#include <stdio.h>
-#include "error.h"
-#include "str.h"
-#include "parser/msg_parser.h"
-#include "mem/mem.h"
-
-/* current function's error; */
-int ser_error=-1;
-/* previous error */
-int prev_ser_error=-1;
-
-int err2reason_phrase( 
-	int ser_error,  /* current internal ser error */
-	int *sip_error,  /* the sip error code to which ser 	
-					    ser error will be turned */
-	char *phrase,    /* resulting error text */
-	int etl, 		/* error text buffer length */
-	char *signature ) /* extra text to be appended */
-{
-
-	char *error_txt;
-
-	switch( ser_error ) {
-		case E_SEND:
-			error_txt="Unfortunately error on sending to next hop occurred";
-			*sip_error=-ser_error;
-			break;
-		case E_BAD_ADDRESS:
-			error_txt="Unresolvable destination";
-			*sip_error=-ser_error;
-			break;
-		case E_BAD_REQ:
-			error_txt="Bad Request";
-			*sip_error=-ser_error;
-			break;
-		case E_BAD_URI:
-			error_txt="Regretfully, we were not able to process the URI";
-			*sip_error=-ser_error;
-			break;
-		case E_BAD_TUPEL:
-			error_txt="Transaction tuple incomplete";
-			*sip_error=-E_BAD_REQ;
-			break;
-		case E_BAD_TO:
-			error_txt="Bad To";
-			*sip_error=-E_BAD_REQ;
-			break;
-		case E_EXEC:
-			error_txt="Error in external logic";
-			*sip_error=-E_BAD_SERVER;
-			break;
-		case E_TOO_MANY_BRANCHES:
-			error_txt="Forking capacity exceeded";
-			*sip_error=-E_BAD_SERVER;
-			break;
-
-	        case E_Q_INV_CHAR:
-			error_txt="Invalid character in q parameter";
-			*sip_error=-E_BAD_REQ;
-			break;
-
-	        case E_Q_EMPTY:
-			error_txt="Empty q parameter";
-			*sip_error=-E_BAD_REQ;
-			break;;
-
-	        case E_Q_TOO_BIG:
-			error_txt="q parameter too big";
-			*sip_error=-E_BAD_REQ;
-			break;
-
-	        case E_Q_DEC_MISSING:
-			error_txt="Decimal part missing in q";
-			*sip_error=-E_BAD_REQ;
-			break;
-
-		case E_OUT_OF_MEM:
-		/* dont disclose lack of mem in release mode */
-#ifdef DEBUG
-			error_txt="Excuse me I ran out of memory";
-			*sip_error=500;
-			break;
-#endif
-		default:
-			error_txt="I'm terribly sorry, server error occurred";
-			*sip_error=500;
-			break;
-	}
-	return snprintf( phrase, etl, "%s (%d/%s)", error_txt, 
-		-ser_error, signature );
-}
-
-char *error_text( int code )
-{
-	switch(code) {
-
-		case 100: return "Trying";
-		case 180: return "Ringing";
-		case 181: return "Call is Being Forwarded";
-		case 182: return "Queued";
-		case 183: return "Session Progress";
-
-		case 200: return "OK";
-
-		case 300: return "Multiple Choices";
-		case 301: return "Moved Permanently";
-		case 302: return "Moved Temporarily";
-		case 305: return "Use Proxy";
-		case 380: return "Alternative Service";
-
-		case 400: return "Bad Request";
-		case 401: return "Unauthorized";
-		case 402: return "Payment Required";
-		case 403: return "Forbidden";
-		case 404: return "Not Found";
-		case 405: return "Method not Allowed";
-		case 406: return "Not Acceptable";
-		case 407: return "Proxy authentication Required";
-		case 408: return "Request Timeout";
-		case 410: return "Gone";
-		case 413: return "Request Entity Too Large";
-		case 414: return "Request-URI Too Long";
-		case 415: return "Unsupported Media Type";
-		case 416: return "Unsupported URI Scheme";
-		case 417: return "Bad Extension";
-		case 421: return "Extension Required";
-		case 423: return "Interval Too Brief";
-		case 480: return "Temporarily Unavailable";
-		case 481: return "Call/Transaction Does not Exist";
-		case 482: return "Loop Detected";
-		case 483: return "Too Many Hops";
-		case 484: return "Address Incomplete";
-		case 485: return "Ambiguous";
-		case 486: return "Busy Here";
-		case 487: return "Request Terminated";
-		case 488: return "Not Acceptable Here";
-		case 491: return "Request Pending";
-	
-		case 500: return "Server Internal Error";
-		case 501: return "Not Implemented";
-		case 502: return "Bad Gateway";
-		case 503: return "Service Unavailable";
-		case 504: return "Server Time-out";
-		case 505: return "Version not Supported";
-		case 513: return "Message Too Large";
-
-		case 600: return "Busy Everywhere";
-		case 603: return "Decline";
-		case 604: return "Does not Exist Anywhere";
-		case 606: return "Not Acceptable";
-
-	}
-
-	if (code>=600) return "Global Failure";
-	else if (code>=500) return "Server Failure";
-	else if (code>=400) return "Request Failure";
-	else if (code>=300) return "Redirection";
-	else if (code>=200) return "Successful";
-	else if (code>=100) return "Provisional";
-	else return "Unspecified";
-}
-
-void get_reply_status( str *status, struct sip_msg *reply, int code )
-{
-	str phrase;
-
-	status->s=0;
-
-	if (reply==0) {
-		LOG(L_CRIT, "BUG: get_reply_status called with 0 msg\n");
-		return;
-	}
-
-	if (reply==FAKED_REPLY) {
-		phrase.s=error_text(code);
-		phrase.len=strlen(phrase.s);
-	} else {
-		phrase=reply->first_line.u.reply.reason;
-	}
-	status->len=phrase.len+3/*code*/+1/*space*/; 
-	status->s=pkg_malloc(status->len+1/*ZT */);
-	if (!status->s) {
-		LOG(L_ERR, "ERROR: get_reply_status: no mem\n");
-		return;
-	}
-	status->s[3]=' ';
-	status->s[2]='0'+code % 10; code=code/10;
-	status->s[1]='0'+code% 10; code=code/10;
-	status->s[0]='0'+code % 10;
-	memcpy(&status->s[4], phrase.s, phrase.len);
-	status->s[status->len]=0;
-}

Deleted: ser/trunk/error.h
===================================================================
--- ser/trunk/error.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/error.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,93 +0,0 @@
-/*
- * $Id: error.h,v 1.12 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-#ifndef error_h
-#define error_h
-
-#define E_UNSPEC      -1
-#define E_OUT_OF_MEM  -2
-#define E_BAD_RE      -3
-/* #define E_BAD_ADDRESS -4 */
-#define E_BUG         -5
-#define E_CFG         -6
-#define E_NO_SOCKET		-7
-/* unresolvable topmost Via */
-#define E_BAD_VIA		-8
-/* incomplete transaction tuple */
-#define E_BAD_TUPEL		-9
-/* script programming error */
-#define E_SCRIPT		-10
-/* error in execution of external tools */
-#define E_EXEC			-11
-/* too many branches demanded */
-#define E_TOO_MANY_BRANCHES -12
-#define E_BAD_TO	-13
-/* invalid params */
-#define E_INVALID_PARAMS -14
-
-#define E_Q_INV_CHAR    -15 /* Invalid character in q */
-#define E_Q_EMPTY       -16 /* Empty q */
-#define E_Q_TOO_BIG     -17 /* q too big (> 1) */
-#define E_Q_DEC_MISSING -18 /* Decimal part missing */
-
-
-#define E_SEND		  -477
-/* unresolvable next-hop address */
-#define E_BAD_ADDRESS -478
-/* unparseable URI */
-#define E_BAD_URI 	  -479
-/* bad protocol, like */
-#define E_BAD_PROTO	  -480
-/* malformed request */
-#define E_BAD_REQ	  -400
-
-/* error in server */
-#define E_BAD_SERVER	  -500
-
-
-#define MAX_REASON_LEN	128
-
-#include "str.h"
-
-/* processing status of the last command */
-extern int ser_error;
-extern int prev_ser_error;
-
-struct sip_msg;
-
-/* ser error -> SIP error */
-int err2reason_phrase( int ser_error, int *sip_error, 
-                char *phrase, int etl, char *signature );
-
-/* SIP error core -> SIP text */
-char *error_text( int code );
-
-/* return pkg_malloc-ed reply status in status->s */
-void get_reply_status( str *status, struct sip_msg *reply, int code );
-
-#endif

Deleted: ser/trunk/fastlock.h
===================================================================
--- ser/trunk/fastlock.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/fastlock.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,235 +0,0 @@
-/*
- * fast architecture specific locking
- *
- * $Id: fastlock.h,v 1.25.2.2 2005/06/06 16:27:32 andrei Exp $
- *
- * 
- *
- * 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 at 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
- */
-/*
- *
- *History:
- *--------
- *  2002-02-05  created by andrei
- *  2003-01-16  added PPC locking code contributed by Dinos Dorkofikis
- *               <kdor at intranet.gr>
- *  2004-09-12  added MIPS locking for ISA>=2 (>r3000)  (andrei)
- *  2004-12-16  for now use the same locking code for sparc32 as for sparc64
- *               (it will work only if NOSMP is defined) (andrei)
- *  2005-04-27  added alpha locking code (andrei)
- *  2005-06-06  ppc locking code enabled also for ppc64, note however
- *               that the version in HEAD might be more reliable (andrei)
- *
- */
-
-
-#ifndef fastlock_h
-#define fastlock_h
-
-#ifdef HAVE_SCHED_YIELD
-#include <sched.h>
-#else
-#include <unistd.h>
-	/* fake sched_yield */
-	#define sched_yield()	sleep(0)
-#endif
-
-
-typedef  volatile int fl_lock_t;
-
-
-
-#define init_lock( l ) (l)=0
-
-
-
-/*test and set lock, ret 1 if lock held by someone else, 0 otherwise*/
-inline static int tsl(fl_lock_t* lock)
-{
-	int val;
-
-#if defined(__CPU_i386) || defined(__CPU_x86_64)
-
-#ifdef NOSMP
-	val=0;
-	asm volatile(
-		" btsl $0, %1 \n\t"
-		" adcl $0, %0 \n\t"
-		: "=q" (val), "=m" (*lock) : "0"(val) : "memory", "cc" /* "cc" */
-	);
-#else
-	val=1;
-	asm volatile( 
-		" xchg %b1, %0" : "=q" (val), "=m" (*lock) : "0" (val) : "memory"
-	);
-#endif /*NOSMP*/
-#elif defined(__CPU_sparc64) || defined(__CPU_sparc)
-	asm volatile(
-			"ldstub [%1], %0 \n\t"
-#ifndef NOSMP
-			"membar #StoreStore | #StoreLoad \n\t"
-#endif
-			: "=r"(val) : "r"(lock):"memory"
-	);
-	
-#elif defined __CPU_arm
-	asm volatile(
-			"# here \n\t"
-			"swpb %0, %1, [%2] \n\t"
-			: "=r" (val)
-			: "r"(1), "r" (lock) : "memory"
-	);
-	
-#elif defined(__CPU_ppc) || defined(__CPU_ppc64)
-	asm volatile(
-			"1: lwarx  %0, 0, %2\n\t"
-			"   cmpwi  %0, 0\n\t"
-			"   bne    0f\n\t"
-			"   stwcx. %1, 0, %2\n\t"
-			"   bne-   1b\n\t"
-			"0:\n\t"
-			: "=r" (val)
-			: "r"(1), "b" (lock) :
-			"memory", "cc"
-        );
-#elif defined __CPU_mips2
-	long tmp;
-	tmp=1; /* just to kill a gcc 2.95 warning */
-	
-	asm volatile(
-		".set noreorder\n\t"
-		"1:  ll %1, %2   \n\t"
-		"    li %0, 1 \n\t"
-		"    sc %0, %2  \n\t"
-		"    beqz %0, 1b \n\t"
-		"    nop \n\t"
-		".set reorder\n\t"
-		: "=&r" (tmp), "=&r" (val), "=m" (*lock) 
-		: "0" (tmp), "2" (*lock) 
-		: "cc"
-	);
-#elif defined __CPU_alpha
-	long tmp;
-	tmp=0;
-	/* lock low bit set to 1 when the lock is hold and to 0 otherwise */
-	asm volatile(
-		"1:  ldl %0, %1   \n\t"
-		"    blbs %0, 2f  \n\t"  /* optimization if locked */
-		"    ldl_l %0, %1 \n\t"
-		"    blbs %0, 2f  \n\t" 
-		"    lda %2, 1    \n\t"  /* or: or $31, 1, %2 ??? */
-		"    stl_c %2, %1 \n\t"
-		"    beq %2, 1b   \n\t"
-		"    mb           \n\t"
-		"2:               \n\t"
-		:"=&r" (val), "=m"(*lock), "=r"(tmp)
-		:"1"(*lock)  /* warning on gcc 3.4: replace it with m or remove
-						it and use +m in the input line ? */
-		: "memory"
-	);
-#else
-#error "unknown architecture"
-#endif
-	return val;
-}
-
-
-
-inline static void get_lock(fl_lock_t* lock)
-{
-#ifdef ADAPTIVE_WAIT
-	int i=ADAPTIVE_WAIT_LOOPS;
-#endif
-	
-	while(tsl(lock)){
-#ifdef BUSY_WAIT
-#elif defined ADAPTIVE_WAIT
-		if (i>0) i--;
-		else sched_yield();
-#else
-		sched_yield();
-#endif
-	}
-}
-
-
-
-inline static void release_lock(fl_lock_t* lock)
-{
-#if defined(__CPU_i386) || defined(__CPU_x86_64)
-	char val;
-	val=0;
-	asm volatile(
-		" movb $0, (%0)" : /*no output*/ : "r"(lock): "memory"
-		/*" xchg %b0, %1" : "=q" (val), "=m" (*lock) : "0" (val) : "memory"*/
-	); 
-#elif defined(__CPU_sparc64) || defined(__CPU_sparc)
-	asm volatile(
-#ifndef NOSMP
-			"membar #LoadStore | #StoreStore \n\t" /*is this really needed?*/
-#endif
-			"stb %%g0, [%0] \n\t"
-			: /*no output*/
-			: "r" (lock)
-			: "memory"
-	);
-#elif defined __CPU_arm
-	asm volatile(
-		" str %0, [%1] \n\r" 
-		: /*no outputs*/ 
-		: "r"(0), "r"(lock)
-		: "memory"
-	);
-#elif defined(__CPU_ppc) || defined(__CPU_ppc64)
-	asm volatile(
-			"sync\n\t"
-			"stw %0, 0(%1)\n\t"
-			: /* no output */
-			: "r"(0), "b" (lock)
-			: "memory"
-	);
-	*lock = 0;
-#elif defined __CPU_mips2
-	asm volatile(
-		".set noreorder \n\t"
-		"    sync \n\t"
-		"    sw $0, %0 \n\t"
-		".set reorder \n\t"
-		: /*no output*/  : "m" (*lock) : "memory"
-	);
-#elif defined __CPU_alpha
-	asm volatile(
-		"    mb          \n\t"
-		"    stl $31, %0 \n\t"
-		: "=m"(*lock) :/* no input*/ : "memory"  /* because of the mb */
-	);  
-#else
-#error "unknown architecture"
-#endif
-}
-
-
-
-#endif

Deleted: ser/trunk/fifo_server.c
===================================================================
--- ser/trunk/fifo_server.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/fifo_server.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,912 +0,0 @@
-/*
- * $Id: fifo_server.c,v 1.51 2004/09/28 18:10:08 andrei Exp $
- *
- *
- * 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 at 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
- *
- * Fifo server is a very powerful tool used to access easily
- * ser's internals via textual interface, similarly to
- * how internals of many operating systems are accessible
- * via the proc file system. This might be used for
- * making ser do things for you (such as initiating new
- * transaction from webpages) or inspect server's health.
- * 
- * FIFO server allows new functionality to be registered
- * with it -- thats what register_fifo_cmd is good for.
- * Remember, the initialization must take place before
- * forking; best in init_module functions. When a function
- * is registered, it can be always evoked by sending its
- * name prefixed by colon to the FIFO.
- *
- * There are few commands already implemented in core.
- * These are 'uptime' for looking at how long the server
- * is alive and 'print' for debugging purposes.
- *
- * Every command sent to FIFO must be sent atomically to
- * avoid intermixing with other commands and MUST be
- * terminated by empty line so that the server is to able
- * to find its end if it does not understand the command.
- *
- * File test/transaction.fifo illustrates example of use
- * of t_uac command (part of TM module).
- *
- * History:
- * --------
- *  2003-03-29  destroy pkg mem introduced (jiri)
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-01-29  new built-in fifo commands: arg and pwd (jiri)
- *  2003-10-07  fifo security fixes: permissions, always delete old fifo,
- *               reply fifo checks -- added fifo_check (andrei)
- *  2003-10-13  added fifo_dir for reply fifos (andrei)
- *  2003-10-30  DB interface exported via FIFO (bogdan)
- *  2004-03-09  open_fifo_server split into init_ and start_ (andrei)
- *  2004-04-29  added chown(sock_user, sock_group)  (andrei)
- *  2004-06-06  updated to the new DB interface  & init_db_fifo (andrei)
- *  2004-09-19  fifo is deleted on exit (destroy_fifo)  (andrei)
- */
-
-
-#include <limits.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <string.h>
-#include <time.h>
-#include <stdarg.h>
-#ifdef USE_TCP
-#include <sys/socket.h>
-#endif
-
-#include "dprint.h"
-#include "ut.h"
-#include "error.h"
-#include "config.h"
-#include "globals.h"
-#include "fifo_server.h"
-#include "mem/mem.h"
-#include "sr_module.h"
-#include "pt.h"
-#include "db/db_fifo.h"
-
-/* FIFO server vars */
-char *fifo=0; /* FIFO name */
-char* fifo_dir=DEFAULT_FIFO_DIR; /* dir where reply fifos are allowed */
-char *fifo_db_url = 0;
-pid_t fifo_pid;
-
-
-/* file descriptors */
-static int fifo_read=0;
-static int fifo_write=0;
-static FILE *fifo_stream=0;
-
-/* list of fifo command */
-static struct fifo_command *cmd_list=0;
-
-/* up time */
-static time_t up_since;
-static char up_since_ctime[MAX_CTIME_LEN];
-
-static struct fifo_command *lookup_fifo_cmd( char *name )
-{
-	struct fifo_command *c;
-	for(c=cmd_list; c; c=c->next) {
-		if (strcasecmp(c->name, name)==0) return c;
-	}
-	return 0;
-}
-
-int register_fifo_cmd(fifo_cmd f, char *cmd_name, void *param)
-{
-	struct fifo_command *new_cmd;
-
-	if (lookup_fifo_cmd(cmd_name)) {
-		LOG(L_ERR, "ERROR: register_fifo_cmd: attempt to register synonyms\n");
-		return E_BUG;
-	}
-	new_cmd=pkg_malloc(sizeof(struct fifo_command));
-	if (new_cmd==0) {
-		LOG(L_ERR, "ERROR: register_fifo_cmd: out of mem\n");
-		return E_OUT_OF_MEM;
-	}
-	new_cmd->f=f;
-	new_cmd->name=cmd_name;
-	new_cmd->param=param;
-
-	new_cmd->next=cmd_list;
-	cmd_list=new_cmd;
-	
-	DBG("DEBUG: register_fifo_cmd: new command (%s) registered\n", cmd_name );
-
-	return 1;
-}
-
-void destroy_fifo()
-{
-	struct fifo_command *c, *foo;
-
-	c=cmd_list;
-
-	while(c) {
-		foo=c->next;
-		pkg_free(c);
-		c=foo;
-	}
-	if (fifo_stream){
-			fclose(fifo_stream);
-			fifo_stream=0;
-		/* if  FIFO was created, delete it */
-		if (fifo && strlen(fifo)){
-			if (unlink(fifo)<0){
-				LOG(L_ERR, "WARNING: destroy_fifo: cannot delete fifo (%s):"
-							" %s\n", fifo, strerror(errno));
-			}
-		}
-	}
-}
-
-
-int read_line( char *b, int max, FILE *stream, int *read )
-{
-	int len;
-	int retry_cnt;
-
-	retry_cnt=0;
-
-retry:
-	if (fgets(b, max, stream)==NULL) {
-		LOG(L_ERR, "ERROR: fifo_server fgets failed: %s\n",
-			strerror(errno));
-		/* on Linux, fgets sometimes returns ESPIPE -- give
-		   it few more chances
-		*/
-		if (errno==ESPIPE) {
-			retry_cnt++;
-			if (retry_cnt<4) goto retry;
-		}
-		/* interrupted by signal or ... */
-		if ((errno==EINTR)||(errno==EAGAIN)) goto retry;
-		kill(0, SIGTERM);
-	}
-	/* if we did not read whole line, our buffer is too small
-	   and we cannot process the request; consume the remainder of 
-	   request
-	*/
-	len=strlen(b);
-	if (len && !(b[len-1]=='\n' || b[len-1]=='\r')) {
-		LOG(L_ERR, "ERROR: read_line: request  line too long\n");
-		return 0;
-	}
-	/* trim from right */
-	while(len) {
-		if(b[len-1]=='\n' || b[len-1]=='\r'
-				|| b[len-1]==' ' || b[len-1]=='\t' ) {
-			len--;
-			b[len]=0;
-		} else break;
-	}
-	*read=len;
-	return 1;
-}
-
-static void consume_request( FILE *stream )
-{
-	int len;
-	char buffer[MAX_CONSUME_BUFFER];
-
-	while(!read_line(buffer, MAX_CONSUME_BUFFER, stream, &len));
-
-}
-
-int read_eol( FILE *stream )
-{
-	int len;
-	char buffer[MAX_CONSUME_BUFFER];
-	if (!read_line(buffer, MAX_CONSUME_BUFFER, stream, &len) || len!=0) {
-		LOG(L_ERR, "ERROR: read_eol: EOL expected: %.10s...\n",
-			buffer );
-		return 0;
-	}
-	return 1;
-}
-
-/* read from input until empty line is encountered */	
-int read_line_set(char *buf, int max_len, FILE *fifo, int *len)
-{
-	int set_len;
-	char *c;
-	int line_len;
-
-	c=buf;set_len=0;
-	while(1) {
-		if (!read_line(c,max_len,fifo,&line_len)) {
-			LOG(L_ERR, "ERROR: fifo_server: line expected\n");
-			return 0;
-		}
-		/* end encountered ... return */
-		if (line_len==0 || (line_len==1 && c[0]=='.' )) {
-			*len=set_len;
-			return 1;
-		}
-		max_len-=line_len; c+=line_len; set_len+=line_len;
-		if (max_len<CRLF_LEN) {
-			LOG(L_ERR, "ERROR: fifo_server: no place for CRLF\n");
-			return 0;
-		}
-		memcpy(c, CRLF, CRLF_LEN);
-		max_len-=CRLF_LEN; c+=CRLF_LEN; set_len+=CRLF_LEN;
-	}
-}
-
-
-/* read from input until line with only dot in it is encountered */
-int read_body(char *buf, int max_len, FILE *fifo, int *len)
-{
-	int set_len;
-	char *c;
-	int line_len;
-
-	c=buf;set_len=0;
-	while(1) {
-		if (!read_line(c,max_len,fifo,&line_len)) {
-			LOG(L_ERR, "ERROR: fifo_server: line expected\n");
-			return 0;
-		}
-		/* end encountered ... return */
-		if (line_len==1 && *c=='.') {
-			*len=set_len;
-			return 1;
-		}
-		max_len-=line_len; c+=line_len; set_len+=line_len;
-		if (max_len<CRLF_LEN) {
-			LOG(L_ERR, "ERROR: fifo_server: no place for CRLF\n");
-			return 0;
-		}
-		memcpy(c, CRLF, CRLF_LEN);
-		max_len-=CRLF_LEN; c+=CRLF_LEN; set_len+=CRLF_LEN;
-	}
-}
-
-static char *trim_filename( char * file )
-{
-	int prefix_len, fn_len;
-	char *new_fn;
-
-	/* we only allow files in "/tmp" -- any directory
-	   changes are not welcome
-	*/
-	if (strchr(file,'.') || strchr(file,'/')
-				|| strchr(file, '\\')) {
-		LOG(L_ERR, "ERROR: trim_filename: forbidden filename: %s\n"
-			, file);
-		return 0;
-	}
-	prefix_len=strlen(fifo_dir); fn_len=strlen(file);
-	new_fn=pkg_malloc(prefix_len+fn_len+1);
-	if (new_fn==0) {
-		LOG(L_ERR, "ERROR: trim_filename: no mem\n");
-		return 0;
-	}
-
-	memcpy(new_fn, fifo_dir, prefix_len);
-	memcpy(new_fn+prefix_len, file, fn_len );
-	new_fn[prefix_len+fn_len]=0;
-
-	return new_fn;
-}
-
-
-
-/* reply fifo security checks:
- * checks if fd is a fifo, is not hardlinked and it's not a softlink
- * opened file descriptor + file name (for soft link check)
- * returns 0 if ok, <0 if not */
-static int fifo_check(int fd, char* fname)
-{
-	struct stat fst;
-	struct stat lst;
-	
-	if (fstat(fd, &fst)<0){
-		LOG(L_ERR, "ERROR: fifo_check: fstat failed: %s\n",
-				strerror(errno));
-		return -1;
-	}
-	/* check if fifo */
-	if (!S_ISFIFO(fst.st_mode)){
-		LOG(L_ERR, "ERROR: fifo_check: %s is not a fifo\n", fname);
-		return -1;
-	}
-	/* check if hard-linked */
-	if (fst.st_nlink>1){
-		LOG(L_ERR, "ERROR: security: fifo_check: %s is hard-linked %d times\n",
-				fname, (unsigned)fst.st_nlink);
-		return -1;
-	}
-	
-	/* lstat to check for soft links */
-	if (lstat(fname, &lst)<0){
-		LOG(L_ERR, "ERROR: fifo_check: lstat failed: %s\n",
-				strerror(errno));
-		return -1;
-	}
-	if (S_ISLNK(lst.st_mode)){
-		LOG(L_ERR, "ERROR: security: fifo_check: %s is a soft link\n",
-				fname);
-		return -1;
-	}
-	/* if this is not a symbolic link, check to see if the inode didn't
-	 * change to avoid possible sym.link, rm sym.link & replace w/ fifo race
-	 */
-	if ((lst.st_dev!=fst.st_dev)||(lst.st_ino!=fst.st_ino)){
-		LOG(L_ERR, "ERROR: security: fifo_check: inode/dev number differ"
-				": %d %d (%s)\n",
-				 (int)fst.st_ino, (int)lst.st_ino, fname);
-		return -1;
-	}
-	/* success */
-	return 0;
-}
-
-
-
-/* tell FIFO client what happened via reply pipe */
-void fifo_reply( char *reply_fifo, char *reply_fmt, ... )
-{
-	FILE *file_handle;
-	int r;
-	va_list ap;
-
-	file_handle=open_reply_pipe(reply_fifo);
-	if (file_handle==0) {
-		LOG(L_ERR, "ERROR: fifo_reply: no reply pipe %s\n",
-			reply_fifo);
-		return;
-	}
-retry:
-	va_start(ap, reply_fmt);
-	r=vfprintf(file_handle, reply_fmt, ap);
-	va_end(ap);
-	if (r<=0) {
-		LOG(L_ERR, "ERROR: fifo_error: write error (%s): %s\n",
-			fifo, strerror(errno));
-		if ((errno==EINTR)||(errno==EAGAIN)||(errno==EWOULDBLOCK)) {
-			goto retry;
-		}
-	}
-	fclose(file_handle);
-}
-
-FILE *open_reply_pipe( char *pipe_name )
-{
-
-	int fifofd;
-	FILE *file_handle;
-	int flags;
-
-	int retries=FIFO_REPLY_RETRIES;
-
-	if (!pipe_name || *pipe_name==0) {
-		DBG("DEBUG: open_reply_pipe: no file to write to about missing cmd\n");
-		return 0;
-	}
-
-tryagain:
-	/* open non-blocking to make sure that a broken client will not 
-	 * block the FIFO server forever */
-	fifofd=open( pipe_name, O_WRONLY | O_NONBLOCK );
-	if (fifofd==-1) {
-		/* retry several times if client is not yet ready for getting
-		   feedback via a reply pipe
-		*/
-		if (errno==ENXIO) {
-			/* give up on the client - we can't afford server blocking */
-			if (retries==0) {
-				LOG(L_ERR, "ERROR: open_reply_pipe: no client at %s\n",
-					pipe_name );
-				return 0;
-			}
-			/* don't be noisy on the very first try */
-			if (retries!=FIFO_REPLY_RETRIES)
-				DBG("DEBUG: open_reply_pipe: retry countdown: %d\n", retries );
-			sleep_us( FIFO_REPLY_WAIT );
-			retries--;
-			goto tryagain;
-		}
-		/* some other opening error */
-		LOG(L_ERR, "ERROR: open_reply_pipe: open error (%s): %s\n",
-			pipe_name, strerror(errno));
-		return 0;
-	}
-	/* security checks: is this really a fifo?, is 
-	 * it hardlinked? is it a soft link? */
-	if (fifo_check(fifofd, pipe_name)<0) goto error;
-	
-	/* we want server blocking for big writes */
-	if ( (flags=fcntl(fifofd, F_GETFL, 0))<0) {
-		LOG(L_ERR, "ERROR: open_reply_pipe (%s): getfl failed: %s\n",
-			pipe_name, strerror(errno));
-		goto error;
-	}
-	flags&=~O_NONBLOCK;
-	if (fcntl(fifofd, F_SETFL, flags)<0) {
-		LOG(L_ERR, "ERROR: open_reply_pipe (%s): setfl cntl failed: %s\n",
-			pipe_name, strerror(errno));
-		goto error;
-	}
-
-	/* create an I/O stream */	
-	file_handle=fdopen( fifofd, "w");
-	if (file_handle==NULL) {
-		LOG(L_ERR, "ERROR: open_reply_pipe: open error (%s): %s\n",
-			pipe_name, strerror(errno));
-		goto error;
-	}
-	return file_handle;
-error:
-	close(fifofd);
-	return 0;
-}
-
-static void fifo_server(FILE *fifo_stream)
-{
-	char buf[MAX_FIFO_COMMAND];
-	int line_len;
-	char *file_sep, *command, *file;
-	struct fifo_command *f;
-
-	file_sep=command=file=0;
-
-	/* register a diagnostic FIFO command */
-	register_core_fifo();
-
-	while(1) {
-
-		/* commands must look this way ':<command>:[filename]' */
-		if (!read_line(buf, MAX_FIFO_COMMAND, fifo_stream, &line_len)) {
-			/* line breaking must have failed -- consume the rest
-			   and proceed to a new request
-			*/
-			LOG(L_ERR, "ERROR: fifo_server: command expected\n");
-			goto consume;
-		}
-		if (line_len==0) {
-			LOG(L_DBG, "INFO: fifo_server: command empty\n");
-			continue;
-		}
-		if (line_len<3) {
-			LOG(L_ERR, "ERROR: fifo_server: command must have at least 3 chars\n");
-			goto consume;
-		}
-		if (*buf!=CMD_SEPARATOR) {
-			LOG(L_ERR, "ERROR: fifo_server: command must begin with %c: %.*s\n", 
-				CMD_SEPARATOR, line_len, buf );
-			goto consume;
-		}
-		command=buf+1;
-		file_sep=strchr(command, CMD_SEPARATOR );
-		if (file_sep==NULL) {
-			LOG(L_ERR, "ERROR: fifo_server: file separator missing\n");
-			goto consume;
-		}
-		if (file_sep==command) {
-			LOG(L_ERR, "ERROR: fifo_server: empty command\n");
-			goto consume;
-		}
-		if (*(file_sep+1)==0) file=NULL; 
-		else {
-			file=file_sep+1;
-			file=trim_filename(file);
-			if (file==0) {
-				LOG(L_ERR, "ERROR: fifo_server: trimming filename\n");
-				goto consume;
-			}
-		}
-		/* make command zero-terminated */
-		*file_sep=0;
-
-		f=lookup_fifo_cmd( command );
-		if (f==0) {
-			LOG(L_ERR, "ERROR: fifo_server: command %s is not available\n",
-				command);
-			fifo_reply(file, "500 command '%s' not available\n", command);
-			goto consume;
-		}
-		if (f->f(fifo_stream, file)<0) {
-			LOG(L_ERR, "ERROR: fifo_server: command (%s) "
-				"processing failed\n", command );
-			goto consume;
-		}
-
-consume:
-		if (file) { pkg_free(file); file=0;}
-		consume_request(fifo_stream);
-		DBG("**** done consume\n");
-	}
-}
-
-int init_fifo_server()
-{
-	char *t;
-	struct stat filestat;
-	int n;
-	long opt;
-
-	if (fifo==NULL) {
-		DBG("DBG: open_fifo_server: no fifo will be opened\n");
-		/* everything is ok, we just do not want to start */
-		return 1;
-	}
-	if (strlen(fifo)==0) {
-		DBG("DBG: open_fifo_server: fifo disabled\n");
-		return 1;
-	}
-	DBG("DBG: open_uac_fifo: opening fifo...\n");
-	n=stat(fifo, &filestat);
-	if (n==0){
-		/* FIFO exist, delete it (safer) */
-		if (unlink(fifo)<0){
-			LOG(L_ERR, "ERROR: open_fifo_server: cannot delete old fifo (%s):"
-					" %s\n", fifo, strerror(errno));
-			return -1;
-		}
-	}else if (n<0 && errno!=ENOENT){
-		LOG(L_DBG, "DEBUG: open_fifo_server: FIFO stat failed: %s\n",
-			strerror(errno));
-	}
-		/* create FIFO ... */
-		if ((mkfifo(fifo, sock_mode)<0)) {
-			LOG(L_ERR, "ERROR: open_fifo_server; can't create FIFO: "
-					"%s (mode=%d)\n",
-					strerror(errno), sock_mode);
-			return -1;
-		} 
-		DBG("DEBUG: FIFO created @ %s\n", fifo );
-		if ((chmod(fifo, sock_mode)<0)) {
-			LOG(L_ERR, "ERROR: open_fifo_server; can't chmod FIFO: "
-					"%s (mode=%d)\n",
-					strerror(errno), sock_mode);
-			return -1;
-		}
-		if ((sock_uid!=-1) || (sock_gid!=-1)){
-			if (chown(fifo, sock_uid, sock_gid)<0){
-			LOG(L_ERR, "ERROR: open_fifo_server: failed to change the"
-					" owner/group for %s  to %d.%d; %s[%d]\n",
-					fifo, sock_uid, sock_gid, strerror(errno), errno);
-			return -1;
-		}
-	}
-
-		
-	DBG("DEBUG: fifo %s opened, mode=%d\n", fifo, sock_mode );
-	time(&up_since);
-	t=ctime(&up_since);
-	if (strlen(t)+1>=MAX_CTIME_LEN) {
-		LOG(L_ERR, "ERROR: open_fifo_server: "
-			"too long date %d\n", (int)strlen(t));
-		return -1;
-	}
-	memcpy(up_since_ctime,t,strlen(t)+1);
-	/* open it non-blocking or else wait here until someone
-	 * opens it for writing */
-	fifo_read=open(fifo, O_RDONLY|O_NONBLOCK, 0);
-	if (fifo_read<0) {
-		LOG(L_ERR, "ERROR: init_fifo_server: fifo_read did not open: %s\n",
-			strerror(errno));
-		return -1;
-	}
-	fifo_stream=fdopen(fifo_read, "r");
-	if (fifo_stream==NULL) {
-		LOG(L_ERR, "ERROR: init_fifo_server: fdopen failed: %s\n",
-			strerror(errno));
-		return -1;
-	}
-	/* make sure the read fifo will not close */
-	fifo_write=open(fifo, O_WRONLY|O_NONBLOCK, 0);
-	if (fifo_write<0) {
-		LOG(L_ERR, "ERROR: init_fifo_server: fifo_write did not open: %s\n",
-			strerror(errno));
-		return -1;
-	}
-	/* set read fifo blocking mode */
-	if ((opt=fcntl(fifo_read, F_GETFL))==-1){
-		LOG(L_ERR, "ERROR: init_fifo_server: fcntl(F_GETFL) failed: %s [%d]\n",
-				strerror(errno), errno);
-		return -1;
-	}
-	if (fcntl(fifo_read, F_SETFL, opt & (~O_NONBLOCK))==-1){
-		LOG(L_ERR, "ERROR: init_fifo_server: fcntl(F_SETFL) failed: %s [%d]\n",
-				strerror(errno), errno);
-		return -1;
-	}
-	return 0;
-}
-
-
-
-int start_fifo_server()
-{
-#ifdef USE_TCP
-	int sockfd[2];
-#endif
-	if (fifo_stream==0) return 1; /* no error, we just don't start it */
-#ifdef USE_TCP
-	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){
-			LOG(L_ERR, "ERROR: open_fifo_server: socketpair failed: %s\n",
-				strerror(errno));
-			return -1;
-	}
-#endif
-	process_no++;
-	fifo_pid=fork();
-	if (fifo_pid<0) {
-		LOG(L_ERR, "ERROR: open_fifo_server: failure to fork: %s\n",
-			strerror(errno));
-		return -1;
-	}
-	if (fifo_pid==0) { /* child == FIFO server */
-		LOG(L_INFO, "INFO: fifo process starting: %d\n", getpid());
-		/* call per-child module initialization too -- some
-		   FIFO commands may need it
-		*/
-#ifdef USE_TCP
-		close(sockfd[0]);
-		unix_tcp_sock=sockfd[1];
-#endif
-		if (init_child(PROC_FIFO) < 0 ) {
-			LOG(L_ERR, "ERROR: open_uac_fifo: init_child failed\n");
-			return -1;
-		}
-		/* a real server doesn't die if writing to reply fifo fails */
-		signal(SIGPIPE, SIG_IGN);
-		LOG(L_INFO, "SER: open_uac_fifo: fifo server up at %s...\n",
-			fifo);
-		fifo_server( fifo_stream ); /* never returns */
-	}
-	/* dad process */
-	pt[process_no].pid=fifo_pid;
-	strncpy(pt[process_no].desc, "fifo server", MAX_PT_DESC );
-#ifdef USE_TCP
-	close(sockfd[1]);
-	pt[process_no].unix_sock=sockfd[0];
-	pt[process_no].idx=-1; /* this is not "tcp" process*/
-#endif
-	return 1;
-}
-
-static int print_version_cmd( FILE *stream, char *response_file )
-{
-	if (response_file) {
-		fifo_reply(response_file, "200 ok\n" SERVER_HDR CRLF );
-	} else {
-		LOG(L_ERR, "ERROR: no file for %s\n", "print_version_cmd" );
-	}
-	return 1;
-}
-
-static int pwd_cmd( FILE *stream, char *response_file )
-{
-	char *cwd_buf;
-	int max_len;
-
-	if (!response_file) {
-		LOG(L_ERR, "ERROR: no file for %s\n", "pwd_cmd" );
-		return 1;
-	}
-
-	max_len=pathmax();
-	cwd_buf=pkg_malloc(max_len);
-	if (!cwd_buf) {
-		LOG(L_ERR, "ERROR: pwd_cmd: no cwd pkg mem\n");
-		fifo_reply(response_file, "500 no memory\n");
-		return 1;
-	}
-
-	if (getcwd(cwd_buf, max_len)) {
-		fifo_reply(response_file, "200 ok\n%s\n", cwd_buf );
-	} else {
-		fifo_reply(response_file, "500 getcwd failed\n" );
-	}
-
-	pkg_free(cwd_buf);
-	return 1;
-}
-
-static int arg_cmd( FILE *stream, char *response_file )
-{
-	FILE *reply_pipe;
-	int p;
-
-	if (response_file==0 || *response_file==0 ) {
-		 LOG(L_ERR, "ERROR: ps_fifo_cmd: null file\n");
-		return -1;
-	}
-	reply_pipe=open_reply_pipe(response_file);
-	if (reply_pipe==NULL) {
-		LOG(L_ERR, "ERROR: ps_fifo_cmd: opening reply pipe (%s) failed\n",
-			response_file );
-		return -1;
-	}
-
-	fputs( "200 ok\n", reply_pipe);
-	for (p=0; p<my_argc;p++) 
-			fprintf( reply_pipe, "%s\n", my_argv[p] );
-			
-	fclose(reply_pipe);
-	return 1;
-}
-
-	
-
-/* diagnostic and hello-world FIFO command */
-static int print_fifo_cmd( FILE *stream, char *response_file )
-{
-	char text[MAX_PRINT_TEXT];
-	int text_len;
-	
-	/* expect one line which will be printed out */
-	if (response_file==0 || *response_file==0 ) { 
-		LOG(L_ERR, "ERROR: print_fifo_cmd: null file\n");
-		return -1;
-	}
-	if (!read_line(text, MAX_PRINT_TEXT, stream, &text_len)) {
-		fifo_reply(response_file, 
-			"500 print_fifo_cmd: too big text");
-		return -1;
-	}
-	/* now the work begins */
-	if (response_file) {
-		fifo_reply(response_file, "200 ok\n%s\n", text );
-	} else {
-		LOG(L_INFO, "INFO: print_fifo_cmd: %.*s\n", 
-			text_len, text );
-	}
-	return 1;
-}
-
-static int uptime_fifo_cmd( FILE *stream, char *response_file )
-{
-	time_t now;
-
-	if (response_file==0 || *response_file==0 ) { 
-		LOG(L_ERR, "ERROR: uptime_fifo_cmd: null file\n");
-		return -1;
-	}
-
-	time(&now);
-	fifo_reply( response_file, "200 ok\n"
-		"Now: %sUp Since: %sUp time: %.0f [sec]\n",
-		ctime(&now), up_since_ctime, difftime(now, up_since) );
-
-	return 1;
-}
-
-static int kill_fifo_cmd( FILE *stream, char *response_file )
-{
-	if (response_file==0 || *response_file==0 ) { 
-		LOG(L_ERR, "ERROR: uptime_fifo_cmd: null file\n");
-		return -1;
-	}
-	fifo_reply(response_file, "200 killing now..." );
-	kill(0, SIGTERM);
-	return 1;
-}
-
-static int which_fifo_cmd(FILE *stream, char *response_file )
-{
-	FILE *reply_pipe;
-	struct fifo_command *c;
-
-	if (response_file==0 || *response_file==0 ) {
-		 LOG(L_ERR, "ERROR: which_fifo_cmd: null file\n");
-		return -1;
-	}
-
-	reply_pipe=open_reply_pipe(response_file);
-	if (reply_pipe==NULL) {
-		LOG(L_ERR, "ERROR: which_fifo_cmd: opening reply pipe (%s) failed\n",
-			response_file );
-		return -1;
-	}
-	fputs( "200 ok\n", reply_pipe);
-	for(c=cmd_list; c; c=c->next) {
-		fprintf( reply_pipe, "%s\n", c->name );
-	}
-
-	fclose(reply_pipe);
-	return 1;
-}
-
-static int ps_fifo_cmd(FILE *stream, char *response_file )
-{
-	FILE *reply_pipe;
-	int p;
-
-	if (response_file==0 || *response_file==0 ) {
-		 LOG(L_ERR, "ERROR: ps_fifo_cmd: null file\n");
-		return -1;
-	}
-	reply_pipe=open_reply_pipe(response_file);
-	if (reply_pipe==NULL) {
-		LOG(L_ERR, "ERROR: ps_fifo_cmd: opening reply pipe (%s) failed\n",
-			response_file );
-		return -1;
-	}
-
-	fputs( "200 ok\n", reply_pipe);
-	for (p=0; p<process_count();p++) 
-		fprintf( reply_pipe, "%d\t%d\t%s\n",
-			p, pt[p].pid, pt[p].desc );
-
-	fclose(reply_pipe);
-	return 1;
-}
-
-
-int register_core_fifo()
-{
-	if (register_fifo_cmd(print_fifo_cmd, FIFO_PRINT, 0)<0) {
-		LOG(L_ERR, "ERROR: unable to register '%s' FIFO cmd\n", FIFO_PRINT);
-		return -1;
-	}
-	if (register_fifo_cmd(uptime_fifo_cmd, FIFO_UPTIME, 0)<0) {
-		LOG(L_ERR, "ERROR: unable to register '%s' FIFO cmd\n", FIFO_UPTIME);
-		return -1;
-	}
-	if (register_fifo_cmd(print_version_cmd, FIFO_VERSION, 0)<0) {
-		LOG(L_ERR, "ERROR: unable to register '%s' FIFO cmd\n",FIFO_VERSION);
-		return -1;
-	}
-	if (register_fifo_cmd(pwd_cmd, FIFO_PWD, 0)<0) {
-		LOG(L_ERR, "ERROR: unable to register '%s' FIFO cmd\n", FIFO_PWD);
-		return -1;
-	}
-	if (register_fifo_cmd(arg_cmd, FIFO_ARG, 0)<0) {
-		LOG(L_ERR, "ERROR: unable to register '%s' FIFO cmd\n", FIFO_ARG);
-		return -1;
-	}
-	if (register_fifo_cmd(which_fifo_cmd, FIFO_WHICH, 0)<0) {
-		LOG(L_ERR, "ERROR: unable to register '%s' FIFO cmd\n", FIFO_WHICH);
-		return -1;
-	}
-	if (register_fifo_cmd(ps_fifo_cmd, FIFO_PS, 0)<0) {
-		LOG(L_ERR, "ERROR: unable to register '%s' FIFO cmd\n", FIFO_PS);
-		return -1;
-	}
-	if (register_fifo_cmd(kill_fifo_cmd, FIFO_KILL, 0)<0) {
-		LOG(L_CRIT, "ERROR: unable to register '%s' FIFO cmd\n", FIFO_KILL);
-		return -1;
-	}
-	if (fifo_db_url==0) {
-		LOG(L_WARN,"WARNING: no fifo_db_url given - "
-			"fifo DB commands disabled!\n");
-	} else if (init_db_fifo(fifo_db_url)<0){
-		return -1;
-	}
-	return 1;
-}

Deleted: ser/trunk/fifo_server.h
===================================================================
--- ser/trunk/fifo_server.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/fifo_server.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,91 +0,0 @@
-/*
- * $Id: fifo_server.h,v 1.15 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- */
-
-
-#ifndef _FIFO_SERVER_H
-#define _FIFO_SERVER_H
-
-#include <stdio.h>
-
-#define CMD_SEPARATOR ':'
-
-/* core FIFO command set */
-/* echo input */
-#define FIFO_PRINT "print"
-/* print server's uptime */
-#define FIFO_UPTIME "uptime"
-/* print server's version */
-#define FIFO_VERSION "version"
-/* print available FIFO commands */
-#define FIFO_WHICH "which"
-/* print server's process table */
-#define FIFO_PS "ps"
-/* print server's command line arguments */
-#define FIFO_ARG "arg"
-/* print server's working directory */
-#define FIFO_PWD "pwd"
-/* kill the server */
-#define FIFO_KILL "kill"
-
-#define MAX_CTIME_LEN 128
-
-typedef int (fifo_cmd)( FILE *fifo_stream, char *response_file );
-
-struct fifo_command{
-	fifo_cmd *f;
-	struct fifo_command *next;
-	void *param;
-	char *name;
-};
-
-int register_fifo_cmd(fifo_cmd f, char *cmd_name, void *param);
-
-/* read a single EoL-terminated line from fifo */
-int read_line( char *b, int max, FILE *stream, int *read );
-/* consume EoL from fifo */
-int read_eol( FILE *stream );
-/* consume a set of EoL-terminated lines terminated by an additional EoL */
-int read_line_set(char *buf, int max_len, FILE *fifo, int *len);
-/* consume a set of EoL-terminated lines terminated by a single dot line */
-int read_body(char *buf, int max_len, FILE *fifo, int *len);
-
-int init_fifo_server();
-int start_fifo_server();
-
-/* register core FIFO command set */
-int register_core_fifo();
-
-FILE *open_reply_pipe( char *pipe_name );
-
-/* tell FIFO client an error occurred via reply pipe */
-void fifo_reply( char *reply_fifo, char *reply_fmt, ... );
-
-/* memory deallocation */
-void destroy_fifo();
-
-#endif

Deleted: ser/trunk/flags.c
===================================================================
--- ser/trunk/flags.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/flags.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,142 +0,0 @@
-/*
- * $Id: flags.c,v 1.6 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- */
-
-
-#include <limits.h>
-#include "sr_module.h"
-#include "dprint.h"
-#include "parser/msg_parser.h"
-#include "flags.h"
-#include "error.h"
-#include "stdlib.h"
-
-int setflag( struct sip_msg* msg, flag_t flag ) {
-	msg->flags |= 1 << flag;
-	return 1;
-}
-
-int resetflag( struct sip_msg* msg, flag_t flag ) {
-	msg->flags &= ~ (1 << flag);
-	return 1;
-}
-
-int isflagset( struct sip_msg* msg, flag_t flag ) {
-	return (msg->flags & (1<<flag)) ? 1 : -1;
-}
-
-int flag_in_range( flag_t flag ) {
-	if (flag > MAX_FLAG ) {
-		LOG(L_ERR, "ERROR: message flag %d too high; MAX=%d\n",
-			flag, MAX_FLAG );
-		return 0;
-	}
-	if (flag<=0) {
-		LOG(L_ERR, "ERROR: message flag (%d) must be in range %d..%d\n",
-			flag, 1, MAX_FLAG );
-		return 0;
-	}
-	return 1;
-}
-
-
-#ifdef _GET_AWAY
-
-/* wrapping functions for flag processing  */
-static int fixup_t_flag(void** param, int param_no)
-{
-    unsigned int *code;
-	char *c;
-	int token;
-
-	DBG("DEBUG: fixing flag: %s\n", (char *) (*param));
-
-	if (param_no!=1) {
-		LOG(L_ERR, "ERROR: TM module: only parameter #1 for flags can be"
-					" fixed\n");
-		return E_BUG;
-	};
-
-	if ( !(code =pkg_malloc( sizeof( unsigned int) )) ) return E_OUT_OF_MEM;
-
-	*code = 0;
-	c = *param;
-	while ( *c && (*c==' ' || *c=='\t')) c++; /* initial whitespaces */
-
-	token=1;
-	if (strcasecmp(c, "white")==0) *code=FL_WHITE;
-	else if (strcasecmp(c, "yellow")==0) *code=FL_YELLOW;
-	else if (strcasecmp(c, "green")==0) *code=FL_GREEN;
-	else if (strcasecmp(c, "red")==0) *code=FL_RED;
-	else if (strcasecmp(c, "blue")==0) *code=FL_BLUE;
-	else if (strcasecmp(c, "magenta")==0) *code=FL_MAGENTA;
-	else if (strcasecmp(c, "brown")==0) *code=FL_BROWN;
-	else if (strcasecmp(c, "black")==0) *code=FL_BLACK;
-	else if (strcasecmp(c, "acc")==0) *code=FL_ACC;
-	else {
-		token=0;
-		while ( *c && *c>='0' && *c<='9' ) {
-			*code = *code*10+ *c-'0';
-			if (*code > (sizeof( flag_t ) * CHAR_BIT - 1 )) {
-				LOG(L_ERR, "ERROR: TM module: too big flag number: %s; MAX=%d\n",
-					(char *) (*param), sizeof( flag_t ) * CHAR_BIT - 1 );
-				goto error;
-			}
-			c++;
-		}
-	}
-	while ( *c && (*c==' ' || *c=='\t')) c++; /* terminating whitespaces */
-
-	if ( *code == 0 ) {
-		LOG(L_ERR, "ERROR: TM module: bad flag number: %s\n", (char *) (*param));
-		goto error;
-	}
-
-	if (*code < FL_MAX && token==0) {
-		LOG(L_ERR, "ERROR: TM module: too high flag number: %s (%d)\n; lower number"
-			" bellow %d reserved\n", (char *) (*param), *code, FL_MAX );
-		goto error;
-	}
-
-	/* free string */
-	pkg_free( *param );
-	/* fix now */
-	*param = code;
-	
-	return 0;
-
-error:
-	pkg_free( code );
-	return E_CFG;
-}
-
-
-#endif

Deleted: ser/trunk/flags.h
===================================================================
--- ser/trunk/flags.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/flags.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,48 +0,0 @@
-/*
- * $Id: flags.h,v 1.5 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-
-#ifndef _FLAGS_H
-#define _FLAGS_H
-
-enum { FL_WHITE=1, FL_YELLOW, FL_GREEN, FL_RED, FL_BLUE, FL_MAGENTA,
-	   FL_BROWN, FL_BLACK, FL_ACC, FL_MAX };
-
-typedef unsigned int flag_t;
-
-#define MAX_FLAG  ((unsigned int)( sizeof(flag_t) * CHAR_BIT - 1 ))
-
-struct sip_msg;
-
-int setflag( struct sip_msg* msg, flag_t flag );
-int resetflag( struct sip_msg* msg, flag_t flag );
-int isflagset( struct sip_msg* msg, flag_t flag );
-
-int flag_in_range( flag_t flag );
-
-#endif

Deleted: ser/trunk/forward.c
===================================================================
--- ser/trunk/forward.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/forward.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,528 +0,0 @@
-/*
- * $Id: forward.c,v 1.98.2.1 2005/11/29 19:39:45 andrei Exp $
- *
- * 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 at 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
- *
- * History:
- * -------
- *  2001-??-??  created by andrei
- *  ????-??-??  lots of changes by a lot of people
- *  2003-01-23  support for determination of outbound interface added :
- *               get_out_socket (jiri)
- *  2003-01-24  reply to rport support added, contributed by
- *               Maxim Sobolev <sobomax at FreeBSD.org> and modified by andrei
- *  2003-02-11  removed calls to upd_send & tcp_send & replaced them with
- *               calls to msg_send (andrei)
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-04-02  fixed get_send_socket for tcp fwd to udp (andrei)
- *  2003-04-03  added su_setport (andrei)
- *  2003-04-04  update_sock_struct_from_via now differentiates between
- *               local replies  & "normal" replies (andrei)
- *  2003-04-12  update_sock_struct_from via uses also FL_FORCE_RPORT for
- *               local replies (andrei)
- *  2003-08-21  check_self properly handles ipv6 addresses & refs   (andrei)
- *  2003-10-21  check_self updated to handle proto (andrei)
- *  2003-10-24  converted to the new socket_info lists (andrei)
- *  2004-10-10  modified check_self to use grep_sock_info (andrei)
- *  2004-11-08  added force_send_socket support in get_send_socket (andrei)
- */
-
-
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "forward.h"
-#include "hash_func.h"
-#include "config.h"
-#include "parser/msg_parser.h"
-#include "route.h"
-#include "dprint.h"
-#include "globals.h"
-#include "data_lump.h"
-#include "ut.h"
-#include "mem/mem.h"
-#include "msg_translator.h"
-#include "sr_module.h"
-#include "ip_addr.h"
-#include "resolve.h"
-#include "name_alias.h"
-#include "socket_info.h"
-
-#ifdef DEBUG_DMALLOC
-#include <dmalloc.h>
-#endif
-
-
-
-/* return a socket_info_pointer to the sending socket; as opposed to
- * get_send_socket, which returns process's default socket, get_out_socket
- * attempts to determine the outbound interface which will be used;
- * it creates a temporary connected socket to determine it; it will
- * be very likely noticeably slower, but it can deal better with
- * multihomed hosts
- */
-struct socket_info* get_out_socket(union sockaddr_union* to, int proto)
-{
-	int temp_sock;
-	socklen_t len;
-	union sockaddr_union from; 
-	struct socket_info* si;
-	struct ip_addr ip;
-
-	if (proto!=PROTO_UDP) {
-		LOG(L_CRIT, "BUG: get_out_socket can only be called for UDP\n");
-		return 0;
-	}
-	
-	temp_sock=socket(to->s.sa_family, SOCK_DGRAM, 0 );
-	if (temp_sock==-1) {
-		LOG(L_ERR, "ERROR: get_out_socket: socket() failed: %s\n",
-				strerror(errno));
-		return 0;
-	}
-	if (connect(temp_sock, &to->s, sockaddru_len(*to))==-1) {
-		LOG(L_ERR, "ERROR: get_out_socket: connect failed: %s\n",
-				strerror(errno));
-		goto error;
-	}
-	len=sizeof(from);
-	if (getsockname(temp_sock, &from.s, &len)==-1) {
-		LOG(L_ERR, "ERROR: get_out_socket: getsockname failed: %s\n",
-				strerror(errno));
-		goto error;
-	}
-	su2ip_addr(&ip, &from);
-	si=find_si(&ip, 0, proto);
-	if (si==0) goto error;
-	close(temp_sock);
-	DBG("DEBUG: get_out_socket: socket determined: %p\n", si );
-	return si;
-error:
-	LOG(L_ERR, "ERROR: get_out_socket: no socket found\n");
-	close(temp_sock);
-	return 0;
-}
-
-
-
-/* returns a socket_info pointer to the sending socket or 0 on error
- * params: sip msg (can be null), destination socket_union pointer, protocol
- * if msg!=null and msg->force_send_socket, the force_send_socket will be
- * used
- */
-struct socket_info* get_send_socket(struct sip_msg *msg, 
-										union sockaddr_union* to, int proto)
-{
-	struct socket_info* send_sock;
-	
-	/* check if send interface is not forced */
-	if (msg && msg->force_send_socket){
-		if (msg->force_send_socket->proto!=proto){
-			DBG("get_send_socket: force_send_socket of different proto"
-					" (%d)!\n", proto);
-			msg->force_send_socket=find_si(&(msg->force_send_socket->address),
-											msg->force_send_socket->port_no,
-											proto);
-		}
-		if (msg->force_send_socket && (msg->force_send_socket->socket!=-1)) 
-			return msg->force_send_socket;
-		else{
-			if (msg->force_send_socket->socket==-1)
-				LOG(L_WARN, "WARNING: get_send_socket: not listening"
-						 " on the requested socket, no fork mode?\n");
-			else
-				LOG(L_WARN, "WARNING: get_send_socket: "
-						"protocol/port mismatch\n");
-		}
-	};
-
-	if (mhomed && proto==PROTO_UDP){
-		send_sock=get_out_socket(to, proto);
-		if ((send_sock==0) || (send_sock->socket!=-1))
-			return send_sock; /* found or error*/
-		else if (send_sock->socket==-1){
-			LOG(L_WARN, "WARNING: get_send_socket: not listening on the"
-					" requested socket, no fork mode?\n");
-			/* continue: try to use some socket */
-		}
-	}
-
-	send_sock=0;
-	/* check if we need to change the socket (different address families -
-	 * eg: ipv4 -> ipv6 or ipv6 -> ipv4) */
-	switch(proto){
-#ifdef USE_TCP
-		case PROTO_TCP:
-		/* on tcp just use the "main address", we don't really now the
-		 * sending address (we can find it out, but we'll need also to see
-		 * if we listen on it, and if yes on which port -> too complicated*/
-			switch(to->s.sa_family){
-				/* FIXME */
-				case AF_INET:	send_sock=sendipv4_tcp;
-								break;
-#ifdef USE_IPV6
-				case AF_INET6:	send_sock=sendipv6_tcp;
-								break;
-#endif
-				default:	LOG(L_ERR, "get_send_socket: BUG: don't know how"
-									" to forward to af %d\n", to->s.sa_family);
-			}
-			break;
-#endif
-#ifdef USE_TLS
-		case PROTO_TLS:
-			switch(to->s.sa_family){
-				/* FIXME */
-				case AF_INET:	send_sock=sendipv4_tls;
-								break;
-#ifdef USE_IPV6
-				case AF_INET6:	send_sock=sendipv6_tls;
-								break;
-#endif
-				default:	LOG(L_ERR, "get_send_socket: BUG: don't know how"
-									" to forward to af %d\n", to->s.sa_family);
-			}
-			break;
-#endif /* USE_TLS */
-		case PROTO_UDP:
-			if ((bind_address==0)||(to->s.sa_family!=bind_address->address.af)||
-				  (bind_address->proto!=PROTO_UDP)){
-				switch(to->s.sa_family){
-					case AF_INET:	send_sock=sendipv4;
-									break;
-#ifdef USE_IPV6
-					case AF_INET6:	send_sock=sendipv6;
-									break;
-#endif
-					default:	LOG(L_ERR, "get_send_socket: BUG: don't know"
-										" how to forward to af %d\n",
-										to->s.sa_family);
-				}
-			}else send_sock=bind_address;
-			break;
-		default:
-			LOG(L_CRIT, "BUG: get_send_socket: unknown proto %d\n", proto);
-	}
-	return send_sock;
-}
-
-
-
-/* checks if the proto: host:port is one of the address we listen on;
- * if port==0, the  port number is ignored
- * if proto==0 (PROTO_NONE) the protocol is ignored
- * returns 1 if true, 0 if false, -1 on error
- * WARNING: uses str2ip6 so it will overwrite any previous
- *  unsaved result of this function (static buffer)
- */
-int check_self(str* host, unsigned short port, unsigned short proto)
-{
-	if (grep_sock_info(host, port, proto)) goto found;
-	/* try to look into the aliases*/
-	if (grep_aliases(host->s, host->len, port, proto)==0){
-		DBG("check_self: host != me\n");
-		return 0;
-	}
-found:
-	return 1;
-}
-
-
-
-int forward_request( struct sip_msg* msg, struct proxy_l * p, int proto)
-{
-	unsigned int len;
-	char* buf;
-	union sockaddr_union* to;
-	struct socket_info* send_sock;
-	char md5[MD5_LEN];
-	int id; /* used as branch for tcp! */
-	
-	to=0;
-	buf=0;
-	id=0;
-	
-	to=(union sockaddr_union*)pkg_malloc(sizeof(union sockaddr_union));
-	if (to==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: forward_request: out of memory\n");
-		goto error;
-	}
-	
-	
-	/* if error try next ip address if possible */
-	if (p->ok==0){
-		if (p->host.h_addr_list[p->addr_idx+1])
-			p->addr_idx++;
-		else p->addr_idx=0;
-		p->ok=1;
-	}
-	
-	hostent2su(to, &p->host, p->addr_idx, 
-				(p->port)?p->port:SIP_PORT);
-	p->tx++;
-	p->tx_bytes+=len;
-	
-
-	send_sock=get_send_socket(msg, to, proto);
-	if (send_sock==0){
-		LOG(L_ERR, "forward_req: ERROR: cannot forward to af %d, proto %d "
-				"no corresponding listening socket\n", to->s.sa_family, proto);
-		ser_error=E_NO_SOCKET;
-		goto error1;
-	}
-
-	/* calculate branch for outbound request;  if syn_branch is turned off,
-	   calculate is from transaction key, i.e., as an md5 of From/To/CallID/
-	   CSeq exactly the same way as TM does; good for reboot -- than messages
-	   belonging to transaction lost due to reboot will still be forwarded
-	   with the same branch parameter and will be match-able downstream
-
-       if it is turned on, we don't care about reboot; we simply put a simple
-	   value in there; better for performance
-	*/
-	if (syn_branch ) {
-		*msg->add_to_branch_s='0';
-		msg->add_to_branch_len=1;
-	} else {
-		if (!char_msg_val( msg, md5 )) 	{ /* parses transaction key */
-			LOG(L_ERR, "ERROR: forward_request: char_msg_val failed\n");
-			goto error1;
-		}
-		msg->hash_index=hash( msg->callid->body, get_cseq(msg)->number);
-		if (!branch_builder( msg->hash_index, 0, md5, id /* 0-th branch */,
-					msg->add_to_branch_s, &msg->add_to_branch_len )) {
-			LOG(L_ERR, "ERROR: forward_request: branch_builder failed\n");
-			goto error1;
-		}
-	}
-
-	buf = build_req_buf_from_sip_req( msg, &len, send_sock,  proto);
-	if (!buf){
-		LOG(L_ERR, "ERROR: forward_request: building failed\n");
-		goto error1;
-	}
-	 /* send it! */
-	DBG("Sending:\n%.*s.\n", (int)len, buf);
-	DBG("orig. len=%d, new_len=%d, proto=%d\n", msg->len, len, proto );
-	
-	if (msg_send(send_sock, proto, to, 0, buf, len)<0){
-		ser_error=E_SEND;
-		p->errors++;
-		p->ok=0;
-		STATS_TX_DROPS;
-		goto error1;
-	}
-	
-	/* sent requests stats */
-	STATS_TX_REQUEST(  msg->first_line.u.request.method_value );
-	
-	pkg_free(buf);
-	pkg_free(to);
-	/* received_buf & line_buf will be freed in receive_msg by free_lump_list*/
-	return 0;
-
-error1:
-	pkg_free(to);
-error:
-	if (buf) pkg_free(buf);
-	return -1;
-}
-
-
-
-int update_sock_struct_from_via( union sockaddr_union* to,
-								 struct sip_msg* msg,
-								 struct via_body* via )
-{
-	struct hostent* he;
-	str* name;
-	int err;
-	unsigned short port;
-
-	port=0;
-	if(via==msg->via1){ 
-		/* _local_ reply, we ignore any rport or received value
-		 * (but we will send back to the original port if rport is
-		 *  present) */
-		if ((msg->msg_flags&FL_FORCE_RPORT)||(via->rport))
-			port=msg->rcv.src_port;
-		else port=via->port;
-		name=&(via->host); /* received=ip in 1st via is ignored (it's
-							  not added by us so it's bad) */
-	}else{
-		/* "normal" reply, we use rport's & received value if present */
-		if (via->rport && via->rport->value.s){
-			DBG("update_sock_struct_from_via: using 'rport'\n");
-			port=str2s(via->rport->value.s, via->rport->value.len, &err);
-			if (err){
-				LOG(L_NOTICE, "ERROR: forward_reply: bad rport value(%.*s)\n",
-						via->rport->value.len, via->rport->value.s);
-				port=0;
-			}
-		}
-		if (via->received){
-			DBG("update_sock_struct_from_via: using 'received'\n");
-			name=&(via->received->value);
-			/* making sure that we won't do SRV lookup on "received"
-			 * (possible if no DNS_IP_HACK is used)*/
-			if (port==0) port=via->port?via->port:SIP_PORT; 
-		}else{
-			DBG("update_sock_struct_from_via: using via host\n");
-			name=&(via->host);
-			if (port==0) port=via->port;
-		}
-	}
-	/* we do now a malloc/memcpy because gethostbyname loves \0-terminated 
-	   strings; -jiri 
-	   but only if host is not null terminated
-	   (host.s[len] will always be ok for a via)
-	    BTW: when is via->host.s non null terminated? tm copy? - andrei 
-	    Yes -- it happened on generating a 408 by TM; -jiri
-	    sip_resolvehost now accepts str -janakj
-	*/
-	DBG("update_sock_struct_from_via: trying SRV lookup\n");
-	he=sip_resolvehost(name, &port, via->proto);
-	
-	if (he==0){
-		LOG(L_NOTICE, "ERROR:forward_reply:resolve_host(%.*s) failure\n",
-				name->len, name->s);
-		return -1;
-	}
-		
-	hostent2su(to, he, 0, port);
-	return 1;
-}
-
-
-
-/* removes first via & sends msg to the second */
-int forward_reply(struct sip_msg* msg)
-{
-	char* new_buf;
-	union sockaddr_union* to;
-	unsigned int new_len;
-	struct sr_module *mod;
-	int proto;
-	unsigned int id; /* used only by tcp*/
-#ifdef USE_TCP
-	char* s;
-	int len;
-#endif
-	
-	to=0;
-	id=0;
-	new_buf=0;
-	/*check if first via host = us */
-	if (check_via){
-		if (check_self(&msg->via1->host,
-					msg->via1->port?msg->via1->port:SIP_PORT,
-					msg->via1->proto)!=1){
-			LOG(L_NOTICE, "ERROR: forward_reply: host in first via!=me :"
-					" %.*s:%d\n", msg->via1->host.len, msg->via1->host.s,
-									msg->via1->port);
-			/* send error msg back? */
-			goto error;
-		}
-	}
-	/* quick hack, slower for multiple modules*/
-	for (mod=modules;mod;mod=mod->next){
-		if ((mod->exports) && (mod->exports->response_f)){
-			DBG("forward_reply: found module %s, passing reply to it\n",
-					mod->exports->name);
-			if (mod->exports->response_f(msg)==0) goto skip;
-		}
-	}
-
-	/* we have to forward the reply stateless, so we need second via -bogdan*/
-	if (parse_headers( msg, HDR_VIA2, 0 )==-1 
-		|| (msg->via2==0) || (msg->via2->error!=PARSE_OK))
-	{
-		/* no second via => error */
-		LOG(L_ERR, "ERROR: forward_reply: no 2nd via found in reply\n");
-		goto error;
-	}
-
-	to=(union sockaddr_union*)pkg_malloc(sizeof(union sockaddr_union));
-	if (to==0){
-		LOG(L_ERR, "ERROR: forward_reply: out of memory\n");
-		goto error;
-	}
-
-	new_buf = build_res_buf_from_sip_res( msg, &new_len);
-	if (!new_buf){
-		LOG(L_ERR, "ERROR: forward_reply: building failed\n");
-		goto error;
-	}
-
-	proto=msg->via2->proto;
-	if (update_sock_struct_from_via( to, msg, msg->via2 )==-1) goto error;
-
-
-#ifdef USE_TCP
-	if (proto==PROTO_TCP
-#ifdef USE_TLS
-			|| proto==PROTO_TLS
-#endif
-			){
-		/* find id in i param if it exists */
-		if (msg->via1->i&&msg->via1->i->value.s){
-			s=msg->via1->i->value.s;
-			len=msg->via1->i->value.len;
-			DBG("forward_reply: i=%.*s\n",len, ZSW(s));
-			if (reverse_hex2int(s, len, &id)<0){
-				LOG(L_ERR, "ERROR: forward_reply: bad via i param \"%.*s\"\n",
-						len, ZSW(s));
-					id=0;
-			}
-			DBG("forward_reply: id= %x\n", id);
-		}		
-				
-	} 
-#endif
-	if (msg_send(0, proto, to, (int)id, new_buf, new_len)<0) goto error;
-#ifdef STATS
-	STATS_TX_RESPONSE(  (msg->first_line.u.reply.statuscode/100) );
-#endif
-
-	DBG(" reply forwarded to %.*s:%d\n", 
-			msg->via2->host.len, msg->via2->host.s,
-			(unsigned short) msg->via2->port);
-
-	pkg_free(new_buf);
-	pkg_free(to);
-skip:
-	return 0;
-error:
-	if (new_buf) pkg_free(new_buf);
-	if (to) pkg_free(to);
-	return -1;
-}

Deleted: ser/trunk/forward.h
===================================================================
--- ser/trunk/forward.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/forward.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,144 +0,0 @@
-/*
- *  $Id: forward.h,v 1.26 2004/11/22 22:51:17 andrei Exp $
- *
- * 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 at 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
- */
-/*
- * History:
- * -------
- *  2001-??-?? created by andrei
- *  ????-??-?? lots of changes by a lot of people
- *  2003-02-11 added inline msg_send (andrei)
- *  2003-04-07 changed all ports to host byte order (andrei)
- *  2003-04-12  FORCE_RPORT_T added (andrei)
- *  2003-04-15  added tcp_disable support (andrei)
- */
-
-
-
-#ifndef forward_h
-#define forward_h
-
-#include "globals.h"
-#include "parser/msg_parser.h"
-#include "route.h"
-#include "proxy.h"
-#include "ip_addr.h"
-
-#include "stats.h"
-#include "udp_server.h"
-#ifdef USE_TCP
-#include "tcp_server.h"
-#endif
-
-
-
-struct socket_info* get_send_socket(struct sip_msg* msg,
-									union sockaddr_union* su, int proto);
-struct socket_info* get_out_socket(union sockaddr_union* to, int proto);
-int check_self(str* host, unsigned short port, unsigned short proto);
-int forward_request( struct sip_msg* msg,  struct proxy_l* p, int proto);
-int update_sock_struct_from_via( union sockaddr_union* to,
-								 struct sip_msg* msg,
-								 struct via_body* via );
-
-/* use src_ip, port=src_port if rport, via port if via port, 5060 otherwise */
-#define update_sock_struct_from_ip(  to, msg ) \
-	init_su((to), &(msg)->rcv.src_ip, \
-			(((msg)->via1->rport)||((msg)->msg_flags&FL_FORCE_RPORT))? \
-							(msg)->rcv.src_port: \
-							((msg)->via1->port)?(msg)->via1->port: SIP_PORT )
-
-int forward_reply( struct sip_msg* msg);
-
-
-
-/* params:
- *  send_sock= 0 if already known (e.g. for udp in some cases), non-0 otherwise
- *  proto=TCP|UDP
- *  to = destination,
- *  id - only used on tcp, it will force sending on connection "id" if id!=0 
- *       and the connection exists, else it will send to "to" 
- *       (useful for sending replies on  the same connection as the request
- *       that generated them; use 0 if you don't want this)
- * returns: 0 if ok, -1 on error*/
-static inline int msg_send(	struct socket_info* send_sock, int proto,
-							union sockaddr_union* to, int id,
-							char* buf, int len)
-{
-	
-	if (proto==PROTO_UDP){
-		if (send_sock==0) send_sock=get_send_socket(0, to, proto);
-		if (send_sock==0){
-			LOG(L_ERR, "msg_send: ERROR: no sending socket found\n");
-			goto error;
-		}
-		if (udp_send(send_sock, buf, len, to)==-1){
-			STATS_TX_DROPS;
-			LOG(L_ERR, "msg_send: ERROR: udp_send failed\n");
-			goto error;
-		}
-	}
-#ifdef USE_TCP
-	else if (proto==PROTO_TCP){
-		if (tcp_disable){
-			STATS_TX_DROPS;
-			LOG(L_WARN, "msg_send: WARNING: attempt to send on tcp and tcp"
-					" support is disabled\n");
-			goto error;
-		}else{
-			if (tcp_send(proto, buf, len, to, id)<0){
-				STATS_TX_DROPS;
-				LOG(L_ERR, "msg_send: ERROR: tcp_send failed\n");
-				goto error;
-			}
-		}
-	}
-#ifdef USE_TLS
-	else if (proto==PROTO_TLS){
-		if (tls_disable){
-			STATS_TX_DROPS;
-			LOG(L_WARN, "msg_send: WARNING: attempt to send on tls and tls"
-					" support is disabled\n");
-			goto error;
-		}else{
-			if (tcp_send(proto, buf, len, to, id)<0){
-				STATS_TX_DROPS;
-				LOG(L_ERR, "msg_send: ERROR: tcp_send failed\n");
-				goto error;
-			}
-		}
-	}
-#endif /* USE_TLS */
-#endif /* USE_TCP */
-	else{
-			LOG(L_CRIT, "BUG: msg_send: unknown proto %d\n", proto);
-			goto error;
-	}
-	return 0;
-error:
-	return -1;
-}
-
-#endif

Deleted: ser/trunk/globals.h
===================================================================
--- ser/trunk/globals.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/globals.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,163 +0,0 @@
-/*
- * $Id: globals.h,v 1.52 2004/11/10 21:51:24 andrei Exp $
- *
- * global variables
- *
- *
- * 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 at 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
- */
-
-
-
-#ifndef globals_h
-#define globals_h
-
-#include "types.h"
-#include "ip_addr.h"
-#include "str.h"
-
-#define NO_DNS     0
-#define DO_DNS     1
-#define DO_REV_DNS 2
-
-
-
-extern char * cfg_file;
-extern int config_check;
-extern char *stat_file;
-extern unsigned short port_no;
-
-extern int uid;
-extern int gid;
-char* pid_file;
-char* pgid_file;
-extern int own_pgid; /* whether or not we have our own pgid (and it's ok
->--->--->--->--->--->--->--->--->--->--->--- to use kill(0, sig) */
-
-extern struct socket_info* bind_address; /* pointer to the crt. proc.
-											listening address */
-extern struct socket_info* sendipv4; /* ipv4 socket to use when msg.
-										comes from ipv6*/
-extern struct socket_info* sendipv6; /* same as above for ipv6 */
-#ifdef USE_TCP
-extern struct socket_info* sendipv4_tcp; /* ipv4 socket to use when msg.
-										comes from ipv6*/
-extern struct socket_info* sendipv6_tcp; /* same as above for ipv6 */
-extern int unix_tcp_sock; /* socket used for communication with tcp main*/
-#endif
-#ifdef USE_TLS
-extern struct socket_info* sendipv4_tls; /* ipv4 socket to use when msg.
-										comes from ipv6*/
-extern struct socket_info* sendipv6_tls; /* same as above for ipv6 */
-#endif
-
-extern unsigned int maxbuffer;
-extern int children_no;
-#ifdef USE_TCP
-extern int tcp_children_no;
-extern int tcp_disable;
-extern int tcp_accept_aliases;
-extern int tcp_connect_timeout;
-extern int tcp_send_timeout;
-#endif
-#ifdef USE_TLS
-extern int tls_disable;
-extern unsigned short tls_port_no;
-#endif
-extern int dont_fork;
-extern int check_via;
-extern int received_dns;
-extern int syn_branch;
-/* extern int process_no; */
-extern int sip_warning;
-extern int server_signature;
-extern char* user;
-extern char* group;
-extern char* sock_user;
-extern char* sock_group;
-extern int sock_uid;
-extern int sock_gid;
-extern int sock_mode;
-extern char* chroot_dir;
-extern char* working_dir;
-
-#ifdef USE_MCAST
-extern int mcast_loopback;
-extern int mcast_ttl;
-#endif /* USE_MCAST */
-
-/*
- * debug & log_stderr moved to dprint.h*/
-
-/* extern process_bm_t process_bit; */
-/* extern int *pids; -moved to pt.h */
-
-extern int cfg_errors;
-extern unsigned int msg_no;
-
-extern unsigned long shm_mem_size;
-
-/* FIFO server config */
-char extern *fifo; /* FIFO name */
-extern int fifo_mode;
-char extern *fifo_dir; /* dir. where  reply fifos are allowed */
-extern char *fifo_db_url;  /* db url used by db_fifo interface */
-
-/* UNIX domain socket configuration */
-extern char *unixsock_name;   /* The name of the socket */
-extern int unixsock_children; /* The number of listening children */
-extern int unixsock_tx_timeout; /* Timeout (in ms) used when sending data */
-
-/* AVP configuration */
-extern char *avp_db_url;  /* db url used by user preferences (AVPs) */
-
-/* moved to pt.h
-extern int *pids;
-extern int process_no;
-*/
-
-extern int reply_to_via;
-
-extern int is_main;
-
-/* debugging level for dumping memory status */
-extern int memlog;
-
-/* looking up outbound interface ? */
-extern int mhomed;
-
-/* command-line arguments */
-extern int my_argc;
-extern char **my_argv;
-
-/* pre-set addresses */
-extern str default_global_address;
-/* pre-ser ports */
-extern str default_global_port;
-
-/* core dump and file limits */
-extern int disable_core_dump;
-extern int open_files_limit;
-
-#endif

Deleted: ser/trunk/hash_func.c
===================================================================
--- ser/trunk/hash_func.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/hash_func.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,170 +0,0 @@
-/*
- * $Id: hash_func.c,v 1.7 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-
-#ifndef _CRC_H_
-#define _CRC_H_
-
-extern unsigned long int crc_32_tab[];
-extern unsigned short int ccitt_tab[];
-extern unsigned short int crc_16_tab[];
-
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "hash_func.h"
-#include "dprint.h"
-#include "crc.h"
-#include "ut.h"
-
-
-int new_hash( str call_id, str cseq_nr )
-{
-	int hash_code = 0;
-	int i,j, k, third;
-	int ci_len, cs_len;
-	char *ci, *cs;
-
-	/* trim EoLs */
-/*
-	ci_len = call_id.len;
-	while (ci_len && ((c=call_id.s[ci_len-1])==0 || c=='\r' || c=='\n'))
-		ci_len--;
-	cs_len = cseq_nr.len;
-	while (cs_len && ((c=cseq_nr.s[cs_len-1])==0 || c=='\r' || c=='\n'))
-		cs_len--;
-*/
-	trim_len( ci_len, ci, call_id );
-	trim_len( cs_len, cs, cseq_nr );
-
-	/* run the cycle from the end ... we are interested in the
-	   most-right digits ... and just take the %10 value of it
-	*/
-	third=(ci_len-1)/3;
-	for ( i=ci_len-1, j=2*third, k=third;
-		k>0 ; i--, j--, k-- ) {
-		hash_code+=crc_16_tab[(unsigned char)(*(ci+i)) /*+7*/ ]+
-			ccitt_tab[*(ci+k)+63]+
-			ccitt_tab[*(ci+j)+13];
-	}
-	for( i=0 ; i<cs_len ; i++ )
-		//hash_code+=crc_32_tab[(cseq_nr.s[i]+hash_code)%243];
-		hash_code+=ccitt_tab[*(cs+i)+123];
-
-	/* hash_code conditioning */
-#ifdef _BUG
-	/* not flat ... % 111b has shorter period than
-       & 111b by one and results in different distribution;
-	   ( 7 % 7 == 0, 7 %7 == 1 )
- 	   % is used as a part of the hash function too, not only
-	   for rounding; & is not flat; whoever comes up with
-	   a nicer flat hash function which does not take
-	   costly division is welcome; feel free to verify
-	   distribution using hashtest()
-    */
-	hash_code &= (TABLE_ENTRIES-1); /* TABLE_ENTRIES = 2^k */
-#endif
-	hash_code=hash_code%(TABLE_ENTRIES-1)+1;
-   	return hash_code;
-}
-
-
-
-int new_hash2( str call_id, str cseq_nr )
-{
-#define h_inc h+=v^(v>>3)
-	char* p;
-	register unsigned v;
-	register unsigned h;
-	
-	h=0;
-	
-	
-	for (p=call_id.s; p<=(call_id.s+call_id.len-4); p+=4){
-		v=(*p<<24)+(p[1]<<16)+(p[2]<<8)+p[3];
-		h_inc;
-	}
-	v=0;
-	for (;p<(call_id.s+call_id.len); p++){ v<<=8; v+=*p;}
-	h_inc;
-	
-	for (p=cseq_nr.s; p<=(cseq_nr.s+cseq_nr.len-4); p+=4){
-		v=(*p<<24)+(p[1]<<16)+(p[2]<<8)+p[3];
-		h_inc;
-	}
-	v=0;
-	for (;p<(cseq_nr.s+cseq_nr.len); p++){ v<<=8; v+=*p;}
-	h_inc;
-	
-	h=((h)+(h>>11))+((h>>13)+(h>>23));
-	return (h)&(TABLE_ENTRIES-1);
-}
-
-
-
-void hashtest_cycle( int hits[TABLE_ENTRIES+5], char *ip )
-{
-	long int i,j,k, l;
-	int  hashv;
-	static char buf1[1024];
-	static char buf2[1024];
-	str call_id; 
-	str cseq;
-
-	call_id.s=buf1;
-	cseq.s=buf2;
-
-	for (i=987654328;i<987654328+10;i++)
-		for (j=85296341;j<85296341+10;j++)
-			for (k=987654;k<=987654+10;k++)
-				for (l=101;l<201;l++) {
-					call_id.len=sprintf( buf1, "%d-%d-%d@%s",(int)i,(int)j,
-						(int)k, ip );
-					cseq.len=sprintf( buf2, "%d", (int)l );
-					/* printf("%s\t%s\n", buf1, buf2 ); */
-					hashv=hash( call_id, cseq );
-					hits[ hashv ]++;
-				}
-}
-
-void hashtest()
-{
-	int hits[TABLE_ENTRIES+5];
-	int i;
-
-	memset( hits, 0, sizeof hits );
-	hashtest_cycle( hits, "192.168.99.100" );
-	hashtest_cycle( hits, "172.168.99.100" );
-	hashtest_cycle( hits, "142.168.99.100" );
-	for (i=0; i<TABLE_ENTRIES+5; i++)
-		printf("[%d. %d]\n", i, hits[i] );
-	exit(0);
-}
-

Deleted: ser/trunk/hash_func.h
===================================================================
--- ser/trunk/hash_func.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/hash_func.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,45 +0,0 @@
-/*
- * $Id: hash_func.h,v 1.7 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-
-#ifndef _HASH_H
-#define _HASH_H
-
-#include "str.h"
-
-/* always use a power of 2 for hash table size */
-#define T_TABLE_POWER    16 
-#define TABLE_ENTRIES    (1 << (T_TABLE_POWER))
-
-int new_hash( str  call_id, str cseq_nr );
-int new_hash2( str  call_id, str cseq_nr );
-
-
-#define hash( cid, cseq) new_hash2( cid, cseq )
-
-#endif

Deleted: ser/trunk/ip_addr.c
===================================================================
--- ser/trunk/ip_addr.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ip_addr.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,197 +0,0 @@
-/*
- * $Id: ip_addr.c,v 1.9 2004/10/01 17:19:19 andrei Exp $
- *
- *
- * ip address & address family related functions
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free
- *  2004-10-01  mk_net fixes bad network addresses now (andrei)
- */
-
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "ip_addr.h"
-#include "dprint.h"
-#include "mem/mem.h"
-
-
-struct net* mk_net(struct ip_addr* ip, struct ip_addr* mask)
-{
-	struct net* n;
-	int warning;
-	int r;
-	
-	warning=0;
-	if ((ip->af != mask->af) || (ip->len != mask->len)){
-		LOG(L_CRIT, "ERROR: mk_net: trying to use a different mask family"
-				" (eg. ipv4/ipv6mask or ipv6/ipv4mask)\n");
-		goto error;
-	}
-	n=(struct net*)pkg_malloc(sizeof(struct net));
-	if (n==0){ 
-		LOG(L_CRIT, "ERROR: mk_net: memory allocation failure\n");
-		goto error;
-	}
-	n->ip=*ip;
-	n->mask=*mask;
-	for (r=0; r<n->ip.len/4; r++) { /*ipv4 & ipv6 addresses are multiple of 4*/
-		n->ip.u.addr32[r] &= n->mask.u.addr32[r];
-		if (n->ip.u.addr32[r]!=ip->u.addr32[r]) warning=1;
-	};
-	if (warning){
-		LOG(L_WARN, "WARNING: mk_net: invalid network address/netmask "
-					"combination fixed...\n");
-		print_ip("original network address:", ip, "/");
-		print_ip("", mask, "\n");
-		print_ip("fixed    network address:", &(n->ip), "/");
-		print_ip("", &(n->mask), "\n");
-	};
-	return n;
-error:
-	return 0;
-}
-
-
-
-struct net* mk_net_bitlen(struct ip_addr* ip, unsigned int bitlen)
-{
-	struct ip_addr mask;
-	int r;
-	
-	if (bitlen>ip->len*8){
-		LOG(L_CRIT, "ERROR: mk_net_bitlen: bad bitlen number %d\n", bitlen);
-		goto error;
-	}
-	memset(&mask,0, sizeof(mask));
-	for (r=0;r<bitlen/8;r++) mask.u.addr[r]=0xff;
-	if (bitlen%8) mask.u.addr[r]=  ~((1<<(8-(bitlen%8)))-1);
-	mask.af=ip->af;
-	mask.len=ip->len;
-	
-	return mk_net(ip, &mask);
-error:
-	return 0;
-}
-
-
-
-void print_ip(char* p, struct ip_addr* ip, char *s)
-{
-	switch(ip->af){
-		case AF_INET:
-			DBG("%s%d.%d.%d.%d%s", (p)?p:"",
-								ip->u.addr[0],
-								ip->u.addr[1],
-								ip->u.addr[2],
-								ip->u.addr[3],
-								(s)?s:""
-								);
-			break;
-		case AF_INET6:
-			DBG("%s%x:%x:%x:%x:%x:%x:%x:%x%s", (p)?p:"",
-											htons(ip->u.addr16[0]),
-											htons(ip->u.addr16[1]),
-											htons(ip->u.addr16[2]),
-											htons(ip->u.addr16[3]),
-											htons(ip->u.addr16[4]),
-											htons(ip->u.addr16[5]),
-											htons(ip->u.addr16[6]),
-											htons(ip->u.addr16[7]),
-											(s)?s:""
-				);
-			break;
-		default:
-			DBG("print_ip: warning unknown address family %d\n", ip->af);
-	}
-}
-
-
-
-void stdout_print_ip(struct ip_addr* ip)
-{
-	switch(ip->af){
-		case AF_INET:
-			printf("%d.%d.%d.%d",	ip->u.addr[0],
-								ip->u.addr[1],
-								ip->u.addr[2],
-								ip->u.addr[3]);
-			break;
-		case AF_INET6:
-			printf("%x:%x:%x:%x:%x:%x:%x:%x",	htons(ip->u.addr16[0]),
-											htons(ip->u.addr16[1]),
-											htons(ip->u.addr16[2]),
-											htons(ip->u.addr16[3]),
-											htons(ip->u.addr16[4]),
-											htons(ip->u.addr16[5]),
-											htons(ip->u.addr16[6]),
-											htons(ip->u.addr16[7])
-				);
-			break;
-		default:
-			DBG("print_ip: warning unknown address family %d\n", ip->af);
-	}
-}
-
-
-
-void print_net(struct net* net)
-{
-	if (net==0){
-		LOG(L_WARN, "ERROR: print net: null pointer\n");
-		return;
-	}
-	print_ip("", &net->ip, "/"); print_ip("", &net->mask, "");
-}
-
-
-#ifdef USE_MCAST
-
-/* Returns 1 if the given address is a multicast address */
-int is_mcast(struct ip_addr* ip)
-{
-	if (!ip){
-		LOG(L_ERR, "ERROR: is_mcast: Invalid parameter value\n");
-		return -1;
-	}
-
-	if (ip->af==AF_INET){
-		return IN_MULTICAST(htonl(ip->u.addr32[0]));
-#ifdef USE_IPV6
-	} else if (ip->af==AF_INET6){
-		return IN6_IS_ADDR_MULTICAST((struct in6_addr *)ip->u.addr);
-#endif /* USE_IPV6 */
-	} else {
-		LOG(L_ERR, "ERROR: is_mcast: Unsupported protocol family\n");
-		return -1;
-	}
-}
-
-#endif /* USE_MCAST */

Deleted: ser/trunk/ip_addr.h
===================================================================
--- ser/trunk/ip_addr.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ip_addr.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,550 +0,0 @@
-/* $Id: ip_addr.h,v 1.35 2004/11/30 16:28:23 andrei Exp $
- *
- * ip address family related structures
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2003-02-13  added struct dest_info (andrei)
- *  2003-04-06  all ports are stored/passed in host byte order now (andrei)
- */
-
-#ifndef ip_addr_h
-#define ip_addr_h
-
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include "str.h"
-
-
-#include "dprint.h"
-
-enum sip_protos { PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };
-
-
-struct ip_addr{
-	unsigned int af; /* address family: AF_INET6 or AF_INET */
-	unsigned int len;    /* address len, 16 or 4 */
-	
-	/* 64 bits aligned address */
-	union {
-		unsigned long  addrl[16/sizeof(long)]; /* long format*/
-		unsigned int   addr32[4];
-		unsigned short addr16[8];
-		unsigned char  addr[16];
-	}u;
-};
-
-
-
-struct net{
-	struct ip_addr ip;
-	struct ip_addr mask;
-};
-
-union sockaddr_union{
-		struct sockaddr     s;
-		struct sockaddr_in  sin;
-	#ifdef USE_IPV6
-		struct sockaddr_in6 sin6;
-	#endif
-};
-
-
-
-enum si_flags { SI_NONE=0, SI_IS_IP=1, SI_IS_LO=2, SI_IS_MCAST=4 };
-
-struct socket_info{
-	int socket;
-	str name; /* name - eg.: foo.bar or 10.0.0.1 */
-	struct ip_addr address; /* ip address */
-	str address_str;        /* ip address converted to string -- optimization*/
-	unsigned short port_no;  /* port number */
-	str port_no_str; /* port number converted to string -- optimization*/
-	enum si_flags flags; /* SI_IS_IP | SI_IS_LO | SI_IS_MCAST */
-	union sockaddr_union su; 
-	int proto; /* tcp or udp*/
-	struct socket_info* next;
-	struct socket_info* prev;
-};
-
-
-struct receive_info{
-	struct ip_addr src_ip;
-	struct ip_addr dst_ip;
-	unsigned short src_port; /* host byte order */
-	unsigned short dst_port; /* host byte order */
-	int proto;
-	int proto_reserved1; /* tcp stores the connection id here */
-	int proto_reserved2;
-	union sockaddr_union src_su; /* useful for replies*/
-	struct socket_info* bind_address; /* sock_info structure on which 
-									  the msg was received*/
-	/* no need for dst_su yet */
-};
-
-
-struct dest_info{
-	int proto;
-	int proto_reserved1; /* tcp stores the connection id here */ 
-	union sockaddr_union to;
-	struct socket_info* send_sock;
-};
-
-
-struct socket_id{
-	char* name;
-	int proto;
-	int port;
-	struct socket_id* next;
-};
-
-
-
-/* len of the sockaddr */
-#ifdef HAVE_SOCKADDR_SA_LEN
-#define sockaddru_len(su)	((su).s.sa_len)
-#else
-#ifdef USE_IPV6
-#define sockaddru_len(su)	\
-			(((su).s.sa_family==AF_INET6)?sizeof(struct sockaddr_in6):\
-					sizeof(struct sockaddr_in))
-#else
-#define sockaddru_len(su)	sizeof(struct sockaddr_in)
-#endif /*USE_IPV6*/
-#endif /* HAVE_SOCKADDR_SA_LEN*/
-	
-/* inits an ip_addr with the addr. info from a hostent structure
- * ip = struct ip_addr*
- * he= struct hostent*
- */
-#define hostent2ip_addr(ip, he, addr_no) \
-	do{ \
-		(ip)->af=(he)->h_addrtype; \
-		(ip)->len=(he)->h_length;  \
-		memcpy((ip)->u.addr, (he)->h_addr_list[(addr_no)], (ip)->len); \
-	}while(0)
-	
-
-
-
-/* gets the protocol family corresponding to a specific address family
- * ( PF_INET - AF_INET, PF_INET6 - AF_INET6, af for others)
- */
-#ifdef USE_IPV6
-#define AF2PF(af)   (((af)==AF_INET)?PF_INET:((af)==AF_INET6)?PF_INET6:(af))
-#else
-#define AF2PF(af)   (((af)==AF_INET)?PF_INET:(af))
-#endif
-
-
-
-
-struct net* mk_net(struct ip_addr* ip, struct ip_addr* mask);
-struct net* mk_net_bitlen(struct ip_addr* ip, unsigned int bitlen);
-
-void print_ip(char* prefix, struct ip_addr* ip, char* suffix);
-void stdout_print_ip(struct ip_addr* ip);
-void print_net(struct net* net);
-
-#ifdef USE_MCAST
-/* Returns 1 if the given address is a multicast address */
-int is_mcast(struct ip_addr* ip);
-#endif /* USE_MCAST */
-
-/* returns 1 if ip & net.mask == net.ip ; 0 otherwise & -1 on error 
-	[ diff. address families ]) */
-inline static int matchnet(struct ip_addr* ip, struct net* net)
-{
-	unsigned int r;
-	int ret;
-	
-	ret=-1;
-	if (ip->af == net->ip.af){
-		for(r=0; r<ip->len/4; r++){ /* ipv4 & ipv6 addresses are
-									   all multiple of 4*/
-			if ((ip->u.addr32[r]&net->mask.u.addr32[r])!=
-														 net->ip.u.addr32[r]){
-				return 0;
-			}
-		}
-		return 1;
-	};
-	return -1;
-}
-
-
-
-
-/* inits an ip_addr pointer from a sockaddr structure*/
-static inline void sockaddr2ip_addr(struct ip_addr* ip, struct sockaddr* sa)
-{
-	switch(sa->sa_family){
-	case AF_INET:
-			ip->af=AF_INET;
-			ip->len=4;
-			memcpy(ip->u.addr, &((struct sockaddr_in*)sa)->sin_addr, 4);
-			break;
-#ifdef USE_IPV6
-	case AF_INET6:
-			ip->af=AF_INET6;
-			ip->len=16;
-			memcpy(ip->u.addr, &((struct sockaddr_in6*)sa)->sin6_addr, 16);
-			break;
-#endif
-	default:
-			LOG(L_CRIT, "sockaddr2ip_addr: BUG: unknown address family %d\n",
-					sa->sa_family);
-	}
-}
-
-
-
-/* compare 2 ip_addrs (both args are pointers)*/
-#define ip_addr_cmp(ip1, ip2) \
-	(((ip1)->af==(ip2)->af)&& \
-	 	(memcmp((ip1)->u.addr, (ip2)->u.addr, (ip1)->len)==0))
-
-
-
-/* compare 2 sockaddr_unions */
-static inline int su_cmp(union sockaddr_union* s1, union sockaddr_union* s2)
-{
-	if (s1->s.sa_family!=s2->s.sa_family) return 0;
-	switch(s1->s.sa_family){
-		case AF_INET:
-			return (s1->sin.sin_port==s2->sin.sin_port)&&
-					(memcmp(&s1->sin.sin_addr, &s2->sin.sin_addr, 4)==0);
-#ifdef USE_IPV6
-		case AF_INET6:
-			return (s1->sin6.sin6_port==s2->sin6.sin6_port)&&
-					(memcmp(&s1->sin6.sin6_addr, &s2->sin6.sin6_addr, 16)==0);
-#endif
-		default:
-			LOG(L_CRIT,"su_cmp: BUG: unknown address family %d\n",
-						s1->s.sa_family);
-			return 0;
-	}
-}
-
-
-
-/* gets the port number (host byte order) */
-static inline unsigned short su_getport(union sockaddr_union* su)
-{
-	switch(su->s.sa_family){
-		case AF_INET:
-			return ntohs(su->sin.sin_port);
-#ifdef USE_IPV6
-		case AF_INET6:
-			return ntohs(su->sin6.sin6_port);
-#endif
-		default:
-			LOG(L_CRIT,"su_get_port: BUG: unknown address family %d\n",
-						su->s.sa_family);
-			return 0;
-	}
-}
-
-
-
-/* sets the port number (host byte order) */
-static inline void su_setport(union sockaddr_union* su, unsigned short port)
-{
-	switch(su->s.sa_family){
-		case AF_INET:
-			su->sin.sin_port=htons(port);
-			break;
-#ifdef USE_IPV6
-		case AF_INET6:
-			 su->sin6.sin6_port=htons(port);
-			 break;
-#endif
-		default:
-			LOG(L_CRIT,"su_set_port: BUG: unknown address family %d\n",
-						su->s.sa_family);
-	}
-}
-
-
-
-/* inits an ip_addr pointer from a sockaddr_union ip address */
-static inline void su2ip_addr(struct ip_addr* ip, union sockaddr_union* su)
-{
-	switch(su->s.sa_family){
-	case AF_INET: 
-					ip->af=AF_INET;
-					ip->len=4;
-					memcpy(ip->u.addr, &su->sin.sin_addr, 4);
-					break;
-#ifdef USE_IPV6
-	case AF_INET6:
-					ip->af=AF_INET6;
-					ip->len=16;
-					memcpy(ip->u.addr, &su->sin6.sin6_addr, 16);
-					break;
-#endif
-	default:
-					LOG(L_CRIT,"su2ip_addr: BUG: unknown address family %d\n",
-							su->s.sa_family);
-	}
-}
-
-
-/* ip_addr2su -> the same as init_su*/
-#define ip_addr2su init_su
-
-/* inits a struct sockaddr_union from a struct ip_addr and a port no 
- * returns 0 if ok, -1 on error (unknown address family)
- * the port number is in host byte order */
-static inline int init_su( union sockaddr_union* su,
-							struct ip_addr* ip,
-							unsigned short   port ) 
-{
-	memset(su, 0, sizeof(union sockaddr_union));/*needed on freebsd*/
-	su->s.sa_family=ip->af;
-	switch(ip->af){
-#ifdef USE_IPV6
-	case	AF_INET6:
-		memcpy(&su->sin6.sin6_addr, ip->u.addr, ip->len); 
-		#ifdef HAVE_SOCKADDR_SA_LEN
-			su->sin6.sin6_len=sizeof(struct sockaddr_in6);
-		#endif
-		su->sin6.sin6_port=htons(port);
-		break;
-#endif
-	case AF_INET:
-		memcpy(&su->sin.sin_addr, ip->u.addr, ip->len);
-		#ifdef HAVE_SOCKADDR_SA_LEN
-			su->sin.sin_len=sizeof(struct sockaddr_in);
-		#endif
-		su->sin.sin_port=htons(port);
-		break;
-	default:
-		LOG(L_CRIT, "init_ss: BUG: unknown address family %d\n", ip->af);
-		return -1;
-	}
-	return 0;
-}
-
-
-
-/* inits a struct sockaddr_union from a struct hostent, an address index in
- * the hostent structure and a port no. (host byte order)
- * WARNING: no index overflow  checks!
- * returns 0 if ok, -1 on error (unknown address family) */
-static inline int hostent2su( union sockaddr_union* su,
-								struct hostent* he,
-								unsigned int idx,
-								unsigned short   port ) 
-{
-	memset(su, 0, sizeof(union sockaddr_union)); /*needed on freebsd*/
-	su->s.sa_family=he->h_addrtype;
-	switch(he->h_addrtype){
-#ifdef USE_IPV6
-	case	AF_INET6:
-		memcpy(&su->sin6.sin6_addr, he->h_addr_list[idx], he->h_length);
-		#ifdef HAVE_SOCKADDR_SA_LEN
-			su->sin6.sin6_len=sizeof(struct sockaddr_in6);
-		#endif
-		su->sin6.sin6_port=htons(port);
-		break;
-#endif
-	case AF_INET:
-		memcpy(&su->sin.sin_addr, he->h_addr_list[idx], he->h_length);
-		#ifdef HAVE_SOCKADDR_SA_LEN
-			su->sin.sin_len=sizeof(struct sockaddr_in);
-		#endif
-		su->sin.sin_port=htons(port);
-		break;
-	default:
-		LOG(L_CRIT, "hostent2su: BUG: unknown address family %d\n", 
-				he->h_addrtype);
-		return -1;
-	}
-	return 0;
-}
-
-/* maximum size of a str returned by ip_addr2a (including \0) */
-#define IP_ADDR_MAX_STR_SIZE 40 /* 1234:5678:9012:3456:7890:1234:5678:9012\0 */
-/* fast ip_addr -> string converter;
- * it uses an internal buffer
- */
-static inline char* ip_addr2a(struct ip_addr* ip)
-{
-
-	static char buff[IP_ADDR_MAX_STR_SIZE];
-	int offset;
-	register unsigned char a,b,c;
-#ifdef USE_IPV6
-	register unsigned char d;
-	register unsigned short hex4;
-#endif
-	int r;
-	#define HEXDIG(x) (((x)>=10)?(x)-10+'A':(x)+'0')
-	
-	
-	offset=0;
-	switch(ip->af){
-	#ifdef USE_IPV6
-		case AF_INET6:
-			for(r=0;r<7;r++){
-				hex4=ntohs(ip->u.addr16[r]);
-				a=hex4>>12;
-				b=(hex4>>8)&0xf;
-				c=(hex4>>4)&0xf;
-				d=hex4&0xf;
-				if (a){
-					buff[offset]=HEXDIG(a);
-					buff[offset+1]=HEXDIG(b);
-					buff[offset+2]=HEXDIG(c);
-					buff[offset+3]=HEXDIG(d);
-					buff[offset+4]=':';
-					offset+=5;
-				}else if(b){
-					buff[offset]=HEXDIG(b);
-					buff[offset+1]=HEXDIG(c);
-					buff[offset+2]=HEXDIG(d);
-					buff[offset+3]=':';
-					offset+=4;
-				}else if(c){
-					buff[offset]=HEXDIG(c);
-					buff[offset+1]=HEXDIG(d);
-					buff[offset+2]=':';
-					offset+=3;
-				}else{
-					buff[offset]=HEXDIG(d);
-					buff[offset+1]=':';
-					offset+=2;
-				}
-			}
-			/* last int16*/
-			hex4=ntohs(ip->u.addr16[r]);
-			a=hex4>>12;
-			b=(hex4>>8)&0xf;
-			c=(hex4>>4)&0xf;
-			d=hex4&0xf;
-			if (a){
-				buff[offset]=HEXDIG(a);
-				buff[offset+1]=HEXDIG(b);
-				buff[offset+2]=HEXDIG(c);
-				buff[offset+3]=HEXDIG(d);
-				buff[offset+4]=0;
-			}else if(b){
-				buff[offset]=HEXDIG(b);
-				buff[offset+1]=HEXDIG(c);
-				buff[offset+2]=HEXDIG(d);
-				buff[offset+3]=0;
-			}else if(c){
-				buff[offset]=HEXDIG(c);
-				buff[offset+1]=HEXDIG(d);
-				buff[offset+2]=0;
-			}else{
-				buff[offset]=HEXDIG(d);
-				buff[offset+1]=0;
-			}
-			break;
-	#endif
-		case AF_INET:
-			for(r=0;r<3;r++){
-				a=ip->u.addr[r]/100;
-				c=ip->u.addr[r]%10;
-				b=ip->u.addr[r]%100/10;
-				if (a){
-					buff[offset]=a+'0';
-					buff[offset+1]=b+'0';
-					buff[offset+2]=c+'0';
-					buff[offset+3]='.';
-					offset+=4;
-				}else if (b){
-					buff[offset]=b+'0';
-					buff[offset+1]=c+'0';
-					buff[offset+2]='.';
-					offset+=3;
-				}else{
-					buff[offset]=c+'0';
-					buff[offset+1]='.';
-					offset+=2;
-				}
-			}
-			/* last number */
-			a=ip->u.addr[r]/100;
-			c=ip->u.addr[r]%10;
-			b=ip->u.addr[r]%100/10;
-			if (a){
-				buff[offset]=a+'0';
-				buff[offset+1]=b+'0';
-				buff[offset+2]=c+'0';
-				buff[offset+3]=0;
-			}else if (b){
-				buff[offset]=b+'0';
-				buff[offset+1]=c+'0';
-				buff[offset+2]=0;
-			}else{
-				buff[offset]=c+'0';
-				buff[offset+1]=0;
-			}
-			break;
-		
-		default:
-			LOG(L_CRIT, "BUG: ip_addr2a: unknown address family %d\n",
-					ip->af);
-			return 0;
-	}
-	
-	return buff;
-}
-
-
-
-/* converts an ip_addr structure to a hostent, returns pointer to internal
- * statical structure */
-static inline struct hostent* ip_addr2he(str* name, struct ip_addr* ip)
-{
-	static struct hostent he;
-	static char hostname[256];
-	static char* p_aliases[1];
-	static char* p_addr[2];
-	static char address[16];
-	
-	p_aliases[0]=0; /* no aliases*/
-	p_addr[1]=0; /* only one address*/
-	p_addr[0]=address;
-	strncpy(hostname, name->s, (name->len<256)?(name->len)+1:256);
-	if (ip->len>16) return 0;
-	memcpy(address, ip->u.addr, ip->len);
-	
-	he.h_addrtype=ip->af;
-	he.h_length=ip->len;
-	he.h_addr_list=p_addr;
-	he.h_aliases=p_aliases;
-	he.h_name=hostname;
-	return &he;
-}
-#endif

Deleted: ser/trunk/lock_alloc.h
===================================================================
--- ser/trunk/lock_alloc.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/lock_alloc.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,111 +0,0 @@
-/* $Id: lock_alloc.h,v 1.6 2004/08/24 08:45:10 janakj Exp $ */
-/*
- *
- * 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 at 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
- */
-
-/*
- *   ser locking library
- *   WARNING: don't include this directly include instead locking.h!
- * History:
- * --------
- *  2003-03-06  created by andrei (contains parts of the original locking.h)
- *  2003-03-17  fixed cast warning in shm_free (forced to void*) (andrei)
- *  2004-07-28  s/lock_set_t/gen_lock_set_t/ because of a type conflict
- *              on darwin (andrei)
- *
-Implements: (see also locking.h)
-
-	simple locks:
-	-------------
-	gen_lock_t* lock_alloc();                - allocates a lock in shared mem.
-	void    lock_dealloc(gen_lock_t* lock);  - deallocates the lock's shared m.
-	
-	lock sets: [implemented only for FL & SYSV so far]
-	----------
-	gen_lock_set_t* lock_set_alloc(no)               - allocs a lock set in shm.
-	void lock_set_dealloc(gen_lock_set_t* s);        - deallocs the lock set shm.
-
-*/
-
-#ifndef _lock_alloc_h
-#define _lock_alloc_h
-
-/*shm_{malloc, free}*/
-#include "mem/mem.h"
-#ifdef SHM_MEM
-#include "mem/shm_mem.h"
-#else
-#error "locking requires shared memory support"
-#endif
-
-#if defined(FAST_LOCK) || defined(USE_PTHREAD_MUTEX) || defined(USE_POSIX_SEM)
-/* simple locks*/
-#define lock_alloc() shm_malloc(sizeof(gen_lock_t))
-#define lock_dealloc(lock) shm_free((void*)lock)
-/* lock sets */
-
-inline static gen_lock_set_t* lock_set_alloc(int n)
-{
-	gen_lock_set_t* ls;
-	ls=(gen_lock_set_t*)shm_malloc(sizeof(gen_lock_set_t)+n*sizeof(gen_lock_t));
-	if (ls==0){
-		LOG(L_CRIT, "ERROR: lock_set_alloc (FL): could not allocate lock_set\n");
-	}else{
-		ls->locks=(gen_lock_t*)((char*)ls+sizeof(gen_lock_set_t));
-		ls->size=n;
-	}
-	return ls;
-}
-
-#define lock_set_dealloc(lock_set) shm_free((void*)lock_set)
-
-#elif defined USE_SYSV_SEM
-
-/*simple locks*/
-#define lock_alloc() shm_malloc(sizeof(gen_lock_t))
-#define lock_dealloc(lock) shm_free((void*)lock)
-/* lock sets */
-
-inline static gen_lock_set_t* lock_set_alloc(int n)
-{
-	gen_lock_set_t* ls;
-	ls=(gen_lock_set_t*)shm_malloc(sizeof(gen_lock_set_t));
-	if (ls){
-		ls->size=n;
-		ls->semid=-1;
-	};
-	return ls;
-}
-
-
-#define lock_set_dealloc(lock_set) shm_free((void*)lock_set)
-
-
-#else
-#error "no locking method selected"
-#endif
-
-
-#endif

Deleted: ser/trunk/lock_ops.h
===================================================================
--- ser/trunk/lock_ops.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/lock_ops.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,333 +0,0 @@
-/* $Id: lock_ops.h,v 1.7 2004/09/19 20:22:51 andrei Exp $ */
-/*
- *
- * 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 at 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
- */
-
-/*
- *   ser locking library
- *   WARNING: do not include this file directly, use instead locking.h
- *   (unless you don't need to alloc/dealloc locks)
- *
- *  2002-12-16  created by andrei
- *  2003-02-20  s/gen_lock_t/gen_lock_t/ to avoid a type conflict 
- *               on solaris  (andrei)
- *  2003-03-05  lock set support added for FAST_LOCK & SYSV (andrei)
- *  2003-03-06  removed *_alloc,*_dealloc & moved them to lock_alloc.h
- *              renamed locking.h to lock_ops.h (all this to solve
- *              the locking.h<->shm_mem.h interdependency) (andrei)
- *  2003-03-10  lock set support added also for PTHREAD_MUTEX & POSIX_SEM
- *               (andrei)
- *  2003-03-17  possible signal interruptions treated for sysv (andrei)
- *  2004-07-28  s/lock_set_t/gen_lock_set_t/ because of a type conflict
- *              on darwin (andrei)
- *
-Implements:
-
-	simple locks:
-	-------------
-	gen_lock_t* lock_init(gen_lock_t* lock); - inits the lock
-	void    lock_destroy(gen_lock_t* lock);  - removes the lock (e.g sysv rmid)
-	void    lock_get(gen_lock_t* lock);      - lock (mutex down)
-	void    lock_release(gen_lock_t* lock);  - unlock (mutex up)
-	
-	lock sets: [implemented only for FL & SYSV so far]
-	----------
-	gen_lock_set_t* lock_set_init(gen_lock_set_t* set);  - inits the lock set
-	void lock_set_destroy(gen_lock_set_t* s);        - removes the lock set
-	void lock_set_get(gen_lock_set_t* s, int i);     - locks sem i from the set
-	void lock_set_release(gen_lock_set_t* s, int i)  - unlocks sem i from the set
-
-WARNING: - lock_set_init may fail for large number of sems (e.g. sysv). 
-         - signals are not treated! (some locks are "awakened" by the signals)
-*/
-
-#ifndef _lock_ops_h
-#define _lock_ops_h
-
-
-#ifdef FAST_LOCK
-#include "fastlock.h"
-
-typedef fl_lock_t gen_lock_t;
-
-
-#define lock_destroy(lock) /* do nothing */ 
-
-inline static gen_lock_t* lock_init(gen_lock_t* lock)
-{
-	init_lock(*lock);
-	return lock;
-}
-
-#define lock_get(lock) get_lock(lock)
-#define lock_release(lock) release_lock(lock)
-
-#elif defined USE_PTHREAD_MUTEX
-#include <pthread.h>
-
-typedef pthread_mutex_t gen_lock_t;
-
-#define lock_destroy(lock) /* do nothing */ 
-
-inline static gen_lock_t* lock_init(gen_lock_t* lock)
-{
-	if (pthread_mutex_init(lock, 0)==0) return lock;
-	else return 0;
-}
-
-#define lock_get(lock) pthread_mutex_lock(lock)
-#define lock_release(lock) pthread_mutex_unlock(lock)
-
-
-
-#elif defined USE_POSIX_SEM
-#include <semaphore.h>
-
-typedef sem_t gen_lock_t;
-
-#define lock_destroy(lock) /* do nothing */ 
-
-inline static gen_lock_t* lock_init(gen_lock_t* lock)
-{
-	if (sem_init(lock, 1, 1)<0) return 0;
-	return lock;
-}
-
-#define lock_get(lock) sem_wait(lock)
-#define lock_release(lock) sem_post(lock)
-
-
-#elif defined USE_SYSV_SEM
-#include <sys/ipc.h>
-#include <sys/sem.h>
-
-#include <errno.h>
-#include <string.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include "dprint.h"
-#include "globals.h" /* uid */
-
-#if ((defined(HAVE_UNION_SEMUN) || defined(__GNU_LIBRARY__) )&& !defined(_SEM_SEMUN_UNDEFINED)) 
-	
-	/* union semun is defined by including sem.h */
-#else
-	/* according to X/OPEN we have to define it ourselves */
-	union semun {
-		int val;                      /* value for SETVAL */
-		struct semid_ds *buf;         /* buffer for IPC_STAT, IPC_SET */
-		unsigned short int *array;    /* array for GETALL, SETALL */
-		struct seminfo *__buf;        /* buffer for IPC_INFO */
-	};
-#endif
-
-typedef int gen_lock_t;
-
-
-
-
-inline static gen_lock_t* lock_init(gen_lock_t* lock)
-{
-	union semun su;
-	int euid;
-	
-	euid=geteuid();
-	if (uid && uid!=euid)
-		seteuid(uid); /* set euid to the cfg. requested one */
-	*lock=semget(IPC_PRIVATE, 1, 0700);
-	if (uid && uid!=euid)
-		seteuid(euid); /* restore it */
-	if (*lock==-1) return 0;
-	su.val=1;
-	if (semctl(*lock, 0, SETVAL, su)==-1){
-		/* init error*/
-		return 0;
-	}
-	return lock;
-}
-
-inline static void lock_destroy(gen_lock_t* lock)
-{
-	semctl(*lock, 0, IPC_RMID, (union semun)(int)0);
-}
-
-
-inline static void lock_get(gen_lock_t* lock)
-{
-	struct sembuf sop;
-
-	sop.sem_num=0;
-	sop.sem_op=-1; /* down */
-	sop.sem_flg=0; 
-tryagain:
-	if (semop(*lock, &sop, 1)==-1){
-		if (errno==EINTR){
-			DBG("lock_get: signal received while waiting for on a mutex\n");
-			goto tryagain;
-		}else{
-			LOG(L_CRIT, "ERROR: lock_get sysv: %s (%d)\n", strerror(errno),
-						errno);
-		}
-	}
-}
-
-inline static void lock_release(gen_lock_t* lock)
-{
-	struct sembuf sop;
-	
-	sop.sem_num=0;
-	sop.sem_op=1; /* up */
-	sop.sem_flg=0; 
-tryagain:
-	if (semop(*lock, &sop, 1)==-1){
-		if (errno==EINTR){
-			/* very improbable*/
-			DBG("lock_release: signal received while releasing a mutex\n");
-			goto tryagain;
-		}else{
-			LOG(L_CRIT, "ERROR: lock_release sysv: %s (%d)\n",
-					strerror(errno), errno);
-		}
-	}
-}
-
-
-#else
-#error "no locking method selected"
-#endif
-
-
-/* lock sets */
-
-#if defined(FAST_LOCK) || defined(USE_PTHREAD_MUTEX) || defined(USE_POSIX_SEM)
-#define GEN_LOCK_T_PREFERED
-
-struct gen_lock_set_t_ {
-	long size;
-	gen_lock_t* locks;
-}; /* must be  aligned (32 bits or 64 depending on the arch)*/
-typedef struct gen_lock_set_t_ gen_lock_set_t;
-
-
-#define lock_set_destroy(lock_set) /* do nothing */
-
-inline static gen_lock_set_t* lock_set_init(gen_lock_set_t* s)
-{
-	int r;
-	for (r=0; r<s->size; r++) if (lock_init(&s->locks[r])==0) return 0;
-	return s;
-}
-
-/* WARNING: no boundary checks!*/
-#define lock_set_get(set, i) lock_get(&set->locks[i])
-#define lock_set_release(set, i) lock_release(&set->locks[i])
-
-#elif defined(USE_SYSV_SEM)
-#undef GEN_LOCK_T_PREFERED
-
-struct gen_lock_set_t_ {
-	int size;
-	int semid;
-};
-
-
-typedef struct gen_lock_set_t_ gen_lock_set_t;
-inline static gen_lock_set_t* lock_set_init(gen_lock_set_t* s)
-{
-	union semun su;
-	int r;
-	int euid;
-
-	euid=geteuid();
-	if (uid && uid!=euid)
-		seteuid(uid); /* set euid to the cfg. requested one */
-	s->semid=semget(IPC_PRIVATE, s->size, 0700);
-	if (uid && uid!=euid)
-		seteuid(euid); /* restore euid */
-	if (s->semid==-1){
-		LOG(L_CRIT, "ERROR: lock_set_init (SYSV): semget (..., %d, 0700)"
-				" failed: %s\n",
-				s->size, strerror(errno));
-		return 0;
-	}
-	su.val=1;
-	for (r=0; r<s->size; r++){
-		if (semctl(s->semid, r, SETVAL, su)==-1){
-			LOG(L_CRIT, "ERROR: lock_set_init (SYSV): semctl failed on sem %d"
-					": %s\n", r, strerror(errno));
-			semctl(s->semid, 0, IPC_RMID, (union semun)(int)0);
-			return 0;
-		}
-	}
-	return s;
-}
-
-inline static void lock_set_destroy(gen_lock_set_t* s)
-{
-	semctl(s->semid, 0, IPC_RMID, (union semun)(int)0);
-}
-
-inline static void lock_set_get(gen_lock_set_t* s, int n)
-{
-	struct sembuf sop;
-	sop.sem_num=n;
-	sop.sem_op=-1; /* down */
-	sop.sem_flg=0;
-tryagain:
-	if (semop(s->semid, &sop, 1)==-1){
-		if (errno==EINTR){
-			DBG("lock_set_get: signal received while waiting on a mutex\n");
-			goto tryagain;
-		}else{
-			LOG(L_CRIT, "ERROR: lock_set_get sysv: %s (%d)\n",
-					strerror(errno), errno);
-		}
-	}
-}
-
-inline static void lock_set_release(gen_lock_set_t* s, int n)
-{
-	struct sembuf sop;
-	sop.sem_num=n;
-	sop.sem_op=1; /* up */
-	sop.sem_flg=0;
-tryagain:
-	if (semop(s->semid, &sop, 1)==-1){
-		if (errno==EINTR){
-			/* very improbable */
-			DBG("lock_set_release: signal received while releasing mutex\n");
-			goto tryagain;
-		}else{
-			LOG(L_CRIT, "ERROR: lock_set_release sysv: %s (%d)\n",
-					strerror(errno), errno);
-		}
-	}
-}
-#else 
-#error "no lock set method selected"
-#endif
-
-
-#endif

Deleted: ser/trunk/locking.h
===================================================================
--- ser/trunk/locking.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/locking.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,73 +0,0 @@
-/* $Id: locking.h,v 1.10 2004/08/24 08:45:10 janakj Exp $ */
-/*
- *
- * 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 at 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
- */
-
-/*
- *   ser locking library
- *
- *  2002-12-16  created by andrei
- *  2003-02-20  s/gen_lock_t/gen_lock_t/ to avoid a type conflict 
- *               on solaris  (andrei)
- *  2003-03-05  lock set support added for FAST_LOCK & SYSV (andrei)
- *  2003-03-06  split in two: lock_ops.h & lock_alloc.h, to avoid
- *               shm_mem.h<->locking.h interdependency (andrei)
- *  2004-07-28  s/lock_set_t/gen_lock_set_t/ because of a type conflict
- *              on darwin (andrei)
- *
-Implements (in lock_ops.h & lock_alloc.h):
-
-	simple locks:
-	-------------
-	type: gen_lock_t
-	gen_lock_t* lock_alloc();                - allocates a lock in shared mem.
-	gen_lock_t* lock_init(gen_lock_t* lock); - inits the lock
-	void    lock_destroy(gen_lock_t* lock);  - removes the lock (e.g sysv rmid)
-	void    lock_dealloc(gen_lock_t* lock);  - deallocates the lock's shared m.
-	void    lock_get(gen_lock_t* lock);      - lock (mutex down)
-	void    lock_release(gen_lock_t* lock);  - unlock (mutex up)
-	
-	lock sets:
-	----------
-	type: gen_lock_set_t
-	gen_lock_set_t* lock_set_alloc(no)               - allocs a lock set in shm.
-	gen_lock_set_t* lock_set_init(gen_lock_set_t* set);  - inits the lock set
-	void lock_set_destroy(gen_lock_set_t* s);        - removes the lock set
-	void lock_set_dealloc(gen_lock_set_t* s);        - deallocs the lock set shm.
-	void lock_set_get(gen_lock_set_t* s, int i);     - locks sem i from the set
-	void lock_set_release(gen_lock_set_t* s, int i)  - unlocks sem i from the set
-
-WARNING: - lock_set_init may fail for large number of sems (e.g. sysv). 
-         - signals are not treated! (some locks are "awakened" by the signals)
-*/
-
-#ifndef _locking_h
-#define _locking_h
-
-/* the order is important */
-#include "lock_ops.h"
-#include "lock_alloc.h" 
-
-#endif

Deleted: ser/trunk/lump_struct.h
===================================================================
--- ser/trunk/lump_struct.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/lump_struct.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,127 +0,0 @@
-/*
- * $Id: lump_struct.h,v 1.2 2004/08/24 08:45:10 janakj Exp $
- *
- * adding/removing headers or any other data chunk from a message
- *
- * 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 at 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
- */
-/* History:
- * --------
- *  2003-01-29  s/int/enum ... more convenient for gdb (jiri)
- *  2003-03-31  added subst lumps -- they expand in ip addr, port a.s.o (andrei)
- *  2003-04-01  added opt (condition) lumps (andrei)
- *  2003-04-02  added more subst lumps: SUBST_{SND,RCV}_ALL  
- *              => ip:port;transport=proto (andrei)
- *  2003-10-20  split from data_lump.h (andrei)
- *
- */
-
-
-#ifndef lump_struct_h
-#define lump_struct_h
-
-
-
-enum lump_op { LUMP_NOP=0, LUMP_DEL, LUMP_ADD, LUMP_ADD_SUBST, LUMP_ADD_OPT };
-enum lump_subst{ SUBST_NOP=0,                     /* do nothing */
-				 SUBST_RCV_IP,    SUBST_SND_IP,   /* add ip address */
-				 SUBST_RCV_PORT,  SUBST_SND_PORT, /* add port no */
-				 SUBST_RCV_PROTO, SUBST_SND_PROTO,/* add protocol(udp,tcp,tls)*/
-				 SUBST_RCV_ALL,   SUBST_SND_ALL   /*  ip:port;transport=proto */
-				};
-				/* Where:
-				   SND = sending, e.g the src ip of the outgoing message
-				   RCV = received e.g the dst ip of the original incoming msg,
-				    or the ip of the ser socket on which the msg was received
-				   For SUBST_{RCV,SND}_ALL, :port is added only if port!=5060
-				    and transport=proto only if proto!=udp
-					*/
-
-enum lump_conditions {	COND_FALSE,         /* always false */
-						COND_TRUE,          /* always true */
-						COND_IF_DIFF_REALMS,/* true if RCV realm != SND realm */
-						COND_IF_DIFF_AF,    /* true if RCV af != SND af */
-						COND_IF_DIFF_PROTO, /* true if RCV proto != SND proto */
-						COND_IF_DIFF_PORT,  /* true if RCV port != SND port */
-						COND_IF_DIFF_IP,    /* true if RCV ip != SND ip */
-						COND_IF_RAND        /* 50-50 random prob.of being true*/
-						};
-						/* Where: 
-						   REALM= ip_addr:port:proto
-						   af   = address family (ipv4 or ipv6)
-						   proto = protocol (tcp, udp, tls)
-						*/
-
-enum lump_flag { LUMPFLAG_NONE=0, LUMPFLAG_DUPED=1, LUMPFLAG_SHMEM=2 };
-
-
-struct lump{
-	int type; /* VIA, OTHER, UNSPEC(=0), ... */
-	enum lump_op op;   /* DEL, ADD, NOP, UNSPEC(=0) */
-	
-	union{
-		int offset; /* used for DEL, MODIFY */
-		enum lump_subst subst; /*what to subst: ip addr, port, proto*/
-		enum lump_conditions cond; /* condition for LUMP_ADD_OPT */
-		char * value; /* used for ADD */
-	}u;
-	int len; /* length of this header field */
-	
-	
-	struct lump* before; /* list of headers to be inserted in front of the
-								current one */
-	struct lump* after; /* list of headers to be inserted immediately after
-							  the current one */
-	
-	struct lump* next;
-
-	enum lump_flag flags; /* additional hints for use from TM's shmem */
-};
-
-
-/*
- * hdrs must be kept sorted after their offset (DEL, NOP, UNSPEC)
- * and/or their position (ADD). E.g.:
- *  - to delete header Z insert it in to the list according to its offset 
- *   and with op=DELETE
- * - if you want to add a new header X after a  header Y, insert Y in the list
- *   with op NOP and after it X (op ADD).
- * - if you want X before Y, insert X in Y's before list.
- * - if you want X to be the first header just put it first in hdr_lst.
- *  -if you want to replace Y with X, insert Y with op=DELETE and then X with
- *  op=ADD.
- * before and after must contain only ADD ops!
- * 
- * Difference between "after" & "next" when Adding:
- * "after" forces the new header immediately after the current one while
- * "next" means another header can be inserted between them.
- * 
- */
-
-/* frees the content of a lump struct */
-void free_lump(struct lump* l);
-/*frees an entire lump list, recursively */
-void free_lump_list(struct lump* lump_list);
-
-#endif

Deleted: ser/trunk/main.c
===================================================================
--- ser/trunk/main.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/main.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,1607 +0,0 @@
-/*
- * $Id: main.c,v 1.197.2.1 2005/07/25 16:56:24 andrei Exp $
- *
- * 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 at 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
- *
- * History:
- * -------
- *  2002-01-29  argc/argv globalized via my_{argc|argv} (jiri)
- *  2003-01-23  mhomed added (jiri)
- *  2003-03-19  replaced all malloc/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-03-29  pkg cleaners for fifo and script callbacks introduced (jiri)
- *  2003-03-31  removed snmp part (obsolete & no place in core) (andrei)
- *  2003-04-06  child_init called in all processes (janakj)
- *  2003-04-08  init_mallocs split into init_{pkg,shm}_mallocs and 
- *               init_shm_mallocs called after cmd. line parsing (andrei)
- *  2003-04-15  added tcp_disable support (andrei)
- *  2003-05-09  closelog() before openlog to force opening a new fd 
- *               (needed on solaris) (andrei)
- *  2003-06-11  moved all signal handlers init. in install_sigs and moved it
- *               after daemonize (so that we won't catch anymore our own
- *               SIGCHLD generated when becoming session leader) (andrei)
- *              changed is_main default value to 1 (andrei)
- *  2003-06-28  kill_all_children is now used instead of kill(0, sig)
- *                see comment above it for explanations. (andrei)
- *  2003-06-29  replaced port_no_str snprintf w/ int2str (andrei)
- *  2003-10-10  added switch for config check (-c) (andrei)
- *  2003-10-24  converted to the new socket_info lists (andrei)
- *  2004-03-30  core dump is enabled by default
- *              added support for increasing the open files limit    (andrei)
- *  2004-04-28  sock_{user,group,uid,gid,mode} added
- *              user2uid() & user2gid() added  (andrei)
- *  2004-09-11  added timeout on children shutdown and final cleanup
- *               (if it takes more than 60s => something is definitely wrong
- *                => kill all or abort)  (andrei)
- *              force a shm_unlock before cleaning-up, in case we have a
- *               crashed childvwhich still holds the lock  (andrei)
- *  2004-12-02  removed -p, extended -l to support [proto:]address[:port],
- *               added parse_phostport, parse_proto (andrei)
- *  2005-07-25  use sigaction for setting the signal handlers (andrei)
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <ctype.h>
-#include <string.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <sys/utsname.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <pwd.h>
-#include <grp.h>
-#include <signal.h>
-
-#include <sys/ioctl.h>
-#include <net/if.h>
-#ifdef HAVE_SYS_SOCKIO_H
-#include <sys/sockio.h>
-#endif
-
-#include "config.h"
-#include "dprint.h"
-#include "daemonize.h"
-#include "route.h"
-#include "udp_server.h"
-#include "globals.h"
-#include "mem/mem.h"
-#ifdef SHM_MEM
-#include "mem/shm_mem.h"
-#endif
-#include "sr_module.h"
-#include "timer.h"
-#include "parser/msg_parser.h"
-#include "ip_addr.h"
-#include "resolve.h"
-#include "parser/parse_hname2.h"
-#include "parser/digest/digest_parser.h"
-#include "fifo_server.h"
-#include "unixsock_server.h"
-#include "name_alias.h"
-#include "hash_func.h"
-#include "pt.h"
-#include "script_cb.h"
-#include "ut.h"
-#ifdef USE_TCP
-#include "tcp_init.h"
-#ifdef USE_TLS
-#include "tls/tls_init.h"
-#endif
-#endif
-
-
-
-#include "stats.h"
-
-#ifdef DEBUG_DMALLOC
-#include <dmalloc.h>
-#endif
-#include "version.h"
-
-static char id[]="@(#) $Id: main.c,v 1.197.2.1 2005/07/25 16:56:24 andrei Exp $";
-static char* version=SER_FULL_VERSION;
-static char* flags=SER_COMPILE_FLAGS;
-char compiled[]= __TIME__ " " __DATE__ ;
-
-
-static char help_msg[]= "\
-Usage: " NAME " -l address [-p port] [-l address [-p port]...] [options]\n\
-Options:\n\
-    -f file      Configuration file (default " CFG_FILE ")\n\
-    -c           Check configuration file for errors\n\
-    -l address   Listen on the specified address/interface (multiple -l\n\
-                  mean listening on more addresses).  The address format is\n\
-                  [proto:]addr[:port], where proto=udp|tcp and \n\
-                  addr= host|ip_address|interface_name. E.g: -l locahost, \n\
-                  -l udp:127.0.0.1:5080, -l eth0:5062 The default behavior\n\
-                  is to listen on all the interfaces.\n\
-    -n processes Number of child processes to fork per interface\n\
-                  (default: 8)\n\
-    -r           Use dns to check if is necessary to add a \"received=\"\n\
-                  field to a via\n\
-    -R           Same as `-r` but use reverse dns;\n\
-                  (to use both use `-rR`)\n\
-    -v           Turn on \"via:\" host checking when forwarding replies\n\
-    -d           Debugging mode (multiple -d increase the level)\n\
-    -D           Do not fork into daemon mode\n\
-    -E           Log to stderr\n"
-#ifdef USE_TCP
-"    -T           Disable tcp\n\
-    -N           Number of tcp child processes (default: equal to `-n`)\n"
-#endif
-"    -V           Version number\n\
-    -h           This help message\n\
-    -b nr        Maximum receive buffer size which will not be exceeded by\n\
-                  auto-probing procedure even if  OS allows\n\
-    -m nr        Size of shared memory allocated in Megabytes\n\
-    -w dir       Change the working directory to \"dir\" (default \"/\")\n\
-    -t dir       Chroot to \"dir\"\n\
-    -u uid       Change uid \n\
-    -g gid       Change gid \n\
-    -P file      Create a pid file\n\
-    -G file      Create a pgid file\n\
-    -i fifo_path Create a fifo (useful for monitoring " NAME ") \n\
-    -x socket    Create a unix domain socket \n"
-#ifdef STATS
-"    -s file     File to which statistics is dumped (disabled otherwise)\n"
-#endif
-;
-
-/* print compile-time constants */
-void print_ct_constants()
-{
-#ifdef ADAPTIVE_WAIT
-	printf("ADAPTIVE_WAIT_LOOPS=%d, ", ADAPTIVE_WAIT_LOOPS);
-#endif
-/*
-#ifdef SHM_MEM
-	printf("SHM_MEM_SIZE=%d, ", SHM_MEM_SIZE);
-#endif
-*/
-	printf("MAX_RECV_BUFFER_SIZE %d, MAX_LISTEN %d,"
-			" MAX_URI_SIZE %d, BUF_SIZE %d\n",
-		MAX_RECV_BUFFER_SIZE, MAX_LISTEN, MAX_URI_SIZE, 
-		BUF_SIZE );
-}
-
-/* debugging function */
-/*
-void receive_stdin_loop()
-{
-	#define BSIZE 1024
-	char buf[BSIZE+1];
-	int len;
-
-	while(1){
-		len=fread(buf,1,BSIZE,stdin);
-		buf[len+1]=0;
-		receive_msg(buf, len);
-		printf("-------------------------\n");
-	}
-}
-*/
-
-/* global vars */
-
-int own_pgid = 0; /* whether or not we have our own pgid (and it's ok
-					 to use kill(0, sig) */
-char* cfg_file = 0;
-unsigned int maxbuffer = MAX_RECV_BUFFER_SIZE; /* maximum buffer size we do
-												  not want to exceed during the
-												  auto-probing procedure; may 
-												  be re-configured */
-int children_no = 0;			/* number of children processing requests */
-#ifdef USE_TCP
-int tcp_children_no = 0;
-int tcp_disable = 0; /* 1 if tcp is disabled */
-#endif
-#ifdef USE_TLS
-int tls_disable = 0; /* 1 if tls is disabled */
-#endif
-struct process_table *pt=0;		/*array with children pids, 0= main proc,
-									alloc'ed in shared mem if possible*/
-int sig_flag = 0;              /* last signal received */
-int debug = L_NOTICE;
-int dont_fork = 0;
-int log_stderr = 0;
-/* log facility (see syslog(3)) */
-int log_facility = LOG_DAEMON;
-int config_check = 0;
-/* check if reply first via host==us */
-int check_via =  0;        
-/* shall use stateful synonym branches? faster but not reboot-safe */
-int syn_branch = 1;
-/* debugging level for memory stats */
-int memlog = L_DBG;
-/* should replies include extensive warnings? by default yes,
-   good for trouble-shooting
-*/
-int sip_warning = 1;
-/* should localy-generated messages include server's signature?
-   be default yes, good for trouble-shooting
-*/
-int server_signature=1;
-/* should ser try to locate outbound interface on multihomed
- * host? by default not -- too expensive
- */
-int mhomed=0;
-/* use dns and/or rdns or to see if we need to add 
-   a ;received=x.x.x.x to via: */
-int received_dns = 0;      
-char* working_dir = 0;
-char* chroot_dir = 0;
-char* user=0;
-char* group=0;
-int uid = 0;
-int gid = 0;
-char* sock_user=0;
-char* sock_group=0;
-int sock_uid= -1;
-int sock_gid= -1;
-int sock_mode= S_IRUSR| S_IWUSR| S_IRGRP| S_IWGRP; /* rw-rw---- */
-
-/* more config stuff */
-int disable_core_dump=0; /* by default enabled */
-int open_files_limit=-1; /* don't touch it by default */
-/* a hint to reply modules whether they should send reply
-   to IP advertised in Via or IP from which a request came
-*/
-int reply_to_via=0;
-
-#ifdef USE_MCAST
-int mcast_loopback = 0;
-int mcast_ttl = -1; /* if -1, don't touch it, use the default (usually 1) */
-#endif /* USE_MCAST */
-
-#if 0
-char* names[MAX_LISTEN];              /* our names */
-int names_len[MAX_LISTEN];            /* lengths of the names*/
-struct ip_addr addresses[MAX_LISTEN]; /* our ips */
-int addresses_no=0;                   /* number of names/ips */
-#endif
-struct socket_info* udp_listen=0;
-#ifdef USE_TCP
-struct socket_info* tcp_listen=0;
-#endif
-#ifdef USE_TLS
-struct socket_info* tls_listen=0;
-#endif
-struct socket_info* bind_address=0; /* pointer to the crt. proc.
-									 listening address*/
-struct socket_info* sendipv4; /* ipv4 socket to use when msg. comes from ipv6*/
-struct socket_info* sendipv6; /* same as above for ipv6 */
-#ifdef USE_TCP
-struct socket_info* sendipv4_tcp; 
-struct socket_info* sendipv6_tcp; 
-#endif
-#ifdef USE_TLS
-struct socket_info* sendipv4_tls;
-struct socket_info* sendipv6_tls;
-#endif
-
-unsigned short port_no=0; /* default port*/
-#ifdef USE_TLS
-unsigned short tls_port_no=0; /* default port */
-#endif
-
-struct host_alias* aliases=0; /* name aliases list */
-
-/* ipc related globals */
-int process_no = 0;
-/* process_bm_t process_bit = 0; */
-#ifdef ROUTE_SRV
-#endif
-
-/* cfg parsing */
-int cfg_errors=0;
-
-/* shared memory (in MB) */
-unsigned long shm_mem_size=SHM_MEM_SIZE * 1024 * 1024;
-
-/* export command-line to anywhere else */
-int my_argc;
-char **my_argv;
-
-#define MAX_FD 32 /* maximum number of inherited open file descriptors,
-		    (normally it shouldn't  be bigger  than 3) */
-
-
-extern FILE* yyin;
-extern int yyparse();
-
-
-int is_main=1; /* flag = is this the  "main" process? */
-
-char* pid_file = 0; /* filename as asked by use */
-char* pgid_file = 0;
-
-
-/* call it before exiting; if show_status==1, mem status is displayed */
-void cleanup(show_status)
-{
-	/*clean-up*/
-	if (mem_lock) 
-		shm_unlock(); /* hack: force-unlock the shared memory lock in case
-					 some process crashed and let it locked; this will 
-					 allow an almost gracious shutdown */
-	destroy_modules();
-#ifdef USE_TCP
-	destroy_tcp();
-#endif
-#ifdef USE_TLS
-	destroy_tls();
-#endif
-	destroy_timer();
-	close_unixsock_server();
-	destroy_fifo();
-	destroy_script_cb();
-#ifdef PKG_MALLOC
-	if (show_status){
-		LOG(memlog, "Memory status (pkg):\n");
-		pkg_status();
-	}
-#endif
-#ifdef SHM_MEM
-	if (pt) shm_free(pt);
-	pt=0;
-	if (show_status){
-			LOG(memlog, "Memory status (shm):\n");
-			shm_status();
-	}
-	/* zero all shmem alloc vars that we still use */
-	shm_mem_destroy();
-#endif
-	if (pid_file) unlink(pid_file);
-	if (pgid_file) unlink(pgid_file);
-}
-
-
-/* tries to send a signal to all our processes
- * if daemonized  is ok to send the signal to all the process group,
- * however if not daemonized we might end up sending the signal also
- * to the shell which launched us => most signals will kill it if 
- * it's not in interactive mode and we don't want this. The non-daemonized 
- * case can occur when an error is encountered before daemonize is called 
- * (e.g. when parsing the config file) or when ser is started in "dont-fork"
- *  mode. Sending the signal to all the processes in pt[] will not work
- *  for processes forked from modules (which have no correspondent entry in 
- *  pt), but this can happen only in dont_fork mode (which is only for
- *  debugging). So in the worst case + "dont-fork" we might leave some
- *  zombies. -- andrei */
-static void kill_all_children(int signum)
-{
-	int r;
-
-	if (own_pgid) kill(0, signum);
-	else if (pt)
-		for (r=1; r<process_count(); r++)
-			if (pt[r].pid) kill(pt[r].pid, signum);
-}
-
-
-
-#ifdef USE_SIGACTION
-static void (*set_sig_h(int sig, void (*handler) (int) ))(int)
-{
-	struct sigaction act;
-	struct sigaction old;
-	
-	memset(&act, 0, sizeof(act));
-	act.sa_handler=handler;
-	/*
-	sigemptyset(&act.sa_mask);
-	act.sa_flags=0;
-	*/
-	LOG(L_CRIT, "setting signal %d to %p\n", sig, handler);
-	/* sa_sigaction not set, we use sa_hanlder instead */ 
-	return (sigaction (sig, &act, &old)==-1)?SIG_ERR:old.sa_handler;
-}
-#else
-#define set_sig_h signal
-#endif
-
-
-
-/* if this handler is called, a critical timeout has occured while
- * waiting for the children to finish => we should kill everything and exit */
-static void sig_alarm_kill(int signo)
-{
-	kill_all_children(SIGKILL); /* this will kill the whole group
-								  including "this" process;
-								  for debugging replace with SIGABRT
-								  (but warning: it might generate lots
-								   of cores) */
-}
-
-
-/* like sig_alarm_kill, but the timeout has occured when cleaning up
- * => try to leave a core for future diagnostics */
-static void sig_alarm_abort(int signo)
-{
-	/* LOG is not signal safe, but who cares, we are abort-ing anyway :-) */
-	LOG(L_CRIT, "BUG: shutdown timeout triggered, dying...");
-	abort();
-}
-
-
-
-void handle_sigs()
-{
-	pid_t	chld;
-	int	chld_status;
-
-	switch(sig_flag){
-		case 0: break; /* do nothing*/
-		case SIGPIPE:
-				/* SIGPIPE might be rarely received on use of
-				   exec module; simply ignore it
-				 */
-				LOG(L_WARN, "WARNING: SIGPIPE received and ignored\n");
-				break;
-		case SIGINT:
-		case SIGTERM:
-			/* we end the program in all these cases */
-			if (sig_flag==SIGINT)
-				DBG("INT received, program terminates\n");
-			else
-				DBG("SIGTERM received, program terminates\n");
-				
-			/* first of all, kill the children also */
-			kill_all_children(SIGTERM);
-
-			     /* Wait for all the children to die */
-			while(wait(0) > 0);
-			
-			cleanup(1); /* cleanup & show status*/
-			dprint("Thank you for flying " NAME "\n");
-			exit(0);
-			break;
-			
-		case SIGUSR1:
-#ifdef STATS
-			dump_all_statistic();
-#endif
-#ifdef PKG_MALLOC
-			LOG(memlog, "Memory status (pkg):\n");
-			pkg_status();
-#endif
-#ifdef SHM_MEM
-			LOG(memlog, "Memory status (shm):\n");
-			shm_status();
-#endif
-			break;
-			
-		case SIGCHLD:
-			while ((chld=waitpid( -1, &chld_status, WNOHANG ))>0) {
-				if (WIFEXITED(chld_status)) 
-					LOG(L_INFO, "child process %d exited normally,"
-							" status=%d\n", chld, 
-							WEXITSTATUS(chld_status));
-				else if (WIFSIGNALED(chld_status)) {
-					LOG(L_INFO, "child process %d exited by a signal"
-							" %d\n", chld, WTERMSIG(chld_status));
-#ifdef WCOREDUMP
-					LOG(L_INFO, "core was %sgenerated\n",
-							 WCOREDUMP(chld_status) ?  "" : "not " );
-#endif
-				}else if (WIFSTOPPED(chld_status)) 
-					LOG(L_INFO, "child process %d stopped by a"
-								" signal %d\n", chld,
-								 WSTOPSIG(chld_status));
-			}
-#ifndef STOP_JIRIS_CHANGES
-			if (dont_fork) {
-				LOG(L_INFO, "INFO: dont_fork turned on, living on\n");
-				break;
-			} 
-			LOG(L_INFO, "INFO: terminating due to SIGCHLD\n");
-#endif
-			/* exit */
-			kill_all_children(SIGTERM);
-			if (set_sig_h(SIGALRM, sig_alarm_kill) == SIG_ERR ) {
-				LOG(L_ERR, "ERROR: could not install SIGALARM handler\n");
-				/* continue, the process will die anyway if no
-				 * alarm is installed which is exactly what we want */
-			}
-			alarm(60); /* 1 minute close timeout */
-			while(wait(0) > 0); /* wait for all the children to terminate*/
-			set_sig_h(SIGALRM, sig_alarm_abort);
-			cleanup(1); /* cleanup & show status*/
-			alarm(0);
-			set_sig_h(SIGALRM, SIG_IGN);
-			DBG("terminating due to SIGCHLD\n");
-			exit(0);
-			break;
-		
-		case SIGHUP: /* ignoring it*/
-					DBG("SIGHUP received, ignoring it\n");
-					break;
-		default:
-			LOG(L_CRIT, "WARNING: unhandled signal %d\n", sig_flag);
-	}
-	sig_flag=0;
-}
-
-
-
-/* added by jku; allows for regular exit on a specific signal;
-   good for profiling which only works if exited regularly and
-   not by default signal handlers
-    - modified by andrei: moved most of the stuff to handle_sigs, 
-       made it safer for the "fork" case
-*/
-static void sig_usr(int signo)
-{
-
-
-	if (is_main){
-		if (sig_flag==0) sig_flag=signo;
-		else /*  previous sig. not processed yet, ignoring? */
-			return; ;
-		if (dont_fork) 
-				/* only one proc, doing everything from the sig handler,
-				unsafe, but this is only for debugging mode*/
-			handle_sigs();
-	}else{
-		/* process the important signals */
-		switch(signo){
-			case SIGPIPE:
-					LOG(L_INFO, "INFO: signal %d received\n", signo);
-				break;
-			case SIGINT:
-			case SIGTERM:
-					LOG(L_INFO, "INFO: signal %d received\n", signo);
-					/* print memory stats for non-main too */
-					#ifdef PKG_MALLOC
-					LOG(memlog, "Memory status (pkg):\n");
-					pkg_status();
-					#endif
-					exit(0);
-					break;
-			case SIGUSR1:
-				/* statistics, do nothing, printed only from the main proc */
-					break;
-				/* ignored*/
-			case SIGUSR2:
-			case SIGHUP:
-					break;
-			case SIGCHLD:
-#ifndef 			STOP_JIRIS_CHANGES
-					DBG("SIGCHLD received: "
-						"we do not worry about grand-children\n");
-#else
-					exit(0); /* terminate if one child died */
-#endif
-		}
-	}
-}
-
-
-
-/* install the signal handlers, returns 0 on success, -1 on error */
-int install_sigs()
-{
-	/* added by jku: add exit handler */
-	if (set_sig_h(SIGINT, sig_usr) == SIG_ERR ) {
-		DPrint("ERROR: no SIGINT signal handler can be installed\n");
-		goto error;
-	}
-	/* if we debug and write to a pipe, we want to exit nicely too */
-	if (set_sig_h(SIGPIPE, sig_usr) == SIG_ERR ) {
-		DPrint("ERROR: no SIGINT signal handler can be installed\n");
-		goto error;
-	}
-	if (set_sig_h(SIGUSR1, sig_usr)  == SIG_ERR ) {
-		DPrint("ERROR: no SIGUSR1 signal handler can be installed\n");
-		goto error;
-	}
-	if (set_sig_h(SIGCHLD , sig_usr)  == SIG_ERR ) {
-		DPrint("ERROR: no SIGCHLD signal handler can be installed\n");
-		goto error;
-	}
-	if (set_sig_h(SIGTERM , sig_usr)  == SIG_ERR ) {
-		DPrint("ERROR: no SIGTERM signal handler can be installed\n");
-		goto error;
-	}
-	if (set_sig_h(SIGHUP , sig_usr)  == SIG_ERR ) {
-		DPrint("ERROR: no SIGHUP signal handler can be installed\n");
-		goto error;
-	}
-	if (set_sig_h(SIGUSR2 , sig_usr)  == SIG_ERR ) {
-		DPrint("ERROR: no SIGUSR2 signal handler can be installed\n");
-		goto error;
-	}
-	return 0;
-error:
-	return -1;
-}
-
-
-
-/* converts a username into uid:gid,
- * returns -1 on error & 0 on success */
-static int user2uid(int* uid, int* gid, char* user)
-{
-	char* tmp;
-	struct passwd *pw_entry;
-	
-	if (user){
-		*uid=strtol(user, &tmp, 10);
-		if ((tmp==0) ||(*tmp)){
-			/* maybe it's a string */
-			pw_entry=getpwnam(user);
-			if (pw_entry==0){
-				goto error;
-			}
-			*uid=pw_entry->pw_uid;
-			if (gid) *gid=pw_entry->pw_gid;
-		}
-		return 0;
-	}
-error:
-	return -1;
-}
-
-
-
-/* converts a group name into a gid
- * returns -1 on error, 0 on success */
-static int group2gid(int* gid, char* group)
-{
-	char* tmp;
-	struct group  *gr_entry;
-	
-	if (group){
-		*gid=strtol(group, &tmp, 10);
-		if ((tmp==0) ||(*tmp)){
-			/* maybe it's a string */
-			gr_entry=getgrnam(group);
-			if (gr_entry==0){
-				goto error;
-			}
-			*gid=gr_entry->gr_gid;
-		}
-		return 0;
-	}
-error:
-	return -1;
-}
-
-
-
-/* returns -1 on error, 0 on success
- * sets proto */
-static int parse_proto(unsigned char* s, long len, int* proto)
-{
-#define PROTO2UINT(a, b, c) ((	(((unsigned int)(a))<<16)+ \
-								(((unsigned int)(b))<<8)+  \
-								((unsigned int)(c)) ) | 0x20202020)
-	unsigned int i;
-	if (len!=3) return -1;
-	i=PROTO2UINT(s[0], s[1], s[2]);
-	switch(i){
-		case PROTO2UINT('u', 'd', 'p'):
-			*proto=PROTO_UDP;
-			break;
-#ifdef USE_TCP
-		case PROTO2UINT('t', 'c', 'p'):
-			*proto=PROTO_TCP;
-			break;
-#ifdef USE_TLS
-		case PROTO2UINT('t', 'l', 's'):
-			*proto=PROTO_TLS;
-			break;
-#endif
-#endif
-		default:
-			return -1;
-	}
-	return 0;
-}
-
-
-
-/*
- * parses [proto:]host[:port]
- * where proto= udp|tcp|tls
- * returns 0 on success and -1 on failure
- */
-static int parse_phostport(char* s, char** host, int* hlen, int* port,
-							int* proto)
-{
-	char* first; /* first ':' occurrence */
-	char* second; /* second ':' occurrence */
-	char* p;
-	int bracket;
-	char* tmp;
-	
-	first=second=0;
-	bracket=0;
-	
-	/* find the first 2 ':', ignoring possible ipv6 addresses
-	 * (substrings between [])
-	 */
-	for(p=s; *p; p++){
-		switch(*p){
-			case '[':
-				bracket++;
-				if (bracket>1) goto error_brackets;
-				break;
-			case ']':
-				bracket--;
-				if (bracket<0) goto error_brackets;
-				break;
-			case ':':
-				if (bracket==0){
-					if (first==0) first=p;
-					else if( second==0) second=p;
-					else goto error_colons;
-				}
-				break;
-		}
-	}
-	if (p==s) return -1;
-	if (*(p-1)==':') goto error_colons;
-	
-	if (first==0){ /* no ':' => only host */
-		*host=s;
-		*hlen=(int)(p-s);
-		*port=0;
-		*proto=0;
-		return 0;
-	}
-	if (second){ /* 2 ':' found => check if valid */
-		if (parse_proto((unsigned char*)s, first-s, proto)<0) goto error_proto;
-		*port=strtol(second+1, &tmp, 10);
-		if ((tmp==0)||(*tmp)||(tmp==second+1)) goto error_port;
-		*host=first+1;
-		*hlen=(int)(second-*host);
-		return 0;
-	}
-	/* only 1 ':' found => it's either proto:host or host:port */
-	*port=strtol(first+1, &tmp, 10);
-	if ((tmp==0)||(*tmp)||(tmp==first+1)){
-		/* invalid port => it's proto:host */
-		if (parse_proto((unsigned char*)s, first-s, proto)<0) goto error_proto;
-		*port=0;
-		*host=first+1;
-		*hlen=(int)(p-*host);
-	}else{
-		/* valid port => its host:port */
-		*proto=0;
-		*host=s;
-		*hlen=(int)(first-*host);
-	}
-	return 0;
-error_brackets:
-	LOG(L_ERR, "ERROR: parse_phostport: too many brackets in %s\n", s);
-	return -1;
-error_colons:
-	LOG(L_ERR, "ERROR: parse_phostport: too many colons in %s\n", s);
-	return -1;
-error_proto:
-	LOG(L_ERR, "ERROR: parse_phostport: bad protocol in %s\n", s);
-	return -1;
-error_port:
-	LOG(L_ERR, "ERROR: parse_phostport: bad port number in %s\n", s);
-	return -1;
-}
-
-
-
-/* main loop */
-int main_loop()
-{
-	int  i;
-	pid_t pid;
-	struct socket_info* si;
-#ifdef USE_TCP
-	int sockfd[2];
-#endif
-
-	/* one "main" process and n children handling i/o */
-
-	is_main=0;
-	if (dont_fork){
-#ifdef STATS
-		setstats( 0 );
-#endif
-		if (udp_listen==0){
-			LOG(L_ERR, "ERROR: no fork mode requires at least one"
-					" udp listen address, exiting...\n");
-			goto error;
-		}
-		/* only one address, we ignore all the others */
-		if (udp_init(udp_listen)==-1) goto error;
-		bind_address=udp_listen;
-		sendipv4=bind_address;
-		sendipv6=bind_address; /*FIXME*/
-		if (udp_listen->next){
-			LOG(L_WARN, "WARNING: using only the first listen address"
-						" (no fork)\n");
-		}
-		/* initialize fifo server -- we need to open the fifo before
-		 * do_suid() and start the fifo server after all the socket 
-		 * are initialized, to inherit them*/
-		if (init_fifo_server()<0) {
-			LOG(L_ERR, "initializing fifo server failed\n");
-			goto error;
-		}
-		 /* Initialize Unix domain socket server */
-		if (init_unixsock_socket()<0) {
-			LOG(L_ERR, "Error while creating unix domain sockets\n");
-			goto error;
-		}
-		if (do_suid()==-1) goto error; /* try to drop privileges */
-		/* process_no now initialized to zero -- increase from now on
-		   as new processes are forked (while skipping 0 reserved for main 
-		*/
-
-		/* we need another process to act as the timer*/
-#ifdef USE_TCP
-		/* if we are using tcp we always need a timer process,
-		 * we cannot count on select timeout to measure time
-		 * (it works only on linux)
-		 */
-		if ((!tcp_disable)||(timer_list))
-#else
-		if (timer_list)
-#endif
-		{
-				process_no++;
-				if ((pid=fork())<0){
-					LOG(L_CRIT,  "ERROR: main_loop: Cannot fork\n");
-					goto error;
-				}
-				
-				if (pid==0){
-					/* child */
-					/* timer!*/
-					/* process_bit = 0; */
-					if (init_child(PROC_TIMER) < 0) {
-						LOG(L_ERR, "timer: init_child failed\n");
-						goto error;
-					}
-					for(;;){
-						sleep(TIMER_TICK);
-						timer_ticker();
-					}
-				}else{
-						pt[process_no].pid=pid; /*should be shared mem anyway*/
-						strncpy(pt[process_no].desc, "timer", MAX_PT_DESC );
-				}
-		}
-
-		/* if configured, start a server for accepting FIFO commands,
-		 * we need to do it after all the sockets are initialized, to 
-		 * inherit them*/
-		if (start_fifo_server()<0) {
-			LOG(L_ERR, "starting fifo server failed\n");
-			goto error;
-		}
-
-		if (init_unixsock_children()<0) {
-			LOG(L_ERR, "Error while initializing Unix domain socket server\n");
-			goto error;
-		}
-
-		/* main process, receive loop */
-		process_no=0; /*main process number*/
-		pt[process_no].pid=getpid();
-		snprintf(pt[process_no].desc, MAX_PT_DESC, 
-			"stand-alone receiver @ %s:%s", 
-			 bind_address->name.s, bind_address->port_no_str.s );
-		
-		
-		     /* We will call child_init even if we
-		      * do not fork - and it will be called with rank 1 because
-		      * in fact we behave like a child, not like main process
-		      */
-
-		if (init_child(1) < 0) {
-			LOG(L_ERR, "main_dontfork: init_child failed\n");
-			goto error;
-		}
-
-		is_main=1; /* hack 42: call init_child with is_main=0 in case
-					 some modules wants to fork a child */
-		
-		return udp_rcv_loop();
-	}else{
-		/* process_no now initialized to zero -- increase from now on
-		   as new processes are forked (while skipping 0 reserved for main )
-		*/
-
-		for(si=udp_listen;si;si=si->next){
-			/* create the listening socket (for each address)*/
-			/* udp */
-			if (udp_init(si)==-1) goto error;
-			/* get first ipv4/ipv6 socket*/
-			if ((si->address.af==AF_INET)&&
-					((sendipv4==0)||(sendipv4->flags&SI_IS_LO)))
-				sendipv4=si;
-	#ifdef USE_IPV6
-			if((sendipv6==0)&&(si->address.af==AF_INET6))
-				sendipv6=si;
-	#endif
-		}
-#ifdef USE_TCP
-		if (!tcp_disable){
-			for(si=tcp_listen; si; si=si->next){
-				/* same thing for tcp */
-				if (tcp_init(si)==-1)  goto error;
-				/* get first ipv4/ipv6 socket*/
-				if ((si->address.af==AF_INET)&&
-						((sendipv4_tcp==0)||(sendipv4_tcp->flags&SI_IS_LO)))
-					sendipv4_tcp=si;
-		#ifdef USE_IPV6
-				if((sendipv6_tcp==0)&&(si->address.af==AF_INET6))
-					sendipv6_tcp=si;
-		#endif
-			}
-		}
-#ifdef USE_TLS
-		if (!tls_disable){
-			for(si=tls_listen; si; si=si->next){
-				/* same as for tcp*/
-				if (tls_init(si)==-1)  goto error;
-				/* get first ipv4/ipv6 socket*/
-				if ((si->address.af==AF_INET)&&
-						((sendipv4_tls==0)||(sendipv4_tls->flags&SI_IS_LO)))
-					sendipv4_tls=si;
-		#ifdef USE_IPV6
-				if((sendipv6_tls==0)&&(si->address.af==AF_INET6))
-					sendipv6_tls=si;
-		#endif
-			}
-		}
-#endif /* USE_TLS */
-#endif /* USE_TCP */
-
-		/* initialize fifo server -- we need to open the fifo before
-		 * do_suid() and start the fifo server after all the socket 
-		 * are initialized, to inherit them*/
-		if (init_fifo_server()<0) {
-			LOG(L_ERR, "initializing fifo server failed\n");
-			goto error;
-		}
-		 /* Initialize Unix domain socket server */
-		     /* Create the unix domain sockets */
-		if (init_unixsock_socket()<0) {
-			LOG(L_ERR, "ERROR: Could not create unix domain sockets\n");
-			goto error;
-		}
-
-			/* all processes should have access to all the sockets (for sending)
-			 * so we open all first*/
-		if (do_suid()==-1) goto error; /* try to drop privileges */
-
-		/* if configured, start a server for accepting FIFO commands,
-		 * we need to do it after all the sockets are initialized, to 
-		 * inherit them*/
-		if (start_fifo_server()<0) {
-			LOG(L_ERR, "starting fifo server failed\n");
-			goto error;
-		}
-		     /* Spawn children listening on unix domain socket if and only if
-		      * the unix domain socket server has not been disabled (i == 0)
-		      */
-		if (init_unixsock_children()<0) {
-			LOG(L_ERR, "ERROR: Could not initialize unix domain socket server\n");
-			goto error;
-		}
-
-		/* udp processes */
-		for(si=udp_listen; si; si=si->next){
-			for(i=0;i<children_no;i++){
-				process_no++;
-#ifdef USE_TCP
-				if(!tcp_disable){
-		 			if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){
-						LOG(L_ERR, "ERROR: main_loop: socketpair failed: %s\n",
-							strerror(errno));
-						goto error;
-					}
-				}
-#endif
-				if ((pid=fork())<0){
-					LOG(L_CRIT,  "main_loop: Cannot fork\n");
-					goto error;
-				}else if (pid==0){
-					     /* child */
-#ifdef USE_TCP
-					if (!tcp_disable){
-						close(sockfd[0]);
-						unix_tcp_sock=sockfd[1];
-					}
-#endif
-					bind_address=si; /* shortcut */
-					if (init_child(i + 1) < 0) {
-						LOG(L_ERR, "init_child failed\n");
-						goto error;
-					}
-#ifdef STATS
-					setstats( i+r*children_no );
-#endif
-					return udp_rcv_loop();
-				}else{
-						pt[process_no].pid=pid; /*should be in shared mem.*/
-						snprintf(pt[process_no].desc, MAX_PT_DESC,
-							"receiver child=%d sock= %s:%s", i, 	
-							si->name.s, si->port_no_str.s );
-#ifdef USE_TCP
-						if (!tcp_disable){
-							close(sockfd[1]);
-							pt[process_no].unix_sock=sockfd[0];
-							pt[process_no].idx=-1; /* this is not a "tcp"
-													  process*/
-						}
-#endif
-				}
-			}
-			/*parent*/
-			/*close(udp_sock)*/; /*if it's closed=>sendto invalid fd errors?*/
-		}
-	}
-
-	/*this is the main process*/
-	bind_address=0;				/* main proc -> it shouldn't send anything, */
-	
-
-#ifdef USE_TCP
-	/* if we are using tcp we always need the timer */
-	if ((!tcp_disable)||(timer_list))
-#else
-	if (timer_list)
-#endif
-	{
-#ifdef USE_TCP
-		if (!tcp_disable){
- 			if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){
-				LOG(L_ERR, "ERROR: main_loop: socketpair failed: %s\n",
-					strerror(errno));
-				goto error;
-			}
-		}
-#endif
-		/* fork again for the attendant process*/
-		process_no++;
-		if ((pid=fork())<0){
-			LOG(L_CRIT, "main_loop: cannot fork timer process\n");
-			goto error;
-		}else if (pid==0){
-			/* child */
-			/* is_main=0; */
-#ifdef USE_TCP
-			if (!tcp_disable){
-				close(sockfd[0]);
-				unix_tcp_sock=sockfd[1];
-			}
-#endif
-			if (init_child(PROC_TIMER) < 0) {
-				LOG(L_ERR, "timer: init_child failed\n");
-				goto error;
-			}
-			
-			for(;;){
-				/* debug:  instead of doing something useful */
-				/* (placeholder for timers, etc.) */
-				sleep(TIMER_TICK);
-				/* if we received a signal => TIMER_TICK may have not elapsed*/
-				timer_ticker();
-			}
-		}else{
-			pt[process_no].pid=pid;
-			strncpy(pt[process_no].desc, "timer", MAX_PT_DESC );
-#ifdef USE_TCP
-			if(!tcp_disable){
-						close(sockfd[1]);
-						pt[process_no].unix_sock=sockfd[0];
-						pt[process_no].idx=-1; /* this is not a "tcp" process*/
-			}
-#endif
-		}
-	}
-#ifdef USE_TCP
-		if (!tcp_disable){
-				/* start tcp  & tls receivers */
-			if (tcp_init_children()<0) goto error;
-				/* start tcp+tls master proc */
-			process_no++;
-			if ((pid=fork())<0){
-				LOG(L_CRIT, "main_loop: cannot fork tcp main process\n");
-				goto error;
-			}else if (pid==0){
-				/* child */
-				/* is_main=0; */
-				if (init_child(PROC_TCP_MAIN) < 0) {
-					LOG(L_ERR, "tcp_main: error in init_child\n");
-					goto error;
-				}
-				tcp_main_loop();
-			}else{
-				pt[process_no].pid=pid;
-				strncpy(pt[process_no].desc, "tcp main process", MAX_PT_DESC );
-				pt[process_no].unix_sock=-1;
-				pt[process_no].idx=-1; /* this is not a "tcp" process*/
-				unix_tcp_sock=-1;
-			}
-		}
-#endif
-	/* main */
-	pt[0].pid=getpid();
-	strncpy(pt[0].desc, "attendant", MAX_PT_DESC );
-#ifdef USE_TCP
-	if(!tcp_disable){
-		pt[process_no].unix_sock=-1;
-		pt[process_no].idx=-1; /* this is not a "tcp" process*/
-		unix_tcp_sock=-1;
-	}
-#endif
-	/*DEBUG- remove it*/
-#ifdef DEBUG
-	fprintf(stderr, "\n% 3d processes (%3d), % 3d children * "
-			"listening addresses + tcp listeners + tls listeners"
-			"+ main + fifo %s\n", process_no+1, process_count(), children_no,
-			(timer_list)?"+ timer":"");
-	for (r=0; r<=process_no; r++){
-		fprintf(stderr, "% 3d   % 5d - %s\n", r, pt[r].pid, pt[r].desc);
-	}
-#endif
-	process_no=0; 
-	/* process_bit = 0; */
-	is_main=1;
-	
-	if (init_child(PROC_MAIN) < 0) {
-		LOG(L_ERR, "main: error in init_child\n");
-		goto error;
-	}
-	for(;;){
-			pause();
-			handle_sigs();
-	}
-	
-	
-	/*return 0; */
- error:
-	is_main=1;  /* if we are here, we are the "main process",
-				  any forked children should exit with exit(-1) and not
-				  ever use return */
-	return -1;
-
-}
-
-
-
-
-int main(int argc, char** argv)
-{
-
-	FILE* cfg_stream;
-	int c,r;
-	char *tmp;
-	int tmp_len;
-	int port;
-	int proto;
-	char *options;
-	int ret;
-	unsigned int seed;
-	int rfd;
-
-	/*init*/
-	ret=-1;
-	my_argc=argc; my_argv=argv;
-	
-	/*init pkg mallocs (before parsing cfg or cmd line !)*/
-	if (init_pkg_mallocs()==-1)
-		goto error;
-
-#ifdef DBG_MSG_QA
-	fprintf(stderr, "WARNING: ser startup: "
-		"DBG_MSG_QA enabled, ser may exit abruptly\n");
-#endif
-
-
-
-	/* process command line (get port no, cfg. file path etc) */
-	opterr=0;
-	options=
-#ifdef STATS
-	"s:"
-#endif
-	"f:cm:b:l:n:N:rRvdDETVhw:t:u:g:P:G:i:x:";
-	
-	while((c=getopt(argc,argv,options))!=-1){
-		switch(c){
-			case 'f':
-					cfg_file=optarg;
-					break;
-			case 'c':
-					config_check=1;
-					log_stderr=1; /* force stderr logging */
-					break;
-			case 's':
-				#ifdef STATS
-					stat_file=optarg;
-				#endif
-					break;
-			case 'm':
-					shm_mem_size=strtol(optarg, &tmp, 10) * 1024 * 1024;
-					if (tmp &&(*tmp)){
-						fprintf(stderr, "bad shmem size number: -m %s\n",
-										optarg);
-						goto error;
-					};
-					LOG(L_INFO, "ser: shared memory: %ld bytes\n",
-									shm_mem_size );
-					break;
-
-			case 'b':
-					maxbuffer=strtol(optarg, &tmp, 10);
-					if (tmp &&(*tmp)){
-						fprintf(stderr, "bad max buffer size number: -p %s\n",
-											optarg);
-						goto error;
-					}
-					break;
-			case 'l':
-					if (parse_phostport(optarg, &tmp, &tmp_len,
-											&port, &proto)<0){
-						fprintf(stderr, "bad -l address specifier: %s\n",
-										optarg);
-						goto error;
-					}
-					tmp[tmp_len]=0; /* null terminate the host */
-					/* add a new addr. to our address list */
-					if (add_listen_iface(tmp, port, proto, 0)!=0){
-						fprintf(stderr, "failed to add new listen address\n");
-						goto error;
-					}
-					break;
-			case 'n':
-					children_no=strtol(optarg, &tmp, 10);
-					if ((tmp==0) ||(*tmp)){
-						fprintf(stderr, "bad process number: -n %s\n",
-									optarg);
-						goto error;
-					}
-					break;
-			case 'v':
-					check_via=1;
-					break;
-			case 'r':
-					received_dns|=DO_DNS;
-					break;
-			case 'R':
-					received_dns|=DO_REV_DNS;
-			case 'd':
-					debug++;
-					break;
-			case 'D':
-					dont_fork=1;
-					break;
-			case 'E':
-					log_stderr=1;
-					break;
-			case 'T':
-#ifdef USE_TCP
-					tcp_disable=1;
-#else
-					fprintf(stderr,"WARNING: tcp support not compiled in\n");
-#endif
-					break;
-			case 'N':
-#ifdef USE_TCP
-					tcp_children_no=strtol(optarg, &tmp, 10);
-					if ((tmp==0) ||(*tmp)){
-						fprintf(stderr, "bad process number: -N %s\n",
-									optarg);
-						goto error;
-					}
-#else
-					fprintf(stderr,"WARNING: tcp support not compiled in\n");
-#endif
-					break;
-			case 'V':
-					printf("version: %s\n", version);
-					printf("flags: %s\n", flags );
-					print_ct_constants();
-					printf("%s\n",id);
-					printf("%s compiled on %s with %s\n", __FILE__,
-							compiled, COMPILER );
-					
-					exit(0);
-					break;
-			case 'h':
-					printf("version: %s\n", version);
-					printf("%s",help_msg);
-					exit(0);
-					break;
-			case 'w':
-					working_dir=optarg;
-					break;
-			case 't':
-					chroot_dir=optarg;
-					break;
-			case 'u':
-					user=optarg;
-					break;
-			case 'g':
-					group=optarg;
-					break;
-			case 'P':
-					pid_file=optarg;
-					break;
-		        case 'G':
-				        pgid_file=optarg;
-				        break;
-			case 'i':
-					fifo=optarg;
-					break;
-			case 'x':
-					unixsock_name=optarg;
-					break;
-			case '?':
-					if (isprint(optopt))
-						fprintf(stderr, "Unknown option `-%c´.\n", optopt);
-					else
-						fprintf(stderr, 
-								"Unknown option character `\\x%x´.\n",
-								optopt);
-					goto error;
-			case ':':
-					fprintf(stderr, 
-								"Option `-%c´ requires an argument.\n",
-								optopt);
-					goto error;
-			default:
-					abort();
-		}
-	}
-	
-	/* fill missing arguments with the default values*/
-	if (cfg_file==0) cfg_file=CFG_FILE;
-
-	/* load config file or die */
-	cfg_stream=fopen (cfg_file, "r");
-	if (cfg_stream==0){
-		fprintf(stderr, "ERROR: loading config file(%s): %s\n", cfg_file,
-				strerror(errno));
-		goto error;
-	}
-
-	/* seed the prng */
-	/* try to use /dev/urandom if possible */
-	seed=0;
-	if ((rfd=open("/dev/urandom", O_RDONLY))!=-1){
-try_again:
-		if (read(rfd, (void*)&seed, sizeof(seed))==-1){
-			if (errno==EINTR) goto try_again; /* interrupted by signal */
-			LOG(L_WARN, "WARNING: could not read from /dev/urandom (%d)\n",
-						errno);
-		}
-		DBG("read %u from /dev/urandom\n", seed);
-			close(rfd);
-	}else{
-		LOG(L_WARN, "WARNING: could not open /dev/urandom (%d)\n", errno);
-	}
-	seed+=getpid()+time(0);
-	DBG("seeding PRNG with %u\n", seed);
-	srand(seed);
-	DBG("test random number %u\n", rand());
-	
-	
-	
-	/* register a diagnostic FIFO command  - moved to fifo server - bogdan
-	if (register_core_fifo()<0) {
-		LOG(L_CRIT, "unable to register core FIFO commands\n");
-		goto error;
-	}*/
-
-	/*register builtin  modules*/
-	register_builtin_modules();
-
-	yyin=cfg_stream;
-	if ((yyparse()!=0)||(cfg_errors)){
-		fprintf(stderr, "ERROR: bad config file (%d errors)\n", cfg_errors);
-		goto error;
-	}
-	
-	
-	
-	print_rl();
-	
-	/* fix parameters */
-	if (port_no<=0) port_no=SIP_PORT;
-#ifdef USE_TLS
-	if (tls_port_no<=0) tls_port_no=SIPS_PORT;
-#endif
-	
-	
-	if (children_no<=0) children_no=CHILD_NO;
-#ifdef USE_TCP
-	if (!tcp_disable){
-		if (tcp_children_no<=0) tcp_children_no=children_no;
-	}
-#endif
-	
-	if (working_dir==0) working_dir="/";
-	
-	/* get uid/gid */
-	if (user){
-		if (user2uid(&uid, &gid, user)<0){
-			fprintf(stderr, "bad user name/uid number: -u %s\n", user);
-			goto error;
-		}
-	}
-	if (group){
-		if (group2gid(&gid, group)<0){
-				fprintf(stderr, "bad group name/gid number: -u %s\n", group);
-			goto error;
-		}
-	}
-	/* fix sock/fifo uid/gid */
-	if (sock_user){
-		if (user2uid(&sock_uid, 0, sock_user)<0){
-			fprintf(stderr, "bad socket user name/uid number %s\n", user);
-			goto error;
-		}
-	}
-	if (sock_group){
-		if (group2gid(&sock_gid, sock_group)<0){
-			fprintf(stderr, "bad group name/gid number: -u %s\n", group);
-			goto error;
-		}
-	}
-	if (fix_all_socket_lists()!=0){
-		fprintf(stderr,  "failed to initialize list addresses\n");
-		goto error;
-	}
-	/* print all the listen addresses */
-	printf("Listening on \n");
-	print_all_socket_lists();
-	printf("Aliases: \n");
-	/*print_aliases();*/
-	print_aliases();
-	printf("\n");
-	
-	if (dont_fork){
-		fprintf(stderr, "WARNING: no fork mode %s\n", 
-				(udp_listen)?(
-				(udp_listen->next)?" and more than one listen address found"
-				"(will use only the the first one)":""
-				):"and no udp listen address found" );
-	}
-	if (config_check){
-		fprintf(stderr, "config file ok, exiting...\n");
-		goto error;
-	}
-
-
-	/*init shm mallocs
-	 *  this must be here 
-	 *     -to allow setting shm mem size from the command line
-	 *       => if shm_mem should be settable from the cfg file move
-	 *       everything after
-	 *     -it must be also before init_timer and init_tcp
-	 *     -it must be after we know uid (so that in the SYSV sems case,
-	 *        the sems will have the correct euid)
-	 * --andrei */
-	if (init_shm_mallocs()==-1)
-		goto error;
-	/*init timer, before parsing the cfg!*/
-	if (init_timer()<0){
-		LOG(L_CRIT, "could not initialize timer, exiting...\n");
-		goto error;
-	}
-	
-#ifdef USE_TCP
-	if (!tcp_disable){
-		/*init tcp*/
-		if (init_tcp()<0){
-			LOG(L_CRIT, "could not initialize tcp, exiting...\n");
-			goto error;
-		}
-	}
-#ifdef USE_TLS
-	if (!tls_disable){
-		/* init tls*/
-		if (init_tls()<0){
-			LOG(L_CRIT, "could not initialize tls, exiting...\n");
-			goto error;
-		}
-	}
-#endif /* USE_TLS */
-#endif /* USE_TCP */
-	/* init_daemon? */
-	if (!dont_fork){
-		if ( daemonize(argv[0]) <0 ) goto error;
-	}
-	if (install_sigs() != 0){
-		fprintf(stderr, "ERROR: could not install the signal handlers\n");
-		goto error;
-	}
-	
-	
-	/*alloc pids*/
-#ifdef SHM_MEM
-	pt=shm_malloc(sizeof(struct process_table)*process_count());
-#else
-	pt=pkg_malloc(sizeof(struct process_table)*process_count());
-#endif
-	if (pt==0){
-		fprintf(stderr, "ERROR: out  of memory\n");
-		goto error;
-	}
-	memset(pt, 0, sizeof(struct process_table)*process_count());
-
-	if (disable_core_dump) set_core_dump(0, 0);
-	else set_core_dump(1, shm_mem_size+PKG_MEM_POOL_SIZE+4*1024*1024);
-	if (open_files_limit>0){
-		if(increase_open_fds(open_files_limit)<0){ 
-			fprintf(stderr, "ERROR: error could not increase file limits\n");
-			goto error;
-		}
-	}
-	
-	if (init_modules() != 0) {
-		fprintf(stderr, "ERROR: error while initializing modules\n");
-		goto error;
-	}
-	/* fix routing lists */
-	if ( (r=fix_rls())!=0){
-		fprintf(stderr, "ERROR: error %d while trying to fix configuration\n",
-						r);
-		goto error;
-	};
-
-#ifdef STATS
-	if (init_stats(  dont_fork ? 1 : children_no  )==-1) goto error;
-#endif
-	
-	ret=main_loop();
-	/*kill everything*/
-	kill_all_children(SIGTERM);
-	/*clean-up*/
-	cleanup(0);
-	return ret;
-
-error:
-	/*kill everything*/
-	kill_all_children(SIGTERM);
-	/*clean-up*/
-	cleanup(0);
-	return -1;
-
-}
-

Deleted: ser/trunk/md5.c
===================================================================
--- ser/trunk/md5.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/md5.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,357 +0,0 @@
-/* 
-
-$Id: md5.c,v 1.4 2002/09/19 12:23:52 jku Rel $
-
-MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm
-
-Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
- */
-
-
-#include <string.h>
-#include "md5global.h"
-#include "md5.h"
-
-
-#define USE_MEM
-
-/* Constants for MD5Transform routine.
- */
-
-
-
-
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-
-static void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64]));
-static void Encode PROTO_LIST
-  ((unsigned char *, UINT4 *, unsigned int));
-static void Decode PROTO_LIST
-  ((UINT4 *, unsigned char *, unsigned int));
-static void MD5_memcpy PROTO_LIST ((POINTER, POINTER, unsigned int));
-static void MD5_memset PROTO_LIST ((POINTER, int, unsigned int));
-
-static unsigned char PADDING[64] = {
-  0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-/* F, G, H and I are basic MD5 functions.
- */
-#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
-#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | (~z)))
-
-/* ROTATE_LEFT rotates x left n bits.
- */
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
-
-/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
-Rotation is separate from addition to prevent recomputation.
- */
-#define FF(a, b, c, d, x, s, ac) { \
- (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
-  }
-#define GG(a, b, c, d, x, s, ac) { \
- (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
-  }
-#define HH(a, b, c, d, x, s, ac) { \
- (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
-  }
-#define II(a, b, c, d, x, s, ac) { \
- (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
-  }
-
-/* MD5 initialization. Begins an MD5 operation, writing a new context.
- */
-void MD5Init (context)
-MD5_CTX *context;                                        /* context */
-{
-  context->count[0] = context->count[1] = 0;
-  /* Load magic initialization constants.
-*/
-  context->state[0] = 0x67452301;
-  context->state[1] = 0xefcdab89;
-  context->state[2] = 0x98badcfe;
-  context->state[3] = 0x10325476;
-}
-
-/* MD5 block update operation. Continues an MD5 message-digest
-  operation, processing another message block, and updating the
-  context.
- */
-void MD5Update (context, input, inputLen)
-MD5_CTX *context;                                        /* context */
-unsigned char *input;                                /* input block */
-unsigned int inputLen;                     /* length of input block */
-{
-  unsigned int i, index, partLen;
-
-  /* Compute number of bytes mod 64 */
-  index = (unsigned int)((context->count[0] >> 3) & 0x3F);
-
-  /* Update number of bits */
-  if ((context->count[0] += ((UINT4)inputLen << 3))
-
-   < ((UINT4)inputLen << 3))
- context->count[1]++;
-  context->count[1] += ((UINT4)inputLen >> 29);
-
-  partLen = 64 - index;
-
-  /* Transform as many times as possible.
-*/
-  if (inputLen >= partLen) {
- MD5_memcpy
-   ((POINTER)&context->buffer[index], (POINTER)input, partLen);
- MD5Transform (context->state, context->buffer);
-
- for (i = partLen; i + 63 < inputLen; i += 64)
-   MD5Transform (context->state, &input[i]);
-
- index = 0;
-  }
-  else
- i = 0;
-
-  /* Buffer remaining input */
-  MD5_memcpy
- ((POINTER)&context->buffer[index], (POINTER)&input[i],
-  inputLen-i);
-}
-
-/* MD5 finalization. Ends an MD5 message-digest operation, writing the
-  the message digest and zeroizing the context.
- */
-void MD5Final (digest, context)
-unsigned char digest[16];                         /* message digest */
-MD5_CTX *context;                                       /* context */
-{
-  unsigned char bits[8];
-  unsigned int index, padLen;
-
-  /* Save number of bits */
-  Encode (bits, context->count, 8);
-
-  /* Pad out to 56 mod 64.
-*/
-  index = (unsigned int)((context->count[0] >> 3) & 0x3f);
-  padLen = (index < 56) ? (56 - index) : (120 - index);
-  MD5Update (context, PADDING, padLen);
-
-  /* Append length (before padding) */
-  MD5Update (context, bits, 8);
-
-  /* Store state in digest */
-  Encode (digest, context->state, 16);
-
-  /* Zeroize sensitive information.
-*/
-  MD5_memset ((POINTER)context, 0, sizeof (*context));
-}
-
-/* MD5 basic transformation. Transforms state based on block.
- */
-static void MD5Transform (state, block)
-UINT4 state[4];
-unsigned char block[64];
-{
-  UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
-
-  Decode (x, block, 64);
-
-  /* Round 1 */
-  FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
-  FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
-  FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
-  FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
-  FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
-  FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
-  FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
-  FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
-  FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
-  FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
-  FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
-  FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
-  FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
-  FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
-  FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
-  FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-
- /* Round 2 */
-  GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
-  GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
-  GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
-  GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
-  GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
-  GG (d, a, b, c, x[10], S22,  0x2441453); /* 22 */
-  GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
-  GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
-  GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
-  GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
-  GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
-  GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
-  GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
-  GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
-  GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
-  GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-
-  /* Round 3 */
-  HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
-  HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
-  HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
-  HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
-  HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
-  HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
-  HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
-  HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
-  HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
-  HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
-  HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
-  HH (b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
-  HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
-  HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
-  HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
-  HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-
-  /* Round 4 */
-  II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
-  II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
-  II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
-  II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
-  II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
-  II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
-  II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
-  II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
-  II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
-  II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
-  II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
-  II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
-  II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
-  II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
-  II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
-  II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
-
-  state[0] += a;
-  state[1] += b;
-  state[2] += c;
-  state[3] += d;
-
-  /* Zeroize sensitive information.
-*/
-  MD5_memset ((POINTER)x, 0, sizeof (x));
-}
-
-/* Encodes input (UINT4) into output (unsigned char). Assumes len is
-  a multiple of 4.
- */
-static void Encode (output, input, len)
-unsigned char *output;
-UINT4 *input;
-unsigned int len;
-{
-  unsigned int i, j;
-
-  for (i = 0, j = 0; j < len; i++, j += 4) {
- output[j] = (unsigned char)(input[i] & 0xff);
- output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
- output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
- output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
-  }
-}
-
-/* Decodes input (unsigned char) into output (UINT4). Assumes len is
-  a multiple of 4.
- */
-static void Decode (output, input, len)
-UINT4 *output;
-unsigned char *input;
-unsigned int len;
-{
-  unsigned int i, j;
-
-  for (i = 0, j = 0; j < len; i++, j += 4)
- output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
-   (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
-}
-
-/* Note: Replace "for loop" with standard memcpy if possible.
- */
-
-static void MD5_memcpy (output, input, len)
-POINTER output;
-POINTER input;
-unsigned int len;
-{
-
-#ifndef USE_MEM
-  unsigned int i;
-
-  for (i = 0; i < len; i++)
- output[i] = input[i];
-#else
-  memcpy( output, input, len );
-#endif
-}
-
-/* Note: Replace "for loop" with standard memset if possible.
- */
-static void MD5_memset (output, value, len)
-POINTER output;
-int value;
-unsigned int len;
-{
-
-#ifndef USE_MEM
-  unsigned int i;
-  for (i = 0; i < len; i++)
- ((char *)output)[i] = (char)value;
-#else
-  memset( output, value, len );
-#endif
-}
-

Deleted: ser/trunk/md5.h
===================================================================
--- ser/trunk/md5.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/md5.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,45 +0,0 @@
-/* MD5.H - header file for MD5C.C
- * $Id: md5.h,v 1.4 2003/04/10 12:37:50 janakj Exp $
- */
-
-
-/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
- */
-
-#ifndef MD5_H
-#define MD5_H
-
-#include "md5global.h"
-
-/* MD5 context. */
-typedef struct {
-  UINT4 state[4];                                   /* state (ABCD) */
-  UINT4 count[2];        /* number of bits, modulo 2^64 (lsb first) */
-  unsigned char buffer[64];                         /* input buffer */
-} MD5_CTX;
-
-void MD5Init PROTO_LIST ((MD5_CTX *));
-void MD5Update PROTO_LIST
-  ((MD5_CTX *, unsigned char *, unsigned int));
-void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *));
-
-#endif /* MD5_H */

Deleted: ser/trunk/md5global.h
===================================================================
--- ser/trunk/md5global.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/md5global.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,38 +0,0 @@
-/* GLOBAL.H - RSAREF types and constants
- *
- */
-
-
-/* PROTOTYPES should be set to one if and only if the compiler supports
-  function argument prototyping.
-The following makes PROTOTYPES default to 0 if it has not already
-  been defined with C compiler flags.
- */
-#ifndef MD5GLOBAL_H
-#define MD5GLOBAL_H
-
-
-#ifndef PROTOTYPES
-#define PROTOTYPES 0
-#endif
-
-/* POINTER defines a generic pointer type */
-typedef unsigned char *POINTER;
-
-/* UINT2 defines a two byte word */
-typedef unsigned short int UINT2;
-
-/* UINT4 defines a four byte word */
-typedef unsigned int UINT4;
-
-/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
-If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
-  returns an empty list.
- */
-#if PROTOTYPES
-#define PROTO_LIST(list) list
-#else
-#define PROTO_LIST(list) ()
-#endif
-
-#endif /* MD5GLOBAL_H */

Deleted: ser/trunk/md5utils.c
===================================================================
--- ser/trunk/md5utils.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/md5utils.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,88 +0,0 @@
-/* MDDRIVER.C - test driver for MD2, MD4 and MD5
- *
- */
-
-
-
-/* Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All
-rights reserved.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
- */
-
-/*
-
-jku: added support to deal with vectors
-
-*/
-
-#define MD 5
-
-#include <stdio.h>
-#include <time.h>
-#include <string.h>
-#include "md5global.h"
-#include "md5.h"
-#include "md5utils.h"
-#include "dprint.h"
-#include "ut.h"
-
-
-/*static void MDString PROTO_LIST ((char *));*/
-
-#define MD_CTX MD5_CTX
-#define MDInit MD5Init
-#define MDUpdate MD5Update
-#define MDFinal MD5Final
-
-
-/* Digests a string array and store the result in dst; assumes
-  32 bytes in dst
- */
-void MDStringArray (char *dst, str src[], int size)
-{
-	MD_CTX context;
-	unsigned char digest[16];
- 	int i;
-	int len;
-	char *s;
-
-/*
-#	ifdef EXTRA_DEBUG
-	int j;
-	int sum;
-#endif
-*/
-
-	MDInit (&context);
-	for (i=0; i<size; i++) {
-		trim_len( len, s, src[i] );
-/*
-#		ifdef EXTRA_DEBUG
-		fprintf(stderr, "EXTRA_DEBUG: %d. (%d) {", i+1, len);
-		sum=0;
-		for (j=0; j<len; j++) {
-			fprintf( stderr, "%c ", *(s+j));
-			sum+=*(s+j);
-		}
-		for (j=0; j<len; j++) {
-			fprintf( stderr, "%d ", *(s+j));
-			sum+=*(s+j);
-		}
-		fprintf(stderr, " [%d]\n", sum );	
-#		endif
-*/
-  		MDUpdate (&context, s, len);
-  }
-  MDFinal (digest, &context);
-
-  string2hex(digest, 16, dst );
-  DBG("DEBUG: MD5 calculated: %.*s\n", MD5_LEN, dst );
-
-}

Deleted: ser/trunk/md5utils.h
===================================================================
--- ser/trunk/md5utils.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/md5utils.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,39 +0,0 @@
-/* 
- * $Id: md5utils.h,v 1.5 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- */
-
-
-#ifndef _MD5UTILS_H
-#define _MD5UTILS_H
-
-#include "str.h"
-
-#define MD5_LEN	32
-
-void MDStringArray (char *dst, str src[], int size);
-
-#endif /* _MD5UTILS_H */

Deleted: ser/trunk/mod_fix.h
===================================================================
--- ser/trunk/mod_fix.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/mod_fix.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,37 +0,0 @@
-/*
- *$Id: mod_fix.h,v 1.1 2004/09/27 03:11:08 jiri Exp $
- *
- */
-
-
-#ifndef _modfix_h
-#define _modfix_h
-
-#include "mem/mem.h"
-#include "str.h"
-#include "error.h"
-
-
-/*  
- * Convert char* parameter to str* parameter   
- */
-static int str_fixup(void** param, int param_no)
-{
-	str* s;
-	
-	if (param_no == 1 || param_no == 2 ) {
-		s = (str*)pkg_malloc(sizeof(str));
-		if (!s) {
-			LOG(L_ERR, "str_fixup(): No memory left\n");
-			return E_UNSPEC;
-		}
-		
-		s->s = (char*)*param;
-		s->len = strlen(s->s);
-		*param = (void*)s;
-	}
-	
-	return 0;
-}
-
-#endif

Deleted: ser/trunk/modparam.c
===================================================================
--- ser/trunk/modparam.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/modparam.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,156 +0,0 @@
-/*
- * $Id: modparam.c,v 1.8 2004/12/03 19:09:31 andrei Exp $
- *
- *
- * 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 at 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
- *
- * History:
- * -------
- * 2003-03-20  regex support in modparam (janakj)
- * 2004-03-12  extra flag USE_FUNC_PARAM added to modparam type -
- *             instead of copying the param value, a func is called (bogdan)
- */
-
-
-#include "modparam.h"
-#include "dprint.h"
-#include "mem/mem.h"
-#include <sys/types.h>
-#include <regex.h>
-#include <string.h>
-
-
-int set_mod_param(char* _mod, char* _name, modparam_t _type, void* _val)
-{
-	void* ptr;
-	
-	if (!_mod) {
-		LOG(L_ERR, "set_mod_param(): Invalid _mod parameter value\n");
-		return -1;
-	}
-
-	if (!_name) {
-		LOG(L_ERR, "set_mod_param(): Invalid _name parameter value\n");
-		return -2;
-	}
-
-	ptr = find_param_export(_mod, _name, _type);
-	if (!ptr) {
-		LOG(L_ERR, "set_mod_param(): Parameter not found\n");
-		return -3;
-	}
-
-	switch(_type) {
-	case STR_PARAM:
-		*((char**)ptr) = strdup((char*)_val);
-		break;
-
-	case INT_PARAM:
-		*((int*)ptr) = (int)(long)_val;
-		break;
-	}
-
-	return 0;
-}
-
-
-int set_mod_param_regex(char* regex, char* name, modparam_t type, void* val)
-{
-	struct sr_module* t;
-	param_export_t* param;
-	regex_t preg;
-	int mod_found, len;
-	char* reg;
-	int n;
-
-	len = strlen(regex);
-	reg = pkg_malloc(len + 2 + 1);
-	if (reg == 0) {
-		LOG(L_ERR, "set_mod_param_regex(): No memory left\n");
-		return -1;
-	}
-	reg[0] = '^';
-	memcpy(reg + 1, regex, len);
-	reg[len + 1] = '$';
-	reg[len + 2] = '\0';
-	
-	if (regcomp(&preg, reg, REG_EXTENDED | REG_NOSUB | REG_ICASE)) {
-		LOG(L_ERR, "set_mod_param_regex(): Error while compiling regular expression\n");
-		pkg_free(reg);
-		return -2;
-	}
-	
-	mod_found = 0;
-
-	for(t = modules; t; t = t->next) {
-		if (regexec(&preg, t->exports->name, 0, 0, 0) == 0) {
-			DBG("set_mod_param_regex: %s matches module %s\n",
-					regex, t->exports->name);
-			mod_found = 1;
-			for(param=t->exports->params;param && param->name ; param++) {
-				if ((strcmp(name, param->name) == 0) &&
-				( PARAM_TYPE_MASK(param->type) == type)) {
-					DBG("set_mod_param_regex: found <%s> in module %s [%s]\n",
-						name, t->exports->name, t->path);
-
-					if (param->type&USE_FUNC_PARAM) {
-						n = ((param_func_t)(param->param_pointer))(type, val );
-						if (n<0)
-							return -4;
-					} else {
-						switch(type) {
-							case STR_PARAM:
-								*((char**)(param->param_pointer)) =
-									strdup((char*)val);
-								break;
-							case INT_PARAM:
-								*((int*)(param->param_pointer)) =
-									(int)(long)val;
-								break;
-						}
-					}
-
-					break;
-				}
-			}
-			if (!param || !param->name) {
-				LOG(L_ERR, "set_mod_param_regex: parameter <%s> not found in module <%s>\n",
-				    name, t->exports->name);
-				regfree(&preg);
-				pkg_free(reg);
-				return -3;
-			}
-		}
-	}
-
-	regfree(&preg);
-	if (!mod_found) {
-		LOG(L_ERR, "set_mod_param_regex: No module matching %s found\n|", regex);
-		pkg_free(reg);
-		return -4;
-	}
-
-	pkg_free(reg);
-	return 0;
-}

Deleted: ser/trunk/modparam.h
===================================================================
--- ser/trunk/modparam.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/modparam.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,39 +0,0 @@
-/*
- * $Id: modparam.h,v 1.5 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- */
-
-
-#ifndef modparam_h
-#define modparam_h
-
-#include "sr_module.h"
-
-int set_mod_param(char* _mod, char* _name, modparam_t _type, void* _val);
-
-int set_mod_param_regex(char* regex, char* name, modparam_t type, void* val);
-
-#endif

Deleted: ser/trunk/msg_translator.c
===================================================================
--- ser/trunk/msg_translator.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/msg_translator.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,2004 +0,0 @@
-/* 
- * $Id: msg_translator.c,v 1.137.2.1 2005/07/20 17:11:50 andrei Exp $
- *
- *
- * 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 at 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
- * 
- *
- * History:
- * --------
- * 2003-01-20  bug_fix: use of return value of snprintf aligned to C99 (jiri)
- * 2003-01-23  added rport patches, contributed by 
- *              Maxim Sobolev <sobomax at FreeBSD.org> and heavily modified by me
- *              (andrei)
- * 2003-01-24  added i param to via of outgoing requests (used by tcp),
- *              modified via_builder params (andrei)
- * 2003-01-27  more rport fixes (make use of new via_param->start)  (andrei)
- * 2003-01-27  next baby-step to removing ZT - PRESERVE_ZT (jiri)
- * 2003-01-29  scratchpad removed (jiri)
- * 2003-02-28  scratchpad compatibility abandoned (jiri)
- * 2003-03-01  VOICE_MAIL defs removed (jiri)
- * 2003-03-06  totags in outgoing replies bookmarked to enable
- *             ACK/200 tag matching (andrei)
- * 2003-03-18  killed the build_warning snprintf (andrei)
- * 2003-03-31  added subst lump support (andrei)
- * 2003-04-01  added opt (conditional) lump support (andrei)
- * 2003-04-02  added more subst lumps: SUBST_{SND,RCV}_ALL  
- *              => ip:port;transport=proto (andrei)
- * 2003-04-12  added FL_FORCE_RPORT support (andrei)
- * 2003-04-13  updated warning builder -- fixed (andrei)
- * 2003-07-10  check_via_address knows now how to compare with ipv6 address
- *              references (e.g [::1]) (andrei)
- *             build_req_fomr_sip_req no longer adds 1 for ipv6 via parameter
- *              position calculations ([] are part of host.s now) (andrei)
- * 2003-10-02  via+lump dst address/port can be set to preset values (andrei)
- * 2003-10-08  receive_test function-alized (jiri)
- * 2003-10-20  added body_lump list (sip_msg), adjust_clen (andrei & jan)
- * 2003-11-11  type of rpl_lumps replaced by flags (bogdan)
- *
- */
-/* Via special params:
- * requests:
- * - if the address in via is different from the src_ip or an existing
- *   received=something is found, received=src_ip is added (and any preexisting
- *   received is deleted). received is added as the first via parameter if no
- *   receive is previously present or over the old receive.
- * - if the original via contains rport / rport=something or msg->msg_flags
- *   FL_FORCE_RPORT is set (e.g. script force_rport() cmd) rport=src_port
- *   is added (over previous rport / as first via param or after received
- *   if no received was present and received is added too)
- * local replies:
- *    (see also sl_send_reply)
- *  - rport and received are added in mostly the same way as for requests, but 
- *    in the reverse order (first rport and then received). See also 
- *    limitations.
- *  - if reply_to_via is set (default off) the local reply will be sent to
- *    the address in via (received is ignored since it was not set by us). The
- *    destination port is either the message source port if via contains rport
- *    or the FL_FORCE_RPORT flag is set or the port from the via. If either
- *    port or rport are present a normal dns lookup (instead of a srv lookup)
- *    is performed on the address. If no port is present and a srv lookup is 
- *    performed the port is taken from the srv lookup. If the srv lookup failed
- *    or it was not performed, the port is set to the default sip port (5060).
- *  - if reply_to_via is off (default) the local reply is sent to the message
- *    source ip address. The destination port is set to the source port if 
- *    rport is present or FL_FORCE_RPORT flag is set, to the via port or to
- *    the default sip port (5060) if neither rport or via port are present.
- * "normal" replies:
- *  - if received is present the message is sent to the received address else
- *    if no port is present (neither a normal via port or rport) a dns srv 
- *    lookup is performed on the host part and the reply is sent to the 
- *    resulting ip. If a port is present or the host part is an ip address 
- *    the dns lookup will be a "normal" one (A or AAAA).
- *  - if rport is present, it's value will be used as the destination port
- *   (and this will also disable srv lookups)
- *  - if no port is present the destination port will be taken from the srv
- *    lookup. If the srv lookup fails or is not performed (e.g. ip address
- *    in host) the destination port will be set to the default sip port (5060).
- *  
- * Known limitations:
- * - when locally replying to a message, rport and received will be appended to
- *   the via header parameters (for forwarded requests they are inserted at the
- *   beginning).
- * - a locally generated reply might get two received via parameters if a
- *   received is already present in the original message (this should not
- *   happen though, but ...)
- *
- *--andrei
-*/
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "comp_defs.h"
-#include "msg_translator.h"
-#include "globals.h"
-#include "error.h"
-#include "mem/mem.h"
-#include "dprint.h"
-#include "config.h"
-#include "md5utils.h"
-#include "data_lump.h"
-#include "data_lump_rpl.h"
-#include "ip_addr.h"
-#include "resolve.h"
-#include "ut.h"
-#include "pt.h"
-
-
-#define append_str(_dest,_src,_len) \
-	do{\
-		memcpy( (_dest) , (_src) , (_len) );\
-		(_dest) += (_len) ;\
-	}while(0);
-
-#define append_str_trans(_dest,_src,_len,_msg) \
-	append_str( (_dest), (_src), (_len) );
-
-extern char version[];
-extern int version_len;
-
-
-
-
-
-
-
-/* checks if ip is in host(name) and ?host(ip)=name?
- * ip must be in network byte order!
- *  resolver = DO_DNS | DO_REV_DNS; if 0 no dns check is made
- * return 0 if equal */
-static int check_via_address(struct ip_addr* ip, str *name, 
-				unsigned short port, int resolver)
-{
-	struct hostent* he;
-	int i;
-	char* s;
-	int len;
-
-	/* maybe we are lucky and name it's an ip */
-	s=ip_addr2a(ip);
-	if (s){
-		DBG("check_via_address(%s, %.*s, %d)\n", 
-			s, name->len, name->s, resolver);
-		len=strlen(s);
-
-	#ifdef USE_IPV6
-		/* check if name->s is an ipv6 address or an ipv6 address ref. */
-		if ((ip->af==AF_INET6) &&
-				(	((len==name->len)&&(strncasecmp(name->s, s, name->len)==0))
-					||
-					((len==(name->len-2))&&(name->s[0]=='[')&&
-						(name->s[name->len-1]==']')&&
-						(strncasecmp(name->s+1, s, len)==0))
-				)
-		   )
-			return 0;
-		else
-	#endif
-
-			if (strncmp(name->s, s, name->len)==0) 
-				return 0;
-	}else{
-		LOG(L_CRIT, "check_via_address: BUG: could not convert ip address\n");
-		return -1;
-	}
-
-	if (port==0) port=SIP_PORT;
-	if (resolver&DO_DNS){
-		DBG("check_via_address: doing dns lookup\n");
-		/* try all names ips */
-		he=sip_resolvehost(name, &port, 0); /* FIXME proto? */
-		if (he && ip->af==he->h_addrtype){
-			for(i=0;he && he->h_addr_list[i];i++){
-				if ( memcmp(&he->h_addr_list[i], ip->u.addr, ip->len)==0)
-					return 0;
-			}
-		}
-	}
-	if (resolver&DO_REV_DNS){
-		DBG("check_via_address: doing rev. dns lookup\n");
-		/* try reverse dns */
-		he=rev_resolvehost(ip);
-		if (he && (strncmp(he->h_name, name->s, name->len)==0))
-			return 0;
-		for (i=0; he && he->h_aliases[i];i++){
-			if (strncmp(he->h_aliases[i],name->s, name->len)==0)
-				return 0;
-		}
-	}
-	return -1;
-}
-
-
-/* check if IP address in Via != source IP address of signaling */
-int received_test( struct sip_msg *msg )
-{
-	int rcvd;
-
-	rcvd=msg->via1->received
-			|| check_via_address(&msg->rcv.src_ip, &msg->via1->host,
-							msg->via1->port, received_dns);
-	return rcvd;
-}
-
-
-static char * warning_builder( struct sip_msg *msg, unsigned int *returned_len)
-{
-	static char buf[MAX_WARNING_LEN];
-	str *foo;
-	int print_len, l;
-	int clen;
-	char* t;
-
-#define str_print(string, string_len) \
-		do{ \
-			l=(string_len); \
-			if ((clen+l)>MAX_WARNING_LEN) \
-				goto error_overflow; \
-			memcpy(buf+clen, (string), l); \
-			clen+=l; \
-		}while(0)
-	
-#define str_lenpair_print(string, string_len, string2, string2_len) \
-		do{ \
-			str_print(string, string_len); \
-			str_print(string2, string2_len);\
-		}while(0)
-	
-#define str_pair_print( string, string2, string2_len) \
-		str_lenpair_print((string), strlen((string)), (string2), (string2_len))
-		
-#define str_int_print(string, intval)\
-		do{\
-			t=int2str((intval), &print_len); \
-			str_pair_print(string, t, print_len);\
-		} while(0)
-		
-#define str_ipaddr_print(string, ipaddr_val)\
-		do{\
-			t=ip_addr2a((ipaddr_val)); \
-			print_len=strlen(t); \
-			str_pair_print(string, t, print_len);\
-		} while(0)
-	
-	clen=0;
-	str_lenpair_print(WARNING, WARNING_LEN,
-						msg->rcv.bind_address->name.s,
-						msg->rcv.bind_address->name.len);
-	str_lenpair_print(":", 1, msg->rcv.bind_address->port_no_str.s,
-						msg->rcv.bind_address->port_no_str.len);
-	str_print(WARNING_PHRASE, WARNING_PHRASE_LEN);
-	
-	/*adding out_uri*/
-	if (msg->new_uri.s)
-		foo=&(msg->new_uri);
-	else
-		foo=&(msg->first_line.u.request.uri);
-	/* pid= */
-	str_int_print(" pid=", my_pid());
-	/* req_src_ip= */
-	str_ipaddr_print(" req_src_ip=", &msg->rcv.src_ip);
-	str_int_print(" req_src_port=", msg->rcv.src_port);
-	str_pair_print(" in_uri=", msg->first_line.u.request.uri.s,
-								msg->first_line.u.request.uri.len);
-	str_pair_print(" out_uri=", foo->s, foo->len);
-	str_pair_print(" via_cnt", msg->parsed_flag & HDR_EOH ? "=" : ">", 1);
-	str_int_print("=", via_cnt);
-	if (clen<MAX_WARNING_LEN){ buf[clen]='"'; clen++; }
-	else goto error_overflow;
-		
-		
-	*returned_len=clen;
-	return buf;
-error_overflow:
-	LOG(L_ERR, "ERROR: warning_builder: buffer size exceeded\n");
-	*returned_len=0;
-	return 0;
-}
-
-
-
-
-char* received_builder(struct sip_msg *msg, unsigned int *received_len)
-{
-	char *buf;
-	int  len;
-	struct ip_addr *source_ip;
-	char *tmp;
-	int  tmp_len;
-
-	source_ip=&msg->rcv.src_ip;
-
-	buf=pkg_malloc(sizeof(char)*MAX_RECEIVED_SIZE);
-	if (buf==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: received_builder: out of memory\n");
-		return 0;
-	}
-	memcpy(buf, RECEIVED, RECEIVED_LEN);
-	if ( (tmp=ip_addr2a(source_ip))==0)
-		return 0; /* error*/
-	tmp_len=strlen(tmp);
-	len=RECEIVED_LEN+tmp_len;
-	
-	memcpy(buf+RECEIVED_LEN, tmp, tmp_len);
-	buf[len]=0; /*null terminate it */
-
-	*received_len = len;
-	return buf;
-}
-
-
-
-char* rport_builder(struct sip_msg *msg, unsigned int *rport_len)
-{
-	char* buf;
-	char* tmp;
-	int tmp_len;
-	int len;
-	
-	tmp_len=0;
-	tmp=int2str(msg->rcv.src_port, &tmp_len);
-	len=RPORT_LEN+tmp_len;
-	buf=pkg_malloc(sizeof(char)*(len+1));/* space for null term */
-	if (buf==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: rport_builder: out of memory\n");
-		return 0;
-	}
-	memcpy(buf, RPORT, RPORT_LEN);
-	memcpy(buf+RPORT_LEN, tmp, tmp_len);
-	buf[len]=0; /*null terminate it*/
-	
-	*rport_len=len;
-	return buf;
-}
-
-
-
-char* id_builder(struct sip_msg* msg, unsigned int *id_len)
-{
-	char* buf;
-	int len, value_len;
-	char revhex[sizeof(int)*2];
-	char* p;
-	int size;
-	
-	size=sizeof(int)*2;
-	p=&revhex[0];
-	if (int2reverse_hex(&p, &size, msg->rcv.proto_reserved1)==-1){
-		LOG(L_CRIT, "BUG: id_builder: not enough space for id\n");
-		return 0;
-	}
-	value_len=p-&revhex[0];
-	len=ID_PARAM_LEN+value_len; 
-	buf=pkg_malloc(sizeof(char)*(len+1));/* place for ending \0 */
-	if (buf==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: rport_builder: out of memory\n");
-		return 0;
-	}
-	memcpy(buf, ID_PARAM, ID_PARAM_LEN);
-	memcpy(buf+ID_PARAM_LEN, revhex, value_len);
-	buf[len]=0; /* null terminate it */
-	*id_len=len;
-	return buf;
-}
-
-
-
-char* clen_builder(struct sip_msg* msg, int *clen_len, int diff)
-{
-	char* buf;
-	int len;
-	int value;
-	char* value_s;
-	int value_len;
-	char* body;
-	
-	
-	body=get_body(msg);
-	if (body==0){
-		ser_error=E_BAD_REQ;
-		LOG(L_ERR, "ERROR: clen_builder: no message body found"
-					" (missing crlf?)");
-		return 0;
-	}
-	value=msg->len-(int)(body-msg->buf)+diff;
-	value_s=int2str(value, &value_len);
-	DBG("clen_builder: content-length: %d (%s)\n", value, value_s);
-		
-	len=CONTENT_LENGTH_LEN+value_len+CRLF_LEN;
-	buf=pkg_malloc(sizeof(char)*(len+1));
-	if (buf==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: clen_builder: out of memory\n");
-		return 0;
-	}
-	memcpy(buf, CONTENT_LENGTH, CONTENT_LENGTH_LEN);
-	memcpy(buf+CONTENT_LENGTH_LEN, value_s, value_len);
-	memcpy(buf+CONTENT_LENGTH_LEN+value_len, CRLF, CRLF_LEN);
-	buf[len]=0; /* null terminate it */
-	*clen_len=len;
-	return buf;
-}
-
-
-
-/* checks if a lump opt condition 
- * returns 1 if cond is true, 0 if false */
-static inline int lump_check_opt(	enum lump_conditions cond,
-									struct sip_msg* msg,
-									struct socket_info* snd_s
-									)
-{
-	struct ip_addr* ip;
-	unsigned short port;
-	int proto;
-
-#define get_ip_port_proto \
-			if (snd_s==0){ \
-				LOG(L_CRIT, "ERROR: lump_check_opt: null send socket\n"); \
-				return 1; /* we presume they are different :-) */ \
-			} \
-			if (msg->rcv.bind_address){ \
-				ip=&msg->rcv.bind_address->address; \
-				port=msg->rcv.bind_address->port_no; \
-				proto=msg->rcv.bind_address->proto; \
-			}else{ \
-				ip=&msg->rcv.dst_ip; \
-				port=msg->rcv.dst_port; \
-				proto=msg->rcv.proto; \
-			} \
-			
-	switch(cond){
-		case COND_FALSE:
-			return 0;
-		case COND_TRUE:
-			return 1;
-		case COND_IF_DIFF_REALMS:
-			get_ip_port_proto;
-			/* faster tests first */
-			if ((port==snd_s->port_no)&&(proto==snd_s->proto)&&
-				(ip_addr_cmp(ip, &snd_s->address)))
-				return 0;
-			else return 1;
-		case COND_IF_DIFF_AF:
-			get_ip_port_proto;
-			if (ip->af!=snd_s->address.af) return 1;
-			else return 0;
-		case COND_IF_DIFF_PROTO:
-			get_ip_port_proto;
-			if (proto!=snd_s->proto) return 1;
-			else return 0;
-		case COND_IF_DIFF_PORT:
-			get_ip_port_proto;
-			if (port!=snd_s->port_no) return 1;
-			else return 0;
-		case COND_IF_DIFF_IP:
-			get_ip_port_proto;
-			if (ip_addr_cmp(ip, &snd_s->address)) return 0;
-			else return 1;
-		case COND_IF_RAND:
-			return (rand()>=RAND_MAX/2);
-		default:
-			LOG(L_CRIT, "BUG: lump_check_opt: unknown lump condition %d\n",
-					cond);
-	}
-	return 0; /* false */
-}
-
-
-
-/* computes the "unpacked" len of a lump list,
-   code moved from build_req_from_req */
-static inline int lumps_len(struct sip_msg* msg, struct lump* lumps, struct socket_info* send_sock)
-{
-	int s_offset;
-	int new_len;
-	struct lump* t;
-	struct lump* r;
-	str* send_address_str;
-	str* send_port_str;
-
-#define SUBST_LUMP_LEN(subst_l) \
-		switch((subst_l)->u.subst){ \
-			case SUBST_RCV_IP: \
-				if (msg->rcv.bind_address){ \
-					new_len+=msg->rcv.bind_address->address_str.len; \
-					if (msg->rcv.bind_address->address.af!=AF_INET) \
-						new_len+=2; \
-				}else{ \
-					/* FIXME */ \
-					LOG(L_CRIT, "FIXME: null bind_address\n"); \
-				}; \
-				break; \
-			case SUBST_RCV_PORT: \
-				if (msg->rcv.bind_address){ \
-					new_len+=msg->rcv.bind_address->port_no_str.len; \
-				}else{ \
-					/* FIXME */ \
-					LOG(L_CRIT, "FIXME: null bind_address\n"); \
-				}; \
-				break; \
-			case SUBST_RCV_PROTO: \
-				if (msg->rcv.bind_address){ \
-					switch(msg->rcv.bind_address->proto){ \
-						case PROTO_NONE: \
-						case PROTO_UDP: \
-						case PROTO_TCP: \
-						case PROTO_TLS: \
-								new_len+=3; \
-								break; \
-						case PROTO_SCTP: \
-								new_len+=4; \
-								break; \
-						default: \
-						LOG(L_CRIT, "BUG: lumps_len: unknown proto %d\n", \
-								msg->rcv.bind_address->proto); \
-					}\
-				}else{ \
-					/* FIXME */ \
-					LOG(L_CRIT, "FIXME: null bind_address\n"); \
-				}; \
-				break; \
-			case SUBST_RCV_ALL: \
-				if (msg->rcv.bind_address){ \
-					new_len+=msg->rcv.bind_address->address_str.len; \
-					if (msg->rcv.bind_address->address.af!=AF_INET) \
-						new_len+=2; \
-					if (msg->rcv.bind_address->port_no!=SIP_PORT){ \
-						/* add :port_no */ \
-						new_len+=1+msg->rcv.bind_address->port_no_str.len; \
-					}\
-						/*add;transport=xxx*/ \
-					switch(msg->rcv.bind_address->proto){ \
-						case PROTO_NONE: \
-						case PROTO_UDP: \
-								break; /* udp is the default */ \
-						case PROTO_TCP: \
-						case PROTO_TLS: \
-								new_len+=TRANSPORT_PARAM_LEN+3; \
-								break; \
-						case PROTO_SCTP: \
-								new_len+=TRANSPORT_PARAM_LEN+4; \
-								break; \
-						default: \
-						LOG(L_CRIT, "BUG: lumps_len: unknown proto %d\n", \
-								msg->rcv.bind_address->proto); \
-					}\
-				}else{ \
-					/* FIXME */ \
-					LOG(L_CRIT, "FIXME: null bind_address\n"); \
-				}; \
-				break; \
-			case SUBST_SND_IP: \
-				if (send_sock){ \
-					new_len+=send_address_str->len; \
-					if (send_sock->address.af!=AF_INET && \
-							send_address_str==&(send_sock->address_str)) \
-						new_len+=2; \
-				}else{ \
-					LOG(L_CRIT, "FIXME: lumps_len called with" \
-							" null send_sock\n"); \
-				}; \
-				break; \
-			case SUBST_SND_PORT: \
-				if (send_sock){ \
-					new_len+=send_port_str->len; \
-				}else{ \
-					LOG(L_CRIT, "FIXME: lumps_len called with" \
-							" null send_sock\n"); \
-				}; \
-				break; \
-			case SUBST_SND_PROTO: \
-				if (send_sock){ \
-					switch(send_sock->proto){ \
-						case PROTO_NONE: \
-						case PROTO_UDP: \
-						case PROTO_TCP: \
-						case PROTO_TLS: \
-								new_len+=3; \
-								break; \
-						case PROTO_SCTP: \
-								new_len+=4; \
-								break; \
-						default: \
-						LOG(L_CRIT, "BUG: lumps_len: unknown proto %d\n", \
-								send_sock->proto); \
-					}\
-				}else{ \
-					LOG(L_CRIT, "FIXME: lumps_len called with" \
-							" null send_sock\n"); \
-				}; \
-				break; \
-			case SUBST_SND_ALL: \
-				if (send_sock){ \
-					new_len+=send_address_str->len; \
-					if ((send_sock->address.af!=AF_INET) && \
-							(send_address_str==&(send_sock->address_str))) \
-						new_len+=2; \
-					if ((send_sock->port_no!=SIP_PORT) || \
-							(send_port_str!=&(send_sock->port_no_str))){ \
-						/* add :port_no */ \
-						new_len+=1+send_port_str->len; \
-					}\
-					/*add;transport=xxx*/ \
-					switch(send_sock->proto){ \
-						case PROTO_NONE: \
-						case PROTO_UDP: \
-								break; /* udp is the default */ \
-						case PROTO_TCP: \
-						case PROTO_TLS: \
-								new_len+=TRANSPORT_PARAM_LEN+3; \
-								break; \
-						case PROTO_SCTP: \
-								new_len+=TRANSPORT_PARAM_LEN+4; \
-								break; \
-						default: \
-						LOG(L_CRIT, "BUG: lumps_len: unknown proto %d\n", \
-								send_sock->proto); \
-					}\
-				}else{ \
-					/* FIXME */ \
-					LOG(L_CRIT, "FIXME: lumps_len called with" \
-							" null send_sock\n"); \
-				}; \
-				break; \
-			case SUBST_NOP: /* do nothing */ \
-				break; \
-			default: \
-				LOG(L_CRIT, "BUG: unknown subst type %d\n", \
-						(subst_l)->u.subst); \
-		}
-	
-	s_offset=0;
-	new_len=0;
-	/* init send_address_str & send_port_str */
-	if (msg->set_global_address.len)
-		send_address_str=&(msg->set_global_address);
-	else
-		send_address_str=&(send_sock->address_str);
-	if (msg->set_global_port.len)
-		send_port_str=&(msg->set_global_address);
-	else
-		send_port_str=&(send_sock->port_no_str);
-	
-	
-	for(t=lumps;t;t=t->next){
-		/* skip if this is an OPT lump and the condition is not satisfied */
-		if ((t->op==LUMP_ADD_OPT) && !lump_check_opt(t->u.cond, msg, send_sock))
-			continue;
-		for(r=t->before;r;r=r->before){
-			switch(r->op){
-				case LUMP_ADD:
-					new_len+=r->len;
-					break;
-				case LUMP_ADD_SUBST:
-					SUBST_LUMP_LEN(r);
-					break;
-				case LUMP_ADD_OPT:
-					/* skip if this is an OPT lump and the condition is 
-					 * not satisfied */
-					if (!lump_check_opt(r->u.cond, msg, send_sock))
-						goto skip_before;
-					break;
-				default:
-					/* only ADD allowed for before/after */
-						LOG(L_CRIT, "BUG: lumps_len: invalid op "
-							"for data lump (%x)\n", r->op);
-			}
-		}
-skip_before:
-		switch(t->op){
-			case LUMP_ADD:
-				new_len+=t->len;
-				break;
-			case LUMP_ADD_SUBST:
-				SUBST_LUMP_LEN(t);
-				break;
-			case LUMP_ADD_OPT:
-				/* we don't do anything here, it's only a condition for
-				 * before & after */
-				break;
-			case LUMP_DEL:
-				/* fix overlapping deleted zones */
-				if (t->u.offset < s_offset){
-					/* change len */
-					if (t->len>s_offset-t->u.offset)
-							t->len-=s_offset-t->u.offset;
-					else t->len=0;
-					t->u.offset=s_offset;
-				}
-				s_offset=t->u.offset+t->len;
-				new_len-=t->len;
-				break;
-			case LUMP_NOP:
-				/* fix offset if overlapping on a deleted zone */
-				if (t->u.offset < s_offset){
-					t->u.offset=s_offset;
-				}else
-					s_offset=t->u.offset;
-				/* do nothing */
-				break;
-			default:
-				LOG(L_CRIT,"BUG:lumps_len: invalid"
-							" op for data lump (%x)\n", r->op);
-		}
-		for (r=t->after;r;r=r->after){
-			switch(r->op){
-				case LUMP_ADD:
-					new_len+=r->len;
-					break;
-				case LUMP_ADD_SUBST:
-					SUBST_LUMP_LEN(r);
-					break;
-				case LUMP_ADD_OPT:
-					/* skip if this is an OPT lump and the condition is 
-					 * not satisfied */
-					if (!lump_check_opt(r->u.cond, msg, send_sock))
-						goto skip_after;
-					break;
-				default:
-					/* only ADD allowed for before/after */
-					LOG(L_CRIT, "BUG:lumps_len: invalid"
-								" op for data lump (%x)\n", r->op);
-			}
-		}
-skip_after:
-		; /* to make gcc 3.* happy */
-	}
-	return new_len;
-}
-
-
-
-/* another helper functions, adds/Removes the lump,
-	code moved form build_req_from_req  */
-
-static inline void process_lumps(	struct sip_msg* msg,
-					                                struct lump* lumps,
-									char* new_buf, 
-									unsigned int* new_buf_offs, 
-									unsigned int* orig_offs,
-									struct socket_info* send_sock)
-{
-	struct lump *t;
-	struct lump *r;
-	char* orig;
-	int size;
-	int offset;
-	int s_offset;
-	str* send_address_str;
-	str* send_port_str;
-
-#define SUBST_LUMP(subst_l) \
-	switch((subst_l)->u.subst){ \
-		case SUBST_RCV_IP: \
-			if (msg->rcv.bind_address){  \
-				if (msg->rcv.bind_address->address.af!=AF_INET){\
-					new_buf[offset]='['; offset++; \
-				}\
-				memcpy(new_buf+offset, msg->rcv.bind_address->address_str.s, \
-						msg->rcv.bind_address->address_str.len); \
-				offset+=msg->rcv.bind_address->address_str.len; \
-				if (msg->rcv.bind_address->address.af!=AF_INET){\
-					new_buf[offset]=']'; offset++; \
-				}\
-			}else{  \
-				/*FIXME*/ \
-				LOG(L_CRIT, "FIXME: process_lumps: null bind_address\n"); \
-			}; \
-			break; \
-		case SUBST_RCV_PORT: \
-			if (msg->rcv.bind_address){  \
-				memcpy(new_buf+offset, msg->rcv.bind_address->port_no_str.s, \
-						msg->rcv.bind_address->port_no_str.len); \
-				offset+=msg->rcv.bind_address->port_no_str.len; \
-			}else{  \
-				/*FIXME*/ \
-				LOG(L_CRIT, "FIXME: process_lumps: null bind_address\n"); \
-			}; \
-			break; \
-		case SUBST_RCV_ALL: \
-			if (msg->rcv.bind_address){  \
-				/* address */ \
-				if (msg->rcv.bind_address->address.af!=AF_INET){\
-					new_buf[offset]='['; offset++; \
-				}\
-				memcpy(new_buf+offset, msg->rcv.bind_address->address_str.s, \
-						msg->rcv.bind_address->address_str.len); \
-				offset+=msg->rcv.bind_address->address_str.len; \
-				if (msg->rcv.bind_address->address.af!=AF_INET){\
-					new_buf[offset]=']'; offset++; \
-				}\
-				/* :port */ \
-				if (msg->rcv.bind_address->port_no!=SIP_PORT){ \
-					new_buf[offset]=':'; offset++; \
-					memcpy(new_buf+offset, \
-							msg->rcv.bind_address->port_no_str.s, \
-							msg->rcv.bind_address->port_no_str.len); \
-					offset+=msg->rcv.bind_address->port_no_str.len; \
-				}\
-				switch(msg->rcv.bind_address->proto){ \
-					case PROTO_NONE: \
-					case PROTO_UDP: \
-						break; /* nothing to do, udp is default*/ \
-					case PROTO_TCP: \
-						memcpy(new_buf+offset, TRANSPORT_PARAM, \
-								TRANSPORT_PARAM_LEN); \
-						offset+=TRANSPORT_PARAM_LEN; \
-						memcpy(new_buf+offset, "tcp", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_TLS: \
-						memcpy(new_buf+offset, TRANSPORT_PARAM, \
-								TRANSPORT_PARAM_LEN); \
-						offset+=TRANSPORT_PARAM_LEN; \
-						memcpy(new_buf+offset, "tls", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_SCTP: \
-						memcpy(new_buf+offset, TRANSPORT_PARAM, \
-								TRANSPORT_PARAM_LEN); \
-						offset+=TRANSPORT_PARAM_LEN; \
-						memcpy(new_buf+offset, "sctp", 4); \
-						offset+=4; \
-						break; \
-					default: \
-						LOG(L_CRIT, "BUG: process_lumps: unknown proto %d\n", \
-								msg->rcv.bind_address->proto); \
-				} \
-			}else{  \
-				/*FIXME*/ \
-				LOG(L_CRIT, "FIXME: process_lumps: null bind_address\n"); \
-			}; \
-			break; \
-		case SUBST_SND_IP: \
-			if (send_sock){  \
-				if ((send_sock->address.af!=AF_INET) && \
-						(send_address_str==&(send_sock->address_str))){\
-					new_buf[offset]='['; offset++; \
-				}\
-				memcpy(new_buf+offset, send_address_str->s, \
-									send_address_str->len); \
-				offset+=send_address_str->len; \
-				if ((send_sock->address.af!=AF_INET) && \
-						(send_address_str==&(send_sock->address_str))){\
-					new_buf[offset]=']'; offset++; \
-				}\
-			}else{  \
-				/*FIXME*/ \
-				LOG(L_CRIT, "FIXME: process_lumps: called with" \
-							" null send_sock\n"); \
-			}; \
-			break; \
-		case SUBST_SND_PORT: \
-			if (send_sock){  \
-				memcpy(new_buf+offset, send_port_str->s, \
-									send_port_str->len); \
-				offset+=send_port_str->len; \
-			}else{  \
-				/*FIXME*/ \
-				LOG(L_CRIT, "FIXME: process_lumps: called with" \
-						" null send_sock\n"); \
-			}; \
-			break; \
-		case SUBST_SND_ALL: \
-			if (send_sock){  \
-				/* address */ \
-				if ((send_sock->address.af!=AF_INET) && \
-						(send_address_str==&(send_sock->address_str))){\
-					new_buf[offset]='['; offset++; \
-				}\
-				memcpy(new_buf+offset, send_address_str->s, \
-						send_address_str->len); \
-				offset+=send_address_str->len; \
-				if ((send_sock->address.af!=AF_INET) && \
-						(send_address_str==&(send_sock->address_str))){\
-					new_buf[offset]=']'; offset++; \
-				}\
-				/* :port */ \
-				if ((send_sock->port_no!=SIP_PORT) || \
-					(send_port_str!=&(send_sock->port_no_str))){ \
-					new_buf[offset]=':'; offset++; \
-					memcpy(new_buf+offset, send_port_str->s, \
-							send_port_str->len); \
-					offset+=send_port_str->len; \
-				}\
-				switch(send_sock->proto){ \
-					case PROTO_NONE: \
-					case PROTO_UDP: \
-						break; /* nothing to do, udp is default*/ \
-					case PROTO_TCP: \
-						memcpy(new_buf+offset, TRANSPORT_PARAM, \
-								TRANSPORT_PARAM_LEN); \
-						offset+=TRANSPORT_PARAM_LEN; \
-						memcpy(new_buf+offset, "tcp", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_TLS: \
-						memcpy(new_buf+offset, TRANSPORT_PARAM, \
-								TRANSPORT_PARAM_LEN); \
-						offset+=TRANSPORT_PARAM_LEN; \
-						memcpy(new_buf+offset, "tls", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_SCTP: \
-						memcpy(new_buf+offset, TRANSPORT_PARAM, \
-								TRANSPORT_PARAM_LEN); \
-						offset+=TRANSPORT_PARAM_LEN; \
-						memcpy(new_buf+offset, "sctp", 4); \
-						offset+=4; \
-						break; \
-					default: \
-						LOG(L_CRIT, "BUG: process_lumps: unknown proto %d\n", \
-								send_sock->proto); \
-				} \
-			}else{  \
-				/*FIXME*/ \
-				LOG(L_CRIT, "FIXME: process_lumps: null bind_address\n"); \
-			}; \
-			break; \
-		case SUBST_RCV_PROTO: \
-			if (msg->rcv.bind_address){ \
-				switch(msg->rcv.bind_address->proto){ \
-					case PROTO_NONE: \
-					case PROTO_UDP: \
-						memcpy(new_buf+offset, "udp", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_TCP: \
-						memcpy(new_buf+offset, "tcp", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_TLS: \
-						memcpy(new_buf+offset, "tls", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_SCTP: \
-						memcpy(new_buf+offset, "sctp", 4); \
-						offset+=4; \
-						break; \
-					default: \
-						LOG(L_CRIT, "BUG: process_lumps: unknown proto %d\n", \
-								msg->rcv.bind_address->proto); \
-				} \
-			}else{  \
-				/*FIXME*/ \
-				LOG(L_CRIT, "FIXME: process_lumps: called with null" \
-							" send_sock \n"); \
-			}; \
-			break; \
-		case  SUBST_SND_PROTO: \
-			if (send_sock){ \
-				switch(send_sock->proto){ \
-					case PROTO_NONE: \
-					case PROTO_UDP: \
-						memcpy(new_buf+offset, "udp", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_TCP: \
-						memcpy(new_buf+offset, "tcp", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_TLS: \
-						memcpy(new_buf+offset, "tls", 3); \
-						offset+=3; \
-						break; \
-					case PROTO_SCTP: \
-						memcpy(new_buf+offset, "sctp", 4); \
-						offset+=4; \
-						break; \
-					default: \
-						LOG(L_CRIT, "BUG: process_lumps: unknown proto %d\n", \
-								send_sock->proto); \
-				} \
-			}else{  \
-				/*FIXME*/ \
-				LOG(L_CRIT, "FIXME: process_lumps: called with null" \
-							" send_sock \n"); \
-			}; \
-			break; \
-		default: \
-					LOG(L_CRIT, "BUG: process_lumps: unknown subst type %d\n", \
-							(subst_l)->u.subst); \
-	} \
- \
-	
-	/* init send_address_str & send_port_str */
-	if (msg->set_global_address.len)
-		send_address_str=&(msg->set_global_address);
-	else
-		send_address_str=&(send_sock->address_str);
-	if (msg->set_global_port.len)
-		send_port_str=&(msg->set_global_address);
-	else
-		send_port_str=&(send_sock->port_no_str);
-	
-	
-	orig=msg->buf;
-	offset=*new_buf_offs;
-	s_offset=*orig_offs;
-	
-	for (t=lumps;t;t=t->next){
-		switch(t->op){
-			case LUMP_ADD:
-			case LUMP_ADD_SUBST:
-			case LUMP_ADD_OPT:
-				/* skip if this is an OPT lump and the condition is 
-				 * not satisfied */
-				if ((t->op==LUMP_ADD_OPT) &&
-						(!lump_check_opt(t->u.cond, msg, send_sock))) 
-					continue;
-				/* just add it here! */
-				/* process before  */
-				for(r=t->before;r;r=r->before){
-					switch (r->op){
-						case LUMP_ADD:
-							/*just add it here*/
-							memcpy(new_buf+offset, r->u.value, r->len);
-							offset+=r->len;
-							break;
-						case LUMP_ADD_SUBST:
-							SUBST_LUMP(r);
-							break;
-						case LUMP_ADD_OPT:
-							/* skip if this is an OPT lump and the condition is 
-					 		* not satisfied */
-							if (!lump_check_opt(r->u.cond, msg, send_sock))
-								goto skip_before;
-							break;
-						default:
-							/* only ADD allowed for before/after */
-							LOG(L_CRIT, "BUG:process_lumps: "
-									"invalid op for data lump (%x)\n", r->op);
-					}
-				}
-skip_before:
-				/* copy "main" part */
-				switch(t->op){
-					case LUMP_ADD:
-						memcpy(new_buf+offset, t->u.value, t->len);
-						offset+=t->len;
-						break;
-					case LUMP_ADD_SUBST:
-						SUBST_LUMP(t);
-						break;
-					case LUMP_ADD_OPT:
-						/* do nothing, it's only a condition */
-						break;
-					default: 
-						/* should not ever get here */
-						LOG(L_CRIT, "BUG: process_lumps: unhandled data lump "
-								" op %d\n", t->op);
-				}
-				/* process after */
-				for(r=t->after;r;r=r->after){
-					switch (r->op){
-						case LUMP_ADD:
-							/*just add it here*/
-							memcpy(new_buf+offset, r->u.value, r->len);
-							offset+=r->len;
-							break;
-						case LUMP_ADD_SUBST:
-							SUBST_LUMP(r);
-							break;
-						case LUMP_ADD_OPT:
-							/* skip if this is an OPT lump and the condition is 
-					 		* not satisfied */
-							if (!lump_check_opt(r->u.cond, msg, send_sock))
-								goto skip_after;
-							break;
-						default:
-							/* only ADD allowed for before/after */
-							LOG(L_CRIT, "BUG:process_lumps: "
-									"invalid op for data lump (%x)\n", r->op);
-					}
-				}
-skip_after:
-				break;
-			case LUMP_NOP:
-			case LUMP_DEL:
-				/* copy till offset */
-				if (s_offset>t->u.offset){
-					DBG("Warning: (%d) overlapped lumps offsets,"
-						" ignoring(%x, %x)\n", t->op, s_offset,t->u.offset);
-					/* this should've been fixed above (when computing len) */
-					/* just ignore it*/
-					break;
-				}
-				size=t->u.offset-s_offset;
-				if (size){
-					memcpy(new_buf+offset, orig+s_offset,size);
-					offset+=size;
-					s_offset+=size;
-				}
-				/* process before  */
-				for(r=t->before;r;r=r->before){
-					switch (r->op){
-						case LUMP_ADD:
-							/*just add it here*/
-							memcpy(new_buf+offset, r->u.value, r->len);
-							offset+=r->len;
-							break;
-						case LUMP_ADD_SUBST:
-							SUBST_LUMP(r);
-							break;
-						case LUMP_ADD_OPT:
-							/* skip if this is an OPT lump and the condition is 
-					 		* not satisfied */
-							if (!lump_check_opt(r->u.cond, msg, send_sock))
-								goto skip_nop_before;
-							break;
-						default:
-							/* only ADD allowed for before/after */
-							LOG(L_CRIT, "BUG:process_lumps: "
-									"invalid op for data lump (%x)\n",r->op);
-					}
-				}
-skip_nop_before:
-				/* process main (del only) */
-				if (t->op==LUMP_DEL){
-					/* skip len bytes from orig msg */
-					s_offset+=t->len;
-				}
-				/* process after */
-				for(r=t->after;r;r=r->after){
-					switch (r->op){
-						case LUMP_ADD:
-							/*just add it here*/
-							memcpy(new_buf+offset, r->u.value, r->len);
-							offset+=r->len;
-							break;
-						case LUMP_ADD_SUBST:
-							SUBST_LUMP(r);
-							break;
-						case LUMP_ADD_OPT:
-							/* skip if this is an OPT lump and the condition is 
-					 		* not satisfied */
-							if (!lump_check_opt(r->u.cond, msg, send_sock)) 
-								goto skip_nop_after;
-							break;
-						default:
-							/* only ADD allowed for before/after */
-							LOG(L_CRIT, "BUG:process_lumps: "
-									"invalid op for data lump (%x)\n", r->op);
-					}
-				}
-skip_nop_after:
-				break;
-			default:
-					LOG(L_CRIT, "BUG: process_lumps: "
-							"unknown op (%x)\n", t->op);
-		}
-	}
-	*new_buf_offs=offset;
-	*orig_offs=s_offset;
-}
-
-
-/*
- * Adjust/insert Content-Length if necessary
- */
-static inline int adjust_clen(struct sip_msg* msg, int body_delta, int proto)
-{
-	struct lump* anchor;
-	char* clen_buf;
-	int clen_len;
-
-	/* Calculate message length difference caused by lumps modifying message
-	 * body, from this point on the message body must not be modified. Zero
-	 * value indicates that the body hasn't been modified
-	*/
-
-	clen_buf = 0;
-	anchor=0;
-	
-	/* check to see if we need to add clen */
-#ifdef USE_TCP
-	if (proto == PROTO_TCP
-#ifdef USE_TLS
-	    || proto == PROTO_TLS
-#endif
-	    ) {
-		if (parse_headers(msg, HDR_CONTENTLENGTH, 0)==-1){
-			LOG(L_ERR, "adjust_clen: error parsing content-length\n");
-			goto error;
-		}
-		if (msg->content_length==0){
-			/* not present, we need to add it */
-			/* msg->unparsed should point just before the final crlf
-			 * - whole message was parsed by the above parse_headers
-			 *   which did not find content-length */
-			anchor=anchor_lump(msg, msg->unparsed-msg->buf, 0,
-												HDR_CONTENTLENGTH);
-			if (anchor==0){
-				LOG(L_ERR, "adjust_clen: cannot set clen anchor\n");
-				goto error;
-			}
-		}
-	}
-#endif
-	
-	
-	if ((anchor==0) && body_delta){
-		if (parse_headers(msg, HDR_CONTENTLENGTH, 0) == -1) {
-			LOG(L_ERR, "adjust_clen: Error parsing Content-Length\n");
-			goto error;
-		}
-		
-		/* The body has been changed, try to find
-		 * existing Content-Length
-		 */
-		/* no need for Content-Length if it's and UDP packet and
-		 * it hasn't Content-Length already */
-		if ((msg->content_length==0)){
-		    /* content-length doesn't exist, append it */
-			/* msg->unparsed should point just before the final crlf
-			 * - whole message was parsed by the above parse_headers
-			 *   which did not find content-length */
-			if (proto!=PROTO_UDP){
-				anchor=anchor_lump(msg, msg->unparsed-msg->buf, 0,
-													HDR_CONTENTLENGTH);
-				if (anchor==0){
-					LOG(L_ERR, "adjust_clen: cannot set clen anchor\n");
-					goto error;
-				}
-			}else{
-				DBG("add_clen: UDP packet with no clen => not adding one \n");
-			}
-		}else{
-			/* Content-Length has been found, remove it */
-			anchor = del_lump(	msg, msg->content_length->name.s - msg->buf,
-								msg->content_length->len, HDR_CONTENTLENGTH);
-			if (anchor==0) {
-				LOG(L_ERR, "adjust_clen: Can't remove original"
-							" Content-Length\n");
-				goto error;
-			}
-		}
-	}
-	
-	if (anchor){
-		clen_buf = clen_builder(msg, &clen_len, body_delta);
-		if (!clen_buf) goto error;
-		if (insert_new_lump_after(anchor, clen_buf, clen_len,
-					HDR_CONTENTLENGTH) == 0)
-			goto error;
-	}
-
-	return 0;
-error:
-	if (clen_buf) pkg_free(clen_buf);
-	return -1;
-}
-
-
-
-char * build_req_buf_from_sip_req( struct sip_msg* msg,
-								unsigned int *returned_len,
-								struct socket_info* send_sock, int proto)
-{
-	unsigned int len, new_len, received_len, rport_len, uri_len, via_len, body_delta;
-	char* line_buf;
-	char* received_buf;
-	char* rport_buf;
-	char* new_buf;
-	char* buf;
-	unsigned int offset, s_offset, size;
-	struct lump* anchor;
-	struct lump* via_insert_param;
-	str branch;
-	str extra_params;
-	struct hostport hp;
-
-#ifdef USE_TCP
-	char* id_buf;
-	unsigned int id_len;
-	
-	
-	id_buf=0;
-	id_len=0;
-#endif
-	via_insert_param=0;
-	extra_params.len=0;
-	extra_params.s=0;
-	uri_len=0;
-	buf=msg->buf;
-	len=msg->len;
-	received_len=0;
-	rport_len=0;
-	new_buf=0;
-	received_buf=0;
-	rport_buf=0;
-	line_buf=0;
-	
-#ifdef USE_TCP
-	/* add id if tcp */
-	if (msg->rcv.proto==PROTO_TCP
-#ifdef USE_TLS
-			|| msg->rcv.proto==PROTO_TLS
-#endif
-			){
-		if  ((id_buf=id_builder(msg, &id_len))==0){
-			LOG(L_ERR, "ERROR: build_req_buf_from_sip_req:"
-							" id_builder failed\n");
-			goto error00; /* we don't need to free anything,
-			                 nothing alloc'ed yet*/
-		}
-		DBG("build_req_from_req: id added: <%.*s>, rcv proto=%d\n",
-				(int)id_len, id_buf, msg->rcv.proto);
-		extra_params.s=id_buf;
-		extra_params.len=id_len;
-	}
-#endif
-	     /* Calculate message body difference and adjust
-	      * Content-Length
-	      */
-	body_delta = lumps_len(msg, msg->body_lumps, send_sock);
-	if (adjust_clen(msg, body_delta, proto) < 0) {
-		LOG(L_ERR, "ERROR: build_req_buf_from_sip_req: Error while adjusting"
-				" Content-Length\n");
-		goto error00;
-	}
-
-	branch.s=msg->add_to_branch_s;
-	branch.len=msg->add_to_branch_len;
-	set_hostport(&hp, msg);
-	line_buf = via_builder( &via_len, send_sock, &branch,
-							extra_params.len?&extra_params:0, proto, &hp);
-	if (!line_buf){
-		LOG(L_ERR,"ERROR: build_req_buf_from_sip_req: no via received!\n");
-		goto error00;
-	}
-	/* check if received needs to be added */
-	if ( received_test(msg) ) { 
-		if ((received_buf=received_builder(msg,&received_len))==0){
-			LOG(L_ERR, "ERROR: build_req_buf_from_sip_req:"
-							" received_builder failed\n");
-			goto error01;  /* free also line_buf */
-		}
-	}
-	
-	/* check if rport needs to be updated:
-	 *  - if FL_FORCE_RPORT is set add it (and del. any previous version)
-	 *  - if via already contains an rport add it and overwrite the previous
-	 *  rport value if present (if you don't want to overwrite the previous
-	 *  version remove the comments) */
-	if ((msg->msg_flags&FL_FORCE_RPORT)||
-			(msg->via1->rport /*&& msg->via1->rport->value.s==0*/)){
-		if ((rport_buf=rport_builder(msg, &rport_len))==0){
-			LOG(L_ERR, "ERROR: build_req_buf_from_sip_req:"
-							" rport_builder failed\n");
-			goto error01; /* free everything */
-		}
-	}
-
-	/* add via header to the list */
-	/* try to add it before msg. 1st via */
-	/* add first via, as an anchor for second via*/
-	anchor=anchor_lump(msg, msg->via1->hdr.s-buf, 0, HDR_VIA);
-	if (anchor==0) goto error01;
-	if (insert_new_lump_before(anchor, line_buf, via_len, HDR_VIA)==0)
-		goto error01;
-	/* find out where the offset of the first parameter that should be added
-	 * (after host:port), needed by add receive & maybe rport */
-	if (msg->via1->params.s){
-			size= msg->via1->params.s-msg->via1->hdr.s-1; /*compensate
-														  for ';' */
-	}else{
-			size= msg->via1->host.s-msg->via1->hdr.s+msg->via1->host.len;
-			if (msg->via1->port!=0){
-				/*size+=strlen(msg->via1->hdr.s+size+1)+1;*/
-				size += msg->via1->port_str.len + 1; /* +1 for ':'*/
-			}
-#if 0
-			/* no longer necessary, now hots.s contains [] */
-		#ifdef USE_IPV6
-			if(send_sock->address.af==AF_INET6) size+=1; /* +1 for ']'*/
-		#endif
-#endif
-	}
-	/* if received needs to be added, add anchor after host and add it, or 
-	 * overwrite the previous one if already present */
-	if (received_len){
-		if (msg->via1->received){ /* received already present => overwrite it*/
-			via_insert_param=del_lump(msg,
-								msg->via1->received->start-buf-1, /*;*/
-								msg->via1->received->size+1, /*;*/ HDR_VIA);
-		}else if (via_insert_param==0){ /* receive not present, ok */
-			via_insert_param=anchor_lump(msg,
-										msg->via1->hdr.s-buf+size,0, HDR_VIA);
-		}
-		if (via_insert_param==0) goto error02; /* free received_buf */
-		if (insert_new_lump_after(via_insert_param, received_buf, received_len,
-					HDR_VIA) ==0 ) goto error02; /* free received_buf */
-	}
-	/* if rport needs to be updated, delete it if present and add it's value */
-	if (rport_len){
-		if (msg->via1->rport){ /* rport already present */
-			via_insert_param=del_lump(msg,
-								msg->via1->rport->start-buf-1, /*';'*/
-								msg->via1->rport->size+1 /* ; */, HDR_VIA);
-		}else if (via_insert_param==0){ /*force rport, no rport present */
-			/* no rport, add it */
-			via_insert_param=anchor_lump(msg,
-										msg->via1->hdr.s-buf+size,0, HDR_VIA);
-		}
-		if (via_insert_param==0) goto error03; /* free rport_buf */
-		if (insert_new_lump_after(via_insert_param, rport_buf, rport_len,
-									HDR_VIA) ==0 )
-			goto error03; /* free rport_buf */
-			
-	}
-
-	/* compute new msg len and fix overlapping zones*/
-	new_len=len+body_delta+lumps_len(msg, msg->add_rm, send_sock);
-#ifdef XL_DEBUG
-	LOG(L_ERR, "DEBUG: new_len(%d)=len(%d)+lumps_len\n", new_len, len);
-#endif
-
-	if (msg->new_uri.s){
-		uri_len=msg->new_uri.len;
-		new_len=new_len-msg->first_line.u.request.uri.len+uri_len;
-	}
-	new_buf=(char*)pkg_malloc(new_len+1);
-	if (new_buf==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: build_req_buf_from_sip_req: out of memory\n");
-		goto error00;
-	}
-
-	offset=s_offset=0;
-	if (msg->new_uri.s){
-		/* copy message up to uri */
-		size=msg->first_line.u.request.uri.s-buf;
-		memcpy(new_buf, buf, size);
-		offset+=size;
-		s_offset+=size;
-		/* add our uri */
-		memcpy(new_buf+offset, msg->new_uri.s, uri_len);
-		offset+=uri_len;
-		s_offset+=msg->first_line.u.request.uri.len; /* skip original uri */
-	}
-	new_buf[new_len]=0;
-	/* copy msg adding/removing lumps */
-	process_lumps(msg, msg->add_rm, new_buf, &offset, &s_offset, send_sock);
-	process_lumps(msg, msg->body_lumps, new_buf, &offset, &s_offset,send_sock);
-	/* copy the rest of the message */
-	memcpy(new_buf+offset, buf+s_offset, len-s_offset);
-	new_buf[new_len]=0;
-
-#ifdef DBG_MSG_QA
-	if (new_buf[new_len-1]==0) {
-		LOG(L_ERR, "ERROR: build_req_buf_from_sip_req: 0 in the end\n");
-		abort();
-	}
-#endif
-
-	*returned_len=new_len;
-	/* cleanup */
-#ifdef USE_TCP
-	if (id_buf) pkg_free(id_buf); /* it's not in a lump => we don't need it
-									 anymore */
-#endif
-	return new_buf;
-
-error01:
-	if (line_buf) pkg_free(line_buf);
-error02:
-	if (received_buf) pkg_free(received_buf);
-error03:
-	if (rport_buf) pkg_free(rport_buf);
-error00:
-#ifdef USE_TCP
-	if (id_buf) pkg_free(id_buf);
-#endif
-	*returned_len=0;
-	return 0;
-}
-
-
-
-char * build_res_buf_from_sip_res( struct sip_msg* msg,
-				unsigned int *returned_len)
-{
-	unsigned int new_len, via_len, body_delta;
-	char* new_buf;
-	unsigned offset, s_offset, via_offset;
-	char* buf;
-	unsigned int len;
-
-	buf=msg->buf;
-	len=msg->len;
-	new_buf=0;
-	/* we must remove the first via */
-	if (msg->via1->next) {
-		via_len=msg->via1->bsize;
-		via_offset=msg->h_via1->body.s-buf;
-	} else {
-		via_len=msg->h_via1->len;
-		via_offset=msg->h_via1->name.s-buf;
-	}
-
-	     /* Calculate message body difference and adjust
-	      * Content-Length
-	      */
-	body_delta = lumps_len(msg, msg->body_lumps, 0);
-	if (adjust_clen(msg, body_delta, (msg->via2? msg->via2->proto:PROTO_UDP))
-			< 0) {
-		LOG(L_ERR, "ERROR: build_req_buf_from_sip_req: Error while adjusting"
-				" Content-Length\n");
-		goto error;
-	}
-
-	/* remove the first via*/
-	if (del_lump( msg, via_offset, via_len, HDR_VIA)==0){
-		LOG(L_ERR, "build_res_buf_from_sip_res: error trying to remove first"
-					"via\n");
-		goto error;
-	}
-
-	new_len=len+body_delta+lumps_len(msg, msg->add_rm, 0); /*FIXME: we don't
-														know the send sock */
-	
-	DBG(" old size: %d, new size: %d\n", len, new_len);
-	new_buf=(char*)pkg_malloc(new_len+1); /* +1 is for debugging 
-											 (\0 to print it )*/
-	if (new_buf==0){
-		LOG(L_ERR, "ERROR: build_res_buf_from_sip_res: out of mem\n");
-		goto error;
-	}
-	new_buf[new_len]=0; /* debug: print the message */
-	offset=s_offset=0;
-	/*FIXME: no send sock*/
-	process_lumps(msg, msg->add_rm, new_buf, &offset, &s_offset, 0);/*FIXME:*/
-	process_lumps(msg, msg->body_lumps, new_buf, &offset, &s_offset, 0);
-	/* copy the rest of the message */
-	memcpy(new_buf+offset,
-		buf+s_offset, 
-		len-s_offset);
-	 /* send it! */
-	DBG("build_res_from_sip_res: copied size: orig:%d, new: %d, rest: %d"
-			" msg=\n%s\n", s_offset, offset, len-s_offset, new_buf);
-
-	*returned_len=new_len;
-	return new_buf;
-error:
-	*returned_len=0;
-	return 0;
-}
-
-
-char * build_res_buf_from_sip_req( unsigned int code, char *text ,str *new_tag,
-		struct sip_msg* msg, unsigned int *returned_len, struct bookmark *bmark)
-{
-	char              *buf, *p;
-	unsigned int      len,foo;
-	struct hdr_field  *hdr;
-	struct lump_rpl   *lump;
-	struct lump_rpl   *body;
-	int               i;
-	char*             received_buf;
-	unsigned int      received_len;
-	char*             rport_buf;
-	unsigned int      rport_len;
-	char*             warning_buf;
-	unsigned int      warning_len;
-	char*             content_len_buf;
-	unsigned int      content_len_len;
-	unsigned int      text_len;
-	char *after_body;
-	str  to_tag;
-	char *totags;
-
-	body = 0;
-	buf=0;
-	received_buf=rport_buf=warning_buf=content_len_buf=0;
-	received_len=rport_len=warning_len=content_len_len=0;
-	
-	text_len=strlen(text);
-
-	to_tag.s=0;  /* fixes gcc 4.0 warning */
-	to_tag.len=0;
-	
-	/* force parsing all headers -- we want to return all
-	Via's in the reply and they may be scattered down to the
-	end of header (non-block Vias are a really poor property
-	of SIP :( ) */
-	if (parse_headers( msg, HDR_EOH, 0 )==-1) {
-		LOG(L_ERR, "ERROR: build_res_buf_from_sip_req: "
-			"alas, parse_headers failed\n");
-		goto error00;
-	}
-
-	/*computes the length of the new response buffer*/
-	len = 0;
-
-	/* check if received needs to be added */
-	if (received_test(msg)) {
-		if ((received_buf=received_builder(msg,&received_len))==0) {
-			LOG(L_ERR, "ERROR: build_res_buf_from_sip_req: "
-				"alas, received_builder failed\n");
-			goto error00;
-		}
-	}
-	/* check if rport needs to be updated */
-	if ( (msg->msg_flags&FL_FORCE_RPORT)||
-		(msg->via1->rport /*&& msg->via1->rport->value.s==0*/)){
-		if ((rport_buf=rport_builder(msg, &rport_len))==0){
-			LOG(L_ERR, "ERROR: build_res_buf_from_sip_req:"
-							" rport_builder failed\n");
-			goto error01; /* free everything */
-		}
-		if (msg->via1->rport) 
-			len -= msg->via1->rport->size+1; /* include ';' */
-	}
-
-	/* first line */
-	len += SIP_VERSION_LEN + 1/*space*/ + 3/*code*/ + 1/*space*/ +
-		text_len + CRLF_LEN/*new line*/;
-	/*headers that will be copied (TO, FROM, CSEQ,CALLID,VIA)*/
-	for ( hdr=msg->headers ; hdr ; hdr=hdr->next ) {
-		switch (hdr->type) {
-			case HDR_TO:
-				if (new_tag && new_tag->len) {
-					to_tag=get_to(msg)->tag_value;
-					if (to_tag.len )
-						len+=new_tag->len-to_tag.len;
-					else
-						len+=new_tag->len+TOTAG_TOKEN_LEN/*";tag="*/;
-				}
-				len += hdr->len;
-				break;
-			case HDR_VIA:
-				/* we always add CRLF to via*/
-				len+=(hdr->body.s+hdr->body.len)-hdr->name.s+CRLF_LEN;
-				if (hdr==msg->h_via1) len += received_len+rport_len;
-				break;
-			case HDR_RECORDROUTE:
-				/* RR only for 1xx and 2xx replies */
-				if (code<180 || code>=300)
-					break;
-			case HDR_FROM:
-			case HDR_CALLID:
-			case HDR_CSEQ:
-				/* we keep the original termination for these headers*/
-				len += hdr->len;
-		}
-	}
-	/* lumps length */
-	for(lump=msg->reply_lump;lump;lump=lump->next) {
-		len += lump->text.len;
-		if (lump->flags&LUMP_RPL_BODY)
-			body = lump;
-	}
-	/* server header */
-	if (server_signature)
-		len += SERVER_HDR_LEN + CRLF_LEN;
-	/* warning hdr */
-	if (sip_warning) {
-		warning_buf = warning_builder(msg,&warning_len);
-		if (warning_buf) len += warning_len + CRLF_LEN;
-		else LOG(L_WARN, "WARNING: warning skipped -- too big\n");
-	}
-	/* content length hdr */
-	if (body) {
-		content_len_buf = int2str(body->text.len, (int*)&content_len_len);
-		len += CONTENT_LENGTH_LEN + content_len_len + CRLF_LEN;
-	} else {
-		len += CONTENT_LENGTH_LEN + 1/*0*/ + CRLF_LEN;
-	}
-	/* end of message */
-	len += CRLF_LEN; /*new line*/
-
-	/*allocating mem*/
-	buf = (char*) pkg_malloc( len+1 );
-	if (!buf)
-	{
-		LOG(L_ERR, "ERROR: build_res_buf_from_sip_req: out of memory "
-			" ; needs %d\n",len);
-		goto error01;
-	}
-
-	/* filling the buffer*/
-	p=buf;
-	/* first line */
-	memcpy( p , SIP_VERSION , SIP_VERSION_LEN );
-	p += SIP_VERSION_LEN;
-	*(p++) = ' ' ;
-	/*code*/
-	for ( i=2 , foo = code  ;  i>=0  ;  i-- , foo=foo/10 )
-		*(p+i) = '0' + foo - ( foo/10 )*10;
-	p += 3;
-	*(p++) = ' ' ;
-	memcpy( p , text , text_len );
-	p += text_len;
-	memcpy( p, CRLF, CRLF_LEN );
-	p+=CRLF_LEN;
-	/* headers*/
-	for ( hdr=msg->headers ; hdr ; hdr=hdr->next ) {
-		switch (hdr->type)
-		{
-			case HDR_VIA:
-				if (hdr==msg->h_via1){
-					if (rport_buf){
-						if (msg->via1->rport){ /* delete the old one */
-							/* copy until rport */
-							append_str_trans( p, hdr->name.s ,
-								msg->via1->rport->start-hdr->name.s-1,msg);
-							/* copy new rport */
-							append_str(p, rport_buf, rport_len);
-							/* copy the rest of the via */
-							append_str_trans(p, msg->via1->rport->start+
-												msg->via1->rport->size, 
-												hdr->body.s+hdr->body.len-
-												msg->via1->rport->start-
-												msg->via1->rport->size, msg);
-						}else{ /* just append the new one */
-							/* normal whole via copy */
-							append_str_trans( p, hdr->name.s , 
-								(hdr->body.s+hdr->body.len)-hdr->name.s, msg);
-							append_str(p, rport_buf, rport_len);
-						}
-					}else{
-						/* normal whole via copy */
-						append_str_trans( p, hdr->name.s , 
-								(hdr->body.s+hdr->body.len)-hdr->name.s, msg);
-					}
-					if (received_buf)
-						append_str( p, received_buf, received_len);
-				}else{
-					/* normal whole via copy */
-					append_str_trans( p, hdr->name.s,
-							(hdr->body.s+hdr->body.len)-hdr->name.s, msg);
-				}
-				append_str( p, CRLF,CRLF_LEN);
-				break;
-			case HDR_RECORDROUTE:
-				/* RR only for 1xx and 2xx replies */
-				if (code<180 || code>=300) break;
-				append_str(p, hdr->name.s, hdr->len);
-				break;
-			case HDR_TO:
-				if (new_tag && new_tag->len){
-					if (to_tag.s ) { /* replacement */
-						/* before to-tag */
-						append_str( p, hdr->name.s, to_tag.s-hdr->name.s);
-						/* to tag replacement */
-						bmark->to_tag_val.s=p;
-						bmark->to_tag_val.len=new_tag->len;
-						append_str( p, new_tag->s,new_tag->len);
-						/* the rest after to-tag */
-						append_str( p, to_tag.s+to_tag.len,
-							hdr->name.s+hdr->len-(to_tag.s+to_tag.len));
-					}else{ /* adding a new to-tag */
-						after_body=hdr->body.s+hdr->body.len;
-						append_str( p, hdr->name.s, after_body-hdr->name.s);
-						append_str(p, TOTAG_TOKEN, TOTAG_TOKEN_LEN);
-						bmark->to_tag_val.s=p;
-						bmark->to_tag_val.len=new_tag->len;
-						append_str( p, new_tag->s,new_tag->len);
-						append_str( p, after_body, 
-										hdr->name.s+hdr->len-after_body);
-					}
-					break;
-				} /* no new to-tag -- proceed to 1:1 copying  */
-				totags=((struct to_body*)(hdr->parsed))->tag_value.s;
-				if (totags) {
-					bmark->to_tag_val.s=p+(totags-hdr->name.s);
-					bmark->to_tag_val.len=
-							((struct to_body*)(hdr->parsed))->tag_value.len;
-				};
-			case HDR_FROM:
-			case HDR_CALLID:
-			case HDR_CSEQ:
-					append_str(p, hdr->name.s, hdr->len);
-		} /* end switch */
-	} /* end for */
-	/* lumps */
-	for(lump=msg->reply_lump;lump;lump=lump->next)
-		if (lump->flags&LUMP_RPL_HDR){
-			memcpy(p,lump->text.s,lump->text.len);
-			p += lump->text.len;
-		}
-	/* server header */
-	if (server_signature) {
-		memcpy( p, SERVER_HDR , SERVER_HDR_LEN );
-		p+=SERVER_HDR_LEN;
-		memcpy( p, CRLF, CRLF_LEN );
-		p+=CRLF_LEN;
-	}
-	/* content_length hdr */
-	if (content_len_len) {
-		append_str( p, CONTENT_LENGTH, CONTENT_LENGTH_LEN);
-		append_str( p, content_len_buf, content_len_len );
-		append_str( p, CRLF, CRLF_LEN );
-	} else {
-		append_str( p, CONTENT_LENGTH"0"CRLF,CONTENT_LENGTH_LEN+1+CRLF_LEN);
-	}
-	/* warning header */
-	if (warning_buf) {
-		memcpy( p, warning_buf, warning_len);
-		p+=warning_len;
-		memcpy( p, CRLF, CRLF_LEN);
-		p+=CRLF_LEN;
-	}
-	/*end of message*/
-	memcpy( p, CRLF, CRLF_LEN );
-	p+=CRLF_LEN;
-	/* body */
-	if (body) {
-		memcpy ( p, body->text.s, body->text.len );
-		p+=body->text.len;
-	}
-
-	if (len!=p-buf)
-		LOG(L_CRIT,"BUG:build_res_from_sip_req: diff len=%d p-buf=%d\n",
-					len, (int)(p-buf));
-
-	*(p) = 0;
-	*returned_len = len;
-	/* in req2reply, received_buf is not introduced to lumps and
-	   needs to be deleted here
-	*/
-	if (received_buf) pkg_free(received_buf);
-	if (rport_buf) pkg_free(rport_buf);
-	return buf;
-
-error01:
-	if (received_buf) pkg_free(received_buf);
-	if (rport_buf) pkg_free(rport_buf);
-error00:
-	*returned_len=0;
-	return 0;
-}
-
-
-
-/* return number of chars printed or 0 if space exceeded;
-   assumes buffer size of at least MAX_BRANCH_PARAM_LEN
- */
-int branch_builder( unsigned int hash_index,
-	/* only either parameter useful */
-	unsigned int label, char * char_v,
-	int branch,
-	char *branch_str, int *len )
-{
-
-	char *begin;
-	int size;
-
-	/* hash id provided ... start with it */
-	size=MAX_BRANCH_PARAM_LEN;
-	begin=branch_str;
-	*len=0;
-
-	memcpy(begin, MCOOKIE, MCOOKIE_LEN );
-	size-=MCOOKIE_LEN;begin+=MCOOKIE_LEN;
-
-	if (int2reverse_hex( &begin, &size, hash_index)==-1)
-		return 0;
-
-	if (size) {
-		*begin=BRANCH_SEPARATOR;
-		begin++; size--;
-	} else return 0;
-
-	/* string with request's characteristic value ... use it ... */
-	if (char_v) {
-		if (memcpy(begin,char_v,MD5_LEN)) {
-			begin+=MD5_LEN; size-=MD5_LEN;
-		} else return 0;
-	} else { /* ... use the "label" value otherwise */
-		if (int2reverse_hex( &begin, &size, label )==-1)
-			return 0;
-	}
-
-	if (size) {
-		*begin=BRANCH_SEPARATOR;
-		begin++; size--;
-	} else return 0;
-
-	if (int2reverse_hex( &begin, &size, branch)==-1)
-		return 0;
-
-	*len=MAX_BRANCH_PARAM_LEN-size;
-	return size;
-		
-}
-
-
-char* via_builder( unsigned int *len, 
-	struct socket_info* send_sock,
-	str* branch, str* extra_params, int proto, struct hostport* hp)
-{
-	unsigned int  via_len, extra_len;
-	char               *line_buf;
-	int max_len;
-	str* address_str; /* address displayed in via */
-	str* port_str; /* port no displayed in via */
-	
-	/* use pre-set address in via or the outbound socket one */
-	if ( hp && hp->host->len)
-		address_str=hp->host;
-	else
-		address_str=&(send_sock->address_str);
-	if (hp && hp->port->len)
-		port_str=hp->port;
-	else
-		port_str=&(send_sock->port_no_str);
-
-	max_len=MY_VIA_LEN+address_str->len /* space in MY_VIA */
-		+2 /* just in case it is a v6 address ... [ ] */
-		+1 /*':'*/+port_str->len
-		+(branch?(MY_BRANCH_LEN+branch->len):0)
-		+(extra_params?extra_params->len:0)
-		+CRLF_LEN+1;
-	line_buf=pkg_malloc( max_len );
-	if (line_buf==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_ERR, "ERROR: via_builder: out of memory\n");
-		return 0;
-	}
-
-	extra_len=0;
-
-	via_len=MY_VIA_LEN+address_str->len; /*space included in MY_VIA*/
-
-	memcpy(line_buf, MY_VIA, MY_VIA_LEN); 
-	if (proto==PROTO_UDP){
-		/* do nothing */
-	}else if (proto==PROTO_TCP){
-		memcpy(line_buf+MY_VIA_LEN-4, "TCP ", 4);
-	}else if (proto==PROTO_TLS){
-		memcpy(line_buf+MY_VIA_LEN-4, "TLS ", 4);
-	}else{
-		LOG(L_CRIT, "BUG: via_builder: unknown proto %d\n", proto);
-		return 0;
-	}
-#	ifdef USE_IPV6
-	/* add [] only if ipv6 and outbound socket address is used;
-	 * if using pre-set no check is made */
-	if ((send_sock->address.af==AF_INET6) &&
-		(address_str==&(send_sock->address_str))) {
-		line_buf[MY_VIA_LEN]='[';
-		line_buf[MY_VIA_LEN+1+address_str->len]=']';
-		extra_len=1;
-		via_len+=2; /* [ ]*/
-	}
-#	endif
-	memcpy(line_buf+MY_VIA_LEN+extra_len, address_str->s, address_str->len);
-	if ((send_sock->port_no!=SIP_PORT) || (port_str!=&send_sock->port_no_str)){
-		line_buf[via_len]=':'; via_len++;
-		memcpy(line_buf+via_len, port_str->s, port_str->len);
-		via_len+=port_str->len;
-	}
-
-	/* branch parameter */
-	if (branch){
-		memcpy(line_buf+via_len, MY_BRANCH, MY_BRANCH_LEN );
-		via_len+=MY_BRANCH_LEN;
-		memcpy(line_buf+via_len, branch->s, branch->len );
-		via_len+=branch->len;
-	}
-	/* extra params  */
-	if (extra_params){
-		memcpy(line_buf+via_len, extra_params->s, extra_params->len);
-		via_len+=extra_params->len;
-	}
-	
-	memcpy(line_buf+via_len, CRLF, CRLF_LEN);
-	via_len+=CRLF_LEN;
-	line_buf[via_len]=0; /* null terminate the string*/
-
-	*len = via_len;
-	return line_buf;
-}

Deleted: ser/trunk/msg_translator.h
===================================================================
--- ser/trunk/msg_translator.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/msg_translator.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,120 +0,0 @@
-/*$Id: msg_translator.h,v 1.26 2004/08/24 08:45:10 janakj Exp $
- * 
- *
- * 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 at 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
- *
- * History:
- * --------
- * 2003-03-06  totags in outgoing replies bookmarked to enable
- *             ACK/200 tag matching
- *
- * 2003-03-01 VOICE_MAIL defs removed (jiri)
- * 2003-10-08 receive_test function-alized (jiri)
- */
-
-
-#ifndef  _MSG_TRANSLATOR_H
-#define _MSG_TRANSLATOR_H
-
-#define MY_HF_SEP ": "
-#define MY_HF_SEP_LEN 2
-
-#define BRANCH_SEPARATOR '.'
-#define WARNING "Warning: 392 "
-#define WARNING_LEN (sizeof(WARNING)-1)
-#define WARNING_PHRASE " \"Noisy feedback tells: "
-#define WARNING_PHRASE_LEN (sizeof(WARNING_PHRASE)-1)
-
-//#define MAX_CONTENT_LEN_BUF INT2STR_MAX_LEN /* see ut.h/int2str() */
-
-#include "parser/msg_parser.h"
-#include "ip_addr.h"
-
-/* point to some remarkable positions in a SIP message */
-struct bookmark {
-	str to_tag_val;
-};
-
-/* used by via_builder */
-struct hostport {
-	str* host;
-	str* port;
-};
-
-
-#define set_hostport(hp, msg) \
-	do{ \
-		if ((msg) && ((struct sip_msg*)(msg))->set_global_address.len) \
-			(hp)->host=&(((struct sip_msg*)(msg))->set_global_address); \
-		else \
-			(hp)->host=&default_global_address; \
-		if ((msg) && ((struct sip_msg*)(msg))->set_global_port.len) \
-			(hp)->port=&(((struct sip_msg*)(msg))->set_global_port); \
-		else \
-			(hp)->port=&default_global_port; \
-	}while(0)
-
-char * build_req_buf_from_sip_req (	struct sip_msg* msg, 
-				unsigned int *returned_len, struct socket_info* send_sock,
-				int proto);
-
-char * build_res_buf_from_sip_res(	struct sip_msg* msg,
-				unsigned int *returned_len);
-
-
-char * build_res_buf_from_sip_req( unsigned int code ,
-				char *text ,
-				str *new_tag ,
-				struct sip_msg* msg,
-				unsigned int *returned_len,
-				struct bookmark *bmark);
-/*
-char * build_res_buf_with_body_from_sip_req(	unsigned int code ,
-				char *text ,
-				char *new_tag ,
-				unsigned int new_tag_len ,
-				char *body ,
-				unsigned int body_len,
-				char *content_type,
-				unsigned int content_type_len,
-				struct sip_msg* msg,
-				unsigned int *returned_len,
-				struct bookmark *bmark);
-*/
-char* via_builder( unsigned int *len,
-	struct socket_info* send_sock,
-	str *branch, str* extra_params, int proto, struct hostport *hp );
-
-
-int branch_builder( unsigned int hash_index, 
-	/* only either parameter useful */
-	unsigned int label, char * char_v,
-	int branch,
-	/* output value: string and actual length */
-	char *branch_str, int *len );
-
-/* check if IP address in Via != source IP address of signaling */
-int received_test( struct sip_msg *msg );
-
-#endif

Deleted: ser/trunk/name_alias.h
===================================================================
--- ser/trunk/name_alias.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/name_alias.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,118 +0,0 @@
-/*
- * $Id: name_alias.h,v 1.9 2004/10/10 16:19:00 andrei Exp $
- *
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-10-21  support for proto added: proto:host:port (andrei)
- */
-
-
-
-#include "str.h"
-#include "dprint.h"
-#include "mem/mem.h"
-
-
-
-struct host_alias{
-	str alias;
-	unsigned short port;
-	unsigned short proto;
-	struct host_alias* next;
-};
-
-
-extern struct host_alias* aliases;
-
-
-
-/* returns 1 if  name is in the alias list; if port=0, port no is ignored
- * if proto=0, proto is ignored*/
-static inline int grep_aliases(char* name, int len, unsigned short port,
-								unsigned short proto)
-{
-	struct  host_alias* a;
-	
-#ifdef USE_IPV6
-	if ((len>2)&&((*name)=='[')&&(name[len-1]==']')){
-		/* ipv6 reference, skip [] */
-		name++;
-		len-=2;
-	}
-#endif
-	for(a=aliases;a;a=a->next)
-		if ((a->alias.len==len) && ((a->port==0) || (port==0) || 
-				(a->port==port)) && ((a->proto==0) || (proto==0) || 
-				(a->proto==proto)) && (strncasecmp(a->alias.s, name, len)==0))
-			return 1;
-	return 0;
-}
-
-
-
-/* adds an alias to the list (only if it isn't already there)
- * if port==0, the alias will match all the ports
- * if proto==0, the alias will match all the protocols
- * returns 1 if a new alias was added, 0 if a matching alias was already on
- * the list and  -1 on error */
-static inline int add_alias(char* name, int len, unsigned short port, 
-								unsigned short proto)
-{
-	struct host_alias* a;
-	
-	if ((port) && (proto)){
-		/* don't add if there is already an alias matching it */
-		if (grep_aliases(name,len, port, proto)) return 0;
-	}else{
-		/* don't add if already in the list with port or proto ==0*/
-		for(a=aliases;a;a=a->next)
-			if ((a->alias.len==len) && (a->port==port) && (a->proto==proto) &&
-					(strncasecmp(a->alias.s, name, len)==0))
-				return 0;
-	}
-	a=(struct host_alias*)pkg_malloc(sizeof(struct host_alias));
-	if(a==0) goto error;
-	a->alias.s=(char*)pkg_malloc(len+1);
-	if (a->alias.s==0) goto error;
-	a->alias.len=len;
-	memcpy(a->alias.s, name, len);
-	a->alias.s[len]=0; /* null terminate for easier printing*/
-	a->port=port;
-	a->proto=proto;
-	a->next=aliases;
-	aliases=a;
-	return 1;
-error:
-	LOG(L_ERR, "ERROR: add_alias: memory allocation error\n");
-	if (a) pkg_free(a);
-	return -1;
-}
-
-
-

Deleted: ser/trunk/pass_fd.c
===================================================================
--- ser/trunk/pass_fd.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/pass_fd.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,228 +0,0 @@
-/*
- * $Id: pass_fd.c,v 1.7.2.1 2005/08/31 13:18:29 andrei Exp $
- *
- * 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 at 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
- */
- /*
-  * History:
-  * --------
-  *  2002-11-29  created by andrei
-  *  2003-02-20  added solaris support (! HAVE_MSGHDR_MSG_CONTROL) (andrei)
-  *  2003-11-03  added send_all, recv_all  and updated send/get_fd
-  *               to handle signals  (andrei)
-  */
-
-#ifdef USE_TCP
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-#include <stdlib.h> /* for NULL definition on openbsd */
-#include <errno.h>
-#include <string.h>
-
-#include "dprint.h"
-
-
-
-/* receive all the data or returns error (handles EINTR etc.)
- * returns: bytes read or error (<0)
- * can return < data_len if EOF */
-int recv_all(int socket, void* data, int data_len)
-{
-	int b_read;
-	int n;
-	
-	b_read=0;
-	do{
-		n=recv(socket, (char*)data+b_read, data_len-b_read, MSG_WAITALL);
-		if (n<0){
-			/* error */
-			if (errno==EINTR) continue; /* signal, try again */
-			LOG(L_CRIT, "ERROR: recv_all: recv on %d failed: %s\n",
-					socket, strerror(errno));
-			return n;
-		}
-		b_read+=n;
-	}while( (b_read!=data_len) && (n));
-	return b_read;
-}
-
-
-/* sends all data (takes care of signals) (assumes blocking fd)
- * returns number of bytes sent or < 0 for an error */
-int send_all(int socket, void* data, int data_len)
-{
-	int n;
-	
-again:
-	n=send(socket, data, data_len, 0);
-	if (n<0){
-			/* error */
-		if (errno==EINTR) goto again; /* signal, try again */
-		LOG(L_CRIT, "ERROR: send_all: send on %d failed: %s\n",
-					socket, strerror(errno));
-	}
-	return n;
-}
-
-
-/* at least 1 byte must be sent! */
-int send_fd(int unix_socket, void* data, int data_len, int fd)
-{
-	struct msghdr msg;
-	struct iovec iov[1];
-	int ret;
-#ifdef HAVE_MSGHDR_MSG_CONTROL
-	struct cmsghdr* cmsg;
-	/* make sure msg_control will point to properly aligned data */
-	union {
-		struct cmsghdr cm;
-		char control[CMSG_SPACE(sizeof(fd))];
-	}control_un;
-	
-	msg.msg_control=control_un.control;
-	/* openbsd doesn't like "more space", msg_controllen must not
-	 * include the end padding */
-	msg.msg_controllen=CMSG_LEN(sizeof(fd));
-	
-	cmsg=CMSG_FIRSTHDR(&msg);
-	cmsg->cmsg_level = SOL_SOCKET;
-	cmsg->cmsg_type = SCM_RIGHTS;
-	cmsg->cmsg_len = CMSG_LEN(sizeof(fd));
-	*(int*)CMSG_DATA(cmsg)=fd;
-	msg.msg_flags=0;
-#else
-	msg.msg_accrights=(caddr_t) &fd;
-	msg.msg_accrightslen=sizeof(fd);
-#endif
-	
-	msg.msg_name=0;
-	msg.msg_namelen=0;
-	
-	iov[0].iov_base=data;
-	iov[0].iov_len=data_len;
-	msg.msg_iov=iov;
-	msg.msg_iovlen=1;
-	
-again:
-	ret=sendmsg(unix_socket, &msg, 0);
-	if (ret<0){
-		if (errno==EINTR) goto again;
-		LOG(L_CRIT, "ERROR: send_fd: sendmsg failed on %d: %s\n",
-				unix_socket, strerror(errno));
-	}
-	
-	return ret;
-}
-
-
-
-int receive_fd(int unix_socket, void* data, int data_len, int* fd)
-{
-	struct msghdr msg;
-	struct iovec iov[1];
-	int new_fd;
-	int ret;
-	int n;
-#ifdef HAVE_MSGHDR_MSG_CONTROL
-	struct cmsghdr* cmsg;
-	union{
-		struct cmsghdr cm;
-		char control[CMSG_SPACE(sizeof(new_fd))];
-	}control_un;
-	
-	msg.msg_control=control_un.control;
-	msg.msg_controllen=sizeof(control_un.control);
-#else
-	msg.msg_accrights=(caddr_t) &new_fd;
-	msg.msg_accrightslen=sizeof(int);
-#endif
-	
-	msg.msg_name=0;
-	msg.msg_namelen=0;
-	
-	iov[0].iov_base=data;
-	iov[0].iov_len=data_len;
-	msg.msg_iov=iov;
-	msg.msg_iovlen=1;
-	
-again:
-	ret=recvmsg(unix_socket, &msg, MSG_WAITALL);
-	if (ret<0){
-		if (errno==EINTR) goto again;
-		LOG(L_CRIT, "ERROR: receive_fd: recvmsg on %d failed: %s\n",
-				unix_socket, strerror(errno));
-		goto error;
-	}
-	if (ret==0){
-		/* EOF */
-		LOG(L_CRIT, "ERROR: receive_fd: EOF on %d\n", unix_socket);
-		goto error;
-	}
-	if (ret<data_len){
-		LOG(L_WARN, "WARNING: receive_fd: too few bytes read (%d from %d)"
-				    "trying to fix...\n", ret, data_len);
-		n=recv_all(unix_socket, (char*)data+ret, data_len-ret);
-		if (n>=0) ret+=n;
-		else{
-			ret=n;
-			goto error;
-		}
-	}
-	
-#ifdef HAVE_MSGHDR_MSG_CONTROL
-	cmsg=CMSG_FIRSTHDR(&msg);
-	if ((cmsg!=0) && (cmsg->cmsg_len==CMSG_LEN(sizeof(new_fd)))){
-		if (cmsg->cmsg_type!= SCM_RIGHTS){
-			LOG(L_ERR, "ERROR: receive_fd: msg control type != SCM_RIGHTS\n");
-			ret=-1;
-			goto error;
-		}
-		if (cmsg->cmsg_level!= SOL_SOCKET){
-			LOG(L_ERR, "ERROR: receive_fd: msg level != SOL_SOCKET\n");
-			ret=-1;
-			goto error;
-		}
-		*fd=*((int*) CMSG_DATA(cmsg));
-	}else{
-		LOG(L_ERR, "ERROR: receive_fd: no descriptor passed, cmsg=%p,"
-				"len=%d\n", cmsg, (unsigned)cmsg->cmsg_len);
-		*fd=-1;
-		/* it's not really an error */
-	}
-#else
-	if (msg.msg_accrightslen==sizeof(int)){
-		*fd=new_fd;
-	}else{
-		LOG(L_ERR, "ERROR: receive_fd: no descriptor passed,"
-				" accrightslen=%d\n", msg.msg_accrightslen);
-		*fd=-1;
-	}
-#endif
-	
-error:
-	return ret;
-}
-#endif

Deleted: ser/trunk/pass_fd.h
===================================================================
--- ser/trunk/pass_fd.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/pass_fd.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,39 +0,0 @@
-/*
- * $Id: pass_fd.h,v 1.3 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-#ifndef _pass_fd_h
-#define _pass_fd_h
-
-
-int send_fd(int unix_socket, void* data, int data_len, int fd);
-int receive_fd(int unix_socket, void* data, int data_len, int* fd);
-
-int recv_all(int socket, void* data, int data_len);
-int send_all(int socket, void* data, int data_len);
-
-
-#endif

Deleted: ser/trunk/proxy.c
===================================================================
--- ser/trunk/proxy.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/proxy.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,281 +0,0 @@
-/*
- * $Id: proxy.c,v 1.25 2004/08/24 08:45:10 janakj Exp $
- *
- * proxy list & assoc. functions
- *
- *
- * 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 at 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
- */
- /*
-  * History:
-  * -------
-  *  2003-02-13  all *proxy functions are now proto aware (andrei)
-  *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
-  */
-
-
-
-#include "config.h"
-#include "proxy.h"
-#include "error.h"
-#include "dprint.h"
-#include "mem/mem.h"
-
-#include <string.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-
-#ifdef DNS_IP_HACK
-#include "ut.h"
-#endif
-
-#include "resolve.h"
-#include "ip_addr.h"
-#include "globals.h"
-
-
-struct proxy_l* proxies=0;
-
-
-
-/* searches for the proxy named 'name', on port 'port' with 
-   proto 'proto'; if proto==0 => proto wildcard (will match any proto)
-   returns: pointer to proxy_l on success or 0 if not found */ 
-static struct proxy_l* find_proxy(str *name, unsigned short port, int proto)
-{
-	struct proxy_l* t;
-	for(t=proxies; t; t=t->next)
-		if (((t->name.len == name->len) &&
-			 ((proto==PROTO_NONE)||(t->proto==proto))&&
-			(strncasecmp(t->name.s, name->s, name->len)==0)) &&
-				(t->port==port))
-			break;
-	return t;
-}
-
-
-
-/* copies a hostent structure*, returns 0 on success, <0 on error*/
-static int hostent_cpy(struct hostent *dst, struct hostent* src)
-{
-	unsigned len,len2;
-	int r,ret,i;
-
-	/* start copying the host entry.. */
-	/* copy h_name */
-	len=strlen(src->h_name)+1;
-	dst->h_name=(char*)pkg_malloc(sizeof(char) * len);
-	if (dst->h_name) strncpy(dst->h_name,src->h_name, len);
-	else{
-		ser_error=ret=E_OUT_OF_MEM;
-		goto error;
-	}
-
-	/* copy h_aliases */
-	len=0;
-	if (src->h_aliases)
-		for (;src->h_aliases[len];len++);
-	dst->h_aliases=(char**)pkg_malloc(sizeof(char*)*(len+1));
-	if (dst->h_aliases==0){
-		ser_error=ret=E_OUT_OF_MEM;
-		pkg_free(dst->h_name);
-		goto error;
-	}
-	memset((void*)dst->h_aliases, 0, sizeof(char*) * (len+1) );
-	for (i=0;i<len;i++){
-		len2=strlen(src->h_aliases[i])+1;
-		dst->h_aliases[i]=(char*)pkg_malloc(sizeof(char)*len2);
-		if (dst->h_aliases==0){
-			ser_error=ret=E_OUT_OF_MEM;
-			pkg_free(dst->h_name);
-			for(r=0; r<i; r++)	pkg_free(dst->h_aliases[r]);
-			pkg_free(dst->h_aliases);
-			goto error;
-		}
-		strncpy(dst->h_aliases[i], src->h_aliases[i], len2);
-	}
-	/* copy h_addr_list */
-	len=0;
-	if (src->h_addr_list)
-		for (;src->h_addr_list[len];len++);
-	dst->h_addr_list=(char**)pkg_malloc(sizeof(char*)*(len+1));
-	if (dst->h_addr_list==0){
-		ser_error=ret=E_OUT_OF_MEM;
-		pkg_free(dst->h_name);
-		for(r=0; dst->h_aliases[r]; r++)	pkg_free(dst->h_aliases[r]);
-		pkg_free(dst->h_aliases[r]);
-		pkg_free(dst->h_aliases);
-		goto error;
-	}
-	memset((void*)dst->h_addr_list, 0, sizeof(char*) * (len+1) );
-	for (i=0;i<len;i++){
-		dst->h_addr_list[i]=(char*)pkg_malloc(sizeof(char)*src->h_length);
-		if (dst->h_addr_list[i]==0){
-			ser_error=ret=E_OUT_OF_MEM;
-			pkg_free(dst->h_name);
-			for(r=0; dst->h_aliases[r]; r++)	pkg_free(dst->h_aliases[r]);
-			pkg_free(dst->h_aliases[r]);
-			pkg_free(dst->h_aliases);
-			for (r=0; r<i;r++) pkg_free(dst->h_addr_list[r]);
-			pkg_free(dst->h_addr_list);
-			goto error;
-		}
-		memcpy(dst->h_addr_list[i], src->h_addr_list[i], src->h_length);
-	}
-
-	/* copy h_addr_type & length */
-	dst->h_addrtype=src->h_addrtype;
-	dst->h_length=src->h_length;
-	/*finished hostent copy */
-	
-	return 0;
-
-error:
-	LOG(L_CRIT, "ERROR: hostent_cpy: memory allocation failure\n");
-	return ret;
-}
-
-
-
-void free_hostent(struct hostent *dst)
-{
-	int r;
-	if (dst->h_name) pkg_free(dst->h_name);
-	if (dst->h_aliases){
-		for(r=0; dst->h_aliases[r]; r++) {
-			pkg_free(dst->h_aliases[r]);
-		}
-		pkg_free(dst->h_aliases);
-	}
-	if (dst->h_addr_list){
-		for (r=0; dst->h_addr_list[r];r++) { 
-			pkg_free(dst->h_addr_list[r]);
-		}
-		pkg_free(dst->h_addr_list);
-	}
-}
-
-
-
-
-struct proxy_l* add_proxy(str* name, unsigned short port, int proto)
-{
-	struct proxy_l* p;
-	
-	if ((p=find_proxy(name, port, proto))!=0) return p;
-	if ((p=mk_proxy(name, port, proto))==0) goto error;
-	/* add p to the proxy list */
-	p->next=proxies;
-	proxies=p;
-	return p;
-
-error:
-	return 0;
-}
-
-
-
-
-/* same as add_proxy, but it doesn't add the proxy to the list
- * uses also SRV if possible & port==0 (quick hack) */
-
-struct proxy_l* mk_proxy(str* name, unsigned short port, int proto)
-{
-	struct proxy_l* p;
-	struct hostent* he;
-
-	p=(struct proxy_l*) pkg_malloc(sizeof(struct proxy_l));
-	if (p==0){
-		ser_error=E_OUT_OF_MEM;
-		LOG(L_CRIT, "ERROR: mk_proxy: memory allocation failure\n");
-		goto error;
-	}
-	memset(p,0,sizeof(struct proxy_l));
-	p->name=*name;
-	p->port=port;
-	p->proto=proto;
-
-	DBG("DEBUG: mk_proxy: doing DNS lookup...\n");
-	he=sip_resolvehost(name, &(p->port), proto);
-	if (he==0){
-		ser_error=E_BAD_ADDRESS;
-		LOG(L_CRIT, "ERROR: mk_proxy: could not resolve hostname:"
-					" \"%.*s\"\n", name->len, name->s);
-		pkg_free(p);
-		goto error;
-	}
-	if (hostent_cpy(&(p->host), he)!=0){
-		pkg_free(p);
-		goto error;
-	}
-	p->ok=1;
-	return p;
-error:
-	return 0;
-}
-
-
-
-/* same as mk_proxy, but get the host as an ip*/
-struct proxy_l* mk_proxy_from_ip(struct ip_addr* ip, unsigned short port,
-									int proto)
-{
-	struct proxy_l* p;
-
-	p=(struct proxy_l*) pkg_malloc(sizeof(struct proxy_l));
-	if (p==0){
-		LOG(L_CRIT, "ERROR: mk_proxy_from_ip: memory allocation failure\n");
-		goto error;
-	}
-	memset(p,0,sizeof(struct proxy_l));
-
-	p->port=port;
-	p->proto=proto;
-	p->host.h_addrtype=ip->af;
-	p->host.h_length=ip->len;
-	p->host.h_addr_list=pkg_malloc(2*sizeof(char*));
-	if (p->host.h_addr_list==0) goto error;
-	p->host.h_addr_list[1]=0;
-	p->host.h_addr_list[0]=pkg_malloc(ip->len+1);
-	if (p->host.h_addr_list[0]==0){
-		pkg_free(p->host.h_addr_list);
-		goto error;
-	}
-
-	memcpy(p->host.h_addr_list[0], ip->u.addr, ip->len);
-	p->host.h_addr_list[0][ip->len]=0;
-
-	return p;
-
-error:
-	return 0;
-}
-
-
-
-
-void free_proxy(struct proxy_l* p)
-{
-	if (p) free_hostent(&p->host);
-}

Deleted: ser/trunk/proxy.h
===================================================================
--- ser/trunk/proxy.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/proxy.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,70 +0,0 @@
-/*
- * $Id: proxy.h,v 1.9 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- */
- /*
-  * History:
-  * -------
-  *  2003-02-13  added proto to struct proxy_l & to *_proxy functions (andrei)
-  */
-
-
-#ifndef proxy_h
-#define proxy_h
-
-#include <netdb.h>
-#include "ip_addr.h"
-#include "str.h"
-
-struct proxy_l{
-	struct proxy_l* next;
-	str name; /* original name */
-	struct hostent host; /* addresses */
-	unsigned short port;
-	unsigned short reserved; /*align*/
-	int proto;
-	
-	/* socket ? */
-
-	int addr_idx;	/* crt. addr. idx. */
-	int ok; /* 0 on error */
-	/*statistics*/
-	int tx;
-	int tx_bytes;
-	int errors;
-};
-
-extern struct proxy_l* proxies;
-
-struct proxy_l* add_proxy(str* name, unsigned short port, int proto);
-struct proxy_l* mk_proxy(str* name, unsigned short port, int proto);
-struct proxy_l* mk_proxy_from_ip(struct ip_addr* ip, unsigned short port,
-									int proto);
-void free_proxy(struct proxy_l* p);
-
-
-#endif
-

Deleted: ser/trunk/pt.h
===================================================================
--- ser/trunk/pt.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/pt.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,95 +0,0 @@
-/*
- * $Id: pt.h,v 1.11 2004/11/26 16:27:22 andrei Exp $
- *
- * Process Table
- *
- *
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2003-04-15  added tcp_disable support (andrei)
- */
-
-
-#ifndef _PT_H
-#define _PT_H
-
-#include <sys/types.h>
-#include <unistd.h>
-
-#include "globals.h"
-#include "timer.h"
-#include "socket_info.h"
-
-#define MAX_PT_DESC	128
-
-struct process_table {
-	int pid;
-#ifdef USE_TCP
-	int unix_sock; /* unix socket on which tcp main listens */
-	int idx; /* tcp child index, -1 for other processes */
-#endif
-	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()
-{
-	int udp_listeners;
-	struct socket_info* si;
-	
-	for (si=udp_listen, udp_listeners=0; si; si=si->next, udp_listeners++);
-    return 
-		/* receivers and attendant */
-		(dont_fork ? 1 : children_no*udp_listeners + 1)
-		/* timer process */
-		+ 1 /* always, we need it in most cases, and we can't tell here
-			   & now if we don't need it */
-		/* fifo server */
-		+((fifo==NULL || strlen(fifo)==0) ? 0 : 1 )
-		/* unixsock server*/
-		+(unixsock_name?unixsock_children:0)
-#ifdef USE_TCP
-		+((!tcp_disable)?( 1/* tcp main */ + tcp_children_no ):0) 
-#endif
-		;
-}
-
-
-/* return processes pid */
-inline static int my_pid()
-{
-	return pt ? pt[process_no].pid : getpid();
-}
-
-
-#endif

Deleted: ser/trunk/qvalue.c
===================================================================
--- ser/trunk/qvalue.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/qvalue.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,184 +0,0 @@
-/*
- * $Id: qvalue.c,v 1.1.2.1 2005/02/18 18:19:44 janakj Exp $
- *
- * Handling of the q value
- *
- * Copyright (C) 2004 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 at 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
- *
- * History
- * ------
- * 2004-04-25 created (janakj)
- */
-
-#include "error.h"
-#include "qvalue.h"
-
-
-/*
- * Convert string representation of q parameter in qvalue_t
- */
-int str2q(qvalue_t* q, char* s, int len)
-{
-	int i, digits, order;
-
-	     /* States and equivalent regular expressions of input */
-	enum {
-		ST_START,   /* (SPC|TAB)* */
-		ST_0,       /* 0+ */
-		ST_1,       /* 1 */
-		ST_0_PT,    /* 0*\. */
-		ST_1_PT,    /* 1\. */
-		ST_1_PT_0,  /* 1\.0+ */
-		ST_0_PT_N   /* 0*\.[0-9]+ */
-	} state = ST_START;
-
-	if (!q || !s) {
-		return E_INVALID_PARAMS;
-	}
-
-	digits = 1;
-	order = 100;
-	for(i = 0; i < len; i++) {
-		switch(state) {
-		case ST_START:
-			switch(s[i]) {
-			case ' ':
-			case '\t':
-				break;
-
-			case '0':
-				*q = 0;
-				state = ST_0;
-				break;
-
-			case '1':
-				*q = 1000;
-				state = ST_1;
-				break;
-
-			case '.':
-				state = ST_0_PT;
-				break;
-
-			default:
-				return E_Q_INV_CHAR;
-			}
-			break;
-
-		case ST_0:
-			switch(s[i]) {
-			case '0':
-				break;
-
-			case '.':
-				state = ST_0_PT;
-				break;
-
-			case '1':
-				*q = 1000;
-				state = ST_1;
-				break;
-
-			default:
-				if (s[i] >= '2' && s[i] <= '9') {
-					return E_Q_TOO_BIG;
-				} else {
-					return E_Q_INV_CHAR;
-				}
-			}
-			break;
-
-		case ST_1:
-			if (s[i] == '.') {
-				state = ST_1_PT;
-				break;
-			} else {
-				if (s[i] >= '0' && s[i] <= '9') {
-					return E_Q_TOO_BIG;
-				} else {
-					return E_Q_INV_CHAR;
-				}
-			}
-			break;
-
-		case ST_0_PT:
-			if (s[i] >= '0' && s[i] <= '9') {
-				*q =  (s[i] - '0') * order;
-				order /= 10;
-				state = ST_0_PT_N;
-			} else {
-				return E_Q_INV_CHAR;
-			}
-			break;
-
-		case ST_1_PT:
-			if (s[i] == '0') {
-				state = ST_1_PT_0;
-			} else {
-				if (s[i] >= '1' && s[i] <= '9') {
-					return E_Q_TOO_BIG;
-				} else {
-					return E_Q_INV_CHAR;
-				}
-			}
-			break;
-
-		case ST_1_PT_0:
-			if (s[i] == '0') {
-				break;
-			} else {
-				if (s[i] >= '1' && s[i] <= '9') {
-					return E_Q_TOO_BIG;
-				} else {
-					return E_Q_INV_CHAR;
-				}
-			}
-			break;
-
-		case ST_0_PT_N:
-			if (s[i] >= '0' && s[i] <= '9') {
-				if (digits <= 3) {
-					*q += (s[i] - '0') * order;
-					order /= 10;
-					digits++;
-				}
-			} else {
-				return E_Q_INV_CHAR;
-			}
-			break;
-		}
-	}
-
-	switch(state) {
-	case ST_START:
-		return E_Q_EMPTY;
-		
-	case ST_0_PT:
-	case ST_1_PT:
-		return E_Q_DEC_MISSING;
-		
-	default:
-		return 0;
-	}
-}

Deleted: ser/trunk/qvalue.h
===================================================================
--- ser/trunk/qvalue.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/qvalue.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,177 +0,0 @@
-/*
- * $Id: qvalue.h,v 1.4 2004/04/27 14:52:57 janakj Exp $
- *
- * Handling of the q value
- *
- * Copyright (C) 2004 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 at 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
- *
- * History
- * ------
- * 2004-04-25 created (janakj)
- */
-
-#ifndef _QVALUE_H
-#define _QVALUE_H 1
-
-#include <string.h>
-
-/*
- * The q value expresses the priority of a URI within a set of URIs 
- * (Contact header field in the same SIP message or dset array in 
- * ser. The higher is the q value of a URI the higher is the priority 
- * of the URI.
- *
- * The q value is usually expressed as a floating point number with 
- * limited number of decimal digits, for example 0.346. RFC3261 allows 
- * 0-3 decimal digits.
- *
- * To speed things up we represent the q value as integer number, it 
- * is then easier to handle/print the value. To convert float into 
- * integer we multiply the q value by 1000, i.e. 
- * (float)0.567 == (int)567. In the opposite direction, values 
- * higher or equal to 1000 are converted to 1.0 and values below or 
- * equal to 0 are converted to 0.
- *
- * Value Q_UNSPECIFIED (which is in fact -1) has a special meaning, it 
- * means that the q value is not known and the parameter should not be 
- * printed when printing Contacts, implementations will then use 
- * implementation specific pre-defined values.
- */
-
-typedef int qvalue_t;
-
-/*
- * Use this if the value of q is not specified
- */
-#define Q_UNSPECIFIED ((qvalue_t)-1)
-
-
-#define MAX_Q ((qvalue_t)1000)
-#define MIN_Q ((qvalue_t)0)
-
-#define MAX_Q_STR "1"
-#define MAX_Q_STR_LEN (sizeof(MAX_Q_STR) - 1)
-
-#define MIN_Q_STR "0"
-#define MIN_Q_STR_LEN (sizeof(MIN_Q_STR) - 1)
-
-#define Q_PREFIX "0."
-#define Q_PREFIX_LEN (sizeof(Q_PREFIX) - 1)
-
-
-
-/*
- * Calculate the length of printed q
- */
-static inline size_t len_q(qvalue_t q)
-{
-	if (q == Q_UNSPECIFIED) {
-		return 0;
-	} else if (q >= MAX_Q) {
-		return MAX_Q_STR_LEN;
-	} else if (q <= MIN_Q) {
-		return MIN_Q_STR_LEN;
-	} else if (q % 100 == 0) {
-		return Q_PREFIX_LEN + 1;
-	} else if (q % 10 == 0) {
-		return Q_PREFIX_LEN + 2;
-	} else {
-		return Q_PREFIX_LEN + 3;
-	}
-}
-
-
-/*
- * Convert qvalue_t to double
- */
-static inline double q2double(qvalue_t q)
-{
-	if (q == Q_UNSPECIFIED) {
-		return -1;
-	} else {
-		return (double)((double)q / (double)1000);
-	}
-}
-
-
-/*
- * Convert double to qvalue_t
- */
-static inline qvalue_t double2q(double q)
-{
-	if (q == -1) {
-		return Q_UNSPECIFIED;
-	} else {
-		return q * 1000;
-	}
-}
-
-
-/*
- * Convert q value to string
- */
-static inline char* q2str(qvalue_t q, unsigned int* len)
-{
-	static char buf[sizeof("0.123")];
-	char* p;
-
-	p = buf;
-	if (q == Q_UNSPECIFIED) {
-		     /* Do nothing */
-	} else if (q >= MAX_Q) {
-		memcpy(p, MAX_Q_STR, MAX_Q_STR_LEN);
-		p += MAX_Q_STR_LEN;
-	} else if (q <= MIN_Q) {
-		memcpy(p, MIN_Q_STR, MIN_Q_STR_LEN);
-		p += MIN_Q_STR_LEN;
-	} else {
-		memcpy(p, Q_PREFIX, Q_PREFIX_LEN);
-		p += Q_PREFIX_LEN;
-		
-		*p++ = q / 100 + '0';
-		q %= 100;
-		if (!q) goto end;
-
-		*p++ = q / 10 + '0';
-		q %= 10;
-		if (!q) goto end;
-
-		*p++ = q + '0';
-	}
- end:
-	*p = '\0';
-	if (len) {
-		*len = p - buf;
-	}
-	return buf;
-}
-
-
-/*
- * Convert string representation of q parameter in qvalue_t
- */
-int str2q(qvalue_t* q, char* s, int len);
-
-
-#endif /* _QVALUE_H */

Deleted: ser/trunk/re.c
===================================================================
--- ser/trunk/re.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/re.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,529 +0,0 @@
-/* 
- * $Id: re.c,v 1.11 2004/11/12 16:58:58 andrei Exp $
- *
- * regexp and regexp substitutions implementations
- * 
- * 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 at 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
- *
- *
- * History:
- * --------
- *   2003-08-04  created by andrei
- *   2004-11-12  minor api extension, added *count (andrei)
- */
-
-
-#include "dprint.h"
-#include "mem/mem.h"
-#include "re.h"
-
-#include <string.h>
-
-
-
-void subst_expr_free(struct subst_expr* se)
-{
-	if (se->replacement.s) pkg_free(se->replacement.s);
-	if (se->re) { regfree(se->re); pkg_free(se->re); };
-	pkg_free(se);
-}
-
-
-
-/* frees the entire list, head (l) too */
-void replace_lst_free(struct replace_lst* l)
-{
-	struct replace_lst* t;
-	
-	while (l){
-		t=l;
-		l=l->next;
-		if (t->rpl.s) pkg_free(t->rpl.s);
-		pkg_free(t);
-	}
-}
-
-
-
-/* parse a /regular expression/replacement/flags into a subst_expr structure */
-struct subst_expr* subst_parser(str* subst)
-{
-#define MAX_REPLACE_WITH 100
-	char c;
-	char* end;
-	char* p;
-	char* re;
-	char* re_end;
-	char* repl;
-	char* repl_end;
-	struct replace_with rw[MAX_REPLACE_WITH];
-	int rw_no;
-	int escape;
-	int cflags; /* regcomp flags */
-	int replace_all;
-	struct subst_expr* se;
-	regex_t* regex;
-	int max_pmatch;
-	int r;
-	
-	/* init */
-	se=0;
-	regex=0;
-	cflags=REG_EXTENDED  | REG_NEWLINE; /* don't match newline */
-	replace_all=0;
-	if (subst->len<3){
-		LOG(L_ERR, "ERROR: subst_parser: expression is too short: %.*s\n",
-				subst->len, subst->s);
-		goto error;
-	}
-	
-	p=subst->s;
-	c=*p;
-	if (c=='\\'){
-		LOG(L_ERR, "ERROR: subst_parser: invalid separator char <%c>"
-				" in %.*s\n", c, subst->len, subst->s);
-		goto error;
-	}
-	p++;
-	end=subst->s+subst->len;
-	/* find re */
-	re=p;
-	for (;p<end;p++){
-		/* if unescaped sep. char */
-		if ((*p==c) && (*(p-1)!='\\')) goto found_re;
-	}
-	LOG(L_ERR, "ERROR: subst_parser: no separator found: %.*s\n", subst->len, 
-			subst->s);
-	goto error;
-found_re:
-	re_end=p;
-	p++;
-	/* parse replacement */
-	repl=p;
-	rw_no=0;
-	max_pmatch=0;
-	escape=0;
-	for(;p<end; p++){
-		if (escape){
-			escape=0;
-			switch (*p){
-				/* special char escapes */
-				case '\\':
-					rw[rw_no].size=2;
-					rw[rw_no].offset=(p-1)-repl;
-					rw[rw_no].type=REPLACE_CHAR;
-					rw[rw_no].u.c='\\';
-					break;
-				case 'n':
-					rw[rw_no].size=2;
-					rw[rw_no].offset=(p-1)-repl;
-					rw[rw_no].type=REPLACE_CHAR;
-					rw[rw_no].u.c='\n';
-					break;
-				case 'r':
-					rw[rw_no].size=2;
-					rw[rw_no].offset=(p-1)-repl;
-					rw[rw_no].type=REPLACE_CHAR;
-					rw[rw_no].u.c='\r';
-					break;
-				case 't':
-					rw[rw_no].size=2;
-					rw[rw_no].offset=(p-1)-repl;
-					rw[rw_no].type=REPLACE_CHAR;
-					rw[rw_no].u.c='\t';
-					break;
-				/* special sip msg parts escapes */
-				case 'u':
-					rw[rw_no].size=2;
-					rw[rw_no].offset=(p-1)-repl;
-					rw[rw_no].type=REPLACE_URI;
-					break;
-				/* re matches */
-				case '0': /* allow 0, too, reference to the whole match */
-				case '1':
-				case '2':
-				case '3':
-				case '4':
-				case '5':
-				case '6':
-				case '7':
-				case '8':
-				case '9':
-					rw[rw_no].size=2;
-					rw[rw_no].offset=(p-1)-repl;
-					rw[rw_no].type=REPLACE_NMATCH;
-					rw[rw_no].u.nmatch=(*p)-'0';/* 0 is the whole matched str*/
-					if (max_pmatch<rw[rw_no].u.nmatch) 
-						max_pmatch=rw[rw_no].u.nmatch;
-					break;
-				default: /* just print current char */
-					if (*p!=c){
-						LOG(L_WARN, "subst_parser: WARNING: \\%c unknown"
-								" escape in %.*s\n", *p, subst->len, subst->s);
-					}
-					rw[rw_no].size=2;
-					rw[rw_no].offset=(p-1)-repl;
-					rw[rw_no].type=REPLACE_CHAR;
-					rw[rw_no].u.c=*p;
-					break;
-			}
-			rw_no++;
-			if (rw_no>=MAX_REPLACE_WITH){
-				LOG(L_ERR, "ERROR: subst_parser: too many escapes in the"
-							" replace part %.*s\n", subst->len, subst->s);
-				goto error;
-			}
-		}else if (*p=='\\') escape=1;
-		else  if (*p==c) goto found_repl;
-	}
-	LOG(L_ERR, "ERROR: subst_parser: missing separator: %.*s\n", subst->len, 
-			subst->s);
-	goto error;
-found_repl:
-	repl_end=p;
-	p++;
-	/* parse flags */
-	for(;p<end; p++){
-		switch(*p){
-			case 'i':
-				cflags|=REG_ICASE;
-				break;
-			case 's':
-				cflags&=(~REG_NEWLINE);
-				break;
-			case 'g':
-				replace_all=1;
-				break;
-			default:
-				LOG(L_ERR, "ERROR: subst_parser: unknown flag %c in %.*s\n",
-						*p, subst->len, subst->s);
-				goto error;
-		}
-	}
-
-	/* compile the re */
-	if ((regex=pkg_malloc(sizeof(regex_t)))==0){
-		LOG(L_ERR, "ERROR: subst_parser: out of memory (re)\n");
-		goto error;
-	}
-	c=*re_end; /* regcomp expects null terminated strings -- save */
-	*re_end=0;
-	if (regcomp(regex, re, cflags)!=0){
-		pkg_free(regex);
-		*re_end=c; /* restore */
-		LOG(L_ERR, "ERROR: subst_parser: bad regular expression %.*s in "
-				"%.*s\n", (int)(re_end-re), re, subst->len, subst->s);
-		goto error;
-	}
-	*re_end=c; /* restore */
-	/* construct the subst_expr structure */
-	se=pkg_malloc(sizeof(struct subst_expr)+
-					((rw_no)?(rw_no-1)*sizeof(struct replace_with):0));
-		/* 1 replace_with structure is  already included in subst_expr */
-	if (se==0){
-		LOG(L_ERR, "ERROR: subst_parser: out of memory (subst_expr)\n");
-		goto error;
-	}
-	memset((void*)se, 0, sizeof(struct subst_expr));
-	se->replacement.len=repl_end-repl;
-	if ((se->replacement.s=pkg_malloc(se->replacement.len))==0){
-		LOG(L_ERR, "ERROR: subst_parser: out of memory (replacement)\n");
-		goto error;
-	}
-	/* start copying */
-	memcpy(se->replacement.s, repl, se->replacement.len);
-	se->re=regex;
-	se->replace_all=replace_all;
-	se->n_escapes=rw_no;
-	se->max_pmatch=max_pmatch;
-	for (r=0; r<rw_no; r++) se->replace[r]=rw[r];
-	DBG("subst_parser: ok, se is %p\n", se);
-	return se;
-	
-error:
-	if (se) { subst_expr_free(se); regex=0; }
-	if (regex) { regfree (regex); pkg_free(regex); }
-	return 0;
-}
-
-
-
-static int replace_len(const char* match, int nmatch, regmatch_t* pmatch,
-					struct subst_expr* se, struct sip_msg* msg)
-{
-	int r;
-	int len;
-	str* uri;
-	
-	len=se->replacement.len;
-	for (r=0; r<se->n_escapes; r++){
-		switch(se->replace[r].type){
-			case REPLACE_NMATCH:
-				len-=se->replace[r].size;
-				if ((se->replace[r].u.nmatch<nmatch)&&(
-						pmatch[se->replace[r].u.nmatch].rm_so!=-1)){
-						/* do the replace */
-						len+=pmatch[se->replace[r].u.nmatch].rm_eo-
-								pmatch[se->replace[r].u.nmatch].rm_so;
-				};
-				break;
-			case REPLACE_CHAR:
-				len-=(se->replace[r].size-1);
-				break;
-			case REPLACE_URI:
-				len-=se->replace[r].size;
-				if (msg->first_line.type!=SIP_REQUEST){
-					LOG(L_CRIT, "BUG: replace_len: uri substitution on"
-								" a reply\n");
-					break; /* ignore, we can continue */
-				}
-				uri= (msg->new_uri.s)?(&msg->new_uri):
-					(&msg->first_line.u.request.uri);
-				len+=uri->len;
-				break;
-			default:
-				LOG(L_CRIT, "BUG: replace_len: unknown type %d\n", 
-						se->replace[r].type);
-				/* ignore it */
-		}
-	}
-	return len;
-}
-
-
-
-/* rpl.s will be alloc'ed with the proper size & rpl.len set
- * returns 0 on success, <0 on error*/
-static int replace_build(const char* match, int nmatch, regmatch_t* pmatch,
-					struct subst_expr* se, struct sip_msg* msg, str* rpl)
-{
-	int r;
-	str* uri;
-	char* p;
-	char* dest;
-	char* end;
-	int size;
-	
-	rpl->len=replace_len(match, nmatch, pmatch, se, msg);
-	if (rpl->len==0){
-		rpl->s=0; /* empty string */
-		return 0;
-	}
-	rpl->s=pkg_malloc(rpl->len);
-	if (rpl->s==0){
-		LOG(L_ERR, "ERROR: replace_build: out of mem (rpl)\n");
-		goto error;
-	}
-	p=se->replacement.s;
-	end=p+se->replacement.len;
-	dest=rpl->s;
-	for (r=0; r<se->n_escapes; r++){
-		/* copy the unescaped parts */
-		size=se->replacement.s+se->replace[r].offset-p;
-		memcpy(dest, p, size);
-		p+=size+se->replace[r].size;
-		dest+=size;
-		switch(se->replace[r].type){
-			case REPLACE_NMATCH:
-				if ((se->replace[r].u.nmatch<nmatch)&&(
-						pmatch[se->replace[r].u.nmatch].rm_so!=-1)){
-						/* do the replace */
-						size=pmatch[se->replace[r].u.nmatch].rm_eo-
-								pmatch[se->replace[r].u.nmatch].rm_so;
-						memcpy(dest, 
-								match+pmatch[se->replace[r].u.nmatch].rm_so,
-								size);
-						dest+=size;
-				};
-				break;
-			case REPLACE_CHAR:
-				*dest=se->replace[r].u.c;
-				dest++;
-				break;
-			case REPLACE_URI:
-				if (msg->first_line.type!=SIP_REQUEST){
-					LOG(L_CRIT, "BUG: replace_build: uri substitution on"
-								" a reply\n");
-					break; /* ignore, we can continue */
-				}
-				uri= (msg->new_uri.s)?(&msg->new_uri):
-					(&msg->first_line.u.request.uri);
-				memcpy(dest, uri->s, uri->len);
-				dest+=uri->len;
-				break;
-			default:
-				LOG(L_CRIT, "BUG: replace_build: unknown type %d\n", 
-						se->replace[r].type);
-				/* ignore it */
-		}
-	}
-	memcpy(dest, p, end-p);
-	return 0;
-error:
-	return -1;
-}
-
-
-
-/* WARNING: input must be 0 terminated! */
-/* returns: 0 if no match or error, or subst result; if count!=0
- *           it will be set to 0 (no match), the number of matches
- *           or -1 (error).
- */
-struct replace_lst* subst_run(struct subst_expr* se, const char* input,
-								struct sip_msg* msg, int* count)
-{
-	struct replace_lst *head;
-	struct replace_lst **crt;
-	const char *p;
-	int r;
-	regmatch_t* pmatch;
-	int nmatch;
-	int eflags;
-	int cnt;
-	
-	
-	/* init */
-	head=0;
-	cnt=0;
-	crt=&head;
-	p=input;
-	nmatch=se->max_pmatch+1;
-	/* no of () referenced + 1 for the whole string: pmatch[0] */
-	pmatch=pkg_malloc(nmatch*sizeof(regmatch_t));
-	if (pmatch==0){
-		LOG(L_ERR, "ERROR: subst_run_ out of mem. (pmatch)\n");
-		goto error;
-	}
-	eflags=0;
-	do{
-		r=regexec(se->re, p, nmatch, pmatch, eflags);
-		DBG("subst_run: running. r=%d\n", r);
-		/* subst */
-		if (r==0){ /* != REG_NOMATCH */
-			/* change eflags, not to match any more at string start */
-			eflags|=REG_NOTBOL;
-			*crt=pkg_malloc(sizeof(struct replace_lst));
-			if (*crt==0){
-				LOG(L_ERR, "ERROR: subst_run: out of mem (crt)\n");
-				goto error;
-			}
-			memset(*crt, 0, sizeof(struct replace_lst));
-			if (pmatch[0].rm_so==-1){
-				LOG(L_ERR, "ERROR: subst_run: unknown offset?\n");
-				goto error;
-			}
-			(*crt)->offset=pmatch[0].rm_so+(int)(p-input);
-			(*crt)->size=pmatch[0].rm_eo-pmatch[0].rm_so;
-			DBG("subst_run: matched (%d, %d): [%.*s]\n",
-					(*crt)->offset, (*crt)->size, 
-					(*crt)->size, input+(*crt)->offset);
-			/* create subst. string */
-			/* construct the string from replace[] */
-			if (replace_build(p, nmatch, pmatch, se, msg, &((*crt)->rpl))<0){
-				goto error;
-			}
-			crt=&((*crt)->next);
-			p+=pmatch[0].rm_eo;
-			cnt++;
-		}
-	}while((r==0) && se->replace_all);
-	pkg_free(pmatch);
-	if (count)*count=cnt;
-	return head;
-error:
-	if (head) replace_lst_free(head);
-	if (pmatch) pkg_free(pmatch);
-	if (count) *count=-1;
-	return 0;
-}
-
-
-
-/* returns the substitution result in a str, input must be 0 term
- *  0 on no match or malloc error
- *  if count is non zero it will be set to the number of matches, or -1
- *   if error 
- */ 
-str* subst_str(const char *input, struct sip_msg* msg, struct subst_expr* se,
-				int* count)
-{
-	str* res;
-	struct replace_lst *lst;
-	struct replace_lst* l;
-	int len;
-	int size;
-	const char* p;
-	char* dest;
-	const char* end;
-	
-	
-	/* compute the len */
-	len=strlen(input);
-	end=input+len;
-	lst=subst_run(se, input, msg, count);
-	if (lst==0){
-		DBG("subst_str: no match\n");
-		return 0;
-	}
-	for (l=lst; l; l=l->next)
-		len+=(int)(l->rpl.len)-l->size;
-	res=pkg_malloc(sizeof(str));
-	if (res==0){
-		LOG(L_ERR, "ERROR: subst_str: mem. allocation error\n");
-		goto error;
-	}
-	res->s=pkg_malloc(len+1); /* space for null termination */
-	if (res->s==0){
-		LOG(L_ERR, "ERROR: subst_str: mem. allocation error (res->s)\n");
-		goto error;
-	}
-	res->s[len]=0;
-	res->len=len;
-	
-	/* replace */
-	dest=res->s;
-	p=input;
-	for(l=lst; l; l=l->next){
-		size=l->offset+input-p;
-		memcpy(dest, p, size); /* copy till offset */
-		p+=size + l->size; /* skip l->size bytes */
-		dest+=size;
-		if (l->rpl.len){
-			memcpy(dest, l->rpl.s, l->rpl.len);
-			dest+=l->rpl.len;
-		}
-	}
-	memcpy(dest, p, end-p);
-	if(lst) replace_lst_free(lst);
-	return res;
-error:
-	if (lst) replace_lst_free(lst);
-	if (res){
-		if (res->s) pkg_free(res->s);
-		pkg_free(res);
-	}
-	if (count) *count=-1;
-	return 0;
-}

Deleted: ser/trunk/re.h
===================================================================
--- ser/trunk/re.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/re.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,85 +0,0 @@
-/*
- * $Id: re.h,v 1.6 2004/11/12 16:58:58 andrei Exp $
- *
- * regexp and regexp substitutions implementations
- * 
- * 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 at 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
- *
- *
- * History:
- * --------
- *   2003-08-04  created by andrei
- *   2004-11-12  minor api extension, added *count (andrei)
- */
-
-#ifndef _re_h
-#define _re_h
-
-#include "str.h"
-#include "parser/msg_parser.h"
-#include <sys/types.h> /* for regex */
-#include <regex.h>
-
-enum replace_special { REPLACE_NMATCH, REPLACE_CHAR, REPLACE_URI };
-
-struct replace_with{
-	int offset; /* offset in string */
-	int size;   /* size of replace "anchor" in string */
-	enum replace_special type;
-	union{
-		int nmatch;
-		char c;
-	}u;
-};
-
-struct subst_expr{
-	regex_t* re;
-	str replacement;
-	int replace_all; 
-	int n_escapes; /* escapes number (replace[] size) */
-	int max_pmatch ; /* highest () referenced */
-	struct replace_with replace[1]; /* 0 does not work on all compilers */
-};
-
-struct replace_lst{
-	int offset;
-	int size;   /* at offset, delete size bytes and replace them with rpl */
-	str rpl;
-	struct replace_lst *next;
-};
-
-
-
-void subst_expr_free(struct subst_expr* se);
-void replace_lst_free(struct replace_lst* l);
-struct subst_expr*  subst_parser(str* subst);
-struct replace_lst* subst_run( struct subst_expr* se, const char* input, 
-		                       struct sip_msg* msg, int *count);
-str* subst_str(const char* input, struct sip_msg* msg,
-				struct subst_expr* se, int* count);
-
-
-
-#endif
-

Deleted: ser/trunk/receive.c
===================================================================
--- ser/trunk/receive.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/receive.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,252 +0,0 @@
-/* 
- *$Id: receive.c,v 1.50 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- *
- * History:
- * ---------
- * 2003-02-28 scratchpad compatibility abandoned (jiri)
- * 2003-01-29 transport-independent message zero-termination in
- *            receive_msg (jiri)
- * 2003-02-07 undoed jiri's zero term. changes (they break tcp) (andrei)
- * 2003-02-10 moved zero-term in the calling functions (udp_receive &
- *            tcp_read_req)
- * 2003-08-13 fixed exec_pre_cb returning 0 (backported from stable) (andrei)
- * 2004-02-06 added user preferences support - destroy_avps() (bogdan)
- * 2004-04-30 exec_pre_cb is called after basic sanity checks (at least one
- *            via present & parsed ok)  (andrei)
- * 2004-08-23 avp core changed - destroy_avp-> reset_avps (bogdan)
- */
-
-
-#include <string.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-#include "receive.h"
-#include "globals.h"
-#include "dprint.h"
-#include "route.h"
-#include "parser/msg_parser.h"
-#include "forward.h"
-#include "action.h"
-#include "mem/mem.h"
-#include "stats.h"
-#include "ip_addr.h"
-#include "script_cb.h"
-#include "dset.h"
-#include "usr_avp.h"
-
-
-#include "tcp_server.h" /* for tcpconn_add_alias */
-
-
-#ifdef DEBUG_DMALLOC
-#include <mem/dmalloc.h>
-#endif
-
-unsigned int msg_no=0;
-/* address preset vars */
-str default_global_address={0,0};
-str default_global_port={0,0};
-str default_via_address={0,0};
-str default_via_port={0,0};
-
-
-
-/* WARNING: buf must be 0 terminated (buf[len]=0) or some things might 
- * break (e.g.: modules/textops)
- */
-int receive_msg(char* buf, unsigned int len, struct receive_info* rcv_info) 
-{
-	struct sip_msg* msg;
-	int ret;
-#ifdef STATS
-	int skipped = 1;
-	struct timeval tvb, tve;	
-	struct timezone tz;
-	unsigned int diff;
-#endif
-
-	msg=pkg_malloc(sizeof(struct sip_msg));
-	if (msg==0) {
-		LOG(L_ERR, "ERROR: receive_msg: no mem for sip_msg\n");
-		goto error00;
-	}
-	msg_no++;
-	/* number of vias parsed -- good for diagnostic info in replies */
-	via_cnt=0;
-
-	memset(msg,0, sizeof(struct sip_msg)); /* init everything to 0 */
-	/* fill in msg */
-	msg->buf=buf;
-	msg->len=len;
-	/* zero termination (termination of orig message bellow not that
-	   useful as most of the work is done with scratch-pad; -jiri  */
-	/* buf[len]=0; */ /* WARNING: zero term removed! */
-	msg->rcv=*rcv_info;
-	msg->id=msg_no;
-	msg->set_global_address=default_global_address;
-	msg->set_global_port=default_global_port;
-	
-	if (parse_msg(buf,len, msg)!=0){
-		LOG(L_ERR, "ERROR: receive_msg: parse_msg failed\n");
-		goto error02;
-	}
-	DBG("After parse_msg...\n");
-
-
-	/* ... clear branches from previous message */
-	clear_branches();
-
-	if (msg->first_line.type==SIP_REQUEST){
-		/* sanity checks */
-		if ((msg->via1==0) || (msg->via1->error!=PARSE_OK)){
-			/* no via, send back error ? */
-			LOG(L_ERR, "ERROR: receive_msg: no via found in request\n");
-			goto error;
-		}
-		/* check if necessary to add receive?->moved to forward_req */
-		/* check for the alias stuff */
-#ifdef USE_TCP
-		if (msg->via1->alias && tcp_accept_aliases && 
-				(((rcv_info->proto==PROTO_TCP) && !tcp_disable)
-#ifdef USE_TLS
-					|| ((rcv_info->proto==PROTO_TLS) && !tls_disable)
-#endif
-				)
-			){
-			if (tcpconn_add_alias(rcv_info->proto_reserved1, msg->via1->port,
-									rcv_info->proto)!=0){
-				LOG(L_ERR, " ERROR: receive_msg: tcp alias failed\n");
-				/* continue */
-			}
-		}
-#endif
-
-		DBG("preparing to run routing scripts...\n");
-#ifdef  STATS
-		gettimeofday( & tvb, &tz );
-#endif
-		/* execute pre-script callbacks, if any; -jiri */
-		/* if some of the callbacks said not to continue with
-		   script processing, don't do so
-		   if we are here basic sanity checks are already done
-		   (like presence of at least one via), so you can count
-		   on via1 being parsed in a pre-script callback --andrei
-		*/
-		ret=exec_pre_cb(msg);
-		if (ret<=0){
-			if (ret<0) goto error;
-			else goto end; /* drop the message -- no error -- andrei */
-		}
-		/* exec the routing script */
-		if (run_actions(rlist[0], msg)<0) {
-			LOG(L_WARN, "WARNING: receive_msg: "
-					"error while trying script\n");
-			goto error;
-		}
-
-#ifdef STATS
-		gettimeofday( & tve, &tz );
-		diff = (tve.tv_sec-tvb.tv_sec)*1000000+(tve.tv_usec-tvb.tv_usec);
-		stats->processed_requests++;
-		stats->acc_req_time += diff;
-		DBG("successfully ran routing scripts...(%d usec)\n", diff);
-		STATS_RX_REQUEST( msg->first_line.u.request.method_value );
-#endif
-	}else if (msg->first_line.type==SIP_REPLY){
-		/* sanity checks */
-		if ((msg->via1==0) || (msg->via1->error!=PARSE_OK)){
-			/* no via, send back error ? */
-			LOG(L_ERR, "ERROR: receive_msg: no via found in reply\n");
-			goto error;
-		}
-#if 0
-		if ((msg->via2==0) || (msg->via2->error!=PARSE_OK)){
-			/* no second via => error? */
-			LOG(L_ERR, "ERROR: receive_msg: no 2nd via found in reply\n");
-			goto error;
-		}
-		/* check if via1 == us */
-#endif
-
-#ifdef STATS
-		gettimeofday( & tvb, &tz );
-		STATS_RX_RESPONSE ( msg->first_line.u.reply.statuscode / 100 );
-#endif
-		
-		/* execute pre-script callbacks, if any; -jiri */
-		/* if some of the callbacks said not to continue with
-		   script processing, don't do so
-		   if we are here basic sanity checks are already done
-		   (like presence of at least one via), so you can count
-		   on via1 being parsed in a pre-script callback --andrei
-		*/
-		ret=exec_pre_cb(msg);
-		if (ret<=0){
-			if (ret<0) goto error;
-			else goto end; /* drop the message -- no error -- andrei */
-		}
-
-		/* send the msg */
-		forward_reply(msg);
-
-#ifdef STATS
-		gettimeofday( & tve, &tz );
-		diff = (tve.tv_sec-tvb.tv_sec)*1000000+(tve.tv_usec-tvb.tv_usec);
-		stats->processed_responses++;
-		stats->acc_res_time+=diff;
-		DBG("successfully ran reply processing...(%d usec)\n", diff);
-#endif
-	}
-end:
-#ifdef STATS
-	skipped = 0;
-#endif
-	/* execute post-script callbacks, if any; -jiri */
-	exec_post_cb(msg);
-	/* free possible loaded avps -bogdan */
-	reset_avps();
-	DBG("receive_msg: cleaning up\n");
-	free_sip_msg(msg);
-	pkg_free(msg);
-#ifdef STATS
-	if (skipped) STATS_RX_DROPS;
-#endif
-	return 0;
-error:
-	DBG("error:...\n");
-	/* execute post-script callbacks, if any; -jiri */
-	exec_post_cb(msg);
-	/* free possible loaded avps -bogdan */
-	reset_avps();
-error02:
-	free_sip_msg(msg);
-	pkg_free(msg);
-error00:
-	STATS_RX_DROPS;
-	return -1;
-}
-

Deleted: ser/trunk/receive.h
===================================================================
--- ser/trunk/receive.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/receive.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,38 +0,0 @@
-/*
- * $Id: receive.h,v 1.6 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-
-#ifndef receive_h
-#define receive_h
-
-#include "ip_addr.h"
-
-int receive_msg(char* buf, unsigned int len, struct receive_info *ri);
-
-
-#endif

Deleted: ser/trunk/resolve.c
===================================================================
--- ser/trunk/resolve.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/resolve.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,546 +0,0 @@
-/* $Id: resolve.c,v 1.19 2004/08/24 08:45:10 janakj Exp $*/
-/*
- *
- * 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 at 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
- */
-/*
- * History:
- * -------
- *  2003-02-13  added proto to sip_resolvehost, for SRV lookups (andrei)
- *  2003-07-03  default port value set according to proto (andrei)
- */ 
-
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#include <string.h>
-
-#include "resolve.h"
-#include "dprint.h"
-#include "mem/mem.h"
-#include "ip_addr.h"
-
-
-
-/* mallocs for local stuff */
-#define local_malloc pkg_malloc
-#define local_free   pkg_free
-
-
-
- /*  skips over a domain name in a dns message
- *  (it can be  a sequence of labels ending in \0, a pointer or
- *   a sequence of labels ending in a pointer -- see rfc1035
- *   returns pointer after the domain name or null on error*/
-unsigned char* dns_skipname(unsigned char* p, unsigned char* end)
-{
-	while(p<end){
-		/* check if \0 (root label length) */
-		if (*p==0){
-			p+=1;
-			break;
-		}
-		/* check if we found a pointer */
-		if (((*p)&0xc0)==0xc0){
-			/* if pointer skip over it (2 bytes) & we found the end */
-			p+=2;
-			break;
-		}
-		/* normal label */
-		p+=*p+1;
-	}
-	return (p>=end)?0:p;
-}
-
-
-
-/* parses the srv record into a srv_rdata structure
- *   msg   - pointer to the dns message
- *   end   - pointer to the end of the message
- *   rdata - pointer  to the rdata part of the srv answer
- * returns 0 on error, or a dyn. alloc'ed srv_rdata structure */
-/* SRV rdata format:
- *            111111
- *  0123456789012345
- * +----------------+
- * |     priority   |
- * |----------------|
- * |     weight     |
- * |----------------|
- * |   port number  |
- * |----------------|
- * |                |
- * ~      name      ~
- * |                |
- * +----------------+
- */
-struct srv_rdata* dns_srv_parser( unsigned char* msg, unsigned char* end,
-								  unsigned char* rdata)
-{
-	struct srv_rdata* srv;
-	int len;
-	
-	srv=0;
-	if ((rdata+6)>=end) goto error;
-	srv=(struct srv_rdata*)local_malloc(sizeof(struct srv_rdata));
-	if (srv==0){
-		LOG(L_ERR, "ERROR: dns_srv_parser: out of memory\n");
-		goto error;
-	}
-	
-	memcpy((void*)&srv->priority, rdata, 2);
-	memcpy((void*)&srv->weight,   rdata+2, 2);
-	memcpy((void*)&srv->port,     rdata+4, 2);
-	rdata+=6;
-	srv->priority=ntohs(srv->priority);
-	srv->weight=ntohs(srv->weight);
-	srv->port=ntohs(srv->port);
-	if ((len=dn_expand(msg, end, rdata, srv->name, MAX_DNS_NAME-1))==-1)
-		goto error;
-	/* add terminating 0 ? (warning: len=compressed name len) */
-	return srv;
-error:
-	if (srv) local_free(srv);
-	return 0;
-}
-
-
-/* parses the naptr record into a naptr_rdata structure
- *   msg   - pointer to the dns message
- *   end   - pointer to the end of the message
- *   rdata - pointer  to the rdata part of the naptr answer
- * returns 0 on error, or a dyn. alloc'ed naptr_rdata structure */
-/* NAPTR rdata format:
- *            111111
- *  0123456789012345
- * +----------------+
- * |      order     |
- * |----------------|
- * |   preference   |
- * |----------------|
- * ~     flags      ~
- * |   (string)     |
- * |----------------|
- * ~    services    ~
- * |   (string)     |
- * |----------------|
- * ~    regexp      ~
- * |   (string)     |
- * |----------------|
- * ~  replacement   ~
-   |    (name)      |
- * +----------------+
- */
-struct naptr_rdata* dns_naptr_parser( unsigned char* msg, unsigned char* end,
-								  unsigned char* rdata)
-{
-	struct naptr_rdata* naptr;
-	int len;
-	
-	naptr = 0;
-	if ((rdata + 7) >= end) goto error;
-	naptr=(struct naptr_rdata*)local_malloc(sizeof(struct naptr_rdata));
-	if (naptr == 0){
-		LOG(L_ERR, "ERROR: dns_naptr_parser: out of memory\n");
-		goto error;
-	}
-	
-	memcpy((void*)&naptr->order, rdata, 2);
-	naptr->order=ntohs(naptr->order);
-	memcpy((void*)&naptr->pref, rdata + 2, 2);
-	naptr->pref=ntohs(naptr->pref);
-	naptr->flags_len = (int)rdata[4];
-	if ((rdata + 7 +  naptr->flags_len) >= end) goto error;
-	memcpy((void*)&naptr->flags, rdata + 5, naptr->flags_len);
-	naptr->services_len = (int)rdata[5 + naptr->flags_len];
-	if ((rdata + 7 + naptr->flags_len + naptr->services_len) >= end) goto error;
-	memcpy((void*)&naptr->services, rdata + 6 + naptr->flags_len, naptr->services_len);
-	naptr->regexp_len = (int)rdata[6 + naptr->flags_len + naptr->services_len];
-	if ((rdata + 7 + naptr->flags_len + naptr->services_len +
-					naptr->regexp_len) >= end) goto error;
-	memcpy((void*)&naptr->regexp, rdata + 7 + naptr->flags_len +
-				naptr->services_len, naptr->regexp_len);
-	rdata = rdata + 7 + naptr->flags_len + naptr->services_len + 
-			naptr->regexp_len;
-	if ((len=dn_expand(msg, end, rdata, naptr->repl, MAX_DNS_NAME-1)) == -1)
-		goto error;
-	/* add terminating 0 ? (warning: len=compressed name len) */
-	return naptr;
-error:
-	if (naptr) local_free(naptr);
-	return 0;
-}
-
-
-
-/* parses a CNAME record into a cname_rdata structure */
-struct cname_rdata* dns_cname_parser( unsigned char* msg, unsigned char* end,
-									  unsigned char* rdata)
-{
-	struct cname_rdata* cname;
-	int len;
-	
-	cname=0;
-	cname=(struct cname_rdata*)local_malloc(sizeof(struct cname_rdata));
-	if(cname==0){
-		LOG(L_ERR, "ERROR: dns_cname_parser: out of memory\n");
-		goto error;
-	}
-	if ((len=dn_expand(msg, end, rdata, cname->name, MAX_DNS_NAME-1))==-1)
-		goto error;
-	return cname;
-error:
-	if (cname) local_free(cname);
-	return 0;
-}
-
-
-
-/* parses an A record rdata into an a_rdata structure
- * returns 0 on error or a dyn. alloc'ed a_rdata struct
- */
-struct a_rdata* dns_a_parser(unsigned char* rdata, unsigned char* end)
-{
-	struct a_rdata* a;
-	
-	if (rdata+4>=end) goto error;
-	a=(struct a_rdata*)local_malloc(sizeof(struct a_rdata));
-	if (a==0){
-		LOG(L_ERR, "ERROR: dns_a_parser: out of memory\n");
-		goto error;
-	}
-	memcpy(a->ip, rdata, 4);
-	return a;
-error:
-	return 0;
-}
-
-
-
-/* parses an AAAA (ipv6) record rdata into an aaaa_rdata structure
- * returns 0 on error or a dyn. alloc'ed aaaa_rdata struct */
-struct aaaa_rdata* dns_aaaa_parser(unsigned char* rdata, unsigned char* end)
-{
-	struct aaaa_rdata* aaaa;
-	
-	if (rdata+16>=end) goto error;
-	aaaa=(struct aaaa_rdata*)local_malloc(sizeof(struct aaaa_rdata));
-	if (aaaa==0){
-		LOG(L_ERR, "ERROR: dns_aaaa_parser: out of memory\n");
-		goto error;
-	}
-	memcpy(aaaa->ip6, rdata, 16);
-	return aaaa;
-error:
-	return 0;
-}
-
-
-
-/* frees completely a struct rdata list */
-void free_rdata_list(struct rdata* head)
-{
-	struct rdata* l;
-	for(l=head; l; l=l->next){
-		/* free the parsed rdata*/
-		if (l->rdata) local_free(l->rdata);
-		local_free(l);
-	}
-}
-
-
-
-/* gets the DNS records for name:type
- * returns a dyn. alloc'ed struct rdata linked list with the parsed responses
- * or 0 on error
- * see rfc1035 for the query/response format */
-struct rdata* get_record(char* name, int type)
-{
-	int size;
-	int qno, answers_no;
-	int r;
-	int ans_len;
-	static union dns_query buff;
-	unsigned char* p;
-	unsigned char* t;
-	unsigned char* end;
-	static unsigned char answer[ANS_SIZE];
-	unsigned short rtype, class, rdlength;
-	unsigned int ttl;
-	struct rdata* head;
-	struct rdata** crt;
-	struct rdata** last;
-	struct rdata* rd;
-	struct srv_rdata* srv_rd;
-	struct srv_rdata* crt_srv;
-	
-	size=res_search(name, C_IN, type, buff.buff, sizeof(buff));
-	if (size<0) {
-		DBG("get_record: lookup(%s, %d) failed\n", name, type);
-		goto not_found;
-	}
-	else if (size > sizeof(buff)) size=sizeof(buff);
-	head=rd=0;
-	last=crt=&head;
-	
-	p=buff.buff+DNS_HDR_SIZE;
-	end=buff.buff+size;
-	if (p>=end) goto error_boundary;
-	qno=ntohs((unsigned short)buff.hdr.qdcount);
-
-	for (r=0; r<qno; r++){
-		/* skip the name of the question */
-		if ((p=dns_skipname(p, end))==0) {
-			LOG(L_ERR, "ERROR: get_record: skipname==0\n");
-			goto error;
-		}
-		p+=2+2; /* skip QCODE & QCLASS */
-	#if 0
-		for (;(p<end && (*p)); p++);
-		p+=1+2+2; /* skip the ending  '\0, QCODE and QCLASS */
-	#endif
-		if (p>=end) {
-			LOG(L_ERR, "ERROR: get_record: p>=end\n");
-			goto error;
-		}
-	};
-	answers_no=ntohs((unsigned short)buff.hdr.ancount);
-	ans_len=ANS_SIZE;
-	t=answer;
-	for (r=0; (r<answers_no) && (p<end); r++){
-		/*  ignore it the default domain name */
-		if ((p=dns_skipname(p, end))==0) {
-			LOG(L_ERR, "ERROR: get_record: skip_name=0 (#2)\n");
-			goto error;
-		}
-		/*
-		skip=dn_expand(buff.buff, end, p, t, ans_len);
-		p+=skip;
-		*/
-		/* check if enough space is left for type, class, ttl & size */
-		if ((p+2+2+4+2)>=end) goto error_boundary;
-		/* get type */
-		memcpy((void*) &rtype, (void*)p, 2);
-		rtype=ntohs(rtype);
-		p+=2;
-		/* get  class */
-		memcpy((void*) &class, (void*)p, 2);
-		class=ntohs(class);
-		p+=2;
-		/* get ttl*/
-		memcpy((void*) &ttl, (void*)p, 4);
-		ttl=ntohl(ttl);
-		p+=4;
-		/* get size */
-		memcpy((void*)&rdlength, (void*)p, 2);
-		rdlength=ntohs(rdlength);
-		p+=2;
-		/* check for type */
-		/*
-		if (rtype!=type){
-			LOG(L_ERR, "WARNING: get_record: wrong type in answer (%d!=%d)\n",
-					rtype, type);
-			p+=rdlength;
-			continue;
-		}
-		*/
-		/* expand the "type" record  (rdata)*/
-		
-		rd=(struct rdata*) local_malloc(sizeof(struct rdata));
-		if (rd==0){
-			LOG(L_ERR, "ERROR: get_record: out of memory\n");
-			goto error;
-		}
-		rd->type=rtype;
-		rd->class=class;
-		rd->ttl=ttl;
-		rd->next=0;
-		switch(rtype){
-			case T_SRV:
-				srv_rd= dns_srv_parser(buff.buff, end, p);
-				rd->rdata=(void*)srv_rd;
-				if (srv_rd==0) goto error_parse;
-				
-				/* insert sorted into the list */
-				for (crt=&head; *crt; crt= &((*crt)->next)){
-					crt_srv=(struct srv_rdata*)(*crt)->rdata;
-					if ((srv_rd->priority <  crt_srv->priority) ||
-					   ( (srv_rd->priority == crt_srv->priority) && 
-							 (srv_rd->weight > crt_srv->weight) ) ){
-						/* insert here */
-						goto skip;
-					}
-				}
-				last=&(rd->next); /*end of for => this will be the last elem*/
-			skip:
-				/* insert here */
-				rd->next=*crt;
-				*crt=rd;
-				
-				break;
-			case T_A:
-				rd->rdata=(void*) dns_a_parser(p,end);
-				if (rd->rdata==0) goto error_parse;
-				*last=rd; /* last points to the last "next" or the list head*/
-				last=&(rd->next);
-				break;
-			case T_AAAA:
-				rd->rdata=(void*) dns_aaaa_parser(p,end);
-				if (rd->rdata==0) goto error_parse;
-				*last=rd;
-				last=&(rd->next);
-				break;
-			case T_CNAME:
-				rd->rdata=(void*) dns_cname_parser(buff.buff, end, p);
-				if(rd->rdata==0) goto error_parse;
-				*last=rd;
-				last=&(rd->next);
-				break;
-			case T_NAPTR:
-				rd->rdata=(void*) dns_naptr_parser(buff.buff, end, p);
-				if(rd->rdata==0) goto error_parse;
-				*last=rd;
-				last=&(rd->next);
-				break;
-			default:
-				LOG(L_ERR, "WARNING: get_record: unknown type %d\n", rtype);
-				rd->rdata=0;
-				*last=rd;
-				last=&(rd->next);
-		}
-		
-		p+=rdlength;
-		
-	}
-	return head;
-error_boundary:
-		LOG(L_ERR, "ERROR: get_record: end of query buff reached\n");
-		return 0;
-error_parse:
-		LOG(L_ERR, "ERROR: get_record: rdata parse error \n");
-		if (rd) local_free(rd); /* rd->rdata=0 & rd is not linked yet into
-								   the list */
-error:
-		LOG(L_ERR, "ERROR: get_record \n");
-		if (head) free_rdata_list(head);
-not_found:
-	return 0;
-}
-
-
-
-/* resolves a host name trying SRV lookup if *port==0 or normal A/AAAA lookup
- * if *port!=0.
- * when performing SRV lookup (*port==0) it will use proto to look for
- * tcp or udp hosts, otherwise proto is unused; if proto==0 => no SRV lookup
- * returns: hostent struct & *port filled with the port from the SRV record;
- *  0 on error
- */
-struct hostent* sip_resolvehost(str* name, unsigned short* port, int proto)
-{
-	struct hostent* he;
-	struct rdata* head;
-	struct rdata* l;
-	struct srv_rdata* srv;
-	struct ip_addr* ip;
-	static char tmp[MAX_DNS_NAME]; /* tmp. buff. for SRV lookups */
-
-	/* try SRV if no port specified (draft-ietf-sip-srv-06) */
-	if ((port)&&(*port==0)){
-		*port=(proto==PROTO_TLS)?SIPS_PORT:SIP_PORT; /* just in case we don't
-														find another */
-		if ((name->len+SRV_MAX_PREFIX_LEN+1)>MAX_DNS_NAME){
-			LOG(L_WARN, "WARNING: sip_resolvehost: domain name too long (%d),"
-						" unable to perform SRV lookup\n", name->len);
-		}else{
-			/* check if it's an ip address */
-			if ( ((ip=str2ip(name))!=0)
-#ifdef	USE_IPV6
-				  || ((ip=str2ip6(name))!=0)
-#endif
-				){
-				/* we are lucky, this is an ip address */
-				return ip_addr2he(name,ip);
-			}
-			
-			switch(proto){
-				case PROTO_NONE: /* no proto specified, use udp */
-					goto skip_srv;
-				case PROTO_UDP:
-					memcpy(tmp, SRV_UDP_PREFIX, SRV_UDP_PREFIX_LEN);
-					memcpy(tmp+SRV_UDP_PREFIX_LEN, name->s, name->len);
-					tmp[SRV_UDP_PREFIX_LEN + name->len] = '\0';
-					break;
-				case PROTO_TCP:
-					memcpy(tmp, SRV_TCP_PREFIX, SRV_TCP_PREFIX_LEN);
-					memcpy(tmp+SRV_TCP_PREFIX_LEN, name->s, name->len);
-					tmp[SRV_TCP_PREFIX_LEN + name->len] = '\0';
-					break;
-				case PROTO_TLS:
-					memcpy(tmp, SRV_TLS_PREFIX, SRV_TLS_PREFIX_LEN);
-					memcpy(tmp+SRV_TLS_PREFIX_LEN, name->s, name->len);
-					tmp[SRV_TLS_PREFIX_LEN + name->len] = '\0';
-					break;
-				default:
-					LOG(L_CRIT, "BUG: sip_resolvehost: unknown proto %d\n",
-							proto);
-					return 0;
-			}
-
-			head=get_record(tmp, T_SRV);
-			for(l=head; l; l=l->next){
-				if (l->type!=T_SRV) continue; /*should never happen*/
-				srv=(struct srv_rdata*) l->rdata;
-				if (srv==0){
-					LOG(L_CRIT, "sip_resolvehost: BUG: null rdata\n");
-					free_rdata_list(head);
-					break;
-				}
-				he=resolvehost(srv->name);
-				if (he!=0){
-					/* we found it*/
-					DBG("sip_resolvehost: SRV(%s) = %s:%d\n",
-							tmp, srv->name, srv->port);
-					*port=srv->port;
-					free_rdata_list(head); /*clean up*/
-					return he;
-				}
-			}
-			if (head) free_rdata_list(head); /*clean up*/
-			DBG("sip_resolvehost: no SRV record found for %.*s," 
-					" trying 'normal' lookup...\n", name->len, name->s);
-		}
-	}
-skip_srv:
-	if (name->len >= MAX_DNS_NAME) {
-		LOG(L_ERR, "sip_resolvehost: domain name too long\n");
-		return 0;
-	}
-	memcpy(tmp, name->s, name->len);
-	tmp[name->len] = '\0';
-	he=resolvehost(tmp);
-	return he;
-}

Deleted: ser/trunk/resolve.h
===================================================================
--- ser/trunk/resolve.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/resolve.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,359 +0,0 @@
-/*
- * $Id: resolve.h,v 1.23 2004/08/24 08:45:10 janakj Exp $
- *
- * resolver related functions
- *
- * 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 at 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
- */
-/* History:
- * --------
- *  2003-04-12  support for resolving ipv6 address references added (andrei)
- *  2004-07-28  darwin needs nameser_compat.h (andrei)
- */
-
-
-
-#ifndef __resolve_h
-#define __resolve_h
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <arpa/nameser.h>
-
-#ifdef __OS_darwin
-#include <arpa/nameser_compat.h>
-#endif
-
-#include "ip_addr.h"
-
-
-#define MAX_QUERY_SIZE 8192
-#define ANS_SIZE       8192
-#define DNS_HDR_SIZE     12
-#define MAX_DNS_NAME 256
-#define MAX_DNS_STRING 255
-
-
-
-/* query union*/
-union dns_query{
-	HEADER hdr;
-	unsigned char buff[MAX_QUERY_SIZE];
-};
-
-
-/* rdata struct*/
-struct rdata {
-	unsigned short type;
-	unsigned short class;
-	unsigned int   ttl;
-	void* rdata;
-	struct rdata* next;
-};
-
-
-/* srv rec. struct*/
-struct srv_rdata {
-	unsigned short priority;
-	unsigned short weight;
-	unsigned short port;
-	unsigned int name_len;
-	char name[MAX_DNS_NAME];
-};
-
-/* naptr rec. struct*/
-struct naptr_rdata {
-	unsigned short order;
-	unsigned short pref;
-	unsigned int flags_len;
-	char flags[MAX_DNS_STRING];
-	unsigned int services_len;
-	char services[MAX_DNS_STRING];
-	unsigned int regexp_len;
-	char regexp[MAX_DNS_STRING];
-	unsigned int repl_len; /* not currently used */
-	char repl[MAX_DNS_NAME];
-};
-
-
-/* A rec. struct */
-struct a_rdata {
-	unsigned char ip[4];
-};
-
-struct aaaa_rdata {
-	unsigned char ip6[16];
-};
-
-/* cname rec. struct*/
-struct cname_rdata {
-	char name[MAX_DNS_NAME];
-};
-
-
-
-struct rdata* get_record(char* name, int type);
-void free_rdata_list(struct rdata* head);
-
-
-
-
-#define rev_resolvehost(ip)\
-					gethostbyaddr((char*)(ip)->u.addr, (ip)->len, (ip)->af);
-
-
-
-#define HEX2I(c) \
-	(	(((c)>='0') && ((c)<='9'))? (c)-'0' :  \
-		(((c)>='A') && ((c)<='F'))? ((c)-'A')+10 : \
-		(((c)>='a') && ((c)<='f'))? ((c)-'a')+10 : -1 )
-
-
-
-
-
-/* converts a str to an ipv4 address, returns the address or 0 on error
-   Warning: the result is a pointer to a statically allocated structure */
-static inline struct ip_addr* str2ip(str* st)
-{
-	int i;
-	unsigned char *limit;
-	static struct ip_addr ip;
-	unsigned char* s;
-
-	s=(unsigned char*)st->s;
-
-	/*init*/
-	ip.u.addr32[0]=0;
-	i=0;
-	limit=(unsigned char*)(st->s + st->len);
-
-	for(;s<limit ;s++){
-		if (*s=='.'){
-				i++;
-				if (i>3) goto error_dots;
-		}else if ( (*s <= '9' ) && (*s >= '0') ){
-				ip.u.addr[i]=ip.u.addr[i]*10+*s-'0';
-		}else{
-				//error unknown char
-				goto error_char;
-		}
-	}
-	if (i<3) goto error_dots;
-	ip.af=AF_INET;
-	ip.len=4;
-	
-	return &ip;
-error_dots:
-	DBG("str2ip: ERROR: too %s dots in [%.*s]\n", (i>3)?"many":"few", 
-			st->len, st->s);
-	return 0;
- error_char:
-	/*
-	DBG("str2ip: WARNING: unexpected char %c in [%.*s]\n", *s, st->len, st->s);
-	*/
-	return 0;
-}
-
-
-
-/* returns an ip_addr struct.; on error returns 0
- * the ip_addr struct is static, so subsequent calls will destroy its content*/
-static inline struct ip_addr* str2ip6(str* st)
-{
-	int i, idx1, rest;
-	int no_colons;
-	int double_colon;
-	int hex;
-	static struct ip_addr ip;
-	unsigned short* addr_start;
-	unsigned short addr_end[8];
-	unsigned short* addr;
-	unsigned char* limit;
-	unsigned char* s;
-	
-	/* init */
-	if ((st->len) && (st->s[0]=='[')){
-		/* skip over [ ] */
-		if (st->s[st->len-1]!=']') goto error_char;
-		s=(unsigned char*)(st->s+1);
-		limit=(unsigned char*)(st->s+st->len-1);
-	}else{
-		s=(unsigned char*)st->s;
-		limit=(unsigned char*)(st->s+st->len);
-	}
-	i=idx1=rest=0;
-	double_colon=0;
-	no_colons=0;
-	ip.af=AF_INET6;
-	ip.len=16;
-	addr_start=ip.u.addr16;
-	addr=addr_start;
-	memset(addr_start, 0 , 8*sizeof(unsigned short));
-	memset(addr_end, 0 , 8*sizeof(unsigned short));
-	for (; s<limit; s++){
-		if (*s==':'){
-			no_colons++;
-			if (no_colons>7) goto error_too_many_colons;
-			if (double_colon){
-				idx1=i;
-				i=0;
-				if (addr==addr_end) goto error_colons;
-				addr=addr_end;
-			}else{
-				double_colon=1;
-				addr[i]=htons(addr[i]);
-				i++;
-			}
-		}else if ((hex=HEX2I(*s))>=0){
-				addr[i]=addr[i]*16+hex;
-				double_colon=0;
-		}else{
-			/* error, unknown char */
-			goto error_char;
-		}
-	}
-	if (!double_colon){ /* not ending in ':' */
-		addr[i]=htons(addr[i]);
-		i++; 
-	}
-	/* if address contained '::' fix it */
-	if (addr==addr_end){
-		rest=8-i-idx1;
-		memcpy(addr_start+idx1+rest, addr_end, i*sizeof(unsigned short));
-	}else{
-		/* no double colons inside */
-		if (no_colons<7) goto error_too_few_colons;
-	}
-/*
-	DBG("str2ip6: idx1=%d, rest=%d, no_colons=%d, hex=%x\n",
-			idx1, rest, no_colons, hex);
-	DBG("str2ip6: address %x:%x:%x:%x:%x:%x:%x:%x\n", 
-			addr_start[0], addr_start[1], addr_start[2],
-			addr_start[3], addr_start[4], addr_start[5],
-			addr_start[6], addr_start[7] );
-*/
-	return &ip;
-
-error_too_many_colons:
-	DBG("str2ip6: ERROR: too many colons in [%.*s]\n", st->len, st->s);
-	return 0;
-
-error_too_few_colons:
-	DBG("str2ip6: ERROR: too few colons in [%.*s]\n", st->len, st->s);
-	return 0;
-
-error_colons:
-	DBG("str2ip6: ERROR: too many double colons in [%.*s]\n", st->len, st->s);
-	return 0;
-
-error_char:
-	/*
-	DBG("str2ip6: WARNING: unexpected char %c in  [%.*s]\n", *s, st->len,
-			st->s);*/
-	return 0;
-}
-
-
-
-struct hostent* sip_resolvehost(str* name, unsigned short* port, int proto);
-
-
-
-/* gethostbyname wrappers
- * use this, someday they will use a local cache */
-
-static inline struct hostent* resolvehost(char* name)
-{
-	static struct hostent* he=0;
-#ifdef HAVE_GETIPNODEBYNAME 
-	int err;
-	static struct hostent* he2=0;
-#endif
-#ifndef DNS_IP_HACK
-#ifdef USE_IPV6
-	int len;
-#endif
-#endif
-#ifdef DNS_IP_HACK
-	struct ip_addr* ip;
-	str s;
-
-	s.s = (char*)name;
-	s.len = strlen(name);
-
-	/* check if it's an ip address */
-	if ( ((ip=str2ip(&s))!=0)
-#ifdef	USE_IPV6
-		  || ((ip=str2ip6(&s))!=0)
-#endif
-		){
-		/* we are lucky, this is an ip address */
-		return ip_addr2he(&s, ip);
-	}
-	
-#else /* DNS_IP_HACK */
-#ifdef USE_IPV6
-	len=0;
-	if (*name=='['){
-		len=strlen(name);
-		if (len && (name[len-1]==']')){
-			name[len-1]=0; /* remove '[' */
-			name++; /* skip '[' */
-			goto skip_ipv4;
-		}
-	}
-#endif
-#endif
-	/* ipv4 */
-	he=gethostbyname(name);
-#ifdef USE_IPV6
-	if(he==0){
-#ifndef DNS_IP_HACK
-skip_ipv4:
-#endif
-		/*try ipv6*/
-	#ifdef HAVE_GETHOSTBYNAME2
-		he=gethostbyname2(name, AF_INET6);
-	#elif defined HAVE_GETIPNODEBYNAME
-		/* on solaris 8 getipnodebyname has a memory leak,
-		 * after some time calls to it will fail with err=3
-		 * solution: patch your solaris 8 installation */
-		if (he2) freehostent(he2);
-		he=he2=getipnodebyname(name, AF_INET6, 0, &err);
-	#else
-		#error neither gethostbyname2 or getipnodebyname present
-	#endif
-#ifndef DNS_IP_HACK
-		if (len) name[len-2]=']'; /* restore */
-#endif
-	}
-#endif
-	return he;
-}
-
-
-
-#endif

Deleted: ser/trunk/route.c
===================================================================
--- ser/trunk/route.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/route.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,788 +0,0 @@
-/*
- * $Id: route.c,v 1.43.2.1 2005/02/18 14:30:44 andrei Exp $
- *
- * SIP routing engine
- *
- *
- * 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 at 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
- *
- * History:
- * --------
- *  2003-01-28  scratchpad removed, src_port introduced (jiri)
- *  2003-02-28  scratchpad compatibility abandoned (jiri)
- *  2003-03-10  updated to the new module exports format (andrei)
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-04-01  added dst_port, proto, af; renamed comp_port to comp_no,
- *               inlined all the comp_* functions (andrei)
- *  2003-04-05  s/reply_route/failure_route, onreply_route introduced (jiri)
- *  2003-05-23  comp_ip fixed, now it will resolve its operand and compare
- *              the ip with all the addresses (andrei)
- *  2003-10-10  added more operators support to comp_* (<,>,<=,>=,!=) (andrei)
- *  2004-10-19  added from_uri & to_uri (andrei)
- */
-
- 
-#include <stdlib.h>
-#include <sys/types.h>
-#include <regex.h>
-#include <netdb.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-
-#include "route.h"
-#include "forward.h"
-#include "dprint.h"
-#include "proxy.h"
-#include "action.h"
-#include "sr_module.h"
-#include "ip_addr.h"
-#include "resolve.h"
-#include "socket_info.h"
-#include "parser/parse_uri.h"
-#include "parser/parse_from.h"
-#include "parser/parse_to.h"
-#include "mem/mem.h"
-
-
-/* main routing script table  */
-struct action* rlist[RT_NO];
-/* reply routing table */
-struct action* onreply_rlist[ONREPLY_RT_NO];
-struct action* failure_rlist[FAILURE_RT_NO];
-
-
-static int fix_actions(struct action* a); /*fwd declaration*/
-
-
-/* traverses an expr tree and compiles the REs where necessary) 
- * returns: 0 for ok, <0 if errors */
-static int fix_expr(struct expr* exp)
-{
-	regex_t* re;
-	int ret;
-	
-	ret=E_BUG;
-	if (exp==0){
-		LOG(L_CRIT, "BUG: fix_expr: null pointer\n");
-		return E_BUG;
-	}
-	if (exp->type==EXP_T){
-		switch(exp->op){
-			case AND_OP:
-			case OR_OP:
-						if ((ret=fix_expr(exp->l.expr))!=0)
-							return ret;
-						ret=fix_expr(exp->r.expr);
-						break;
-			case NOT_OP:
-						ret=fix_expr(exp->l.expr);
-						break;
-			default:
-						LOG(L_CRIT, "BUG: fix_expr: unknown op %d\n",
-								exp->op);
-		}
-	}else if (exp->type==ELEM_T){
-			if (exp->op==MATCH_OP){
-				if (exp->subtype==STRING_ST){
-					re=(regex_t*)pkg_malloc(sizeof(regex_t));
-					if (re==0){
-						LOG(L_CRIT, "ERROR: fix_expr: memory allocation"
-								" failure\n");
-						return E_OUT_OF_MEM;
-					}
-					if (regcomp(re, (char*) exp->r.param,
-								REG_EXTENDED|REG_NOSUB|REG_ICASE) ){
-						LOG(L_CRIT, "ERROR: fix_expr : bad re \"%s\"\n",
-									(char*) exp->r.param);
-						pkg_free(re);
-						return E_BAD_RE;
-					}
-					/* replace the string with the re */
-					pkg_free(exp->r.param);
-					exp->r.param=re;
-					exp->subtype=RE_ST;
-				}else if (exp->subtype!=RE_ST){
-					LOG(L_CRIT, "BUG: fix_expr : invalid type for match\n");
-					return E_BUG;
-				}
-			}
-			if (exp->l.operand==ACTION_O){
-				ret=fix_actions((struct action*)exp->r.param);
-				if (ret!=0){
-					LOG(L_CRIT, "ERROR: fix_expr : fix_actions error\n");
-					return ret;
-				}
-			}
-			ret=0;
-	}
-	return ret;
-}
-
-
-
-/* adds the proxies in the proxy list & resolves the hostnames */
-/* returns 0 if ok, <0 on error */
-static int fix_actions(struct action* a)
-{
-	struct action *t;
-	struct proxy_l* p;
-	char *tmp;
-	int ret;
-	cmd_export_t* cmd;
-	struct sr_module* mod;
-	str s;
-	struct hostent* he;
-	struct ip_addr ip;
-	struct socket_info* si;
-	
-	if (a==0){
-		LOG(L_CRIT,"BUG: fix_actions: null pointer\n");
-		return E_BUG;
-	}
-	for(t=a; t!=0; t=t->next){
-		switch(t->type){
-			case FORWARD_T:
-			case FORWARD_TLS_T:
-			case FORWARD_TCP_T:
-			case FORWARD_UDP_T:
-			case SEND_T:
-			case SEND_TCP_T:
-					switch(t->p1_type){
-						case IP_ST: 
-							tmp=strdup(ip_addr2a(
-										(struct ip_addr*)t->p1.data));
-							if (tmp==0){
-								LOG(L_CRIT, "ERROR: fix_actions:"
-										"memory allocation failure\n");
-								return E_OUT_OF_MEM;
-							}
-							t->p1_type=STRING_ST;
-							t->p1.string=tmp;
-							/* no break */
-						case STRING_ST:
-							s.s = t->p1.string;
-							s.len = strlen(s.s);
-							p=add_proxy(&s, t->p2.number, 0); /* FIXME proto*/
-							if (p==0) return E_BAD_ADDRESS;
-							t->p1.data=p;
-							t->p1_type=PROXY_ST;
-							break;
-						case URIHOST_ST:
-							break;
-						default:
-							LOG(L_CRIT, "BUG: fix_actions: invalid type"
-									"%d (should be string or number)\n",
-										t->type);
-							return E_BUG;
-					}
-					break;
-			case IF_T:
-				if (t->p1_type!=EXPR_ST){
-					LOG(L_CRIT, "BUG: fix_actions: invalid subtype"
-								"%d for if (should be expr)\n",
-								t->p1_type);
-					return E_BUG;
-				}else if( (t->p2_type!=ACTIONS_ST)&&(t->p2_type!=NOSUBTYPE) ){
-					LOG(L_CRIT, "BUG: fix_actions: invalid subtype"
-								"%d for if() {...} (should be action)\n",
-								t->p2_type);
-					return E_BUG;
-				}else if( (t->p3_type!=ACTIONS_ST)&&(t->p3_type!=NOSUBTYPE) ){
-					LOG(L_CRIT, "BUG: fix_actions: invalid subtype"
-								"%d for if() {} else{...}(should be action)\n",
-								t->p3_type);
-					return E_BUG;
-				}
-				if (t->p1.data){
-					if ((ret=fix_expr((struct expr*)t->p1.data))<0)
-						return ret;
-				}
-				if ( (t->p2_type==ACTIONS_ST)&&(t->p2.data) ){
-					if ((ret=fix_actions((struct action*)t->p2.data))<0)
-						return ret;
-				}
-				if ( (t->p3_type==ACTIONS_ST)&&(t->p3.data) ){
-						if ((ret=fix_actions((struct action*)t->p3.data))<0)
-						return ret;
-				}
-				break;
-			case MODULE_T:
-				if ((mod=find_module(t->p1.data, &cmd))!=0){
-					DBG("fixing %s %s\n", mod->path, cmd->name);
-					if (cmd->fixup){
-						if (cmd->param_no>0){
-							ret=cmd->fixup(&t->p2.data, 1);
-							t->p2_type=MODFIXUP_ST;
-							if (ret<0) return ret;
-						}
-						if (cmd->param_no>1){
-							ret=cmd->fixup(&t->p3.data, 2);
-							t->p3_type=MODFIXUP_ST;
-							if (ret<0) return ret;
-						}
-					}
-				}
-				break;
-			case FORCE_SEND_SOCKET_T:
-				if (t->p1_type!=SOCKID_ST){
-					LOG(L_CRIT, "BUG: fix_actions: invalid subtype"
-								"%d for force_send_socket\n",
-								t->p1_type);
-					return E_BUG;
-				}
-				he=resolvehost(((struct socket_id*)t->p1.data)->name);
-				if (he==0){
-					LOG(L_ERR, "ERROR: fix_actions: force_send_socket:"
-								" could not resolve %s\n",
-								((struct socket_id*)t->p1.data)->name);
-					return E_BAD_ADDRESS;
-				}
-				hostent2ip_addr(&ip, he, 0);
-				si=find_si(&ip, ((struct socket_id*)t->p1.data)->port,
-								((struct socket_id*)t->p1.data)->proto);
-				if (si==0){
-					LOG(L_ERR, "ERROR: fix_actions: bad force_send_socket"
-							" argument: %s:%d (ser doesn't listen on it)\n",
-							((struct socket_id*)t->p1.data)->name,
-							((struct socket_id*)t->p1.data)->port);
-					return E_BAD_ADDRESS;
-				}
-				t->p1.data=si;
-				t->p1_type=SOCKETINFO_ST;
-				break;
-		}
-	}
-	return 0;
-}
-
-
-inline static int comp_no( int port, void *param, int op, int subtype )
-{
-	
-	if (subtype!=NUMBER_ST) {
-		LOG(L_CRIT, "BUG: comp_no: number expected: %d\n", subtype );
-		return E_BUG;
-	}
-	switch (op){
-		case EQUAL_OP:
-			return port==(long)param;
-		case DIFF_OP:
-			return port!=(long)param;
-		case GT_OP:
-			return port>(long)param;
-		case LT_OP:
-			return port<(long)param;
-		case GTE_OP:
-			return port>=(long)param;
-		case LTE_OP:
-			return port<=(long)param;
-		default:
-		LOG(L_CRIT, "BUG: comp_no: unknown operator: %d\n", op );
-		return E_BUG;
-	}
-}
-
-/* eval_elem helping function, returns str op param */
-inline static int comp_strstr(str* str, void* param, int op, int subtype)
-{
-	int ret;
-	char backup;
-	
-	ret=-1;
-	switch(op){
-		case EQUAL_OP:
-			if (subtype!=STRING_ST){
-				LOG(L_CRIT, "BUG: comp_str: bad type %d, "
-						"string expected\n", subtype);
-				goto error;
-			}
-			ret=(strncasecmp(str->s, (char*)param, str->len)==0);
-			break;
-		case DIFF_OP:
-			if (subtype!=STRING_ST){
-				LOG(L_CRIT, "BUG: comp_str: bad type %d, "
-						"string expected\n", subtype);
-				goto error;
-			}
-			ret=(strncasecmp(str->s, (char*)param, str->len)!=0);
-			break;
-		case MATCH_OP:
-			if (subtype!=RE_ST){
-				LOG(L_CRIT, "BUG: comp_str: bad type %d, "
-						" RE expected\n", subtype);
-				goto error;
-			}
-		/* this is really ugly -- we put a temporary zero-terminating
-		 * character in the original string; that's because regexps
-         * take 0-terminated strings and our messages are not
-         * zero-terminated; it should not hurt as long as this function
-		 * is applied to content of pkg mem, which is always the case
-		 * with calls from route{}; the same goes for fline in reply_route{};
-         *
-         * also, the received function should always give us an extra
-         * character, into which we can put the 0-terminator now;
-         * an alternative would be allocating a new piece of memory,
-         * which might be too slow
-         * -jiri
-         */
-			backup=str->s[str->len];str->s[str->len]=0;
-			ret=(regexec((regex_t*)param, str->s, 0, 0, 0)==0);
-			str->s[str->len]=backup;
-			break;
-		default:
-			LOG(L_CRIT, "BUG: comp_str: unknown op %d\n", op);
-			goto error;
-	}
-	return ret;
-	
-error:
-	return -1;
-}
-
-/* eval_elem helping function, returns str op param */
-inline static int comp_str(char* str, void* param, int op, int subtype)
-{
-	int ret;
-	
-	ret=-1;
-	switch(op){
-		case EQUAL_OP:
-			if (subtype!=STRING_ST){
-				LOG(L_CRIT, "BUG: comp_str: bad type %d, "
-						"string expected\n", subtype);
-				goto error;
-			}
-			ret=(strcasecmp(str, (char*)param)==0);
-			break;
-		case DIFF_OP:
-			if (subtype!=STRING_ST){
-				LOG(L_CRIT, "BUG: comp_str: bad type %d, "
-						"string expected\n", subtype);
-				goto error;
-			}
-			ret=(strcasecmp(str, (char*)param)!=0);
-			break;
-		case MATCH_OP:
-			if (subtype!=RE_ST){
-				LOG(L_CRIT, "BUG: comp_str: bad type %d, "
-						" RE expected\n", subtype);
-				goto error;
-			}
-			ret=(regexec((regex_t*)param, str, 0, 0, 0)==0);
-			break;
-		default:
-			LOG(L_CRIT, "BUG: comp_str: unknown op %d\n", op);
-			goto error;
-	}
-	return ret;
-	
-error:
-	return -1;
-}
-
-
-/* check_self wrapper -- it checks also for the op */
-inline static int check_self_op(int op, str* s, unsigned short p)
-{
-	int ret;
-	
-	ret=check_self(s, p, 0);
-	switch(op){
-		case EQUAL_OP:
-			break;
-		case DIFF_OP:
-			if (ret>=0) ret=!ret;
-			break;
-		default:
-			LOG(L_CRIT, "BUG: check_self_op: invalid operator %d\n", op);
-			ret=-1;
-	}
-	return ret;
-}
-
-
-/* eval_elem helping function, returns an op param */
-inline static int comp_ip(struct ip_addr* ip, void* param, int op, int subtype)
-{
-	struct hostent* he;
-	char ** h;
-	int ret;
-	str tmp;
-
-	ret=-1;
-	switch(subtype){
-		case NET_ST:
-			switch(op){
-				case EQUAL_OP:
-					ret=(matchnet(ip, (struct net*) param)==1);
-					break;
-				case DIFF_OP:
-					ret=(matchnet(ip, (struct net*) param)!=1);
-					break;
-				default:
-					goto error_op;
-			}
-			break;
-		case STRING_ST:
-		case RE_ST:
-			switch(op){
-				case EQUAL_OP:
-				case MATCH_OP:
-					/* 1: compare with ip2str*/
-					ret=comp_str(ip_addr2a(ip), param, op, subtype);
-					if (ret==1) break;
-					/* 2: resolve (name) & compare w/ all the ips */
-					if (subtype==STRING_ST){
-						he=resolvehost((char*)param);
-						if (he==0){
-							DBG("comp_ip: could not resolve %s\n",
-									(char*)param);
-						}else if (he->h_addrtype==ip->af){
-							for(h=he->h_addr_list;(ret!=1)&& (*h); h++){
-								ret=(memcmp(ip->u.addr, *h, ip->len)==0);
-							}
-							if (ret==1) break;
-						}
-					}
-					/* 3: (slow) rev dns the address
-					* and compare with all the aliases
-					* !!??!! review: remove this? */
-					he=rev_resolvehost(ip);
-					if (he==0){
-						print_ip( "comp_ip: could not rev_resolve ip address:"
-									" ", ip, "\n");
-					ret=0;
-					}else{
-						/*  compare with primary host name */
-						ret=comp_str(he->h_name, param, op, subtype);
-						/* compare with all the aliases */
-						for(h=he->h_aliases; (ret!=1) && (*h); h++){
-							ret=comp_str(*h, param, op, subtype);
-						}
-					}
-					break;
-				case DIFF_OP:
-					ret=comp_ip(ip, param, EQUAL_OP, subtype);
-					if (ret>=0) ret=!ret;
-					break;
-				default:
-					goto error_op;
-			}
-			break;
-		case MYSELF_ST: /* check if it's one of our addresses*/
-			tmp.s=ip_addr2a(ip);
-			tmp.len=strlen(tmp.s);
-			ret=check_self_op(op, &tmp, 0);
-			break;
-		default:
-			LOG(L_CRIT, "BUG: comp_ip: invalid type for "
-						" src_ip or dst_ip (%d)\n", subtype);
-			ret=-1;
-	}
-	return ret;
-error_op:
-	LOG(L_CRIT, "BUG: comp_ip: invalid operator %d\n", op);
-	return -1;
-	
-}
-
-
-
-/* returns: 0/1 (false/true) or -1 on error, -127 EXPR_DROP */
-static int eval_elem(struct expr* e, struct sip_msg* msg)
-{
-
-	struct sip_uri uri;
-	int ret;
-	ret=E_BUG;
-	
-	if (e->type!=ELEM_T){
-		LOG(L_CRIT," BUG: eval_elem: invalid type\n");
-		goto error;
-	}
-	switch(e->l.operand){
-		case METHOD_O:
-				ret=comp_strstr(&msg->first_line.u.request.method, e->r.param,
-								e->op, e->subtype);
-				break;
-		case URI_O:
-				if(msg->new_uri.s){
-					if (e->subtype==MYSELF_ST){
-						if (parse_sip_msg_uri(msg)<0) ret=-1;
-						else	ret=check_self_op(e->op, &msg->parsed_uri.host,
-									msg->parsed_uri.port_no?
-									msg->parsed_uri.port_no:SIP_PORT);
-					}else{
-						ret=comp_strstr(&msg->new_uri, e->r.param,
-										e->op, e->subtype);
-					}
-				}else{
-					if (e->subtype==MYSELF_ST){
-						if (parse_sip_msg_uri(msg)<0) ret=-1;
-						else	ret=check_self_op(e->op, &msg->parsed_uri.host,
-									msg->parsed_uri.port_no?
-									msg->parsed_uri.port_no:SIP_PORT);
-					}else{
-						ret=comp_strstr(&msg->first_line.u.request.uri,
-										 e->r.param, e->op, e->subtype);
-					}
-				}
-				break;
-		case FROM_URI_O:
-				if (parse_from_header(msg)!=0){
-					LOG(L_ERR, "ERROR: eval_elem: bad or missing"
-								" From: header\n");
-					goto error;
-				}
-				if (e->subtype==MYSELF_ST){
-					if (parse_uri(get_from(msg)->uri.s, get_from(msg)->uri.len,
-									&uri) < 0){
-						LOG(L_ERR, "ERROR: eval_elem: bad uri in From:\n");
-						goto error;
-					}
-					ret=check_self_op(e->op, &uri.host,
-										uri.port_no?uri.port_no:SIP_PORT);
-				}else{
-					ret=comp_strstr(&get_from(msg)->uri,
-							e->r.param, e->op, e->subtype);
-				}
-				break;
-		case TO_URI_O:
-				if ((msg->to==0) && ((parse_headers(msg, HDR_TO, 0)==-1) ||
-							(msg->to==0))){
-					LOG(L_ERR, "ERROR: eval_elem: bad or missing"
-								" To: header\n");
-					goto error;
-				}
-				/* to content is parsed automatically */
-				if (e->subtype==MYSELF_ST){
-					if (parse_uri(get_to(msg)->uri.s, get_to(msg)->uri.len,
-									&uri) < 0){
-						LOG(L_ERR, "ERROR: eval_elem: bad uri in To:\n");
-						goto error;
-					}
-					ret=check_self_op(e->op, &uri.host,
-										uri.port_no?uri.port_no:SIP_PORT);
-				}else{
-					ret=comp_strstr(&get_to(msg)->uri,
-										e->r.param, e->op, e->subtype);
-				}
-				break;
-		case SRCIP_O:
-				ret=comp_ip(&msg->rcv.src_ip, e->r.param, e->op, e->subtype);
-				break;
-		case DSTIP_O:
-				ret=comp_ip(&msg->rcv.dst_ip, e->r.param, e->op, e->subtype);
-				break;
-		case NUMBER_O:
-				ret=!(!e->r.intval); /* !! to transform it in {0,1} */
-				break;
-		case ACTION_O:
-				ret=run_actions( (struct action*)e->r.param, msg);
-				if (ret<=0) ret=(ret==0)?EXPR_DROP:0;
-				else ret=1;
-				break;
-		case SRCPORT_O:
-				ret=comp_no(msg->rcv.src_port, 
-					e->r.param, /* e.g., 5060 */
-					e->op, /* e.g. == */
-					e->subtype /* 5060 is number */);
-				break;
-		case DSTPORT_O:
-				ret=comp_no(msg->rcv.dst_port, e->r.param, e->op, 
-							e->subtype);
-				break;
-		case PROTO_O:
-				ret=comp_no(msg->rcv.proto, e->r.param, e->op, e->subtype);
-				break;
-		case AF_O:
-				ret=comp_no(msg->rcv.src_ip.af, e->r.param, e->op, e->subtype);
-				break;
-		case MSGLEN_O:
-				ret=comp_no(msg->len, e->r.param, e->op, e->subtype);
-				break;
-		default:
-				LOG(L_CRIT, "BUG: eval_elem: invalid operand %d\n",
-							e->l.operand);
-	}
-	return ret;
-error:
-	return -1;
-}
-
-
-
-/* ret= 0/1 (true/false) ,  -1 on error or EXPR_DROP (-127)  */
-int eval_expr(struct expr* e, struct sip_msg* msg)
-{
-	static int rec_lev=0;
-	int ret;
-	
-	rec_lev++;
-	if (rec_lev>MAX_REC_LEV){
-		LOG(L_CRIT, "ERROR: eval_expr: too many expressions (%d)\n",
-				rec_lev);
-		ret=-1;
-		goto skip;
-	}
-	
-	if (e->type==ELEM_T){
-		ret=eval_elem(e, msg);
-	}else if (e->type==EXP_T){
-		switch(e->op){
-			case AND_OP:
-				ret=eval_expr(e->l.expr, msg);
-				/* if error or false stop evaluating the rest */
-				if (ret!=1) break;
-				ret=eval_expr(e->r.expr, msg); /*ret1 is 1*/
-				break;
-			case OR_OP:
-				ret=eval_expr(e->l.expr, msg);
-				/* if true or error stop evaluating the rest */
-				if (ret!=0) break;
-				ret=eval_expr(e->r.expr, msg); /* ret1 is 0 */
-				break;
-			case NOT_OP:
-				ret=eval_expr(e->l.expr, msg);
-				if (ret<0) break;
-				ret= ! ret;
-				break;
-			default:
-				LOG(L_CRIT, "BUG: eval_expr: unknown op %d\n", e->op);
-				ret=-1;
-		}
-	}else{
-		LOG(L_CRIT, "BUG: eval_expr: unknown type %d\n", e->type);
-		ret=-1;
-	}
-
-skip:
-	rec_lev--;
-	return ret;
-}
-
-
-/* adds an action list to head; a must be null terminated (last a->next=0))*/
-void push(struct action* a, struct action** head)
-{
-	struct action *t;
-	if (*head==0){
-		*head=a;
-		return;
-	}
-	for (t=*head; t->next;t=t->next);
-	t->next=a;
-}
-
-
-
-
-int add_actions(struct action* a, struct action** head)
-{
-	int ret;
-
-	LOG(L_DBG, "add_actions: fixing actions...\n");
-	if ((ret=fix_actions(a))!=0) goto error;
-	push(a,head);
-	return 0;
-	
-error:
-	return ret;
-}
-
-
-
-/* fixes all action tables */
-/* returns 0 if ok , <0 on error */
-int fix_rls()
-{
-	int i,ret;
-	for(i=0;i<RT_NO;i++){
-		if(rlist[i]){
-			if ((ret=fix_actions(rlist[i]))!=0){
-				return ret;
-			}
-		}
-	}
-	for(i=0;i<ONREPLY_RT_NO;i++){
-		if(onreply_rlist[i]){
-			if ((ret=fix_actions(onreply_rlist[i]))!=0){
-				return ret;
-			}
-		}
-	}
-	for(i=0;i<FAILURE_RT_NO;i++){
-		if(failure_rlist[i]){
-			if ((ret=fix_actions(failure_rlist[i]))!=0){
-				return ret;
-			}
-		}
-	}
-	return 0;
-}
-
-
-/* debug function, prints main routing table */
-void print_rl()
-{
-	struct action* t;
-	int i,j;
-
-	for(j=0; j<RT_NO; j++){
-		if (rlist[j]==0){
-			if (j==0) DBG("WARNING: the main routing table is empty\n");
-			continue;
-		}
-		DBG("routing table %d:\n",j);
-		for (t=rlist[j],i=0; t; i++, t=t->next){
-			print_action(t);
-		}
-		DBG("\n");
-	}
-	for(j=0; j<ONREPLY_RT_NO; j++){
-		if (onreply_rlist[j]==0){
-			continue;
-		}
-		DBG("onreply routing table %d:\n",j);
-		for (t=onreply_rlist[j],i=0; t; i++, t=t->next){
-			print_action(t);
-		}
-		DBG("\n");
-	}
-	for(j=0; j<FAILURE_RT_NO; j++){
-		if (failure_rlist[j]==0){
-			continue;
-		}
-		DBG("failure routing table %d:\n",j);
-		for (t=failure_rlist[j],i=0; t; i++, t=t->next){
-			print_action(t);
-		}
-		DBG("\n");
-	}
-}
-
-

Deleted: ser/trunk/route.h
===================================================================
--- ser/trunk/route.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/route.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,63 +0,0 @@
-/*
- * $Id: route.h,v 1.9 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-#ifndef route_h
-#define route_h
-
-#include <sys/types.h>
-#include <regex.h>
-#include <netdb.h>
-
-#include "config.h"
-#include "error.h"
-#include "route_struct.h"
-#include "parser/msg_parser.h"
-
-/*#include "cfg_parser.h" */
-
-
-/* main "script table" */
-extern struct action* rlist[RT_NO];
-/* main reply route table */
-extern struct action* onreply_rlist[RT_NO];
-extern struct action* failure_rlist[RT_NO];
-
-
-void push(struct action* a, struct action** head);
-int add_actions(struct action* a, struct action** head);
-void print_rl();
-int fix_rls();
-
-int eval_expr(struct expr* e, struct sip_msg* msg);
-
-
-
-
-
-
-#endif

Deleted: ser/trunk/route_struct.c
===================================================================
--- ser/trunk/route_struct.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/route_struct.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,457 +0,0 @@
-/*
- * $Id: route_struct.c,v 1.32.2.2 2005/12/06 12:17:17 andrei Exp $
- *
- * route structures helping functions
- *
- * 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 at 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
- */
-/* History:
- * --------
- *  2003-01-29  src_port introduced (jiri)
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-04-12  FORCE_RPORT_T added (andrei)
- *  2003-10-02  added SET_ADV_ADDRESS & SET_ADV_PORT (andrei)
- *  2004-02-24  added LOAD_AVP_T and AVP_TO_URI_T (bogdan)
- */
-
-
-
-#include  "route_struct.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "dprint.h"
-#include "ip_addr.h"
-#include "mem/mem.h"
-#include "ut.h" /* ZSW() */
-
-
-struct expr* mk_exp(int op, struct expr* left, struct expr* right)
-{
-	struct expr * e;
-	e=(struct expr*)pkg_malloc(sizeof (struct expr));
-	if (e==0) goto error;
-	e->type=EXP_T;
-	e->op=op;
-	e->l.expr=left;
-	e->r.expr=right;
-	return e;
-error:
-	LOG(L_CRIT, "ERROR: mk_exp: memory allocation failure\n");
-	return 0;
-}
-
-
-struct expr* mk_elem(int op, int subtype, int operand, void* param)
-{
-	struct expr * e;
-	e=(struct expr*)pkg_malloc(sizeof (struct expr));
-	if (e==0) goto error;
-	e->type=ELEM_T;
-	e->op=op;
-	e->subtype=subtype;
-	e->l.operand=operand;
-	e->r.param=param;
-	return e;
-error:
-	LOG(L_CRIT, "ERROR: mk_elem: memory allocation failure\n");
-	return 0;
-}
-
-
-
-struct action* mk_action(int type, int p1_type, int p2_type,
-											void* p1, void* p2)
-{
-	struct action* a;
-	a=(struct action*)pkg_malloc(sizeof(struct action));
-	if (a==0) goto  error;
-	memset(a,0,sizeof(struct action));
-	a->type=type;
-	a->p1_type=p1_type;
-	a->p2_type=p2_type;
-	a->p1.string=(char*) p1;
-	a->p2.string=(char*) p2;
-	a->next=0;
-	return a;
-	
-error:
-	LOG(L_CRIT, "ERROR: mk_action: memory allocation failure\n");
-	return 0;
-
-}
-
-
-struct action* mk_action3(int type, int p1_type, int p2_type, int p3_type,
-							void* p1, void* p2, void* p3)
-{
-	struct action* a;
-
-	a=mk_action(type, p1_type, p2_type, p1, p2);
-	if (a){
-			a->p3_type=p3_type;
-			a->p3.data=p3;
-	}
-	return a;
-}
-
-
-
-struct action* append_action(struct action* a, struct action* b)
-{
-	struct action *t;
-	if (b==0) return a;
-	if (a==0) return b;
-	
-	for(t=a;t->next;t=t->next);
-	t->next=b;
-	return a;
-}
-
-
-
-void print_expr(struct expr* exp)
-{
-	if (exp==0){
-		LOG(L_CRIT, "ERROR: print_expr: null expression!\n");
-		return;
-	}
-	if (exp->type==ELEM_T){
-		switch(exp->l.operand){
-			case METHOD_O:
-				DBG("method");
-				break;
-			case URI_O:
-				DBG("uri");
-				break;
-			case FROM_URI_O:
-				DBG("from_uri");
-				break;
-			case TO_URI_O:
-				DBG("to_uri");
-				break;
-			case SRCIP_O:
-				DBG("srcip");
-				break;
-			case SRCPORT_O:
-				DBG("srcport");
-				break;
-			case DSTIP_O:
-				DBG("dstip");
-				break;
-			case DSTPORT_O:
-				DBG("dstport");
-				break;
-			case NUMBER_O:
-				break;
-			case ACTION_O:
-				break;
-			default:
-				DBG("UNKNOWN");
-		}
-		switch(exp->op){
-			case EQUAL_OP:
-				DBG("==");
-				break;
-			case MATCH_OP:
-				DBG("=~");
-				break;
-			case NO_OP:
-				break;
-			case GT_OP:
-				DBG(">");
-				break;
-			case GTE_OP:
-				DBG(">=");
-				break;
-			case LT_OP:
-				DBG("<");
-				break;
-			case LTE_OP:
-				DBG("<=");
-				break;
-			case DIFF_OP:
-				DBG("!=");
-				break;
-			default:
-				DBG("<UNKNOWN>");
-		}
-		switch(exp->subtype){
-			case NOSUBTYPE: 
-					DBG("N/A");
-					break;
-			case STRING_ST:
-					DBG("\"%s\"", ZSW((char*)exp->r.param));
-					break;
-			case NET_ST:
-					print_net((struct net*)exp->r.param);
-					break;
-			case IP_ST:
-					print_ip("", (struct ip_addr*)exp->r.param, "");
-					break;
-			case ACTIONS_ST:
-					print_action((struct action*)exp->r.param);
-					break;
-			case NUMBER_ST:
-					DBG("%d",exp->r.intval);
-					break;
-			case MYSELF_ST:
-					DBG("_myself_");
-					break;
-			default:
-					DBG("type<%d>", exp->subtype);
-		}
-	}else if (exp->type==EXP_T){
-		switch(exp->op){
-			case AND_OP:
-					DBG("AND( ");
-					print_expr(exp->l.expr);
-					DBG(", ");
-					print_expr(exp->r.expr);
-					DBG(" )");
-					break;
-			case OR_OP:
-					DBG("OR( ");
-					print_expr(exp->l.expr);
-					DBG(", ");
-					print_expr(exp->r.expr);
-					DBG(" )");
-					break;
-			case NOT_OP:	
-					DBG("NOT( ");
-					print_expr(exp->l.expr);
-					DBG(" )");
-					break;
-			default:
-					DBG("UNKNOWN_EXP ");
-		}
-					
-	}else{
-		DBG("ERROR:print_expr: unknown type\n");
-	}
-}
-					
-
-					
-
-void print_action(struct action* a)
-{
-	struct action* t;
-	for(t=a; t!=0;t=t->next){
-		switch(t->type){
-			case FORWARD_T:
-					DBG("forward(");
-					break;
-			case FORWARD_TCP_T:
-					DBG("forward_tcp(");
-					break;
-			case FORWARD_UDP_T:
-					DBG("forward_udp(");
-					break;
-			case SEND_T:
-					DBG("send(");
-					break;
-			case SEND_TCP_T:
-					DBG("send_tcp(");
-					break;
-			case DROP_T:
-					DBG("drop(");
-					break;
-			case LOG_T:
-					DBG("log(");
-					break;
-			case ERROR_T:
-					DBG("error(");
-					break;
-			case ROUTE_T:
-					DBG("route(");
-					break;
-			case EXEC_T:
-					DBG("exec(");
-					break;
-			case REVERT_URI_T:
-					DBG("revert_uri(");
-					break;
-			case STRIP_T:
-					DBG("strip(");
-					break;
-			case APPEND_BRANCH_T:
-					DBG("append_branch(");
-					break;
-			case PREFIX_T:
-					DBG("prefix(");
-					break;
-			case LEN_GT_T:
-					DBG("len_gt(");
-					break;
-			case SETFLAG_T:
-					DBG("setflag(");
-					break;
-			case RESETFLAG_T:
-					DBG("resetflag(");
-					break;
-			case ISFLAGSET_T:
-					DBG("isflagset(");
-					break;
-			case SET_HOST_T:
-					DBG("sethost(");
-					break;
-			case SET_HOSTPORT_T:
-					DBG("sethostport(");
-					break;
-			case SET_USER_T:
-					DBG("setuser(");
-					break;
-			case SET_USERPASS_T:
-					DBG("setuserpass(");
-					break;
-			case SET_PORT_T:
-					DBG("setport(");
-					break;
-			case SET_URI_T:
-					DBG("seturi(");
-					break;
-			case IF_T:
-					DBG("if (");
-					break;
-			case MODULE_T:
-					DBG(" external_module_call(");
-					break;
-			case FORCE_RPORT_T:
-					DBG("force_rport(");
-					break;
-			case SET_ADV_ADDR_T:
-					DBG("set_advertised_address(");
-					break;
-			case SET_ADV_PORT_T:
-					DBG("set_advertised_port(");
-					break;
-			case FORCE_TCP_ALIAS_T:
-					DBG("force_tcp_alias(");
-					break;
-			case LOAD_AVP_T:
-					DBG("load_avp(");
-					break;
-			case AVP_TO_URI_T:
-					DBG("avp_to_attr");
-					break;
-			case FORCE_SEND_SOCKET_T:
-					DBG("force_send_socket");
-					break;
-			default:
-					DBG("UNKNOWN(");
-		}
-		switch(t->p1_type){
-			case STRING_ST:
-					DBG("\"%s\"", ZSW(t->p1.string));
-					break;
-			case NUMBER_ST:
-					DBG("%lu",t->p1.number);
-					break;
-			case IP_ST:
-					print_ip("", (struct ip_addr*)t->p1.data, "");
-					break;
-			case EXPR_ST:
-					print_expr((struct expr*)t->p1.data);
-					break;
-			case ACTIONS_ST:
-					print_action((struct action*)t->p1.data);
-					break;
-			case CMDF_ST:
-					DBG("f_ptr<%p>",t->p1.data);
-					break;
-			case SOCKID_ST:
-					DBG("%d:%s:%d",
-							((struct socket_id*)t->p1.data)->proto,
-							ZSW(((struct socket_id*)t->p1.data)->name),
-							((struct socket_id*)t->p1.data)->port
-							);
-					break;
-			default:
-					DBG("type<%d>", t->p1_type);
-		}
-		if (t->type==IF_T) DBG(") {");
-		switch(t->p2_type){
-			case NOSUBTYPE:
-					break;
-			case STRING_ST:
-					DBG(", \"%s\"", ZSW(t->p2.string));
-					break;
-			case NUMBER_ST:
-					DBG(", %lu",t->p2.number);
-					break;
-			case EXPR_ST:
-					print_expr((struct expr*)t->p2.data);
-					break;
-			case ACTIONS_ST:
-					print_action((struct action*)t->p2.data);
-					break;
-			case SOCKID_ST:
-					DBG("%d:%s:%d",
-							((struct socket_id*)t->p1.data)->proto,
-							ZSW(((struct socket_id*)t->p1.data)->name),
-							((struct socket_id*)t->p1.data)->port
-							);
-					break;
-			default:
-					DBG(", type<%d>", t->p2_type);
-		}
-		if (t->type==IF_T) DBG("} else {");
-		switch(t->p3_type){
-			case NOSUBTYPE:
-					break;
-			case STRING_ST:
-					DBG(", \"%s\"", ZSW(t->p3.string));
-					break;
-			case NUMBER_ST:
-					DBG(", %lu",t->p3.number);
-					break;
-			case EXPR_ST:
-					print_expr((struct expr*)t->p3.data);
-					break;
-			case ACTIONS_ST:
-					print_action((struct action*)t->p3.data);
-					break;
-			case SOCKID_ST:
-					DBG("%d:%s:%d",
-							((struct socket_id*)t->p1.data)->proto,
-							ZSW(((struct socket_id*)t->p1.data)->name),
-							((struct socket_id*)t->p1.data)->port
-							);
-					break;
-			default:
-					DBG(", type<%d>", t->p3_type);
-		}
-		if (t->type==IF_T) DBG("}; ");
-		else	DBG("); ");
-	}
-}
-			
-	
-
-	
-	
-

Deleted: ser/trunk/route_struct.h
===================================================================
--- ser/trunk/route_struct.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/route_struct.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,134 +0,0 @@
-/*
- * $Id: route_struct.h,v 1.30 2004/11/30 16:28:23 andrei Exp $
- *
- *
- * 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 at 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
- */
-/* History:
- * --------
- *
- *  2003-04-12  FORCE_RPORT_T added (andrei)
- *  2003-04-22  strip_tail added (jiri)
- *  2003-10-10  >,<,>=,<=, != and MSGLEN_O added (andrei)
- *  2003-10-28  FORCE_TCP_ALIAS added (andrei)
- *  2004-02-24  added LOAD_AVP_T and AVP_TO_URI_T (bogdan)
- */
-
-
-#ifndef route_struct_h
-#define route_struct_h
-
-#define EXPR_DROP -127  /* used only by the expression and if evaluator */
-/*
- * Other important values (no macros for them yet):
- * expr true = 1
- * expr false = 0 (used only inside the expression and if evaluator)
- * 
- * action continue  or if used in condition true = 1
- * action drop/quit/stop script processing = 0
- * action error or if used in condition false = -1 (<0 and !=EXPR_DROP)
- * 
- */
-
-
-enum { EXP_T=1, ELEM_T };
-enum { AND_OP=1, OR_OP, NOT_OP };
-enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };
-enum { METHOD_O=1, URI_O, FROM_URI_O, TO_URI_O, SRCIP_O, SRCPORT_O,
-	   DSTIP_O, DSTPORT_O, PROTO_O, AF_O, MSGLEN_O, DEFAULT_O, ACTION_O,
-	   NUMBER_O};
-
-enum { FORWARD_T=1, SEND_T, DROP_T, LOG_T, ERROR_T, ROUTE_T, EXEC_T,
-		SET_HOST_T, SET_HOSTPORT_T, SET_USER_T, SET_USERPASS_T, 
-		SET_PORT_T, SET_URI_T, IF_T, MODULE_T,
-		SETFLAG_T, RESETFLAG_T, ISFLAGSET_T ,
-		LEN_GT_T, PREFIX_T, STRIP_T,STRIP_TAIL_T,
-		APPEND_BRANCH_T,
-		REVERT_URI_T,
-		FORWARD_TCP_T,
-		FORWARD_UDP_T,
-		FORWARD_TLS_T,
-		SEND_TCP_T,
-		FORCE_RPORT_T,
-		SET_ADV_ADDR_T,
-		SET_ADV_PORT_T,
-		FORCE_TCP_ALIAS_T,
-		LOAD_AVP_T,
-		AVP_TO_URI_T,
-		FORCE_SEND_SOCKET_T
-};
-enum { NOSUBTYPE=0, STRING_ST, NET_ST, NUMBER_ST, IP_ST, RE_ST, PROXY_ST,
-		EXPR_ST, ACTIONS_ST, CMDF_ST, MODFIXUP_ST, URIHOST_ST, URIPORT_ST,
-		MYSELF_ST, STR_ST, SOCKID_ST, SOCKETINFO_ST };
-
-	
-struct expr{
-	int type; /* exp, exp_elem */
-	int op; /* and, or, not | ==,  =~ */
-	int  subtype;
-	union {
-		struct expr* expr;
-		int operand;
-	}l;
-	union {
-		struct expr* expr;
-		void* param;
-		int   intval;
-	}r;
-};
-
-
-struct action{
-	int type;  /* forward, drop, log, send ...*/
-	int p1_type;
-	int p2_type;
-	int p3_type;
-	union {
-		long number;
-		char* string;
-		void* data;
-	}p1, p2, p3;
-	struct action* next;
-};
-
-
-
-struct expr* mk_exp(int op, struct expr* left, struct expr* right);
-struct expr* mk_elem(int op, int subtype, int operand, void* param);
-struct action* mk_action(int type, int p1_type, int p2_type,
-							void* p1, void* p2);
-struct action* mk_action3(int type, int p1_type, int p2_type, int p3_type, 
-							void* p1, void* p2, void* p3);
-struct action* append_action(struct action* a, struct action* b);
-
-
-void print_action(struct action* a);
-void print_expr(struct expr* exp);
-
-
-
-
-
-#endif
-

Deleted: ser/trunk/script_cb.c
===================================================================
--- ser/trunk/script_cb.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/script_cb.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,102 +0,0 @@
-/*
- * $Id: script_cb.c,v 1.6 2004/08/24 08:45:10 janakj Exp $
- *
- * Script callbacks -- they add the ability to register callback
- * functions which are always called when script for request
- * processing is entered or left
- *
- *
- * 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 at 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
- */
-/* History:
- * --------
- *  2003-03-29  cleaning pkg allocation introduced (jiri)
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- */
-
-
-#include <stdlib.h>
-#include "script_cb.h"
-#include "dprint.h"
-#include "error.h"
-#include "mem/mem.h"
-
-static struct script_cb *pre_cb=0;
-static struct script_cb *post_cb=0;
-static unsigned int cb_id=0;
-
-int register_script_cb( cb_function f, callback_t t, void *param )
-{
-	struct script_cb *new_cb;
-
-	new_cb=pkg_malloc(sizeof(struct script_cb));
-	if (new_cb==0) {
-		LOG(L_ERR, "ERROR: register_script_cb: out of memory\n");
-		return E_OUT_OF_MEM;
-	}
-	new_cb->cbf=f;
-	new_cb->id=cb_id++;
-	new_cb->param=param;
-	/* insert into appropriate list */
-	if (t==PRE_SCRIPT_CB) {
-		new_cb->next=pre_cb;
-		pre_cb=new_cb;
-	} else if (t==POST_SCRIPT_CB) {
-		new_cb->next=post_cb;
-		post_cb=new_cb;
-	} else {
-		LOG(L_CRIT, "ERROR: register_script_cb: unknown CB type\n");
-		return E_BUG;
-	}
-	/* ok, callback installed */
-	return 1;
-}
-
-void destroy_script_cb()
-{
-	struct script_cb *cb, *foo;
-
-	cb=pre_cb;
-	while(cb) { foo=cb->next;pkg_free(cb);cb=foo; }
-	cb=post_cb;
-	while(cb) { foo=cb->next;pkg_free(cb);cb=foo; }
-}
-
-int exec_pre_cb( struct sip_msg *msg)
-{
-	struct script_cb *i;
-	for (i=pre_cb; i; i=i->next) {
-		/* stop on error */
-		if (i->cbf(msg, i->param)==0)
-			return 0;
-	}
-	return 1;
-}
-
-void exec_post_cb( struct sip_msg *msg)
-{
-	struct script_cb *i;
-	for (i=post_cb; i; i=i->next) i->cbf(msg, i->param);
-}
-

Deleted: ser/trunk/script_cb.h
===================================================================
--- ser/trunk/script_cb.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/script_cb.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,54 +0,0 @@
-/*
- * $Id: script_cb.h,v 1.6 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-#ifndef _SCRIPT_CB_H_
-#define _SCRIPT_CB_H_
-
-#include "parser/msg_parser.h"
-
-typedef int (cb_function)( struct sip_msg *msg, void *param );
-
-typedef enum {
-    PRE_SCRIPT_CB,
-	POST_SCRIPT_CB
-} callback_t;       /* Allowed types of callbacks */
-
-
-struct script_cb{
-	cb_function *cbf;
-	struct script_cb *next;
-	unsigned int id;
-	void *param;
-};
-
-int register_script_cb( cb_function f, callback_t t, void *param );
-int exec_pre_cb( struct sip_msg *msg);
-void exec_post_cb( struct sip_msg *msg);
-void destroy_script_cb();
-
-#endif
-

Deleted: ser/trunk/ser.8
===================================================================
--- ser/trunk/ser.8	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ser.8	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,180 +0,0 @@
-.\" $Id: ser.8,v 1.11 2004/12/16 17:39:46 andrei Exp $
-.TH ser 8 15.07.2002 ser "Sip Express Router" 
-.\" Process with
-.\" groff -man -Tascii ser.8
-.\"
-.SH NAME
-ser \- very fast and configurable sip proxy
-.SH SYNOPSIS
-.B ser
-[
-.B \-hcrRvdDEVT
-] [
-.BI \-f " config\-file"
-] [
-.BI \-l " address"
-] [
-.BI \-n " processes\-no"
-] [
-.BI \-N " tcp processes\-no"
-] [
-.BI \-b " max_rcv_buf_size"
-] [
-.BI \-m " shared_mem_size"
-] [
-.BI \-w " working\-dir"
-] [
-.BI \-t " chroot\-dir"
-] [
-.BI \-u " uid"
-] [
-.BI \-g " gid"
-] [
-.BI \-P " pid\-file"
-] [
-.BI \-i " fifo\-path"
-] [
-.BI \-x " socket\-path"
-]
-
-.SH DESCRIPTION
-.B ser 
-or
-.BR Sip
-.BR Express 
-.BR Router 
-is a very fast and configurable SIP proxy. 
-
-.SH OPTIONS
-.TP 12
-.B \-h
-Displays a short usage description, including all available options.
-.TP
-.BI \-c
-Checks the config file and displays the aliases and listen interface list.
-.TP
-.BI \-r
-Uses dns to check if it is necessary to add a "received=" field to a via.
-.TP
-.BI \-R
-Same as 
-.B \-r
-but uses reverse dns.
-.TP
-.BI \-v
-Turns on via host checking when forwarding replies.
-.TP
-.BI \-d
-Turns on debugging, multiple
-.B -d
-increase the debug level.
-.TP
-.BI \-D
-Runs ser in the foreground (it doesn't fork into daemon mode).
-.TP
-.BI \-E
-Sends all the log messages to stderr.
-.TP
-.BI \-T
-Disables TCP support.
-.TP
-.BI \-V
-Displays the version number.
-.TP
-.BI \-f " config\-file"
-Reads the configuration from 
-.B " config\-file" 
-(default
-.I  /etc/ser/ser.cfg
-).
-.TP
-.BI \-l " address"
-Listens on the specified address/interface. Multiple 
-.B \-l
-mean listening on multiple addresses. The address format is 
-[proto:]address[:port], where proto = udp|tcp and
-address = host|ip_address|interface_name. Example: -l localhost, 
--l udp:127.0.0.1:5080, -l eth0:5062.
-The default behaviour is to listen on all the ipv4 interfaces.
-.TP
-.BI \-n " processes\-no"
-Specifies the number of children processes forked per interface (default 8).
-.TP
-.BI \-N " tcp processes\-no"
-Specifies the number of children processes forked to handle tcp incoming connections (by default is equal to
-.BI \-n
-).
-.TP
-.BI \-b " max_rcv_buf_size"
-Maximum receive buffer size which will not be exceeded by the auto-probing procedure even if the OS allows.
-.TP
-.BI \-m " shared_mem_size"
-Size of the shared memory which will be allocated (in Megabytes).
-.TP
-.BI \-w " working\-dir" 
-Specifies the working directory. In the very improbable event that 
-.B ser 
-will crash, the core file will be generated here.
-.TP
-.BI \-t " chroot\-dir"
-Forces 
-.B ser 
-to chroot after reading the config file.
-.TP
-.BI \-u " uid"
-Changes the user id under which 
-.B ser
-runs.
-.TP
-.BI \-g " gid"
-Changes the group id under which 
-.B ser 
-runs.
-.TP
-.BI \-P " pid\-file"
-Creates a file containing the pid of the main 
-.B ser 
-process.
-.TP
-.BI \-i " fifo\-path"
-Creates a fifo, usefull for monitoring
-.B ser
-status.
-.TP
-.BI \-x " socket\-path"
-Creates a unix socket, usefull for monitoring
-.B ser
-status ( same as
-.BI \-i " fifo\-path" 
-but using instead unix sockets).
-
-
-.SH FILES
-.PD 0
-.B /usr/sbin/ser
-.br
-.B /etc/ser/ser.cfg
-.br
-.B /usr/lib/ser/modules/*
-.PD
-.SH AUTHORS
-
-see 
-.B /usr/share/doc/ser/AUTHORS
-
-.SH SEE ALSO
-.BR ser.cfg(5)
-.PP
-Full documentation on ser, including configuration guidelines, FAQs and
-licensing conditions, is available at
-.I http://www.iptel.org/ser/.
-.PP 
-For reporting  bugs see
-.I
-http://www.iptel.org/ser/bugs/.
-.PP
-Mailing lists:
-.nf 
-serusers at iptel.org - ser user community
-.nf 
-serdev at iptel.org - ser development, new features and unstable version

Deleted: ser/trunk/ser.cfg.5
===================================================================
--- ser/trunk/ser.cfg.5	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ser.cfg.5	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,52 +0,0 @@
-.\" $Id: ser.cfg.5,v 1.9 2004/12/16 17:39:46 andrei Exp $
-.TH ser.cfg 5 15.07.2002 ser "Sip Express Router" 
-.\" Process with
-.\" groff -man -Tascii ser.cfg.5 
-.\"
-.SH NAME
-ser.cfg \- ser configuration file
-.SH SYNOPSIS
-.I /etc/ser/ser.cfg
-.SH DESCRIPTION
-.B ser
-reads the configuration data from
-.I /etc/ser/ser.cfg
-(or the file specified with
-.B \-f
-on the command line).
-The file contains global configuration parameters, module loading commands and the script that will be executed for each received request. Lines starting with
-.B #
-or enclosed in
-.B /* ... */
-are interpreted as comments.
-.PP
-This manual page is incomplete. For further information please read the
-.I Ser User Guide (http://www.iptel.org/ser/admin.html).
-
-.SH FILES
-.bL
-.I /etc/ser/ser.cfg
-.br
-
-.SH AUTHORS
-
-see 
-.B /usr/share/doc/ser/AUTHORS
-
-.SH SEE ALSO
-.BR ser(8)
-.PP
-Full documentation on ser, including configuration guidelines, FAQs and
-licensing conditions, is available at
-.I http://www.iptel.org/ser/.
-.PP
-For reporting  bugs see
-.I
-http://www.iptel.org/ser/bugs/.
-.PP
-Mailing lists:
-.nf 
-serusers at iptel.org - ser user community
-.nf 
-serdev at iptel.org - ser development, new features and unstable version
-

Deleted: ser/trunk/socket_info.c
===================================================================
--- ser/trunk/socket_info.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/socket_info.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,816 +0,0 @@
-/* $Id: socket_info.c,v 1.12 2004/12/01 16:51:17 andrei Exp $
- *
- * find & manage listen addresses 
- *
- * 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 at 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
- */
-/*
- * This file contains code that initializes and handles ser listen addresses
- * lists (struct socket_info). It is used mainly on startup.
- * 
- * History:
- * --------
- *  2003-10-22  created by andrei
- *  2004-10-10  added grep_sock_info (andrei)
- *  2004-11-08  added find_si (andrei)
- */
-
-
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/utsname.h>
-#include <stdio.h>
-
-#include <sys/ioctl.h>
-#include <net/if.h>
-#ifdef HAVE_SYS_SOCKIO_H
-#include <sys/sockio.h>
-#endif
-
-#include "globals.h"
-#include "socket_info.h"
-#include "dprint.h"
-#include "mem/mem.h"
-#include "ut.h"
-#include "resolve.h"
-#include "name_alias.h"
-
-
-
-/* list manip. functions (internal use only) */
-
-
-/* append */
-#define sock_listadd(head, el) \
-	do{\
-		if (*(head)==0) *(head)=(el); \
-		else{ \
-			for((el)->next=*(head); (el)->next->next;\
-					(el)->next=(el)->next->next); \
-			(el)->next->next=(el); \
-			(el)->prev=(el)->next; \
-			(el)->next=0; \
-		}\
-	}while(0)
-
-
-/* insert after "after" */
-#define sock_listins(el, after) \
-	do{ \
-		if ((after)){\
-			(el)->next=(after)->next; \
-			if ((after)->next) (after)->next->prev=(el); \
-			(after)->next=(el); \
-			(el)->prev=(after); \
-		}else{ /* after==0 = list head */ \
-			(after)=(el); \
-			(el)->next=(el)->prev=0; \
-		}\
-	}while(0)
-
-
-#define sock_listrm(head, el) \
-	do {\
-		if (*(head)==(el)) *(head)=(el)->next; \
-		if ((el)->next) (el)->next->prev=(el)->prev; \
-		if ((el)->prev) (el)->prev->next=(el)->next; \
-	}while(0)
-
-
-
-/* another helper function, it just creates a socket_info struct */
-static inline struct socket_info* new_sock_info(	char* name,
-								unsigned short port, unsigned short proto,
-								enum si_flags flags)
-{
-	struct socket_info* si;
-	
-	si=(struct socket_info*) pkg_malloc(sizeof(struct socket_info));
-	if (si==0) goto error;
-	memset(si, 0, sizeof(struct socket_info));
-	si->socket=-1;
-	si->name.len=strlen(name);
-	si->name.s=(char*)pkg_malloc(si->name.len+1); /* include \0 */
-	if (si->name.s==0) goto error;
-	memcpy(si->name.s, name, si->name.len+1);
-	/* set port & proto */
-	si->port_no=port;
-	si->proto=proto;
-	si->flags=flags;
-	return si;
-error:
-	LOG(L_ERR, "ERROR: new_sock_info: memory allocation error\n");
-	if (si) pkg_free(si);
-	return 0;
-}
-
-
-
-/*  delete a socket_info struct */
-static void free_sock_info(struct socket_info* si)
-{
-	if(si){
-		if(si->name.s) pkg_free(si->name.s);
-		if(si->address_str.s) pkg_free(si->address_str.s);
-		if(si->port_no_str.s) pkg_free(si->port_no_str.s);
-	}
-}
-
-
-
-static char* get_proto_name(unsigned short proto)
-{
-	switch(proto){
-		case PROTO_NONE:
-			return "*";
-		case PROTO_UDP:
-			return "udp";
-#ifdef USE_TCP
-		case PROTO_TCP:
-			return "tcp";
-#endif
-#ifdef USE_TLS
-		case PROTO_TLS:
-			return "tls";
-#endif
-		default:
-			return "unknown";
-	}
-}
-
-
-static struct socket_info** get_sock_info_list(unsigned short proto)
-{
-	
-	switch(proto){
-		case PROTO_UDP:
-			return &udp_listen;
-			break;
-#ifdef USE_TCP
-		case PROTO_TCP:
-			return &tcp_listen;
-			break;
-#endif
-#ifdef USE_TLS
-		case PROTO_TLS:
-			return &tls_listen;
-			break;
-#endif
-		default:
-			LOG(L_CRIT, "BUG: get_sock_info_list: invalid proto %d\n", proto);
-	}
-	return 0;
-}
-
-
-
-/* checks if the proto: host:port is one of the address we listen on
- * and returns the corresponding socket_info structure.
- * if port==0, the  port number is ignored
- * if proto==0 (PROTO_NONE) the protocol is ignored
- * returns  0 if not found
- * WARNING: uses str2ip6 so it will overwrite any previous
- *  unsaved result of this function (static buffer)
- */
-struct socket_info* grep_sock_info(str* host, unsigned short port,
-												unsigned short proto)
-{
-	char* hname;
-	int h_len;
-	struct socket_info* si;
-	struct socket_info** list;
-	unsigned short c_proto;
-#ifdef USE_IPV6
-	struct ip_addr* ip6;
-#endif
-	h_len=host->len;
-	hname=host->s;
-#ifdef USE_IPV6
-	if ((h_len>2)&&((*hname)=='[')&&(hname[h_len-1]==']')){
-		/* ipv6 reference, skip [] */
-		hname++;
-		h_len-=2;
-	}
-#endif
-	c_proto=proto?proto:PROTO_UDP;
-	do{
-		/* get the proper sock_list */
-		if (c_proto==PROTO_NONE)
-			list=&udp_listen;
-		else
-			list=get_sock_info_list(c_proto);
-	
-		if (list==0){
-			LOG(L_WARN, "WARNING: grep_sock_info: "
-						"unknown proto %d\n", c_proto);
-			goto not_found; /* false */
-		}
-		for (si=*list; si; si=si->next){
-			DBG("grep_sock_info - checking if host==us: %d==%d && "
-					" [%.*s] == [%.*s]\n", 
-						h_len,
-						si->name.len,
-						h_len, hname,
-						si->name.len, si->name.s
-				);
-			if (port) {
-				DBG("grep_sock_info - checking if port %d matches port %d\n", 
-						si->port_no, port);
-				if (si->port_no!=port) {
-					continue;
-				}
-			}
-			if ( (h_len==si->name.len) && 
-				(strncasecmp(hname, si->name.s,
-						 si->name.len)==0) /*slower*/)
-				/* comp. must be case insensitive, host names
-				 * can be written in mixed case, it will also match
-				 * ipv6 addresses if we are lucky*/
-				goto found;
-		/* check if host == ip address */
-#ifdef USE_IPV6
-			/* ipv6 case is uglier, host can be [3ffe::1] */
-			ip6=str2ip6(host);
-			if (ip6){
-				if (ip_addr_cmp(ip6, &si->address))
-					goto found; /* match */
-				else
-					continue; /* no match, but this is an ipv6 address
-								 so no point in trying ipv4 */
-			}
-#endif
-			/* ipv4 */
-			if ( 	(!(si->flags&SI_IS_IP)) &&
-					(h_len==si->address_str.len) && 
-				(memcmp(hname, si->address_str.s, 
-									si->address_str.len)==0)
-				)
-				goto found;
-		}
-	}while( (proto==0) && (c_proto=next_proto(c_proto)) );
-not_found:
-	return 0;
-found:
-	return si;
-}
-
-
-
-/* checks if the proto: ip:port is one of the address we listen on
- * and returns the corresponding socket_info structure.
- * (same as grep_socket_info, but use ip addr instead)
- * if port==0, the  port number is ignored
- * if proto==0 (PROTO_NONE) the protocol is ignored
- * returns  0 if not found
- * WARNING: uses str2ip6 so it will overwrite any previous
- *  unsaved result of this function (static buffer)
- */
-struct socket_info* find_si(struct ip_addr* ip, unsigned short port,
-												unsigned short proto)
-{
-	struct socket_info* si;
-	struct socket_info** list;
-	unsigned short c_proto;
-	
-	c_proto=proto?proto:PROTO_UDP;
-	do{
-		/* get the proper sock_list */
-		if (c_proto==PROTO_NONE)
-			list=&udp_listen;
-		else
-			list=get_sock_info_list(c_proto);
-	
-		if (list==0){
-			LOG(L_WARN, "WARNING: grep_sock_info: "
-						"unknown proto %d\n", c_proto);
-			goto not_found; /* false */
-		}
-		for (si=*list; si; si=si->next){
-			if (port) {
-				if (si->port_no!=port) {
-					continue;
-				}
-			}
-			if (ip_addr_cmp(ip, &si->address))
-				goto found;
-		}
-	}while( (proto==0) && (c_proto=next_proto(c_proto)) );
-not_found:
-	return 0;
-found:
-	return si;
-}
-
-
-
-/* adds a new sock_info structure to the corresponding list
- * return  0 on success, -1 on error */
-int new_sock2list(char* name, unsigned short port, unsigned short proto,
-						enum si_flags flags, struct socket_info** list)
-{
-	struct socket_info* si;
-	
-	si=new_sock_info(name, port, proto, flags);
-	if (si==0){
-		LOG(L_ERR, "ERROR: add_listen_iface: new_sock_info failed\n");
-		goto error;
-	}
-	sock_listadd(list, si);
-	return 0;
-error:
-	return -1;
-}
-
-
-
-/* adds a sock_info structure to the corresponding proto list
- * return  0 on success, -1 on error */
-int add_listen_iface(char* name, unsigned short port, unsigned short proto,
-						enum si_flags flags)
-{
-	struct socket_info** list;
-	unsigned short c_proto;
-	
-	c_proto=(proto)?proto:PROTO_UDP;
-	do{
-		list=get_sock_info_list(c_proto);
-		if (list==0){
-			LOG(L_ERR, "ERROR: add_listen_iface: get_sock_info_list failed\n");
-			goto error;
-		}
-		if (port==0){ /* use default port */
-			port=
-#ifdef USE_TLS
-				((c_proto)==PROTO_TLS)?tls_port_no:
-#endif
-				port_no;
-		}
-		if (new_sock2list(name, port, c_proto, flags, list)<0){
-			LOG(L_ERR, "ERROR: add_listen_iface: new_sock2list failed\n");
-			goto error;
-		}
-	}while( (proto==0) && (c_proto=next_proto(c_proto)));
-	return 0;
-error:
-	return -1;
-}
-
-
-
-/* add all family type addresses of interface if_name to the socket_info array
- * if if_name==0, adds all addresses on all interfaces
- * WARNING: it only works with ipv6 addresses on FreeBSD
- * return: -1 on error, 0 on success
- */
-int add_interfaces(char* if_name, int family, unsigned short port,
-					unsigned short proto,
-					struct socket_info** list)
-{
-	struct ifconf ifc;
-	struct ifreq ifr;
-	struct ifreq ifrcopy;
-	char*  last;
-	char* p;
-	int size;
-	int lastlen;
-	int s;
-	char* tmp;
-	struct ip_addr addr;
-	int ret;
-	enum si_flags flags;
-	
-#ifdef HAVE_SOCKADDR_SA_LEN
-	#ifndef MAX
-		#define MAX(a,b) ( ((a)>(b))?(a):(b))
-	#endif
-#endif
-	/* ipv4 or ipv6 only*/
-	flags=SI_NONE;
-	s=socket(family, SOCK_DGRAM, 0);
-	ret=-1;
-	lastlen=0;
-	ifc.ifc_req=0;
-	for (size=100; ; size*=2){
-		ifc.ifc_len=size*sizeof(struct ifreq);
-		ifc.ifc_req=(struct ifreq*) pkg_malloc(size*sizeof(struct ifreq));
-		if (ifc.ifc_req==0){
-			LOG(L_ERR, "ERROR: add_interfaces: memory allocation failure\n");
-			goto error;
-		}
-		if (ioctl(s, SIOCGIFCONF, &ifc)==-1){
-			if(errno==EBADF) return 0; /* invalid descriptor => no such ifs*/
-			LOG(L_ERR, "ERROR: add_interfaces: ioctl failed: %s\n",
-					strerror(errno));
-			goto error;
-		}
-		if  ((lastlen) && (ifc.ifc_len==lastlen)) break; /*success,
-														   len not changed*/
-		lastlen=ifc.ifc_len;
-		/* try a bigger array*/
-		pkg_free(ifc.ifc_req);
-	}
-	
-	last=(char*)ifc.ifc_req+ifc.ifc_len;
-	for(p=(char*)ifc.ifc_req; p<last;
-			p+=
-			#ifdef __OS_linux
-				sizeof(ifr) /* works on x86_64 too */
-			#else
-				(sizeof(ifr.ifr_name)+
-				#ifdef  HAVE_SOCKADDR_SA_LEN
-					MAX(ifr.ifr_addr.sa_len, sizeof(struct sockaddr))
-				#else
-					( (ifr.ifr_addr.sa_family==AF_INET)?
-						sizeof(struct sockaddr_in):
-						((ifr.ifr_addr.sa_family==AF_INET6)?
-						sizeof(struct sockaddr_in6):sizeof(struct sockaddr)) )
-				#endif
-				)
-			#endif
-		)
-	{
-		/* copy contents into ifr structure
-		 * warning: it might be longer (e.g. ipv6 address) */
-		memcpy(&ifr, p, sizeof(ifr));
-		if (ifr.ifr_addr.sa_family!=family){
-			/*printf("strange family %d skipping...\n",
-					ifr->ifr_addr.sa_family);*/
-			continue;
-		}
-		
-		/*get flags*/
-		ifrcopy=ifr;
-		if (ioctl(s, SIOCGIFFLAGS,  &ifrcopy)!=-1){ /* ignore errors */
-			/* ignore down ifs only if listening on all of them*/
-			if (if_name==0){ 
-				/* if if not up, skip it*/
-				if (!(ifrcopy.ifr_flags & IFF_UP)) continue;
-			}
-		}
-		
-		
-		
-		if ((if_name==0)||
-			(strncmp(if_name, ifr.ifr_name, sizeof(ifr.ifr_name))==0)){
-			
-			/*add address*/
-			sockaddr2ip_addr(&addr, 
-					(struct sockaddr*)(p+(long)&((struct ifreq*)0)->ifr_addr));
-			if ((tmp=ip_addr2a(&addr))==0) goto error;
-			/* check if loopback */
-			if (ifrcopy.ifr_flags & IFF_LOOPBACK) 
-				flags|=SI_IS_LO;
-			/* add it to one of the lists */
-			if (new_sock2list(tmp, port, proto, flags, list)!=0){
-				LOG(L_ERR, "ERROR: add_interfaces: new_sock2list failed\n");
-				goto error;
-			}
-			ret=0;
-		}
-			/*
-			printf("%s:\n", ifr->ifr_name);
-			printf("        ");
-			print_sockaddr(&(ifr->ifr_addr));
-			printf("        ");
-			ls_ifflags(ifr->ifr_name, family, options);
-			printf("\n");*/
-	}
-	pkg_free(ifc.ifc_req); /*clean up*/
-	close(s);
-	return  ret;
-error:
-	if (ifc.ifc_req) pkg_free(ifc.ifc_req);
-	close(s);
-	return -1;
-}
-
-
-
-/* fixes a socket list => resolve addresses, 
- * interface names, fills missing members, remove duplicates */
-static int fix_socket_list(struct socket_info **list)
-{
-	struct socket_info* si;
-	struct socket_info* l;
-	struct socket_info* next;
-	char* tmp;
-	int len;
-	struct hostent* he;
-	char** h;
-	
-	/* try to change all the interface names into addresses
-	 *  --ugly hack */
-	
-	for (si=*list;si;){
-		next=si->next;
-		if (add_interfaces(si->name.s, AF_INET, si->port_no,
-							si->proto, list)!=-1){
-			/* success => remove current entry (shift the entire array)*/
-			sock_listrm(list, si);
-			free_sock_info(si);
-		}
-		si=next;
-	}
-	/* get ips & fill the port numbers*/
-#ifdef EXTRA_DEBUG
-	DBG("Listening on \n");
-#endif
-	for (si=*list;si;si=si->next){
-		/* fix port number, port_no should be !=0 here */
-		if (si->port_no==0){
-#ifdef USE_TLS
-			si->port_no= (si->proto==PROTO_TLS)?tls_port_no:port_no;
-#else
-			si->port_no= port_no;
-#endif
-		}
-		tmp=int2str(si->port_no, &len);
-		if (len>=MAX_PORT_LEN){
-			LOG(L_ERR, "ERROR: fix_socket_list: bad port number: %d\n", 
-						si->port_no);
-			goto error;
-		}
-		si->port_no_str.s=(char*)pkg_malloc(len+1);
-		if (si->port_no_str.s==0){
-			LOG(L_ERR, "ERROR: fix_socket_list: out of memory.\n");
-			goto error;
-		}
-		strncpy(si->port_no_str.s, tmp, len+1);
-		si->port_no_str.len=len;
-		
-		/* get "official hostnames", all the aliases etc. */
-		he=resolvehost(si->name.s);
-		if (he==0){
-			LOG(L_ERR, "ERROR: fix_socket_list: could not resolve %s\n",
-					si->name.s);
-			goto error;
-		}
-		/* check if we got the official name */
-		if (strcasecmp(he->h_name, si->name.s)!=0){
-			if (add_alias(si->name.s, si->name.len,
-							si->port_no, si->proto)<0){
-				LOG(L_ERR, "ERROR: fix_socket_list: add_alias failed\n");
-			}
-			/* change the official name */
-			pkg_free(si->name.s);
-			si->name.s=(char*)pkg_malloc(strlen(he->h_name)+1);
-			if (si->name.s==0){
-				LOG(L_ERR,  "ERROR: fix_socket_list: out of memory.\n");
-				goto error;
-			}
-			si->name.len=strlen(he->h_name);
-			strncpy(si->name.s, he->h_name, si->name.len+1);
-		}
-		/* add the aliases*/
-		for(h=he->h_aliases; h && *h; h++)
-			if (add_alias(*h, strlen(*h), si->port_no, si->proto)<0){
-				LOG(L_ERR, "ERROR: fix_socket_list: add_alias failed\n");
-			}
-		hostent2ip_addr(&si->address, he, 0); /*convert to ip_addr 
-														 format*/
-		if ((tmp=ip_addr2a(&si->address))==0) goto error;
-		si->address_str.s=(char*)pkg_malloc(strlen(tmp)+1);
-		if (si->address_str.s==0){
-			LOG(L_ERR, "ERROR: fix_socket_list: out of memory.\n");
-			goto error;
-		}
-		strncpy(si->address_str.s, tmp, strlen(tmp)+1);
-		/* set is_ip (1 if name is an ip address, 0 otherwise) */
-		si->address_str.len=strlen(tmp);
-		if 	(	(si->address_str.len==si->name.len)&&
-				(strncasecmp(si->address_str.s, si->name.s,
-								si->address_str.len)==0)
-			){
-				si->flags|=SI_IS_IP;
-				/* do rev. DNS on it (for aliases)*/
-				he=rev_resolvehost(&si->address);
-				if (he==0){
-					LOG(L_WARN, "WARNING: fix_socket_list:"
-							" could not rev. resolve %s\n",
-							si->name.s);
-				}else{
-					/* add the aliases*/
-					if (add_alias(he->h_name, strlen(he->h_name),
-									si->port_no, si->proto)<0){
-						LOG(L_ERR, "ERROR: fix_socket_list:"
-									"add_alias failed\n");
-					}
-					for(h=he->h_aliases; h && *h; h++)
-						if (add_alias(*h,strlen(*h),si->port_no,si->proto)<0){
-							LOG(L_ERR, "ERROR: fix_socket_list:"
-									" add_alias failed\n");
-						}
-				}
-		}
-
-#ifdef USE_MCAST
-		     /* Check if it is an multicast address and
-		      * set the flag if so
-		      */
-		if (is_mcast(&si->address)) {
-			si->flags |= SI_IS_MCAST;
-		}
-#endif /* USE_MCAST */
-
-#ifdef EXTRA_DEBUG
-		printf("              %.*s [%s]:%s%s\n", si->name.len, 
-				si->name.s, si->address_str.s, si->port_no_str.s,
-		                si->flags & SI_IS_MCAST ? " mcast" : "");
-#endif
-	}
-	/* removing duplicate addresses*/
-	for (si=*list;si; si=si->next){
-		for (l=si->next;l;){
-			next=l->next;
-			if ((si->port_no==l->port_no) &&
-				(si->address.af==l->address.af) &&
-				(memcmp(si->address.u.addr, l->address.u.addr, si->address.len)
-					== 0)
-				){
-#ifdef EXTRA_DEBUG
-				printf("removing duplicate %s [%s] ==  %s [%s]\n",
-						si->name.s, si->address_str.s,
-						 l->name.s, l->address_str.s);
-#endif
-				/* add the name to the alias list*/
-				if ((!(l->flags& SI_IS_IP)) && (
-						(l->name.len!=si->name.len)||
-						(strncmp(l->name.s, si->name.s, si->name.len)!=0))
-					)
-					add_alias(l->name.s, l->name.len, l->port_no, l->proto);
-						
-				/* remove l*/
-				sock_listrm(list, l);
-				free_sock_info(l);
-			}
-			l=next;
-		}
-	}
-
-#ifdef USE_MCAST
-	     /* Remove invalid multicast entries */
-	si=*list;
-	while(si){
-		if ((si->flags & SI_IS_MCAST) && 
-		    ((si->proto == PROTO_TCP)
-#ifdef USE_TLS
-		    || (si->proto == PROTO_TLS)
-#endif /* USE_TLS */
-		    )){
-			LOG(L_WARN, "WARNING: removing entry %s:%s [%s]:%s\n",
-			    get_proto_name(si->proto), si->name.s, 
-			    si->address_str.s, si->port_no_str.s);
-			l = si;
-			si=si->next;
-			sock_listrm(list, l);
-			free_sock_info(l);
-		} else {
-			si=si->next;
-		}
-	}
-#endif /* USE_MCAST */
-
-	return 0;
-error:
-	return -1;
-}
-
-
-
-/* fix all 3 socket lists
- * return 0 on success, -1 on error */
-int fix_all_socket_lists()
-{
-	struct utsname myname;
-	
-	if ((udp_listen==0)
-#ifdef USE_TCP
-			&& (tcp_listen==0)
-#ifdef USE_TLS
-			&& (tls_listen==0)
-#endif
-#endif
-		){
-		/* get all listening ipv4 interfaces */
-		if (add_interfaces(0, AF_INET, 0,  PROTO_UDP, &udp_listen)==0){
-			/* if ok, try to add the others too */
-#ifdef USE_TCP
-			if (!tcp_disable){
-				if (add_interfaces(0, AF_INET, 0,  PROTO_TCP, &tcp_listen)!=0)
-					goto error;
-#ifdef USE_TLS
-				if (!tls_disable){
-					if (add_interfaces(0, AF_INET, 0, PROTO_TLS,
-								&tls_listen)!=0)
-					goto error;
-				}
-#endif
-			}
-#endif
-		}else{
-			/* if error fall back to get hostname */
-			/* get our address, only the first one */
-			if (uname (&myname) <0){
-				LOG(L_ERR, "ERROR: fix_all_socket_lists: cannot determine"
-						" hostname, try -l address\n");
-				goto error;
-			}
-			if (add_listen_iface(myname.nodename, 0, 0, 0)!=0){
-				LOG(L_ERR, "ERROR: fix_all_socket_lists: add_listen_iface "
-						"failed \n");
-				goto error;
-			}
-		}
-	}
-	if (fix_socket_list(&udp_listen)!=0){
-		LOG(L_ERR, "ERROR: fix_all_socket_lists: fix_socket_list"
-				" udp failed\n");
-		goto error;
-	}
-#ifdef USE_TCP
-	if (!tcp_disable && (fix_socket_list(&tcp_listen)!=0)){
-		LOG(L_ERR, "ERROR: fix_all_socket_lists: fix_socket_list"
-				" tcp failed\n");
-		goto error;
-	}
-#ifdef USE_TLS
-	if (!tls_disable && (fix_socket_list(&tls_listen)!=0)){
-		LOG(L_ERR, "ERROR: fix_all_socket_lists: fix_socket_list"
-				" tls failed\n");
-		goto error;
-	}
-#endif
-#endif
-	if ((udp_listen==0)
-#ifdef USE_TCP
-			&& (tcp_listen==0)
-#ifdef USE_TLS
-			&& (tls_listen==0)
-#endif
-#endif
-		){
-		LOG(L_ERR, "ERROR: fix_all_socket_lists: no listening sockets\n");
-		goto error;
-	}
-	return 0;
-error:
-	return -1;
-}
-
-
-
-void print_all_socket_lists()
-{
-	struct socket_info *si;
-	struct socket_info** list;
-	unsigned short proto;
-	
-	
-	proto=PROTO_UDP;
-	do{
-		list=get_sock_info_list(proto);
-		for(si=list?*list:0; si; si=si->next){
-			printf("             %s: %s [%s]:%s%s\n", get_proto_name(proto),
-			       si->name.s, si->address_str.s, si->port_no_str.s, 
-			       si->flags & SI_IS_MCAST ? " mcast" : "");
-		}
-	}while((proto=next_proto(proto)));
-}
-
-
-void print_aliases()
-{
-	struct host_alias* a;
-
-	for(a=aliases; a; a=a->next) 
-		if (a->port)
-			printf("             %s: %.*s:%d\n", get_proto_name(a->proto), 
-					a->alias.len, a->alias.s, a->port);
-		else
-			printf("             %s: %.*s:*\n", get_proto_name(a->proto), 
-					a->alias.len, a->alias.s);
-}

Deleted: ser/trunk/socket_info.h
===================================================================
--- ser/trunk/socket_info.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/socket_info.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,116 +0,0 @@
-/* $Id: socket_info.h,v 1.5.2.1 2005/02/25 18:30:28 bogdan Exp $
- *
- * find & manage listen addresses 
- *
- * 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 at 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
- */
-/*
- * This file contains code that initializes and handles ser listen addresses
- * lists (struct socket_info). It is used mainly on startup.
- * 
- * History:
- * --------
- *  2003-10-22  created by andrei
- */
-
-
-#ifndef socket_info_h
-#define socket_info_h
-
-#include "ip_addr.h" 
-#include "dprint.h"
-#include "globals.h"
-/* struct socket_info is defined in ip_addr.h */
-
-struct socket_info* udp_listen;
-#ifdef USE_TCP
-struct socket_info* tcp_listen;
-#endif
-#ifdef USE_TLS
-struct socket_info* tls_listen;
-#endif
-
-
-int add_listen_iface(char* name, unsigned short port, unsigned short proto,
-							enum si_flags flags);
-int fix_all_socket_lists();
-void print_all_socket_lists();
-void print_aliases();
-
-struct socket_info* grep_sock_info(str* host, unsigned short port,
-										unsigned short proto);
-struct socket_info* find_si(struct ip_addr* ip, unsigned short port,
-												unsigned short proto);
-
-/* helper function:
- * returns next protocol, if the last one is reached return 0
- * useful for cycling on the supported protocols */
-static inline int next_proto(unsigned short proto)
-{
-	switch(proto){
-		case PROTO_NONE:
-			return PROTO_UDP;
-		case PROTO_UDP:
-#ifdef	USE_TCP
-			return (tcp_disable)?0:PROTO_TCP;
-#else
-			return 0;
-#endif
-#ifdef USE_TCP
-		case PROTO_TCP:
-#ifdef USE_TLS
-			return (tls_disable)?0:PROTO_TLS;
-#else
-			return 0;
-#endif
-#endif
-#ifdef USE_TLS
-		case PROTO_TLS:
-			return 0;
-#endif
-		default:
-			LOG(L_ERR, "ERROR: next_proto: unknown proto %d\n", proto);
-	}
-	return 0;
-}
-
-
-
-/* gets first non-null socket_info structure
- * (useful if for. e.g we are not listening on any udp sockets )
- */
-inline static struct socket_info* get_first_socket()
-{
-	if (udp_listen) return udp_listen;
-#ifdef USE_TCP
-	else if (tcp_listen) return tcp_listen;
-#ifdef USE_TLS
-	else if (tls_listen) return tls_listen;
-#endif
-#endif
-	return 0;
-}
-
-
-#endif

Deleted: ser/trunk/sr_module.c
===================================================================
--- ser/trunk/sr_module.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/sr_module.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,500 +0,0 @@
-/* $Id: sr_module.c,v 1.37 2004/09/19 20:22:51 andrei Exp $
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2003-03-10  switched to new module_exports format: updated find_export,
- *               find_export_param, find_module (andrei)
- *  2003-03-19  replaced all mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-03-19  Support for flags in find_export (janakj)
- *  2003-03-29  cleaning pkg_mallocs introduced (jiri)
- *  2003-04-24  module version checking introduced (jiri)
- *  2004-09-19  compile flags are checked too (andrei)
- */
-
-
-#include "sr_module.h"
-#include "dprint.h"
-#include "error.h"
-#include "mem/mem.h"
-
-#include <dlfcn.h>
-#include <strings.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-struct sr_module* modules=0;
-
-#ifdef STATIC_EXEC
-	extern struct module_exports* exec_exports();
-#endif
-#ifdef STATIC_TM
-	extern struct module_exports* tm_exports();
-#endif
-
-#ifdef STATIC_MAXFWD
-	extern struct module_exports* maxfwd_exports();
-#endif
-
-#ifdef STATIC_AUTH
-        extern struct module_exports* auth_exports();
-#endif
-
-#ifdef STATIC_RR
-        extern struct module_exports* rr_exports();
-#endif
-
-#ifdef STATIC_USRLOC
-        extern struct module_exports* usrloc_exports();
-#endif
-
-#ifdef STATIC_SL
-        extern struct module_exports* sl_exports();
-#endif
-
-
-/* initializes statically built (compiled in) modules*/
-int register_builtin_modules()
-{
-	int ret;
-
-	ret=0;
-#ifdef STATIC_TM
-	ret=register_module(tm_exports,"built-in", 0); 
-	if (ret<0) return ret;
-#endif
-
-#ifdef STATIC_EXEC
-	ret=register_module(exec_exports,"built-in", 0); 
-	if (ret<0) return ret;
-#endif
-
-#ifdef STATIC_MAXFWD
-	ret=register_module(maxfwd_exports, "built-in", 0);
-	if (ret<0) return ret;
-#endif
-
-#ifdef STATIC_AUTH
-	ret=register_module(auth_exports, "built-in", 0); 
-	if (ret<0) return ret;
-#endif
-	
-#ifdef STATIC_RR
-	ret=register_module(rr_exports, "built-in", 0);
-	if (ret<0) return ret;
-#endif
-	
-#ifdef STATIC_USRLOC
-	ret=register_module(usrloc_exports, "built-in", 0);
-	if (ret<0) return ret;
-#endif
-
-#ifdef STATIC_SL
-	ret=register_module(sl_exports, "built-in", 0);
-	if (ret<0) return ret;
-#endif
-	
-	return ret;
-}
-
-
-
-/* registers a module,  register_f= module register  functions
- * returns <0 on error, 0 on success */
-int register_module(struct module_exports* e, char* path, void* handle)
-{
-	int ret;
-	struct sr_module* mod;
-	
-	ret=-1;
-
-	/* add module to the list */
-	if ((mod=pkg_malloc(sizeof(struct sr_module)))==0){
-		LOG(L_ERR, "load_module: memory allocation failure\n");
-		ret=E_OUT_OF_MEM;
-		goto error;
-	}
-	memset(mod,0, sizeof(struct sr_module));
-	mod->path=path;
-	mod->handle=handle;
-	mod->exports=e;
-	mod->next=modules;
-	modules=mod;
-	return 0;
-error:
-	return ret;
-}
-
-#ifndef DLSYM_PREFIX
-/* define it to null */
-#define DLSYM_PREFIX
-#endif
-
-static inline int version_control(void *handle, char *path)
-{
-	char **m_ver;
-	char **m_flags;
-	char* error;
-
-	m_ver=(char **)dlsym(handle, DLSYM_PREFIX "module_version");
-	if ((error=(char *)dlerror())!=0) {
-		LOG(L_ERR, "ERROR: no version info in module <%s>: %s\n",
-			path, error );
-		return 0;
-	}
-	m_flags=(char **)dlsym(handle, DLSYM_PREFIX "module_flags");
-	if ((error=(char *)dlerror())!=0) {
-		LOG(L_ERR, "ERROR: no compile flags info in module <%s>: %s\n",
-			path, error );
-		return 0;
-	}
-	if (!m_ver || !(*m_ver)) {
-		LOG(L_ERR, "ERROR: no version in module <%s>\n", path );
-		return 0;
-	}
-	if (!m_flags || !(*m_flags)) {
-		LOG(L_ERR, "ERROR: no compile flags in module <%s>\n", path );
-		return 0;
-	}
-	
-	if (strcmp(SER_FULL_VERSION, *m_ver)==0){
-		if (strcmp(SER_COMPILE_FLAGS, *m_flags)==0)
-			return 1;
-		else {
-			LOG(L_ERR, "ERROR: module compile flags mismatch for %s "
-						" \ncore: %s \nmodule: %s\n",
-						path, SER_COMPILE_FLAGS, *m_flags);
-			return 0;
-		}
-	}
-	LOG(L_ERR, "ERROR: module version mismatch for %s; "
-		"core: %s; module: %s\n", path, SER_FULL_VERSION, *m_ver );
-	return 0;
-}
-
-/* returns 0 on success , <0 on error */
-int load_module(char* path)
-{
-	void* handle;
-	char* error;
-	struct module_exports* exp;
-	struct sr_module* t;
-	
-#ifndef RTLD_NOW
-/* for openbsd */
-#define RTLD_NOW DL_LAZY
-#endif
-	handle=dlopen(path, RTLD_NOW); /* resolve all symbols now */
-	if (handle==0){
-		LOG(L_ERR, "ERROR: load_module: could not open module <%s>: %s\n",
-					path, dlerror() );
-		goto error;
-	}
-	
-	for(t=modules;t; t=t->next){
-		if (t->handle==handle){
-			LOG(L_WARN, "WARNING: load_module: attempting to load the same"
-						" module twice (%s)\n", path);
-			goto skip;
-		}
-	}
-	/* version control */
-	if (!version_control(handle, path)) {
-		exit(0);
-	}
-	/* launch register */
-	exp = (struct module_exports*)dlsym(handle, DLSYM_PREFIX "exports");
-	if ( (error =(char*)dlerror())!=0 ){
-		LOG(L_ERR, "ERROR: load_module: %s\n", error);
-		goto error1;
-	}
-	if (register_module(exp, path, handle)<0) goto error1;
-	return 0;
-
-error1:
-	dlclose(handle);
-error:
-skip:
-	return -1;
-}
-
-
-
-/* searches the module list and returns pointer to the "name" function or
- * 0 if not found 
- * flags parameter is OR value of all flags that must match
- */
-cmd_function find_export(char* name, int param_no, int flags)
-{
-	struct sr_module* t;
-	cmd_export_t* cmd;
-
-	for(t=modules;t;t=t->next){
-		for(cmd=t->exports->cmds; cmd && cmd->name; cmd++){
-			if((strcmp(name, cmd->name)==0)&&
-			   (cmd->param_no==param_no) &&
-			   ((cmd->flags & flags) == flags)
-			  ){
-				DBG("find_export: found <%s> in module %s [%s]\n",
-				    name, t->exports->name, t->path);
-				return cmd->function;
-			}
-		}
-	}
-	DBG("find_export: <%s> not found \n", name);
-	return 0;
-}
-
-
-
-/*
- * searches the module list and returns pointer to "name" function in module "mod"
- * 0 if not found
- * flags parameter is OR value of all flags that must match
- */
-cmd_function find_mod_export(char* mod, char* name, int param_no, int flags)
-{
-	struct sr_module* t;
-	cmd_export_t* cmd;
-
-	for (t = modules; t; t = t->next) {
-		if (strcmp(t->exports->name, mod) == 0) {
-			for (cmd = t->exports->cmds;  cmd && cmd->name; cmd++) {
-				if ((strcmp(name, cmd->name) == 0) &&
-				    (cmd->param_no == param_no) &&
-				    ((cmd->flags & flags) == flags)
-				   ){
-					DBG("find_mod_export: found <%s> in module %s [%s]\n",
-					    name, t->exports->name, t->path);
-					return cmd->function;
-				}
-			}
-		}
-	}
-
-	DBG("find_mod_export: <%s> in module %s not found\n", name, mod);
-	return 0;
-}
-
-
-
-
-void* find_param_export(char* mod, char* name, modparam_t type)
-{
-	struct sr_module* t;
-	param_export_t* param;
-
-	for(t = modules; t; t = t->next) {
-		if (strcmp(mod, t->exports->name) == 0) {
-			for(param=t->exports->params;param && param->name ; param++) {
-				if ((strcmp(name, param->name) == 0) &&
-				    (param->type == type)) {
-					DBG("find_param_export: found <%s> in module %s [%s]\n",
-					    name, t->exports->name, t->path);
-					return param->param_pointer;
-				}
-			}
-		}
-	}
-	DBG("find_param_export: parameter <%s> or module <%s> not found\n",
-			name, mod);
-	return 0;
-}
-
-
-/* finds a module, given a pointer to a module function *
- * returns pointer to module, & if  c!=0, *c=pointer to the
- * function cmd_export structure*/
-struct sr_module* find_module(void* f, cmd_export_t  **c)
-{
-	struct sr_module* t;
-	cmd_export_t* cmd;
-	
-	for (t=modules;t;t=t->next){
-		for(cmd=t->exports->cmds; cmd && cmd->name; cmd++) 
-			if (f==(void*)cmd->function) {
-				if (c) *c=cmd;
-				return t;
-			}
-	}
-	return 0;
-}
-
-
-
-void destroy_modules()
-{
-	struct sr_module* t, *foo;
-
-	t=modules;
-	while(t) {
-		foo=t->next;
-		if ((t->exports)&&(t->exports->destroy_f)) t->exports->destroy_f();
-		pkg_free(t);
-		t=foo;
-	}
-	modules=0;
-}
-
-#ifdef NO_REVERSE_INIT
-
-/*
- * Initialize all loaded modules, the initialization
- * is done *AFTER* the configuration file is parsed
- */
-int init_modules(void)
-{
-	struct sr_module* t;
-	
-	for(t = modules; t; t = t->next) {
-		if ((t->exports) && (t->exports->init_f))
-			if (t->exports->init_f() != 0) {
-				LOG(L_ERR, "init_modules(): Error while initializing"
-							" module %s\n", t->exports->name);
-				return -1;
-			}
-	}
-	return 0;
-}
-
-/*
- * per-child initialization
- */
-int init_child(int rank)
-{
-	struct sr_module* t;
-	char* type;
-
-	switch(rank) {
-	case PROC_MAIN:     type = "PROC_MAIN";     break;
-	case PROC_TIMER:    type = "PROC_TIMER";    break;
-	case PROC_FIFO:     type = "PROC_FIFO";     break;
-	case PROC_TCP_MAIN: type = "PROC_TCP_MAIN"; break;
-	default:            type = "CHILD";         break;
-	}
-	DBG("init_child: initializing %s with rank %d\n", type, rank);
-	
-
-	for(t = modules; t; t = t->next) {
-		if (t->exports->init_child_f) {
-			if ((t->exports->init_child_f(rank)) < 0) {
-				LOG(L_ERR, "init_child(): Initialization of child %d failed\n",
-						rank);
-				return -1;
-			}
-		}
-	}
-	return 0;
-}
-
-#else
-
-
-/* recursive module child initialization; (recursion is used to
-   process the module linear list in the same order in
-   which modules are loaded in config file
-*/
-
-static int init_mod_child( struct sr_module* m, int rank )
-{
-	if (m) {
-		/* iterate through the list; if error occurs,
-		   propagate it up the stack
-		 */
-		if (init_mod_child(m->next, rank)!=0) return -1;
-		if (m->exports && m->exports->init_child_f) {
-			DBG("DEBUG: init_mod_child (%d): %s\n", 
-					rank, m->exports->name);
-			if (m->exports->init_child_f(rank)<0) {
-				LOG(L_ERR, "init_mod_child(): Error while initializing"
-							" module %s\n", m->exports->name);
-				return -1;
-			} else {
-				/* module correctly initialized */
-				return 0;
-			}
-		}
-		/* no init function -- proceed with success */
-		return 0;
-	} else {
-		/* end of list */
-		return 0;
-	}
-}
-
-
-/*
- * per-child initialization
- */
-int init_child(int rank)
-{
-	return init_mod_child(modules, rank);
-}
-
-
-
-/* recursive module initialization; (recursion is used to
-   process the module linear list in the same order in
-   which modules are loaded in config file
-*/
-
-static int init_mod( struct sr_module* m )
-{
-	if (m) {
-		/* iterate through the list; if error occurs,
-		   propagate it up the stack
-		 */
-		if (init_mod(m->next)!=0) return -1;
-		if (m->exports && m->exports->init_f) {
-			DBG("DEBUG: init_mod: %s\n", m->exports->name);
-			if (m->exports->init_f()!=0) {
-				LOG(L_ERR, "init_mod(): Error while initializing"
-							" module %s\n", m->exports->name);
-				return -1;
-			} else {
-				/* module correctly initialized */
-				return 0;
-			}
-		}
-		/* no init function -- proceed with success */
-		return 0;
-	} else {
-		/* end of list */
-		return 0;
-	}
-}
-
-/*
- * Initialize all loaded modules, the initialization
- * is done *AFTER* the configuration file is parsed
- */
-int init_modules(void)
-{
-	return init_mod(modules);
-}
-
-#endif

Deleted: ser/trunk/sr_module.h
===================================================================
--- ser/trunk/sr_module.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/sr_module.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,163 +0,0 @@
-/* $Id: sr_module.h,v 1.24 2004/12/03 19:09:31 andrei Exp $
- *
- * modules/plug-in structures declarations
- *
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2003-03-10  changed module exports interface: added struct cmd_export
- *               and param_export (andrei)
- *  2003-03-16  Added flags field to cmd_export_ (janakj)
- *  2003-04-05  s/reply_route/failure_route, onreply_route introduced (jiri)
- *  2004-03-12  extra flag USE_FUNC_PARAM added to modparam type -
- *              instead of copying the param value, a func is called (bogdan)
- *  2004-09-19  switched to version.h for the module versions checks (andrei)
- *  2004-12-03  changed param_func_t to (modparam_t, void*), killed
- *               param_func_param_t   (andrei)
- */
-
-
-#ifndef sr_module_h
-#define sr_module_h
-
-#include "parser/msg_parser.h" /* for sip_msg */
-#include "version.h"
-
-typedef  struct module_exports* (*module_register)();
-typedef  int (*cmd_function)(struct sip_msg*, char*, char*);
-typedef  int (*fixup_function)(void** param, int param_no);
-typedef  int (*response_function)(struct sip_msg*);
-typedef  void (*onbreak_function)(struct sip_msg*);
-typedef void (*destroy_function)();
-typedef int (*init_function)(void);
-typedef int (*child_init_function)(int rank);
-
-
-#define STR_PARAM        (1U<<0)  /* String parameter type */
-#define INT_PARAM        (1U<<1)  /* Integer parameter type */
-#define USE_FUNC_PARAM   (1U<<(8*sizeof(int)-1))
-#define PARAM_TYPE_MASK(_x)   ((_x)&(~USE_FUNC_PARAM))
-
-typedef unsigned int modparam_t;
-
-typedef int (*param_func_t)( modparam_t type, void* val);
-
-#define REQUEST_ROUTE 1  /* Function can be used in request route blocks */
-#define FAILURE_ROUTE 2  /* Function can be used in reply route blocks */
-#define ONREPLY_ROUTE 4  /* Function can be used in on_reply */
-
-/* Macros - used as rank in child_init function */
-#define PROC_MAIN      0  /* Main ser process */
-#define PROC_TIMER    -1  /* Timer attendant process */
-#define PROC_FIFO     -2  /* FIFO attendant process */
-#define PROC_TCP_MAIN -4  /* TCP main process */
-#define PROC_UNIXSOCK -5  /* Unix domain socket server processes */
-
-#define MODULE_VERSION \
-	char *module_version=SER_FULL_VERSION; \
-	char *module_flags=SER_COMPILE_FLAGS;
-
-struct cmd_export_ {
-	char* name;             /* null terminated command name */
-	cmd_function function;  /* pointer to the corresponding function */
-	int param_no;           /* number of parameters used by the function */
-	fixup_function fixup;   /* pointer to the function called to "fix" the
-							   parameters */
-	int flags;              /* Function flags */
-};
-
-
-struct param_export_ {
-	char* name;             /* null terminated param. name */
-	modparam_t type;        /* param. type */
-	void* param_pointer;    /* pointer to the param. memory location */
-};
-
-
-typedef struct cmd_export_ cmd_export_t;
-typedef struct param_export_ param_export_t;
-
-struct module_exports{
-	char* name;                     /* null terminated module name */
-	
-	cmd_export_t* cmds;             /* null terminated array of the exported
-									   commands */
-	param_export_t* params;         /* null terminated array of the exported
-									   module parameters */
-
-	init_function init_f;           /* Initialization function */
-	response_function response_f;   /* function used for responses,
-									   returns yes or no; can be null */
-	destroy_function destroy_f;     /* function called when the module should
-									   be "destroyed", e.g: on ser exit;
-									   can be null */
-	onbreak_function onbreak_f;
-	child_init_function init_child_f;  /* function called by all processes
-										  after the fork */
-};
-
-
-
-
-
-struct sr_module{
-	char* path;
-	void* handle;
-	struct module_exports* exports;
-	struct sr_module* next;
-};
-
-
-struct sr_module* modules; /* global module list*/
-
-int register_builtin_modules();
-int register_module(struct module_exports*, char*,  void*);
-int load_module(char* path);
-cmd_function find_export(char* name, int param_no, int flags);
-cmd_function find_mod_export(char* mod, char* name, int param_no, int flags);
-struct sr_module* find_module(void *f, cmd_export_t** cmd);
-void destroy_modules();
-int init_child(int rank);
-int init_modules(void);
-
-/*
- * Find a parameter with given type and return it's
- * address in memory
- * If there is no such parameter, NULL is returned
- */
-void* find_param_export(char* mod, char* name, modparam_t type);
-
-/* modules function prototypes:
- * struct module_exports* mod_register(); (type module_register)
- * int   foo_cmd(struct sip_msg* msg, char* param);
- *  - returns >0 if ok , <0 on error, 0 to stop processing (==DROP)
- * int   response_f(struct sip_msg* msg)
- *  - returns >0 if ok, 0 to drop message
- */
-
-
-#endif

Deleted: ser/trunk/stats.c
===================================================================
--- ser/trunk/stats.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/stats.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,867 +0,0 @@
-/* 
- * $Id: stats.c,v 1.9 2004/08/24 08:45:10 janakj Exp $
- *
- * Stats reporting code. It reports through SIG_USR1 and if loaded
- * through the SNMP module
- *
- * 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 at 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
- *
- * History:
- * -------
- * 2003-03-19: added support for route type in find_export (janakj)
- */
-
-
-#ifdef STATS
-#include "stats.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include "dprint.h"
-#include "mem/shm_mem.h"
-#include "sr_module.h"
-
-/* SNMP includes */
-#include "modules/snmp/snmp_handler.h"
-#include "modules/snmp/sipCommonStatsMethod.h"
-#include "modules/snmp/sipCommonStatusCode.h"
-
-struct stats_s *stats;		/* per process stats structure */ 
-char *stat_file = NULL;		/* set by the parser */
-
-/* private variables */
-static struct stats_s *global_stats=NULL;
-static int stats_segments=-1;	/*used also to determine if we've been init'ed*/
-
-/* adds up global statistics and puts them into passed struct.
- * -1 returned on failure */
-static int collect_stats(struct stats_s *s);
-
-/***********************8 SNMP Stuff **************************/
-/* a small structure we use to pass around the functions needed by
- * all the registration functions */
-struct stats_funcs {
-	int (*reg_func)(const char *, struct sip_snmp_handler*);
-	struct sip_snmp_handler* (*new_func)(size_t);
-	void (*free_func)(struct sip_snmp_handler*);
-};
-
-/* SNMP Handler registration functions */
-static int sipSummaryStatsTable_register(const struct stats_funcs *f);
-static int sipMethodStatsTable_register(const struct stats_funcs *f);
-static int sipStatusCodesTable_register(const struct stats_funcs *f);
-
-/* the handlers */
-static int collect_InReqs(struct sip_snmp_obj *, enum handler_op);
-static int collect_OutReqs(struct sip_snmp_obj *, enum handler_op);
-static int collect_InResp(struct sip_snmp_obj *, enum handler_op);
-static int collect_OutResp(struct sip_snmp_obj *, enum handler_op);
-static int sipStatsMethod_handler(struct sip_snmp_obj *o, enum handler_op op);
-static int sipStatusCodes_handler(struct sip_snmp_obj *o, enum handler_op op);
-
-int init_stats(int nr_of_processes)
-{
-	LOG(L_DBG,"init_stats(): initializing stats for %d processes\n", 
-		nr_of_processes);
-
-
-	global_stats = shm_malloc(nr_of_processes*sizeof(struct stats_s));
-	if(!global_stats) {
-		LOG(L_ERR, "Out of memory\n");
-		return -1;
-	}
-	stats_segments = nr_of_processes;
-
-	if(stats_register() == -1)
-		LOG(L_WARN, "init_stats(): Couldn't register stats"
-					" with snmp module\n");
-
-
-	return 0;
-}
-
-/* sets the stats pointer for the passed process */
-void setstats(int child_index)
-{
-	if(stats_segments == -1 || !global_stats) {
-		LOG(L_ERR, "Stats not initialized. Cannot set them\n");
-		stats = NULL;
-		return;
-	}
-	if(child_index < 0 || child_index >= stats_segments) {
-		stats = NULL;
-		LOG(L_ERR, "Invalid index %d while setting statistics. Only have "
-			"space for %d processes\n", child_index, stats_segments);
-		return;
-	}
-	stats = global_stats+child_index;
-	stats->process_index = child_index;
-	/* can't use pids[] because we may be called before the corresponding
-	 * slot in pids[] is initialized (chk main_loop()) */
-	stats->pid = getpid();
-	stats->start_time = time(NULL);
-}
-
-/* printheader is used to print pid, date and index */
-int dump_statistic(FILE *fp, struct stats_s *istats, int printheader)
-{
-	struct tm res;
-	char t[256];
-	if(stats_segments == -1 || !global_stats) {
-		LOG(L_ERR, "Stats \"engine\" not initialized\n");
-		return -1;
-	}
-
-	if(printheader) {
-		localtime_r(&istats->start_time, &res);
-		strftime(t, 255, "%c", &res);
-		
-		fprintf(fp, "stats for process %d (pid %d) started at %s\n", 
-				istats->process_index, istats->pid, t);
-	}
-
-	fprintf(fp, "received requests:\ninv: %ld\tack: %ld\tcnc: %ld\t"
-		"bye: %ld\tother: %ld\n",
-		istats->received_requests_inv,
-		istats->received_requests_ack,
-		istats->received_requests_cnc,
-		istats->received_requests_bye,
-		istats->received_requests_other);
-	fprintf(fp, "sent requests:\n"
-		"inv: %ld\tack: %ld\tcnc: %ld\tbye: %ld\tother: %ld\n",
-		istats->sent_requests_inv,
-		istats->sent_requests_ack,
-		istats->sent_requests_cnc,
-		istats->sent_requests_bye,
-		istats->sent_requests_other);
-	fprintf(fp, "received responses:\n"
-		"1: %ld\t2: %ld\t3: %ld\t4: %ld\t5: %ld\t6: %ld\tother: %ld\t"
-		"drops: %ld\n",
-		istats->received_responses_1,
-		istats->received_responses_2,
-		istats->received_responses_3,
-		istats->received_responses_4,
-		istats->received_responses_5,
-		istats->received_responses_6,
-		istats->received_responses_other,
-		istats->received_drops);
-	fprintf(fp, "sent responses:\n"
-		"1: %ld\t2: %ld\t3: %ld\t4: %ld\t5: %ld\t6: %ld\n",
-		istats->sent_responses_1,
-		istats->sent_responses_2,
-		istats->sent_responses_3,
-		istats->sent_responses_4,
-		istats->sent_responses_5,
-		istats->sent_responses_6);
-	fprintf(fp, "processed requests: %ld\t\tprocessed responses: %ld\n"
-		"acc req time: %ld\t\t\tacc res time: %ld\nfailed on send: %ld\n\n",
-		istats->processed_requests,
-		istats->processed_responses,
-		istats->acc_req_time,
-		istats->acc_res_time,
-		istats->failed_on_send);
-	return 0;
-}
-
-int dump_all_statistic()
-{
-	register int i;
-	register struct stats_s *c;
-	static struct stats_s *g = NULL;
-	struct tm res;
-	char t[256];
-	time_t ts;
-	FILE *stat_fp = NULL;
-
-	if(stats_segments == -1 || !global_stats) {
-		LOG(L_ERR, "%s: Can't dump statistics, not initialized!\n", __func__);
-		return -1;
-	}
-
-	if(!stat_file) {
-		LOG(L_ERR, "%s: Can't dump statistics, invalid stats file\n", __func__);
-		return -1;
-	}
-
-	stat_fp = fopen(stat_file, "a");
-	if(!stat_fp) {
-		LOG(L_ERR, "%s: Couldn't open stats file %s: %s\n", __func__, stat_file,
-				strerror(errno));
-		return -1;
-	}
-
-	/* time stamp them since we're appending to the file */
-	ts = time(NULL);
-	localtime_r(&ts, &res);
-	strftime(t, 255, "%c", &res);
-	fprintf(stat_fp, "#### stats @ %s #####\n", t); 
-
-	c = global_stats;
-	for(i=0; i<stats_segments; i++) {
-		if(dump_statistic(stat_fp, c, 1) == -1) {
-			LOG(L_ERR, "Error dumping statistics for process %d\n", i);
-			goto end;
-		}
-		c++;
-	}
-
-	fprintf(stat_fp, "## Global Stats ##\n");
-	if(!g)
-		g = calloc(1, sizeof(struct stats_s));
-	if(!g) {
-		LOG(L_ERR, "Couldn't dump global stats: %s\n", strerror(errno));
-		goto end;
-	}
-	
-	if(collect_stats(g) == -1) {
-		LOG(L_ERR, "%s: Couldn't dump global stats\n", __func__);
-		goto end;
-	}
-	if(dump_statistic(stat_fp, g, 0) == -1) {
-		LOG(L_ERR, "Couldn't dump global stats\n");
-		goto end;
-	}
-end:
-	fprintf(stat_fp, "\n");
-	fclose(stat_fp);
-
-	return 0;
-}
-
-static int collect_stats(struct stats_s *s)
-{
-	register int i;
-	register struct stats_s *c;
-	if(!s) {
-		LOG(L_ERR, "collect_stats(): Invalid stats pointer passed\n");
-		return -1;
-	}
-	if(!global_stats || stats_segments == -1) {
-		LOG(L_ERR, "Can't collect statistics, not initialized!!\n");
-		return -1;
-	}
-
-	c = global_stats;
-	memset(s, '\0', sizeof(struct stats_s));
-	for(i=0; i<stats_segments; i++) {
-		s->received_requests_inv += c->received_requests_inv;
-		s->received_requests_ack += c->received_requests_ack;
-		s->received_requests_cnc += c->received_requests_cnc;
-		s->received_requests_bye += c->received_requests_bye;
-		s->received_requests_other += c->received_requests_other;
-		s->received_responses_1 += c->received_responses_1;
-		s->received_responses_2 += c->received_responses_2;
-		s->received_responses_3 += c->received_responses_3;
-		s->received_responses_4 += c->received_responses_4;
-		s->received_responses_5 += c->received_responses_5;
-		s->received_responses_6 += c->received_responses_6;
-		s->received_responses_other += c->received_responses_other;
-		s->received_drops += c->received_drops;
-		s->sent_requests_inv += c->sent_requests_inv;
-		s->sent_requests_ack += c->sent_requests_ack;
-		s->sent_requests_cnc += c->sent_requests_cnc;
-		s->sent_requests_bye += c->sent_requests_bye;
-		s->sent_requests_other += c->sent_requests_other;
-		s->sent_responses_1 += c->sent_responses_1;
-		s->sent_responses_2 += c->sent_responses_2;
-		s->sent_responses_3 += c->sent_responses_3;
-		s->sent_responses_4 += c->sent_responses_4;
-		s->sent_responses_5 += c->sent_responses_5;
-		s->sent_responses_6 += c->sent_responses_6;
-		s->processed_requests += c->processed_requests;
-		s->processed_responses += c->processed_responses;
-		s->acc_req_time += c->acc_req_time;
-		s->acc_res_time += c->acc_res_time;
-		s->failed_on_send += c->failed_on_send;
-
-		c++; /* next, please... */
-	}
-
-	return 0;
-}
-
-/*************************** SNMP Stuff ***********************/
-
-/* ##### Registration Functions ####### */
-
-/* Registers the handlers for:
- * - sipSummaryStatsTable
- * - sipMethodStatsTable
- * - sipStatusCodesTable
- * - sipCommonStatusCodeTable
- *
- * Returns 0 if snmp module not present, -1 on error, 1 on successful
- * registration
- */
-
-#define reg(t) \
-	if(t##_register(&f) == -1) {	\
-		LOG(L_ERR, "%s: Failed registering SNMP handlers\n", func);	\
-		return -1;	\
-	}
-
-int stats_register()
-{
-	const char *func = __FUNCTION__;
-	struct stats_funcs f;
-
-	f.reg_func = (void*) find_export("snmp_register_handler", 2, 0);
-	f.new_func = (void*) find_export("snmp_new_handler", 1, 0);
-	f.free_func = (void*) find_export("snmp_free_handler", 1, 0);
-	if(!f.reg_func || !f.new_func || !f.free_func) {
-		LOG(L_INFO, "%s: Couldn't find SNMP module\n", func);
-		LOG(L_INFO, "%s: Not reporting stats through SNMP\n", func);
-		return 0;
-	}
-
-	reg(sipSummaryStatsTable);
-	reg(sipMethodStatsTable);
-	reg(sipStatusCodesTable);
-
-	return 0;
-}
-
-/* Receives the function used to register SNMP handlers. Returns 0
- * on success, -1 on error */
-/* Registers:
- * - sipSummaryInRequests
- * - sipSummaryOutRequests
- * - sipSummaryInResponses
- * - sipSummaryOutResponses
- * => sipSummaryTotalTransactions is handled by the tm module */
-static int sipSummaryStatsTable_register(const struct stats_funcs *f)
-{
-	register struct sip_snmp_handler *h;
-	register struct sip_snmp_obj *o;
-	const char *func = __FUNCTION__;
-
-	h = f->new_func(sizeof(unsigned long));
-	if(!h) {
-		LOG(L_ERR, "%s: Error creating handler\n", func);
-		return -1;
-	}
-	o = h->sip_obj;
-
-	/* this is the same for all of our objects */
-	o->type = SER_COUNTER;
-	*o->value.integer = 0;	/* default value. The real one is computed on
-							   request */
-	o->val_len = sizeof(unsigned long);
-
-	/* sipSummaryInRequests */
-	h->on_get = collect_InReqs;
-	h->on_set = h->on_end = NULL;
-	if(f->reg_func("sipSummaryInRequests", h) == -1) {
-		LOG(L_ERR, "%s: Error registering sipSummaryInRequests\n", func);
-		f->free_func(h);
-		return -1;
-	}
-
-	/* sipSummaryOutRequests */
-	h->on_get = collect_OutReqs;
-	if(f->reg_func("sipSummaryOutRequests", h) == -1) {
-		LOG(L_ERR, "%s: Error registering sipSummaryOutRequests\n", func);
-		f->free_func(h);
-		return -1;
-	}
-
-	/* sipSummaryInResponses */
-	h->on_get = collect_InResp;
-	if(f->reg_func("sipSummaryInResponses", h) == -1) {
-		LOG(L_ERR, "%s: Error registering sipSummaryInResponses\n", func);
-		f->free_func(h);
-		return -1;
-	}
-	
-	/* sipSummaryOutResponses */
-	h->on_get = collect_OutResp;
-	if(f->reg_func("sipSummaryOutResponses", h) == -1) {
-		LOG(L_ERR, "%s: Error registering sipSummaryOutResponses\n", func);
-		f->free_func(h);
-		return -1;
-	}
-
-	f->free_func(h);
-
-	return 0;
-}
-
-static int sipMethodStatsTable_register(const struct stats_funcs *f)
-{
-	const char* objs[] = {
-		"sipStatsInviteIns",
-		"sipStatsInviteOuts",
-		"sipStatsAckIns",
-		"sipStatsAckOuts",
-		"sipStatsByeIns",
-		"sipStatsByeOuts",
-		"sipStatsCancelIns",
-		"sipStatsCancelOuts"
-#if 0	/* we don't know about these */
-		"sipStatsOptionsIns",
-		"sipStatsOptionsOuts",
-		"sipStatsRegisterIns",
-		"sipStatsRegisterOuts",
-		"sipStatsInfoIns",
-		"sipStatsInfoOuts"
-#endif
-	};
-	int i, num = 8;
-	const char *func = __FUNCTION__;
-	register struct sip_snmp_handler *h;
-	register struct sip_snmp_obj *o;
-
-	h = f->new_func(sizeof(unsigned long));
-	if(!h) {
-		LOG(L_ERR, "%s: Error creating handler\n", func);
-		return -1;
-	}
-	o = h->sip_obj;
-	o->type = SER_COUNTER;
-	*o->value.integer = 0;
-	o->val_len = sizeof(unsigned long);
-
-	h->on_get = sipStatsMethod_handler;
-	h->on_set = h->on_end = NULL;
-
-	for(i=0; i<num; i++) {
-		if(f->reg_func(objs[i], h) == -1) {
-			LOG(L_ERR, "%s: Error registering %s\n", func, objs[i]);
-			f->free_func(h);
-			return -1;
-		}
-	}
-
-	f->free_func(h);
-
-	return 0;
-}
-
-static int sipStatusCodesTable_register(const struct stats_funcs *f)
-{
-	const char *objs[] = {
-		"sipStatsInfoClassIns",
-		"sipStatsInfoClassOuts",
-		"sipStatsSuccessClassIns",
-		"sipStatsSuccessClassOuts",
-		"sipStatsRedirClassIns",
-		"sipStatsRedirClassOuts",
-		"sipStatsReqFailClassIns",
-		"sipStatsReqFailClassOuts",
-		"sipStatsServerFailClassIns",
-		"sipStatsServerFailClassOuts",
-		"sipStatsGlobalFailClassIns",
-		"sipStatsGlobalFailClassOuts",
-		"sipStatsOtherClassesIns",
-		"sipStatsOtherClassesOuts"
-	};
-	int i, num = 14;
-	const char *func = __FUNCTION__;
-	register struct sip_snmp_handler *h;
-	register struct sip_snmp_obj *o;
-
-	h = f->new_func(sizeof(unsigned long));
-	if(!h) {
-		LOG(L_ERR, "%s: Error creating handler\n", func);
-		return -1;
-	}
-	o = h->sip_obj;
-	o->type = SER_COUNTER;
-	*o->value.integer = 0;
-	o->val_len = sizeof(unsigned long);
-
-	h->on_get = sipStatusCodes_handler;
-	h->on_set = h->on_end = NULL;
-
-	for(i=0; i<num; i++) {
-		if(f->reg_func(objs[i], h) == -1) {
-			LOG(L_ERR, "%s: Error registering %s\n", func, objs[i]);
-			f->free_func(h);
-			return -1;
-		}
-	}
-
-	f->free_func(h);
-
-	return 0;}
-
-/* ########################## SNMP Handlers ######################### */
-
-/*** Handlers for sipSummaryStatsTable */
-static int collect_InReqs(struct sip_snmp_obj *o, enum handler_op op)
-{
-	register int i;
-	register struct stats_s *c;
-	register unsigned long t1, t2, t3, t4, t5;
-	const char *func = __FUNCTION__;
-
-	if(!global_stats || stats_segments == -1) {
-		LOG(L_ERR, "%s: Can't collect stats, they have not been initialized."
-			"Did you call init_stats()?\n", func);
-		return -1;
-	}
-
-	if(op != SER_GET) {
-		LOG(L_ERR, "%s: Invalid handler operation passed\n", func);
-		return -1;
-	}
-
-	if(!o->value.integer) {
-		o->value.integer = calloc(1, sizeof(unsigned long));
-		if(!o->value.integer) {
-			LOG(L_ERR, "%s: %s\n", func, strerror(errno));
-			return -1;
-		}
-	}
-
-	c = global_stats;
-	t1 = t2 = t3 = t4 = t5 = 0;
-	for(i=0; i<stats_segments; i++, c++) {
-		t1 += c->received_requests_inv;
-		t2 += c->received_requests_ack;
-		t3 += c->received_requests_cnc;
-		t4 += c->received_requests_bye;
-		t5 += c->received_requests_other;
-	}
-
-	*o->value.integer = t1 + t2 + t3 + t4 + t5; 
-	o->val_len = sizeof(unsigned long);
-	o->type = SER_COUNTER;
-	
-	return 0;
-}
-
-static int collect_OutReqs(struct sip_snmp_obj *o, enum handler_op op)
-{
-	register int i;
-	register struct stats_s *c;
-	register unsigned long t1, t2, t3, t4, t5;
-	const char *func = __FUNCTION__;
-
-	if(!global_stats || stats_segments == -1) {
-		LOG(L_ERR, "%s: Can't collect stats, they have not been initialized."
-			"Did you call init_stats()?\n", func);
-		return -1;
-	}
-
-	if(op != SER_GET) {
-		LOG(L_ERR, "%s: Invalid handler operation passed\n", func);
-		return -1;
-	}
-
-	if(!o->value.integer) {
-		o->value.integer = calloc(1, sizeof(unsigned long));
-		if(!o->value.integer) {
-			LOG(L_ERR, "%s: %s\n", func, strerror(errno));
-			return -1;
-		}
-	}
-
-	c = global_stats;
-	t1 = t2 = t3 = t4 = t5 = 0;
-	for(i=0; i<stats_segments; i++, c++) {
-		t1 += c->sent_requests_inv;
-		t2 += c->sent_requests_ack;
-		t3 += c->sent_requests_cnc;
-		t4 += c->sent_requests_bye;
-		t5 += c->sent_requests_other;
-	}
-
-	*o->value.integer = t1 + t2 + t3 + t4 + t5; 
-	o->val_len = sizeof(unsigned long);
-	o->type = SER_COUNTER;
-	
-	return 0;
-}
-
-static int collect_InResp(struct sip_snmp_obj *o, enum handler_op op)
-{
-	register int i;
-	register struct stats_s *c;
-	register unsigned long t1, t2, t3, t4, t5, t6, t7;
-	const char *func = __FUNCTION__;
-
-	if(!global_stats || stats_segments == -1) {
-		LOG(L_ERR, "%s: Can't collect stats, they have not been initialized."
-			"Did you call init_stats()?\n", func);
-		return -1;
-	}
-
-	if(op != SER_GET) {
-		LOG(L_ERR, "%s: Invalid handler operation passed\n", func);
-		return -1;
-	}
-
-	if(!o->value.integer) {
-		o->value.integer = calloc(1, sizeof(unsigned long));
-		if(!o->value.integer) {
-			LOG(L_ERR, "%s: %s\n", func, strerror(errno));
-			return -1;
-		}
-	}
-
-	c = global_stats;
-	t1 = t2 = t3 = t4 = t5 = t6 = t7 = 0;
-	for(i=0; i<stats_segments; i++, c++) {
-		t1 += c->received_responses_1;
-		t2 += c->received_responses_2;
-		t3 += c->received_responses_3;
-		t4 += c->received_responses_4;
-		t5 += c->received_responses_5;
-		t6 += c->received_responses_6;
-		t7 += c->received_responses_other;
-	}
-
-	*o->value.integer = t1 + t2 + t3 + t4 + t5 + t6 + t7; 
-	o->val_len = sizeof(unsigned long);
-	o->type = SER_COUNTER;
-	
-	return 0;
-}
-
-static int collect_OutResp(struct sip_snmp_obj *o, enum handler_op op)
-{
-	register int i;
-	register struct stats_s *c;
-	register unsigned long t1, t2, t3, t4, t5, t6, t7;
-	const char *func = __FUNCTION__;
-
-	if(!global_stats || stats_segments == -1) {
-		LOG(L_ERR, "%s: Can't collect stats, they have not been initialized\n",
-			func);
-		return -1;
-	}
-
-	if(op != SER_GET) {
-		LOG(L_ERR, "%s: Invalid handler operation passed\n", func);
-		return -1;
-	}
-
-	if(!o->value.integer) {
-		o->value.integer = calloc(1, sizeof(unsigned long));
-		if(!o->value.integer) {
-			LOG(L_ERR, "%s: %s\n", func, strerror(errno));
-			return -1;
-		}
-	}
-
-	c = global_stats;
-	t1 = t2 = t3 = t4 = t5 = t6 = t7 = 0;
-	for(i=0; i<stats_segments; i++, c++) {
-		t1 += c->sent_responses_1;
-		t2 += c->sent_responses_2;
-		t3 += c->sent_responses_3;
-		t4 += c->sent_responses_4;
-		t5 += c->sent_responses_5;
-		t6 += c->sent_responses_6;
-		/* XXX: Not in stats struct 
-		t7 += c->sent_responses_other;
-		*/
-	}
-
-	*o->value.integer = t1 + t2 + t3 + t4 + t5 + t6 + t7; 
-	o->val_len = sizeof(unsigned long);
-	o->type = SER_COUNTER;
-	
-	return 0;
-}
-
-/***** Handlers for sipMethodStatsTable ******/
-/* Collects the specified stat and puts the result in total. s defines
- * the starting point in the stats array, normally global_stats */
-#define collect_this_stat(stat, total, s) \
-	for(i=0; i<stats_segments; i++)	\
-		total += s++->stat;
-
-static int sipStatsMethod_handler(struct sip_snmp_obj *o, enum handler_op op)
-{
-	register struct stats_s *c;
-	register unsigned long total;
-	register int i;
-	const char *func = __FUNCTION__;
-
-	if(!o) {
-		LOG(L_ERR, "%s: Invalid sip SNMP object passed\n", func);
-		return -1;
-	}
-
-	if(!global_stats || stats_segments == -1) {
-		LOG(L_ERR, "%s: Can't collect stats, they have not been initialized\n",
-			func);
-		return -1;
-	}
-
-	if(op != SER_GET) {
-		LOG(L_ERR, "%s: Invalid handler operation passed\n", func);
-		return -1;
-	}
-
-	if(!o->value.integer) {
-		o->value.integer = calloc(1, sizeof(unsigned long));
-		if(!o->value.integer) {
-			LOG(L_ERR, "%s: %s\n", func, strerror(errno));
-			return -1;
-		}
-	}
-
-	c = global_stats;
-	total = 0;
-	switch(o->col) {
-		/* these definitions are taken from sipMethodStatsHandler */
-		case COLUMN_SIPSTATSINVITEINS: 
-			collect_this_stat(received_requests_inv, total, c);
-			break;
-		case COLUMN_SIPSTATSINVITEOUTS: 
-			collect_this_stat(sent_requests_inv, total, c);
-			break;
-		case COLUMN_SIPSTATSACKINS: 
-			collect_this_stat(received_requests_ack, total, c);
-			break;
-		case COLUMN_SIPSTATSACKOUTS: 
-			collect_this_stat(sent_requests_ack, total, c);
-			break;
-		case COLUMN_SIPSTATSBYEINS: 
-			collect_this_stat(received_requests_bye, total, c);
-			break;
-		case COLUMN_SIPSTATSBYEOUTS: 
-			collect_this_stat(sent_requests_bye, total, c);
-			break;
-		case COLUMN_SIPSTATSCANCELINS: 
-			collect_this_stat(received_requests_cnc, total, c);
-			break;
-		case COLUMN_SIPSTATSCANCELOUTS: 
-			collect_this_stat(sent_requests_cnc, total, c);
-			break;
-		/* ser doesn't have notion for these. We don't
-		 * register them with snmp. Here just as remainder */
-#if 0
-		case COLUMN_SIPSTATSOPTIONSINS:
-		case COLUMN_SIPSTATSOPTIONSOUTS:
-		case COLUMN_SIPSTATSREGISTERINS:
-		case COLUMN_SIPSTATSREGISTEROUTS:
-		case COLUMN_SIPSTATSINFOINS:
-		case COLUMN_SIPSTATSINFOOUTS:
-			break;
-#endif
-	}
-
-	*o->value.integer = total;
-	o->val_len = sizeof(unsigned long);
-	o->type = SER_COUNTER;
-
-	return 0;
-}
-
-static int sipStatusCodes_handler(struct sip_snmp_obj *o, enum handler_op op)
-{
-	register struct stats_s *c;
-	register unsigned long total;
-	register int i;
-	const char *func = __FUNCTION__;
-
-	if(!o) {
-		LOG(L_ERR, "%s: Invalid sip SNMP object passed\n", func);
-		return -1;
-	}
-
-	if(!global_stats || stats_segments == -1) {
-		LOG(L_ERR, "%s: Can't collect stats, they have not been initialized\n",
-			func);
-		return -1;
-	}
-
-	if(op != SER_GET) {
-		LOG(L_ERR, "%s: Invalid handler operation passed\n", func);
-		return -1;
-	}
-
-	if(!o->value.integer) {
-		o->value.integer = calloc(1, sizeof(unsigned long));
-		if(!o->value.integer) {
-			LOG(L_ERR, "%s: %s\n", func, strerror(errno));
-			return -1;
-		}
-	}
-
-	c = global_stats;
-	total = 0;
-	switch(o->col) {
-		case COLUMN_SIPSTATSINFOCLASSINS:
-			collect_this_stat(received_responses_1, total, c);
-			break;
-		case COLUMN_SIPSTATSINFOCLASSOUTS:
-			collect_this_stat(sent_responses_1, total, c);
-			break;
-		case COLUMN_SIPSTATSSUCCESSCLASSINS:
-			collect_this_stat(received_responses_2, total, c);
-			break;
-		case COLUMN_SIPSTATSSUCCESSCLASSOUTS:
-			collect_this_stat(sent_responses_2, total, c);
-			break;
-		case COLUMN_SIPSTATSREDIRCLASSINS:
-			collect_this_stat(received_responses_3, total, c);
-			break;
-		case COLUMN_SIPSTATSREDIRCLASSOUTS:
-			collect_this_stat(sent_responses_3, total, c);
-			break;
-		case COLUMN_SIPSTATSREQFAILCLASSINS:
-			collect_this_stat(received_responses_4, total, c);
-			break;
-		case COLUMN_SIPSTATSREQFAILCLASSOUTS:
-			collect_this_stat(sent_responses_4, total, c);
-			break;
-		case COLUMN_SIPSTATSSERVERFAILCLASSINS:
-			collect_this_stat(received_responses_5, total, c);
-			break;
-		case COLUMN_SIPSTATSSERVERFAILCLASSOUTS:
-			collect_this_stat(sent_responses_5, total, c);
-			break;
-		case COLUMN_SIPSTATSGLOBALFAILCLASSINS:
-			collect_this_stat(received_responses_6, total, c);
-			break;
-		case COLUMN_SIPSTATSGLOBALFAILCLASSOUTS:
-			collect_this_stat(sent_responses_6, total, c);
-			break;
-		case COLUMN_SIPSTATSOTHERCLASSESINS:
-			collect_this_stat(received_responses_other, total, c);
-			break;
-		case COLUMN_SIPSTATSOTHERCLASSESOUTS:
-			/* FIXME: For some reason this is not defined in
-			 * struct stats_s... */
-			/* collect_this_stat(sent_responses_other, total, c); */
-			total = 0;
-			break;
-	}
-
-	*o->value.integer = total;
-	o->val_len = sizeof(unsigned long);
-	o->type = SER_COUNTER;
-
-	return 0;
-}
-
-#endif

Deleted: ser/trunk/stats.h
===================================================================
--- ser/trunk/stats.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/stats.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,174 +0,0 @@
-/*
- * $Id: stats.h,v 1.10 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- */
-
-
-#ifndef stats_h
-#define stats_h
-
-#include <ctype.h>
-#include <sys/mman.h>
-#include <sys/fcntl.h>
-#include <sys/time.h>
-#include <time.h>
-#include <sys/utsname.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-
-
-#define _update_request( method, dir )			\
-	do{ if (stat_file!=NULL) switch( method ) {	\
-          	case METHOD_INVITE: stats->dir##_requests_inv++; break;	\
-          	case METHOD_ACK: stats->dir##_requests_ack++; break;		\
-          	case METHOD_CANCEL: stats->dir##_requests_cnc++; break;	\
-          	case METHOD_BYE: stats->dir##_requests_bye++; break;		\
-          	case METHOD_OTHER: stats->dir##_requests_other++; break;	\
-          	default: LOG(L_ERR, "ERROR: unknown method in rq stats (%s)\n", \
-							#dir);	\
-		}	\
-	}while(0)
-
-
-/*
-#define update_received_request( method ) _update_request( method, received )
-#define update_sent_request( method ) _update_request( method, sent )
-
-#define update_received_response( statusclass ) \
-									_update_response( statusclass, received )
-#define update_sent_response( statusclass ) \
-									_update_response( statusclass, sent )
-#define update_received_drops	{  stats->received_drops++; }
-#define update_fail_on_send	{  stats->failed_on_send++; }
-*/
-
-#define         _statusline(class, dir )\
-						case class: stats->dir##_responses_##class++; break;
-
-/* FIXME: Don't have case for _other (see received_responses_other) */
-#define _update_response( statusclass, dir )		\
-        do{ if (stat_file!=NULL)                          \
-                switch( statusclass ) {                 \
-                        _statusline(1, dir)                   \
-                        _statusline(2, dir)                   \
-                        _statusline(3, dir)                   \
-                        _statusline(4, dir)                   \
-                        _statusline(5, dir)                   \
-                        _statusline(6, dir)                   \
-                        default: LOG(L_INFO, "ERROR: unusual status code"\
-										 " received in stats (%s)\n", #dir); \
-                }       \
-        }while(0)
-
-#ifdef STATS
-#	define STATS_RX_REQUEST(method) _update_request(method, received)
-#	define STATS_TX_REQUEST(method) _update_request(method, sent )
-#	define STATS_RX_RESPONSE(class) _update_response( class, received )
-#	define STATS_TX_RESPONSE(class) _update_response( class, sent )
-#	define STATS_RX_DROPS {  stats->received_drops++; }
-#	define STATS_TX_DROPS {  stats->failed_on_send++; }
-#else
-#	define STATS_RX_REQUEST(method)
-#	define STATS_TX_REQUEST(method)
-#	define STATS_RX_RESPONSE(class) 
-#	define STATS_TX_RESPONSE(class) 
-#	define STATS_RX_DROPS 
-#	define STATS_TX_DROPS 
-#endif
-
-#ifdef STATS
-
-
-struct stats_s {
-
-	unsigned int	process_index;
-	pid_t		pid;
-	time_t		start_time;
-
-	unsigned long 
-
-	/* received packets */
-
-	received_requests_inv, 		/* received_requests */
-	received_requests_ack,
-	received_requests_cnc,
-	received_requests_bye,
-	received_requests_other,
-
-	received_responses_1, 		/* received_responses */
-	received_responses_2,
-	received_responses_3,
-	received_responses_4,
-	received_responses_5,
-	received_responses_6,
-	received_responses_other,
-
-	received_drops,	/* all messages we received and did not process
-					   successfully; reasons include SIP sanity checks 
-					   (missing Vias, neither request nor response, 
-					   failed parsing), ser errors (malloc, action
-					   failure)
-					*/
-
-	/* sent */
-
-	/* sent_requests */
-	sent_requests_inv,
-	sent_requests_ack,
-	sent_requests_cnc,
-	sent_requests_bye,
-	sent_requests_other,
-
-	/* sent responses */
-	sent_responses_1,
-	sent_responses_2,
-	sent_responses_3,
-	sent_responses_4,
-	sent_responses_5,
-	sent_responses_6,
-	/* FIXME: Don't want sent_responses_other?? */
-
-	processed_requests,
-	processed_responses,
-	acc_req_time,
-	acc_res_time,
-
-	failed_on_send;			
-};
-
-extern struct stats_s *stats;
-extern char *stat_file;
-
-int init_stats( int nr_of_processes );
-void setstats( int child_index );
-int dump_all_statistic();
-int dump_statistic(FILE *fp, struct stats_s *istats, int printheader);
-/* Registers handlers with SNMP module */
-int stats_register(); 
-
-#endif
-#endif

Deleted: ser/trunk/str.h
===================================================================
--- ser/trunk/str.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/str.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,43 +0,0 @@
-/*
- * $Id: str.h,v 1.4.2.1 2005/11/17 03:56:02 sobomax Exp $
- *
- * 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 at 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
- */
-
-
-#ifndef str_h
-#define str_h
-
-
-struct _str{
-	char* s; /*string*/
-	int len; /*string len*/
-};
-
-typedef struct _str str;
-
-#define STR_STATIC_INIT(v) {(v), sizeof(v) - 1}
-#define STR_NULL {NULL, 0}
-
-#endif

Deleted: ser/trunk/tags
===================================================================
--- ser/trunk/tags	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tags	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,11497 +0,0 @@
-!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
-!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/
-!_TAG_PROGRAM_AUTHOR	Darren Hiebert	/dhiebert at users.sourceforge.net/
-!_TAG_PROGRAM_NAME	Exuberant Ctags	//
-!_TAG_PROGRAM_URL	http://ctags.sourceforge.net	/official site/
-!_TAG_PROGRAM_VERSION	5.5.4	//
-AAAAcctMessageType	modules/acc/diam_message.h	/^} AAAAcctMessageType;$/;"	t
-AAAAcctMessageType	modules/auth_diameter/diameter_msg.h	/^} AAAAcctMessageType;$/;"	t
-AAAAddAVPToMessage	modules/acc/diam_avp.c	/^AAAReturnCode  AAAAddAVPToMessage($/;"	f
-AAAAddAVPToMessage	modules/auth_diameter/avp.c	/^AAAReturnCode  AAAAddAVPToMessage($/;"	f
-AAAApplicationId	modules/acc/diam_message.h	/^typedef unsigned int    AAAApplicationId;$/;"	t
-AAAApplicationId	modules/auth_diameter/diameter_msg.h	/^typedef unsigned int    AAAApplicationId;$/;"	t
-AAAApplicationRef	modules/acc/diam_message.h	/^typedef void*           AAAApplicationRef;$/;"	t
-AAAApplicationRef	modules/auth_diameter/diameter_msg.h	/^typedef void*           AAAApplicationRef;$/;"	t
-AAABuildMsgBuffer	modules/acc/diam_message.c	/^AAAReturnCode AAABuildMsgBuffer( AAAMessage *msg )$/;"	f
-AAABuildMsgBuffer	modules/auth_diameter/message.c	/^AAAReturnCode AAABuildMsgBuffer( AAAMessage *msg )$/;"	f
-AAACloneAVP	modules/acc/diam_avp.c	/^AAA_AVP* AAACloneAVP( AAA_AVP *avp , unsigned char clone_data)$/;"	f
-AAACloneAVP	modules/auth_diameter/avp.c	/^AAA_AVP* AAACloneAVP( AAA_AVP *avp , unsigned char clone_data)$/;"	f
-AAACommandCode	modules/acc/diam_message.h	/^typedef unsigned int    AAACommandCode;$/;"	t
-AAACommandCode	modules/auth_diameter/diameter_msg.h	/^typedef unsigned int    AAACommandCode;$/;"	t
-AAAConvertAVPToString	modules/acc/diam_avp.c	/^char*  AAAConvertAVPToString(AAA_AVP *avp, char *dest, unsigned int destLen)$/;"	f
-AAAConvertAVPToString	modules/auth_diameter/avp.c	/^char*  AAAConvertAVPToString(AAA_AVP *avp, char *dest, unsigned int destLen)$/;"	f
-AAACreateAVP	modules/acc/diam_avp.c	/^AAA_AVP*  AAACreateAVP($/;"	f
-AAACreateAVP	modules/auth_diameter/avp.c	/^AAA_AVP*  AAACreateAVP($/;"	f
-AAACreateAndAddAVPToMessage	modules/acc/diam_message.h	336;"	d
-AAACreateAndAddAVPToMessage	modules/auth_diameter/diameter_msg.h	341;"	d
-AAAExtensionId	modules/acc/diam_message.h	/^typedef unsigned int    AAAExtensionId;$/;"	t
-AAAExtensionId	modules/auth_diameter/diameter_msg.h	/^typedef unsigned int    AAAExtensionId;$/;"	t
-AAAFindMatchingAVP	modules/acc/diam_avp.c	/^AAA_AVP  *AAAFindMatchingAVP($/;"	f
-AAAFindMatchingAVP	modules/auth_diameter/avp.c	/^AAA_AVP  *AAAFindMatchingAVP($/;"	f
-AAAFreeAVP	modules/acc/diam_avp.c	/^AAAReturnCode  AAAFreeAVP(AAA_AVP **avp)$/;"	f
-AAAFreeAVP	modules/auth_diameter/avp.c	/^AAAReturnCode  AAAFreeAVP(AAA_AVP **avp)$/;"	f
-AAAFreeMessage	modules/acc/diam_message.c	/^AAAReturnCode  AAAFreeMessage(AAAMessage **msg)$/;"	f
-AAAFreeMessage	modules/auth_diameter/message.c	/^AAAReturnCode  AAAFreeMessage(AAAMessage **msg)$/;"	f
-AAAGetFirstAVP	modules/acc/diam_avp.c	/^AAA_AVP*  AAAGetFirstAVP(AAA_AVP_LIST *avpList){$/;"	f
-AAAGetFirstAVP	modules/auth_diameter/avp.c	/^AAA_AVP*  AAAGetFirstAVP(AAA_AVP_LIST *avpList){$/;"	f
-AAAGetLastAVP	modules/acc/diam_avp.c	/^AAA_AVP*  AAAGetLastAVP(AAA_AVP_LIST *avpList)$/;"	f
-AAAGetLastAVP	modules/auth_diameter/avp.c	/^AAA_AVP*  AAAGetLastAVP(AAA_AVP_LIST *avpList)$/;"	f
-AAAGetNextAVP	modules/acc/diam_avp.c	/^AAA_AVP*  AAAGetNextAVP(AAA_AVP *avp)$/;"	f
-AAAGetNextAVP	modules/auth_diameter/avp.c	/^AAA_AVP*  AAAGetNextAVP(AAA_AVP *avp)$/;"	f
-AAAGetPrevAVP	modules/acc/diam_avp.c	/^AAA_AVP*  AAAGetPrevAVP(AAA_AVP *avp)$/;"	f
-AAAGetPrevAVP	modules/auth_diameter/avp.c	/^AAA_AVP*  AAAGetPrevAVP(AAA_AVP *avp)$/;"	f
-AAAInMessage	modules/acc/diam_message.c	/^AAAMessage* AAAInMessage(AAACommandCode cmdCode, $/;"	f
-AAAInMessage	modules/auth_diameter/message.c	/^AAAMessage* AAAInMessage(AAACommandCode commandCode, AAAApplicationId appId)$/;"	f
-AAAMessage	modules/acc/diam_message.h	/^} AAAMessage;$/;"	t
-AAAMessage	modules/auth_diameter/diameter_msg.h	/^} AAAMessage;$/;"	t
-AAAMsgFlag	modules/acc/diam_message.h	/^typedef unsigned char   AAAMsgFlag;$/;"	t
-AAAMsgFlag	modules/auth_diameter/diameter_msg.h	/^typedef unsigned char   AAAMsgFlag;$/;"	t
-AAAMsgIdentifier	modules/acc/diam_message.h	/^typedef unsigned int    AAAMsgIdentifier;$/;"	t
-AAAMsgIdentifier	modules/auth_diameter/diameter_msg.h	/^typedef unsigned int    AAAMsgIdentifier;$/;"	t
-AAAPrintMessage	modules/acc/diam_message.c	/^void AAAPrintMessage( AAAMessage *msg)$/;"	f
-AAAPrintMessage	modules/auth_diameter/message.c	/^void AAAPrintMessage( AAAMessage *msg)$/;"	f
-AAARemoveAVPFromMessage	modules/acc/diam_avp.c	/^AAAReturnCode  AAARemoveAVPFromMessage($/;"	f
-AAARemoveAVPFromMessage	modules/auth_diameter/avp.c	/^AAAReturnCode  AAARemoveAVPFromMessage($/;"	f
-AAAResultCode	modules/acc/diam_message.h	/^} AAAResultCode;$/;"	t
-AAAResultCode	modules/auth_diameter/diameter_msg.h	/^} AAAResultCode;$/;"	t
-AAAReturnCode	modules/acc/diam_message.h	/^} AAAReturnCode;$/;"	t
-AAAReturnCode	modules/auth_diameter/diameter_msg.h	/^} AAAReturnCode;$/;"	t
-AAASearchType	modules/acc/diam_message.h	/^} AAASearchType;$/;"	t
-AAASearchType	modules/auth_diameter/diameter_msg.h	/^} AAASearchType;$/;"	t
-AAASessionId	modules/acc/diam_message.h	/^typedef str             AAASessionId;$/;"	t
-AAASessionId	modules/auth_diameter/diameter_msg.h	/^typedef str             AAASessionId;$/;"	t
-AAASetMessageResultCode	modules/acc/diam_message.c	/^AAAResultCode  AAASetMessageResultCode($/;"	f
-AAASetMessageResultCode	modules/auth_diameter/message.c	/^AAAReturnCode  AAASetMessageResultCode($/;"	f
-AAATranslateMessage	modules/acc/diam_message.c	/^AAAMessage* AAATranslateMessage( unsigned char* source, unsigned int sourceLen,$/;"	f
-AAATranslateMessage	modules/auth_diameter/message.c	/^AAAMessage* AAATranslateMessage( unsigned char* source, unsigned int sourceLen,$/;"	f
-AAAValue	modules/acc/diam_message.h	/^typedef unsigned int    AAAValue;$/;"	t
-AAAValue	modules/auth_diameter/diameter_msg.h	/^typedef unsigned int    AAAValue;$/;"	t
-AAAVendorId	modules/acc/diam_message.h	/^typedef unsigned int    AAAVendorId;$/;"	t
-AAAVendorId	modules/auth_diameter/diameter_msg.h	/^typedef unsigned int    AAAVendorId;$/;"	t
-AAA_ACCT_EVENT	modules/acc/diam_message.h	/^	AAA_ACCT_EVENT = 1,$/;"	e
-AAA_ACCT_EVENT	modules/auth_diameter/diameter_msg.h	/^	AAA_ACCT_EVENT = 1,$/;"	e
-AAA_ACCT_INTERIM	modules/acc/diam_message.h	/^	AAA_ACCT_INTERIM = 3,$/;"	e
-AAA_ACCT_INTERIM	modules/auth_diameter/diameter_msg.h	/^	AAA_ACCT_INTERIM = 3,$/;"	e
-AAA_ACCT_START	modules/acc/diam_message.h	/^	AAA_ACCT_START = 2,$/;"	e
-AAA_ACCT_START	modules/auth_diameter/diameter_msg.h	/^	AAA_ACCT_START = 2,$/;"	e
-AAA_ACCT_STOP	modules/acc/diam_message.h	/^	AAA_ACCT_STOP = 4$/;"	e
-AAA_ACCT_STOP	modules/auth_diameter/diameter_msg.h	/^	AAA_ACCT_STOP = 4$/;"	e
-AAA_APPLICATION_UNSUPPORTED	modules/acc/diam_message.h	/^	AAA_APPLICATION_UNSUPPORTED   = 3007,$/;"	e
-AAA_APPLICATION_UNSUPPORTED	modules/auth_diameter/diameter_msg.h	/^	AAA_APPLICATION_UNSUPPORTED   = 3007,$/;"	e
-AAA_APP_DIAMETER_BASE_ACC	modules/acc/diam_message.h	/^	AAA_APP_DIAMETER_BASE_ACC    = 3,$/;"	e
-AAA_APP_DIAMETER_BASE_ACC	modules/auth_diameter/diameter_msg.h	/^	AAA_APP_DIAMETER_BASE_ACC    = 3,$/;"	e
-AAA_APP_DIAMETER_COMMON_MSG	modules/acc/diam_message.h	/^	AAA_APP_DIAMETER_COMMON_MSG  = 0,$/;"	e
-AAA_APP_DIAMETER_COMMON_MSG	modules/auth_diameter/diameter_msg.h	/^	AAA_APP_DIAMETER_COMMON_MSG  = 0,$/;"	e
-AAA_APP_IDS	modules/acc/diam_message.h	/^}AAA_APP_IDS;$/;"	t
-AAA_APP_IDS	modules/auth_diameter/diameter_msg.h	/^}AAA_APP_IDS;$/;"	t
-AAA_APP_MOBILE_IP	modules/acc/diam_message.h	/^	AAA_APP_MOBILE_IP            = 2,$/;"	e
-AAA_APP_MOBILE_IP	modules/auth_diameter/diameter_msg.h	/^	AAA_APP_MOBILE_IP            = 2,$/;"	e
-AAA_APP_NASREQ	modules/acc/diam_message.h	/^	AAA_APP_NASREQ               = 1,$/;"	e
-AAA_APP_NASREQ	modules/auth_diameter/diameter_msg.h	/^	AAA_APP_NASREQ               = 1,$/;"	e
-AAA_APP_RELAY	modules/acc/diam_message.h	/^	AAA_APP_RELAY                = 0xffffffff,$/;"	e
-AAA_APP_RELAY	modules/auth_diameter/diameter_msg.h	/^	AAA_APP_RELAY                = 0xffffffff,$/;"	e
-AAA_AUTHENTICATION_REJECTED	modules/acc/diam_message.h	/^	AAA_AUTHENTICATION_REJECTED   = 4001,$/;"	e
-AAA_AUTHENTICATION_REJECTED	modules/auth_diameter/diameter_msg.h	/^	AAA_AUTHENTICATION_REJECTED   = 4001,$/;"	e
-AAA_AUTHORIZATION_REJECTED	modules/acc/diam_message.h	/^	AAA_AUTHORIZATION_REJECTED    = 5003,$/;"	e
-AAA_AUTHORIZATION_REJECTED	modules/auth_diameter/diameter_msg.h	/^	AAA_AUTHORIZATION_REJECTED    = 5003,$/;"	e
-AAA_AUTHORIZED	modules/auth_diameter/defs.h	18;"	d
-AAA_AVP	modules/acc/diam_message.h	/^} AAA_AVP;$/;"	t
-AAA_AVP	modules/auth_diameter/diameter_msg.h	/^} AAA_AVP;$/;"	t
-AAA_AVPCode	modules/acc/diam_message.h	/^typedef unsigned int    AAA_AVPCode;$/;"	t
-AAA_AVPCode	modules/auth_diameter/diameter_msg.h	/^typedef unsigned int    AAA_AVPCode;$/;"	t
-AAA_AVPCodeNr	modules/acc/diam_message.h	/^}AAA_AVPCodeNr;$/;"	t
-AAA_AVPCodeNr	modules/auth_diameter/diameter_msg.h	/^}AAA_AVPCodeNr;$/;"	t
-AAA_AVPDataType	modules/acc/diam_message.h	/^} AAA_AVPDataType;$/;"	t
-AAA_AVPDataType	modules/auth_diameter/diameter_msg.h	/^} AAA_AVPDataType;$/;"	t
-AAA_AVPFlag	modules/acc/diam_message.h	/^} AAA_AVPFlag;$/;"	t
-AAA_AVPFlag	modules/auth_diameter/diameter_msg.h	/^} AAA_AVPFlag;$/;"	t
-AAA_AVP_ADDRESS_TYPE	modules/acc/diam_message.h	/^	AAA_AVP_ADDRESS_TYPE,$/;"	e
-AAA_AVP_ADDRESS_TYPE	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_ADDRESS_TYPE,$/;"	e
-AAA_AVP_DATA_TYPE	modules/acc/diam_message.h	/^	AAA_AVP_DATA_TYPE,$/;"	e
-AAA_AVP_DATA_TYPE	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_DATA_TYPE,$/;"	e
-AAA_AVP_FLAG_END_TO_END_ENCRYPT	modules/acc/diam_message.h	/^	AAA_AVP_FLAG_END_TO_END_ENCRYPT = 0x20,$/;"	e
-AAA_AVP_FLAG_END_TO_END_ENCRYPT	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_FLAG_END_TO_END_ENCRYPT = 0x20,$/;"	e
-AAA_AVP_FLAG_MANDATORY	modules/acc/diam_message.h	/^	AAA_AVP_FLAG_MANDATORY          = 0x40,$/;"	e
-AAA_AVP_FLAG_MANDATORY	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_FLAG_MANDATORY          = 0x40,$/;"	e
-AAA_AVP_FLAG_NONE	modules/acc/diam_message.h	/^	AAA_AVP_FLAG_NONE               = 0x00,$/;"	e
-AAA_AVP_FLAG_NONE	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_FLAG_NONE               = 0x00,$/;"	e
-AAA_AVP_FLAG_RESERVED	modules/acc/diam_message.h	/^	AAA_AVP_FLAG_RESERVED           = 0x1F,$/;"	e
-AAA_AVP_FLAG_RESERVED	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_FLAG_RESERVED           = 0x1F,$/;"	e
-AAA_AVP_FLAG_VENDOR_SPECIFIC	modules/acc/diam_message.h	/^	AAA_AVP_FLAG_VENDOR_SPECIFIC    = 0x80,$/;"	e
-AAA_AVP_FLAG_VENDOR_SPECIFIC	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_FLAG_VENDOR_SPECIFIC    = 0x80,$/;"	e
-AAA_AVP_INTEGER32_TYPE	modules/acc/diam_message.h	/^	AAA_AVP_INTEGER32_TYPE,$/;"	e
-AAA_AVP_INTEGER32_TYPE	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_INTEGER32_TYPE,$/;"	e
-AAA_AVP_INTEGER64_TYPE	modules/acc/diam_message.h	/^	AAA_AVP_INTEGER64_TYPE,$/;"	e
-AAA_AVP_INTEGER64_TYPE	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_INTEGER64_TYPE,$/;"	e
-AAA_AVP_LIST	modules/acc/diam_message.h	/^} AAA_AVP_LIST;$/;"	t
-AAA_AVP_LIST	modules/auth_diameter/diameter_msg.h	/^} AAA_AVP_LIST;$/;"	t
-AAA_AVP_NOT_ALLOWED	modules/acc/diam_message.h	/^	AAA_AVP_NOT_ALLOWED           = 5008,$/;"	e
-AAA_AVP_NOT_ALLOWED	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_NOT_ALLOWED           = 5008,$/;"	e
-AAA_AVP_OCCURS_TOO_MANY_TIMES	modules/acc/diam_message.h	/^	AAA_AVP_OCCURS_TOO_MANY_TIMES = 5009,$/;"	e
-AAA_AVP_OCCURS_TOO_MANY_TIMES	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_OCCURS_TOO_MANY_TIMES = 5009,$/;"	e
-AAA_AVP_STRING_TYPE	modules/acc/diam_message.h	/^	AAA_AVP_STRING_TYPE,$/;"	e
-AAA_AVP_STRING_TYPE	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_STRING_TYPE,$/;"	e
-AAA_AVP_TIME_TYPE	modules/acc/diam_message.h	/^	AAA_AVP_TIME_TYPE,$/;"	e
-AAA_AVP_TIME_TYPE	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_TIME_TYPE,$/;"	e
-AAA_AVP_UNSUPPORTED	modules/acc/diam_message.h	/^	AAA_AVP_UNSUPPORTED           = 5001,$/;"	e
-AAA_AVP_UNSUPPORTED	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_UNSUPPORTED           = 5001,$/;"	e
-AAA_BACKWARD_SEARCH	modules/acc/diam_message.h	/^	AAA_BACKWARD_SEARCH$/;"	e
-AAA_BACKWARD_SEARCH	modules/auth_diameter/diameter_msg.h	/^	AAA_BACKWARD_SEARCH$/;"	e
-AAA_CHALENGE	modules/auth_diameter/defs.h	17;"	d
-AAA_COMMAND_UNSUPPORTED	modules/acc/diam_message.h	/^	AAA_COMMAND_UNSUPPORTED       = 3001,$/;"	e
-AAA_COMMAND_UNSUPPORTED	modules/auth_diameter/diameter_msg.h	/^	AAA_COMMAND_UNSUPPORTED       = 3001,$/;"	e
-AAA_CONN_CLOSED	modules/acc/diam_tcp.h	37;"	d
-AAA_CONN_CLOSED	modules/auth_diameter/defs.h	23;"	d
-AAA_CONTRADICTING_AVPS	modules/acc/diam_message.h	/^	AAA_CONTRADICTING_AVPS        = 5007,$/;"	e
-AAA_CONTRADICTING_AVPS	modules/auth_diameter/diameter_msg.h	/^	AAA_CONTRADICTING_AVPS        = 5007,$/;"	e
-AAA_DIAMETER	modules/acc/diam_message.h	/^		AAA_DIAMETER$/;"	e	enum:avp::<anonymous>
-AAA_DIAMETER	modules/auth_diameter/diameter_msg.h	/^		AAA_DIAMETER$/;"	e	enum:avp::<anonymous>
-AAA_ELECTION_LOST	modules/acc/diam_message.h	/^	AAA_ELECTION_LOST             = 4003,$/;"	e
-AAA_ELECTION_LOST	modules/auth_diameter/diameter_msg.h	/^	AAA_ELECTION_LOST             = 4003,$/;"	e
-AAA_ERROR	modules/acc/diam_tcp.h	36;"	d
-AAA_ERROR	modules/auth_diameter/defs.h	22;"	d
-AAA_ERR_ALREADY_INIT	modules/acc/diam_message.h	/^	AAA_ERR_ALREADY_INIT,$/;"	e
-AAA_ERR_ALREADY_INIT	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_ALREADY_INIT,$/;"	e
-AAA_ERR_ALREADY_REGISTERED	modules/acc/diam_message.h	/^	AAA_ERR_ALREADY_REGISTERED,$/;"	e
-AAA_ERR_ALREADY_REGISTERED	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_ALREADY_REGISTERED,$/;"	e
-AAA_ERR_CANNOT_REGISTER	modules/acc/diam_message.h	/^	AAA_ERR_CANNOT_REGISTER,$/;"	e
-AAA_ERR_CANNOT_REGISTER	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_CANNOT_REGISTER,$/;"	e
-AAA_ERR_CANNOT_SEND_MSG	modules/acc/diam_message.h	/^	AAA_ERR_CANNOT_SEND_MSG,$/;"	e
-AAA_ERR_CANNOT_SEND_MSG	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_CANNOT_SEND_MSG,$/;"	e
-AAA_ERR_CONFIG	modules/acc/diam_message.h	/^	AAA_ERR_CONFIG,$/;"	e
-AAA_ERR_CONFIG	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_CONFIG,$/;"	e
-AAA_ERR_FAILURE	modules/acc/diam_message.h	/^	AAA_ERR_FAILURE   = -1,         \/* unspecified failure during an AAA op. *\/$/;"	e
-AAA_ERR_FAILURE	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_FAILURE   = -1,         \/* unspecified failure during an AAA op. *\/$/;"	e
-AAA_ERR_MISSING_AVP	modules/acc/diam_message.h	/^	AAA_ERR_MISSING_AVP,$/;"	e
-AAA_ERR_MISSING_AVP	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_MISSING_AVP,$/;"	e
-AAA_ERR_NETWORK_ERROR	modules/acc/diam_message.h	/^	AAA_ERR_NETWORK_ERROR,$/;"	e
-AAA_ERR_NETWORK_ERROR	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_NETWORK_ERROR,$/;"	e
-AAA_ERR_NOMEM	modules/acc/diam_message.h	/^	AAA_ERR_NOMEM,                  \/* op. caused memory to be exhausted *\/$/;"	e
-AAA_ERR_NOMEM	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_NOMEM,                  \/* op. caused memory to be exhausted *\/$/;"	e
-AAA_ERR_NOT_FOUND	modules/acc/diam_message.h	/^	AAA_ERR_NOT_FOUND = -2,         \/* handle or id not found *\/$/;"	e
-AAA_ERR_NOT_FOUND	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_NOT_FOUND = -2,         \/* handle or id not found *\/$/;"	e
-AAA_ERR_NOT_INITIALIZED	modules/acc/diam_message.h	/^	AAA_ERR_NOT_INITIALIZED,$/;"	e
-AAA_ERR_NOT_INITIALIZED	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_NOT_INITIALIZED,$/;"	e
-AAA_ERR_PARAMETER	modules/acc/diam_message.h	/^	AAA_ERR_PARAMETER,$/;"	e
-AAA_ERR_PARAMETER	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_PARAMETER,$/;"	e
-AAA_ERR_PROTO	modules/acc/diam_message.h	/^	AAA_ERR_PROTO,                  \/*  AAA protocol error *\/$/;"	e
-AAA_ERR_PROTO	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_PROTO,                  \/*  AAA protocol error *\/$/;"	e
-AAA_ERR_SECURITY	modules/acc/diam_message.h	/^	AAA_ERR_SECURITY,$/;"	e
-AAA_ERR_SECURITY	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_SECURITY,$/;"	e
-AAA_ERR_SUCCESS	modules/acc/diam_message.h	/^	AAA_ERR_SUCCESS   =  0,         \/* AAA operation succeeded *\/$/;"	e
-AAA_ERR_SUCCESS	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_SUCCESS   =  0,         \/* AAA operation succeeded *\/$/;"	e
-AAA_ERR_TIMED_OUT	modules/acc/diam_message.h	/^	AAA_ERR_TIMED_OUT,$/;"	e
-AAA_ERR_TIMED_OUT	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_TIMED_OUT,$/;"	e
-AAA_ERR_UNKNOWN_CMD	modules/acc/diam_message.h	/^	AAA_ERR_UNKNOWN_CMD,$/;"	e
-AAA_ERR_UNKNOWN_CMD	modules/auth_diameter/diameter_msg.h	/^	AAA_ERR_UNKNOWN_CMD,$/;"	e
-AAA_FORWARD_SEARCH	modules/acc/diam_message.h	/^	AAA_FORWARD_SEARCH = 0,$/;"	e
-AAA_FORWARD_SEARCH	modules/auth_diameter/diameter_msg.h	/^	AAA_FORWARD_SEARCH = 0,$/;"	e
-AAA_INVALID_AVP_BITS	modules/acc/diam_message.h	/^	AAA_INVALID_AVP_BITS          = 3009,$/;"	e
-AAA_INVALID_AVP_BITS	modules/auth_diameter/diameter_msg.h	/^	AAA_INVALID_AVP_BITS          = 3009,$/;"	e
-AAA_INVALID_AVP_BIT_COMBO	modules/acc/diam_message.h	/^	AAA_INVALID_AVP_BIT_COMBO     = 5016,$/;"	e
-AAA_INVALID_AVP_BIT_COMBO	modules/auth_diameter/diameter_msg.h	/^	AAA_INVALID_AVP_BIT_COMBO     = 5016,$/;"	e
-AAA_INVALID_AVP_VALUE	modules/acc/diam_message.h	/^	AAA_INVALID_AVP_VALUE         = 5004,$/;"	e
-AAA_INVALID_AVP_VALUE	modules/auth_diameter/diameter_msg.h	/^	AAA_INVALID_AVP_VALUE         = 5004,$/;"	e
-AAA_INVALID_BIT_IN_HEADER	modules/acc/diam_message.h	/^	AAA_INVALID_BIT_IN_HEADER     = 5013,$/;"	e
-AAA_INVALID_BIT_IN_HEADER	modules/auth_diameter/diameter_msg.h	/^	AAA_INVALID_BIT_IN_HEADER     = 5013,$/;"	e
-AAA_INVALID_HDR_BITS	modules/acc/diam_message.h	/^	AAA_INVALID_HDR_BITS          = 3008,$/;"	e
-AAA_INVALID_HDR_BITS	modules/auth_diameter/diameter_msg.h	/^	AAA_INVALID_HDR_BITS          = 3008,$/;"	e
-AAA_INVALID_MESSGE_LENGTH	modules/acc/diam_message.h	/^	AAA_INVALID_MESSGE_LENGTH     = 5015,$/;"	e
-AAA_INVALID_MESSGE_LENGTH	modules/auth_diameter/diameter_msg.h	/^	AAA_INVALID_MESSGE_LENGTH     = 5015,$/;"	e
-AAA_INVALIS_AVP_LENGTH	modules/acc/diam_message.h	/^	AAA_INVALIS_AVP_LENGTH        = 5014,$/;"	e
-AAA_INVALIS_AVP_LENGTH	modules/auth_diameter/diameter_msg.h	/^	AAA_INVALIS_AVP_LENGTH        = 5014,$/;"	e
-AAA_LOOP_DETECTED	modules/acc/diam_message.h	/^	AAA_LOOP_DETECTED             = 3005,$/;"	e
-AAA_LOOP_DETECTED	modules/auth_diameter/diameter_msg.h	/^	AAA_LOOP_DETECTED             = 3005,$/;"	e
-AAA_MISSING_AVP	modules/acc/diam_message.h	/^	AAA_MISSING_AVP               = 5005,$/;"	e
-AAA_MISSING_AVP	modules/auth_diameter/diameter_msg.h	/^	AAA_MISSING_AVP               = 5005,$/;"	e
-AAA_MSG_HDR_SIZE	modules/acc/diam_message.h	52;"	d
-AAA_MSG_HDR_SIZE	modules/auth_diameter/diameter_msg.h	52;"	d
-AAA_MUTI_ROUND_AUTH	modules/acc/diam_message.h	/^	AAA_MUTI_ROUND_AUTH           = 1001,$/;"	e
-AAA_MUTI_ROUND_AUTH	modules/auth_diameter/diameter_msg.h	/^	AAA_MUTI_ROUND_AUTH           = 1001,$/;"	e
-AAA_NOT_AUTHORIZED	modules/auth_diameter/defs.h	19;"	d
-AAA_NO_COMMON_APPLICATION	modules/acc/diam_message.h	/^	AAA_NO_COMMON_APPLICATION     = 5010,$/;"	e
-AAA_NO_COMMON_APPLICATION	modules/auth_diameter/diameter_msg.h	/^	AAA_NO_COMMON_APPLICATION     = 5010,$/;"	e
-AAA_NO_COMMON_SECURITY	modules/acc/diam_message.h	/^	AAA_NO_COMMON_SECURITY        = 5017,$/;"	e
-AAA_NO_COMMON_SECURITY	modules/auth_diameter/diameter_msg.h	/^	AAA_NO_COMMON_SECURITY        = 5017,$/;"	e
-AAA_NO_CONNECTION	modules/acc/diam_tcp.h	42;"	d
-AAA_NO_CONNECTION	modules/auth_diameter/defs.h	27;"	d
-AAA_NO_VENDOR_ID	modules/acc/diam_message.h	38;"	d
-AAA_NO_VENDOR_ID	modules/auth_diameter/diameter_msg.h	38;"	d
-AAA_OUT_OF_SPACE	modules/acc/diam_message.h	/^	AAA_OUT_OF_SPACE              = 4002,$/;"	e
-AAA_OUT_OF_SPACE	modules/auth_diameter/diameter_msg.h	/^	AAA_OUT_OF_SPACE              = 4002,$/;"	e
-AAA_RADIUS	modules/acc/diam_message.h	/^		AAA_RADIUS,$/;"	e	enum:avp::<anonymous>
-AAA_RADIUS	modules/auth_diameter/diameter_msg.h	/^		AAA_RADIUS,$/;"	e	enum:avp::<anonymous>
-AAA_REALM_NOT_SERVED	modules/acc/diam_message.h	/^	AAA_REALM_NOT_SERVED          = 3003,$/;"	e
-AAA_REALM_NOT_SERVED	modules/auth_diameter/diameter_msg.h	/^	AAA_REALM_NOT_SERVED          = 3003,$/;"	e
-AAA_REDIRECT_INDICATION	modules/acc/diam_message.h	/^	AAA_REDIRECT_INDICATION       = 3006,$/;"	e
-AAA_REDIRECT_INDICATION	modules/auth_diameter/diameter_msg.h	/^	AAA_REDIRECT_INDICATION       = 3006,$/;"	e
-AAA_RESOURCES_EXCEEDED	modules/acc/diam_message.h	/^	AAA_RESOURCES_EXCEEDED        = 5006,$/;"	e
-AAA_RESOURCES_EXCEEDED	modules/auth_diameter/diameter_msg.h	/^	AAA_RESOURCES_EXCEEDED        = 5006,$/;"	e
-AAA_SRVERR	modules/auth_diameter/defs.h	20;"	d
-AAA_SUCCESS	modules/acc/diam_message.h	/^	AAA_SUCCESS                   = 2001,$/;"	e
-AAA_SUCCESS	modules/auth_diameter/diameter_msg.h	/^	AAA_SUCCESS                   = 2001,$/;"	e
-AAA_TIMEOUT	modules/acc/diam_tcp.h	38;"	d
-AAA_TIMEOUT	modules/auth_diameter/defs.h	24;"	d
-AAA_TOO_BUSY	modules/acc/diam_message.h	/^	AAA_TOO_BUSY                  = 3004,$/;"	e
-AAA_TOO_BUSY	modules/auth_diameter/diameter_msg.h	/^	AAA_TOO_BUSY                  = 3004,$/;"	e
-AAA_UNABLE_TO_COMPLY	modules/acc/diam_message.h	/^	AAA_UNABLE_TO_COMPLY          = 5012,$/;"	e
-AAA_UNABLE_TO_COMPLY	modules/auth_diameter/diameter_msg.h	/^	AAA_UNABLE_TO_COMPLY          = 5012,$/;"	e
-AAA_UNABLE_TO_DELIVER	modules/acc/diam_message.h	/^	AAA_UNABLE_TO_DELIVER         = 3002,$/;"	e
-AAA_UNABLE_TO_DELIVER	modules/auth_diameter/diameter_msg.h	/^	AAA_UNABLE_TO_DELIVER         = 3002,$/;"	e
-AAA_UNKNOWN_PEER	modules/acc/diam_message.h	/^	AAA_UNKNOWN_PEER              = 3010,$/;"	e
-AAA_UNKNOWN_PEER	modules/auth_diameter/diameter_msg.h	/^	AAA_UNKNOWN_PEER              = 3010,$/;"	e
-AAA_UNKNOWN_SESSION_ID	modules/acc/diam_message.h	/^	AAA_UNKNOWN_SESSION_ID        = 5002,$/;"	e
-AAA_UNKNOWN_SESSION_ID	modules/auth_diameter/diameter_msg.h	/^	AAA_UNKNOWN_SESSION_ID        = 5002,$/;"	e
-AAA_UNSUPPORTED_VERSION	modules/acc/diam_message.h	/^	AAA_UNSUPPORTED_VERSION       = 5011,$/;"	e
-AAA_UNSUPPORTED_VERSION	modules/auth_diameter/diameter_msg.h	/^	AAA_UNSUPPORTED_VERSION       = 5011,$/;"	e
-AAA_USER_IN_GROUP	modules/auth_diameter/defs.h	25;"	d
-AA_ANSWER	modules/acc/acc.c	66;"	d	file:
-AA_ANSWER	modules/auth_diameter/defs.h	7;"	d
-AA_REQUEST	modules/acc/acc.c	65;"	d	file:
-AA_REQUEST	modules/auth_diameter/defs.h	6;"	d
-ABSTIMEOID	modules/postgres/pg_type.h	61;"	d
-ACC	modules/acc/acc.h	41;"	d
-ACCEPT_CALL	modules/cpl/jcpli.h	48;"	d
-ACCOUNTING_ANSWER	modules/acc/acc.c	69;"	d	file:
-ACCOUNTING_REQUEST	modules/acc/acc.c	68;"	d	file:
-ACC_ACKED	modules/acc/acc.h	50;"	d
-ACC_ACKED_LEN	modules/acc/acc.h	51;"	d
-ACC_ANSWERED	modules/acc/acc.h	48;"	d
-ACC_ANSWERED_LEN	modules/acc/acc.h	49;"	d
-ACC_FAILURE	modules/acc/diam_tcp.h	40;"	d
-ACC_LEN	modules/acc/acc.h	42;"	d
-ACC_MISSED	modules/acc/acc.h	46;"	d
-ACC_MISSED_LEN	modules/acc/acc.h	47;"	d
-ACC_REQUEST	modules/acc/acc.h	44;"	d
-ACC_REQUEST_LEN	modules/acc/acc.h	45;"	d
-ACC_SUCCESS	modules/acc/diam_tcp.h	39;"	d
-ACC_TCP	modules/acc/diam_tcp.h	30;"	d
-ACK	parser/parse_fline.h	47;"	d
-ACK1	parser/parse_fline.c	/^       ACK1, ACK2,$/;"	e	file:
-ACK2	parser/parse_fline.c	/^       ACK1, ACK2,$/;"	e	file:
-ACK_CMD	modules/extcmd/extcmd_funcs.c	64;"	d	file:
-ACK_FORKING_HACK	modules/tm/config.h	90;"	d
-ACK_LEN	parser/parse_fline.h	52;"	d
-ACLITEMOID	modules/postgres/pg_type.h	70;"	d
-ACPT_DEF	modules/options/mod_options.h	48;"	d
-ACPT_DEF_LEN	modules/options/mod_options.h	49;"	d
-ACPT_ENC_DEF	modules/options/mod_options.h	50;"	d
-ACPT_ENC_DEF_LEN	modules/options/mod_options.h	51;"	d
-ACPT_ENC_STR	modules/options/mod_options.h	35;"	d
-ACPT_ENC_STR_LEN	modules/options/mod_options.h	36;"	d
-ACPT_LAN_DEF	modules/options/mod_options.h	52;"	d
-ACPT_LAN_DEF_LEN	modules/options/mod_options.h	53;"	d
-ACPT_LAN_STR	modules/options/mod_options.h	37;"	d
-ACPT_LAN_STR_LEN	modules/options/mod_options.h	38;"	d
-ACPT_STR	modules/options/mod_options.h	33;"	d
-ACPT_STR_LEN	modules/options/mod_options.h	34;"	d
-ACT1	parser/obsolete/strs.h	170;"	d
-ACT2	parser/obsolete/strs.h	179;"	d
-ACTIONS_ST	route_struct.h	/^		EXPR_ST, ACTIONS_ST, CMDF_ST, MODFIXUP_ST, URIHOST_ST, URIPORT_ST,$/;"	e
-ACTION_O	route_struct.h	/^	   DSTIP_O, DSTPORT_O, PROTO_O, AF_O, MSGLEN_O, DEFAULT_O, ACTION_O,$/;"	e
-ACTION_PARAM	modules/cpl-c/cpl.c	679;"	d	file:
-ACTION_PARAM_LEN	modules/cpl-c/cpl.c	680;"	d	file:
-ACT_ENT_CASE	parser/case_cont.h	105;"	d
-AC_MSG_CODE	modules/acc/diam_message.h	64;"	d
-AC_MSG_CODE	modules/acc/diam_message.h	74;"	d
-AC_MSG_CODE	modules/auth_diameter/diameter_msg.h	64;"	d
-AC_MSG_CODE	modules/auth_diameter/diameter_msg.h	74;"	d
-ACt1	parser/obsolete/strs.h	169;"	d
-ACt2	parser/obsolete/strs.h	178;"	d
-ADDRESS_END	modules/pa/xpidf.c	78;"	d	file:
-ADDRESS_END_L	modules/pa/xpidf.c	79;"	d	file:
-ADDRESS_ETAG	modules/pa/xpidf.c	54;"	d	file:
-ADDRESS_ETAG_L	modules/pa/xpidf.c	55;"	d	file:
-ADDRESS_NODE	modules/cpl-c/CPL_tree.h	39;"	d
-ADDRESS_START	modules/pa/xpidf.c	75;"	d	file:
-ADDRESS_START_L	modules/pa/xpidf.c	76;"	d	file:
-ADDRESS_SWITCH_NODE	modules/cpl-c/CPL_tree.h	38;"	d
-ADDRESS_TYPE_VAL	modules/cpl-c/CPL_tree.h	75;"	d
-ADD_ADIRECTION	modules/nathelper/nathelper.c	737;"	d	file:
-ADD_ANORTPPROXY	modules/nathelper/nathelper.c	739;"	d	file:
-ADIRECTION	modules/nathelper/nathelper.c	741;"	d	file:
-ADIRECTION_LEN	modules/nathelper/nathelper.c	742;"	d	file:
-ADVERTISED_ADDRESS	cfg.tab.c	/^     ADVERTISED_ADDRESS = 364,$/;"	e	enum:yytokentype	file:
-ADVERTISED_ADDRESS	cfg.tab.c	306;"	d	file:
-ADVERTISED_ADDRESS	cfg.tab.h	/^     ADVERTISED_ADDRESS = 364,$/;"	e	enum:yytokentype
-ADVERTISED_ADDRESS	cfg.tab.h	282;"	d
-ADVERTISED_PORT	cfg.tab.c	/^     ADVERTISED_PORT = 365,$/;"	e	enum:yytokentype	file:
-ADVERTISED_PORT	cfg.tab.c	307;"	d	file:
-ADVERTISED_PORT	cfg.tab.h	/^     ADVERTISED_PORT = 365,$/;"	e	enum:yytokentype
-ADVERTISED_PORT	cfg.tab.h	283;"	d
-AF	cfg.tab.c	/^     AF = 304,$/;"	e	enum:yytokentype	file:
-AF	cfg.tab.c	246;"	d	file:
-AF	cfg.tab.h	/^     AF = 304,$/;"	e	enum:yytokentype
-AF	cfg.tab.h	222;"	d
-AF2PF	ip_addr.h	161;"	d
-AF2PF	ip_addr.h	163;"	d
-AF_LOCAL	modules/mediaproxy/mediaproxy.c	73;"	d	file:
-AF_LOCAL	modules/nathelper/nathelper.c	161;"	d	file:
-AF_LOCAL	modules/tm/t_fifo.c	67;"	d	file:
-AF_LOCAL	unixsock_server.c	59;"	d	file:
-AF_LOCAL	utils/serunix/serunix.c	40;"	d	file:
-AF_O	route_struct.h	/^	   DSTIP_O, DSTPORT_O, PROTO_O, AF_O, MSGLEN_O, DEFAULT_O, ACTION_O,$/;"	e
-ALG_MD5	parser/digest/digest_parser.h	/^	ALG_MD5 = 1,      \/* MD5 - default value*\/$/;"	e	enum:alg
-ALG_MD5SESS	parser/digest/digest_parser.h	/^	ALG_MD5SESS = 2,  \/* MD5-Session *\/$/;"	e	enum:alg
-ALG_MD5SESS_STR	parser/digest/digest_parser.c	55;"	d	file:
-ALG_MD5SESS_STR_LEN	parser/digest/digest_parser.c	56;"	d	file:
-ALG_MD5_STR	parser/digest/digest_parser.c	52;"	d	file:
-ALG_MD5_STR_LEN	parser/digest/digest_parser.c	53;"	d	file:
-ALG_OTHER	parser/digest/digest_parser.h	/^	ALG_OTHER = 4     \/* Unknown *\/$/;"	e	enum:alg
-ALG_UNSPEC	parser/digest/digest_parser.h	/^	ALG_UNSPEC = 0,   \/* Algorithm parameter not specified *\/$/;"	e	enum:alg
-ALIAS	cfg.tab.c	/^     ALIAS = 315,$/;"	e	enum:yytokentype	file:
-ALIAS	cfg.tab.c	257;"	d	file:
-ALIAS	cfg.tab.h	/^     ALIAS = 315,$/;"	e	enum:yytokentype
-ALIAS	cfg.tab.h	233;"	d
-ALIAS1	parser/parse_via.c	/^	ALIAS1, ALIAS2, ALIAS3, ALIAS4,$/;"	e	file:
-ALIAS2	parser/parse_via.c	/^	ALIAS1, ALIAS2, ALIAS3, ALIAS4,$/;"	e	file:
-ALIAS3	parser/parse_via.c	/^	ALIAS1, ALIAS2, ALIAS3, ALIAS4,$/;"	e	file:
-ALIAS4	parser/parse_via.c	/^	ALIAS1, ALIAS2, ALIAS3, ALIAS4,$/;"	e	file:
-ALLDEP	Makefile	/^ALLDEP=Makefile Makefile.sources Makefile.defs Makefile.rules$/;"	m
-ALL_LOG_FMT	modules/acc/defs.h	43;"	d
-ALL_LOG_FMT_LEN	modules/acc/defs.h	44;"	d
-ANCILLARY_NODE	modules/cpl-c/CPL_tree.h	36;"	d
-AND	cfg.tab.c	/^     AND = 379,$/;"	e	enum:yytokentype	file:
-AND	cfg.tab.c	321;"	d	file:
-AND	cfg.tab.h	/^     AND = 379,$/;"	e	enum:yytokentype
-AND	cfg.tab.h	297;"	d
-AND_OP	route_struct.h	/^enum { AND_OP=1, OR_OP, NOT_OP };$/;"	e
-ANORTPPROXY	modules/nathelper/nathelper.c	753;"	d	file:
-ANORTPPROXY_LEN	modules/nathelper/nathelper.c	754;"	d	file:
-ANS_SIZE	resolve.h	53;"	d
-ANYARRAYOID	modules/postgres/pg_type.h	91;"	d
-ANYOID	modules/postgres/pg_type.h	90;"	d
-AOLDMEDIP	modules/nathelper/nathelper.c	744;"	d	file:
-AOLDMEDIP6	modules/nathelper/nathelper.c	747;"	d	file:
-AOLDMEDIP6_LEN	modules/nathelper/nathelper.c	748;"	d	file:
-AOLDMEDIP_LEN	modules/nathelper/nathelper.c	745;"	d	file:
-AOLDMEDPRT	modules/nathelper/nathelper.c	750;"	d	file:
-AOLDMEDPRT_LEN	modules/nathelper/nathelper.c	751;"	d	file:
-API_H	modules/auth/api.h	31;"	d
-APPEND_BRANCH	cfg.tab.c	/^     APPEND_BRANCH = 276,$/;"	e	enum:yytokentype	file:
-APPEND_BRANCH	cfg.tab.c	218;"	d	file:
-APPEND_BRANCH	cfg.tab.h	/^     APPEND_BRANCH = 276,$/;"	e	enum:yytokentype
-APPEND_BRANCH	cfg.tab.h	194;"	d
-APPEND_BRANCH_T	route_struct.h	/^		APPEND_BRANCH_T,$/;"	e
-APPEND_BUFFER_MAX	modules/tm/t_fifo.c	99;"	d	file:
-APPLICATION_ID_SIZE	modules/acc/diam_message.h	44;"	d
-APPLICATION_ID_SIZE	modules/auth_diameter/diameter_msg.h	44;"	d
-ARDS	parser/obsolete/strs.h	222;"	d
-ARDS_CASE	parser/case_max.h	35;"	d
-ARDs	parser/obsolete/strs.h	221;"	d
-ARG_CMD	unixsock_server.c	96;"	d	file:
-ARTY_CASE	parser/case_remo.h	47;"	d
-ARdS	parser/obsolete/strs.h	220;"	d
-ARds	parser/obsolete/strs.h	219;"	d
-ASSERT	mem/vq_malloc.c	90;"	d	file:
-ASSERT	mem/vq_malloc.c	93;"	d	file:
-AS_MSG_CODE	modules/acc/diam_message.h	63;"	d
-AS_MSG_CODE	modules/acc/diam_message.h	73;"	d
-AS_MSG_CODE	modules/auth_diameter/diameter_msg.h	63;"	d
-AS_MSG_CODE	modules/auth_diameter/diameter_msg.h	73;"	d
-ATOM_ETAG	modules/pa/xpidf.c	57;"	d	file:
-ATOM_ETAG_L	modules/pa/xpidf.c	58;"	d	file:
-ATOM_STAG	modules/pa/xpidf.c	72;"	d	file:
-ATOM_STAG_L	modules/pa/xpidf.c	73;"	d	file:
-ATR	modules/acc/acc.c	74;"	d	file:
-ATTR_PTR	modules/cpl-c/CPL_tree.h	213;"	d
-AUG_ALLOC_H	modules/postgres/aug_alloc.h	60;"	d
-AUG_BAD_FD_SET	modules/postgres/aug_sysdep.h	287;"	d
-AUG_BAD_FD_SET	modules/postgres/aug_sysdep.h	91;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	132;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	153;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	155;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	164;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	166;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	177;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	179;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	213;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	222;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	262;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	271;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	294;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	316;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	342;"	d
-AUG_CONFIGURATION	modules/postgres/aug_sysdep.h	79;"	d
-AUG_DEBUG_H	modules/postgres/aug_debug.h	60;"	d
-AUG_HAS_LP	modules/postgres/aug_sysdep.h	131;"	d
-AUG_HAS_LP	modules/postgres/aug_sysdep.h	146;"	d
-AUG_HAS_LP	modules/postgres/aug_sysdep.h	288;"	d
-AUG_HAS_LP	modules/postgres/aug_sysdep.h	309;"	d
-AUG_HAS_LP	modules/postgres/aug_sysdep.h	339;"	d
-AUG_HAS_LP	modules/postgres/aug_sysdep.h	93;"	d
-AUG_HAS_LPR	modules/postgres/aug_sysdep.h	196;"	d
-AUG_HAS_LPR	modules/postgres/aug_sysdep.h	237;"	d
-AUG_HAS_LPR	modules/postgres/aug_sysdep.h	96;"	d
-AUG_HAS_LP_REQUEST	modules/postgres/aug_sysdep.h	289;"	d
-AUG_HAS_LP_REQUEST	modules/postgres/aug_sysdep.h	310;"	d
-AUG_HAS_LP_REQUEST	modules/postgres/aug_sysdep.h	94;"	d
-AUG_HAS_PREAD	modules/postgres/aug_sysdep.h	147;"	d
-AUG_HAS_PREAD	modules/postgres/aug_sysdep.h	240;"	d
-AUG_HAS_PREAD	modules/postgres/aug_sysdep.h	98;"	d
-AUG_HAS_PSAX	modules/postgres/aug_sysdep.h	108;"	d
-AUG_HAS_PSAX	modules/postgres/aug_sysdep.h	198;"	d
-AUG_HAS_PSAX	modules/postgres/aug_sysdep.h	239;"	d
-AUG_HAS_RAND48	modules/postgres/aug_sysdep.h	101;"	d
-AUG_HAS_RAND48	modules/postgres/aug_sysdep.h	133;"	d
-AUG_HAS_RAND48	modules/postgres/aug_sysdep.h	148;"	d
-AUG_HAS_RAND48	modules/postgres/aug_sysdep.h	290;"	d
-AUG_HAS_RAND48	modules/postgres/aug_sysdep.h	312;"	d
-AUG_HAS_RAND48	modules/postgres/aug_sysdep.h	340;"	d
-AUG_HAS_RANDOM	modules/postgres/aug_sysdep.h	102;"	d
-AUG_HAS_RANDOM	modules/postgres/aug_sysdep.h	197;"	d
-AUG_HAS_RANDOM	modules/postgres/aug_sysdep.h	238;"	d
-AUG_HAS_SELECT_H	modules/postgres/aug_sysdep.h	311;"	d
-AUG_HAS_SELECT_H	modules/postgres/aug_sysdep.h	89;"	d
-AUG_HAS_SINCOS	modules/postgres/aug_sysdep.h	104;"	d
-AUG_HAS_SINCOS	modules/postgres/aug_sysdep.h	291;"	d
-AUG_NO_CRYPT_H	modules/postgres/aug_sysdep.h	111;"	d
-AUG_NO_CRYPT_H	modules/postgres/aug_sysdep.h	202;"	d
-AUG_NO_CRYPT_H	modules/postgres/aug_sysdep.h	241;"	d
-AUG_NO_CRYPT_H	modules/postgres/aug_sysdep.h	313;"	d
-AUG_NO_CRYPT_H	modules/postgres/aug_sysdep.h	341;"	d
-AUG_NO_DB	modules/postgres/aug_sysdep.h	118;"	d
-AUG_NO_DB	modules/postgres/aug_sysdep.h	243;"	d
-AUG_NO_GETPAGESIZE	modules/postgres/aug_sysdep.h	120;"	d
-AUG_NO_IOVEC	modules/postgres/aug_sysdep.h	105;"	d
-AUG_NO_PTHREADS	modules/postgres/aug_sysdep.h	121;"	d
-AUG_NO_PTHREADS	modules/postgres/aug_sysdep.h	207;"	d
-AUG_NO_PUTENV	modules/postgres/aug_sysdep.h	97;"	d
-AUG_NO_TERMIOS	modules/postgres/aug_sysdep.h	114;"	d
-AUG_NO_TERMIO_H	modules/postgres/aug_sysdep.h	116;"	d
-AUG_NO_TERMIO_H	modules/postgres/aug_sysdep.h	242;"	d
-AUG_NO_TIMES	modules/postgres/aug_sysdep.h	106;"	d
-AUG_NO_TZARG	modules/postgres/aug_sysdep.h	109;"	d
-AUG_STD_H	modules/postgres/aug_std.h	60;"	d
-AUG_SYSDEP_H	modules/postgres/aug_sysdep.h	60;"	d
-AUTHDB_MOD_H	modules/auth_db/authdb_mod.h	32;"	d
-AUTHDIAM_MOD_H	modules/auth_diameter/auth_diameter.h	35;"	d
-AUTHORIZED	modules/auth/api.h	/^        AUTHORIZED          \/* Authorized by default, no digest authorization necessary *\/$/;"	e	enum:auth_result
-AUTHORIZED	modules/auth_diameter/defs.h	/^	AUTHORIZED          \/* Authorized by default *\/$/;"	e	enum:auth_result
-AUTHORIZE_H	modules/auth_db/authorize.h	32;"	d
-AUTHORIZE_H	modules/auth_radius/authorize.h	35;"	d
-AUTHRAD_MOD_H	modules/auth_radius/authrad_mod.h	36;"	d
-AUTH_ATIO_CASE	parser/case_auth.h	34;"	d
-AUTH_BODY_SIZE	modules/tm/sip_msg.c	275;"	d	file:
-AUTH_MOD_H	modules/auth/auth_mod.h	35;"	d
-AUTH_ORIZ_CASE	parser/case_auth.h	48;"	d
-AVPDataStatus	modules/acc/diam_message.h	/^} AVPDataStatus;$/;"	t
-AVPDataStatus	modules/auth_diameter/diameter_msg.h	/^} AVPDataStatus;$/;"	t
-AVPOPS_DB_NAME_INT	modules/avpops/avpops_impl.h	50;"	d
-AVPOPS_DB_VAL_INT	modules/avpops/avpops_impl.h	51;"	d
-AVPOPS_FLAG_ALL	modules/avpops/avpops_impl.h	75;"	d
-AVPOPS_FLAG_CI	modules/avpops/avpops_impl.h	76;"	d
-AVPOPS_FLAG_DOMAIN	modules/avpops/avpops_impl.h	78;"	d
-AVPOPS_FLAG_USER	modules/avpops/avpops_impl.h	77;"	d
-AVPOPS_OP_EQ	modules/avpops/avpops_impl.h	69;"	d
-AVPOPS_OP_GT	modules/avpops/avpops_impl.h	71;"	d
-AVPOPS_OP_LT	modules/avpops/avpops_impl.h	70;"	d
-AVPOPS_OP_RE	modules/avpops/avpops_impl.h	72;"	d
-AVPOPS_USE_DOMAIN	modules/avpops/avpops_impl.h	63;"	d
-AVPOPS_USE_FROM	modules/avpops/avpops_impl.h	59;"	d
-AVPOPS_USE_HDRREQ	modules/avpops/avpops_impl.h	64;"	d
-AVPOPS_USE_HDRRPL	modules/avpops/avpops_impl.h	65;"	d
-AVPOPS_USE_RURI	modules/avpops/avpops_impl.h	61;"	d
-AVPOPS_USE_SRC_IP	modules/avpops/avpops_impl.h	66;"	d
-AVPOPS_USE_TO	modules/avpops/avpops_impl.h	60;"	d
-AVPOPS_USE_USERNAME	modules/avpops/avpops_impl.h	62;"	d
-AVPOPS_VAL_AVP	modules/avpops/avpops_impl.h	57;"	d
-AVPOPS_VAL_INT	modules/avpops/avpops_impl.h	55;"	d
-AVPOPS_VAL_NONE	modules/avpops/avpops_impl.h	54;"	d
-AVPOPS_VAL_STR	modules/avpops/avpops_impl.h	56;"	d
-AVPS_COL_INT	modules/auth_db/authdb_mod.c	96;"	d	file:
-AVPS_COL_INT_LEN	modules/auth_db/authdb_mod.c	97;"	d	file:
-AVPS_COL_STR	modules/auth_db/authdb_mod.c	99;"	d	file:
-AVPS_COL_STR_LEN	modules/auth_db/authdb_mod.c	100;"	d	file:
-AVP_Accounting_Record_Type	modules/acc/diam_message.h	/^	AVP_Accounting_Record_Type		  =  279,$/;"	e
-AVP_Auth_Application_Id	modules/acc/diam_message.h	/^	AVP_Auth_Application_Id            =  258,$/;"	e
-AVP_Auth_Application_Id	modules/auth_diameter/diameter_msg.h	/^	AVP_Auth_Application_Id            =  258,$/;"	e
-AVP_Auth_Grace_Period	modules/acc/diam_message.h	/^	AVP_Auth_Grace_Period             =  276,$/;"	e
-AVP_Auth_Grace_Period	modules/auth_diameter/diameter_msg.h	/^	AVP_Auth_Grace_Period             =  276,$/;"	e
-AVP_Auth_Request_Type	modules/acc/diam_message.h	/^	AVP_Auth_Request_Type             =  274,$/;"	e
-AVP_Auth_Request_Type	modules/auth_diameter/diameter_msg.h	/^	AVP_Auth_Request_Type             =  274,$/;"	e
-AVP_Auth_Session_State	modules/acc/diam_message.h	/^	AVP_Auth_Session_State            =  277,$/;"	e
-AVP_Auth_Session_State	modules/auth_diameter/diameter_msg.h	/^	AVP_Auth_Session_State            =  277,$/;"	e
-AVP_Authorization_Lifetime	modules/acc/diam_message.h	/^	AVP_Authorization_Lifetime        =  291,$/;"	e
-AVP_Authorization_Lifetime	modules/auth_diameter/diameter_msg.h	/^	AVP_Authorization_Lifetime        =  291,$/;"	e
-AVP_CODE_SIZE	modules/acc/diam_message.h	47;"	d
-AVP_CODE_SIZE	modules/auth_diameter/diameter_msg.h	47;"	d
-AVP_Challenge	modules/acc/diam_message.h	/^	AVP_Challenge					  =  402,$/;"	e
-AVP_Challenge	modules/auth_diameter/diameter_msg.h	/^	AVP_Challenge					  =  402,$/;"	e
-AVP_Class	modules/acc/diam_message.h	/^	AVP_Class                         =   25,$/;"	e
-AVP_Class	modules/auth_diameter/diameter_msg.h	/^	AVP_Class                         =   25,$/;"	e
-AVP_DONT_FREE_DATA	modules/acc/diam_message.h	/^	AVP_DONT_FREE_DATA,$/;"	e
-AVP_DONT_FREE_DATA	modules/auth_diameter/diameter_msg.h	/^	AVP_DONT_FREE_DATA,$/;"	e
-AVP_DUPLICATE_DATA	modules/acc/diam_message.h	/^	AVP_DUPLICATE_DATA,$/;"	e
-AVP_DUPLICATE_DATA	modules/auth_diameter/diameter_msg.h	/^	AVP_DUPLICATE_DATA,$/;"	e
-AVP_Destination_Host	modules/acc/diam_message.h	/^	AVP_Destination_Host              =  293,$/;"	e
-AVP_Destination_Host	modules/auth_diameter/diameter_msg.h	/^	AVP_Destination_Host              =  293,$/;"	e
-AVP_Destination_Realm	modules/acc/diam_message.h	/^	AVP_Destination_Realm             =  283,$/;"	e
-AVP_Destination_Realm	modules/auth_diameter/diameter_msg.h	/^	AVP_Destination_Realm             =  283,$/;"	e
-AVP_Disconnect_Cause	modules/acc/diam_message.h	/^	AVP_Disconnect_Cause              =  273,$/;"	e
-AVP_Disconnect_Cause	modules/auth_diameter/diameter_msg.h	/^	AVP_Disconnect_Cause              =  273,$/;"	e
-AVP_Error_Message	modules/acc/diam_message.h	/^	AVP_Error_Message                 =  281,$/;"	e
-AVP_Error_Message	modules/auth_diameter/diameter_msg.h	/^	AVP_Error_Message                 =  281,$/;"	e
-AVP_FLAGS_SIZE	modules/acc/diam_message.h	48;"	d
-AVP_FLAGS_SIZE	modules/auth_diameter/diameter_msg.h	48;"	d
-AVP_FREE_DATA	modules/acc/diam_message.h	/^	AVP_FREE_DATA,$/;"	e
-AVP_FREE_DATA	modules/auth_diameter/diameter_msg.h	/^	AVP_FREE_DATA,$/;"	e
-AVP_HDR_SIZE	modules/acc/diam_message.h	56;"	d
-AVP_HDR_SIZE	modules/auth_diameter/diameter_msg.h	56;"	d
-AVP_Host_IP_Address	modules/acc/diam_message.h	/^	AVP_Host_IP_Address               =  257,$/;"	e
-AVP_Host_IP_Address	modules/auth_diameter/diameter_msg.h	/^	AVP_Host_IP_Address               =  257,$/;"	e
-AVP_IS_IN_DB	modules/avpops/avpops_impl.h	47;"	d
-AVP_LENGTH_SIZE	modules/acc/diam_message.h	49;"	d
-AVP_LENGTH_SIZE	modules/auth_diameter/diameter_msg.h	49;"	d
-AVP_Method	modules/acc/diam_message.h	/^	AVP_Method						  =  403,$/;"	e
-AVP_Method	modules/auth_diameter/diameter_msg.h	/^	AVP_Method						  =  403,$/;"	e
-AVP_NAME_STR	usr_avp.h	53;"	d
-AVP_Origin_Host	modules/acc/diam_message.h	/^	AVP_Origin_Host                   =  264,$/;"	e
-AVP_Origin_Host	modules/auth_diameter/diameter_msg.h	/^	AVP_Origin_Host                   =  264,$/;"	e
-AVP_Origin_Realm	modules/acc/diam_message.h	/^	AVP_Origin_Realm                  =  296,$/;"	e
-AVP_Origin_Realm	modules/auth_diameter/diameter_msg.h	/^	AVP_Origin_Realm                  =  296,$/;"	e
-AVP_Origin_State_Id	modules/acc/diam_message.h	/^	AVP_Origin_State_Id               =  278,$/;"	e
-AVP_Origin_State_Id	modules/auth_diameter/diameter_msg.h	/^	AVP_Origin_State_Id               =  278,$/;"	e
-AVP_Product_Name	modules/acc/diam_message.h	/^	AVP_Product_Name                  =  269,$/;"	e
-AVP_Product_Name	modules/auth_diameter/diameter_msg.h	/^	AVP_Product_Name                  =  269,$/;"	e
-AVP_Proxy_Host	modules/acc/diam_message.h	/^	AVP_Proxy_Host                    =  280,$/;"	e
-AVP_Proxy_Host	modules/auth_diameter/diameter_msg.h	/^	AVP_Proxy_Host                    =  280,$/;"	e
-AVP_Proxy_Info	modules/acc/diam_message.h	/^	AVP_Proxy_Info                    =  284,$/;"	e
-AVP_Proxy_Info	modules/auth_diameter/diameter_msg.h	/^	AVP_Proxy_Info                    =  284,$/;"	e
-AVP_Proxy_State	modules/acc/diam_message.h	/^	AVP_Proxy_State                   =   33,$/;"	e
-AVP_Proxy_State	modules/auth_diameter/diameter_msg.h	/^	AVP_Proxy_State                   =   33,$/;"	e
-AVP_Re_Auth_Request_Type	modules/acc/diam_message.h	/^	AVP_Re_Auth_Request_Type          =  285,$/;"	e
-AVP_Re_Auth_Request_Type	modules/auth_diameter/diameter_msg.h	/^	AVP_Re_Auth_Request_Type          =  285,$/;"	e
-AVP_Record_Route	modules/acc/diam_message.h	/^	AVP_Record_Route                  =  282,$/;"	e
-AVP_Record_Route	modules/auth_diameter/diameter_msg.h	/^	AVP_Record_Route                  =  282,$/;"	e
-AVP_Redirect_Host	modules/acc/diam_message.h	/^	AVP_Redirect_Host                 =  292,$/;"	e
-AVP_Redirect_Host	modules/auth_diameter/diameter_msg.h	/^	AVP_Redirect_Host                 =  292,$/;"	e
-AVP_Redirect_Max_Cache_Time	modules/acc/diam_message.h	/^	AVP_Redirect_Max_Cache_Time       =  262,$/;"	e
-AVP_Redirect_Max_Cache_Time	modules/auth_diameter/diameter_msg.h	/^	AVP_Redirect_Max_Cache_Time       =  262,$/;"	e
-AVP_Resource	modules/acc/diam_message.h	/^	AVP_Resource					  =  400,$/;"	e
-AVP_Resource	modules/auth_diameter/diameter_msg.h	/^	AVP_Resource					  =  400,$/;"	e
-AVP_Response	modules/acc/diam_message.h	/^	AVP_Response					  =  401,	$/;"	e
-AVP_Response	modules/auth_diameter/diameter_msg.h	/^	AVP_Response					  =  401,	$/;"	e
-AVP_Result_Code	modules/acc/diam_message.h	/^	AVP_Result_Code                   =  268,$/;"	e
-AVP_Result_Code	modules/auth_diameter/diameter_msg.h	/^	AVP_Result_Code                   =  268,$/;"	e
-AVP_SIP_CALLID	modules/acc/diam_dict.h	/^	AVP_SIP_CALLID				= 550,	\/* string *\/$/;"	e
-AVP_SIP_CODE	modules/acc/diam_dict.h	/^	AVP_SIP_CODE				= 564,  \/* string *\/$/;"	e
-AVP_SIP_CREDENTIALS	modules/acc/diam_dict.h	/^	AVP_SIP_CREDENTIALS			= 565,  \/* string *\/$/;"	e
-AVP_SIP_CSEQ	modules/acc/diam_dict.h	/^	AVP_SIP_CSEQ                = 557,	\/* string *\/$/;"	e
-AVP_SIP_FROM	modules/acc/diam_dict.h	/^	AVP_SIP_FROM				= 560,  \/* string *\/$/;"	e
-AVP_SIP_FROM_TAG	modules/acc/diam_dict.h	/^	AVP_SIP_FROM_TAG            = 555,	\/* string *\/$/;"	e
-AVP_SIP_FROM_URI	modules/acc/diam_dict.h	/^	AVP_SIP_FROM_URI   			= 551,	\/* string *\/$/;"	e
-AVP_SIP_FROM_USER	modules/acc/diam_dict.h	/^	AVP_SIP_FROM_USER			= 562,  \/* string *\/$/;"	e
-AVP_SIP_IURI	modules/acc/diam_dict.h	/^	AVP_SIP_IURI				= 558,  \/* string *\/$/;"	e
-AVP_SIP_METHOD	modules/acc/diam_dict.h	/^	AVP_SIP_METHOD              = 553,	\/* string *\/$/;"	e
-AVP_SIP_MSGID	modules/acc/diam_message.h	/^	AVP_SIP_MSGID					  =  406	$/;"	e
-AVP_SIP_MSGID	modules/auth_diameter/diameter_msg.h	/^	AVP_SIP_MSGID					  =  406	$/;"	e
-AVP_SIP_OURI	modules/acc/diam_dict.h	/^	AVP_SIP_OURI				= 559,	\/* string *\/$/;"	e
-AVP_SIP_STATUS	modules/acc/diam_dict.h	/^	AVP_SIP_STATUS       		= 554,	\/* string *\/$/;"	e
-AVP_SIP_TO	modules/acc/diam_dict.h	/^	AVP_SIP_TO					= 561,  \/* string *\/$/;"	e
-AVP_SIP_TO_TAG	modules/acc/diam_dict.h	/^	AVP_SIP_TO_TAG              = 556,	\/* string *\/$/;"	e
-AVP_SIP_TO_URI	modules/acc/diam_dict.h	/^	AVP_SIP_TO_URI    			= 552,	\/* string *\/$/;"	e
-AVP_SIP_TO_USER	modules/acc/diam_dict.h	/^	AVP_SIP_TO_USER				= 563,  \/* string *\/$/;"	e
-AVP_SIP_UP_URI	modules/acc/diam_dict.h	/^	AVP_SIP_UP_URI				= 566   \/* string *\/$/;"	e
-AVP_Service_Type	modules/acc/diam_message.h	/^	AVP_Service_Type				  =  404,$/;"	e
-AVP_Service_Type	modules/auth_diameter/diameter_msg.h	/^	AVP_Service_Type				  =  404,$/;"	e
-AVP_Session_Binding	modules/acc/diam_message.h	/^	AVP_Session_Binding               =  270,$/;"	e
-AVP_Session_Binding	modules/auth_diameter/diameter_msg.h	/^	AVP_Session_Binding               =  270,$/;"	e
-AVP_Session_Id	modules/acc/diam_message.h	/^	AVP_Session_Id                    =  263,$/;"	e
-AVP_Session_Id	modules/auth_diameter/diameter_msg.h	/^	AVP_Session_Id                    =  263,$/;"	e
-AVP_Session_Timeout	modules/acc/diam_message.h	/^	AVP_Session_Timeout               =   27,$/;"	e
-AVP_Session_Timeout	modules/auth_diameter/diameter_msg.h	/^	AVP_Session_Timeout               =   27,$/;"	e
-AVP_Supported_Vendor_Id	modules/acc/diam_message.h	/^	AVP_Supported_Vendor_Id           =  265,$/;"	e
-AVP_Supported_Vendor_Id	modules/auth_diameter/diameter_msg.h	/^	AVP_Supported_Vendor_Id           =  265,$/;"	e
-AVP_TO_URI_T	route_struct.h	/^		AVP_TO_URI_T,$/;"	e
-AVP_Termination_Cause	modules/acc/diam_message.h	/^	AVP_Termination_Cause             =  295,$/;"	e
-AVP_Termination_Cause	modules/auth_diameter/diameter_msg.h	/^	AVP_Termination_Cause             =  295,$/;"	e
-AVP_User_Group	modules/acc/diam_message.h	/^	AVP_User_Group					  =  405,$/;"	e
-AVP_User_Group	modules/auth_diameter/diameter_msg.h	/^	AVP_User_Group					  =  405,$/;"	e
-AVP_User_Name	modules/acc/diam_message.h	/^	AVP_User_Name                     =    1,$/;"	e
-AVP_User_Name	modules/auth_diameter/diameter_msg.h	/^	AVP_User_Name                     =    1,$/;"	e
-AVP_VAL_STR	usr_avp.h	54;"	d
-AVP_VENDOR_ID_SIZE	modules/acc/diam_message.h	50;"	d
-AVP_VENDOR_ID_SIZE	modules/auth_diameter/diameter_msg.h	50;"	d
-AVP_Vendor_Id	modules/acc/diam_message.h	/^	AVP_Vendor_Id                     =  266,$/;"	e
-AVP_Vendor_Id	modules/auth_diameter/diameter_msg.h	/^	AVP_Vendor_Id                     =  266,$/;"	e
-AVP_Vendor_Specific_Application_Id	modules/acc/diam_message.h	/^	AVP_Vendor_Specific_Application_Id=  260,$/;"	e
-AVP_Vendor_Specific_Application_Id	modules/auth_diameter/diameter_msg.h	/^	AVP_Vendor_Specific_Application_Id=  260,$/;"	e
-A_ACCT_SESSION_ID	modules/acc/dict.h	52;"	d
-A_ACCT_STATUS_TYPE	modules/acc/dict.h	51;"	d
-A_CALLED_STATION_ID	modules/acc/dict.h	49;"	d
-A_CALLID	modules/acc/acc.h	54;"	d
-A_CALLID_LEN	modules/acc/acc.h	55;"	d
-A_CALLING_STATION_ID	modules/acc/dict.h	50;"	d
-A_CISCO_AVPAIR	modules/acc/dict.h	74;"	d
-A_CODE	modules/acc/acc.h	88;"	d
-A_CODE_LEN	modules/acc/acc.h	89;"	d
-A_CSEQ	modules/acc/acc.h	56;"	d
-A_CSEQ_LEN	modules/acc/acc.h	57;"	d
-A_DIGEST_ALGORITHM	modules/acc/dict.h	68;"	d
-A_DIGEST_ATTRIBUTES	modules/acc/dict.h	60;"	d
-A_DIGEST_BODY_DIGEST	modules/acc/dict.h	69;"	d
-A_DIGEST_CNONCE	modules/acc/dict.h	70;"	d
-A_DIGEST_METHOD	modules/acc/dict.h	65;"	d
-A_DIGEST_NONCE	modules/acc/dict.h	64;"	d
-A_DIGEST_NONCE_COUNT	modules/acc/dict.h	71;"	d
-A_DIGEST_QOP	modules/acc/dict.h	67;"	d
-A_DIGEST_REALM	modules/acc/dict.h	63;"	d
-A_DIGEST_RESPONSE	modules/acc/dict.h	59;"	d
-A_DIGEST_URI	modules/acc/dict.h	66;"	d
-A_DIGEST_USER_NAME	modules/acc/dict.h	72;"	d
-A_EOL	modules/acc/acc.h	99;"	d
-A_EOL_LEN	modules/acc/acc.h	100;"	d
-A_EQ	modules/acc/acc.h	97;"	d
-A_EQ_LEN	modules/acc/acc.h	98;"	d
-A_FROM	modules/acc/acc.h	60;"	d
-A_FROMDOMAIN	modules/acc/acc.h	64;"	d
-A_FROMDOMAIN_LEN	modules/acc/acc.h	65;"	d
-A_FROMTAG	modules/acc/acc.h	72;"	d
-A_FROMTAG_LEN	modules/acc/acc.h	73;"	d
-A_FROMURI	modules/acc/acc.h	74;"	d
-A_FROMURI_LEN	modules/acc/acc.h	75;"	d
-A_FROMUSER	modules/acc/acc.h	62;"	d
-A_FROMUSER_LEN	modules/acc/acc.h	63;"	d
-A_FROM_LEN	modules/acc/acc.h	61;"	d
-A_IURI	modules/acc/acc.h	66;"	d
-A_IURI_LEN	modules/acc/acc.h	67;"	d
-A_MAX	modules/acc/dict.h	76;"	d
-A_METHOD	modules/acc/acc.h	68;"	d
-A_METHOD_LEN	modules/acc/acc.h	69;"	d
-A_OURI	modules/acc/acc.h	70;"	d
-A_OURI_LEN	modules/acc/acc.h	71;"	d
-A_REALM	modules/acc/acc.h	90;"	d
-A_REALM_LEN	modules/acc/acc.h	91;"	d
-A_RURI_DOMAIN	modules/acc/acc.h	92;"	d
-A_RURI_DOMAIN_LEN	modules/acc/acc.h	93;"	d
-A_SEPARATOR	modules/acc/acc.h	95;"	d
-A_SEPARATOR_LEN	modules/acc/acc.h	96;"	d
-A_SERVICE_TYPE	modules/acc/dict.h	48;"	d
-A_SIP_AVP	modules/acc/dict.h	75;"	d
-A_SIP_CSEQ	modules/acc/dict.h	55;"	d
-A_SIP_FROM_TAG	modules/acc/dict.h	57;"	d
-A_SIP_GROUP	modules/acc/dict.h	73;"	d
-A_SIP_METHOD	modules/acc/dict.h	53;"	d
-A_SIP_RESPONSE_CODE	modules/acc/dict.h	54;"	d
-A_SIP_RPID	modules/acc/dict.h	62;"	d
-A_SIP_TO_TAG	modules/acc/dict.h	56;"	d
-A_SIP_TRANSLATED_REQUEST_URI	modules/acc/dict.h	58;"	d
-A_SIP_URI_USER	modules/acc/dict.h	61;"	d
-A_STATUS	modules/acc/acc.h	76;"	d
-A_STATUS_LEN	modules/acc/acc.h	77;"	d
-A_TO	modules/acc/acc.h	78;"	d
-A_TOTAG	modules/acc/acc.h	58;"	d
-A_TOTAG_LEN	modules/acc/acc.h	59;"	d
-A_TOURI	modules/acc/acc.h	80;"	d
-A_TOURI_LEN	modules/acc/acc.h	81;"	d
-A_TOUSER	modules/acc/acc.h	82;"	d
-A_TOUSER_LEN	modules/acc/acc.h	83;"	d
-A_TO_LEN	modules/acc/acc.h	79;"	d
-A_UID	modules/acc/acc.h	84;"	d
-A_UID_LEN	modules/acc/acc.h	85;"	d
-A_UP_IURI	modules/acc/acc.h	86;"	d
-A_UP_IURI_LEN	modules/acc/acc.h	87;"	d
-A_USER_NAME	modules/acc/dict.h	47;"	d
-AcT1	parser/obsolete/strs.h	168;"	d
-AcT2	parser/obsolete/strs.h	177;"	d
-Act1	parser/obsolete/strs.h	167;"	d
-Act2	parser/obsolete/strs.h	176;"	d
-Ai	modules/jabber/sha.c	70;"	d	file:
-ArDS	parser/obsolete/strs.h	218;"	d
-ArDs	parser/obsolete/strs.h	217;"	d
-ArdS	parser/obsolete/strs.h	216;"	d
-Ards	parser/obsolete/strs.h	215;"	d
-AsymmetricClients	modules/mediaproxy/mediaproxy.c	/^} AsymmetricClients;$/;"	t	file:
-BAD_CPL	modules/cpl-c/cpl_parser.c	1509;"	d	file:
-BAD_CPL_LEN	modules/cpl-c/cpl_parser.c	1510;"	d	file:
-BAD_XML	modules/cpl-c/cpl_parser.c	1507;"	d	file:
-BAD_XML_LEN	modules/cpl-c/cpl_parser.c	1508;"	d	file:
-BASIC_ATTR_SIZE	modules/cpl-c/CPL_tree.h	216;"	d
-BASIC_CLOSED	modules/pa/pidf.c	103;"	d	file:
-BASIC_CLOSED_L	modules/pa/pidf.c	104;"	d	file:
-BASIC_OPEN	modules/pa/pidf.c	100;"	d	file:
-BASIC_OPEN_L	modules/pa/pidf.c	101;"	d	file:
-BEGIN	lex.yy.c	115;"	d	file:
-BIG_BUCKET	mem/vq_malloc.c	86;"	d	file:
-BITMAP_TYPE	db/db_fifo.c	83;"	d	file:
-BITMAP_TYPE_LEN	db/db_fifo.c	84;"	d	file:
-BITOID	modules/postgres/pg_type.h	79;"	d
-BLOB_TYPE	db/db_fifo.c	81;"	d	file:
-BLOB_TYPE_LEN	db/db_fifo.c	82;"	d	file:
-BLOCK_STEP	config.h	133;"	d
-BODY	parser/obsolete/parse_hname.c	/^		BODY=220,$/;"	e	file:
-BODY	test/auto.c	/^		BODY=220,$/;"	e	file:
-BODY_ATTR	modules/cpl-c/CPL_tree.h	194;"	d
-BODY_EMAILHDR_LEN	modules/cpl-c/CPL_tree.h	196;"	d
-BODY_EMAILHDR_STR	modules/cpl-c/CPL_tree.h	195;"	d
-BOOLOID	modules/postgres/pg_type.h	38;"	d
-BOXOID	modules/postgres/pg_type.h	56;"	d
-BPCHAROID	modules/postgres/pg_type.h	71;"	d
-BRANCH1	parser/parse_via.c	/^	BRANCH1, BRANCH2, BRANCH3, BRANCH4, BRANCH5,$/;"	e	file:
-BRANCH1	test/via_parse.c	/^		BRANCH1,   BRANCH2,   BRANCH3,   BRANCH4,   BRANCH5,$/;"	e	file:
-BRANCH2	parser/parse_via.c	/^	BRANCH1, BRANCH2, BRANCH3, BRANCH4, BRANCH5,$/;"	e	file:
-BRANCH2	test/via_parse.c	/^		BRANCH1,   BRANCH2,   BRANCH3,   BRANCH4,   BRANCH5,$/;"	e	file:
-BRANCH3	parser/parse_via.c	/^	BRANCH1, BRANCH2, BRANCH3, BRANCH4, BRANCH5,$/;"	e	file:
-BRANCH3	test/via_parse.c	/^		BRANCH1,   BRANCH2,   BRANCH3,   BRANCH4,   BRANCH5,$/;"	e	file:
-BRANCH4	parser/parse_via.c	/^	BRANCH1, BRANCH2, BRANCH3, BRANCH4, BRANCH5,$/;"	e	file:
-BRANCH4	test/via_parse.c	/^		BRANCH1,   BRANCH2,   BRANCH3,   BRANCH4,   BRANCH5,$/;"	e	file:
-BRANCH5	parser/parse_via.c	/^	BRANCH1, BRANCH2, BRANCH3, BRANCH4, BRANCH5,$/;"	e	file:
-BRANCH5	test/via_parse.c	/^		BRANCH1,   BRANCH2,   BRANCH3,   BRANCH4,   BRANCH5,$/;"	e	file:
-BRANCH_SEPARATOR	msg_translator.h	43;"	d
-BUFFER_INCREMENT	udp_server.h	37;"	d
-BUFFER_SIZE	modules/extcmd/extcmd_funcs.c	66;"	d	file:
-BUFSIZE	test/shoot2.c	33;"	d	file:
-BUF_LEN	modules/pa/notify.c	149;"	d	file:
-BUF_SIZE	config.h	141;"	d
-BUF_SIZE	test/re_test.c	62;"	d	file:
-BUF_SIZE	test/test.c	45;"	d	file:
-BUF_SIZE	test/udp_flood.c	60;"	d	file:
-BUF_SIZE	test/udp_flood_disc.c	62;"	d	file:
-BUF_SIZE	test/udp_test_proxy.c	58;"	d	file:
-BUF_SIZE	utils/serunix/serunix.c	54;"	d	file:
-BUILD_DEPENDS	freebsd/Makefile	/^BUILD_DEPENDS= ${LOCALBASE}\/include\/expat.h:${PORTSDIR}\/textproc\/expat* \\$/;"	m
-BUILD_DEPENDS	openbsd/Makefile	/^BUILD_DEPENDS= :expat-1.*:textproc\/expat \\$/;"	m
-BUILD_UH_ADDSIP	modules/cpl-c/cpl.c	470;"	d	file:
-BUILD_UH_SHM	modules/cpl-c/cpl.c	469;"	d	file:
-BUSY_BUFFER	modules/tm/t_cancel.h	51;"	d
-BUSY_NODE	modules/cpl-c/CPL_tree.h	40;"	d
-BUSY_STR	modules/cpl-c/CPL_tree.h	171;"	d
-BUSY_STR_LEN	modules/cpl-c/CPL_tree.h	172;"	d
-BUSY_VAL	modules/cpl-c/CPL_tree.h	170;"	d
-BYDAY_ATTR	modules/cpl-c/CPL_tree.h	112;"	d
-BYE1	parser/parse_fline.c	/^       BYE1, BYE2,$/;"	e	file:
-BYE2	parser/parse_fline.c	/^       BYE1, BYE2,$/;"	e	file:
-BYE_CMD	modules/extcmd/extcmd_funcs.c	60;"	d	file:
-BYE_LEN	parser/parse_fline.h	53;"	d
-BYHOUR_ATTR	modules/cpl-c/CPL_tree.h	111;"	d
-BYMINUTE_ATTR	modules/cpl-c/CPL_tree.h	110;"	d
-BYMONTHDAY_ATTR	modules/cpl-c/CPL_tree.h	113;"	d
-BYMONTH_ATTR	modules/cpl-c/CPL_tree.h	116;"	d
-BYSECOND_ATTR	modules/cpl-c/CPL_tree.h	109;"	d
-BYSETPOS_ATTR	modules/cpl-c/CPL_tree.h	118;"	d
-BYTEAOID	modules/postgres/pg_type.h	39;"	d
-BYWEEKNO_ATTR	modules/cpl-c/CPL_tree.h	115;"	d
-BYYEARDAY_ATTR	modules/cpl-c/CPL_tree.h	114;"	d
-Bi	modules/jabber/sha.c	71;"	d	file:
-Bool	modules/mediaproxy/mediaproxy.c	/^typedef int Bool;$/;"	t	file:
-CALC_H	utils/gen_ha1/calc.h	30;"	d
-CALL	parser/obsolete/strs.h	134;"	d
-CALLEE_PREFIX	modules/avp_db/avp_db.c	48;"	d	file:
-CALLEE_PREFIX	modules/avp_radius/avp_radius.c	51;"	d	file:
-CALLEE_PREFIX_LEN	modules/avp_db/avp_db.c	49;"	d	file:
-CALLEE_PREFIX_LEN	modules/avp_radius/avp_radius.c	52;"	d	file:
-CALLER_PREFIX	modules/avp_db/avp_db.c	45;"	d	file:
-CALLER_PREFIX	modules/avp_radius/avp_radius.c	48;"	d	file:
-CALLER_PREFIX_LEN	modules/avp_db/avp_db.c	46;"	d	file:
-CALLER_PREFIX_LEN	modules/avp_radius/avp_radius.c	49;"	d	file:
-CALLID	modules/tm/t_msgbuilder.h	46;"	d
-CALLID2	parser/obsolete/parse_hname.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID2	test/auto.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID3	parser/obsolete/parse_hname.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID3	test/auto.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID4	parser/obsolete/parse_hname.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID4	test/auto.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID5	parser/obsolete/parse_hname.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID5	test/auto.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID6	parser/obsolete/parse_hname.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID6	test/auto.c	/^		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,$/;"	e	file:
-CALLID_COL	modules/usrloc/ul_mod.c	65;"	d	file:
-CALLID_H	modules/tm/callid.h	35;"	d
-CALLID_LEN	modules/tm/t_msgbuilder.h	47;"	d
-CALLID_NR_LEN	modules/tm/callid.c	42;"	d	file:
-CALLID_SUFFIX_LEN	modules/tm/callid.c	48;"	d	file:
-CALl	parser/obsolete/strs.h	133;"	d
-CANCEL	parser/parse_fline.h	46;"	d
-CANCEL1	parser/parse_fline.c	/^       CANCEL1, CANCEL2, CANCEL3, CANCEL4, CANCEL5,$/;"	e	file:
-CANCEL2	parser/parse_fline.c	/^       CANCEL1, CANCEL2, CANCEL3, CANCEL4, CANCEL5,$/;"	e	file:
-CANCEL3	parser/parse_fline.c	/^       CANCEL1, CANCEL2, CANCEL3, CANCEL4, CANCEL5,$/;"	e	file:
-CANCEL4	parser/parse_fline.c	/^       CANCEL1, CANCEL2, CANCEL3, CANCEL4, CANCEL5,$/;"	e	file:
-CANCEL5	parser/parse_fline.c	/^       CANCEL1, CANCEL2, CANCEL3, CANCEL4, CANCEL5,$/;"	e	file:
-CANCELED	modules/tm/config.h	81;"	d
-CANCELING	modules/tm/config.h	79;"	d
-CANCEL_DONE	modules/tm/config.h	80;"	d
-CANCEL_LEN	parser/parse_fline.h	51;"	d
-CASE_ACCE_H	parser/case_acce.h	31;"	d
-CASE_ALLO_H	parser/case_allo.h	31;"	d
-CASE_AUTH_H	parser/case_auth.h	31;"	d
-CASE_CALL_H	parser/case_call.h	37;"	d
-CASE_CONT_H	parser/case_cont.h	38;"	d
-CASE_CSEQ_H	parser/case_cseq.h	32;"	d
-CASE_DIVE_H	parser/case_dive.h	32;"	d
-CASE_EVEN_H	parser/case_even.h	32;"	d
-CASE_EXPI_H	parser/case_expi.h	37;"	d
-CASE_FROM_H	parser/case_from.h	32;"	d
-CASE_MAX_H	parser/case_max.h	32;"	d
-CASE_ORGA_H	parser/case_orga.h	32;"	d
-CASE_PRIO_H	parser/case_prio.h	32;"	d
-CASE_PROX_H	parser/case_prox.h	37;"	d
-CASE_RECO_H	parser/case_reco.h	32;"	d
-CASE_REMO_H	parser/case_remo.h	31;"	d
-CASE_REQU_H	parser/case_requ.h	37;"	d
-CASE_ROUT_H	parser/case_rout.h	32;"	d
-CASE_SIP_H	parser/case_sip.h	2;"	d
-CASE_SUBJ_H	parser/case_subj.h	32;"	d
-CASE_SUPP_H	parser/case_supp.h	32;"	d
-CASE_TO_H	parser/case_to.h	37;"	d
-CASE_UNSU_H	parser/case_unsu.h	37;"	d
-CASE_USER_H	parser/case_user.h	31;"	d
-CASE_VIA_H	parser/case_via.h	36;"	d
-CASE_WWW_H	parser/case_www.h	32;"	d
-CASHOID	modules/postgres/pg_type.h	66;"	d
-CATEGORIES	freebsd/Makefile	/^CATEGORIES= net$/;"	m
-CATEGORIES	netbsd/Makefile	/^CATEGORIES= net$/;"	m
-CATEGORIES	openbsd/Makefile	/^CATEGORIES= net$/;"	m
-CATE_CASE	parser/case_www.h	35;"	d
-CAlL	parser/obsolete/strs.h	132;"	d
-CAll	parser/obsolete/strs.h	131;"	d
-CC	test/locking/Makefile	/^CC=gcc$/;"	m
-CDS_HDR	modules/sms/libsms_modem.c	33;"	d	file:
-CDS_HDR_LEN	modules/sms/libsms_modem.c	34;"	d	file:
-CDS_REPORT	modules/sms/sms_funcs.h	63;"	d
-CE_MSG_CODE	modules/acc/diam_message.h	65;"	d
-CE_MSG_CODE	modules/acc/diam_message.h	75;"	d
-CE_MSG_CODE	modules/auth_diameter/diameter_msg.h	65;"	d
-CE_MSG_CODE	modules/auth_diameter/diameter_msg.h	75;"	d
-CFG_DIR	modules/dbtext/dbt_base.c	48;"	d	file:
-CFG_FILE	config.h	46;"	d
-CFLAGS	test/locking/Makefile	/^CFLAGS= -O2 -Wall$/;"	m
-CHALLENGE_H	modules/auth/challenge.h	32;"	d
-CHAROID	modules/postgres/pg_type.h	40;"	d
-CHARSET_H	modules/sms/libsms_charset.h	16;"	d
-CHASH	modules/pdt/domains.h	30;"	d
-CHECKS_H	modules/uri/checks.h	37;"	d
-CHECKS_H	modules/uri_db/checks.h	36;"	d
-CHECKS_H	modules/uri_radius/checks.h	31;"	d
-CHECK_INTERVAL	modules/mediaproxy/mediaproxy.c	1172;"	d	file:
-CHECK_VIA	cfg.tab.c	/^     CHECK_VIA = 321,$/;"	e	enum:yytokentype	file:
-CHECK_VIA	cfg.tab.c	263;"	d	file:
-CHECK_VIA	cfg.tab.h	/^     CHECK_VIA = 321,$/;"	e	enum:yytokentype
-CHECK_VIA	cfg.tab.h	239;"	d
-CHILDREN	cfg.tab.c	/^     CHILDREN = 320,$/;"	e	enum:yytokentype	file:
-CHILDREN	cfg.tab.c	262;"	d	file:
-CHILDREN	cfg.tab.h	/^     CHILDREN = 320,$/;"	e	enum:yytokentype
-CHILDREN	cfg.tab.h	238;"	d
-CHILD_NO	config.h	57;"	d
-CHROOT	cfg.tab.c	/^     CHROOT = 341,$/;"	e	enum:yytokentype	file:
-CHROOT	cfg.tab.c	283;"	d	file:
-CHROOT	cfg.tab.h	/^     CHROOT = 341,$/;"	e	enum:yytokentype
-CHROOT	cfg.tab.h	259;"	d
-CIDOID	modules/postgres/pg_type.h	51;"	d
-CIDROID	modules/postgres/pg_type.h	69;"	d
-CID_SEP	modules/tm/callid.c	56;"	d	file:
-CIRCLEOID	modules/postgres/pg_type.h	65;"	d
-CLASS_ANY	parser/parse_param.h	/^	CLASS_ANY = 0,  \/* Any parameters, well-known hooks will be not used *\/$/;"	e	enum:pclass
-CLASS_CONTACT	parser/parse_param.h	/^	CLASS_CONTACT,  \/* Contact parameters *\/$/;"	e	enum:pclass
-CLASS_URI	parser/parse_param.h	/^	CLASS_URI       \/* URI parameters *\/$/;"	e	enum:pclass
-CLEANUP_EOL	config.h	168;"	d
-CLEAR_ATTR	modules/cpl-c/CPL_tree.h	142;"	d
-CLONE_LUMP_LIST	modules/tm/sip_msg.c	729;"	d	file:
-CMDF_ST	route_struct.h	/^		EXPR_ST, ACTIONS_ST, CMDF_ST, MODFIXUP_ST, URIHOST_ST, URIPORT_ST,$/;"	e
-CMD_BUFFER_MAX	modules/tm/t_fifo.c	100;"	d	file:
-CMD_SEPARATOR	fifo_server.h	35;"	d
-COLON	cfg.tab.c	/^     COLON = 398,$/;"	e	enum:yytokentype	file:
-COLON	cfg.tab.c	340;"	d	file:
-COLON	cfg.tab.h	/^     COLON = 398,$/;"	e	enum:yytokentype
-COLON	cfg.tab.h	316;"	d
-COMMA	cfg.tab.c	/^     COMMA = 387,$/;"	e	enum:yytokentype	file:
-COMMA	cfg.tab.c	329;"	d	file:
-COMMA	cfg.tab.h	/^     COMMA = 387,$/;"	e	enum:yytokentype
-COMMA	cfg.tab.h	305;"	d
-COMMAND_CODE_SIZE	modules/acc/diam_message.h	43;"	d
-COMMAND_CODE_SIZE	modules/auth_diameter/diameter_msg.h	43;"	d
-COMMENT	freebsd/Makefile	/^COMMENT= Sip Express Router, very fast and configurable SIP proxy$/;"	m
-COMMENT	lex.yy.c	1239;"	d	file:
-COMMENT	netbsd/Makefile	/^COMMENT= "SIP Express Router"$/;"	m
-COMMENT	openbsd/Makefile	/^COMMENT= "SIP Express Router"$/;"	m
-COMMENTFILE	freebsd/Makefile	/^COMMENTFILE= $/;"	m
-COMMENT_ATTR	modules/cpl-c/CPL_tree.h	186;"	d
-COMMENT_LN	lex.yy.c	1240;"	d	file:
-COMMENT_LN_S	lex.yy.c	1199;"	d	file:
-COMMENT_S	lex.yy.c	1198;"	d	file:
-COMMON_H	modules/auth/common.h	31;"	d
-COMMON_H	modules/mangler/common.h	35;"	d
-COMMON_H	modules/pa/common.h	31;"	d
-COMMON_H	modules/registrar/common.h	32;"	d
-COND_FALSE	lump_struct.h	/^enum lump_conditions {	COND_FALSE,         \/* always false *\/$/;"	e	enum:lump_conditions
-COND_IF_DIFF_AF	lump_struct.h	/^						COND_IF_DIFF_AF,    \/* true if RCV af != SND af *\/$/;"	e	enum:lump_conditions
-COND_IF_DIFF_IP	lump_struct.h	/^						COND_IF_DIFF_IP,    \/* true if RCV ip != SND ip *\/$/;"	e	enum:lump_conditions
-COND_IF_DIFF_PORT	lump_struct.h	/^						COND_IF_DIFF_PORT,  \/* true if RCV port != SND port *\/$/;"	e	enum:lump_conditions
-COND_IF_DIFF_PROTO	lump_struct.h	/^						COND_IF_DIFF_PROTO, \/* true if RCV proto != SND proto *\/$/;"	e	enum:lump_conditions
-COND_IF_DIFF_REALMS	lump_struct.h	/^						COND_IF_DIFF_REALMS,\/* true if RCV realm != SND realm *\/$/;"	e	enum:lump_conditions
-COND_IF_RAND	lump_struct.h	/^						COND_IF_RAND        \/* 50-50 random prob.of being true*\/$/;"	e	enum:lump_conditions
-COND_TRUE	lump_struct.h	/^						COND_TRUE,          \/* always true *\/$/;"	e	enum:lump_conditions
-CONN_CLOSED	modules/acc/diam_tcp.h	51;"	d
-CONN_CLOSED	modules/auth_diameter/tcp_comm.h	47;"	d
-CONN_DESTROY	tcp_conn.h	/^enum conn_cmds { CONN_DESTROY=-3, CONN_ERROR=-2, CONN_EOF=-1, CONN_RELEASE, $/;"	e	enum:conn_cmds
-CONN_EOF	tcp_conn.h	/^enum conn_cmds { CONN_DESTROY=-3, CONN_ERROR=-2, CONN_EOF=-1, CONN_RELEASE, $/;"	e	enum:conn_cmds
-CONN_ERROR	modules/acc/diam_tcp.h	50;"	d
-CONN_ERROR	modules/auth_diameter/tcp_comm.h	46;"	d
-CONN_ERROR	tcp_conn.h	/^enum conn_cmds { CONN_DESTROY=-3, CONN_ERROR=-2, CONN_EOF=-1, CONN_RELEASE, $/;"	e	enum:conn_cmds
-CONN_GET_FD	tcp_conn.h	/^					CONN_GET_FD, CONN_NEW };$/;"	e	enum:conn_cmds
-CONN_NEW	tcp_conn.h	/^					CONN_GET_FD, CONN_NEW };$/;"	e	enum:conn_cmds
-CONN_RELEASE	tcp_conn.h	/^enum conn_cmds { CONN_DESTROY=-3, CONN_ERROR=-2, CONN_EOF=-1, CONN_RELEASE, $/;"	e	enum:conn_cmds
-CONN_SUCCESS	modules/acc/diam_tcp.h	49;"	d
-CONN_SUCCESS	modules/auth_diameter/tcp_comm.h	45;"	d
-CONT	parser/obsolete/strs.h	161;"	d
-CONTACT	dset.c	41;"	d	file:
-CONTACT2	parser/obsolete/parse_hname.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6, $/;"	e	file:
-CONTACT2	test/auto.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6,$/;"	e	file:
-CONTACT3	parser/obsolete/parse_hname.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6, $/;"	e	file:
-CONTACT3	test/auto.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6,$/;"	e	file:
-CONTACT4	parser/obsolete/parse_hname.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6, $/;"	e	file:
-CONTACT4	test/auto.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6,$/;"	e	file:
-CONTACT5	parser/obsolete/parse_hname.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6, $/;"	e	file:
-CONTACT5	test/auto.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6,$/;"	e	file:
-CONTACT6	parser/obsolete/parse_hname.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6, $/;"	e	file:
-CONTACT6	test/auto.c	/^		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6,$/;"	e	file:
-CONTACT_BEGIN	modules/registrar/reply.c	53;"	d	file:
-CONTACT_BEGIN_LEN	modules/registrar/reply.c	54;"	d	file:
-CONTACT_COL	modules/usrloc/ul_mod.c	62;"	d	file:
-CONTACT_DELIM	dset.c	44;"	d	file:
-CONTACT_DELIM_LEN	dset.c	45;"	d	file:
-CONTACT_END	modules/pa/pidf.c	88;"	d	file:
-CONTACT_END_L	modules/pa/pidf.c	89;"	d	file:
-CONTACT_ETAG	modules/pa/pidf.c	91;"	d	file:
-CONTACT_ETAG_L	modules/pa/pidf.c	92;"	d	file:
-CONTACT_H	parser/contact/contact.h	36;"	d
-CONTACT_LEN	dset.c	42;"	d	file:
-CONTACT_MIDDLE	modules/pa/lpidf.c	46;"	d	file:
-CONTACT_MIDDLE_L	modules/pa/lpidf.c	47;"	d	file:
-CONTACT_OPS_H	modules/mangler/contact_ops.h	37;"	d
-CONTACT_PREFIX	modules/msilo/msfuncs.c	44;"	d	file:
-CONTACT_PREFIX	modules/msilo/msilo.c	70;"	d	file:
-CONTACT_PREFIX_LEN	modules/msilo/msfuncs.c	46;"	d	file:
-CONTACT_PREFIX_LEN	modules/msilo/msilo.c	72;"	d	file:
-CONTACT_SEP	modules/registrar/reply.c	62;"	d	file:
-CONTACT_SEP_LEN	modules/registrar/reply.c	63;"	d	file:
-CONTACT_START	modules/pa/lpidf.c	43;"	d	file:
-CONTACT_START	modules/pa/pidf.c	79;"	d	file:
-CONTACT_START_L	modules/pa/lpidf.c	44;"	d	file:
-CONTACT_START_L	modules/pa/pidf.c	80;"	d	file:
-CONTACT_SUFFIX	modules/msilo/msfuncs.c	45;"	d	file:
-CONTACT_SUFFIX	modules/msilo/msilo.c	71;"	d	file:
-CONTACT_SUFFIX_LEN	modules/msilo/msfuncs.c	47;"	d	file:
-CONTACT_SUFFIX_LEN	modules/msilo/msilo.c	73;"	d	file:
-CONTAINS_ATTR	modules/cpl-c/CPL_tree.h	84;"	d
-CONTENT_CASE	parser/case_cont.h	84;"	d
-CONTENT_LENGTH	config.h	73;"	d
-CONTENT_LENGTH_LEN	config.h	74;"	d
-CONTENT_TYPE	modules/pa/notify.c	50;"	d	file:
-CONTENT_TYPE_HDR	modules/cpl-c/cpl.c	689;"	d	file:
-CONTENT_TYPE_HDR	modules/sms/sms_funcs.c	98;"	d	file:
-CONTENT_TYPE_HDR_LEN	modules/cpl-c/cpl.c	690;"	d	file:
-CONTENT_TYPE_HDR_LEN	modules/sms/sms_funcs.c	99;"	d	file:
-CONTENT_TYPE_L	modules/pa/notify.c	51;"	d	file:
-CONT_TYPE_LPIDF	modules/pa/notify.c	68;"	d	file:
-CONT_TYPE_LPIDF_L	modules/pa/notify.c	69;"	d	file:
-CONT_TYPE_PIDF	modules/pa/notify.c	71;"	d	file:
-CONT_TYPE_PIDF_L	modules/pa/notify.c	72;"	d	file:
-CONT_TYPE_WINFO	modules/pa/notify.c	74;"	d	file:
-CONT_TYPE_WINFO_L	modules/pa/notify.c	75;"	d	file:
-CONT_TYPE_XCAP_CHANGE	modules/pa/notify.c	77;"	d	file:
-CONT_TYPE_XCAP_CHANGE_L	modules/pa/notify.c	78;"	d	file:
-CONT_TYPE_XPIDF	modules/pa/notify.c	65;"	d	file:
-CONT_TYPE_XPIDF_L	modules/pa/notify.c	66;"	d	file:
-CON_CONNECTED	modules/postgres/con_postgres.h	64;"	d
-CON_CONNECTION	modules/mysql/my_con.h	51;"	d
-CON_CONNECTION	modules/postgres/con_postgres.h	61;"	d
-CON_FILE	modules/flatstore/flat_con.h	48;"	d
-CON_FP	modules/postgres/con_postgres.h	62;"	d
-CON_PID	modules/postgres/con_postgres.h	63;"	d
-CON_POSTGRES_H	modules/postgres/con_postgres.h	41;"	d
-CON_RESULT	modules/mysql/my_con.h	50;"	d
-CON_RESULT	modules/postgres/con_postgres.h	60;"	d
-CON_ROW	modules/mysql/my_con.h	52;"	d
-CON_SQLURL	modules/postgres/con_postgres.h	59;"	d
-CON_TABLE	db/db_con.h	46;"	d
-CON_TAIL	db/db_con.h	47;"	d
-CON_TIMESTAMP	modules/mysql/my_con.h	53;"	d
-CONt	parser/obsolete/strs.h	160;"	d
-COUNT_ATTR	modules/cpl-c/CPL_tree.h	108;"	d
-COnT	parser/obsolete/strs.h	159;"	d
-COnt	parser/obsolete/strs.h	158;"	d
-CPL_ACCEPTLANG_DUPLICATED	modules/cpl-c/cpl_run.h	52;"	d
-CPL_FORCE_STATEFUL	modules/cpl-c/cpl_run.h	43;"	d
-CPL_FROM_DUPLICATED	modules/cpl-c/cpl_run.h	48;"	d
-CPL_IS_STATEFUL	modules/cpl-c/cpl_run.h	42;"	d
-CPL_LOC_DUPL	modules/cpl-c/loc_set.h	42;"	d
-CPL_LOC_NATED	modules/cpl-c/loc_set.h	43;"	d
-CPL_LOC_SET_MODIFIED	modules/cpl-c/cpl_run.h	44;"	d
-CPL_LOG_CMD	modules/cpl-c/cpl_nonsig.h	48;"	d
-CPL_MAIL_CMD	modules/cpl-c/cpl_nonsig.h	49;"	d
-CPL_NODE	modules/cpl-c/CPL_tree.h	33;"	d
-CPL_ORGANIZATION_DUPLICATED	modules/cpl-c/cpl_run.h	50;"	d
-CPL_PRIORITY_DUPLICATED	modules/cpl-c/cpl_run.h	53;"	d
-CPL_PROXY_DONE	modules/cpl-c/cpl_run.h	45;"	d
-CPL_RUNTIME_ERROR	modules/cpl-c/cpl_run.c	62;"	d	file:
-CPL_RUN_INCOMING	modules/cpl-c/cpl_run.h	41;"	d
-CPL_RUN_OUTGOING	modules/cpl-c/cpl_run.h	40;"	d
-CPL_RURI_DUPLICATED	modules/cpl-c/cpl_run.h	46;"	d
-CPL_SCRIPT	modules/cpl-c/cpl.c	677;"	d	file:
-CPL_SCRIPT_ERROR	modules/cpl-c/cpl_run.c	61;"	d	file:
-CPL_SCRIPT_LEN	modules/cpl-c/cpl.c	678;"	d	file:
-CPL_SUBJECT_DUPLICATED	modules/cpl-c/cpl_run.h	49;"	d
-CPL_TO_CONTINUE	modules/cpl-c/cpl_run.c	63;"	d	file:
-CPL_TO_DUPLICATED	modules/cpl-c/cpl_run.h	47;"	d
-CPL_USERAGENT_DUPLICATED	modules/cpl-c/cpl_run.h	51;"	d
-CPORT	modules/nathelper/nathelper.c	179;"	d	file:
-CR	cfg.tab.c	/^     CR = 397,$/;"	e	enum:yytokentype	file:
-CR	cfg.tab.c	339;"	d	file:
-CR	cfg.tab.h	/^     CR = 397,$/;"	e	enum:yytokentype
-CR	cfg.tab.h	315;"	d
-CRC16_LEN	crc.h	8;"	d
-CRLF	config.h	90;"	d
-CRLF	modules/pa/location.c	59;"	d	file:
-CRLF	modules/pa/lpidf.c	55;"	d	file:
-CRLF	modules/pa/notify.c	89;"	d	file:
-CRLF	modules/pa/pidf.c	43;"	d	file:
-CRLF	modules/pa/watcher.c	536;"	d	file:
-CRLF	modules/pa/xpidf.c	36;"	d	file:
-CRLF_L	modules/pa/location.c	60;"	d	file:
-CRLF_L	modules/pa/lpidf.c	56;"	d	file:
-CRLF_L	modules/pa/notify.c	90;"	d	file:
-CRLF_L	modules/pa/pidf.c	44;"	d	file:
-CRLF_L	modules/pa/watcher.c	537;"	d	file:
-CRLF_L	modules/pa/xpidf.c	37;"	d	file:
-CRLF_LEN	config.h	91;"	d
-CSEQ	modules/tm/t_msgbuilder.h	42;"	d
-CSEQ	parser/obsolete/strs.h	117;"	d
-CSEQ2	parser/obsolete/parse_hname.c	/^		C_START, CSEQ2, CSEQ3,$/;"	e	file:
-CSEQ2	test/auto.c	/^		C_START, CSEQ2, CSEQ3,$/;"	e	file:
-CSEQ3	parser/obsolete/parse_hname.c	/^		C_START, CSEQ2, CSEQ3,$/;"	e	file:
-CSEQ3	test/auto.c	/^		C_START, CSEQ2, CSEQ3,$/;"	e	file:
-CSEQ_COL	modules/usrloc/ul_mod.c	66;"	d	file:
-CSEQ_LEN	modules/tm/t_msgbuilder.h	43;"	d
-CSEq	parser/obsolete/strs.h	116;"	d
-CSTRINGOID	modules/postgres/pg_type.h	89;"	d
-CS_DIRTY	modules/usrloc/ucontact.h	/^	CS_DIRTY       \/* Update contact - not flushed yet *\/$/;"	e	enum:cstate
-CS_NEW	modules/usrloc/ucontact.h	/^	CS_NEW,        \/* New contact - not flushed yet *\/$/;"	e	enum:cstate
-CS_SYNC	modules/usrloc/ucontact.h	/^	CS_SYNC,       \/* Synchronized contact with the database *\/$/;"	e	enum:cstate
-CSeQ	parser/obsolete/strs.h	115;"	d
-CSeq	parser/obsolete/strs.h	114;"	d
-CT_CHARSET	modules/msilo/msfuncs.h	35;"	d
-CT_MSGR	modules/msilo/msfuncs.h	36;"	d
-CT_TYPE	modules/msilo/msfuncs.h	34;"	d
-CURR_POS	modules/pike/ip_tree.h	53;"	d
-C_START	parser/obsolete/parse_hname.c	/^		C_START, CSEQ2, CSEQ3,$/;"	e	file:
-C_START	test/auto.c	/^		C_START, CSEQ2, CSEQ3,$/;"	e	file:
-CaLL	parser/obsolete/strs.h	130;"	d
-CaLl	parser/obsolete/strs.h	129;"	d
-CalL	parser/obsolete/strs.h	128;"	d
-Call	parser/obsolete/strs.h	127;"	d
-CheckLocalPartyProc	modules/mediaproxy/mediaproxy.c	/^typedef int  (*CheckLocalPartyProc)(struct sip_msg* msg, char* s1, char* s2);$/;"	t	file:
-Ci	modules/jabber/sha.c	72;"	d	file:
-ClientNatTest	modules/mediaproxy/mediaproxy.c	/^ClientNatTest(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-CoNT	parser/obsolete/strs.h	157;"	d
-CoNt	parser/obsolete/strs.h	156;"	d
-ConT	parser/obsolete/strs.h	155;"	d
-Cont	parser/obsolete/strs.h	154;"	d
-CsEQ	parser/obsolete/strs.h	113;"	d
-CsEq	parser/obsolete/strs.h	112;"	d
-CseQ	parser/obsolete/strs.h	111;"	d
-Cseq	parser/obsolete/strs.h	110;"	d
-CvtHex	utils/gen_ha1/calc.c	/^void CvtHex(HASH Bin, HASHHEX Hex)$/;"	f
-DAB	modules/postgres/aug_debug.h	115;"	d
-DAB	modules/postgres/aug_debug.h	137;"	d
-DABBULK	modules/postgres/aug_debug.h	117;"	d
-DABBULK	modules/postgres/aug_debug.h	139;"	d
-DABDUMP	modules/postgres/aug_debug.h	119;"	d
-DABDUMP	modules/postgres/aug_debug.h	141;"	d
-DABL	modules/postgres/aug_debug.h	114;"	d
-DABL	modules/postgres/aug_debug.h	136;"	d
-DABLEVEL	modules/postgres/aug_debug.h	106;"	d
-DABLEVEL	modules/postgres/aug_debug.h	135;"	d
-DABLOAD	modules/postgres/aug_debug.h	123;"	d
-DABLOAD	modules/postgres/aug_debug.h	145;"	d
-DABL_NOP	modules/postgres/aug_debug.h	130;"	d
-DABL_NOP	modules/postgres/aug_debug.h	132;"	d
-DABNAME	modules/postgres/aug_debug.h	102;"	d
-DABNAME	modules/postgres/aug_debug.h	134;"	d
-DABRESET	modules/postgres/aug_debug.h	122;"	d
-DABRESET	modules/postgres/aug_debug.h	144;"	d
-DABSET	modules/postgres/aug_debug.h	121;"	d
-DABSET	modules/postgres/aug_debug.h	143;"	d
-DABTEXT	modules/postgres/aug_debug.h	118;"	d
-DABTEXT	modules/postgres/aug_debug.h	140;"	d
-DABTRACE	modules/postgres/aug_debug.h	116;"	d
-DABTRACE	modules/postgres/aug_debug.h	138;"	d
-DAB_BULK	modules/postgres/aug_debug.h	98;"	d
-DAB_OFF	modules/postgres/aug_debug.h	95;"	d
-DAB_STD	modules/postgres/aug_debug.h	97;"	d
-DAB_TRACE	modules/postgres/aug_debug.h	96;"	d
-DAB_UNKNOWN	modules/postgres/aug_debug.h	94;"	d
-DATEOID	modules/postgres/pg_type.h	73;"	d
-DATE_LEN	modules/sms/sms_funcs.h	59;"	d
-DATE_TYPE	db/db_fifo.c	79;"	d	file:
-DATE_TYPE_LEN	db/db_fifo.c	80;"	d	file:
-DBASE_H	modules/mysql/dbase.h	32;"	d
-DBASE_H	modules/postgres/dbase.h	41;"	d
-DBG	dprint.h	175;"	d
-DBG	dprint.h	177;"	d
-DBG	dprint.h	181;"	d
-DBG	dprint.h	183;"	d
-DBG	test/p_uri.c	6;"	d	file:
-DBG_F_MALLOC	mem/mem.h	52;"	d
-DBG_F_MALLOC	mem/shm_mem.h	66;"	d
-DBG_F_MALLOC_STR	version.h	142;"	d
-DBG_F_MALLOC_STR	version.h	144;"	d
-DBG_QM_MALLOC	mem/mem.h	49;"	d
-DBG_QM_MALLOC	mem/shm_mem.h	63;"	d
-DBG_QM_MALLOC_STR	version.h	136;"	d
-DBG_QM_MALLOC_STR	version.h	138;"	d
-DBT_CON_CONNECTION	modules/dbtext/dbt_res.h	63;"	d
-DBT_CON_RESULT	modules/dbtext/dbt_res.h	64;"	d
-DBT_CON_ROW	modules/dbtext/dbt_res.h	65;"	d
-DBT_DELIM	modules/dbtext/dbt_lib.h	56;"	d
-DBT_DELIM_C	modules/dbtext/dbt_lib.h	57;"	d
-DBT_DELIM_R	modules/dbtext/dbt_lib.h	58;"	d
-DBT_FLAG_AUTO	modules/dbtext/dbt_lib.h	47;"	d
-DBT_FLAG_NULL	modules/dbtext/dbt_lib.h	46;"	d
-DBT_FLAG_UNSET	modules/dbtext/dbt_lib.h	45;"	d
-DBT_FL_IGN	modules/dbtext/dbt_lib.h	52;"	d
-DBT_FL_SET	modules/dbtext/dbt_lib.h	53;"	d
-DBT_FL_UNSET	modules/dbtext/dbt_lib.h	54;"	d
-DBT_ID	modules/dbtext/dbt_base.c	51;"	d	file:
-DBT_ID_LEN	modules/dbtext/dbt_base.c	52;"	d	file:
-DBT_PATH_LEN	modules/dbtext/dbt_base.c	53;"	d	file:
-DBT_TBFL_MODI	modules/dbtext/dbt_lib.h	50;"	d
-DBT_TBFL_ZERO	modules/dbtext/dbt_lib.h	49;"	d
-DB_BITMAP	db/db_val.h	/^	DB_BITMAP      \/* Bitmap of flags *\/$/;"	e
-DB_BLOB	db/db_val.h	/^	DB_BLOB,       \/* Large binary object *\/$/;"	e
-DB_CAPABILITY	db/db_cap.h	55;"	d
-DB_CAP_ALL	db/db_cap.h	48;"	d
-DB_CAP_DELETE	db/db_cap.h	/^	DB_CAP_DELETE =    1 << 3,  \/* Database driver can delete data from database *\/$/;"	e	enum:db_cap
-DB_CAP_H	db/db_cap.h	29;"	d
-DB_CAP_INSERT	db/db_cap.h	/^	DB_CAP_INSERT =    1 << 2,  \/* Database driver can insert data into database *\/$/;"	e	enum:db_cap
-DB_CAP_QUERY	db/db_cap.h	/^	DB_CAP_QUERY =     1 << 0,  \/* Database driver can query database *\/$/;"	e	enum:db_cap
-DB_CAP_RAW_QUERY	db/db_cap.h	/^	DB_CAP_RAW_QUERY = 1 << 1,  \/* Database driver can perform raw queries *\/$/;"	e	enum:db_cap
-DB_CAP_UPDATE	db/db_cap.h	/^	DB_CAP_UPDATE =    1 << 4   \/* Database driver can update data in the database *\/$/;"	e	enum:db_cap
-DB_CON_H	db/db_con.h	31;"	d
-DB_DATETIME	db/db_val.h	/^	DB_DATETIME,   \/* Date and time *\/$/;"	e
-DB_DOUBLE	db/db_val.h	/^        DB_DOUBLE,     \/* double data type *\/$/;"	e
-DB_GET_ERR	modules/cpl-c/cpl_loader.c	416;"	d	file:
-DB_H	db/db.h	35;"	d
-DB_INT	db/db_val.h	/^	DB_INT,        \/* 32-bit integer *\/$/;"	e
-DB_KEY_CODE	modules/pdt/pdt.c	63;"	d	file:
-DB_KEY_H	db/db_key.h	30;"	d
-DB_KEY_NAME	modules/pdt/pdt.c	62;"	d	file:
-DB_MOD_H	modules/mysql/db_mod.h	37;"	d
-DB_OP_H	db/db_op.h	30;"	d
-DB_RES_H	db/db_res.h	30;"	d
-DB_RMV_ERR	modules/cpl-c/cpl_loader.c	352;"	d	file:
-DB_ROW_H	db/db_row.h	30;"	d
-DB_SAVE_ERR	modules/cpl-c/cpl_loader.c	248;"	d	file:
-DB_STR	db/db_val.h	/^	DB_STR,        \/* str structure *\/$/;"	e
-DB_STRING	db/db_val.h	/^	DB_STRING,     \/* Zero-terminated string *\/$/;"	e
-DB_TABLE	db/example/dbexample.c	35;"	d	file:
-DB_TABLE	modules/avpops/avpops.c	/^static char *DB_TABLE      = 0;  \/* table *\/$/;"	v	file:
-DB_TABLE	modules/cpl-c/cpl.c	/^static char *DB_TABLE      = 0;  \/* *\/$/;"	v	file:
-DB_TABLE	modules/dbtext/dbtex/dbtex.c	41;"	d	file:
-DB_URL	db/example/dbexample.c	34;"	d	file:
-DB_URL	modules/avpops/avpops.c	/^static char *DB_URL        = 0;  \/* database url *\/$/;"	v	file:
-DB_URL	modules/cpl-c/cpl.c	/^static char *DB_URL        = 0;  \/* database url *\/$/;"	v	file:
-DB_URL	modules/dbtext/dbtex/dbtex.c	36;"	d	file:
-DB_UTILS_H	modules/postgres/db_utils.h	41;"	d
-DB_VAL_H	db/db_val.h	30;"	d
-DEBUG	cfg.tab.c	/^     DEBUG = 310,$/;"	e	enum:yytokentype	file:
-DEBUG	cfg.tab.c	252;"	d	file:
-DEBUG	cfg.tab.h	/^     DEBUG = 310,$/;"	e	enum:yytokentype
-DEBUG	cfg.tab.h	228;"	d
-DEBUG_DMALLOC_STR	version.h	148;"	d
-DEBUG_DMALLOC_STR	version.h	150;"	d
-DECODE_ALL_CONTACTS	modules/mangler/contact_ops.h	47;"	d
-DEFAULT_ACTION	modules/cpl-c/cpl_run.c	60;"	d	file:
-DEFAULT_ALLOW_FILE	modules/permissions/permissions.h	43;"	d
-DEFAULT_CSEQ	modules/tm/uac.h	41;"	d
-DEFAULT_DB_URL	config.h	189;"	d
-DEFAULT_DB_URL_LEN	config.h	190;"	d
-DEFAULT_DENY_FILE	modules/permissions/permissions.h	44;"	d
-DEFAULT_FIFO_DIR	config.h	157;"	d
-DEFAULT_LOG_FMT	modules/acc/defs.h	37;"	d
-DEFAULT_LOG_NAME	modules/cpl-c/cpl_nonsig.c	58;"	d	file:
-DEFAULT_LOG_NAME_LEN	modules/cpl-c/cpl_nonsig.c	59;"	d	file:
-DEFAULT_NODE	modules/cpl-c/CPL_tree.h	41;"	d
-DEFAULT_O	route_struct.h	/^	   DSTIP_O, DSTPORT_O, PROTO_O, AF_O, MSGLEN_O, DEFAULT_O, ACTION_O,$/;"	e
-DEFAULT_RODB_URL	config.h	192;"	d
-DEFAULT_RODB_URL_LEN	config.h	193;"	d
-DEFAULT_RT	config.h	62;"	d
-DEFAULT_SEPARATOR	modules/mangler/contact_ops.h	49;"	d
-DEFAULT_TCP_CONNECT_TIMEOUT	tcp_conn.h	51;"	d
-DEFAULT_TCP_SEND_TIMEOUT	tcp_conn.h	49;"	d
-DEFAULT_TIMEOUT	utils/serunix/serunix.c	55;"	d	file:
-DEFS	Makefile	/^DEFS:=$/;"	m
-DEFS	test/locking/Makefile	/^DEFS=$/;"	m
-DEFS_H	modules/mysql/defs.h	32;"	d
-DEFS_H	modules/postgres/defs.h	41;"	d
-DELETE_CMD	db/db_fifo.c	53;"	d	file:
-DELETE_LIST	modules/tm/timer.h	/^	DELETE_LIST,$/;"	e	enum:lists
-DELETE_STR	db/db_fifo.c	61;"	d	file:
-DELETE_STR_LEN	db/db_fifo.c	62;"	d	file:
-DEL_TIME_OUT	modules/tm/config.h	58;"	d
-DEPENDS	netbsd/Makefile	/^DEPENDS= expat-[0-9]*:..\/..\/textproc\/expat \\$/;"	m
-DESTINATION_VAL	modules/cpl-c/CPL_tree.h	73;"	d
-DETACHED_LIST	modules/tm/timer.c	127;"	d	file:
-DHASH	modules/pdt/domains.h	29;"	d
-DIAMETER_AUTHORIZE_H	modules/auth_diameter/authorize.h	35;"	d
-DIAMETER_DEFS	modules/auth_diameter/defs.h	2;"	d
-DIAM_ACC_FMT	modules/acc/defs.h	59;"	d
-DIAM_ACC_H	modules/acc/diam_dict.h	4;"	d
-DIFF	cfg.tab.c	/^     DIFF = 376,$/;"	e	enum:yytokentype	file:
-DIFF	cfg.tab.c	318;"	d	file:
-DIFF	cfg.tab.h	/^     DIFF = 376,$/;"	e	enum:yytokentype
-DIFF	cfg.tab.h	294;"	d
-DIFF_OP	route_struct.h	/^enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };$/;"	e
-DIGEST_H	parser/digest/digest.h	32;"	d
-DIGEST_KEYS_H	parser/digest/digest_keys.h	32;"	d
-DIGEST_MD5	modules/auth/challenge.c	68;"	d	file:
-DIGEST_MD5_LEN	modules/auth/challenge.c	69;"	d	file:
-DIGEST_NONCE	modules/auth/challenge.c	66;"	d	file:
-DIGEST_NONCE_LEN	modules/auth/challenge.c	67;"	d	file:
-DIGEST_PARSER_H	parser/digest/digest_parser.h	38;"	d
-DIGEST_REALM	modules/auth/challenge.c	64;"	d	file:
-DIGEST_REALM_LEN	modules/auth/challenge.c	65;"	d	file:
-DIGEST_SCHEME	parser/digest/digest_parser.c	43;"	d	file:
-DIG_LEN	parser/digest/digest_parser.c	44;"	d	file:
-DISABLE_CACHE	modules/permissions/permissions.h	65;"	d
-DISABLE_CORE	cfg.tab.c	/^     DISABLE_CORE = 366,$/;"	e	enum:yytokentype	file:
-DISABLE_CORE	cfg.tab.c	308;"	d	file:
-DISABLE_CORE	cfg.tab.h	/^     DISABLE_CORE = 366,$/;"	e	enum:yytokentype
-DISABLE_CORE	cfg.tab.h	284;"	d
-DISABLE_NAGLE_STR	version.h	63;"	d
-DISABLE_NAGLE_STR	version.h	65;"	d
-DISABLE_TCP	cfg.tab.c	/^     DISABLE_TCP = 344,$/;"	e	enum:yytokentype	file:
-DISABLE_TCP	cfg.tab.c	286;"	d	file:
-DISABLE_TCP	cfg.tab.h	/^     DISABLE_TCP = 344,$/;"	e	enum:yytokentype
-DISABLE_TCP	cfg.tab.h	262;"	d
-DISABLE_TLS	cfg.tab.c	/^     DISABLE_TLS = 349,$/;"	e	enum:yytokentype	file:
-DISABLE_TLS	cfg.tab.c	291;"	d	file:
-DISABLE_TLS	cfg.tab.h	/^     DISABLE_TLS = 349,$/;"	e	enum:yytokentype
-DISABLE_TLS	cfg.tab.h	267;"	d
-DISPALY_VAL	modules/cpl-c/CPL_tree.h	91;"	d
-DISPLAY_NAME_START	modules/pa/watcher.c	563;"	d	file:
-DISPLAY_NAME_START_L	modules/pa/watcher.c	564;"	d	file:
-DISPLAY_QUOTED	parser/parse_to.c	/^	START_TO, DISPLAY_QUOTED, E_DISPLAY_QUOTED, DISPLAY_TOKEN,$/;"	e	file:
-DISPLAY_TOKEN	parser/parse_to.c	/^	START_TO, DISPLAY_QUOTED, E_DISPLAY_QUOTED, DISPLAY_TOKEN,$/;"	e	file:
-DISPLAY_VAL	modules/cpl-c/CPL_tree.h	80;"	d
-DISPOSITION_CASE	parser/case_cont.h	74;"	d
-DISTFILES	netbsd/Makefile	/^DISTFILES= ${DISTNAME}_src.tar.gz$/;"	m
-DISTFILES	openbsd/Makefile	/^DISTFILES= ${DISTNAME}_src.tar.gz$/;"	m
-DISTNAME	freebsd/Makefile	/^DISTNAME= ${PORTNAME}-${PORTVERSION}_src$/;"	m
-DISTNAME	netbsd/Makefile	/^DISTNAME= ${PORTNAME}-${PORTVERSION}$/;"	m
-DISTNAME	openbsd/Makefile	/^DISTNAME= ${PORTNAME}-${PORTVERSION}$/;"	m
-DIVERSION_HF	modules/diversion/diversion.c	42;"	d	file:
-DIVERSION_HF_LEN	modules/diversion/diversion.c	43;"	d	file:
-DIVERSION_PREFIX	modules/diversion/diversion.c	45;"	d	file:
-DIVERSION_PREFIX_LEN	modules/diversion/diversion.c	46;"	d	file:
-DIVERSION_SUFFIX	modules/diversion/diversion.c	48;"	d	file:
-DIVERSION_SUFFIX_LEN	modules/diversion/diversion.c	49;"	d	file:
-DLG_CONFIRMED	modules/tm/dlg.h	/^	DLG_CONFIRMED, \/* Confirmed dialog, 2xx received *\/$/;"	e	enum:dlg_state
-DLG_DESTROYED	modules/tm/dlg.h	/^	DLG_DESTROYED  \/* Destroyed dialog *\/$/;"	e	enum:dlg_state
-DLG_EARLY	modules/tm/dlg.h	/^	DLG_EARLY,     \/* Early dialog, provisional response received *\/$/;"	e	enum:dlg_state
-DLG_H	modules/tm/dlg.h	32;"	d
-DLG_NEW	modules/tm/dlg.h	/^	DLG_NEW = 0,   \/* New dialog, no reply received yet *\/$/;"	e	enum:dlg_state
-DLIST_H	modules/pa/dlist.h	32;"	d
-DLIST_H	modules/usrloc/dlist.h	32;"	d
-DLOG	modules/postgres/con_postgres.h	67;"	d
-DLSYM_PREFIX	sr_module.c	154;"	d	file:
-DNS	cfg.tab.c	/^     DNS = 316,$/;"	e	enum:yytokentype	file:
-DNS	cfg.tab.c	258;"	d	file:
-DNS	cfg.tab.h	/^     DNS = 316,$/;"	e	enum:yytokentype
-DNS	cfg.tab.h	234;"	d
-DNS_HDR_SIZE	resolve.h	54;"	d
-DNS_IP_HACK_STR	version.h	94;"	d
-DNS_IP_HACK_STR	version.h	96;"	d
-DOCTYPE	modules/pa/pidf.c	61;"	d	file:
-DOCTYPE	modules/pa/xpidf.c	63;"	d	file:
-DOCTYPE_L	modules/pa/pidf.c	62;"	d	file:
-DOCTYPE_L	modules/pa/xpidf.c	64;"	d	file:
-DOCUMENT_TYPE	modules/pa/subscribe.c	55;"	d	file:
-DOCUMENT_TYPE_L	modules/pa/subscribe.c	56;"	d	file:
-DOC_LOCATION	modules/pa/watcher.h	/^	DOC_LOCATION = 5,$/;"	e	enum:doctype
-DOC_LPIDF	modules/pa/watcher.h	/^	DOC_LPIDF = 1,$/;"	e	enum:doctype
-DOC_PIDF	modules/pa/watcher.h	/^	DOC_PIDF = 2,$/;"	e	enum:doctype
-DOC_WINFO	modules/pa/watcher.h	/^	DOC_WINFO = 3,$/;"	e	enum:doctype
-DOC_XCAP_CHANGE	modules/pa/watcher.h	/^	DOC_XCAP_CHANGE = 4,$/;"	e	enum:doctype
-DOC_XPIDF	modules/pa/watcher.h	/^	DOC_XPIDF = 0,$/;"	e	enum:doctype
-DOMAIN_COL	modules/auth_db/authdb_mod.c	87;"	d	file:
-DOMAIN_COL	modules/domain/domain_mod.c	67;"	d	file:
-DOMAIN_COL	modules/group/group_mod.c	83;"	d	file:
-DOMAIN_COL	modules/uri_db/uridb_mod.c	72;"	d	file:
-DOMAIN_COL	modules/usrloc/ul_mod.c	61;"	d	file:
-DOMAIN_COL_LEN	modules/auth_db/authdb_mod.c	88;"	d	file:
-DOMAIN_COL_LEN	modules/domain/domain_mod.c	68;"	d	file:
-DOMAIN_COL_LEN	modules/group/group_mod.c	84;"	d	file:
-DOMAIN_COL_LEN	modules/uri_db/uridb_mod.c	73;"	d	file:
-DOMAIN_DUMP	modules/domain/fifo.h	36;"	d
-DOMAIN_H	modules/domain/domain.h	31;"	d
-DOMAIN_MOD_H	modules/domain/domain_mod.h	32;"	d
-DOMAIN_RELOAD	modules/domain/fifo.h	35;"	d
-DOMAIN_TABLE	modules/domain/domain_mod.c	64;"	d	file:
-DOMAIN_TABLE_LEN	modules/domain/domain_mod.c	65;"	d	file:
-DOT	cfg.tab.c	/^     DOT = 396,$/;"	e	enum:yytokentype	file:
-DOT	cfg.tab.c	338;"	d	file:
-DOT	cfg.tab.h	/^     DOT = 396,$/;"	e	enum:yytokentype
-DOT	cfg.tab.h	314;"	d
-DOUBLE_TYPE	db/db_fifo.c	75;"	d	file:
-DOUBLE_TYPE_LEN	db/db_fifo.c	76;"	d	file:
-DO_AUTHORIZATION	modules/auth/api.h	/^	DO_AUTHORIZATION,   \/* Perform digest authorization *\/$/;"	e	enum:auth_result
-DO_AUTHORIZATION	modules/auth_diameter/defs.h	/^	DO_AUTHORIZATION,   \/* Credentials included  *\/$/;"	e	enum:auth_result
-DO_DNS	globals.h	41;"	d
-DO_REV_DNS	globals.h	42;"	d
-DPRINT_LEV	dprint.h	51;"	d
-DPRINT_PRIO	dprint.h	53;"	d
-DP_MSG_CODE	modules/acc/diam_message.h	67;"	d
-DP_MSG_CODE	modules/acc/diam_message.h	77;"	d
-DP_MSG_CODE	modules/auth_diameter/diameter_msg.h	67;"	d
-DP_MSG_CODE	modules/auth_diameter/diameter_msg.h	77;"	d
-DPrint	dprint.h	63;"	d
-DPrint	dprint.h	65;"	d
-DPrint	dprint.h	69;"	d
-DPrint	dprint.h	80;"	d
-DROP	cfg.tab.c	/^     DROP = 264,$/;"	e	enum:yytokentype	file:
-DROP	cfg.tab.c	206;"	d	file:
-DROP	cfg.tab.h	/^     DROP = 264,$/;"	e	enum:yytokentype
-DROP	cfg.tab.h	182;"	d
-DROP_T	route_struct.h	/^enum { FORWARD_T=1, SEND_T, DROP_T, LOG_T, ERROR_T, ROUTE_T, EXEC_T,$/;"	e
-DSTIP	cfg.tab.c	/^     DSTIP = 301,$/;"	e	enum:yytokentype	file:
-DSTIP	cfg.tab.c	243;"	d	file:
-DSTIP	cfg.tab.h	/^     DSTIP = 301,$/;"	e	enum:yytokentype
-DSTIP	cfg.tab.h	219;"	d
-DSTIP_O	route_struct.h	/^	   DSTIP_O, DSTPORT_O, PROTO_O, AF_O, MSGLEN_O, DEFAULT_O, ACTION_O,$/;"	e
-DSTPORT	cfg.tab.c	/^     DSTPORT = 302,$/;"	e	enum:yytokentype	file:
-DSTPORT	cfg.tab.c	244;"	d	file:
-DSTPORT	cfg.tab.h	/^     DSTPORT = 302,$/;"	e	enum:yytokentype
-DSTPORT	cfg.tab.h	220;"	d
-DSTPORT_O	route_struct.h	/^	   DSTIP_O, DSTPORT_O, PROTO_O, AF_O, MSGLEN_O, DEFAULT_O, ACTION_O,$/;"	e
-DTEND_ATTR	modules/cpl-c/CPL_tree.h	103;"	d
-DTSTART_ATTR	modules/cpl-c/CPL_tree.h	102;"	d
-DURATION_ATTR	modules/cpl-c/CPL_tree.h	104;"	d
-DW_MSG_CODE	modules/acc/diam_message.h	66;"	d
-DW_MSG_CODE	modules/acc/diam_message.h	76;"	d
-DW_MSG_CODE	modules/auth_diameter/diameter_msg.h	66;"	d
-DW_MSG_CODE	modules/auth_diameter/diameter_msg.h	76;"	d
-Decode	md5.c	/^static void Decode (output, input, len)$/;"	f	file:
-Di	modules/jabber/sha.c	73;"	d	file:
-DigestCalcHA1	utils/gen_ha1/calc.c	/^void DigestCalcHA1(const char * pszAlg, const char * pszUserName,$/;"	f
-DigestCalcResponse	utils/gen_ha1/calc.c	/^void DigestCalcResponse($/;"	f
-EAT_SPACES	modules/msilo/msfuncs.c	49;"	d	file:
-ECHO	lex.yy.c	1296;"	d	file:
-EI_PA_CONTACT_MISS	modules/pa/reply.c	43;"	d	file:
-EI_PA_CONT_PARSE	modules/pa/reply.c	52;"	d	file:
-EI_PA_CONT_STAR	modules/pa/reply.c	53;"	d	file:
-EI_PA_EVENT_MISS	modules/pa/reply.c	45;"	d	file:
-EI_PA_EVENT_PARSE	modules/pa/reply.c	46;"	d	file:
-EI_PA_EVENT_UNSUPP	modules/pa/reply.c	48;"	d	file:
-EI_PA_EXPIRES_PARSE	modules/pa/reply.c	47;"	d	file:
-EI_PA_EXTRACT_USER	modules/pa/reply.c	51;"	d	file:
-EI_PA_FROM_ERROR	modules/pa/reply.c	54;"	d	file:
-EI_PA_FROM_MISS	modules/pa/reply.c	44;"	d	file:
-EI_PA_INTERNAL_ERROR	modules/pa/reply.c	57;"	d	file:
-EI_PA_NO_MEMORY	modules/pa/reply.c	49;"	d	file:
-EI_PA_OK	modules/pa/reply.c	41;"	d	file:
-EI_PA_PARSE_ERR	modules/pa/reply.c	42;"	d	file:
-EI_PA_SMALL_BUFFER	modules/pa/reply.c	55;"	d	file:
-EI_PA_TIMER_ERROR	modules/pa/reply.c	50;"	d	file:
-EI_PA_UNSUPP_DOC	modules/pa/reply.c	56;"	d	file:
-EI_R_AOR_LEN	modules/registrar/reply.c	210;"	d	file:
-EI_R_AOR_PARSE	modules/registrar/reply.c	211;"	d	file:
-EI_R_CID_MISS	modules/registrar/reply.c	216;"	d	file:
-EI_R_CS_MISS	modules/registrar/reply.c	217;"	d	file:
-EI_R_FINE	modules/registrar/reply.c	200;"	d	file:
-EI_R_INV_CSEQ	modules/registrar/reply.c	204;"	d	file:
-EI_R_INV_EXP	modules/registrar/reply.c	212;"	d	file:
-EI_R_INV_Q	modules/registrar/reply.c	213;"	d	file:
-EI_R_OOO	modules/registrar/reply.c	222;"	d	file:
-EI_R_PARSE	modules/registrar/reply.c	214;"	d	file:
-EI_R_PARSE_CONT	modules/registrar/reply.c	219;"	d	file:
-EI_R_PARSE_EXP	modules/registrar/reply.c	218;"	d	file:
-EI_R_RETRANS	modules/registrar/reply.c	223;"	d	file:
-EI_R_STAR_CONT	modules/registrar/reply.c	221;"	d	file:
-EI_R_STAR_EXP	modules/registrar/reply.c	220;"	d	file:
-EI_R_TOO_MANY	modules/registrar/reply.c	225;"	d	file:
-EI_R_TO_MISS	modules/registrar/reply.c	215;"	d	file:
-EI_R_TO_USER	modules/registrar/reply.c	209;"	d	file:
-EI_R_UL_DEL_C	modules/registrar/reply.c	207;"	d	file:
-EI_R_UL_DEL_R	modules/registrar/reply.c	201;"	d	file:
-EI_R_UL_GET_R	modules/registrar/reply.c	202;"	d	file:
-EI_R_UL_INS_C	modules/registrar/reply.c	205;"	d	file:
-EI_R_UL_INS_R	modules/registrar/reply.c	206;"	d	file:
-EI_R_UL_NEW_R	modules/registrar/reply.c	203;"	d	file:
-EI_R_UL_UPD_C	modules/registrar/reply.c	208;"	d	file:
-EI_R_UNESCAPE	modules/registrar/reply.c	224;"	d	file:
-ELEM_IS_AVP	modules/tm/t_fifo.c	157;"	d	file:
-ELEM_IS_HDR	modules/tm/t_fifo.c	158;"	d	file:
-ELEM_IS_MSG	modules/tm/t_fifo.c	159;"	d	file:
-ELEM_T	route_struct.h	/^enum { EXP_T=1, ELEM_T };$/;"	e
-ELEM_TYPE_AVP	modules/tm/t_fifo.c	151;"	d	file:
-ELEM_TYPE_AVP_LEN	modules/tm/t_fifo.c	152;"	d	file:
-ELEM_TYPE_HDR	modules/tm/t_fifo.c	153;"	d	file:
-ELEM_TYPE_HDR_LEN	modules/tm/t_fifo.c	154;"	d	file:
-ELEM_TYPE_MSG	modules/tm/t_fifo.c	155;"	d	file:
-ELEM_TYPE_MSG_LEN	modules/tm/t_fifo.c	156;"	d	file:
-ELEM_VAL_BODY	modules/tm/t_fifo.c	161;"	d	file:
-ELEM_VAL_BODY_LEN	modules/tm/t_fifo.c	162;"	d	file:
-ELSE	cfg.tab.c	/^     ELSE = 285,$/;"	e	enum:yytokentype	file:
-ELSE	cfg.tab.c	227;"	d	file:
-ELSE	cfg.tab.h	/^     ELSE = 285,$/;"	e	enum:yytokentype
-ELSE	cfg.tab.h	203;"	d
-EMAIL_HDR_NAME	modules/cpl-c/cpl_parser.c	/^enum {EMAIL_TO,EMAIL_HDR_NAME,EMAIL_KNOWN_HDR_BODY,EMAIL_UNKNOWN_HDR_BODY};$/;"	e	file:
-EMAIL_KNOWN_HDR_BODY	modules/cpl-c/cpl_parser.c	/^enum {EMAIL_TO,EMAIL_HDR_NAME,EMAIL_KNOWN_HDR_BODY,EMAIL_UNKNOWN_HDR_BODY};$/;"	e	file:
-EMAIL_TO	modules/cpl-c/cpl_parser.c	/^enum {EMAIL_TO,EMAIL_HDR_NAME,EMAIL_KNOWN_HDR_BODY,EMAIL_UNKNOWN_HDR_BODY};$/;"	e	file:
-EMAIL_UNKNOWN_HDR_BODY	modules/cpl-c/cpl_parser.c	/^enum {EMAIL_TO,EMAIL_HDR_NAME,EMAIL_KNOWN_HDR_BODY,EMAIL_UNKNOWN_HDR_BODY};$/;"	e	file:
-EMERGENCY_STR	modules/cpl-c/CPL_tree.h	126;"	d
-EMERGENCY_STR_LEN	modules/cpl-c/CPL_tree.h	127;"	d
-EMERGENCY_VAL	modules/cpl-c/CPL_tree.h	125;"	d
-ENABLE_CACHE	modules/permissions/permissions.h	66;"	d
-ENCODE_ALL_CONTACTS	modules/mangler/contact_ops.h	46;"	d
-ENCONDING_BUFFER_SIZE	modules/cpl-c/cpl_parser.c	60;"	d	file:
-ENC_ERR	modules/cpl-c/cpl_parser.c	1513;"	d	file:
-ENC_ERR_LEN	modules/cpl-c/cpl_parser.c	1514;"	d	file:
-END	parser/parse_to.c	/^	URI_OR_TOKEN, MAYBE_URI_END, END, F_CR, F_LF, F_CRLF$/;"	e	file:
-END_CHECK_PATTERN	mem/vq_malloc.h	63;"	d
-END_CHECK_PATTERN1	mem/f_malloc.c	111;"	d	file:
-END_CHECK_PATTERN1	mem/q_malloc.c	127;"	d	file:
-END_CHECK_PATTERN2	mem/f_malloc.c	112;"	d	file:
-END_CHECK_PATTERN2	mem/q_malloc.c	128;"	d	file:
-END_CHECK_PATTERN_LEN	mem/vq_malloc.h	64;"	d
-END_CHR	db/db_fifo.c	71;"	d	file:
-END_ERR_MSG	modules/sms/sms_report.c	39;"	d	file:
-END_ERR_MSG_LEN	modules/sms/sms_report.c	40;"	d	file:
-END_OF_HEADER	parser/parse_via.c	/^	END_OF_HEADER$/;"	e	file:
-END_OF_HEADER	test/via_parse.c	/^				 END_OF_HEADER$/;"	e	file:
-END_TO_END_IDENTIFIER_SIZE	modules/acc/diam_message.h	46;"	d
-END_TO_END_IDENTIFIER_SIZE	modules/auth_diameter/diameter_msg.h	46;"	d
-ENODATA	modules/postgres/aug_sysdep.h	246;"	d
-ENTI_CASE	parser/case_www.h	44;"	d
-ENT_	parser/obsolete/strs.h	292;"	d
-ENUM_H	modules/enum/enum.h	32;"	d
-ENUM_MOD_H	modules/enum/enum_mod.h	32;"	d
-ENt_	parser/obsolete/strs.h	291;"	d
-EOB_ACT_CONTINUE_SCAN	lex.yy.c	146;"	d	file:
-EOB_ACT_END_OF_FILE	lex.yy.c	147;"	d	file:
-EOB_ACT_LAST_MATCH	lex.yy.c	148;"	d	file:
-EO_SCRIPT	modules/cpl-c/cpl_run.c	59;"	d	file:
-EO_STEP	mem/vq_malloc.h	58;"	d
-EPROTO	modules/postgres/aug_sysdep.h	247;"	d
-EQUAL	cfg.tab.c	/^     EQUAL = 370,$/;"	e	enum:yytokentype	file:
-EQUAL	cfg.tab.c	312;"	d	file:
-EQUAL	cfg.tab.h	/^     EQUAL = 370,$/;"	e	enum:yytokentype
-EQUAL	cfg.tab.h	288;"	d
-EQUAL_ATTR	modules/cpl-c/CPL_tree.h	123;"	d
-EQUAL_OP	route_struct.h	/^enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };$/;"	e
-EQUAL_T	cfg.tab.c	/^     EQUAL_T = 371,$/;"	e	enum:yytokentype	file:
-EQUAL_T	cfg.tab.c	313;"	d	file:
-EQUAL_T	cfg.tab.h	/^     EQUAL_T = 371,$/;"	e	enum:yytokentype
-EQUAL_T	cfg.tab.h	289;"	d
-EQ_LEN	modules/tm/t_lookup.c	111;"	d	file:
-EQ_REQ_URI_LEN	modules/tm/t_lookup.c	112;"	d	file:
-EQ_REQ_URI_STR	modules/tm/t_lookup.c	118;"	d	file:
-EQ_STR	modules/tm/t_lookup.c	115;"	d	file:
-EQ_VIA_LEN	modules/tm/t_lookup.c	105;"	d	file:
-EQ_VIA_STR	modules/tm/t_lookup.c	122;"	d	file:
-ERASE_CELL	modules/pdt/domains.h	37;"	d
-ERR	modules/cpl-c/cpl_log.h	44;"	d
-ERROR	cfg.tab.c	/^     ERROR = 266,$/;"	e	enum:yytokentype	file:
-ERROR	cfg.tab.c	208;"	d	file:
-ERROR	cfg.tab.h	/^     ERROR = 266,$/;"	e	enum:yytokentype
-ERROR	cfg.tab.h	184;"	d
-ERROR	crc.c	37;"	d	file:
-ERROR	modules/auth/api.h	/^	ERROR = -2 ,        \/* Error occurred, a reply has been sent out -> return 0 to the ser core *\/$/;"	e	enum:auth_result
-ERROR	modules/auth_diameter/defs.h	/^	ERROR = -2 ,		\/* Error occurred, a reply has been $/;"	e	enum:auth_result
-ERROR_STR	modules/cpl-c/CPL_tree.h	180;"	d
-ERROR_STR_LEN	modules/cpl-c/CPL_tree.h	181;"	d
-ERROR_T	route_struct.h	/^enum { FORWARD_T=1, SEND_T, DROP_T, LOG_T, ERROR_T, ROUTE_T, EXEC_T,$/;"	e
-ERROR_VAL	modules/cpl-c/CPL_tree.h	179;"	d
-ERR_LEN	modules/cpl-c/cpl_log.h	45;"	d
-ERR_MODEM_TEXT	modules/sms/sms_funcs.c	84;"	d	file:
-ERR_MODEM_TEXT_LEN	modules/sms/sms_funcs.c	86;"	d	file:
-ERR_NUMBER_TEXT	modules/sms/sms_funcs.c	74;"	d	file:
-ERR_NUMBER_TEXT_LEN	modules/sms/sms_funcs.c	77;"	d	file:
-ERR_TRUNCATE_TEXT	modules/sms/sms_funcs.c	79;"	d	file:
-ERR_TRUNCATE_TEXT_LEN	modules/sms/sms_funcs.c	82;"	d	file:
-ESCAPE	modules/exec/exec_hf.h	56;"	d
-EUNATCH	modules/postgres/aug_sysdep.h	248;"	d
-EVENT	modules/pa/notify.c	53;"	d	file:
-EVENT_L	modules/pa/notify.c	54;"	d	file:
-EVENT_LOCATION	parser/parse_event.h	45;"	d
-EVENT_OTHER	parser/parse_event.h	41;"	d
-EVENT_PRESENCE	parser/parse_event.h	42;"	d
-EVENT_PRESENCE_WINFO	parser/parse_event.h	43;"	d
-EVENT_START	modules/pa/watcher.c	559;"	d	file:
-EVENT_START_L	modules/pa/watcher.c	560;"	d	file:
-EVENT_XCAP_CHANGE	parser/parse_event.h	44;"	d
-EV_ASSIGN	modules/exec/exec_hf.h	48;"	d
-EV_DID	modules/exec/exec_hf.h	46;"	d
-EV_ORURI	modules/exec/exec_hf.h	42;"	d
-EV_OUSER	modules/exec/exec_hf.h	44;"	d
-EV_RURI	modules/exec/exec_hf.h	41;"	d
-EV_SRCIP	modules/exec/exec_hf.h	40;"	d
-EV_TID	modules/exec/exec_hf.h	45;"	d
-EV_USER	modules/exec/exec_hf.h	43;"	d
-EXEC	cfg.tab.c	/^     EXEC = 270,$/;"	e	enum:yytokentype	file:
-EXEC	cfg.tab.c	212;"	d	file:
-EXEC	cfg.tab.h	/^     EXEC = 270,$/;"	e	enum:yytokentype
-EXEC	cfg.tab.h	188;"	d
-EXEC_T	route_struct.h	/^enum { FORWARD_T=1, SEND_T, DROP_T, LOG_T, ERROR_T, ROUTE_T, EXEC_T,$/;"	e
-EXPIRES_COL	modules/usrloc/ul_mod.c	63;"	d	file:
-EXPIRES_PARAM	modules/registrar/reply.c	59;"	d	file:
-EXPIRES_PARAM_LEN	modules/registrar/reply.c	60;"	d	file:
-EXPI_RES_CASE	parser/case_expi.h	41;"	d
-EXPONENT_LENGTH	modules/jabber/xsnprintf.c	261;"	d	file:
-EXPRESSION_LENGTH	modules/permissions/rule.h	36;"	d
-EXPR_DROP	route_struct.h	42;"	d
-EXPR_ST	route_struct.h	/^		EXPR_ST, ACTIONS_ST, CMDF_ST, MODFIXUP_ST, URIHOST_ST, URIPORT_ST,$/;"	e
-EXP_T	route_struct.h	/^enum { EXP_T=1, ELEM_T };$/;"	e
-EXTERNAL_CANCEL	modules/tm/h_table.h	76;"	d
-EXTRA_DEBUG_STR	version.h	88;"	d
-EXTRA_DEBUG_STR	version.h	90;"	d
-EXT_REWRITE_URI	modules/ext/ext.c	60;"	d	file:
-EXT_REWRITE_USER	modules/ext/ext.c	61;"	d	file:
-E_BAD_ADDRESS	error.h	61;"	d
-E_BAD_PROTO	error.h	65;"	d
-E_BAD_RE	error.h	34;"	d
-E_BAD_REQ	error.h	67;"	d
-E_BAD_SERVER	error.h	70;"	d
-E_BAD_TO	error.h	49;"	d
-E_BAD_TUPEL	error.h	42;"	d
-E_BAD_URI	error.h	63;"	d
-E_BAD_VIA	error.h	40;"	d
-E_BUG	error.h	36;"	d
-E_CFG	error.h	37;"	d
-E_DIG_CNONCE	parser/digest/digest.h	/^	E_DIG_CNONCE = 32,   \/* CNONCE missing *\/$/;"	e	enum:dig_err
-E_DIG_DOMAIN	parser/digest/digest.h	/^	E_DIG_DOMAIN = 128   \/* Username domain != realm *\/$/;"	e	enum:dig_err
-E_DIG_NC	parser/digest/digest.h	/^	E_DIG_NC = 64,       \/* Nonce-count missing *\/$/;"	e	enum:dig_err
-E_DIG_NONCE	parser/digest/digest.h	/^	E_DIG_NONCE = 4,     \/* Nonce value missing *\/$/;"	e	enum:dig_err
-E_DIG_OK	parser/digest/digest.h	/^	E_DIG_OK = 0,        \/* Everything is OK *\/$/;"	e	enum:dig_err
-E_DIG_REALM	parser/digest/digest.h	/^	E_DIG_REALM = 2,     \/* Realm missing *\/$/;"	e	enum:dig_err
-E_DIG_RESPONSE	parser/digest/digest.h	/^	E_DIG_RESPONSE = 16, \/* Response missing *\/$/;"	e	enum:dig_err
-E_DIG_URI	parser/digest/digest.h	/^	E_DIG_URI = 8,       \/* URI missing *\/$/;"	e	enum:dig_err
-E_DIG_USERNAME	parser/digest/digest.h	/^	E_DIG_USERNAME  = 1, \/* Username missing *\/$/;"	e	enum:dig_err
-E_DISPLAY_QUOTED	parser/parse_to.c	/^	START_TO, DISPLAY_QUOTED, E_DISPLAY_QUOTED, DISPLAY_TOKEN,$/;"	e	file:
-E_EXEC	error.h	46;"	d
-E_INFO	modules/registrar/reply.c	50;"	d	file:
-E_INFO_LEN	modules/registrar/reply.c	51;"	d	file:
-E_INVALID_PARAMS	error.h	51;"	d
-E_NO_SOCKET	error.h	38;"	d
-E_OUT_OF_MEM	error.h	33;"	d
-E_PARA_VALUE	parser/parse_to.c	/^	TAG3, PARA_VALUE_TOKEN , PARA_VALUE_QUOTED, E_PARA_VALUE$/;"	e	file:
-E_Q_DEC_MISSING	error.h	56;"	d
-E_Q_EMPTY	error.h	54;"	d
-E_Q_INV_CHAR	error.h	53;"	d
-E_Q_TOO_BIG	error.h	55;"	d
-E_SCRIPT	error.h	44;"	d
-E_SEND	error.h	59;"	d
-E_TOO_MANY_BRANCHES	error.h	48;"	d
-E_UNSPEC	error.h	32;"	d
-E_URI_ENCLOSED	parser/parse_to.c	/^	S_URI_ENCLOSED, URI_ENCLOSED, E_URI_ENCLOSED,$/;"	e	file:
-Ei	modules/jabber/sha.c	74;"	d	file:
-EnT_	parser/obsolete/strs.h	290;"	d
-Encode	md5.c	/^static void Encode (output, input, len)$/;"	f	file:
-EndMediaSession	modules/mediaproxy/mediaproxy.c	/^EndMediaSession(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-Ent_	parser/obsolete/strs.h	289;"	d
-F	md5.c	76;"	d	file:
-FAILURE_NODE	modules/cpl-c/CPL_tree.h	42;"	d
-FAILURE_ROUTE	sr_module.h	70;"	d
-FAILURE_RT_NO	config.h	60;"	d
-FAKED_REPLY	parser/msg_parser.h	249;"	d
-FALSE	db/example/dbexample.c	38;"	d	file:
-FALSE	modules/dbtext/dbtex/dbtex.c	44;"	d	file:
-FALSE	modules/jabber/xsnprintf.c	247;"	d	file:
-FAST_LOCK_STR	version.h	155;"	d
-FAST_LOCK_STR	version.h	157;"	d
-FAST_LOCK_STR	version.h	159;"	d
-FAST_LOCK_STR	version.h	162;"	d
-FD_CLR_AND_MAX	modules/extcmd/extcmd_funcs.c	/^inline void FD_CLR_AND_MAX( fd_set *fdset, int fd, int *max_fd)$/;"	f
-FD_SET_AND_MAX	modules/extcmd/extcmd_funcs.c	/^inline void FD_SET_AND_MAX( fd_set *fdset, int fd, int *max_fd)$/;"	f
-FF	md5.c	88;"	d	file:
-FIELD_ATTR	modules/cpl-c/CPL_tree.h	70;"	d
-FIFO	cfg.tab.c	/^     FIFO = 325,$/;"	e	enum:yytokentype	file:
-FIFO	cfg.tab.c	267;"	d	file:
-FIFO	cfg.tab.h	/^     FIFO = 325,$/;"	e	enum:yytokentype
-FIFO	cfg.tab.h	243;"	d
-FIFO_ARG	fifo_server.h	49;"	d
-FIFO_CALLID	modules/usrloc/ul_fifo.c	55;"	d	file:
-FIFO_CALLID_LEN	modules/usrloc/ul_fifo.c	56;"	d	file:
-FIFO_CSEQ	modules/usrloc/ul_fifo.c	57;"	d	file:
-FIFO_DB	db/db_fifo.h	36;"	d
-FIFO_DB_URL	cfg.tab.c	/^     FIFO_DB_URL = 330,$/;"	e	enum:yytokentype	file:
-FIFO_DB_URL	cfg.tab.c	272;"	d	file:
-FIFO_DB_URL	cfg.tab.h	/^     FIFO_DB_URL = 330,$/;"	e	enum:yytokentype
-FIFO_DB_URL	cfg.tab.h	248;"	d
-FIFO_DIR	cfg.tab.c	/^     FIFO_DIR = 326,$/;"	e	enum:yytokentype	file:
-FIFO_DIR	cfg.tab.c	268;"	d	file:
-FIFO_DIR	cfg.tab.h	/^     FIFO_DIR = 326,$/;"	e	enum:yytokentype
-FIFO_DIR	cfg.tab.h	244;"	d
-FIFO_H	modules/permissions/fifo.h	30;"	d
-FIFO_IS_GFLAG	modules/gflags/gflags.c	51;"	d	file:
-FIFO_KILL	fifo_server.h	53;"	d
-FIFO_PRINT	fifo_server.h	39;"	d
-FIFO_PS	fifo_server.h	47;"	d
-FIFO_PWD	fifo_server.h	51;"	d
-FIFO_REPLY_RETRIES	config.h	173;"	d
-FIFO_REPLY_WAIT	config.h	174;"	d
-FIFO_RESET_GFLAG	modules/gflags/gflags.c	52;"	d	file:
-FIFO_ROUTE_PREFIX	modules/tm/uac_fifo.c	458;"	d	file:
-FIFO_ROUTE_PREFIX	modules/tm/uac_unixsock.c	353;"	d	file:
-FIFO_ROUTE_SEPARATOR	modules/tm/uac_fifo.c	459;"	d	file:
-FIFO_ROUTE_SEPARATOR	modules/tm/uac_unixsock.c	354;"	d	file:
-FIFO_SET_GFLAG	modules/gflags/gflags.c	50;"	d	file:
-FIFO_UA	modules/usrloc/ul_fifo.c	58;"	d	file:
-FIFO_UA_LEN	modules/usrloc/ul_fifo.c	59;"	d	file:
-FIFO_UPTIME	fifo_server.h	41;"	d
-FIFO_VERSION	fifo_server.h	43;"	d
-FIFO_WHICH	fifo_server.h	45;"	d
-FILE_LOAD_ERR	modules/cpl-c/cpl_loader.c	247;"	d	file:
-FILE_NAME_SUFIX	modules/cpl-c/cpl_nonsig.c	52;"	d	file:
-FILE_NAME_SUFIX_LEN	modules/cpl-c/cpl_nonsig.c	53;"	d	file:
-FILE_SUFFIX	modules/flatstore/flat_con.c	38;"	d	file:
-FILE_SUFFIX_LEN	modules/flatstore/flat_con.c	39;"	d	file:
-FIN_ACK	parser/parse_fline.c	/^       FIN_INVITE = 100, FIN_ACK, FIN_CANCEL, FIN_BYE, FIN_SIP,$/;"	e	file:
-FIN_ALIAS	parser/parse_via.c	/^	FIN_MADDR, FIN_RECEIVED, FIN_RPORT, FIN_I, FIN_ALIAS$/;"	e	file:
-FIN_BRANCH	parser/parse_via.c	/^	FIN_HIDDEN = 230, FIN_TTL, FIN_BRANCH,$/;"	e	file:
-FIN_BRANCH	test/via_parse.c	/^		FIN_HIDDEN, FIN_TTL, FIN_BRANCH, FIN_MADDR, FIN_RECEIVED,$/;"	e	file:
-FIN_BYE	parser/parse_fline.c	/^       FIN_INVITE = 100, FIN_ACK, FIN_CANCEL, FIN_BYE, FIN_SIP,$/;"	e	file:
-FIN_CANCEL	parser/parse_fline.c	/^       FIN_INVITE = 100, FIN_ACK, FIN_CANCEL, FIN_BYE, FIN_SIP,$/;"	e	file:
-FIN_HIDDEN	parser/parse_via.c	/^	FIN_HIDDEN = 230, FIN_TTL, FIN_BRANCH,$/;"	e	file:
-FIN_HIDDEN	test/via_parse.c	/^		FIN_HIDDEN, FIN_TTL, FIN_BRANCH, FIN_MADDR, FIN_RECEIVED,$/;"	e	file:
-FIN_I	parser/parse_via.c	/^	FIN_MADDR, FIN_RECEIVED, FIN_RPORT, FIN_I, FIN_ALIAS$/;"	e	file:
-FIN_INVITE	parser/parse_fline.c	/^       FIN_INVITE = 100, FIN_ACK, FIN_CANCEL, FIN_BYE, FIN_SIP,$/;"	e	file:
-FIN_MADDR	parser/parse_via.c	/^	FIN_MADDR, FIN_RECEIVED, FIN_RPORT, FIN_I, FIN_ALIAS$/;"	e	file:
-FIN_MADDR	test/via_parse.c	/^		FIN_HIDDEN, FIN_TTL, FIN_BRANCH, FIN_MADDR, FIN_RECEIVED,$/;"	e	file:
-FIN_RECEIVED	parser/parse_via.c	/^	FIN_MADDR, FIN_RECEIVED, FIN_RPORT, FIN_I, FIN_ALIAS$/;"	e	file:
-FIN_RECEIVED	test/via_parse.c	/^		FIN_HIDDEN, FIN_TTL, FIN_BRANCH, FIN_MADDR, FIN_RECEIVED,$/;"	e	file:
-FIN_RPORT	parser/parse_via.c	/^	FIN_MADDR, FIN_RECEIVED, FIN_RPORT, FIN_I, FIN_ALIAS$/;"	e	file:
-FIN_SIP	parser/parse_fline.c	/^       FIN_INVITE = 100, FIN_ACK, FIN_CANCEL, FIN_BYE, FIN_SIP,$/;"	e	file:
-FIN_SIP	parser/parse_via.c	/^	SIP1, SIP2, FIN_SIP,$/;"	e	file:
-FIN_SIP	test/via_parse.c	/^		SIP1, SIP2, FIN_SIP,$/;"	e	file:
-FIN_TCP	parser/parse_via.c	/^	TCP_TLS1, TCP2, FIN_TCP,$/;"	e	file:
-FIN_TLS	parser/parse_via.c	/^	          TLS2, FIN_TLS,$/;"	e	file:
-FIN_TTL	parser/parse_via.c	/^	FIN_HIDDEN = 230, FIN_TTL, FIN_BRANCH,$/;"	e	file:
-FIN_TTL	test/via_parse.c	/^		FIN_HIDDEN, FIN_TTL, FIN_BRANCH, FIN_MADDR, FIN_RECEIVED,$/;"	e	file:
-FIN_UDP	parser/parse_via.c	/^	UDP1, UDP2, FIN_UDP,$/;"	e	file:
-FIN_VER	parser/parse_fline.c	/^       VER1, VER2, VER3, VER4, VER5, VER6, FIN_VER,$/;"	e	file:
-FIN_VER	parser/parse_via.c	/^	VER1, VER2, FIN_VER,$/;"	e	file:
-FIN_VER	test/via_parse.c	/^		VER1, VER2, FIN_VER,$/;"	e	file:
-FIRSTONLY_VAL	modules/cpl-c/CPL_tree.h	162;"	d
-FIRST_QUATERNIONS	parser/digest/param_parser.c	179;"	d	file:
-FIRST_QUATERNIONS	parser/parse_hname2.c	93;"	d	file:
-FIX_MEDIP	modules/nathelper/nathelper.c	738;"	d	file:
-FIX_PRECISION	modules/jabber/xsnprintf.c	316;"	d	file:
-FLAGS	test/ifls.c	53;"	d	file:
-FLAGS_ATTR	modules/avp/avp.c	44;"	d	file:
-FLAGS_ATTR_LEN	modules/avp/avp.c	45;"	d	file:
-FLAGS_COL	modules/usrloc/ul_mod.c	69;"	d	file:
-FLAGS_SIZE	modules/acc/diam_message.h	42;"	d
-FLAGS_SIZE	modules/auth_diameter/diameter_msg.h	42;"	d
-FLATSTORE_MOD_H	modules/flatstore/flatstore_mod.h	37;"	d
-FLAT_ROTATE	modules/flatstore/flat_fifo.c	36;"	d	file:
-FLAT_ROTATE_LEN	modules/flatstore/flat_fifo.c	37;"	d	file:
-FLEXINT_H	lex.yy.c	29;"	d	file:
-FLEX_BETA	lex.yy.c	13;"	d	file:
-FLEX_SCANNER	lex.yy.c	8;"	d	file:
-FLOAT4OID	modules/postgres/pg_type.h	59;"	d
-FLOAT8OID	modules/postgres/pg_type.h	60;"	d
-FLOAT_DIGITS	modules/jabber/xsnprintf.c	260;"	d	file:
-FLOOR_ETAG	modules/pa/pidf.c	127;"	d	file:
-FLOOR_ETAG_L	modules/pa/pidf.c	128;"	d	file:
-FLOOR_STAG	modules/pa/pidf.c	124;"	d	file:
-FLOOR_STAG_L	modules/pa/pidf.c	125;"	d	file:
-FL_ACC	flags.h	/^	   FL_BROWN, FL_BLACK, FL_ACC, FL_MAX };$/;"	e
-FL_ALL	modules/usrloc/ucontact.h	/^	FL_ALL         = 0xFFFFFFFF  \/* All flags set *\/$/;"	e	enum:flags
-FL_BLACK	flags.h	/^	   FL_BROWN, FL_BLACK, FL_ACC, FL_MAX };$/;"	e
-FL_BLUE	flags.h	/^enum { FL_WHITE=1, FL_YELLOW, FL_GREEN, FL_RED, FL_BLUE, FL_MAGENTA,$/;"	e
-FL_BROWN	flags.h	/^	   FL_BROWN, FL_BLACK, FL_ACC, FL_MAX };$/;"	e
-FL_FORCE_ACTIVE	parser/msg_parser.h	72;"	d
-FL_FORCE_RPORT	parser/msg_parser.h	71;"	d
-FL_GREEN	flags.h	/^enum { FL_WHITE=1, FL_YELLOW, FL_GREEN, FL_RED, FL_BLUE, FL_MAGENTA,$/;"	e
-FL_INVITE	modules/usrloc/ucontact.h	/^	FL_INVITE      = 1 << 1,     \/* Contact supports INVITE and related methods *\/$/;"	e	enum:flags
-FL_MAGENTA	flags.h	/^enum { FL_WHITE=1, FL_YELLOW, FL_GREEN, FL_RED, FL_BLUE, FL_MAGENTA,$/;"	e
-FL_MAX	flags.h	/^	   FL_BROWN, FL_BLACK, FL_ACC, FL_MAX };$/;"	e
-FL_MEM	modules/usrloc/ucontact.h	/^	FL_MEM         = 1 << 8,     \/* Update memory only -- used for REGISTER replication *\/$/;"	e	enum:flags
-FL_MESSAGE	modules/usrloc/ucontact.h	/^	FL_MESSAGE     = 1 << 3,     \/* Contact supports MESSAGE *\/$/;"	e	enum:flags
-FL_NAT	modules/usrloc/ucontact.h	/^	FL_NAT         = 1 << 0,     \/* Contact is behind NAT *\/$/;"	e	enum:flags
-FL_NONE	modules/usrloc/ucontact.h	/^	FL_NONE        = 0,          \/* No flags set *\/$/;"	e	enum:flags
-FL_N_INVITE	modules/usrloc/ucontact.h	/^	FL_N_INVITE    = 1 << 2,     \/* Contact doesn't support INVITE and related methods *\/$/;"	e	enum:flags
-FL_N_MESSAGE	modules/usrloc/ucontact.h	/^	FL_N_MESSAGE   = 1 << 4,     \/* Contact doesn't support MESSAGE *\/$/;"	e	enum:flags
-FL_N_SUBSCRIBE	modules/usrloc/ucontact.h	/^	FL_N_SUBSCRIBE = 1 << 6,     \/* Contact doesn't support SUBSCRIBE and NOTIFY *\/$/;"	e	enum:flags
-FL_PERMANENT	modules/usrloc/ucontact.h	/^	FL_PERMANENT   = 1 << 7,     \/* Permanent contact (does not expire) *\/$/;"	e	enum:flags
-FL_RED	flags.h	/^enum { FL_WHITE=1, FL_YELLOW, FL_GREEN, FL_RED, FL_BLUE, FL_MAGENTA,$/;"	e
-FL_SDP_IP_AFS	parser/msg_parser.h	73;"	d
-FL_SDP_PORT_AFS	parser/msg_parser.h	74;"	d
-FL_SUBSCRIBE	modules/usrloc/ucontact.h	/^	FL_SUBSCRIBE   = 1 << 5,     \/* Contact supports SUBSCRIBE and NOTIFY *\/$/;"	e	enum:flags
-FL_WHITE	flags.h	/^enum { FL_WHITE=1, FL_YELLOW, FL_GREEN, FL_RED, FL_BLUE, FL_MAGENTA,$/;"	e
-FL_YELLOW	flags.h	/^enum { FL_WHITE=1, FL_YELLOW, FL_GREEN, FL_RED, FL_BLUE, FL_MAGENTA,$/;"	e
-FORCE_RPORT	cfg.tab.c	/^     FORCE_RPORT = 282,$/;"	e	enum:yytokentype	file:
-FORCE_RPORT	cfg.tab.c	224;"	d	file:
-FORCE_RPORT	cfg.tab.h	/^     FORCE_RPORT = 282,$/;"	e	enum:yytokentype
-FORCE_RPORT	cfg.tab.h	200;"	d
-FORCE_RPORT_T	route_struct.h	/^		FORCE_RPORT_T,$/;"	e
-FORCE_SEND_SOCKET	cfg.tab.c	/^     FORCE_SEND_SOCKET = 288,$/;"	e	enum:yytokentype	file:
-FORCE_SEND_SOCKET	cfg.tab.c	230;"	d	file:
-FORCE_SEND_SOCKET	cfg.tab.h	/^     FORCE_SEND_SOCKET = 288,$/;"	e	enum:yytokentype
-FORCE_SEND_SOCKET	cfg.tab.h	206;"	d
-FORCE_SEND_SOCKET_T	route_struct.h	/^		FORCE_SEND_SOCKET_T$/;"	e
-FORCE_TCP_ALIAS	cfg.tab.c	/^     FORCE_TCP_ALIAS = 283,$/;"	e	enum:yytokentype	file:
-FORCE_TCP_ALIAS	cfg.tab.c	225;"	d	file:
-FORCE_TCP_ALIAS	cfg.tab.h	/^     FORCE_TCP_ALIAS = 283,$/;"	e	enum:yytokentype
-FORCE_TCP_ALIAS	cfg.tab.h	201;"	d
-FORCE_TCP_ALIAS_T	route_struct.h	/^		FORCE_TCP_ALIAS_T,$/;"	e
-FORK	cfg.tab.c	/^     FORK = 311,$/;"	e	enum:yytokentype	file:
-FORK	cfg.tab.c	253;"	d	file:
-FORK	cfg.tab.h	/^     FORK = 311,$/;"	e	enum:yytokentype
-FORK	cfg.tab.h	229;"	d
-FORW	parser/obsolete/strs.h	205;"	d
-FORWARD	cfg.tab.c	/^     FORWARD = 258,$/;"	e	enum:yytokentype	file:
-FORWARD	cfg.tab.c	200;"	d	file:
-FORWARD	cfg.tab.h	/^     FORWARD = 258,$/;"	e	enum:yytokentype
-FORWARD	cfg.tab.h	176;"	d
-FORWARD_T	route_struct.h	/^enum { FORWARD_T=1, SEND_T, DROP_T, LOG_T, ERROR_T, ROUTE_T, EXEC_T,$/;"	e
-FORWARD_TCP	cfg.tab.c	/^     FORWARD_TCP = 259,$/;"	e	enum:yytokentype	file:
-FORWARD_TCP	cfg.tab.c	201;"	d	file:
-FORWARD_TCP	cfg.tab.h	/^     FORWARD_TCP = 259,$/;"	e	enum:yytokentype
-FORWARD_TCP	cfg.tab.h	177;"	d
-FORWARD_TCP_T	route_struct.h	/^		FORWARD_TCP_T,$/;"	e
-FORWARD_TLS	cfg.tab.c	/^     FORWARD_TLS = 260,$/;"	e	enum:yytokentype	file:
-FORWARD_TLS	cfg.tab.c	202;"	d	file:
-FORWARD_TLS	cfg.tab.h	/^     FORWARD_TLS = 260,$/;"	e	enum:yytokentype
-FORWARD_TLS	cfg.tab.h	178;"	d
-FORWARD_TLS_T	route_struct.h	/^		FORWARD_TLS_T,$/;"	e
-FORWARD_UDP	cfg.tab.c	/^     FORWARD_UDP = 261,$/;"	e	enum:yytokentype	file:
-FORWARD_UDP	cfg.tab.c	203;"	d	file:
-FORWARD_UDP	cfg.tab.h	/^     FORWARD_UDP = 261,$/;"	e	enum:yytokentype
-FORWARD_UDP	cfg.tab.h	179;"	d
-FORWARD_UDP_T	route_struct.h	/^		FORWARD_UDP_T,$/;"	e
-FORW_CASE	parser/case_max.h	43;"	d
-FOR_ALL_ATTR	modules/cpl-c/cpl_parser.c	62;"	d	file:
-FORw	parser/obsolete/strs.h	204;"	d
-FOrW	parser/obsolete/strs.h	203;"	d
-FOrw	parser/obsolete/strs.h	202;"	d
-FRAG_CLEAR_USED	mem/f_malloc.c	85;"	d	file:
-FRAG_CLEAR_USED	mem/q_malloc.c	100;"	d	file:
-FRAG_END	mem/q_malloc.c	54;"	d	file:
-FRAG_END	mem/vq_malloc.h	41;"	d
-FRAG_ISUSED	mem/vq_malloc.h	54;"	d
-FRAG_MARK_USED	mem/f_malloc.c	84;"	d	file:
-FRAG_MARK_USED	mem/q_malloc.c	99;"	d	file:
-FRAG_NEXT	mem/f_malloc.c	53;"	d	file:
-FRAG_NEXT	mem/q_malloc.c	58;"	d	file:
-FRAG_NEXT	mem/vq_malloc.h	45;"	d
-FRAG_OVERHEAD	mem/f_malloc.c	56;"	d	file:
-FRAG_OVERHEAD	mem/q_malloc.c	71;"	d	file:
-FRAG_PREV	mem/q_malloc.c	62;"	d	file:
-FRAG_PREV	mem/vq_malloc.h	51;"	d
-FRAG_WAS_USED	mem/f_malloc.c	86;"	d	file:
-FRAG_WAS_USED	mem/q_malloc.c	101;"	d	file:
-FREQ_ATTR	modules/cpl-c/CPL_tree.h	105;"	d
-FREQ_DAILY	modules/cpl-c/cpl_time.h	105;"	d
-FREQ_MONTHLY	modules/cpl-c/cpl_time.h	103;"	d
-FREQ_NOFREQ	modules/cpl-c/cpl_time.h	101;"	d
-FREQ_WEEKLY	modules/cpl-c/cpl_time.h	104;"	d
-FREQ_YEARLY	modules/cpl-c/cpl_time.h	102;"	d
-FROM	modules/tm/t_msgbuilder.h	48;"	d
-FROM	parser/obsolete/strs.h	90;"	d
-FROM1	parser/obsolete/parse_hname.c	/^		FROM1, FROM2, FROM3,$/;"	e	file:
-FROM1	test/auto.c	/^		FROM1, FROM2, FROM3,$/;"	e	file:
-FROM2	parser/obsolete/parse_hname.c	/^		FROM1, FROM2, FROM3,$/;"	e	file:
-FROM2	test/auto.c	/^		FROM1, FROM2, FROM3,$/;"	e	file:
-FROM3	parser/obsolete/parse_hname.c	/^		FROM1, FROM2, FROM3,$/;"	e	file:
-FROM3	test/auto.c	/^		FROM1, FROM2, FROM3,$/;"	e	file:
-FROMTAG	modules/tm/t_msgbuilder.h	50;"	d
-FROMTAG_LEN	modules/tm/t_msgbuilder.h	51;"	d
-FROM_LEN	modules/tm/t_msgbuilder.h	49;"	d
-FROM_TAG_LEN	modules/tm/uac.c	72;"	d	file:
-FROM_URI	cfg.tab.c	/^     FROM_URI = 297,$/;"	e	enum:yytokentype	file:
-FROM_URI	cfg.tab.c	239;"	d	file:
-FROM_URI	cfg.tab.h	/^     FROM_URI = 297,$/;"	e	enum:yytokentype
-FROM_URI	cfg.tab.h	215;"	d
-FROM_URI_O	route_struct.h	/^enum { METHOD_O=1, URI_O, FROM_URI_O, TO_URI_O, SRCIP_O, SRCPORT_O,$/;"	e
-FROm	parser/obsolete/strs.h	89;"	d
-FR_INV_TIMER_AVP	modules/tm/t_funcs.h	78;"	d
-FR_INV_TIMER_LIST	modules/tm/timer.h	/^	FR_TIMER_LIST, FR_INV_TIMER_LIST,$/;"	e	enum:lists
-FR_TIMER_AVP	modules/tm/t_funcs.h	77;"	d
-FR_TIMER_LIST	modules/tm/timer.h	/^	FR_TIMER_LIST, FR_INV_TIMER_LIST,$/;"	e	enum:lists
-FR_TIME_OUT	modules/tm/config.h	49;"	d
-FR_USED	mem/vq_malloc.h	38;"	d
-FRoM	parser/obsolete/strs.h	88;"	d
-FRom	parser/obsolete/strs.h	87;"	d
-FTH_CMD	modules/extcmd/extcmd_funcs.c	61;"	d	file:
-F_CALLID	parser/obsolete/parse_hname.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_CALLID	test/auto.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_COMMENT	parser/parse_via.c	/^	F_COMMENT, P_COMMENT,$/;"	e	file:
-F_COMMENT	test/via_parse.c	/^		         F_COMMENT, P_COMMENT,$/;"	e	file:
-F_CONN_NON_BLOCKING	tcp_conn.h	60;"	d
-F_CONTACT	parser/obsolete/parse_hname.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_CONTACT	test/auto.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_CR	parser/parse_fline.c	/^       L_LF, F_CR, F_LF$/;"	e	file:
-F_CR	parser/parse_to.c	/^	URI_OR_TOKEN, MAYBE_URI_END, END, F_CR, F_LF, F_CRLF$/;"	e	file:
-F_CR	parser/parse_via.c	/^	F_CR,$/;"	e	file:
-F_CR	test/via_parse.c	/^				 F_CR,$/;"	e	file:
-F_CRLF	parser/parse_to.c	/^	URI_OR_TOKEN, MAYBE_URI_END, END, F_CR, F_LF, F_CRLF$/;"	e	file:
-F_CRLF	parser/parse_via.c	/^	F_CRLF,$/;"	e	file:
-F_CRLF	test/via_parse.c	/^				 F_CRLF,$/;"	e	file:
-F_CSEQ	parser/obsolete/parse_hname.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_CSEQ	test/auto.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_FROM	parser/obsolete/parse_hname.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_FROM	test/auto.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_HASH_SIZE	mem/f_malloc.h	69;"	d
-F_HOST	parser/parse_via.c	/^	F_HOST, P_HOST,$/;"	e	file:
-F_HOST	test/via_parse.c	/^enum{	         F_HOST,    P_HOST,$/;"	e	file:
-F_IP6HOST	parser/parse_via.c	/^	F_IP6HOST, P_IP6HOST, $/;"	e	file:
-F_IP6HOST	test/via_parse.c	/^				 F_IP6HOST, P_IP6HOST,$/;"	e	file:
-F_LF	parser/parse_fline.c	/^       L_LF, F_CR, F_LF$/;"	e	file:
-F_LF	parser/parse_to.c	/^	URI_OR_TOKEN, MAYBE_URI_END, END, F_CR, F_LF, F_CRLF$/;"	e	file:
-F_LF	parser/parse_via.c	/^	F_LF,$/;"	e	file:
-F_LF	test/via_parse.c	/^				 F_LF,$/;"	e	file:
-F_MALLOC_OPTIMIZE	mem/f_malloc.h	64;"	d
-F_MALLOC_OPTIMIZE_FACTOR	mem/f_malloc.h	63;"	d
-F_MALLOC_STR	version.h	124;"	d
-F_MALLOC_STR	version.h	126;"	d
-F_MAXFORWARDS	parser/obsolete/parse_hname.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_MAXFORWARDS	test/auto.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_PARAM	parser/parse_via.c	/^	L_PARAM, F_PARAM, P_PARAM,$/;"	e	file:
-F_PARAM	test/via_parse.c	/^		L_PARAM, F_PARAM,   P_PARAM,$/;"	e	file:
-F_PORT	parser/parse_via.c	/^	L_PORT, F_PORT, P_PORT,$/;"	e	file:
-F_PORT	test/via_parse.c	/^		L_PORT,  F_PORT,    P_PORT,$/;"	e	file:
-F_PROTO	parser/parse_via.c	/^	L_PROTO, F_PROTO$/;"	e	file:
-F_PROTO	test/via_parse.c	/^		L_PROTO, F_PROTO, P_PROTO$/;"	e	file:
-F_RECROUTE	parser/obsolete/parse_hname.c	/^                F_ROUTE, F_RECROUTE,$/;"	e	file:
-F_ROUTE	parser/obsolete/parse_hname.c	/^                F_ROUTE, F_RECROUTE,$/;"	e	file:
-F_ROUTE	test/auto.c	/^		F_ROUTE,$/;"	e	file:
-F_SIP	parser/parse_via.c	/^	F_SIP = 100,$/;"	e	file:
-F_SIP	test/via_parse.c	/^enum{	         F_SIP=100,$/;"	e	file:
-F_TO	parser/obsolete/parse_hname.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_TO	test/auto.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_VALUE	parser/parse_via.c	/^	L_VALUE = 200, F_VALUE, P_VALUE, P_STRING,$/;"	e	file:
-F_VALUE	test/via_parse.c	/^enum{	L_VALUE=200,   F_VALUE, P_VALUE, P_STRING,$/;"	e	file:
-F_VER	parser/parse_via.c	/^	L_VER, F_VER,$/;"	e	file:
-F_VER	test/via_parse.c	/^		L_VER, F_VER,$/;"	e	file:
-F_VIA	parser/obsolete/parse_hname.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_VIA	parser/parse_via.c	/^	L_VIA, F_VIA,$/;"	e	file:
-F_VIA	test/auto.c	/^		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,$/;"	e	file:
-F_VIA	test/via_parse.c	/^		L_VIA,   F_VIA,$/;"	e	file:
-False	modules/mediaproxy/mediaproxy.c	84;"	d	file:
-FixContact	modules/mediaproxy/functions.h	/^FixContact(struct sip_msg* msg, char* str1, char* str2)$/;"	f
-FoRW	parser/obsolete/strs.h	201;"	d
-FoRw	parser/obsolete/strs.h	200;"	d
-ForW	parser/obsolete/strs.h	199;"	d
-Forw	parser/obsolete/strs.h	198;"	d
-FrOM	parser/obsolete/strs.h	86;"	d
-FrOm	parser/obsolete/strs.h	85;"	d
-FroM	parser/obsolete/strs.h	84;"	d
-From	parser/obsolete/strs.h	83;"	d
-G	md5.c	77;"	d	file:
-GALIAS_CHAR_MARKER	usr_avp.h	56;"	d
-GENERAL_PARAM	parser/parse_to.h	/^	TAG_PARAM = 400, GENERAL_PARAM$/;"	e
-GEN_LOCK_T_PREFERED	lock_ops.h	225;"	d
-GEN_LOCK_T_PREFERED	lock_ops.h	248;"	d
-GEN_PARAM	parser/parse_via.h	/^	GEN_PARAM,$/;"	e
-GEN_PARAM	test/via_parse.c	/^		GEN_PARAM$/;"	e	file:
-GET_HASH	mem/f_malloc.c	72;"	d	file:
-GET_HASH	mem/q_malloc.c	86;"	d	file:
-GET_NEXT_HOP	parser/msg_parser.h	95;"	d
-GET_NODE_SIZE	modules/cpl-c/CPL_tree.h	215;"	d
-GET_RURI	parser/msg_parser.h	106;"	d
-GG	md5.c	93;"	d	file:
-GRANULARITY	mem/memtest.c	138;"	d	file:
-GREATER_ATTR	modules/cpl-c/CPL_tree.h	122;"	d
-GROUP	cfg.tab.c	/^     GROUP = 340,$/;"	e	enum:yytokentype	file:
-GROUP	cfg.tab.c	282;"	d	file:
-GROUP	cfg.tab.h	/^     GROUP = 340,$/;"	e	enum:yytokentype
-GROUP	cfg.tab.h	258;"	d
-GROUPRAD_MOD_H	modules/group_radius/grouprad_mod.h	35;"	d
-GROUP_COL	modules/group/group_mod.c	86;"	d	file:
-GROUP_COL_LEN	modules/group/group_mod.c	87;"	d	file:
-GROUP_H	modules/group/group.h	37;"	d
-GROUP_H	modules/group_radius/group.h	36;"	d
-GROUP_MOD_H	modules/group/group_mod.h	36;"	d
-GT	cfg.tab.c	/^     GT = 372,$/;"	e	enum:yytokentype	file:
-GT	cfg.tab.c	314;"	d	file:
-GT	cfg.tab.h	/^     GT = 372,$/;"	e	enum:yytokentype
-GT	cfg.tab.h	290;"	d
-GTE	cfg.tab.c	/^     GTE = 374,$/;"	e	enum:yytokentype	file:
-GTE	cfg.tab.c	316;"	d	file:
-GTE	cfg.tab.h	/^     GTE = 374,$/;"	e	enum:yytokentype
-GTE	cfg.tab.h	292;"	d
-GTE_OP	route_struct.h	/^enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };$/;"	e
-GT_OP	route_struct.h	/^enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };$/;"	e
-H	md5.c	78;"	d	file:
-HASH	modules/auth_db/rfc2617.h	/^typedef char HASH[HASHLEN];$/;"	t
-HASH	utils/gen_ha1/calc.h	/^typedef char HASH[HASHLEN];$/;"	t
-HASHHEX	modules/auth_db/rfc2617.h	/^typedef char HASHHEX[HASHHEXLEN+1];$/;"	t
-HASHHEX	utils/gen_ha1/calc.h	/^typedef char HASHHEX[HASHHEXLEN+1];$/;"	t
-HASHHEXLEN	modules/auth_db/rfc2617.h	41;"	d
-HASHHEXLEN	utils/gen_ha1/calc.h	37;"	d
-HASHLEN	modules/auth_db/rfc2617.h	37;"	d
-HASHLEN	utils/gen_ha1/calc.h	33;"	d
-HASH_H	modules/permissions/hash.h	29;"	d
-HASH_SIZE	modules/domain/domain_mod.h	42;"	d
-HASH_SIZE	modules/permissions/hash.h	35;"	d
-HA_MD5	modules/auth_db/rfc2617.h	/^	HA_MD5,      \/* Plain MD5 *\/$/;"	e
-HA_MD5_SESS	modules/auth_db/rfc2617.h	/^	HA_MD5_SESS, \/* MD5-Session *\/$/;"	e
-HDR_ACCEPT	parser/hf.h	66;"	d
-HDR_ACCEPTDISPOSITION	parser/hf.h	72;"	d
-HDR_ACCEPTLANGUAGE	parser/hf.h	67;"	d
-HDR_ALLOW	parser/hf.h	64;"	d
-HDR_AUTHORIZATION	parser/hf.h	58;"	d
-HDR_CALLID	parser/hf.h	51;"	d
-HDR_CONTACT	parser/hf.h	52;"	d
-HDR_CONTENTDISPOSITION	parser/hf.h	73;"	d
-HDR_CONTENTLENGTH	parser/hf.h	57;"	d
-HDR_CONTENTTYPE	parser/hf.h	56;"	d
-HDR_CSEQ	parser/hf.h	50;"	d
-HDR_DIVERSION	parser/hf.h	74;"	d
-HDR_EOH	parser/hf.h	43;"	d
-HDR_ERROR	parser/hf.h	44;"	d
-HDR_EVENT	parser/hf.h	65;"	d
-HDR_EXPIRES	parser/hf.h	59;"	d
-HDR_FROM	parser/hf.h	49;"	d
-HDR_MAXFORWARDS	parser/hf.h	53;"	d
-HDR_NOT_FOUND	modules/cpl-c/cpl_run.c	65;"	d	file:
-HDR_ORGANIZATION	parser/hf.h	68;"	d
-HDR_OTHER	parser/hf.h	76;"	d
-HDR_PRIORITY	parser/hf.h	69;"	d
-HDR_PROXYAUTH	parser/hf.h	60;"	d
-HDR_PROXYREQUIRE	parser/hf.h	62;"	d
-HDR_RECORDROUTE	parser/hf.h	55;"	d
-HDR_ROUTE	parser/hf.h	54;"	d
-HDR_RPID	parser/hf.h	75;"	d
-HDR_SUBJECT	parser/hf.h	70;"	d
-HDR_SUPPORTED	parser/hf.h	61;"	d
-HDR_TO	parser/hf.h	48;"	d
-HDR_UNSUPPORTED	parser/hf.h	63;"	d
-HDR_USERAGENT	parser/hf.h	71;"	d
-HDR_VIA	parser/hf.h	45;"	d
-HDR_VIA1	parser/hf.h	46;"	d
-HDR_VIA2	parser/hf.h	47;"	d
-HEADER_SIZE	modules/extcmd/extcmd_funcs.c	67;"	d	file:
-HEX2I	resolve.h	128;"	d
-HEXDIG	ip_addr.h	410;"	d
-HFN_SYMBOL	modules/exec/exec_hf.h	59;"	d
-HF_H	parser/hf.h	36;"	d
-HF_LEN	modules/tm/t_lookup.c	130;"	d	file:
-HF_PREFIX	modules/exec/exec_hf.h	37;"	d
-HF_PREFIX_LEN	modules/exec/exec_hf.h	38;"	d
-HF_SEPARATOR	modules/exec/exec_hf.h	50;"	d
-HF_SEP_STR	modules/options/mod_options.h	41;"	d
-HF_SEP_STR_LEN	modules/options/mod_options.h	42;"	d
-HH	md5.c	98;"	d	file:
-HIDDEN1	parser/parse_via.c	/^	HIDDEN1, HIDDEN2, HIDDEN3, HIDDEN4, HIDDEN5,$/;"	e	file:
-HIDDEN1	test/via_parse.c	/^		HIDDEN1,   HIDDEN2,   HIDDEN3,   HIDDEN4,   HIDDEN5,$/;"	e	file:
-HIDDEN2	parser/parse_via.c	/^	HIDDEN1, HIDDEN2, HIDDEN3, HIDDEN4, HIDDEN5,$/;"	e	file:
-HIDDEN2	test/via_parse.c	/^		HIDDEN1,   HIDDEN2,   HIDDEN3,   HIDDEN4,   HIDDEN5,$/;"	e	file:
-HIDDEN3	parser/parse_via.c	/^	HIDDEN1, HIDDEN2, HIDDEN3, HIDDEN4, HIDDEN5,$/;"	e	file:
-HIDDEN3	test/via_parse.c	/^		HIDDEN1,   HIDDEN2,   HIDDEN3,   HIDDEN4,   HIDDEN5,$/;"	e	file:
-HIDDEN4	parser/parse_via.c	/^	HIDDEN1, HIDDEN2, HIDDEN3, HIDDEN4, HIDDEN5,$/;"	e	file:
-HIDDEN4	test/via_parse.c	/^		HIDDEN1,   HIDDEN2,   HIDDEN3,   HIDDEN4,   HIDDEN5,$/;"	e	file:
-HIDDEN5	parser/parse_via.c	/^	HIDDEN1, HIDDEN2, HIDDEN3, HIDDEN4, HIDDEN5,$/;"	e	file:
-HIDDEN5	test/via_parse.c	/^		HIDDEN1,   HIDDEN2,   HIDDEN3,   HIDDEN4,   HIDDEN5,$/;"	e	file:
-HNV_UNRESERVED	modules/exec/exec_hf.h	55;"	d
-HOOK_SET	modules/tm/sip_msg.c	277;"	d	file:
-HOP_BY_HOP_IDENTIFIER_SIZE	modules/acc/diam_message.h	45;"	d
-HOP_BY_HOP_IDENTIFIER_SIZE	modules/auth_diameter/diameter_msg.h	45;"	d
-HOST_VAL	modules/cpl-c/CPL_tree.h	77;"	d
-HSLOT_H	modules/pa/hslot.h	32;"	d
-HSLOT_H	modules/usrloc/hslot.h	32;"	d
-H_BODY	tcp_conn.h	/^enum tcp_req_states {	H_SKIP_EMPTY, H_SKIP, H_LF, H_LFCR,  H_BODY, H_STARTWS,$/;"	e	enum:tcp_req_states
-H_CONT_LEN1	tcp_conn.h	/^		H_CONT_LEN1, H_CONT_LEN2, H_CONT_LEN3, H_CONT_LEN4, H_CONT_LEN5,$/;"	e	enum:tcp_req_states
-H_CONT_LEN10	tcp_conn.h	/^		H_CONT_LEN6, H_CONT_LEN7, H_CONT_LEN8, H_CONT_LEN9, H_CONT_LEN10,$/;"	e	enum:tcp_req_states
-H_CONT_LEN11	tcp_conn.h	/^		H_CONT_LEN11, H_CONT_LEN12, H_CONT_LEN13, H_L_COLON, $/;"	e	enum:tcp_req_states
-H_CONT_LEN12	tcp_conn.h	/^		H_CONT_LEN11, H_CONT_LEN12, H_CONT_LEN13, H_L_COLON, $/;"	e	enum:tcp_req_states
-H_CONT_LEN13	tcp_conn.h	/^		H_CONT_LEN11, H_CONT_LEN12, H_CONT_LEN13, H_L_COLON, $/;"	e	enum:tcp_req_states
-H_CONT_LEN2	tcp_conn.h	/^		H_CONT_LEN1, H_CONT_LEN2, H_CONT_LEN3, H_CONT_LEN4, H_CONT_LEN5,$/;"	e	enum:tcp_req_states
-H_CONT_LEN3	tcp_conn.h	/^		H_CONT_LEN1, H_CONT_LEN2, H_CONT_LEN3, H_CONT_LEN4, H_CONT_LEN5,$/;"	e	enum:tcp_req_states
-H_CONT_LEN4	tcp_conn.h	/^		H_CONT_LEN1, H_CONT_LEN2, H_CONT_LEN3, H_CONT_LEN4, H_CONT_LEN5,$/;"	e	enum:tcp_req_states
-H_CONT_LEN5	tcp_conn.h	/^		H_CONT_LEN1, H_CONT_LEN2, H_CONT_LEN3, H_CONT_LEN4, H_CONT_LEN5,$/;"	e	enum:tcp_req_states
-H_CONT_LEN6	tcp_conn.h	/^		H_CONT_LEN6, H_CONT_LEN7, H_CONT_LEN8, H_CONT_LEN9, H_CONT_LEN10,$/;"	e	enum:tcp_req_states
-H_CONT_LEN7	tcp_conn.h	/^		H_CONT_LEN6, H_CONT_LEN7, H_CONT_LEN8, H_CONT_LEN9, H_CONT_LEN10,$/;"	e	enum:tcp_req_states
-H_CONT_LEN8	tcp_conn.h	/^		H_CONT_LEN6, H_CONT_LEN7, H_CONT_LEN8, H_CONT_LEN9, H_CONT_LEN10,$/;"	e	enum:tcp_req_states
-H_CONT_LEN9	tcp_conn.h	/^		H_CONT_LEN6, H_CONT_LEN7, H_CONT_LEN8, H_CONT_LEN9, H_CONT_LEN10,$/;"	e	enum:tcp_req_states
-H_CONT_LEN_BODY	tcp_conn.h	/^		H_CONT_LEN_BODY, H_CONT_LEN_BODY_PARSE $/;"	e	enum:tcp_req_states
-H_CONT_LEN_BODY_PARSE	tcp_conn.h	/^		H_CONT_LEN_BODY, H_CONT_LEN_BODY_PARSE $/;"	e	enum:tcp_req_states
-H_LF	tcp_conn.h	/^enum tcp_req_states {	H_SKIP_EMPTY, H_SKIP, H_LF, H_LFCR,  H_BODY, H_STARTWS,$/;"	e	enum:tcp_req_states
-H_LFCR	tcp_conn.h	/^enum tcp_req_states {	H_SKIP_EMPTY, H_SKIP, H_LF, H_LFCR,  H_BODY, H_STARTWS,$/;"	e	enum:tcp_req_states
-H_L_COLON	tcp_conn.h	/^		H_CONT_LEN11, H_CONT_LEN12, H_CONT_LEN13, H_L_COLON, $/;"	e	enum:tcp_req_states
-H_SKIP	tcp_conn.h	/^enum tcp_req_states {	H_SKIP_EMPTY, H_SKIP, H_LF, H_LFCR,  H_BODY, H_STARTWS,$/;"	e	enum:tcp_req_states
-H_SKIP_EMPTY	tcp_conn.h	/^enum tcp_req_states {	H_SKIP_EMPTY, H_SKIP, H_LF, H_LFCR,  H_BODY, H_STARTWS,$/;"	e	enum:tcp_req_states
-H_STARTWS	tcp_conn.h	/^enum tcp_req_states {	H_SKIP_EMPTY, H_SKIP, H_LF, H_LFCR,  H_BODY, H_STARTWS,$/;"	e	enum:tcp_req_states
-I	md5.c	79;"	d	file:
-ID	cfg.tab.c	/^     ID = 384,$/;"	e	enum:yytokentype	file:
-ID	cfg.tab.c	326;"	d	file:
-ID	cfg.tab.h	/^     ID = 384,$/;"	e	enum:yytokentype
-ID	cfg.tab.h	302;"	d
-IDBUF_LEN	modules/tm/t_fifo.c	97;"	d	file:
-ID_CASE	parser/case_call.h	41;"	d
-ID_PARAM	config.h	105;"	d
-ID_PARAM_LEN	config.h	106;"	d
-IF	cfg.tab.c	/^     IF = 284,$/;"	e	enum:yytokentype	file:
-IF	cfg.tab.c	226;"	d	file:
-IF	cfg.tab.h	/^     IF = 284,$/;"	e	enum:yytokentype
-IF	cfg.tab.h	202;"	d
-IFISMETHOD	parser/msg_parser.h	77;"	d
-IF_DOWN	test/ifls.c	54;"	d	file:
-IF_T	route_struct.h	/^		SET_PORT_T, SET_URI_T, IF_T, MODULE_T,$/;"	e
-IF_UP	test/ifls.c	55;"	d	file:
-II	md5.c	103;"	d	file:
-INBOUND	modules/rr/record.c	63;"	d	file:
-INCLUDE	test/locking/Makefile	/^INCLUDE=$/;"	m
-INCL_LIBXODE_H	modules/jabber/xode.h	63;"	d
-INCOMING_NODE	modules/cpl-c/CPL_tree.h	34;"	d
-INETOID	modules/postgres/pg_type.h	68;"	d
-INITIAL	lex.yy.c	1236;"	d	file:
-INITIAL	parser/obsolete/parse_hname.c	/^enum { INITIAL=0,$/;"	e	file:
-INITIAL	test/auto.c	/^enum { INITIAL=0,$/;"	e	file:
-INITIAL_S	lex.yy.c	1197;"	d	file:
-INIT_AV	modules/acc/dict.h	89;"	d
-INIT_REF_UNSAFE	modules/tm/t_funcs.h	111;"	d
-INSERT_CMD	db/db_fifo.c	54;"	d	file:
-INSERT_STR	db/db_fifo.c	63;"	d	file:
-INSERT_STR_LEN	db/db_fifo.c	64;"	d	file:
-INS_CHAR	modules/jabber/xsnprintf.c	291;"	d	file:
-INT	modules/jabber/doc/xjab.sql	/^	juid INT NOT NULL AUTO_INCREMENT,$/;"	F
-INT	modules/jabber/doc/xjab.sql	/^	juid INT NOT NULL,$/;"	F
-INT16_MAX	lex.yy.c	64;"	d	file:
-INT16_MIN	lex.yy.c	55;"	d	file:
-INT2OID	modules/postgres/pg_type.h	43;"	d
-INT2STR_MAX_LEN	ut.h	157;"	d
-INT2VECTOROID	modules/postgres/pg_type.h	44;"	d
-INT32_MAX	lex.yy.c	67;"	d	file:
-INT32_MIN	lex.yy.c	58;"	d	file:
-INT4OID	modules/postgres/pg_type.h	45;"	d
-INT64	modules/jabber/sha.c	58;"	d	file:
-INT64	modules/jabber/sha.c	61;"	d	file:
-INT8OID	modules/postgres/pg_type.h	42;"	d
-INT8_MAX	lex.yy.c	61;"	d	file:
-INT8_MIN	lex.yy.c	52;"	d	file:
-INTEGER	modules/msilo/doc/msilo.sql	/^    mid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,$/;"	F
-INTEGER	modules/pdt/doc/pdt.sql	/^	code INTEGER NOT NULL PRIMARY KEY,$/;"	F
-INTERNALOID	modules/postgres/pg_type.h	95;"	d
-INTERVALOID	modules/postgres/pg_type.h	77;"	d
-INTERVAL_ATTR	modules/cpl-c/CPL_tree.h	106;"	d
-INT_NULL	modules/jabber/xsnprintf.c	250;"	d	file:
-INT_PARAM	sr_module.h	61;"	d
-INT_TYPE	db/db_fifo.c	73;"	d	file:
-INT_TYPE_LEN	db/db_fifo.c	74;"	d	file:
-INVITE	parser/parse_fline.h	48;"	d
-INVITE1	parser/parse_fline.c	/^       INVITE1, INVITE2, INVITE3, INVITE4, INVITE5,$/;"	e	file:
-INVITE2	parser/parse_fline.c	/^       INVITE1, INVITE2, INVITE3, INVITE4, INVITE5,$/;"	e	file:
-INVITE3	parser/parse_fline.c	/^       INVITE1, INVITE2, INVITE3, INVITE4, INVITE5,$/;"	e	file:
-INVITE4	parser/parse_fline.c	/^       INVITE1, INVITE2, INVITE3, INVITE4, INVITE5,$/;"	e	file:
-INVITE5	parser/parse_fline.c	/^       INVITE1, INVITE2, INVITE3, INVITE4, INVITE5,$/;"	e	file:
-INVITE_LEN	parser/parse_fline.h	50;"	d
-INV_CMD	modules/extcmd/extcmd_funcs.c	63;"	d	file:
-INV_FR_TIME_OUT	modules/tm/config.h	50;"	d
-ION_CASE	parser/case_prox.h	41;"	d
-IPC_PERMISSIONS	modules/tm/lock.h	74;"	d
-IPV6ADDR	cfg.tab.c	/^     IPV6ADDR = 386,$/;"	e	enum:yytokentype	file:
-IPV6ADDR	cfg.tab.c	328;"	d	file:
-IPV6ADDR	cfg.tab.h	/^     IPV6ADDR = 386,$/;"	e	enum:yytokentype
-IPV6ADDR	cfg.tab.h	304;"	d
-IP_ADDR_MAX_STR_SIZE	ip_addr.h	395;"	d
-IP_HELPER_H	modules/mangler/ip_helper.h	36;"	d
-IP_REGEX	modules/mangler/sdp_mangler.h	54;"	d
-IP_REGEX	modules/mangler/sdp_mangler.h	60;"	d
-IP_ST	route_struct.h	/^enum { NOSUBTYPE=0, STRING_ST, NET_ST, NUMBER_ST, IP_ST, RE_ST, PROXY_ST,$/;"	e
-IRE_CASE	parser/case_requ.h	42;"	d
-ISFLAGSET	cfg.tab.c	/^     ISFLAGSET = 294,$/;"	e	enum:yytokentype	file:
-ISFLAGSET	cfg.tab.c	236;"	d	file:
-ISFLAGSET	cfg.tab.h	/^     ISFLAGSET = 294,$/;"	e	enum:yytokentype
-ISFLAGSET	cfg.tab.h	212;"	d
-ISFLAGSET_T	route_struct.h	/^		SETFLAG_T, RESETFLAG_T, ISFLAGSET_T ,$/;"	e
-IS_ATTR	modules/cpl-c/CPL_tree.h	83;"	d
-IS_BIGBUCKET	mem/vq_malloc.c	87;"	d	file:
-IS_REFFED_UNSAFE	modules/tm/t_funcs.h	112;"	d
-IZAT_CASE	parser/case_prox.h	55;"	d
-I_START	parser/obsolete/parse_hname.c	/^		I_START,$/;"	e	file:
-I_START	test/auto.c	/^		I_START,$/;"	e	file:
-JB_CLIENT_OPEN_STREAM	modules/jabber/xjab_jcon.c	56;"	d	file:
-JB_ID_BASE	modules/jabber/xjab_jcon.c	52;"	d	file:
-JB_IQ_ROSTER_GET	modules/jabber/xjab_jcon.c	58;"	d	file:
-JB_START_STREAM	modules/jabber/xjab_jcon.c	53;"	d	file:
-JB_START_STREAM_LEN	modules/jabber/xjab_jcon.c	54;"	d	file:
-K1	modules/jabber/sha.c	77;"	d	file:
-K2	modules/jabber/sha.c	78;"	d	file:
-K3	modules/jabber/sha.c	79;"	d	file:
-K4	modules/jabber/sha.c	80;"	d	file:
-KEYS_H	parser/keys.h	37;"	d
-KID_OFFSET	modules/cpl-c/CPL_tree.h	219;"	d
-KID_OFFSET_PTR	modules/cpl-c/CPL_tree.h	212;"	d
-KILL_CMD	unixsock_server.c	98;"	d	file:
-LANGUAGE_HANDLEROID	modules/postgres/pg_type.h	94;"	d
-LANGUAGE_NODE	modules/cpl-c/CPL_tree.h	46;"	d
-LANGUAGE_SWITCH_NODE	modules/cpl-c/CPL_tree.h	47;"	d
-LBRACE	cfg.tab.c	/^     LBRACE = 391,$/;"	e	enum:yytokentype	file:
-LBRACE	cfg.tab.c	333;"	d	file:
-LBRACE	cfg.tab.h	/^     LBRACE = 391,$/;"	e	enum:yytokentype
-LBRACE	cfg.tab.h	309;"	d
-LBRACK	cfg.tab.c	/^     LBRACK = 393,$/;"	e	enum:yytokentype	file:
-LBRACK	cfg.tab.c	335;"	d	file:
-LBRACK	cfg.tab.h	/^     LBRACK = 393,$/;"	e	enum:yytokentype
-LBRACK	cfg.tab.h	311;"	d
-LD_AFTER	data_lump.c	/^enum lump_dir { LD_NEXT, LD_BEFORE, LD_AFTER };$/;"	e	enum:lump_dir	file:
-LD_BEFORE	data_lump.c	/^enum lump_dir { LD_NEXT, LD_BEFORE, LD_AFTER };$/;"	e	enum:lump_dir	file:
-LD_NEXT	data_lump.c	/^enum lump_dir { LD_NEXT, LD_BEFORE, LD_AFTER };$/;"	e	enum:lump_dir	file:
-LEAF_NODE	modules/pike/ip_tree.h	46;"	d
-LENG	parser/obsolete/strs.h	326;"	d
-LEN_GT_T	route_struct.h	/^		LEN_GT_T, PREFIX_T, STRIP_T,STRIP_TAIL_T,$/;"	e
-LEN_LEN	modules/extcmd/extcmd_funcs.c	69;"	d	file:
-LENg	parser/obsolete/strs.h	325;"	d
-LESS_ATTR	modules/cpl-c/CPL_tree.h	121;"	d
-LEnG	parser/obsolete/strs.h	324;"	d
-LEng	parser/obsolete/strs.h	323;"	d
-LF	modules/cpl-c/cpl_log.h	51;"	d
-LF	parser/obsolete/parse_hname.c	/^		LF=25000$/;"	e	file:
-LF	test/auto.c	/^		LF=25000,$/;"	e	file:
-LF_LEN	modules/cpl-c/cpl_log.h	52;"	d
-LIBS	db/example/Makefile	/^LIBS=$/;"	m
-LIBS	modules/acc/Makefile	/^LIBS=$/;"	m
-LIBS	modules/auth/Makefile	/^LIBS=$/;"	m
-LIBS	modules/auth_db/Makefile	/^LIBS=$/;"	m
-LIBS	modules/avp_db/Makefile	/^LIBS=$/;"	m
-LIBS	modules/avpops/Makefile	/^LIBS= $/;"	m
-LIBS	modules/cpl-c/Makefile	/^LIBS= -L$(LOCALBASE)\/lib -lxml2$/;"	m
-LIBS	modules/cpl/Makefile	/^LIBS= $/;"	m
-LIBS	modules/dbtext/Makefile	/^LIBS=$/;"	m
-LIBS	modules/dbtext/dbtex/Makefile	/^LIBS=$/;"	m
-LIBS	modules/dispatcher/Makefile	/^LIBS=$/;"	m
-LIBS	modules/diversion/Makefile	/^LIBS=$/;"	m
-LIBS	modules/domain/Makefile	/^LIBS=$/;"	m
-LIBS	modules/enum/Makefile	/^LIBS=$/;"	m
-LIBS	modules/exec/Makefile	/^LIBS=$/;"	m
-LIBS	modules/ext/Makefile	/^LIBS= $/;"	m
-LIBS	modules/extcmd/Makefile	/^LIBS=$/;"	m
-LIBS	modules/gflags/Makefile	/^LIBS=$/;"	m
-LIBS	modules/group/Makefile	/^LIBS=$/;"	m
-LIBS	modules/jabber/Makefile	/^LIBS=-L$(LOCALBASE)\/lib -lexpat$/;"	m
-LIBS	modules/mangler/Makefile	/^LIBS=$/;"	m
-LIBS	modules/maxfwd/Makefile	/^LIBS= $/;"	m
-LIBS	modules/mediaproxy/Makefile	/^LIBS=$/;"	m
-LIBS	modules/msilo/Makefile	/^LIBS=$/;"	m
-LIBS	modules/mysql/Makefile	/^LIBS=-L\/usr\/lib\/mysql -L$(LOCALBASE)\/lib -L$(LOCALBASE)\/lib\/mysql \\$/;"	m
-LIBS	modules/nathelper/Makefile	/^LIBS=$/;"	m
-LIBS	modules/options/Makefile	/^LIBS=$/;"	m
-LIBS	modules/pa/Makefile	/^LIBS=$/;"	m
-LIBS	modules/pdt/Makefile	/^LIBS=$/;"	m
-LIBS	modules/permissions/Makefile	/^LIBS=$/;"	m
-LIBS	modules/pike/Makefile	/^LIBS= $/;"	m
-LIBS	modules/postgres/Makefile	/^LIBS=-L$(LOCALBASE)\/lib -L$(LOCALBASE)\/pgsql\/lib -L$(LOCALBASE)\/lib\/pgsql -lpq$/;"	m
-LIBS	modules/print/Makefile	/^LIBS=$/;"	m
-LIBS	modules/registrar/Makefile	/^LIBS=$/;"	m
-LIBS	modules/rr/Makefile	/^LIBS=$/;"	m
-LIBS	modules/sl/Makefile	/^LIBS= $/;"	m
-LIBS	modules/sms/Makefile	/^LIBS=$/;"	m
-LIBS	modules/speeddial/Makefile	/^LIBS=$/;"	m
-LIBS	modules/textops/Makefile	/^LIBS=$/;"	m
-LIBS	modules/tm/Makefile	/^LIBS=$/;"	m
-LIBS	modules/uri/Makefile	/^LIBS=$/;"	m
-LIBS	modules/uri_db/Makefile	/^LIBS=$/;"	m
-LIBS	modules/usrloc/Makefile	/^LIBS=$/;"	m
-LIBS	modules/xlog/Makefile	/^LIBS=$/;"	m
-LIBS	test/locking/Makefile	/^LIBS=$/;"	m
-LIBS	utils/gen_ha1/Makefile	/^LIBS=..\/..\/md5.o$/;"	m
-LIBS	utils/serunix/Makefile	/^LIBS:=$(filter-out -lfl, $(LIBS) )$/;"	m
-LIB_DEPENDS	freebsd/Makefile	/^LIB_DEPENDS=   expat:${PORTSDIR}\/textproc\/expat* \\$/;"	m
-LIB_DEPENDS	openbsd/Makefile	/^LIB_DEPENDS=   expat.2:expat-1.*:textproc\/expat \\$/;"	m
-LINEOID	modules/postgres/pg_type.h	58;"	d
-LINE_LENGTH	modules/permissions/rule.h	37;"	d
-LISTEN	cfg.tab.c	/^     LISTEN = 314,$/;"	e	enum:yytokentype	file:
-LISTEN	cfg.tab.c	256;"	d	file:
-LISTEN	cfg.tab.h	/^     LISTEN = 314,$/;"	e	enum:yytokentype
-LISTEN	cfg.tab.h	232;"	d
-LOADMODULE	cfg.tab.c	/^     LOADMODULE = 336,$/;"	e	enum:yytokentype	file:
-LOADMODULE	cfg.tab.c	278;"	d	file:
-LOADMODULE	cfg.tab.h	/^     LOADMODULE = 336,$/;"	e	enum:yytokentype
-LOADMODULE	cfg.tab.h	254;"	d
-LOAD_AVP_T	route_struct.h	/^		LOAD_AVP_T,$/;"	e
-LOAD_CALLEE	modules/avp_db/avp_db.c	/^	LOAD_CALLEE        \/* Use the callee's username and domain as the key *\/$/;"	e	enum:load_avp_param	file:
-LOAD_CALLEE	modules/avp_radius/avp_radius.c	/^	LOAD_CALLEE,       \/* Use the callee's username and domain as the key *\/$/;"	e	enum:load_avp_param	file:
-LOAD_CALLEE_UUID	modules/avp_db/avp_db.c	/^	LOAD_CALLEE_UUID,  \/* Use the callee's UUID as the key *\/$/;"	e	enum:load_avp_param	file:
-LOAD_CALLER	modules/avp_db/avp_db.c	/^	LOAD_CALLER,       \/* Use the caller's username and domain as the key *\/$/;"	e	enum:load_avp_param	file:
-LOAD_CALLER	modules/avp_radius/avp_radius.c	/^	LOAD_CALLER,       \/* Use the caller's username and domain as the key *\/$/;"	e	enum:load_avp_param	file:
-LOAD_CALLER_UUID	modules/avp_db/avp_db.c	/^	LOAD_CALLER_UUID,  \/* Use the caller's UUID as the key *\/$/;"	e	enum:load_avp_param	file:
-LOAD_DIGEST	modules/avp_radius/avp_radius.c	/^	LOAD_DIGEST$/;"	e	enum:load_avp_param	file:
-LOAD_ERROR	modules/jabber/xjab_load.c	31;"	d	file:
-LOAD_ERROR	modules/tm/tm_load.c	39;"	d	file:
-LOCATIONINFO_ETAG	modules/pa/location.c	70;"	d	file:
-LOCATIONINFO_ETAG_L	modules/pa/location.c	71;"	d	file:
-LOCATIONINFO_STAG	modules/pa/location.c	68;"	d	file:
-LOCATIONINFO_STAG_L	modules/pa/location.c	69;"	d	file:
-LOCATION_ATTR	modules/cpl-c/CPL_tree.h	153;"	d
-LOCATION_ETAG	modules/pa/pidf.c	109;"	d	file:
-LOCATION_ETAG_L	modules/pa/pidf.c	110;"	d	file:
-LOCATION_NODE	modules/cpl-c/CPL_tree.h	45;"	d
-LOCATION_STAG	modules/pa/pidf.c	106;"	d	file:
-LOCATION_STAG_L	modules/pa/pidf.c	107;"	d	file:
-LOCK	test/locking/locking_test.c	107;"	d	file:
-LOCK	test/locking/locking_test.c	112;"	d	file:
-LOCK	test/locking/locking_test.c	117;"	d	file:
-LOCK	test/locking/locking_test.c	122;"	d	file:
-LOCK	test/locking/locking_test.c	85;"	d	file:
-LOCK	test/locking/locking_test.c	88;"	d	file:
-LOCK_HASH	modules/tm/h_table.h	68;"	d
-LOCK_REPLIES	modules/tm/t_reply.h	75;"	d
-LOC_ETAG	modules/pa/pidf.c	115;"	d	file:
-LOC_ETAG_L	modules/pa/pidf.c	116;"	d	file:
-LOC_STAG	modules/pa/pidf.c	112;"	d	file:
-LOC_STAG_L	modules/pa/pidf.c	113;"	d	file:
-LOG	dprint.h	100;"	d
-LOG	dprint.h	102;"	d
-LOG	dprint.h	106;"	d
-LOG	dprint.h	138;"	d
-LOG	test/p_uri.c	7;"	d	file:
-LOG	test/via_parse.c	80;"	d	file:
-LOG123	modules/jabber/tree234.c	47;"	d	file:
-LOG123	modules/jabber/tree234.c	49;"	d	file:
-LOGFACILITY	cfg.tab.c	/^     LOGFACILITY = 313,$/;"	e	enum:yytokentype	file:
-LOGFACILITY	cfg.tab.c	255;"	d	file:
-LOGFACILITY	cfg.tab.h	/^     LOGFACILITY = 313,$/;"	e	enum:yytokentype
-LOGFACILITY	cfg.tab.h	231;"	d
-LOGSTDERROR	cfg.tab.c	/^     LOGSTDERROR = 312,$/;"	e	enum:yytokentype	file:
-LOGSTDERROR	cfg.tab.c	254;"	d	file:
-LOGSTDERROR	cfg.tab.h	/^     LOGSTDERROR = 312,$/;"	e	enum:yytokentype
-LOGSTDERROR	cfg.tab.h	230;"	d
-LOG_NODE	modules/cpl-c/CPL_tree.h	43;"	d
-LOG_SEPARATOR	modules/cpl-c/cpl_nonsig.c	55;"	d	file:
-LOG_SEPARATOR_LEN	modules/cpl-c/cpl_nonsig.c	56;"	d	file:
-LOG_T	route_struct.h	/^enum { FORWARD_T=1, SEND_T, DROP_T, LOG_T, ERROR_T, ROUTE_T, EXEC_T,$/;"	e
-LOG_TERMINATOR	modules/cpl-c/cpl_nonsig.c	61;"	d	file:
-LOG_TERMINATOR_LEN	modules/cpl-c/cpl_nonsig.c	62;"	d	file:
-LOG_TOK	cfg.tab.c	/^     LOG_TOK = 265,$/;"	e	enum:yytokentype	file:
-LOG_TOK	cfg.tab.c	207;"	d	file:
-LOG_TOK	cfg.tab.h	/^     LOG_TOK = 265,$/;"	e	enum:yytokentype
-LOG_TOK	cfg.tab.h	183;"	d
-LONG_RUN	mem/memtest.c	62;"	d	file:
-LOOKUP_H	modules/registrar/lookup.h	32;"	d
-LOOKUP_NODE	modules/cpl-c/CPL_tree.h	44;"	d
-LOOP_COUNT	test/test.c	41;"	d	file:
-LOOSE_H	modules/rr/loose.h	32;"	d
-LOWER_BYTE	parser/digest/param_parser.c	35;"	d	file:
-LOWER_BYTE	parser/parse_hname2.c	42;"	d	file:
-LOWER_DWORD	parser/digest/param_parser.c	36;"	d	file:
-LOWER_DWORD	parser/parse_hname2.c	43;"	d	file:
-LPAREN	cfg.tab.c	/^     LPAREN = 390,$/;"	e	enum:yytokentype	file:
-LPAREN	cfg.tab.c	332;"	d	file:
-LPAREN	cfg.tab.h	/^     LPAREN = 390,$/;"	e	enum:yytokentype
-LPAREN	cfg.tab.h	308;"	d
-LPIDF_H	modules/pa/lpidf.h	32;"	d
-LPIDF_ST_CLOSED	modules/pa/lpidf.h	/^	LPIDF_ST_CLOSED,$/;"	e	enum:lpidf_status
-LPIDF_ST_OPEN	modules/pa/lpidf.h	/^	LPIDF_ST_OPEN,$/;"	e	enum:lpidf_status
-LSEGOID	modules/postgres/pg_type.h	54;"	d
-LT	cfg.tab.c	/^     LT = 373,$/;"	e	enum:yytokentype	file:
-LT	cfg.tab.c	315;"	d	file:
-LT	cfg.tab.h	/^     LT = 373,$/;"	e	enum:yytokentype
-LT	cfg.tab.h	291;"	d
-LTE	cfg.tab.c	/^     LTE = 375,$/;"	e	enum:yytokentype	file:
-LTE	cfg.tab.c	317;"	d	file:
-LTE	cfg.tab.h	/^     LTE = 375,$/;"	e	enum:yytokentype
-LTE	cfg.tab.h	293;"	d
-LTE_OP	route_struct.h	/^enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };$/;"	e
-LT_OP	route_struct.h	/^enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };$/;"	e
-LUMPFLAG_DUPED	lump_struct.h	/^enum lump_flag { LUMPFLAG_NONE=0, LUMPFLAG_DUPED=1, LUMPFLAG_SHMEM=2 };$/;"	e	enum:lump_flag
-LUMPFLAG_NONE	lump_struct.h	/^enum lump_flag { LUMPFLAG_NONE=0, LUMPFLAG_DUPED=1, LUMPFLAG_SHMEM=2 };$/;"	e	enum:lump_flag
-LUMPFLAG_SHMEM	lump_struct.h	/^enum lump_flag { LUMPFLAG_NONE=0, LUMPFLAG_DUPED=1, LUMPFLAG_SHMEM=2 };$/;"	e	enum:lump_flag
-LUMP_ADD	lump_struct.h	/^enum lump_op { LUMP_NOP=0, LUMP_DEL, LUMP_ADD, LUMP_ADD_SUBST, LUMP_ADD_OPT };$/;"	e	enum:lump_op
-LUMP_ADD_OPT	lump_struct.h	/^enum lump_op { LUMP_NOP=0, LUMP_DEL, LUMP_ADD, LUMP_ADD_SUBST, LUMP_ADD_OPT };$/;"	e	enum:lump_op
-LUMP_ADD_SUBST	lump_struct.h	/^enum lump_op { LUMP_NOP=0, LUMP_DEL, LUMP_ADD, LUMP_ADD_SUBST, LUMP_ADD_OPT };$/;"	e	enum:lump_op
-LUMP_DEL	lump_struct.h	/^enum lump_op { LUMP_NOP=0, LUMP_DEL, LUMP_ADD, LUMP_ADD_SUBST, LUMP_ADD_OPT };$/;"	e	enum:lump_op
-LUMP_LIST_LEN	modules/tm/sip_msg.c	376;"	d	file:
-LUMP_NOP	lump_struct.h	/^enum lump_op { LUMP_NOP=0, LUMP_DEL, LUMP_ADD, LUMP_ADD_SUBST, LUMP_ADD_OPT };$/;"	e	enum:lump_op
-LUMP_RPL_BODY	data_lump_rpl.h	44;"	d
-LUMP_RPL_HDR	data_lump_rpl.h	43;"	d
-LUMP_RPL_NODUP	data_lump_rpl.h	45;"	d
-LUMP_RPL_NOFREE	data_lump_rpl.h	46;"	d
-LUMP_RPL_SHMEM	data_lump_rpl.h	47;"	d
-L_ALERT	dprint.h	36;"	d
-L_CRIT	dprint.h	37;"	d
-L_DBG	dprint.h	42;"	d
-L_ERR	dprint.h	38;"	d
-L_INFO	dprint.h	41;"	d
-L_LF	parser/parse_fline.c	/^       L_LF, F_CR, F_LF$/;"	e	file:
-L_NOTICE	dprint.h	40;"	d
-L_PARAM	parser/parse_via.c	/^	L_PARAM, F_PARAM, P_PARAM,$/;"	e	file:
-L_PARAM	test/via_parse.c	/^		L_PARAM, F_PARAM,   P_PARAM,$/;"	e	file:
-L_PORT	parser/parse_via.c	/^	L_PORT, F_PORT, P_PORT,$/;"	e	file:
-L_PORT	test/via_parse.c	/^		L_PORT,  F_PORT,    P_PORT,$/;"	e	file:
-L_PROTO	parser/parse_via.c	/^	L_PROTO, F_PROTO$/;"	e	file:
-L_PROTO	test/via_parse.c	/^		L_PROTO, F_PROTO, P_PROTO$/;"	e	file:
-L_REASON	parser/parse_fline.c	/^       L_STATUS, P_STATUS, L_REASON, P_REASON,$/;"	e	file:
-L_STATUS	parser/parse_fline.c	/^       L_STATUS, P_STATUS, L_REASON, P_REASON,$/;"	e	file:
-L_URI	parser/parse_fline.c	/^       P_METHOD = 200, L_URI, P_URI, L_VER, $/;"	e	file:
-L_VALUE	parser/parse_via.c	/^	L_VALUE = 200, F_VALUE, P_VALUE, P_STRING,$/;"	e	file:
-L_VALUE	test/via_parse.c	/^enum{	L_VALUE=200,   F_VALUE, P_VALUE, P_STRING,$/;"	e	file:
-L_VER	parser/parse_fline.c	/^       P_METHOD = 200, L_URI, P_URI, L_VER, $/;"	e	file:
-L_VER	parser/parse_via.c	/^	L_VER, F_VER,$/;"	e	file:
-L_VER	test/via_parse.c	/^		L_VER, F_VER,$/;"	e	file:
-L_VIA	parser/parse_via.c	/^	L_VIA, F_VIA,$/;"	e	file:
-L_VIA	test/via_parse.c	/^		L_VIA,   F_VIA,$/;"	e	file:
-L_WARN	dprint.h	39;"	d
-LeNG	parser/obsolete/strs.h	322;"	d
-LeNg	parser/obsolete/strs.h	321;"	d
-LenG	parser/obsolete/strs.h	320;"	d
-Leng	parser/obsolete/strs.h	319;"	d
-MACADDROID	modules/postgres/pg_type.h	67;"	d
-MADDR1	parser/parse_via.c	/^	MADDR1, MADDR2, MADDR3, MADDR4,$/;"	e	file:
-MADDR1	test/via_parse.c	/^		MADDR1,    MADDR2,    MADDR3,    MADDR4,$/;"	e	file:
-MADDR2	parser/parse_via.c	/^	MADDR1, MADDR2, MADDR3, MADDR4,$/;"	e	file:
-MADDR2	test/via_parse.c	/^		MADDR1,    MADDR2,    MADDR3,    MADDR4,$/;"	e	file:
-MADDR3	parser/parse_via.c	/^	MADDR1, MADDR2, MADDR3, MADDR4,$/;"	e	file:
-MADDR3	test/via_parse.c	/^		MADDR1,    MADDR2,    MADDR3,    MADDR4,$/;"	e	file:
-MADDR4	parser/parse_via.c	/^	MADDR1, MADDR2, MADDR3, MADDR4,$/;"	e	file:
-MADDR4	test/via_parse.c	/^		MADDR1,    MADDR2,    MADDR3,    MADDR4,$/;"	e	file:
-MAIL_NODE	modules/cpl-c/CPL_tree.h	48;"	d
-MAINTAINER	freebsd/Makefile	/^MAINTAINER= andrei at iptel.org$/;"	m
-MAINTAINER	netbsd/Makefile	/^MAINTAINER= andrei at iptel.org$/;"	m
-MAINTAINER	openbsd/Makefile	/^MAINTAINER= andrei at iptel.org $/;"	m
-MAKE_ENV	freebsd/Makefile	/^MAKE_ENV= include_modules="mysql jabber cpl-c pa"$/;"	m
-MAKE_ENV	netbsd/Makefile	/^MAKE_ENV= include_modules="mysql jabber cpl-c pa"$/;"	m
-MAKE_ENV	openbsd/Makefile	/^MAKE_ENV= include_modules="mysql jabber cpl-c pa"$/;"	m
-MAN5	freebsd/Makefile	/^MAN5=ser.cfg.5$/;"	m
-MAN5	netbsd/Makefile	/^MAN5=ser.cfg.5$/;"	m
-MAN5	openbsd/Makefile	/^MAN5=ser.cfg.5$/;"	m
-MAN8	freebsd/Makefile	/^MAN8=ser.8$/;"	m
-MAN8	netbsd/Makefile	/^MAN8=ser.8$/;"	m
-MAN8	openbsd/Makefile	/^MAN8=ser.8$/;"	m
-MANCOMPRESSED	freebsd/Makefile	/^MANCOMPRESSED= no$/;"	m
-MANGLER_MOD_H	modules/mangler/mangler.h	36;"	d
-MASK_MSG_CODE	modules/acc/diam_message.h	70;"	d
-MASK_MSG_CODE	modules/acc/diam_message.h	80;"	d
-MASK_MSG_CODE	modules/auth_diameter/diameter_msg.h	70;"	d
-MASK_MSG_CODE	modules/auth_diameter/diameter_msg.h	80;"	d
-MASTER_SITES	freebsd/Makefile	/^MASTER_SITES= ftp:\/\/ftp.berlios.de\/pub\/ser\/0.9.4\/src\/$/;"	m
-MASTER_SITES	netbsd/Makefile	/^MASTER_SITES= ftp:\/\/ftp.berlios.de\/pub\/ser\/0.9.4\/src\/$/;"	m
-MASTER_SITES	openbsd/Makefile	/^MASTER_SITES= ftp:\/\/ftp.berlios.de\/pub\/ser\/0.9.4\/src\/$/;"	m
-MATCH	cfg.tab.c	/^     MATCH = 377,$/;"	e	enum:yytokentype	file:
-MATCH	cfg.tab.c	319;"	d	file:
-MATCH	cfg.tab.h	/^     MATCH = 377,$/;"	e	enum:yytokentype
-MATCH	cfg.tab.h	295;"	d
-MATCHES_SUBTAG_ATTR	modules/cpl-c/CPL_tree.h	95;"	d
-MATCHES_TAG_ATTR	modules/cpl-c/CPL_tree.h	94;"	d
-MATCH_OP	route_struct.h	/^enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };$/;"	e
-MAX	socket_info.c	408;"	d	file:
-MAX	test/ifls.c	75;"	d	file:
-MAXBUFFER	cfg.tab.c	/^     MAXBUFFER = 338,$/;"	e	enum:yytokentype	file:
-MAXBUFFER	cfg.tab.c	280;"	d	file:
-MAXBUFFER	cfg.tab.h	/^     MAXBUFFER = 338,$/;"	e	enum:yytokentype
-MAXBUFFER	cfg.tab.h	256;"	d
-MAXCOLUMNS	modules/postgres/dbase.c	39;"	d	file:
-MAXFORWARDS10	parser/obsolete/parse_hname.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS10	test/auto.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS11	parser/obsolete/parse_hname.c	/^		MAXFORWARDS11,$/;"	e	file:
-MAXFORWARDS11	test/auto.c	/^		MAXFORWARDS11,$/;"	e	file:
-MAXFORWARDS2	parser/obsolete/parse_hname.c	/^ 		M_FOUND,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MAXFORWARDS2	test/auto.c	/^		M_START,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MAXFORWARDS3	parser/obsolete/parse_hname.c	/^ 		M_FOUND,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MAXFORWARDS3	test/auto.c	/^		M_START,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MAXFORWARDS4	parser/obsolete/parse_hname.c	/^ 		M_FOUND,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MAXFORWARDS4	test/auto.c	/^		M_START,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MAXFORWARDS5	parser/obsolete/parse_hname.c	/^ 		M_FOUND,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MAXFORWARDS5	test/auto.c	/^		M_START,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MAXFORWARDS6	parser/obsolete/parse_hname.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS6	test/auto.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS7	parser/obsolete/parse_hname.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS7	test/auto.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS8	parser/obsolete/parse_hname.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS8	test/auto.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS9	parser/obsolete/parse_hname.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXFORWARDS9	test/auto.c	/^		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,$/;"	e	file:
-MAXSHORTSTR	modules/jabber/xode.h	40;"	d
-MAX_	parser/obsolete/strs.h	188;"	d
-MAX_AAA_MSG_SIZE	modules/acc/diam_tcp.h	47;"	d
-MAX_AAA_MSG_SIZE	modules/auth_diameter/tcp_comm.h	43;"	d
-MAX_ACK_LEN	modules/tm/config.h	45;"	d
-MAX_AOR_LEN	modules/pa/subscribe.c	484;"	d	file:
-MAX_AOR_LEN	modules/registrar/common.c	45;"	d	file:
-MAX_ARRAY	db/db_fifo.c	50;"	d	file:
-MAX_BODY	modules/tm/config.h	74;"	d
-MAX_BRANCHES	config.h	149;"	d
-MAX_BRANCH_PARAM_LEN	config.h	180;"	d
-MAX_BUCKET	config.h	135;"	d
-MAX_BUF	modules/sms/libsms_modem.c	32;"	d	file:
-MAX_BUFFER_LEN	modules/ext/ext.c	59;"	d	file:
-MAX_CHAR_BUF	modules/sms/sms_funcs.h	41;"	d
-MAX_CLIENTS	modules/extcmd/clients.h	32;"	d
-MAX_CODE	modules/pdt/domains.h	33;"	d
-MAX_CODE_10	modules/pdt/domains.h	34;"	d
-MAX_CODE_R	modules/pdt/domains.h	35;"	d
-MAX_COMMENT_SIZE	modules/cpl-c/CPL_tree.h	187;"	d
-MAX_CONFIG_PARAM	modules/sms/sms_funcs.h	42;"	d
-MAX_CONSUME_BUFFER	config.h	155;"	d
-MAX_CONTACT_BUFFER	modules/registrar/reply.c	48;"	d	file:
-MAX_CONTACT_LEN	modules/usrloc/ul_fifo.c	45;"	d	file:
-MAX_CTIME_LEN	fifo_server.h	55;"	d
-MAX_DEL_KEYS	modules/msilo/msilo.c	80;"	d	file:
-MAX_DNS_NAME	resolve.h	55;"	d
-MAX_DNS_STRING	resolve.h	56;"	d
-MAX_DOMAIN_SIZE	modules/enum/enum.h	38;"	d
-MAX_DST	modules/tm/config.h	75;"	d
-MAX_EMAIL_BODY_SIZE	modules/cpl-c/cpl_parser.c	133;"	d	file:
-MAX_EMAIL_HDR_SIZE	modules/cpl-c/cpl_parser.c	132;"	d	file:
-MAX_EMAIL_SUBJECT_SIZE	modules/cpl-c/cpl_parser.c	134;"	d	file:
-MAX_EXPIRES_LEN	modules/usrloc/ul_fifo.c	46;"	d	file:
-MAX_FD	daemonize.c	64;"	d	file:
-MAX_FD	main.c	335;"	d	file:
-MAX_FD	modules/cpl-c/cpl_nonsig.c	50;"	d	file:
-MAX_FIFO_COMMAND	config.h	152;"	d
-MAX_FIXED_BLOCK	config.h	131;"	d
-MAX_FLAG	flags.h	38;"	d
-MAX_FLAGS_LEN	modules/usrloc/ul_fifo.c	49;"	d	file:
-MAX_FLAG_LEN	modules/gflags/gflags.c	48;"	d	file:
-MAX_FROM	modules/tm/config.h	76;"	d
-MAX_HASH_SIZE	modules/pdt/domains.h	32;"	d
-MAX_HEADER	modules/tm/config.h	73;"	d
-MAX_HSIZE_TWO_POW	modules/pdt/domains.h	31;"	d
-MAX_IP_BRANCHES	modules/pike/ip_tree.h	50;"	d
-MAX_LEN	cfg.tab.c	/^     MAX_LEN = 291,$/;"	e	enum:yytokentype	file:
-MAX_LEN	cfg.tab.c	233;"	d	file:
-MAX_LEN	cfg.tab.h	/^     MAX_LEN = 291,$/;"	e	enum:yytokentype
-MAX_LEN	cfg.tab.h	209;"	d
-MAX_LISTEN	config.h	54;"	d
-MAX_LOCATION	modules/pa/publish.c	546;"	d	file:
-MAX_LOCATION	modules/pa/publish.c	702;"	d	file:
-MAX_LOCATION	modules/pa/publish.c	806;"	d	file:
-MAX_LOCATION	modules/pa/publish.c	967;"	d	file:
-MAX_LOG_DIR_SIZE	modules/cpl-c/cpl_nonsig.h	51;"	d
-MAX_LOG_FILE_NAME	modules/cpl-c/cpl_nonsig.c	49;"	d	file:
-MAX_LOG_NR	modules/cpl-c/cpl_log.h	42;"	d
-MAX_MANGLED_PORT	modules/mangler/sdp_mangler.h	67;"	d
-MAX_MATCH	modules/enum/regexp.h	37;"	d
-MAX_MEM	modules/sms/libsms_sms.h	34;"	d
-MAX_METHOD	modules/tm/config.h	72;"	d
-MAX_MIMES_NR	parser/parse_content.h	62;"	d
-MAX_MODEMS	modules/sms/sms_funcs.h	38;"	d
-MAX_NAME_SIZE	modules/cpl-c/CPL_tree.h	185;"	d
-MAX_NETWORKS	modules/sms/sms_funcs.h	39;"	d
-MAX_OFFSET_VALUE	modules/mangler/sdp_mangler.h	69;"	d
-MAX_ORIGINAL_PORT	modules/mangler/sdp_mangler.h	65;"	d
-MAX_PDOMAIN	modules/pa/publish.c	455;"	d	file:
-MAX_PDOMAIN	modules/pa/publish.c	547;"	d	file:
-MAX_PDOMAIN	modules/pa/publish.c	703;"	d	file:
-MAX_PDOMAIN	modules/pa/publish.c	807;"	d	file:
-MAX_PDOMAIN	modules/pa/publish.c	968;"	d	file:
-MAX_PIPE_BUFFER_LEN	modules/ext/config.h	33;"	d
-MAX_PORT_LEN	config.h	89;"	d
-MAX_PRESENCE	modules/pa/publish.c	454;"	d	file:
-MAX_PRINT_TEXT	config.h	159;"	d
-MAX_PROXY_RECURSE	modules/cpl-c/cpl.c	73;"	d	file:
-MAX_PT_DESC	pt.h	48;"	d
-MAX_P_URI	modules/pa/publish.c	453;"	d	file:
-MAX_P_URI	modules/pa/publish.c	545;"	d	file:
-MAX_P_URI	modules/pa/publish.c	701;"	d	file:
-MAX_P_URI	modules/pa/publish.c	805;"	d	file:
-MAX_P_URI	modules/pa/publish.c	966;"	d	file:
-MAX_Q	qvalue.h	70;"	d
-MAX_QUERY_SIZE	resolve.h	52;"	d
-MAX_QUEUED_MESSAGES	modules/sms/sms_funcs.h	45;"	d
-MAX_Q_LEN	modules/usrloc/ul_fifo.c	47;"	d	file:
-MAX_Q_STR	qvalue.h	73;"	d
-MAX_Q_STR_LEN	qvalue.h	74;"	d
-MAX_REASON_LEN	error.h	73;"	d
-MAX_RECEIVED_SIZE	config.h	145;"	d
-MAX_RECV_BUFFER_SIZE	udp_server.h	36;"	d
-MAX_REC_LEV	config.h	64;"	d
-MAX_REDIRECTION_LEN	config.h	162;"	d
-MAX_REPLACE_WITH	re.c	72;"	d	file:
-MAX_REPLICATE_LEN	modules/usrloc/ul_fifo.c	48;"	d	file:
-MAX_RPID_LEN	modules/auth/api.h	38;"	d
-MAX_RPORT_SIZE	config.h	146;"	d
-MAX_RULE_FILES	modules/permissions/permissions.h	55;"	d
-MAX_SIZE_LINE	db/db_fifo.c	49;"	d	file:
-MAX_SMS_LENGTH	modules/sms/sms_funcs.h	43;"	d
-MAX_SMS_PARTS	modules/sms/sms_funcs.h	44;"	d
-MAX_STATIC_BUF	modules/cpl-c/cpl_loader.c	472;"	d	file:
-MAX_STATIC_BUF	modules/cpl-c/cpl_loader.c	56;"	d	file:
-MAX_TABLE	modules/usrloc/ul_fifo.h	45;"	d
-MAX_TCP_CHILDREN	tcp_main.c	108;"	d	file:
-MAX_TIME	modules/textops/textops.c	91;"	d	file:
-MAX_TRIES	modules/acc/diam_tcp.h	53;"	d
-MAX_TRIES	modules/auth_diameter/tcp_comm.c	58;"	d	file:
-MAX_TYPE_VAL	modules/pike/ip_tree.c	265;"	d	file:
-MAX_URI_SIZE	config.h	68;"	d
-MAX_USER	modules/usrloc/ul_fifo.h	46;"	d
-MAX_USERHOST_LEN	modules/cpl-c/cpl.c	74;"	d	file:
-MAX_USERURI_SIZE	modules/speeddial/sdlookup.c	45;"	d	file:
-MAX_VIA_LINE_SIZE	config.h	144;"	d
-MAX_WAIT_SEC	modules/acc/diam_tcp.h	44;"	d
-MAX_WAIT_SEC	modules/auth_diameter/tcp_comm.h	40;"	d
-MAX_WAIT_USEC	modules/acc/diam_tcp.h	45;"	d
-MAX_WAIT_USEC	modules/auth_diameter/tcp_comm.h	41;"	d
-MAX_WARNING_LEN	config.h	84;"	d
-MAYBE_URI_END	parser/parse_to.c	/^	URI_OR_TOKEN, MAYBE_URI_END, END, F_CR, F_LF, F_CRLF$/;"	e	file:
-MAx_	parser/obsolete/strs.h	187;"	d
-MCAST_LOOPBACK	cfg.tab.c	/^     MCAST_LOOPBACK = 368,$/;"	e	enum:yytokentype	file:
-MCAST_LOOPBACK	cfg.tab.c	310;"	d	file:
-MCAST_LOOPBACK	cfg.tab.h	/^     MCAST_LOOPBACK = 368,$/;"	e	enum:yytokentype
-MCAST_LOOPBACK	cfg.tab.h	286;"	d
-MCAST_TTL	cfg.tab.c	/^     MCAST_TTL = 369,$/;"	e	enum:yytokentype	file:
-MCAST_TTL	cfg.tab.c	311;"	d	file:
-MCAST_TTL	cfg.tab.h	/^     MCAST_TTL = 369,$/;"	e	enum:yytokentype
-MCAST_TTL	cfg.tab.h	287;"	d
-MCOOKIE	config.h	177;"	d
-MCOOKIE_LEN	config.h	178;"	d
-MD	md5utils.c	25;"	d	file:
-MD5Final	md5.c	/^void MD5Final (digest, context)$/;"	f
-MD5GLOBAL_H	md5global.h	12;"	d
-MD5Init	md5.c	/^void MD5Init (context)$/;"	f
-MD5Transform	md5.c	/^static void MD5Transform (state, block)$/;"	f	file:
-MD5Update	md5.c	/^void MD5Update (context, input, inputLen)$/;"	f
-MD5_CTX	md5.h	/^} MD5_CTX;$/;"	t
-MD5_H	md5.h	29;"	d
-MD5_LEN	md5utils.h	35;"	d
-MD5_memcpy	md5.c	/^static void MD5_memcpy (output, input, len)$/;"	f	file:
-MD5_memset	md5.c	/^static void MD5_memset (output, value, len)$/;"	f	file:
-MDFinal	md5utils.c	42;"	d	file:
-MDInit	md5utils.c	40;"	d	file:
-MDStringArray	md5utils.c	/^void MDStringArray (char *dst, str src[], int size)$/;"	f
-MDUpdate	md5utils.c	41;"	d	file:
-MD_CTX	md5utils.c	39;"	d	file:
-MEMLOG	cfg.tab.c	/^     MEMLOG = 323,$/;"	e	enum:yytokentype	file:
-MEMLOG	cfg.tab.c	265;"	d	file:
-MEMLOG	cfg.tab.h	/^     MEMLOG = 323,$/;"	e	enum:yytokentype
-MEMLOG	cfg.tab.h	241;"	d
-MEM_CHECK	modules/postgres/aug_alloc.c	129;"	d	file:
-MEM_CROWN	modules/postgres/aug_alloc.c	124;"	d	file:
-MEM_DECAPITATE	modules/postgres/aug_alloc.c	125;"	d	file:
-MEM_FRAG_AVOIDANCE	mem/f_malloc.c	92;"	d	file:
-MEM_FRAG_AVOIDANCE	mem/q_malloc.c	108;"	d	file:
-MEM_MAGIC_BOUND	modules/postgres/aug_alloc.c	112;"	d	file:
-MEM_MAGIC_FILL	modules/postgres/aug_alloc.c	113;"	d	file:
-MEM_TAIL	modules/postgres/aug_alloc.c	128;"	d	file:
-MESSAGE_400	modules/auth/common.h	35;"	d
-MESSAGE_400	modules/auth_diameter/defs.h	37;"	d
-MESSAGE_401	modules/auth/challenge.c	56;"	d	file:
-MESSAGE_401	modules/auth_diameter/defs.h	35;"	d
-MESSAGE_407	modules/auth/challenge.c	49;"	d	file:
-MESSAGE_407	modules/auth_diameter/defs.h	36;"	d
-MESSAGE_500	modules/auth/common.h	36;"	d
-MESSAGE_500	modules/auth_db/authorize.c	52;"	d	file:
-MESSAGE_500	modules/auth_diameter/defs.h	38;"	d
-MESSAGE_LENGTH_SIZE	modules/acc/diam_message.h	41;"	d
-MESSAGE_LENGTH_SIZE	modules/auth_diameter/diameter_msg.h	41;"	d
-METHOD	cfg.tab.c	/^     METHOD = 295,$/;"	e	enum:yytokentype	file:
-METHOD	cfg.tab.c	237;"	d	file:
-METHOD	cfg.tab.h	/^     METHOD = 295,$/;"	e	enum:yytokentype
-METHOD	cfg.tab.h	213;"	d
-METHOD_ACK	parser/msg_parser.h	/^enum request_method { METHOD_UNDEF=0, METHOD_INVITE=1, METHOD_CANCEL=2, METHOD_ACK=4, $/;"	e	enum:request_method
-METHOD_BYE	parser/msg_parser.h	/^	METHOD_BYE=8, METHOD_OTHER=16 };$/;"	e	enum:request_method
-METHOD_CANCEL	parser/msg_parser.h	/^enum request_method { METHOD_UNDEF=0, METHOD_INVITE=1, METHOD_CANCEL=2, METHOD_ACK=4, $/;"	e	enum:request_method
-METHOD_COL	modules/usrloc/ul_mod.c	67;"	d	file:
-METHOD_INVITE	parser/msg_parser.h	/^enum request_method { METHOD_UNDEF=0, METHOD_INVITE=1, METHOD_CANCEL=2, METHOD_ACK=4, $/;"	e	enum:request_method
-METHOD_NOTIFY	modules/pa/notify.c	119;"	d	file:
-METHOD_NOTIFY_L	modules/pa/notify.c	120;"	d	file:
-METHOD_O	route_struct.h	/^enum { METHOD_O=1, URI_O, FROM_URI_O, TO_URI_O, SRCIP_O, SRCPORT_O,$/;"	e
-METHOD_OTHER	parser/msg_parser.h	/^	METHOD_BYE=8, METHOD_OTHER=16 };$/;"	e	enum:request_method
-METHOD_UNDEF	parser/msg_parser.h	/^enum request_method { METHOD_UNDEF=0, METHOD_INVITE=1, METHOD_CANCEL=2, METHOD_ACK=4, $/;"	e	enum:request_method
-METH_ACK	parser/parse_methods.h	/^	METH_ACK = 2, $/;"	e	enum:method
-METH_BYE	parser/parse_methods.h	/^	METH_BYE = 4, $/;"	e	enum:method
-METH_CANCEL	parser/parse_methods.h	/^	METH_CANCEL = 8,$/;"	e	enum:method
-METH_INFO	parser/parse_methods.h	/^	METH_INFO = 16, $/;"	e	enum:method
-METH_INVITE	parser/parse_methods.h	/^	METH_INVITE = 32, $/;"	e	enum:method
-METH_MESSAGE	parser/parse_methods.h	/^	METH_MESSAGE = 4096,$/;"	e	enum:method
-METH_NOTIFY	parser/parse_methods.h	/^	METH_NOTIFY = 64,$/;"	e	enum:method
-METH_OPTIONS	parser/parse_methods.h	/^	METH_OPTIONS = 128, $/;"	e	enum:method
-METH_PRACK	parser/parse_methods.h	/^	METH_PRACK = 256, $/;"	e	enum:method
-METH_REFER	parser/parse_methods.h	/^	METH_REFER = 8192$/;"	e	enum:method
-METH_REGISTER	parser/parse_methods.h	/^	METH_REGISTER  = 512,$/;"	e	enum:method
-METH_SUBSCRIBE	parser/parse_methods.h	/^	METH_SUBSCRIBE = 1024, $/;"	e	enum:method
-METH_UNKNOWN	parser/parse_methods.h	/^	METH_UNKNOWN = 1, $/;"	e	enum:method
-METH_UPDATE	parser/parse_methods.h	/^	METH_UPDATE = 2048, $/;"	e	enum:method
-MF_HDR	modules/maxfwd/mf_funcs.c	45;"	d	file:
-MF_HDR_LEN	modules/maxfwd/mf_funcs.c	46;"	d	file:
-MHOMED	cfg.tab.c	/^     MHOMED = 343,$/;"	e	enum:yytokentype	file:
-MHOMED	cfg.tab.c	285;"	d	file:
-MHOMED	cfg.tab.h	/^     MHOMED = 343,$/;"	e	enum:yytokentype
-MHOMED	cfg.tab.h	261;"	d
-MIME_TYPE	modules/pa/pidf.c	49;"	d	file:
-MIME_TYPE	modules/pa/xpidf.c	42;"	d	file:
-MIME_TYPE_L	modules/pa/pidf.c	50;"	d	file:
-MIME_TYPE_L	modules/pa/xpidf.c	43;"	d	file:
-MINUS	cfg.tab.c	/^     MINUS = 382,$/;"	e	enum:yytokentype	file:
-MINUS	cfg.tab.c	324;"	d	file:
-MINUS	cfg.tab.h	/^     MINUS = 382,$/;"	e	enum:yytokentype
-MINUS	cfg.tab.h	300;"	d
-MIN_FRAG_SIZE	mem/f_malloc.h	59;"	d
-MIN_FRAG_SIZE	mem/q_malloc.h	61;"	d
-MIN_MANGLED_PORT	modules/mangler/sdp_mangler.h	66;"	d
-MIN_OFFSET_VALUE	modules/mangler/sdp_mangler.h	68;"	d
-MIN_ORIGINAL_PORT	modules/mangler/sdp_mangler.h	64;"	d
-MIN_Q	qvalue.h	71;"	d
-MIN_Q_STR	qvalue.h	76;"	d
-MIN_Q_STR_LEN	qvalue.h	77;"	d
-MIN_UDP_PACKET	config.h	201;"	d
-MODE_ASCII	modules/sms/libsms_modem.h	24;"	d
-MODE_DIGICOM	modules/sms/libsms_modem.h	23;"	d
-MODE_NEW	modules/sms/libsms_modem.h	25;"	d
-MODE_OLD	modules/sms/libsms_modem.h	22;"	d
-MODE_ONFAILURE	modules/tm/t_reply.h	/^enum route_mode { MODE_REQUEST=1, MODE_ONREPLY, MODE_ONFAILURE };$/;"	e	enum:route_mode
-MODE_ONREPLY	modules/tm/t_reply.h	/^enum route_mode { MODE_REQUEST=1, MODE_ONREPLY, MODE_ONFAILURE };$/;"	e	enum:route_mode
-MODE_REQUEST	modules/tm/t_reply.h	/^enum route_mode { MODE_REQUEST=1, MODE_ONREPLY, MODE_ONFAILURE };$/;"	e	enum:route_mode
-MODFIXUP_ST	route_struct.h	/^		EXPR_ST, ACTIONS_ST, CMDF_ST, MODFIXUP_ST, URIHOST_ST, URIPORT_ST,$/;"	e
-MODPARAM	cfg.tab.c	/^     MODPARAM = 337,$/;"	e	enum:yytokentype	file:
-MODPARAM	cfg.tab.c	279;"	d	file:
-MODPARAM	cfg.tab.h	/^     MODPARAM = 337,$/;"	e	enum:yytokentype
-MODPARAM	cfg.tab.h	255;"	d
-MODULE_T	route_struct.h	/^		SET_PORT_T, SET_URI_T, IF_T, MODULE_T,$/;"	e
-MODULE_VERSION	sr_module.h	80;"	d
-MON_WEEK	modules/cpl-c/cpl_time.c	105;"	d	file:
-MORE_CORE	mem/vq_malloc.c	100;"	d	file:
-MORE_CORE	mem/vq_malloc.c	97;"	d	file:
-MSGLEN	cfg.tab.c	/^     MSGLEN = 306,$/;"	e	enum:yytokentype	file:
-MSGLEN	cfg.tab.c	248;"	d	file:
-MSGLEN	cfg.tab.h	/^     MSGLEN = 306,$/;"	e	enum:yytokentype
-MSGLEN	cfg.tab.h	224;"	d
-MSGLEN_O	route_struct.h	/^	   DSTIP_O, DSTPORT_O, PROTO_O, AF_O, MSGLEN_O, DEFAULT_O, ACTION_O,$/;"	e
-MSG_200	modules/pa/reply.c	37;"	d	file:
-MSG_200	modules/registrar/reply.c	195;"	d	file:
-MSG_400	modules/pa/reply.c	38;"	d	file:
-MSG_400	modules/registrar/reply.c	196;"	d	file:
-MSG_500	modules/pa/reply.c	39;"	d	file:
-MSG_500	modules/registrar/reply.c	197;"	d	file:
-MSG_503	modules/registrar/reply.c	198;"	d	file:
-MSG_ACK	modules/mediaproxy/mediaproxy.c	1346;"	d	file:
-MSG_CMD	modules/extcmd/extcmd_funcs.c	58;"	d	file:
-MSG_INVITE	modules/mediaproxy/mediaproxy.c	1345;"	d	file:
-MSG_LIST_ERR	modules/msilo/ms_msg_list.h	50;"	d
-MSG_LIST_EXIST	modules/msilo/ms_msg_list.h	51;"	d
-MSG_LIST_OK	modules/msilo/ms_msg_list.h	49;"	d
-MSG_REPLY	modules/mediaproxy/mediaproxy.c	1347;"	d	file:
-MSG_UNKNOWN	modules/mediaproxy/mediaproxy.c	1344;"	d	file:
-MSILO_TAG	modules/msilo/msfuncs.h	39;"	d
-MSILO_TAG	modules/msilo/msfuncs.h	41;"	d
-MSNSUBSTATUS_OFFLINE	modules/pa/xpidf.c	90;"	d	file:
-MSNSUBSTATUS_OFFLINE_L	modules/pa/xpidf.c	91;"	d	file:
-MSNSUBSTATUS_ONLINE	modules/pa/xpidf.c	87;"	d	file:
-MSNSUBSTATUS_ONLINE_L	modules/pa/xpidf.c	88;"	d	file:
-MS_MSG_DONE	modules/msilo/ms_msg_list.h	43;"	d
-MS_MSG_ERRO	modules/msilo/ms_msg_list.h	44;"	d
-MS_MSG_NULL	modules/msilo/ms_msg_list.h	41;"	d
-MS_MSG_SENT	modules/msilo/ms_msg_list.h	42;"	d
-MS_SEM_DONE	modules/msilo/ms_msg_list.h	47;"	d
-MS_SEM_SENT	modules/msilo/ms_msg_list.h	46;"	d
-MYSELF	cfg.tab.c	/^     MYSELF = 305,$/;"	e	enum:yytokentype	file:
-MYSELF	cfg.tab.c	247;"	d	file:
-MYSELF	cfg.tab.h	/^     MYSELF = 305,$/;"	e	enum:yytokentype
-MYSELF	cfg.tab.h	223;"	d
-MYSELF_ST	route_struct.h	/^		MYSELF_ST, STR_ST, SOCKID_ST, SOCKETINFO_ST };$/;"	e
-MYSQL_URL_PREFIX	modules/mysql/utils.c	96;"	d	file:
-MYSQL_URL_PREFIX_LEN	modules/mysql/utils.c	97;"	d	file:
-MY_BLOCK	mem/memtest.c	46;"	d	file:
-MY_BLOCK	mem/memtest.c	53;"	d	file:
-MY_BRANCH	config.h	86;"	d
-MY_BRANCH_LEN	config.h	87;"	d
-MY_CON_H	modules/mysql/my_con.h	30;"	d
-MY_FREE	mem/memtest.c	44;"	d	file:
-MY_FREE	mem/memtest.c	51;"	d	file:
-MY_FREE	mem/shm_mem.h	79;"	d
-MY_FREE	mem/shm_mem.h	87;"	d
-MY_FREE	mem/shm_mem.h	95;"	d
-MY_HF_SEP	msg_translator.h	40;"	d
-MY_HF_SEP_LEN	msg_translator.h	41;"	d
-MY_ID_H	modules/mysql/my_id.h	30;"	d
-MY_INIT	mem/memtest.c	45;"	d	file:
-MY_INIT	mem/memtest.c	52;"	d	file:
-MY_MALLOC	mem/memtest.c	43;"	d	file:
-MY_MALLOC	mem/memtest.c	50;"	d	file:
-MY_MALLOC	mem/shm_mem.h	78;"	d
-MY_MALLOC	mem/shm_mem.h	86;"	d
-MY_MALLOC	mem/shm_mem.h	94;"	d
-MY_POOL_H	modules/mysql/my_pool.h	30;"	d
-MY_REALLOC	mem/shm_mem.h	88;"	d
-MY_REALLOC	mem/shm_mem.h	96;"	d
-MY_STATUS	mem/memtest.c	47;"	d	file:
-MY_STATUS	mem/memtest.c	54;"	d	file:
-MY_STATUS	mem/shm_mem.h	80;"	d
-MY_STATUS	mem/shm_mem.h	89;"	d
-MY_STATUS	mem/shm_mem.h	97;"	d
-MY_VIA	config.h	70;"	d
-MY_VIA_LEN	config.h	71;"	d
-M_FOUND	parser/obsolete/parse_hname.c	/^ 		M_FOUND,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-M_NAME	modules/acc/acc.c	71;"	d	file:
-M_NAME	modules/acc/acc_mod.c	76;"	d	file:
-M_NAME	modules/acc/diam_tcp.c	48;"	d	file:
-M_NAME	modules/auth_diameter/auth_diameter.h	39;"	d
-M_START	test/auto.c	/^		M_START,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,$/;"	e	file:
-MaX_	parser/obsolete/strs.h	186;"	d
-Max_	parser/obsolete/strs.h	185;"	d
-MemAlign	modules/postgres/aug_alloc.c	/^typedef double MemAlign;$/;"	t	file:
-MemDestructor	modules/postgres/aug_alloc.c	/^typedef struct MemDestructor MemDestructor;	\/* not yet implemented *\/$/;"	t	file:
-MemHead	modules/postgres/aug_alloc.c	/^typedef union MemHead MemHead;$/;"	t	file:
-MemHead	modules/postgres/aug_alloc.c	/^union MemHead$/;"	u	file:
-MemHeadStruct	modules/postgres/aug_alloc.c	/^struct MemHeadStruct$/;"	s	file:
-MemMagic	modules/postgres/aug_alloc.c	/^typedef augUInt32 MemMagic;$/;"	t	file:
-MemOpt	modules/postgres/aug_alloc.c	/^struct MemOpt$/;"	s	file:
-MemOpt	modules/postgres/aug_alloc.c	/^typedef struct MemOpt MemOpt;$/;"	t	file:
-NA	modules/acc/acc.h	38;"	d
-NAME	Makefile	/^NAME=$(MAIN_NAME)$/;"	m
-NAME	db/example/Makefile	/^NAME=dbexample.so$/;"	m
-NAME	modules/acc/Makefile	/^NAME=acc.so$/;"	m
-NAME	modules/auth/Makefile	/^NAME=auth.so$/;"	m
-NAME	modules/auth_db/Makefile	/^NAME=auth_db.so$/;"	m
-NAME	modules/auth_diameter/Makefile	/^NAME=auth_diameter.so$/;"	m
-NAME	modules/auth_radius/Makefile	/^NAME=auth_radius.so$/;"	m
-NAME	modules/avp/Makefile	/^NAME=avp.so$/;"	m
-NAME	modules/avp_db/Makefile	/^NAME=avp_db.so$/;"	m
-NAME	modules/avp_radius/Makefile	/^NAME=avp_radius.so$/;"	m
-NAME	modules/avpops/Makefile	/^NAME=avpops.so$/;"	m
-NAME	modules/cpl-c/Makefile	/^NAME=cpl-c.so$/;"	m
-NAME	modules/cpl/Makefile	/^NAME=cpl.so$/;"	m
-NAME	modules/dbtext/Makefile	/^NAME=dbtext.so$/;"	m
-NAME	modules/dbtext/dbtex/Makefile	/^NAME=dbtex.so$/;"	m
-NAME	modules/dispatcher/Makefile	/^NAME=dispatcher.so$/;"	m
-NAME	modules/diversion/Makefile	/^NAME=diversion.so$/;"	m
-NAME	modules/domain/Makefile	/^NAME=domain.so$/;"	m
-NAME	modules/enum/Makefile	/^NAME=enum.so$/;"	m
-NAME	modules/exec/Makefile	/^NAME=exec.so$/;"	m
-NAME	modules/ext/Makefile	/^NAME=ext.so$/;"	m
-NAME	modules/extcmd/Makefile	/^NAME=extcmd.so$/;"	m
-NAME	modules/flatstore/Makefile	/^NAME=flatstore.so$/;"	m
-NAME	modules/gflags/Makefile	/^NAME=gflags.so$/;"	m
-NAME	modules/group/Makefile	/^NAME=group.so$/;"	m
-NAME	modules/group_radius/Makefile	/^NAME=group_radius.so$/;"	m
-NAME	modules/jabber/Makefile	/^NAME=jabber.so$/;"	m
-NAME	modules/mangler/Makefile	/^NAME=mangler.so$/;"	m
-NAME	modules/maxfwd/Makefile	/^NAME=maxfwd.so$/;"	m
-NAME	modules/mediaproxy/Makefile	/^NAME=mediaproxy.so$/;"	m
-NAME	modules/msilo/Makefile	/^NAME=msilo.so$/;"	m
-NAME	modules/mysql/Makefile	/^NAME=mysql.so$/;"	m
-NAME	modules/nathelper/Makefile	/^NAME=nathelper.so$/;"	m
-NAME	modules/options/Makefile	/^NAME=options.so$/;"	m
-NAME	modules/pa/Makefile	/^NAME=pa.so$/;"	m
-NAME	modules/pdt/Makefile	/^NAME=pdt.so$/;"	m
-NAME	modules/permissions/Makefile	/^NAME=permissions.so$/;"	m
-NAME	modules/pike/Makefile	/^NAME=pike.so$/;"	m
-NAME	modules/postgres/Makefile	/^NAME=postgres.so$/;"	m
-NAME	modules/print/Makefile	/^NAME=print.so$/;"	m
-NAME	modules/registrar/Makefile	/^NAME=registrar.so$/;"	m
-NAME	modules/rr/Makefile	/^NAME=rr.so$/;"	m
-NAME	modules/sl/Makefile	/^NAME=sl.so$/;"	m
-NAME	modules/sms/Makefile	/^NAME=sms.so$/;"	m
-NAME	modules/speeddial/Makefile	/^NAME=speeddial.so$/;"	m
-NAME	modules/textops/Makefile	/^NAME=textops.so$/;"	m
-NAME	modules/tm/Makefile	/^NAME=tm.so$/;"	m
-NAME	modules/uri/Makefile	/^NAME=uri.so$/;"	m
-NAME	modules/uri_db/Makefile	/^NAME=uri_db.so$/;"	m
-NAME	modules/uri_radius/Makefile	/^NAME=uri_radius.so$/;"	m
-NAME	modules/usrloc/Makefile	/^NAME=usrloc.so$/;"	m
-NAME	modules/xlog/Makefile	/^NAME=xlog.so$/;"	m
-NAME	test/locking/Makefile	/^NAME=locking_test$/;"	m
-NAME	utils/gen_ha1/Makefile	/^NAME=gen_ha1$/;"	m
-NAME	utils/serunix/Makefile	/^NAME=serunix$/;"	m
-NAMEOID	modules/postgres/pg_type.h	41;"	d
-NAME_ATTR	modules/cpl-c/CPL_tree.h	184;"	d
-NAT_UAC_TEST_C_1918	modules/nathelper/nathelper.c	168;"	d	file:
-NAT_UAC_TEST_RCVD	modules/nathelper/nathelper.c	169;"	d	file:
-NAT_UAC_TEST_RPORT	modules/nathelper/nathelper.c	172;"	d	file:
-NAT_UAC_TEST_S_1918	modules/nathelper/nathelper.c	171;"	d	file:
-NAT_UAC_TEST_V_1918	modules/nathelper/nathelper.c	170;"	d	file:
-NA_LEN	modules/acc/acc.h	39;"	d
-NDIG	modules/jabber/xsnprintf.c	91;"	d	file:
-NET_ST	route_struct.h	/^enum { NOSUBTYPE=0, STRING_ST, NET_ST, NUMBER_ST, IP_ST, RE_ST, PROXY_ST,$/;"	e
-NEW_NODE	modules/pike/ip_tree.h	45;"	d
-NEXT_SEP	modules/msilo/msfuncs.c	59;"	d	file:
-NO	modules/jabber/xsnprintf.c	/^    NO = 0, YES = 1$/;"	e	file:
-NOANSWER_NODE	modules/cpl-c/CPL_tree.h	50;"	d
-NODE_TYPE	modules/cpl-c/CPL_tree.h	209;"	d
-NONCE_H	modules/auth/nonce.h	32;"	d
-NONCE_LEN	modules/auth/nonce.h	41;"	d
-NON_URGENT_STR	modules/cpl-c/CPL_tree.h	135;"	d
-NON_URGENT_STR_LEN	modules/cpl-c/CPL_tree.h	136;"	d
-NON_URGENT_VAL	modules/cpl-c/CPL_tree.h	134;"	d
-NORMAL_ORDER	modules/tm/dlg.c	49;"	d	file:
-NORMAL_STR	modules/cpl-c/CPL_tree.h	132;"	d
-NORMAL_STR_LEN	modules/cpl-c/CPL_tree.h	133;"	d
-NORMAL_VAL	modules/cpl-c/CPL_tree.h	131;"	d
-NOSMP_STR	version.h	185;"	d
-NOSMP_STR	version.h	187;"	d
-NOSUBTYPE	route_struct.h	/^enum { NOSUBTYPE=0, STRING_ST, NET_ST, NUMBER_ST, IP_ST, RE_ST, PROXY_ST,$/;"	e
-NOT	cfg.tab.c	/^     NOT = 380,$/;"	e	enum:yytokentype	file:
-NOT	cfg.tab.c	322;"	d	file:
-NOT	cfg.tab.h	/^     NOT = 380,$/;"	e	enum:yytokentype
-NOT	cfg.tab.h	298;"	d
-NOTE	modules/cpl-c/cpl_log.h	48;"	d
-NOTE_LEN	modules/cpl-c/cpl_log.h	49;"	d
-NOTFOUND_NODE	modules/cpl-c/CPL_tree.h	49;"	d
-NOTFOUND_STR	modules/cpl-c/CPL_tree.h	174;"	d
-NOTFOUND_STR_LEN	modules/cpl-c/CPL_tree.h	175;"	d
-NOTFOUND_VAL	modules/cpl-c/CPL_tree.h	173;"	d
-NOTIFY_H	modules/pa/notify.h	31;"	d
-NOTIFY_H	modules/usrloc/notify.h	30;"	d
-NOT_AUTHORIZED	modules/auth/api.h	/^	NOT_AUTHORIZED,     \/* Don't perform authorization, credentials missing *\/$/;"	e	enum:auth_result
-NOT_ERASE_CELL	modules/pdt/domains.h	38;"	d
-NOT_OP	route_struct.h	/^enum { AND_OP=1, OR_OP, NOT_OP };$/;"	e
-NOT_PRESENT_NODE	modules/cpl-c/CPL_tree.h	65;"	d
-NOT_RR_DRIVEN	modules/rr/loose.c	52;"	d	file:
-NO_CANCEL	modules/tm/h_table.h	75;"	d
-NO_CMD	modules/extcmd/extcmd_funcs.c	57;"	d	file:
-NO_CREDENTIALS	modules/auth_diameter/defs.h	/^	NO_CREDENTIALS,     \/* Credentials missing   *\/$/;"	e	enum:auth_result
-NO_DB	modules/usrloc/ul_mod.h	48;"	d
-NO_DEBUG_STR	version.h	76;"	d
-NO_DEBUG_STR	version.h	78;"	d
-NO_DNS	globals.h	40;"	d
-NO_LOG	dprint.h	95;"	d
-NO_LOG_STR	version.h	82;"	d
-NO_LOG_STR	version.h	84;"	d
-NO_OP	route_struct.h	/^enum { EQUAL_OP=10, MATCH_OP, GT_OP, LT_OP, GTE_OP, LTE_OP, DIFF_OP, NO_OP };$/;"	e
-NO_REPORT	modules/sms/sms_funcs.h	61;"	d
-NO_SCRIPT	modules/tm/tm_load.h	50;"	d
-NO_UPDATE	modules/pike/ip_tree.h	48;"	d
-NO_VAL	modules/cpl-c/CPL_tree.h	143;"	d
-NR_CELLS	modules/sms/sms_report.h	34;"	d
-NR_KEYS	modules/msilo/msilo.c	81;"	d	file:
-NR_KEYS	modules/pdt/pdt.c	61;"	d	file:
-NR_OF_ATTR	modules/cpl-c/CPL_tree.h	211;"	d
-NR_OF_KIDS	modules/cpl-c/CPL_tree.h	210;"	d
-NR_OF_TIMER_LISTS	modules/tm/timer.h	/^	NR_OF_TIMER_LISTS$/;"	e	enum:lists
-NSTR	modules/jabber/tree234.c	1264;"	d	file:
-NTNone	modules/mediaproxy/mediaproxy.c	/^    NTNone=0,$/;"	e	file:
-NTPrivateContact	modules/mediaproxy/mediaproxy.c	/^    NTPrivateContact=1,$/;"	e	file:
-NTPrivateVia	modules/mediaproxy/mediaproxy.c	/^    NTPrivateVia=4$/;"	e	file:
-NTSourceAddress	modules/mediaproxy/mediaproxy.c	/^    NTSourceAddress=2,$/;"	e	file:
-NUL	modules/jabber/xsnprintf.c	249;"	d	file:
-NULL_CPL	modules/cpl-c/cpl_parser.c	1511;"	d	file:
-NULL_CPL_LEN	modules/cpl-c/cpl_parser.c	1512;"	d	file:
-NULL_VAL	db/db_fifo.c	86;"	d	file:
-NULL_VAL_LEN	db/db_fifo.c	87;"	d	file:
-NUM	modules/jabber/xsnprintf.c	300;"	d	file:
-NUMBER	cfg.tab.c	/^     NUMBER = 383,$/;"	e	enum:yytokentype	file:
-NUMBER	cfg.tab.c	325;"	d	file:
-NUMBER	cfg.tab.h	/^     NUMBER = 383,$/;"	e	enum:yytokentype
-NUMBER	cfg.tab.h	301;"	d
-NUMBER_O	route_struct.h	/^	   NUMBER_O};$/;"	e
-NUMBER_ST	route_struct.h	/^enum { NOSUBTYPE=0, STRING_ST, NET_ST, NUMBER_ST, IP_ST, RE_ST, PROXY_ST,$/;"	e
-NUMERICOID	modules/postgres/pg_type.h	81;"	d
-NUM_BUF_SIZE	modules/jabber/xsnprintf.c	268;"	d	file:
-N_DOCTYPES	modules/pa/watcher.h	/^	N_DOCTYPES$/;"	e	enum:doctype
-NatTest	modules/mediaproxy/mediaproxy.c	/^} NatTest;$/;"	t	file:
-NatTestProc	modules/mediaproxy/mediaproxy.c	/^typedef Bool (*NatTestProc)(struct sip_msg* msg);$/;"	t	file:
-NatTestType	modules/mediaproxy/mediaproxy.c	/^} NatTestType;$/;"	t	file:
-NetInfo	modules/mediaproxy/mediaproxy.c	/^} NetInfo;$/;"	t	file:
-OFFLINE_MESSAGE	modules/msilo/msilo.c	74;"	d	file:
-OFFLINE_MESSAGE_LEN	modules/msilo/msilo.c	75;"	d	file:
-OIDOID	modules/postgres/pg_type.h	48;"	d
-OIDVECTOROID	modules/postgres/pg_type.h	52;"	d
-OK	crc.c	36;"	d	file:
-OK_MSG	modules/sms/sms_funcs.c	94;"	d	file:
-OK_MSG_LEN	modules/sms/sms_funcs.c	96;"	d	file:
-ONREPLY_ROUTE	sr_module.h	71;"	d
-ONREPLY_RT_NO	config.h	61;"	d
-OPAQUEOID	modules/postgres/pg_type.h	96;"	d
-OPEN_FD_LIMIT	cfg.tab.c	/^     OPEN_FD_LIMIT = 367,$/;"	e	enum:yytokentype	file:
-OPEN_FD_LIMIT	cfg.tab.c	309;"	d	file:
-OPEN_FD_LIMIT	cfg.tab.h	/^     OPEN_FD_LIMIT = 367,$/;"	e	enum:yytokentype
-OPEN_FD_LIMIT	cfg.tab.h	285;"	d
-OPT_RPL_H	modules/options/mod_options.h	31;"	d
-OP_EQ	db/db_op.h	34;"	d
-OP_GEQ	db/db_op.h	36;"	d
-OP_GT	db/db_op.h	33;"	d
-OP_LEQ	db/db_op.h	35;"	d
-OP_LT	db/db_op.h	32;"	d
-OR	cfg.tab.c	/^     OR = 378,$/;"	e	enum:yytokentype	file:
-OR	cfg.tab.c	320;"	d	file:
-OR	cfg.tab.h	/^     OR = 378,$/;"	e	enum:yytokentype
-OR	cfg.tab.h	296;"	d
-ORDERING_ATTR	modules/cpl-c/CPL_tree.h	159;"	d
-ORGANIZATION_VAL	modules/cpl-c/CPL_tree.h	89;"	d
-ORIGINAL_DESTINATION_VAL	modules/cpl-c/CPL_tree.h	74;"	d
-ORIGIN_VAL	modules/cpl-c/CPL_tree.h	72;"	d
-ORTE_CASE	parser/case_supp.h	35;"	d
-OR_OP	route_struct.h	/^enum { AND_OP=1, OR_OP, NOT_OP };$/;"	e
-OS	test/locking/Makefile	/^OS = $(shell uname -s)$/;"	m
-OTHERWISE_NODE	modules/cpl-c/CPL_tree.h	64;"	d
-OUTBOUND	modules/rr/record.c	64;"	d	file:
-OUTE	parser/obsolete/strs.h	282;"	d
-OUTE_CASE	parser/case_reco.h	35;"	d
-OUTGOING_NODE	modules/cpl-c/CPL_tree.h	35;"	d
-OUTe	parser/obsolete/strs.h	281;"	d
-OUtE	parser/obsolete/strs.h	280;"	d
-OUte	parser/obsolete/strs.h	279;"	d
-OuTE	parser/obsolete/strs.h	278;"	d
-OuTe	parser/obsolete/strs.h	277;"	d
-OutE	parser/obsolete/strs.h	276;"	d
-Oute	parser/obsolete/strs.h	275;"	d
-PACKAGE_END	modules/pa/watcher.c	572;"	d	file:
-PACKAGE_END_L	modules/pa/watcher.c	573;"	d	file:
-PACKAGE_START	modules/pa/watcher.c	570;"	d	file:
-PACKAGE_START_L	modules/pa/watcher.c	571;"	d	file:
-PAD	modules/jabber/xsnprintf.c	328;"	d	file:
-PADDING	md5.c	/^static unsigned char PADDING[64] = {$/;"	v	file:
-PAERRNO_H	modules/pa/paerrno.h	31;"	d
-PARALLEL_VAL	modules/cpl-c/CPL_tree.h	160;"	d
-PARAM_ALIAS	parser/parse_via.h	/^	PARAM_MADDR, PARAM_RECEIVED, PARAM_RPORT, PARAM_I, PARAM_ALIAS,$/;"	e
-PARAM_ATTR	modules/cpl-c/CPL_tree.h	154;"	d
-PARAM_BRANCH	parser/parse_via.h	/^	PARAM_HIDDEN=230, PARAM_TTL, PARAM_BRANCH, $/;"	e
-PARAM_ERROR	parser/parse_via.h	/^	PARAM_ERROR$/;"	e
-PARAM_HIDDEN	parser/parse_via.h	/^	PARAM_HIDDEN=230, PARAM_TTL, PARAM_BRANCH, $/;"	e
-PARAM_I	parser/parse_via.h	/^	PARAM_MADDR, PARAM_RECEIVED, PARAM_RPORT, PARAM_I, PARAM_ALIAS,$/;"	e
-PARAM_MADDR	parser/parse_via.h	/^	PARAM_MADDR, PARAM_RECEIVED, PARAM_RPORT, PARAM_I, PARAM_ALIAS,$/;"	e
-PARAM_PARSER_H	parser/digest/param_parser.h	32;"	d
-PARAM_RECEIVED	parser/parse_via.h	/^	PARAM_MADDR, PARAM_RECEIVED, PARAM_RPORT, PARAM_I, PARAM_ALIAS,$/;"	e
-PARAM_RPORT	parser/parse_via.h	/^	PARAM_MADDR, PARAM_RECEIVED, PARAM_RPORT, PARAM_I, PARAM_ALIAS,$/;"	e
-PARAM_TTL	parser/parse_via.h	/^	PARAM_HIDDEN=230, PARAM_TTL, PARAM_BRANCH, $/;"	e
-PARAM_TYPE_MASK	sr_module.h	63;"	d
-PARANOID	modules/mysql/defs.h	34;"	d
-PARANOID	modules/postgres/defs.h	43;"	d
-PARA_NAME	parser/parse_to.c	/^	S_PARA_NAME=20, PARA_NAME, S_EQUAL, S_PARA_VALUE, TAG1, TAG2,$/;"	e	file:
-PARA_VALUE_QUOTED	parser/parse_to.c	/^	TAG3, PARA_VALUE_TOKEN , PARA_VALUE_QUOTED, E_PARA_VALUE$/;"	e	file:
-PARA_VALUE_TOKEN	parser/parse_to.c	/^	TAG3, PARA_VALUE_TOKEN , PARA_VALUE_QUOTED, E_PARA_VALUE$/;"	e	file:
-PARSE_ALLOW_H	parser/parse_allow.h	29;"	d
-PARSE_COMPACT	parser/parse_hname2.c	120;"	d	file:
-PARSE_CONFIG_H	modules/permissions/parse_config.h	32;"	d
-PARSE_CONTACT_H	parser/contact/parse_contact.h	36;"	d
-PARSE_CSEQ	parser/parse_cseq.h	30;"	d
-PARSE_DEF_H	parser/parse_def.h	30;"	d
-PARSE_DIVERSION_H	parser/parse_diversion.h	29;"	d
-PARSE_ERROR	parser/parse_def.h	32;"	d
-PARSE_EVENT_H	parser/parse_event.h	36;"	d
-PARSE_EXPIRES_H	parser/parse_expires.h	32;"	d
-PARSE_FLINE_H	parser/parse_fline.h	30;"	d
-PARSE_HNAME2_H	parser/parse_hname2.h	32;"	d
-PARSE_HNAME_H	parser/obsolete/parse_hname.h	30;"	d
-PARSE_HOSTPORT_H	parser/parse_hostport.h	30;"	d
-PARSE_METHODS_H	parser/parse_methods.h	29;"	d
-PARSE_NAMEADDR_H	parser/parse_nameaddr.h	33;"	d
-PARSE_OK	parser/parse_def.h	33;"	d
-PARSE_PARAM_H	parser/parse_param.h	37;"	d
-PARSE_PIDF_BASIC	modules/pa/pidf.h	89;"	d
-PARSE_PIDF_CONTACT	modules/pa/pidf.h	88;"	d
-PARSE_PIDF_EXPIRES	modules/pa/pidf.h	100;"	d
-PARSE_PIDF_FLOOR	modules/pa/pidf.h	93;"	d
-PARSE_PIDF_LOC	modules/pa/pidf.h	91;"	d
-PARSE_PIDF_LOCATION_MASK	modules/pa/pidf.h	103;"	d
-PARSE_PIDF_PACKET_LOSS	modules/pa/pidf.h	98;"	d
-PARSE_PIDF_PRESCAPS	modules/pa/pidf.h	101;"	d
-PARSE_PIDF_PRIORITY	modules/pa/pidf.h	99;"	d
-PARSE_PIDF_RADIUS	modules/pa/pidf.h	97;"	d
-PARSE_PIDF_ROOM	modules/pa/pidf.h	94;"	d
-PARSE_PIDF_SITE	modules/pa/pidf.h	92;"	d
-PARSE_PIDF_STATUS	modules/pa/pidf.h	90;"	d
-PARSE_PIDF_X	modules/pa/pidf.h	95;"	d
-PARSE_PIDF_Y	modules/pa/pidf.h	96;"	d
-PARSE_RPID_H	parser/parse_rpid.h	28;"	d
-PARSE_RR_H	parser/parse_rr.h	32;"	d
-PARSE_SHORT	parser/digest/param_parser.c	41;"	d	file:
-PARSE_SIPIFMATCH_H	parser/parse_sipifmatch.h	2;"	d
-PARSE_TO	parser/parse_to.h	30;"	d
-PARSE_URI_H	parser/parse_uri.h	30;"	d
-PARSE_VIA_H	parser/parse_via.h	40;"	d
-PAR_ALGORITHM	parser/digest/param_parser.h	/^	PAR_ALGORITHM, \/* algorithm parameter *\/$/;"	e	enum:dig_par
-PAR_CNONCE	parser/digest/param_parser.h	/^	PAR_CNONCE,    \/* cnonce parameter *\/$/;"	e	enum:dig_par
-PAR_NC	parser/digest/param_parser.h	/^	PAR_NC,        \/* nonce-count parameter *\/$/;"	e	enum:dig_par
-PAR_NONCE	parser/digest/param_parser.h	/^	PAR_NONCE,     \/* nonce parameter *\/$/;"	e	enum:dig_par
-PAR_OPAQUE	parser/digest/param_parser.h	/^	PAR_OPAQUE,    \/* opaque parameter *\/$/;"	e	enum:dig_par
-PAR_OTHER	parser/digest/param_parser.h	/^	PAR_OTHER      \/* unknown parameter *\/$/;"	e	enum:dig_par
-PAR_QOP	parser/digest/param_parser.h	/^	PAR_QOP,       \/* qop parameter *\/$/;"	e	enum:dig_par
-PAR_REALM	parser/digest/param_parser.h	/^	PAR_REALM,     \/* realm parameter *\/$/;"	e	enum:dig_par
-PAR_RESPONSE	parser/digest/param_parser.h	/^	PAR_RESPONSE,  \/* response parameter *\/$/;"	e	enum:dig_par
-PAR_URI	parser/digest/param_parser.h	/^	PAR_URI,       \/* uri parameter *\/$/;"	e	enum:dig_par
-PAR_USERNAME	parser/digest/param_parser.h	/^	PAR_USERNAME,  \/* username parameter *\/$/;"	e	enum:dig_par
-PASS_COL	modules/auth_db/authdb_mod.c	90;"	d	file:
-PASS_COL_2	modules/auth_db/authdb_mod.c	93;"	d	file:
-PASS_COL_2_LEN	modules/auth_db/authdb_mod.c	94;"	d	file:
-PASS_COL_LEN	modules/auth_db/authdb_mod.c	91;"	d	file:
-PATHOID	modules/postgres/pg_type.h	55;"	d
-PATH_MAX_GUESS	config.h	187;"	d
-PA_ACCEPT_PARSE	modules/pa/paerrno.h	/^	PA_ACCEPT_PARSE,  \/* Error while parsing Accept header field *\/$/;"	e	enum:paerr
-PA_DIALOG_ERR	modules/pa/paerrno.h	/^	PA_DIALOG_ERR,    \/* Error while creating dialog *\/$/;"	e	enum:paerr
-PA_EVENT_MISS	modules/pa/paerrno.h	/^	PA_EVENT_MISS,    \/* Event header field missing *\/$/;"	e	enum:paerr
-PA_EVENT_PARSE	modules/pa/paerrno.h	/^	PA_EVENT_PARSE,   \/* Error while parsing Event header field *\/$/;"	e	enum:paerr
-PA_EVENT_UNSUPP	modules/pa/paerrno.h	/^	PA_EVENT_UNSUPP,  \/* Unsupported event package *\/$/;"	e	enum:paerr
-PA_EXPIRES_PARSE	modules/pa/paerrno.h	/^	PA_EXPIRES_PARSE, \/* Error while parsing Expires header field *\/$/;"	e	enum:paerr
-PA_EXTRACT_USER	modules/pa/paerrno.h	/^	PA_EXTRACT_USER,  \/* Error while extracting username from R-URI *\/$/;"	e	enum:paerr
-PA_FROM_ERR	modules/pa/paerrno.h	/^	PA_FROM_ERR,      \/* From malformed or missing *\/$/;"	e	enum:paerr
-PA_FROM_MISS	modules/pa/paerrno.h	/^	PA_FROM_MISS,     \/* From header field missing *\/$/;"	e	enum:paerr
-PA_INTERNAL_ERROR	modules/pa/paerrno.h	/^	PA_INTERNAL_ERROR \/* Internal server error *\/$/;"	e	enum:paerr
-PA_MOD_H	modules/pa/pa_mod.h	31;"	d
-PA_NO_MEMORY	modules/pa/paerrno.h	/^	PA_NO_MEMORY,     \/* No memory left *\/$/;"	e	enum:paerr
-PA_OK	modules/pa/paerrno.h	/^	PA_OK,            \/* Everything went OK *\/$/;"	e	enum:paerr
-PA_PARSE_ERR	modules/pa/paerrno.h	/^	PA_PARSE_ERR,     \/* Error while parsing headers *\/$/;"	e	enum:paerr
-PA_SMALL_BUFFER	modules/pa/paerrno.h	/^	PA_SMALL_BUFFER,  \/* Buffer too small *\/$/;"	e	enum:paerr
-PA_TIMER_ERROR	modules/pa/paerrno.h	/^	PA_TIMER_ERROR,   \/* Error in timer *\/$/;"	e	enum:paerr
-PA_TO_ERR	modules/pa/paerrno.h	/^	PA_TO_ERR,        \/* To malformed or missing *\/$/;"	e	enum:paerr
-PA_UNSUPP_DOC	modules/pa/paerrno.h	/^	PA_UNSUPP_DOC,    \/* Unsupported presence document format *\/$/;"	e	enum:paerr
-PA_URI_PARSE	modules/pa/paerrno.h	/^	PA_URI_PARSE,     \/* Error while parsing URI *\/$/;"	e	enum:paerr
-PA_WRONG_ACCEPTS	modules/pa/paerrno.h	/^	PA_WRONG_ACCEPTS, \/* Accepts does not match event package *\/$/;"	e	enum:paerr
-PDOMAIN_H	modules/pa/pdomain.h	36;"	d
-PERMANENT_ATTR	modules/cpl-c/CPL_tree.h	165;"	d
-PERMISSIONS_H	modules/permissions/permissions.h	37;"	d
-PERMIT_DISTFILES_CDROM	openbsd/Makefile	/^PERMIT_DISTFILES_CDROM=	Yes$/;"	m
-PERMIT_DISTFILES_FTP	openbsd/Makefile	/^PERMIT_DISTFILES_FTP=	Yes$/;"	m
-PERMIT_PACKAGE_CDROM	openbsd/Makefile	/^PERMIT_PACKAGE_CDROM=	Yes$/;"	m
-PERMIT_PACKAGE_FTP	openbsd/Makefile	/^PERMIT_PACKAGE_FTP=	Yes$/;"	m
-PFLAG_LOCATION_CHANGED	modules/pa/presentity.h	/^	PFLAG_LOCATION_CHANGED=16$/;"	e	enum:pflag
-PFLAG_PRESENCE_CHANGED	modules/pa/presentity.h	/^	PFLAG_PRESENCE_CHANGED=1,$/;"	e	enum:pflag
-PFLAG_PRESENCE_LISTS_CHANGED	modules/pa/presentity.h	/^	PFLAG_PRESENCE_LISTS_CHANGED=2,$/;"	e	enum:pflag
-PFLAG_WATCHERINFO_CHANGED	modules/pa/presentity.h	/^	PFLAG_WATCHERINFO_CHANGED=4,$/;"	e	enum:pflag
-PFLAG_XCAP_CHANGED	modules/pa/presentity.h	/^	PFLAG_XCAP_CHANGED=8,$/;"	e	enum:pflag
-PF_LOCAL	modules/nathelper/nathelper.c	164;"	d	file:
-PF_LOCAL	modules/tm/t_fifo.c	70;"	d	file:
-PF_LOCAL	unixsock_server.c	62;"	d	file:
-PF_LOCAL	utils/serunix/serunix.c	43;"	d	file:
-PIDF_DTD	modules/pa/pidf.c	58;"	d	file:
-PIDF_DTD_L	modules/pa/pidf.c	59;"	d	file:
-PIDF_H	modules/pa/pidf.h	31;"	d
-PIDF_ST_CLOSED	modules/pa/pidf.h	/^	PIDF_ST_CLOSED$/;"	e	enum:pidf_status
-PIDF_ST_OPEN	modules/pa/pidf.h	/^	PIDF_ST_OPEN,$/;"	e	enum:pidf_status
-PIKE_PRINT_IP_TREE	modules/pike/pike_fifo.h	44;"	d
-PIKE_PRINT_TIMER	modules/pike/pike_fifo.h	45;"	d
-PKG_MALLOC_STR	version.h	112;"	d
-PKG_MALLOC_STR	version.h	114;"	d
-PKG_MEM_POOL_SIZE	config.h	120;"	d
-PLOG	modules/postgres/con_postgres.h	66;"	d
-PLUS	cfg.tab.c	/^     PLUS = 381,$/;"	e	enum:yytokentype	file:
-PLUS	cfg.tab.c	323;"	d	file:
-PLUS	cfg.tab.h	/^     PLUS = 381,$/;"	e	enum:yytokentype
-PLUS	cfg.tab.h	299;"	d
-POINTER	md5global.h	/^typedef unsigned char *POINTER;$/;"	t
-POINTOID	modules/postgres/pg_type.h	53;"	d
-POLYGONOID	modules/postgres/pg_type.h	57;"	d
-PORT	cfg.tab.c	/^     PORT = 318,$/;"	e	enum:yytokentype	file:
-PORT	cfg.tab.c	260;"	d	file:
-PORT	cfg.tab.h	/^     PORT = 318,$/;"	e	enum:yytokentype
-PORT	cfg.tab.h	236;"	d
-PORT	test/test.c	42;"	d	file:
-PORTNAME	freebsd/Makefile	/^PORTNAME= ser$/;"	m
-PORTNAME	netbsd/Makefile	/^PORTNAME= ser$/;"	m
-PORTNAME	openbsd/Makefile	/^PORTNAME= ser$/;"	m
-PORTVERSION	freebsd/Makefile	/^PORTVERSION= 0.9.4$/;"	m
-PORTVERSION	netbsd/Makefile	/^PORTVERSION= 0.9.4$/;"	m
-PORTVERSION	openbsd/Makefile	/^PORTVERSION= 0.9.4$/;"	m
-PORT_REGEX	modules/mangler/sdp_mangler.h	53;"	d
-PORT_REGEX	modules/mangler/sdp_mangler.h	59;"	d
-PORT_VAL	modules/cpl-c/CPL_tree.h	78;"	d
-POST_SCRIPT_CB	script_cb.h	/^	POST_SCRIPT_CB$/;"	e
-PPOR_CASE	parser/case_unsu.h	55;"	d
-PREFIX	cfg.tab.c	/^     PREFIX = 273,$/;"	e	enum:yytokentype	file:
-PREFIX	cfg.tab.c	215;"	d	file:
-PREFIX	cfg.tab.h	/^     PREFIX = 273,$/;"	e	enum:yytokentype
-PREFIX	cfg.tab.h	191;"	d
-PREFIX	modules/jabber/xsnprintf.c	340;"	d	file:
-PREFIX_T	route_struct.h	/^		LEN_GT_T, PREFIX_T, STRIP_T,STRIP_TAIL_T,$/;"	e
-PRESCAPS_ETAG	modules/pa/pidf.c	157;"	d	file:
-PRESCAPS_ETAG_L	modules/pa/pidf.c	158;"	d	file:
-PRESCAPS_STAG	modules/pa/pidf.c	154;"	d	file:
-PRESCAPS_STAG_L	modules/pa/pidf.c	155;"	d	file:
-PRESCAP_APPLICATION	modules/pa/presentity.h	/^	PRESCAP_APPLICATION = (1 << 3)$/;"	e	enum:prescaps
-PRESCAP_AUDIO	modules/pa/presentity.h	/^	PRESCAP_AUDIO = (1 << 0),$/;"	e	enum:prescaps
-PRESCAP_TEXT	modules/pa/presentity.h	/^	PRESCAP_TEXT = (1 << 2),$/;"	e	enum:prescaps
-PRESCAP_VIDEO	modules/pa/presentity.h	/^	PRESCAP_VIDEO = (1 << 1),$/;"	e	enum:prescaps
-PRESENCE_END	modules/pa/pidf.c	67;"	d	file:
-PRESENCE_END_L	modules/pa/pidf.c	68;"	d	file:
-PRESENCE_ETAG	modules/pa/pidf.c	70;"	d	file:
-PRESENCE_ETAG	modules/pa/xpidf.c	51;"	d	file:
-PRESENCE_ETAG_L	modules/pa/pidf.c	71;"	d	file:
-PRESENCE_ETAG_L	modules/pa/xpidf.c	52;"	d	file:
-PRESENCE_STAG	modules/pa/xpidf.c	48;"	d	file:
-PRESENCE_STAG_L	modules/pa/xpidf.c	49;"	d	file:
-PRESENCE_START	modules/pa/pidf.c	64;"	d	file:
-PRESENCE_START_L	modules/pa/pidf.c	65;"	d	file:
-PRESENCE_TEXT	modules/pa/notify.c	56;"	d	file:
-PRESENCE_TEXT_L	modules/pa/notify.c	57;"	d	file:
-PRESENTITY_END	modules/pa/xpidf.c	69;"	d	file:
-PRESENTITY_END_L	modules/pa/xpidf.c	70;"	d	file:
-PRESENTITY_H	modules/pa/presentity.h	32;"	d
-PRESENTITY_START	modules/pa/xpidf.c	66;"	d	file:
-PRESENTITY_START_L	modules/pa/xpidf.c	67;"	d	file:
-PRES_LOCATION_STR	parser/parse_event.c	57;"	d	file:
-PRES_LOCATION_STR_LEN	parser/parse_event.c	58;"	d	file:
-PRES_OFFLINE	modules/usrloc/notify.h	/^	PRES_OFFLINE = 0,$/;"	e	enum:pres_state
-PRES_ONLINE	modules/usrloc/notify.h	/^	PRES_ONLINE$/;"	e	enum:pres_state
-PRES_STR	parser/parse_event.c	48;"	d	file:
-PRES_STR_LEN	parser/parse_event.c	49;"	d	file:
-PRES_WINFO_STR	parser/parse_event.c	51;"	d	file:
-PRES_WINFO_STR_LEN	parser/parse_event.c	52;"	d	file:
-PRES_XCAP_CHANGE_STR	parser/parse_event.c	54;"	d	file:
-PRES_XCAP_CHANGE_STR_LEN	parser/parse_event.c	55;"	d	file:
-PREV_FRAG_END	mem/q_malloc.c	67;"	d	file:
-PREV_FRAG_END	mem/vq_malloc.h	48;"	d
-PREV_POS	modules/pike/ip_tree.h	52;"	d
-PRE_SCRIPT_CB	script_cb.h	/^    PRE_SCRIPT_CB,$/;"	e
-PRINT_CMD	unixsock_server.c	91;"	d	file:
-PRIORITY_ATTR	modules/cpl-c/CPL_tree.h	141;"	d
-PRIORITY_END	modules/pa/pidf.c	85;"	d	file:
-PRIORITY_END_L	modules/pa/pidf.c	86;"	d	file:
-PRIORITY_NODE	modules/cpl-c/CPL_tree.h	52;"	d
-PRIORITY_START	modules/pa/pidf.c	82;"	d	file:
-PRIORITY_START_L	modules/pa/pidf.c	83;"	d	file:
-PRIORITY_SWITCH_NODE	modules/cpl-c/CPL_tree.h	53;"	d
-PRIOSTR_ATTR	modules/cpl-c/CPL_tree.h	124;"	d
-PROC_FIFO	sr_module.h	76;"	d
-PROC_MAIN	sr_module.h	74;"	d
-PROC_TCP_MAIN	sr_module.h	77;"	d
-PROC_TIMER	sr_module.h	75;"	d
-PROC_UNIXSOCK	sr_module.h	78;"	d
-PROTO	cfg.tab.c	/^     PROTO = 303,$/;"	e	enum:yytokentype	file:
-PROTO	cfg.tab.c	245;"	d	file:
-PROTO	cfg.tab.h	/^     PROTO = 303,$/;"	e	enum:yytokentype
-PROTO	cfg.tab.h	221;"	d
-PROTO2UINT	main.c	706;"	d	file:
-PROTOTYPES	md5global.h	16;"	d
-PROTO_LIST	md5global.h	33;"	d
-PROTO_LIST	md5global.h	35;"	d
-PROTO_NONE	ip_addr.h	/^enum sip_protos { PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	enum:sip_protos
-PROTO_NONE	test/p_uri.c	/^enum {PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	file:
-PROTO_O	route_struct.h	/^	   DSTIP_O, DSTPORT_O, PROTO_O, AF_O, MSGLEN_O, DEFAULT_O, ACTION_O,$/;"	e
-PROTO_SCTP	ip_addr.h	/^enum sip_protos { PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	enum:sip_protos
-PROTO_SCTP	test/p_uri.c	/^enum {PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	file:
-PROTO_TCP	ip_addr.h	/^enum sip_protos { PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	enum:sip_protos
-PROTO_TCP	test/p_uri.c	/^enum {PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	file:
-PROTO_TLS	ip_addr.h	/^enum sip_protos { PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	enum:sip_protos
-PROTO_TLS	test/p_uri.c	/^enum {PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	file:
-PROTO_UDP	ip_addr.h	/^enum sip_protos { PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	enum:sip_protos
-PROTO_UDP	test/p_uri.c	/^enum {PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	e	file:
-PROX2_CASE	parser/case_prox.h	89;"	d
-PROXY_AUTH_CHALLENGE	modules/auth/challenge.c	50;"	d	file:
-PROXY_AUTH_CHALLENGE	modules/auth_diameter/defs.h	33;"	d
-PROXY_AUTH_CHALLENGE_LEN	modules/auth_diameter/defs.h	30;"	d
-PROXY_NODE	modules/cpl-c/CPL_tree.h	51;"	d
-PROXY_ST	route_struct.h	/^enum { NOSUBTYPE=0, STRING_ST, NET_ST, NUMBER_ST, IP_ST, RE_ST, PROXY_ST,$/;"	e
-PSTATE_H	modules/pa/pstate.h	31;"	d
-PS_AWAY	modules/pa/pstate.h	/^	PS_AWAY,        \/* Presentity is away *\/$/;"	e	enum:pstate
-PS_CMD	unixsock_server.c	95;"	d	file:
-PS_DND	modules/pa/pstate.h	/^	PS_DND,         \/* Do Not Disturb *\/$/;"	e	enum:pstate
-PS_NSTATES	modules/pa/pstate.h	/^	PS_NSTATES$/;"	e	enum:pstate
-PS_OFFLINE	modules/pa/pstate.h	/^	PS_OFFLINE,     \/* Presentity is offline *\/$/;"	e	enum:pstate
-PS_ONLINE	modules/pa/pstate.h	/^	PS_ONLINE,      \/* Presentity is online *\/$/;"	e	enum:pstate
-PS_TYPING	modules/pa/pstate.h	/^	PS_TYPING,      \/* Presentity is typing a message *\/$/;"	e	enum:pstate
-PS_UNKNOWN	modules/pa/pstate.h	/^	PS_UNKNOWN = 0, \/* State of presentity is unknown *\/$/;"	e	enum:pstate
-PS_XAWAY	modules/pa/pstate.h	/^	PS_XAWAY,       \/* Presentity is extended-away *\/$/;"	e	enum:pstate
-PTHREAD_LIBS	test/locking/Makefile	/^PTHREAD_LIBS= -lc_r$/;"	m
-PTHREAD_LIBS	test/locking/Makefile	/^PTHREAD_LIBS= -lpthread$/;"	m
-PTIME_H	modules/pa/ptime.h	32;"	d
-PUBLIC_ID	modules/pa/location.c	62;"	d	file:
-PUBLIC_ID	modules/pa/pidf.c	46;"	d	file:
-PUBLIC_ID	modules/pa/watcher.c	539;"	d	file:
-PUBLIC_ID	modules/pa/xpidf.c	39;"	d	file:
-PUBLIC_ID_L	modules/pa/location.c	63;"	d	file:
-PUBLIC_ID_L	modules/pa/pidf.c	47;"	d	file:
-PUBLIC_ID_L	modules/pa/watcher.c	540;"	d	file:
-PUBLIC_ID_L	modules/pa/xpidf.c	40;"	d	file:
-PUBLISH_H	modules/pa/publish.h	32;"	d
-PWD_CMD	unixsock_server.c	97;"	d	file:
-P_COMMENT	parser/parse_via.c	/^	F_COMMENT, P_COMMENT,$/;"	e	file:
-P_COMMENT	test/via_parse.c	/^		         F_COMMENT, P_COMMENT,$/;"	e	file:
-P_EXPIRES	parser/parse_param.h	/^	P_EXPIRES,   \/* Contact: expires parameter *\/$/;"	e	enum:ptype
-P_HOST	parser/parse_via.c	/^	F_HOST, P_HOST,$/;"	e	file:
-P_HOST	test/via_parse.c	/^enum{	         F_HOST,    P_HOST,$/;"	e	file:
-P_IP6HOST	parser/parse_via.c	/^	F_IP6HOST, P_IP6HOST, $/;"	e	file:
-P_IP6HOST	test/via_parse.c	/^				 F_IP6HOST, P_IP6HOST,$/;"	e	file:
-P_LR	parser/parse_param.h	/^	P_LR,        \/* URI: lr parameter *\/$/;"	e	enum:ptype
-P_MADDR	parser/parse_param.h	/^	P_MADDR,     \/* URI: maddr parameter *\/$/;"	e	enum:ptype
-P_METHOD	parser/parse_fline.c	/^       P_METHOD = 200, L_URI, P_URI, L_VER, $/;"	e	file:
-P_METHOD	parser/parse_param.h	/^	P_METHOD,    \/* Contact: method parameter *\/$/;"	e	enum:ptype
-P_OTHER	parser/parse_param.h	/^	P_OTHER = 0, \/* Unknown parameter *\/$/;"	e	enum:ptype
-P_PARAM	parser/parse_via.c	/^	L_PARAM, F_PARAM, P_PARAM,$/;"	e	file:
-P_PARAM	test/via_parse.c	/^		L_PARAM, F_PARAM,   P_PARAM,$/;"	e	file:
-P_PORT	parser/parse_via.c	/^	L_PORT, F_PORT, P_PORT,$/;"	e	file:
-P_PORT	test/via_parse.c	/^		L_PORT,  F_PORT,    P_PORT,$/;"	e	file:
-P_PROTO	test/via_parse.c	/^		L_PROTO, F_PROTO, P_PROTO$/;"	e	file:
-P_Q	parser/parse_param.h	/^	P_Q,         \/* Contact: q parameter *\/$/;"	e	enum:ptype
-P_R2	parser/parse_param.h	/^	P_R2,        \/* URI: r2 parameter (ser specific) *\/$/;"	e	enum:ptype
-P_REASON	parser/parse_fline.c	/^       L_STATUS, P_STATUS, L_REASON, P_REASON,$/;"	e	file:
-P_RECEIVED	parser/parse_param.h	/^	P_RECEIVED,  \/* Contact: received parameter *\/$/;"	e	enum:ptype
-P_STATUS	parser/parse_fline.c	/^       L_STATUS, P_STATUS, L_REASON, P_REASON,$/;"	e	file:
-P_STRING	parser/parse_via.c	/^	L_VALUE = 200, F_VALUE, P_VALUE, P_STRING,$/;"	e	file:
-P_STRING	test/via_parse.c	/^enum{	L_VALUE=200,   F_VALUE, P_VALUE, P_STRING,$/;"	e	file:
-P_TRANSPORT	parser/parse_param.h	/^	P_TRANSPORT, \/* URI: transport parameter *\/$/;"	e	enum:ptype
-P_TTL	parser/parse_param.h	/^	P_TTL,       \/* URI: ttl parameter *\/$/;"	e	enum:ptype
-P_URI	parser/parse_fline.c	/^       P_METHOD = 200, L_URI, P_URI, L_VER, $/;"	e	file:
-P_VALUE	parser/parse_via.c	/^	L_VALUE = 200, F_VALUE, P_VALUE, P_STRING,$/;"	e	file:
-P_VALUE	test/via_parse.c	/^enum{	L_VALUE=200,   F_VALUE, P_VALUE, P_STRING,$/;"	e	file:
-QM_HASH_SIZE	mem/q_malloc.h	71;"	d
-QM_MALLOC_OPTIMIZE	mem/q_malloc.h	66;"	d
-QM_MALLOC_OPTIMIZE_FACTOR	mem/q_malloc.h	65;"	d
-QOP_AUTH	parser/digest/digest_parser.h	/^	QOP_AUTH = 1,     \/* Authentication only *\/$/;"	e	enum:qop_type
-QOP_AUTHINT	parser/digest/digest_parser.h	/^	QOP_AUTHINT = 2,  \/* Authentication with integrity checks *\/$/;"	e	enum:qop_type
-QOP_AUTHINT_STR	parser/digest/digest_parser.c	49;"	d	file:
-QOP_AUTHINT_STR_LEN	parser/digest/digest_parser.c	50;"	d	file:
-QOP_AUTH_STR	parser/digest/digest_parser.c	46;"	d	file:
-QOP_AUTH_STR_LEN	parser/digest/digest_parser.c	47;"	d	file:
-QOP_OTHER	parser/digest/digest_parser.h	/^	QOP_OTHER = 4     \/* Unknown *\/$/;"	e	enum:qop_type
-QOP_PARAM	modules/auth/challenge.c	60;"	d	file:
-QOP_PARAM_LEN	modules/auth/challenge.c	61;"	d	file:
-QOP_UNSPEC	parser/digest/digest_parser.h	/^	QOP_UNSPEC = 0,   \/* QOP parameter not present in response *\/$/;"	e	enum:qop_type
-QUAD_T	modules/jabber/xode.h	41;"	d
-QUIR_CASE	parser/case_prox.h	75;"	d
-Q_CLOSED	modules/pa/lpidf.c	52;"	d	file:
-Q_CLOSED_L	modules/pa/lpidf.c	53;"	d	file:
-Q_COL	modules/usrloc/ul_mod.c	64;"	d	file:
-Q_OPEN	modules/pa/lpidf.c	49;"	d	file:
-Q_OPEN_L	modules/pa/lpidf.c	50;"	d	file:
-Q_PARAM	dset.c	47;"	d	file:
-Q_PARAM	modules/registrar/reply.c	56;"	d	file:
-Q_PARAM_LEN	dset.c	48;"	d	file:
-Q_PARAM_LEN	modules/registrar/reply.c	57;"	d	file:
-Q_PREFIX	qvalue.h	79;"	d
-Q_PREFIX_LEN	qvalue.h	80;"	d
-Q_UNSPECIFIED	qvalue.h	67;"	d
-RADIUS_ETAG	modules/pa/pidf.c	151;"	d	file:
-RADIUS_ETAG_L	modules/pa/pidf.c	152;"	d	file:
-RADIUS_STAG	modules/pa/pidf.c	148;"	d	file:
-RADIUS_STAG_L	modules/pa/pidf.c	149;"	d	file:
-RAD_ACC_FMT	modules/acc/defs.h	55;"	d
-RAND_SECRET_LEN	modules/auth/auth_mod.c	54;"	d	file:
-RAWQUERYRES_CMD	db/db_fifo.c	57;"	d	file:
-RAWQUERYRES_STR	db/db_fifo.c	69;"	d	file:
-RAWQUERYRES_STR_LEN	db/db_fifo.c	70;"	d	file:
-RAWQUERY_CMD	db/db_fifo.c	56;"	d	file:
-RAWQUERY_STR	db/db_fifo.c	67;"	d	file:
-RAWQUERY_STR_LEN	db/db_fifo.c	68;"	d	file:
-RA_MSG_CODE	modules/acc/diam_message.h	68;"	d
-RA_MSG_CODE	modules/acc/diam_message.h	78;"	d
-RA_MSG_CODE	modules/auth_diameter/diameter_msg.h	68;"	d
-RA_MSG_CODE	modules/auth_diameter/diameter_msg.h	78;"	d
-RBRACE	cfg.tab.c	/^     RBRACE = 392,$/;"	e	enum:yytokentype	file:
-RBRACE	cfg.tab.c	334;"	d	file:
-RBRACE	cfg.tab.h	/^     RBRACE = 392,$/;"	e	enum:yytokentype
-RBRACE	cfg.tab.h	310;"	d
-RBRACK	cfg.tab.c	/^     RBRACK = 394,$/;"	e	enum:yytokentype	file:
-RBRACK	cfg.tab.c	336;"	d	file:
-RBRACK	cfg.tab.h	/^     RBRACK = 394,$/;"	e	enum:yytokentype
-RBRACK	cfg.tab.h	312;"	d
-RCV_NAME	modules/registrar/reg_mod.c	74;"	d	file:
-RCV_NAME_LEN	modules/registrar/reg_mod.c	75;"	d	file:
-RD_R	parser/obsolete/strs.h	265;"	d
-RD_R_CASE	parser/case_reco.h	43;"	d
-RD_r	parser/obsolete/strs.h	264;"	d
-READ	modules/nathelper/nhelpr_funcs.c	53;"	d	file:
-READ	parser/digest/param_parser.c	79;"	d	file:
-READ	parser/parse_hname2.c	89;"	d	file:
-READ_SLEEP	modules/sms/libsms_modem.h	27;"	d
-READ_TIMEOUT	modules/sms/libsms_modem.h	28;"	d
-REASON_ATTR	modules/cpl-c/CPL_tree.h	169;"	d
-REASON_DEACTIVATED	modules/pa/notify.c	101;"	d	file:
-REASON_DEACTIVATED_L	modules/pa/notify.c	102;"	d	file:
-REASON_GIVEUP	modules/pa/notify.c	116;"	d	file:
-REASON_GIVEUP_L	modules/pa/notify.c	117;"	d	file:
-REASON_NORESOURCE	modules/pa/notify.c	104;"	d	file:
-REASON_NORESOURCE_L	modules/pa/notify.c	105;"	d	file:
-REASON_PROBATION	modules/pa/notify.c	107;"	d	file:
-REASON_PROBATION_L	modules/pa/notify.c	108;"	d	file:
-REASON_REJECTED	modules/pa/notify.c	110;"	d	file:
-REASON_REJECTED_L	modules/pa/notify.c	111;"	d	file:
-REASON_TIMEOUT	modules/pa/notify.c	113;"	d	file:
-REASON_TIMEOUT_L	modules/pa/notify.c	114;"	d	file:
-RECEIVED	config.h	93;"	d
-RECEIVED1	parser/parse_via.c	/^	RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED1	test/via_parse.c	/^		RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED2	parser/parse_via.c	/^	RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED2	test/via_parse.c	/^		RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED3	parser/parse_via.c	/^	RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED3	test/via_parse.c	/^		RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED4	parser/parse_via.c	/^	RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED4	test/via_parse.c	/^		RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED5	parser/parse_via.c	/^	RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED5	test/via_parse.c	/^		RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED6	parser/parse_via.c	/^	RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED6	test/via_parse.c	/^		RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6,$/;"	e	file:
-RECEIVED7	parser/parse_via.c	/^	RECEIVED7,$/;"	e	file:
-RECEIVED7	test/via_parse.c	/^		RECEIVED7,$/;"	e	file:
-RECEIVED_COL	modules/usrloc/ul_mod.c	71;"	d	file:
-RECEIVED_LEN	config.h	94;"	d
-RECO	parser/obsolete/strs.h	256;"	d
-RECORDOID	modules/postgres/pg_type.h	88;"	d
-RECORD_H	modules/rr/record.h	35;"	d
-RECROUTE1	parser/obsolete/parse_hname.c	/^                RECROUTE1, RECROUTE2, RECROUTE3, RECROUTE4, RECROUTE5, $/;"	e	file:
-RECROUTE10	parser/obsolete/parse_hname.c	/^                RECROUTE6, RECROUTE7, RECROUTE8, RECROUTE9, RECROUTE10,$/;"	e	file:
-RECROUTE2	parser/obsolete/parse_hname.c	/^                RECROUTE1, RECROUTE2, RECROUTE3, RECROUTE4, RECROUTE5, $/;"	e	file:
-RECROUTE3	parser/obsolete/parse_hname.c	/^                RECROUTE1, RECROUTE2, RECROUTE3, RECROUTE4, RECROUTE5, $/;"	e	file:
-RECROUTE4	parser/obsolete/parse_hname.c	/^                RECROUTE1, RECROUTE2, RECROUTE3, RECROUTE4, RECROUTE5, $/;"	e	file:
-RECROUTE5	parser/obsolete/parse_hname.c	/^                RECROUTE1, RECROUTE2, RECROUTE3, RECROUTE4, RECROUTE5, $/;"	e	file:
-RECROUTE6	parser/obsolete/parse_hname.c	/^                RECROUTE6, RECROUTE7, RECROUTE8, RECROUTE9, RECROUTE10,$/;"	e	file:
-RECROUTE7	parser/obsolete/parse_hname.c	/^                RECROUTE6, RECROUTE7, RECROUTE8, RECROUTE9, RECROUTE10,$/;"	e	file:
-RECROUTE8	parser/obsolete/parse_hname.c	/^                RECROUTE6, RECROUTE7, RECROUTE8, RECROUTE9, RECROUTE10,$/;"	e	file:
-RECROUTE9	parser/obsolete/parse_hname.c	/^                RECROUTE6, RECROUTE7, RECROUTE8, RECROUTE9, RECROUTE10,$/;"	e	file:
-RECURSE_ATTR	modules/cpl-c/CPL_tree.h	158;"	d
-REC_ERR	modules/cpl-c/cpl_time.c	946;"	d	file:
-REC_MATCH	modules/cpl-c/cpl_time.c	947;"	d	file:
-REC_NOMATCH	modules/cpl-c/cpl_time.c	948;"	d	file:
-RECo	parser/obsolete/strs.h	255;"	d
-REDIRECTION_NODE	modules/cpl-c/CPL_tree.h	56;"	d
-REDIRECT_CALL	modules/cpl/jcpli.h	50;"	d
-REDIRECT_NODE	modules/cpl-c/CPL_tree.h	55;"	d
-RED_NODE	modules/pike/ip_tree.h	47;"	d
-REFCURSOROID	modules/postgres/pg_type.h	82;"	d
-REF_ATTR	modules/cpl-c/CPL_tree.h	201;"	d
-REF_UNSAFE	modules/tm/t_funcs.h	110;"	d
-REGCLASSOID	modules/postgres/pg_type.h	86;"	d
-REGEXP_H	modules/enum/regexp.h	33;"	d
-REGOPERATOROID	modules/postgres/pg_type.h	85;"	d
-REGOPEROID	modules/postgres/pg_type.h	84;"	d
-REGPROCEDUREOID	modules/postgres/pg_type.h	83;"	d
-REGPROCOID	modules/postgres/pg_type.h	46;"	d
-REGTIME_H	modules/registrar/regtime.h	32;"	d
-REGTYPEOID	modules/postgres/pg_type.h	87;"	d
-REG_MOD_H	modules/registrar/reg_mod.h	32;"	d
-REJECT	lex.yy.c	1123;"	d	file:
-REJECT_CALL	modules/cpl/jcpli.h	49;"	d
-REJECT_NODE	modules/cpl-c/CPL_tree.h	54;"	d
-REJECT_STR	modules/cpl-c/CPL_tree.h	177;"	d
-REJECT_STR_LEN	modules/cpl-c/CPL_tree.h	178;"	d
-REJECT_VAL	modules/cpl-c/CPL_tree.h	176;"	d
-REL234_EQ	modules/jabber/tree234.h	/^    REL234_EQ, REL234_LT, REL234_LE, REL234_GT, REL234_GE$/;"	e
-REL234_GE	modules/jabber/tree234.h	/^    REL234_EQ, REL234_LT, REL234_LE, REL234_GT, REL234_GE$/;"	e
-REL234_GT	modules/jabber/tree234.h	/^    REL234_EQ, REL234_LT, REL234_LE, REL234_GT, REL234_GE$/;"	e
-REL234_LE	modules/jabber/tree234.h	/^    REL234_EQ, REL234_LT, REL234_LE, REL234_GT, REL234_GE$/;"	e
-REL234_LT	modules/jabber/tree234.h	/^    REL234_EQ, REL234_LT, REL234_LE, REL234_GT, REL234_GE$/;"	e
-RELTIMEOID	modules/postgres/pg_type.h	62;"	d
-REMOVE_ACTION	modules/cpl-c/cpl.c	683;"	d	file:
-REMOVE_ACTION_LEN	modules/cpl-c/cpl.c	684;"	d	file:
-REMOVE_LOCATION_NODE	modules/cpl-c/CPL_tree.h	57;"	d
-REMOVE_SCRIPT	modules/cpl-c/cpl.c	686;"	d	file:
-REPLACE_CHAR	re.h	/^enum replace_special { REPLACE_NMATCH, REPLACE_CHAR, REPLACE_URI };$/;"	e	enum:replace_special
-REPLACE_NMATCH	re.h	/^enum replace_special { REPLACE_NMATCH, REPLACE_CHAR, REPLACE_URI };$/;"	e	enum:replace_special
-REPLACE_URI	re.h	/^enum replace_special { REPLACE_NMATCH, REPLACE_CHAR, REPLACE_URI };$/;"	e	enum:replace_special
-REPLY_CLASS	parser/msg_parser.h	65;"	d
-REPLY_H	modules/pa/reply.h	31;"	d
-REPLY_H	modules/registrar/reply.h	32;"	d
-REPLY_OVERBUFFER_LEN	modules/tm/config.h	68;"	d
-REPLY_STATUS	parser/msg_parser.h	64;"	d
-REPLY_TO_VIA	cfg.tab.c	/^     REPLY_TO_VIA = 335,$/;"	e	enum:yytokentype	file:
-REPLY_TO_VIA	cfg.tab.c	277;"	d	file:
-REPLY_TO_VIA	cfg.tab.h	/^     REPLY_TO_VIA = 335,$/;"	e	enum:yytokentype
-REPLY_TO_VIA	cfg.tab.h	253;"	d
-REPORT_TIMEOUT	modules/sms/sms_report.c	35;"	d	file:
-REQUEST_ROUTE	sr_module.h	69;"	d
-REQ_EXIST	modules/tm/h_table.h	/^enum kill_reason { REQ_FWDED=1, REQ_RPLD=2, REQ_RLSD=4, REQ_EXIST=8 };$/;"	e	enum:kill_reason
-REQ_FWDED	modules/tm/h_table.h	/^enum kill_reason { REQ_FWDED=1, REQ_RPLD=2, REQ_RLSD=4, REQ_EXIST=8 };$/;"	e	enum:kill_reason
-REQ_LINE	parser/msg_parser.h	62;"	d
-REQ_METHOD	parser/msg_parser.h	63;"	d
-REQ_RLSD	modules/tm/h_table.h	/^enum kill_reason { REQ_FWDED=1, REQ_RPLD=2, REQ_RLSD=4, REQ_EXIST=8 };$/;"	e	enum:kill_reason
-REQ_RPLD	modules/tm/h_table.h	/^enum kill_reason { REQ_FWDED=1, REQ_RPLD=2, REQ_RLSD=4, REQ_EXIST=8 };$/;"	e	enum:kill_reason
-RERRNO_H	modules/registrar/rerrno.h	32;"	d
-RESETFLAG	cfg.tab.c	/^     RESETFLAG = 293,$/;"	e	enum:yytokentype	file:
-RESETFLAG	cfg.tab.c	235;"	d	file:
-RESETFLAG	cfg.tab.h	/^     RESETFLAG = 293,$/;"	e	enum:yytokentype
-RESETFLAG	cfg.tab.h	211;"	d
-RESETFLAG_T	route_struct.h	/^		SETFLAG_T, RESETFLAG_T, ISFLAGSET_T ,$/;"	e
-RESIZE	test/shoot.c	30;"	d	file:
-RESIZE	test/shoot2.c	32;"	d	file:
-RES_COL_N	db/db_res.h	51;"	d
-RES_H	modules/mysql/res.h	31;"	d
-RES_NAMES	db/db_res.h	49;"	d
-RES_ROWS	db/db_res.h	52;"	d
-RES_ROW_N	db/db_res.h	53;"	d
-RES_TYPES	db/db_res.h	50;"	d
-RETRY_AFTER	modules/registrar/reply.c	286;"	d	file:
-RETRY_AFTER_LEN	modules/registrar/reply.c	287;"	d	file:
-RETR_T1	modules/tm/config.h	61;"	d
-RETR_T2	modules/tm/config.h	62;"	d
-REVERSE_ORDER	modules/tm/dlg.c	50;"	d	file:
-REVERT_URI	cfg.tab.c	/^     REVERT_URI = 281,$/;"	e	enum:yytokentype	file:
-REVERT_URI	cfg.tab.c	223;"	d	file:
-REVERT_URI	cfg.tab.h	/^     REVERT_URI = 281,$/;"	e	enum:yytokentype
-REVERT_URI	cfg.tab.h	199;"	d
-REVERT_URI_T	route_struct.h	/^		REVERT_URI_T,$/;"	e
-REV_DNS	cfg.tab.c	/^     REV_DNS = 317,$/;"	e	enum:yytokentype	file:
-REV_DNS	cfg.tab.c	259;"	d	file:
-REV_DNS	cfg.tab.h	/^     REV_DNS = 317,$/;"	e	enum:yytokentype
-REV_DNS	cfg.tab.h	235;"	d
-RE_ST	route_struct.h	/^enum { NOSUBTYPE=0, STRING_ST, NET_ST, NUMBER_ST, IP_ST, RE_ST, PROXY_ST,$/;"	e
-REcO	parser/obsolete/strs.h	254;"	d
-REco	parser/obsolete/strs.h	253;"	d
-RFC2617_H	modules/auth_db/rfc2617.h	32;"	d
-ROOM_ETAG	modules/pa/pidf.c	133;"	d	file:
-ROOM_ETAG_L	modules/pa/pidf.c	134;"	d	file:
-ROOM_STAG	modules/pa/pidf.c	130;"	d	file:
-ROOM_STAG_L	modules/pa/pidf.c	131;"	d	file:
-ROTATE_LEFT	md5.c	83;"	d	file:
-ROUND4	modules/tm/sip_msg.c	66;"	d	file:
-ROUNDDOWN	mem/f_malloc.c	62;"	d	file:
-ROUNDDOWN	mem/q_malloc.c	76;"	d	file:
-ROUNDTO	mem/f_malloc.h	51;"	d
-ROUNDTO	mem/f_malloc.h	53;"	d
-ROUNDTO	mem/f_malloc.h	57;"	d
-ROUNDTO	mem/q_malloc.h	50;"	d
-ROUNDTO	mem/q_malloc.h	52;"	d
-ROUNDTO	mem/q_malloc.h	56;"	d
-ROUNDTO_MASK	mem/f_malloc.c	60;"	d	file:
-ROUNDTO_MASK	mem/q_malloc.c	74;"	d	file:
-ROUNDUP	mem/f_malloc.c	61;"	d	file:
-ROUNDUP	mem/q_malloc.c	75;"	d	file:
-ROUT	parser/obsolete/strs.h	239;"	d
-ROUTE	cfg.tab.c	/^     ROUTE = 267,$/;"	e	enum:yytokentype	file:
-ROUTE	cfg.tab.c	209;"	d	file:
-ROUTE	cfg.tab.h	/^     ROUTE = 267,$/;"	e	enum:yytokentype
-ROUTE	cfg.tab.h	185;"	d
-ROUTE1	parser/obsolete/parse_hname.c	/^		ROUTE1, ROUTE2, ROUTE3, ROUTE4,$/;"	e	file:
-ROUTE1	test/auto.c	/^		ROUTE1, ROUTE2, ROUTE3, ROUTE4,$/;"	e	file:
-ROUTE2	parser/obsolete/parse_hname.c	/^		ROUTE1, ROUTE2, ROUTE3, ROUTE4,$/;"	e	file:
-ROUTE2	test/auto.c	/^		ROUTE1, ROUTE2, ROUTE3, ROUTE4,$/;"	e	file:
-ROUTE3	parser/obsolete/parse_hname.c	/^		ROUTE1, ROUTE2, ROUTE3, ROUTE4,$/;"	e	file:
-ROUTE3	test/auto.c	/^		ROUTE1, ROUTE2, ROUTE3, ROUTE4,$/;"	e	file:
-ROUTE4	parser/obsolete/parse_hname.c	/^		ROUTE1, ROUTE2, ROUTE3, ROUTE4,$/;"	e	file:
-ROUTE4	test/auto.c	/^		ROUTE1, ROUTE2, ROUTE3, ROUTE4,$/;"	e	file:
-ROUTE_BUFFER_MAX	modules/tm/t_fifo.c	98;"	d	file:
-ROUTE_FAILURE	cfg.tab.c	/^     ROUTE_FAILURE = 268,$/;"	e	enum:yytokentype	file:
-ROUTE_FAILURE	cfg.tab.c	210;"	d	file:
-ROUTE_FAILURE	cfg.tab.h	/^     ROUTE_FAILURE = 268,$/;"	e	enum:yytokentype
-ROUTE_FAILURE	cfg.tab.h	186;"	d
-ROUTE_MAX_REC_LEV	config.h	65;"	d
-ROUTE_ONREPLY	cfg.tab.c	/^     ROUTE_ONREPLY = 269,$/;"	e	enum:yytokentype	file:
-ROUTE_ONREPLY	cfg.tab.c	211;"	d	file:
-ROUTE_ONREPLY	cfg.tab.h	/^     ROUTE_ONREPLY = 269,$/;"	e	enum:yytokentype
-ROUTE_ONREPLY	cfg.tab.h	187;"	d
-ROUTE_PREFIX	modules/rr/loose.c	54;"	d	file:
-ROUTE_PREFIX	modules/tm/dlg.c	52;"	d	file:
-ROUTE_PREFIX	modules/tm/t_msgbuilder.c	60;"	d	file:
-ROUTE_PREFIX_LEN	modules/rr/loose.c	55;"	d	file:
-ROUTE_PREFIX_LEN	modules/tm/dlg.c	53;"	d	file:
-ROUTE_PREFIX_LEN	modules/tm/t_msgbuilder.c	61;"	d	file:
-ROUTE_SEPARATOR	modules/tm/dlg.c	55;"	d	file:
-ROUTE_SEPARATOR	modules/tm/t_msgbuilder.c	63;"	d	file:
-ROUTE_SEPARATOR_LEN	modules/tm/dlg.c	56;"	d	file:
-ROUTE_SEPARATOR_LEN	modules/tm/t_msgbuilder.c	64;"	d	file:
-ROUTE_SUFFIX	modules/rr/loose.c	57;"	d	file:
-ROUTE_SUFFIX_LEN	modules/rr/loose.c	58;"	d	file:
-ROUTE_T	route_struct.h	/^enum { FORWARD_T=1, SEND_T, DROP_T, LOG_T, ERROR_T, ROUTE_T, EXEC_T,$/;"	e
-ROUt	parser/obsolete/strs.h	238;"	d
-ROW_H	modules/mysql/row.h	31;"	d
-ROW_N	db/db_row.h	45;"	d
-ROW_VALUES	db/db_row.h	44;"	d
-ROuT	parser/obsolete/strs.h	237;"	d
-ROut	parser/obsolete/strs.h	236;"	d
-RPAREN	cfg.tab.c	/^     RPAREN = 389,$/;"	e	enum:yytokentype	file:
-RPAREN	cfg.tab.c	331;"	d	file:
-RPAREN	cfg.tab.h	/^     RPAREN = 389,$/;"	e	enum:yytokentype
-RPAREN	cfg.tab.h	307;"	d
-RPID_H	modules/auth/rpid.h	35;"	d
-RPID_HF_NAME	modules/auth/rpid.c	49;"	d	file:
-RPID_HF_NAME_LEN	modules/auth/rpid.c	50;"	d	file:
-RPL_CMD	modules/extcmd/extcmd_funcs.c	59;"	d	file:
-RPORT	config.h	102;"	d
-RPORT1	parser/parse_via.c	/^	RPORT1, RPORT2, RPORT3,$/;"	e	file:
-RPORT2	parser/parse_via.c	/^	RPORT1, RPORT2, RPORT3,$/;"	e	file:
-RPORT3	parser/parse_via.c	/^	RPORT1, RPORT2, RPORT3,$/;"	e	file:
-RPORT_LEN	config.h	103;"	d
-RPS_COMPLETED	modules/tm/t_reply.h	/^	RPS_COMPLETED,$/;"	e	enum:rps
-RPS_DISCARDED	modules/tm/t_reply.h	/^	RPS_DISCARDED,$/;"	e	enum:rps
-RPS_ERROR	modules/tm/t_reply.h	/^	RPS_ERROR=0,	$/;"	e	enum:rps
-RPS_PROVISIONAL	modules/tm/t_reply.h	/^	RPS_PROVISIONAL$/;"	e	enum:rps
-RPS_PUSHED_AFTER_COMPLETION	modules/tm/t_reply.h	/^	RPS_PUSHED_AFTER_COMPLETION,$/;"	e	enum:rps
-RPS_STORE	modules/tm/t_reply.h	/^	RPS_STORE,$/;"	e	enum:rps
-RR_DRIVEN	modules/rr/loose.c	51;"	d	file:
-RR_ERROR	modules/rr/loose.c	50;"	d	file:
-RR_FROMTAG	modules/rr/record.c	57;"	d	file:
-RR_FROMTAG_LEN	modules/rr/record.c	58;"	d	file:
-RR_LR_FULL_TERM	modules/rr/record.c	51;"	d	file:
-RR_LR_FULL_TERM_LEN	modules/rr/record.c	52;"	d	file:
-RR_LR_TERM	modules/rr/record.c	48;"	d	file:
-RR_LR_TERM_LEN	modules/rr/record.c	49;"	d	file:
-RR_MOD_H	modules/rr/rr_mod.h	37;"	d
-RR_PREFIX	modules/rr/record.c	45;"	d	file:
-RR_PREFIX_LEN	modules/rr/record.c	46;"	d	file:
-RR_R2	modules/rr/record.c	60;"	d	file:
-RR_R2_LEN	modules/rr/record.c	61;"	d	file:
-RR_SR_TERM	modules/rr/record.c	54;"	d	file:
-RR_SR_TERM_LEN	modules/rr/record.c	55;"	d	file:
-RSIO_CASE	parser/case_dive.h	35;"	d
-RTLD_NOW	sr_module.c	209;"	d	file:
-RT_200	modules/sl/sl_stats.h	/^enum reply_type { RT_200, RT_202, RT_2xx,$/;"	e	enum:reply_type
-RT_202	modules/sl/sl_stats.h	/^enum reply_type { RT_200, RT_202, RT_2xx,$/;"	e	enum:reply_type
-RT_2xx	modules/sl/sl_stats.h	/^enum reply_type { RT_200, RT_202, RT_2xx,$/;"	e	enum:reply_type
-RT_300	modules/sl/sl_stats.h	/^	RT_300, RT_301, RT_302, RT_3xx,$/;"	e	enum:reply_type
-RT_301	modules/sl/sl_stats.h	/^	RT_300, RT_301, RT_302, RT_3xx,$/;"	e	enum:reply_type
-RT_302	modules/sl/sl_stats.h	/^	RT_300, RT_301, RT_302, RT_3xx,$/;"	e	enum:reply_type
-RT_3xx	modules/sl/sl_stats.h	/^	RT_300, RT_301, RT_302, RT_3xx,$/;"	e	enum:reply_type
-RT_400	modules/sl/sl_stats.h	/^	RT_400, RT_401, RT_403, RT_404, RT_407, $/;"	e	enum:reply_type
-RT_401	modules/sl/sl_stats.h	/^	RT_400, RT_401, RT_403, RT_404, RT_407, $/;"	e	enum:reply_type
-RT_403	modules/sl/sl_stats.h	/^	RT_400, RT_401, RT_403, RT_404, RT_407, $/;"	e	enum:reply_type
-RT_404	modules/sl/sl_stats.h	/^	RT_400, RT_401, RT_403, RT_404, RT_407, $/;"	e	enum:reply_type
-RT_407	modules/sl/sl_stats.h	/^	RT_400, RT_401, RT_403, RT_404, RT_407, $/;"	e	enum:reply_type
-RT_408	modules/sl/sl_stats.h	/^		RT_408, RT_483, RT_4xx,$/;"	e	enum:reply_type
-RT_483	modules/sl/sl_stats.h	/^		RT_408, RT_483, RT_4xx,$/;"	e	enum:reply_type
-RT_4xx	modules/sl/sl_stats.h	/^		RT_408, RT_483, RT_4xx,$/;"	e	enum:reply_type
-RT_500	modules/sl/sl_stats.h	/^	RT_500, RT_5xx, $/;"	e	enum:reply_type
-RT_5xx	modules/sl/sl_stats.h	/^	RT_500, RT_5xx, $/;"	e	enum:reply_type
-RT_6xx	modules/sl/sl_stats.h	/^	RT_6xx,$/;"	e	enum:reply_type
-RT_END	modules/sl/sl_stats.h	/^	RT_END };$/;"	e	enum:reply_type
-RT_NO	config.h	59;"	d
-RT_T1_TO_1	modules/tm/timer.h	/^	RT_T1_TO_1, RT_T1_TO_2, RT_T1_TO_3, RT_T2,$/;"	e	enum:lists
-RT_T1_TO_2	modules/tm/timer.h	/^	RT_T1_TO_1, RT_T1_TO_2, RT_T1_TO_3, RT_T2,$/;"	e	enum:lists
-RT_T1_TO_3	modules/tm/timer.h	/^	RT_T1_TO_1, RT_T1_TO_2, RT_T1_TO_3, RT_T2,$/;"	e	enum:lists
-RT_T2	modules/tm/timer.h	/^	RT_T1_TO_1, RT_T1_TO_2, RT_T1_TO_3, RT_T2,$/;"	e	enum:lists
-RT_xxx	modules/sl/sl_stats.h	/^	RT_xxx,$/;"	e	enum:reply_type
-RULE_H	modules/permissions/rule.h	32;"	d
-R_AOR_LEN	modules/registrar/rerrno.h	/^	R_AOR_LEN,    \/* Address Of Record too long *\/$/;"	e	enum:rerr
-R_AOR_PARSE	modules/registrar/rerrno.h	/^	R_AOR_PARSE,  \/* Error while parsing Address Of Record *\/$/;"	e	enum:rerr
-R_CID_MISS	modules/registrar/rerrno.h	/^	R_CID_MISS,   \/* Missing Call-ID header field *\/$/;"	e	enum:rerr
-R_CS_MISS	modules/registrar/rerrno.h	/^	R_CS_MISS,    \/* Missing CSeq header field *\/$/;"	e	enum:rerr
-R_FINE	modules/registrar/rerrno.h	/^	R_FINE = 0,   \/* Everything went OK *\/$/;"	e	enum:rerr
-R_INV_CSEQ	modules/registrar/rerrno.h	/^	R_INV_CSEQ,   \/* Invalid CSeq value *\/$/;"	e	enum:rerr
-R_INV_EXP	modules/registrar/rerrno.h	/^	R_INV_EXP,    \/* Invalid expires parameter in contact *\/$/;"	e	enum:rerr
-R_INV_Q	modules/registrar/rerrno.h	/^	R_INV_Q,      \/* Invalid q parameter in contact *\/$/;"	e	enum:rerr
-R_OOO	modules/registrar/rerrno.h	/^	R_OOO,        \/* Out-Of-Order request *\/$/;"	e	enum:rerr
-R_PARSE	modules/registrar/rerrno.h	/^	R_PARSE,      \/* Error while parsing message *\/$/;"	e	enum:rerr
-R_PARSE_CONT	modules/registrar/rerrno.h	/^	R_PARSE_CONT, \/* Error while parsing Contact *\/$/;"	e	enum:rerr
-R_PARSE_EXP	modules/registrar/rerrno.h	/^	R_PARSE_EXP,  \/* Error while parsing Expires *\/$/;"	e	enum:rerr
-R_RETRANS	modules/registrar/rerrno.h	/^	R_RETRANS,    \/* Request is retransmission *\/$/;"	e	enum:rerr
-R_STAR_CONT	modules/registrar/rerrno.h	/^	R_STAR_CONT,  \/* star and more contacts *\/$/;"	e	enum:rerr
-R_STAR_EXP	modules/registrar/rerrno.h	/^	R_STAR_EXP,   \/* star and expires != 0 *\/$/;"	e	enum:rerr
-R_TOO_MANY	modules/registrar/rerrno.h	/^	R_TOO_MANY    \/* Too many contacts *\/$/;"	e	enum:rerr
-R_TO_MISS	modules/registrar/rerrno.h	/^	R_TO_MISS,    \/* Missing To header field *\/$/;"	e	enum:rerr
-R_TO_USER	modules/registrar/rerrno.h	/^	R_TO_USER,    \/* No username part in To URI *\/$/;"	e	enum:rerr
-R_UL_DEL_C	modules/registrar/rerrno.h	/^	R_UL_DEL_C,   \/* Usrloc contact delete failed *\/$/;"	e	enum:rerr
-R_UL_DEL_R	modules/registrar/rerrno.h	/^	R_UL_DEL_R,   \/* Usrloc record delete failed *\/$/;"	e	enum:rerr
-R_UL_GET_R	modules/registrar/rerrno.h	/^	R_UL_GET_R,   \/* Usrloc record get failed *\/$/;"	e	enum:rerr
-R_UL_INS_C	modules/registrar/rerrno.h	/^	R_UL_INS_C,   \/* Usrloc insert contact failed *\/$/;"	e	enum:rerr
-R_UL_INS_R	modules/registrar/rerrno.h	/^	R_UL_INS_R,   \/* Usrloc insert record failed *\/$/;"	e	enum:rerr
-R_UL_NEW_R	modules/registrar/rerrno.h	/^	R_UL_NEW_R,   \/* Usrloc new record failed *\/$/;"	e	enum:rerr
-R_UL_UPD_C	modules/registrar/rerrno.h	/^	R_UL_UPD_C,   \/* Usrloc contact update failed *\/$/;"	e	enum:rerr
-R_UNESCAPE	modules/registrar/rerrno.h	/^	R_UNESCAPE,   \/* Error while unescaping username *\/$/;"	e	enum:rerr
-Rd_R	parser/obsolete/strs.h	263;"	d
-Rd_r	parser/obsolete/strs.h	262;"	d
-ReCO	parser/obsolete/strs.h	252;"	d
-ReCo	parser/obsolete/strs.h	251;"	d
-RecO	parser/obsolete/strs.h	250;"	d
-Reco	parser/obsolete/strs.h	249;"	d
-RoUT	parser/obsolete/strs.h	235;"	d
-RoUt	parser/obsolete/strs.h	234;"	d
-RouT	parser/obsolete/strs.h	233;"	d
-Rout	parser/obsolete/strs.h	232;"	d
-S11	md5.c	43;"	d	file:
-S12	md5.c	44;"	d	file:
-S13	md5.c	45;"	d	file:
-S14	md5.c	46;"	d	file:
-S21	md5.c	47;"	d	file:
-S22	md5.c	48;"	d	file:
-S23	md5.c	49;"	d	file:
-S24	md5.c	50;"	d	file:
-S31	md5.c	51;"	d	file:
-S32	md5.c	52;"	d	file:
-S33	md5.c	53;"	d	file:
-S34	md5.c	54;"	d	file:
-S41	md5.c	55;"	d	file:
-S42	md5.c	56;"	d	file:
-S43	md5.c	57;"	d	file:
-S44	md5.c	58;"	d	file:
-SAVE_H	modules/registrar/save.h	37;"	d
-SCHEME_DOMAIN_COL	modules/avpops/avpops_parse.c	50;"	d	file:
-SCHEME_DOMAIN_COL_LEN	modules/avpops/avpops_parse.c	51;"	d	file:
-SCHEME_INT_TYPE	modules/avpops/avpops_parse.c	58;"	d	file:
-SCHEME_INT_TYPE_LEN	modules/avpops/avpops_parse.c	59;"	d	file:
-SCHEME_STR_TYPE	modules/avpops/avpops_parse.c	60;"	d	file:
-SCHEME_STR_TYPE_LEN	modules/avpops/avpops_parse.c	61;"	d	file:
-SCHEME_TABLE	modules/avpops/avpops_parse.c	54;"	d	file:
-SCHEME_TABLE_LEN	modules/avpops/avpops_parse.c	55;"	d	file:
-SCHEME_USERNAME_COL	modules/avpops/avpops_parse.c	48;"	d	file:
-SCHEME_USERNAME_COL_LEN	modules/avpops/avpops_parse.c	49;"	d	file:
-SCHEME_UUID_COL	modules/avpops/avpops_parse.c	46;"	d	file:
-SCHEME_UUID_COL_LEN	modules/avpops/avpops_parse.c	47;"	d	file:
-SCHEME_VALUE_COL	modules/avpops/avpops_parse.c	52;"	d	file:
-SCHEME_VALUE_COL_LEN	modules/avpops/avpops_parse.c	53;"	d	file:
-SCHEME_VAL_TYPE	modules/avpops/avpops_parse.c	56;"	d	file:
-SCHEME_VAL_TYPE_LEN	modules/avpops/avpops_parse.c	57;"	d	file:
-SCRIPT_DEFAULT	modules/cpl-c/cpl_run.h	35;"	d
-SCRIPT_END	modules/cpl-c/cpl_run.h	34;"	d
-SCRIPT_FORMAT_ERROR	modules/cpl-c/cpl_run.h	38;"	d
-SCRIPT_RUN_ERROR	modules/cpl-c/cpl_run.h	37;"	d
-SCRIPT_TO_BE_CONTINUED	modules/cpl-c/cpl_run.h	36;"	d
-SDP_MANGLER_H	modules/mangler/sdp_mangler.h	37;"	d
-SELECT_CMD	db/db_fifo.c	52;"	d	file:
-SELECT_STR	db/db_fifo.c	59;"	d	file:
-SELECT_STR_LEN	db/db_fifo.c	60;"	d	file:
-SEMICOLON	cfg.tab.c	/^     SEMICOLON = 388,$/;"	e	enum:yytokentype	file:
-SEMICOLON	cfg.tab.c	330;"	d	file:
-SEMICOLON	cfg.tab.h	/^     SEMICOLON = 388,$/;"	e	enum:yytokentype
-SEMICOLON	cfg.tab.h	306;"	d
-SEM_MAX	modules/tm/lock.c	50;"	d	file:
-SEM_MIN	modules/tm/lock.c	49;"	d	file:
-SEND	cfg.tab.c	/^     SEND = 262,$/;"	e	enum:yytokentype	file:
-SEND	cfg.tab.c	204;"	d	file:
-SEND	cfg.tab.h	/^     SEND = 262,$/;"	e	enum:yytokentype
-SEND	cfg.tab.h	180;"	d
-SEND_ADDR	test/test.c	44;"	d	file:
-SEND_BUFFER	modules/tm/t_funcs.h	101;"	d
-SEND_PORT	test/test.c	43;"	d	file:
-SEND_PR_BUFFER	modules/tm/t_funcs.h	93;"	d
-SEND_PR_BUFFER	modules/tm/t_funcs.h	97;"	d
-SEND_T	route_struct.h	/^enum { FORWARD_T=1, SEND_T, DROP_T, LOG_T, ERROR_T, ROUTE_T, EXEC_T,$/;"	e
-SEND_TCP	cfg.tab.c	/^     SEND_TCP = 263,$/;"	e	enum:yytokentype	file:
-SEND_TCP	cfg.tab.c	205;"	d	file:
-SEND_TCP	cfg.tab.h	/^     SEND_TCP = 263,$/;"	e	enum:yytokentype
-SEND_TCP	cfg.tab.h	181;"	d
-SEND_TCP_T	route_struct.h	/^		SEND_TCP_T,$/;"	e
-SEQUENTIAL_VAL	modules/cpl-c/CPL_tree.h	161;"	d
-SERVER_HDR	config.h	80;"	d
-SERVER_HDR_LEN	config.h	82;"	d
-SERVER_SIGNATURE	cfg.tab.c	/^     SERVER_SIGNATURE = 334,$/;"	e	enum:yytokentype	file:
-SERVER_SIGNATURE	cfg.tab.c	276;"	d	file:
-SERVER_SIGNATURE	cfg.tab.h	/^     SERVER_SIGNATURE = 334,$/;"	e	enum:yytokentype
-SERVER_SIGNATURE	cfg.tab.h	252;"	d
-SERVICE_LEN	modules/acc/diam_dict.h	6;"	d
-SERVICE_LEN	modules/auth_diameter/defs.h	9;"	d
-SER_COMPILE_FLAGS	version.h	191;"	d
-SER_FULL_VERSION	version.h	34;"	d
-SETFLAG	cfg.tab.c	/^     SETFLAG = 292,$/;"	e	enum:yytokentype	file:
-SETFLAG	cfg.tab.c	234;"	d	file:
-SETFLAG	cfg.tab.h	/^     SETFLAG = 292,$/;"	e	enum:yytokentype
-SETFLAG	cfg.tab.h	210;"	d
-SETFLAG_T	route_struct.h	/^		SETFLAG_T, RESETFLAG_T, ISFLAGSET_T ,$/;"	e
-SET_ADV_ADDRESS	cfg.tab.c	/^     SET_ADV_ADDRESS = 286,$/;"	e	enum:yytokentype	file:
-SET_ADV_ADDRESS	cfg.tab.c	228;"	d	file:
-SET_ADV_ADDRESS	cfg.tab.h	/^     SET_ADV_ADDRESS = 286,$/;"	e	enum:yytokentype
-SET_ADV_ADDRESS	cfg.tab.h	204;"	d
-SET_ADV_ADDR_T	route_struct.h	/^		SET_ADV_ADDR_T,$/;"	e
-SET_ADV_PORT	cfg.tab.c	/^     SET_ADV_PORT = 287,$/;"	e	enum:yytokentype	file:
-SET_ADV_PORT	cfg.tab.c	229;"	d	file:
-SET_ADV_PORT	cfg.tab.h	/^     SET_ADV_PORT = 287,$/;"	e	enum:yytokentype
-SET_ADV_PORT	cfg.tab.h	205;"	d
-SET_ADV_PORT_T	route_struct.h	/^		SET_ADV_PORT_T,$/;"	e
-SET_HOST	cfg.tab.c	/^     SET_HOST = 271,$/;"	e	enum:yytokentype	file:
-SET_HOST	cfg.tab.c	213;"	d	file:
-SET_HOST	cfg.tab.h	/^     SET_HOST = 271,$/;"	e	enum:yytokentype
-SET_HOST	cfg.tab.h	189;"	d
-SET_HOSTPORT	cfg.tab.c	/^     SET_HOSTPORT = 272,$/;"	e	enum:yytokentype	file:
-SET_HOSTPORT	cfg.tab.c	214;"	d	file:
-SET_HOSTPORT	cfg.tab.h	/^     SET_HOSTPORT = 272,$/;"	e	enum:yytokentype
-SET_HOSTPORT	cfg.tab.h	190;"	d
-SET_HOSTPORT_T	route_struct.h	/^		SET_HOST_T, SET_HOSTPORT_T, SET_USER_T, SET_USERPASS_T, $/;"	e
-SET_HOST_T	route_struct.h	/^		SET_HOST_T, SET_HOSTPORT_T, SET_USER_T, SET_USERPASS_T, $/;"	e
-SET_KID_OFFSET	modules/cpl-c/CPL_tree.h	218;"	d
-SET_PORT	cfg.tab.c	/^     SET_PORT = 279,$/;"	e	enum:yytokentype	file:
-SET_PORT	cfg.tab.c	221;"	d	file:
-SET_PORT	cfg.tab.h	/^     SET_PORT = 279,$/;"	e	enum:yytokentype
-SET_PORT	cfg.tab.h	197;"	d
-SET_PORT_T	route_struct.h	/^		SET_PORT_T, SET_URI_T, IF_T, MODULE_T,$/;"	e
-SET_STR_VAL	modules/msilo/msilo.c	93;"	d	file:
-SET_URI	cfg.tab.c	/^     SET_URI = 280,$/;"	e	enum:yytokentype	file:
-SET_URI	cfg.tab.c	222;"	d	file:
-SET_URI	cfg.tab.h	/^     SET_URI = 280,$/;"	e	enum:yytokentype
-SET_URI	cfg.tab.h	198;"	d
-SET_URI_T	route_struct.h	/^		SET_PORT_T, SET_URI_T, IF_T, MODULE_T,$/;"	e
-SET_USER	cfg.tab.c	/^     SET_USER = 277,$/;"	e	enum:yytokentype	file:
-SET_USER	cfg.tab.c	219;"	d	file:
-SET_USER	cfg.tab.h	/^     SET_USER = 277,$/;"	e	enum:yytokentype
-SET_USER	cfg.tab.h	195;"	d
-SET_USERPASS	cfg.tab.c	/^     SET_USERPASS = 278,$/;"	e	enum:yytokentype	file:
-SET_USERPASS	cfg.tab.c	220;"	d	file:
-SET_USERPASS	cfg.tab.h	/^     SET_USERPASS = 278,$/;"	e	enum:yytokentype
-SET_USERPASS	cfg.tab.h	196;"	d
-SET_USERPASS_T	route_struct.h	/^		SET_HOST_T, SET_HOSTPORT_T, SET_USER_T, SET_USERPASS_T, $/;"	e
-SET_USER_T	route_struct.h	/^		SET_HOST_T, SET_HOSTPORT_T, SET_USER_T, SET_USERPASS_T, $/;"	e
-SHELL	modules/ext/config.h	34;"	d
-SHELL_NAME	modules/ext/config.h	35;"	d
-SHELL_PARAM	modules/ext/config.h	36;"	d
-SHM_MEM_SIZE	config.h	123;"	d
-SHM_MEM_STR	version.h	100;"	d
-SHM_MEM_STR	version.h	102;"	d
-SHM_MMAP_STR	version.h	106;"	d
-SHM_MMAP_STR	version.h	108;"	d
-SHORTEST_MYSQL_URL	modules/mysql/utils.c	93;"	d	file:
-SHORTEST_MYSQL_URL_LEN	modules/mysql/utils.c	94;"	d	file:
-SID_START	modules/pa/watcher.c	561;"	d	file:
-SID_START_L	modules/pa/watcher.c	562;"	d	file:
-SIMPLE_NODE_SIZE	modules/cpl-c/CPL_tree.h	214;"	d
-SIP	modules/exec/exec_hf.h	36;"	d
-SIP1	parser/parse_fline.c	/^       SIP1, SIP2, SIP3, SIP4, SIP5, SIP6,$/;"	e	file:
-SIP1	parser/parse_via.c	/^	SIP1, SIP2, FIN_SIP,$/;"	e	file:
-SIP1	test/via_parse.c	/^		SIP1, SIP2, FIN_SIP,$/;"	e	file:
-SIP2	parser/parse_fline.c	/^       SIP1, SIP2, SIP3, SIP4, SIP5, SIP6,$/;"	e	file:
-SIP2	parser/parse_via.c	/^	SIP1, SIP2, FIN_SIP,$/;"	e	file:
-SIP2	test/via_parse.c	/^		SIP1, SIP2, FIN_SIP,$/;"	e	file:
-SIP3	parser/parse_fline.c	/^       SIP1, SIP2, SIP3, SIP4, SIP5, SIP6,$/;"	e	file:
-SIP4	parser/parse_fline.c	/^       SIP1, SIP2, SIP3, SIP4, SIP5, SIP6,$/;"	e	file:
-SIP5	parser/parse_fline.c	/^       SIP1, SIP2, SIP3, SIP4, SIP5, SIP6,$/;"	e	file:
-SIP6	parser/parse_fline.c	/^       SIP1, SIP2, SIP3, SIP4, SIP5, SIP6,$/;"	e	file:
-SIPS_PORT	config.h	44;"	d
-SIP_ACCOUNTING	modules/acc/diam_dict.h	7;"	d
-SIP_ACC_SERVICE	modules/auth_diameter/defs.h	15;"	d
-SIP_AUTHENTICATION	modules/auth_diameter/defs.h	10;"	d
-SIP_AUTH_SERVICE	modules/auth_diameter/defs.h	13;"	d
-SIP_GROUP_CHECK	modules/auth_diameter/defs.h	11;"	d
-SIP_GROUP_SERVICE	modules/auth_diameter/defs.h	14;"	d
-SIP_INVALID	parser/parse_fline.h	41;"	d
-SIP_MSG_H	modules/registrar/sip_msg.h	32;"	d
-SIP_PORT	config.h	43;"	d
-SIP_REPLY	parser/parse_fline.h	38;"	d
-SIP_REQUEST	parser/parse_fline.h	35;"	d
-SIP_VERSION	parser/parse_fline.h	43;"	d
-SIP_VERSION_LEN	parser/parse_fline.h	44;"	d
-SIP_WARNING	cfg.tab.c	/^     SIP_WARNING = 324,$/;"	e	enum:yytokentype	file:
-SIP_WARNING	cfg.tab.c	266;"	d	file:
-SIP_WARNING	cfg.tab.h	/^     SIP_WARNING = 324,$/;"	e	enum:yytokentype
-SIP_WARNING	cfg.tab.h	242;"	d
-SITE_ETAG	modules/pa/pidf.c	121;"	d	file:
-SITE_ETAG_L	modules/pa/pidf.c	122;"	d	file:
-SITE_STAG	modules/pa/pidf.c	118;"	d	file:
-SITE_STAG_L	modules/pa/pidf.c	119;"	d	file:
-SI_IS_IP	ip_addr.h	/^enum si_flags { SI_NONE=0, SI_IS_IP=1, SI_IS_LO=2, SI_IS_MCAST=4 };$/;"	e	enum:si_flags
-SI_IS_LO	ip_addr.h	/^enum si_flags { SI_NONE=0, SI_IS_IP=1, SI_IS_LO=2, SI_IS_MCAST=4 };$/;"	e	enum:si_flags
-SI_IS_MCAST	ip_addr.h	/^enum si_flags { SI_NONE=0, SI_IS_IP=1, SI_IS_LO=2, SI_IS_MCAST=4 };$/;"	e	enum:si_flags
-SI_NONE	ip_addr.h	/^enum si_flags { SI_NONE=0, SI_IS_IP=1, SI_IS_LO=2, SI_IS_MCAST=4 };$/;"	e	enum:si_flags
-SKIP_CHARS	modules/msilo/msfuncs.c	54;"	d	file:
-SLASH	cfg.tab.c	/^     SLASH = 395,$/;"	e	enum:yytokentype	file:
-SLASH	cfg.tab.c	337;"	d	file:
-SLASH	cfg.tab.h	/^     SLASH = 395,$/;"	e	enum:yytokentype
-SLASH	cfg.tab.h	313;"	d
-SL_RPL_WAIT_TIME	modules/sl/sl_funcs.h	34;"	d
-SL_TOTAG_SEPARATOR	modules/sl/sl_funcs.h	36;"	d
-SMS_EDGE_PART	modules/sms/sms_funcs.h	53;"	d
-SMS_EDGE_PART_LEN	modules/sms/sms_funcs.h	54;"	d
-SMS_FOOTER	modules/sms/sms_funcs.h	51;"	d
-SMS_FOOTER_LEN	modules/sms/sms_funcs.h	52;"	d
-SMS_HDR_AF_ADDR	modules/sms/sms_funcs.h	49;"	d
-SMS_HDR_AF_ADDR_LEN	modules/sms/sms_funcs.h	50;"	d
-SMS_HDR_BF_ADDR	modules/sms/sms_funcs.h	47;"	d
-SMS_HDR_BF_ADDR_LEN	modules/sms/sms_funcs.h	48;"	d
-SMS_REPORT	modules/sms/sms_funcs.h	62;"	d
-SMS_TRUNCATED	modules/sms/sms_funcs.h	55;"	d
-SMS_TRUNCATED_LEN	modules/sms/sms_funcs.h	56;"	d
-SOCKETINFO_ST	route_struct.h	/^		MYSELF_ST, STR_ST, SOCKID_ST, SOCKETINFO_ST };$/;"	e
-SOCKID_ST	route_struct.h	/^		MYSELF_ST, STR_ST, SOCKID_ST, SOCKETINFO_ST };$/;"	e
-SOCK_GROUP	cfg.tab.c	/^     SOCK_GROUP = 329,$/;"	e	enum:yytokentype	file:
-SOCK_GROUP	cfg.tab.c	271;"	d	file:
-SOCK_GROUP	cfg.tab.h	/^     SOCK_GROUP = 329,$/;"	e	enum:yytokentype
-SOCK_GROUP	cfg.tab.h	247;"	d
-SOCK_MODE	cfg.tab.c	/^     SOCK_MODE = 327,$/;"	e	enum:yytokentype	file:
-SOCK_MODE	cfg.tab.c	269;"	d	file:
-SOCK_MODE	cfg.tab.h	/^     SOCK_MODE = 327,$/;"	e	enum:yytokentype
-SOCK_MODE	cfg.tab.h	245;"	d
-SOCK_USER	cfg.tab.c	/^     SOCK_USER = 328,$/;"	e	enum:yytokentype	file:
-SOCK_USER	cfg.tab.c	270;"	d	file:
-SOCK_USER	cfg.tab.h	/^     SOCK_USER = 328,$/;"	e	enum:yytokentype
-SOCK_USER	cfg.tab.h	246;"	d
-SOURCE_ATTR	modules/cpl-c/CPL_tree.h	147;"	d
-SOURCE_REG_STR	modules/cpl-c/CPL_tree.h	149;"	d
-SOURCE_REG_STR_LEN	modules/cpl-c/CPL_tree.h	150;"	d
-SP	parser/parser_f.h	49;"	d
-SQL_ACC_FMT	modules/acc/defs.h	48;"	d
-SQL_BUF_LEN	modules/mysql/dbase.c	47;"	d	file:
-SQL_BUF_LEN	modules/mysql/defs.h	35;"	d
-SQL_BUF_LEN	modules/postgres/defs.h	44;"	d
-SQL_MC_FMT	modules/acc/defs.h	50;"	d
-SRCIP	cfg.tab.c	/^     SRCIP = 299,$/;"	e	enum:yytokentype	file:
-SRCIP	cfg.tab.c	241;"	d	file:
-SRCIP	cfg.tab.h	/^     SRCIP = 299,$/;"	e	enum:yytokentype
-SRCIP	cfg.tab.h	217;"	d
-SRCIP_O	route_struct.h	/^enum { METHOD_O=1, URI_O, FROM_URI_O, TO_URI_O, SRCIP_O, SRCPORT_O,$/;"	e
-SRCPORT	cfg.tab.c	/^     SRCPORT = 300,$/;"	e	enum:yytokentype	file:
-SRCPORT	cfg.tab.c	242;"	d	file:
-SRCPORT	cfg.tab.h	/^     SRCPORT = 300,$/;"	e	enum:yytokentype
-SRCPORT	cfg.tab.h	218;"	d
-SRCPORT_O	route_struct.h	/^enum { METHOD_O=1, URI_O, FROM_URI_O, TO_URI_O, SRCIP_O, SRCPORT_O,$/;"	e
-SRV_MAX_PREFIX_LEN	config.h	117;"	d
-SRV_TCP_PREFIX	config.h	111;"	d
-SRV_TCP_PREFIX_LEN	config.h	112;"	d
-SRV_TLS_PREFIX	config.h	114;"	d
-SRV_TLS_PREFIX_LEN	config.h	115;"	d
-SRV_UDP_PREFIX	config.h	108;"	d
-SRV_UDP_PREFIX_LEN	config.h	109;"	d
-SR_DEACTIVATED	modules/pa/notify.h	/^	SR_DEACTIVATED = 0,$/;"	e	enum:ss_reason
-SR_GIVEUP	modules/pa/notify.h	/^	SR_GIVEUP$/;"	e	enum:ss_reason
-SR_NORESOURCE	modules/pa/notify.h	/^	SR_NORESOURCE,$/;"	e	enum:ss_reason
-SR_PROBATION	modules/pa/notify.h	/^	SR_PROBATION,$/;"	e	enum:ss_reason
-SR_REJECTED	modules/pa/notify.h	/^	SR_REJECTED,$/;"	e	enum:ss_reason
-SR_TIMEOUT	modules/pa/notify.h	/^	SR_TIMEOUT,$/;"	e	enum:ss_reason
-SSLv2	cfg.tab.c	/^     SSLv2 = 356,$/;"	e	enum:yytokentype	file:
-SSLv2	cfg.tab.c	298;"	d	file:
-SSLv2	cfg.tab.h	/^     SSLv2 = 356,$/;"	e	enum:yytokentype
-SSLv2	cfg.tab.h	274;"	d
-SSLv23	cfg.tab.c	/^     SSLv23 = 355,$/;"	e	enum:yytokentype	file:
-SSLv23	cfg.tab.c	297;"	d	file:
-SSLv23	cfg.tab.h	/^     SSLv23 = 355,$/;"	e	enum:yytokentype
-SSLv23	cfg.tab.h	273;"	d
-SSLv3	cfg.tab.c	/^     SSLv3 = 357,$/;"	e	enum:yytokentype	file:
-SSLv3	cfg.tab.c	299;"	d	file:
-SSLv3	cfg.tab.h	/^     SSLv3 = 357,$/;"	e	enum:yytokentype
-SSLv3	cfg.tab.h	275;"	d
-SS_ACTIVE	modules/pa/notify.h	/^	SS_ACTIVE = 0,$/;"	e	enum:subs_state
-SS_EXPIRES	modules/pa/notify.c	83;"	d	file:
-SS_EXPIRES_L	modules/pa/notify.c	84;"	d	file:
-SS_PENDING	modules/pa/notify.h	/^	SS_PENDING$/;"	e	enum:subs_state
-SS_REASON	modules/pa/notify.c	86;"	d	file:
-SS_REASON_L	modules/pa/notify.c	87;"	d	file:
-SS_TERMINATED	modules/pa/notify.h	/^	SS_TERMINATED,$/;"	e	enum:subs_state
-ST1	parser/contact/contact.c	41;"	d	file:
-ST2	parser/contact/contact.c	42;"	d	file:
-ST3	parser/contact/contact.c	43;"	d	file:
-ST4	parser/contact/contact.c	44;"	d	file:
-ST5	parser/contact/contact.c	45;"	d	file:
-ST6	parser/contact/contact.c	46;"	d	file:
-STALE_PARAM	modules/auth/challenge.c	62;"	d	file:
-STALE_PARAM_LEN	modules/auth/challenge.c	63;"	d	file:
-STAR	cfg.tab.c	/^     STAR = 399$/;"	e	enum:yytokentype	file:
-STAR	cfg.tab.c	341;"	d	file:
-STAR	cfg.tab.h	/^     STAR = 399$/;"	e	enum:yytokentype
-STAR	cfg.tab.h	317;"	d
-START	parser/parse_fline.c	/^enum { START,$/;"	e	file:
-START_ERR_MSG	modules/sms/sms_report.c	36;"	d	file:
-START_ERR_MSG_LEN	modules/sms/sms_report.c	38;"	d	file:
-START_TO	parser/parse_to.c	/^	START_TO, DISPLAY_QUOTED, E_DISPLAY_QUOTED, DISPLAY_TOKEN,$/;"	e	file:
-STAT	cfg.tab.c	/^     STAT = 319,$/;"	e	enum:yytokentype	file:
-STAT	cfg.tab.c	261;"	d	file:
-STAT	cfg.tab.h	/^     STAT = 319,$/;"	e	enum:yytokentype
-STAT	cfg.tab.h	237;"	d
-STATE_COL	modules/usrloc/ul_mod.c	68;"	d	file:
-STATS_RX_DROPS	stats.h	92;"	d
-STATS_RX_DROPS	stats.h	99;"	d
-STATS_RX_REQUEST	stats.h	88;"	d
-STATS_RX_REQUEST	stats.h	95;"	d
-STATS_RX_RESPONSE	stats.h	90;"	d
-STATS_RX_RESPONSE	stats.h	97;"	d
-STATS_STR	version.h	38;"	d
-STATS_STR	version.h	40;"	d
-STATS_TX_DROPS	stats.h	100;"	d
-STATS_TX_DROPS	stats.h	93;"	d
-STATS_TX_REQUEST	stats.h	89;"	d
-STATS_TX_REQUEST	stats.h	96;"	d
-STATS_TX_RESPONSE	stats.h	91;"	d
-STATS_TX_RESPONSE	stats.h	98;"	d
-STATUS_ATTR	modules/cpl-c/CPL_tree.h	168;"	d
-STATUS_CLOSED	modules/pa/xpidf.c	84;"	d	file:
-STATUS_CLOSED_L	modules/pa/xpidf.c	85;"	d	file:
-STATUS_ETAG	modules/pa/pidf.c	97;"	d	file:
-STATUS_ETAG_L	modules/pa/pidf.c	98;"	d	file:
-STATUS_OPEN	modules/pa/xpidf.c	81;"	d	file:
-STATUS_OPEN_L	modules/pa/xpidf.c	82;"	d	file:
-STATUS_STAG	modules/pa/pidf.c	94;"	d	file:
-STATUS_STAG_L	modules/pa/pidf.c	95;"	d	file:
-STATUS_START	modules/pa/watcher.c	557;"	d	file:
-STATUS_START_L	modules/pa/watcher.c	558;"	d	file:
-STAudio	modules/mediaproxy/mediaproxy.c	/^    STAudio,$/;"	e	file:
-STAudioVideo	modules/mediaproxy/mediaproxy.c	/^    STAudioVideo$/;"	e	file:
-STERMAN_H	modules/auth_radius/sterman.h	35;"	d
-STORED_NOTE	modules/sms/sms_funcs.c	88;"	d	file:
-STORED_NOTE_LEN	modules/sms/sms_funcs.c	92;"	d	file:
-STORE_ACTION	modules/cpl-c/cpl.c	681;"	d	file:
-STORE_ACTION_LEN	modules/cpl-c/cpl.c	682;"	d	file:
-STORE_SCRIPT	modules/cpl-c/cpl.c	687;"	d	file:
-STR2IOVEC	modules/nathelper/nathelper.c	175;"	d	file:
-STRICT_CHECK	modules/mangler/common.h	37;"	d
-STRING	cfg.tab.c	/^     STRING = 385,$/;"	e	enum:yytokentype	file:
-STRING	cfg.tab.c	327;"	d	file:
-STRING	cfg.tab.h	/^     STRING = 385,$/;"	e	enum:yytokentype
-STRING	cfg.tab.h	303;"	d
-STRING1	lex.yy.c	1237;"	d	file:
-STRING2	lex.yy.c	1238;"	d	file:
-STRING_NODE	modules/cpl-c/CPL_tree.h	60;"	d
-STRING_S	lex.yy.c	1200;"	d	file:
-STRING_ST	route_struct.h	/^enum { NOSUBTYPE=0, STRING_ST, NET_ST, NUMBER_ST, IP_ST, RE_ST, PROXY_ST,$/;"	e
-STRING_SWITCH_NODE	modules/cpl-c/CPL_tree.h	61;"	d
-STRING_TYPE	db/db_fifo.c	77;"	d	file:
-STRING_TYPE_LEN	db/db_fifo.c	78;"	d	file:
-STRIP	cfg.tab.c	/^     STRIP = 274,$/;"	e	enum:yytokentype	file:
-STRIP	cfg.tab.c	216;"	d	file:
-STRIP	cfg.tab.h	/^     STRIP = 274,$/;"	e	enum:yytokentype
-STRIP	cfg.tab.h	192;"	d
-STRIP_T	route_struct.h	/^		LEN_GT_T, PREFIX_T, STRIP_T,STRIP_TAIL_T,$/;"	e
-STRIP_TAIL	cfg.tab.c	/^     STRIP_TAIL = 275,$/;"	e	enum:yytokentype	file:
-STRIP_TAIL	cfg.tab.c	217;"	d	file:
-STRIP_TAIL	cfg.tab.h	/^     STRIP_TAIL = 275,$/;"	e	enum:yytokentype
-STRIP_TAIL	cfg.tab.h	193;"	d
-STRIP_TAIL_T	route_struct.h	/^		LEN_GT_T, PREFIX_T, STRIP_T,STRIP_TAIL_T,$/;"	e
-STRS_H	parser/obsolete/strs.h	29;"	d
-STR_BUF_ALLOC_UNIT	lex.yy.c	1202;"	d	file:
-STR_BUF_SIZE	modules/avpops/avpops_impl.c	662;"	d	file:
-STR_NOT_FOUND	modules/cpl-c/cpl_run.h	55;"	d
-STR_NULL	str.h	41;"	d
-STR_PARAM	sr_module.h	60;"	d
-STR_ST	route_struct.h	/^		MYSELF_ST, STR_ST, SOCKID_ST, SOCKETINFO_ST };$/;"	e
-STR_STATIC_INIT	str.h	40;"	d
-STR_TO_DEC	modules/jabber/xsnprintf.c	302;"	d	file:
-STUnknown	modules/mediaproxy/mediaproxy.c	/^    STUnknown=0,$/;"	e	file:
-STVideo	modules/mediaproxy/mediaproxy.c	/^    STVideo,$/;"	e	file:
-ST_ACTIVE	modules/pa/notify.c	92;"	d	file:
-ST_ACTIVE_L	modules/pa/notify.c	93;"	d	file:
-ST_CHECK_PATTERN	mem/f_malloc.c	110;"	d	file:
-ST_CHECK_PATTERN	mem/q_malloc.c	126;"	d	file:
-ST_CHECK_PATTERN	mem/vq_malloc.h	62;"	d
-ST_MSG_CODE	modules/acc/diam_message.h	69;"	d
-ST_MSG_CODE	modules/acc/diam_message.h	79;"	d
-ST_MSG_CODE	modules/auth_diameter/diameter_msg.h	69;"	d
-ST_MSG_CODE	modules/auth_diameter/diameter_msg.h	79;"	d
-ST_PENDING	modules/pa/notify.c	98;"	d	file:
-ST_PENDING_L	modules/pa/notify.c	99;"	d	file:
-ST_TERMINATED	modules/pa/notify.c	95;"	d	file:
-ST_TERMINATED_L	modules/pa/notify.c	96;"	d	file:
-SUBACTION_NODE	modules/cpl-c/CPL_tree.h	37;"	d
-SUBDOMAIN_OF_ATTR	modules/cpl-c/CPL_tree.h	85;"	d
-SUBFIELD_ATTR	modules/cpl-c/CPL_tree.h	71;"	d
-SUBJECT_ATTR	modules/cpl-c/CPL_tree.h	191;"	d
-SUBJECT_EMAILHDR_LEN	modules/cpl-c/CPL_tree.h	193;"	d
-SUBJECT_EMAILHDR_STR	modules/cpl-c/CPL_tree.h	192;"	d
-SUBJECT_VAL	modules/cpl-c/CPL_tree.h	88;"	d
-SUBSCRIBER_TABLE	modules/uri_db/uridb_mod.c	78;"	d	file:
-SUBSCRIBER_TABLE_LEN	modules/uri_db/uridb_mod.c	79;"	d	file:
-SUBSCRIBER_TABLE_VERSION	modules/uri_db/uridb_mod.c	59;"	d	file:
-SUBSCRIBE_H	modules/pa/subscribe.h	31;"	d
-SUBSCRIPTION_STATE	modules/pa/notify.c	80;"	d	file:
-SUBSCRIPTION_STATE_L	modules/pa/notify.c	81;"	d	file:
-SUBST_CHAR	modules/tm/config.h	96;"	d
-SUBST_LUMP	msg_translator.c	781;"	d	file:
-SUBST_LUMP_LEN	msg_translator.c	510;"	d	file:
-SUBST_NOP	lump_struct.h	/^enum lump_subst{ SUBST_NOP=0,                     \/* do nothing *\/$/;"	e	enum:lump_subst
-SUBST_RCV_ALL	lump_struct.h	/^				 SUBST_RCV_ALL,   SUBST_SND_ALL   \/*  ip:port;transport=proto *\/$/;"	e	enum:lump_subst
-SUBST_RCV_IP	lump_struct.h	/^				 SUBST_RCV_IP,    SUBST_SND_IP,   \/* add ip address *\/$/;"	e	enum:lump_subst
-SUBST_RCV_PORT	lump_struct.h	/^				 SUBST_RCV_PORT,  SUBST_SND_PORT, \/* add port no *\/$/;"	e	enum:lump_subst
-SUBST_RCV_PROTO	lump_struct.h	/^				 SUBST_RCV_PROTO, SUBST_SND_PROTO,\/* add protocol(udp,tcp,tls)*\/$/;"	e	enum:lump_subst
-SUBST_SND_ALL	lump_struct.h	/^				 SUBST_RCV_ALL,   SUBST_SND_ALL   \/*  ip:port;transport=proto *\/$/;"	e	enum:lump_subst
-SUBST_SND_IP	lump_struct.h	/^				 SUBST_RCV_IP,    SUBST_SND_IP,   \/* add ip address *\/$/;"	e	enum:lump_subst
-SUBST_SND_PORT	lump_struct.h	/^				 SUBST_RCV_PORT,  SUBST_SND_PORT, \/* add port no *\/$/;"	e	enum:lump_subst
-SUBST_SND_PROTO	lump_struct.h	/^				 SUBST_RCV_PROTO, SUBST_SND_PROTO,\/* add protocol(udp,tcp,tls)*\/$/;"	e	enum:lump_subst
-SUBTYPE_ALL	parser/parse_content.h	55;"	d
-SUBTYPE_CPIM	parser/parse_content.h	52;"	d
-SUBTYPE_CPLXML	parser/parse_content.h	54;"	d
-SUBTYPE_PLAIN	parser/parse_content.h	51;"	d
-SUBTYPE_SDP	parser/parse_content.h	53;"	d
-SUBTYPE_UNKNOWN	parser/parse_content.h	56;"	d
-SUB_NODE	modules/cpl-c/CPL_tree.h	58;"	d
-SUCCESS_NODE	modules/cpl-c/CPL_tree.h	59;"	d
-SUN_LEN	modules/tm/t_fifo.c	76;"	d	file:
-SUN_LEN	unixsock_server.c	68;"	d	file:
-SUN_LEN	utils/serunix/serunix.c	49;"	d	file:
-SUN_WEEK	modules/cpl-c/cpl_time.c	102;"	d	file:
-SUPT_DEF	modules/options/mod_options.h	54;"	d
-SUPT_DEF_LEN	modules/options/mod_options.h	55;"	d
-SUPT_STR	modules/options/mod_options.h	39;"	d
-SUPT_STR_LEN	modules/options/mod_options.h	40;"	d
-SUP_CPROTOVER	modules/nathelper/nathelper.c	178;"	d	file:
-SYN_BRANCH	cfg.tab.c	/^     SYN_BRANCH = 322,$/;"	e	enum:yytokentype	file:
-SYN_BRANCH	cfg.tab.c	264;"	d	file:
-SYN_BRANCH	cfg.tab.h	/^     SYN_BRANCH = 322,$/;"	e	enum:yytokentype
-SYN_BRANCH	cfg.tab.h	240;"	d
-S_CONN_ACCEPT	tcp_conn.h	/^						S_CONN_ACCEPT, S_CONN_CONNECT };$/;"	e	enum:tcp_conn_states
-S_CONN_BAD	tcp_conn.h	/^enum tcp_conn_states { S_CONN_ERROR=-2, S_CONN_BAD=-1, S_CONN_OK=0, $/;"	e	enum:tcp_conn_states
-S_CONN_CONNECT	tcp_conn.h	/^						S_CONN_ACCEPT, S_CONN_CONNECT };$/;"	e	enum:tcp_conn_states
-S_CONN_EOF	tcp_conn.h	/^						S_CONN_INIT, S_CONN_EOF, $/;"	e	enum:tcp_conn_states
-S_CONN_ERROR	tcp_conn.h	/^enum tcp_conn_states { S_CONN_ERROR=-2, S_CONN_BAD=-1, S_CONN_OK=0, $/;"	e	enum:tcp_conn_states
-S_CONN_INIT	tcp_conn.h	/^						S_CONN_INIT, S_CONN_EOF, $/;"	e	enum:tcp_conn_states
-S_CONN_OK	tcp_conn.h	/^enum tcp_conn_states { S_CONN_ERROR=-2, S_CONN_BAD=-1, S_CONN_OK=0, $/;"	e	enum:tcp_conn_states
-S_EQUAL	parser/parse_to.c	/^	S_PARA_NAME=20, PARA_NAME, S_EQUAL, S_PARA_VALUE, TAG1, TAG2,$/;"	e	file:
-S_ID_LEN	modules/pa/watcher.c	114;"	d	file:
-S_NULL	modules/jabber/xsnprintf.c	257;"	d	file:
-S_NULL_LEN	modules/jabber/xsnprintf.c	258;"	d	file:
-S_PARA_NAME	parser/parse_to.c	/^	S_PARA_NAME=20, PARA_NAME, S_EQUAL, S_PARA_VALUE, TAG1, TAG2,$/;"	e	file:
-S_PARA_VALUE	parser/parse_to.c	/^	S_PARA_NAME=20, PARA_NAME, S_EQUAL, S_PARA_VALUE, TAG1, TAG2,$/;"	e	file:
-S_TABLE_VERSION	modules/msilo/msilo.c	118;"	d	file:
-S_URI_ENCLOSED	parser/parse_to.c	/^	S_URI_ENCLOSED, URI_ENCLOSED, E_URI_ENCLOSED,$/;"	e	file:
-StreamInfo	modules/mediaproxy/mediaproxy.c	/^} StreamInfo;$/;"	t	file:
-StreamType	modules/mediaproxy/mediaproxy.c	/^} StreamType;$/;"	t	file:
-T	modules/tm/t_lookup.c	/^static struct cell *T;$/;"	v	file:
-TABLE	modules/group/group_mod.c	77;"	d	file:
-TABLENAME_COLUMN	config.h	198;"	d
-TABLE_ENTRIES	hash_func.h	37;"	d
-TABLE_LEN	modules/group/group_mod.c	78;"	d	file:
-TABLE_VERSION	modules/auth_db/authdb_mod.c	52;"	d	file:
-TABLE_VERSION	modules/domain/domain_mod.c	62;"	d	file:
-TABLE_VERSION	modules/group/group_mod.c	53;"	d	file:
-TABLE_VERSION	modules/permissions/trusted.c	48;"	d	file:
-TABLE_VERSION	modules/usrloc/ul_mod.h	52;"	d
-TAG1	parser/parse_to.c	/^	S_PARA_NAME=20, PARA_NAME, S_EQUAL, S_PARA_VALUE, TAG1, TAG2,$/;"	e	file:
-TAG2	parser/parse_to.c	/^	S_PARA_NAME=20, PARA_NAME, S_EQUAL, S_PARA_VALUE, TAG1, TAG2,$/;"	e	file:
-TAG3	parser/parse_to.c	/^	TAG3, PARA_VALUE_TOKEN , PARA_VALUE_QUOTED, E_PARA_VALUE$/;"	e	file:
-TAG_OVERBUFFER_LEN	modules/tm/config.h	69;"	d
-TAG_PARAM	parser/parse_to.h	/^	TAG_PARAM = 400, GENERAL_PARAM$/;"	e
-TCFLSH	modules/postgres/aug_sysdep.h	256;"	d
-TCGETA	modules/postgres/aug_sysdep.h	253;"	d
-TCGETS	modules/postgres/aug_sysdep.h	251;"	d
-TCP	cfg.tab.c	/^     TCP = 308,$/;"	e	enum:yytokentype	file:
-TCP	cfg.tab.c	250;"	d	file:
-TCP	cfg.tab.h	/^     TCP = 308,$/;"	e	enum:yytokentype
-TCP	cfg.tab.h	226;"	d
-TCP2	parser/parse_via.c	/^	TCP_TLS1, TCP2, FIN_TCP,$/;"	e	file:
-TCPCONN_LOCK	tcp_conn.h	173;"	d
-TCPCONN_UNLOCK	tcp_conn.h	174;"	d
-TCP_ACCEPT_ALIASES	cfg.tab.c	/^     TCP_ACCEPT_ALIASES = 345,$/;"	e	enum:yytokentype	file:
-TCP_ACCEPT_ALIASES	cfg.tab.c	287;"	d	file:
-TCP_ACCEPT_ALIASES	cfg.tab.h	/^     TCP_ACCEPT_ALIASES = 345,$/;"	e	enum:yytokentype
-TCP_ACCEPT_ALIASES	cfg.tab.h	263;"	d
-TCP_ALIAS_HASH_SIZE	tcp_conn.h	176;"	d
-TCP_BUF_SIZE	tcp_conn.h	46;"	d
-TCP_CHILDREN	cfg.tab.c	/^     TCP_CHILDREN = 346,$/;"	e	enum:yytokentype	file:
-TCP_CHILDREN	cfg.tab.c	288;"	d	file:
-TCP_CHILDREN	cfg.tab.h	/^     TCP_CHILDREN = 346,$/;"	e	enum:yytokentype
-TCP_CHILDREN	cfg.tab.h	264;"	d
-TCP_CHILD_SELECT_TIMEOUT	tcp_conn.h	56;"	d
-TCP_CHILD_TIMEOUT	tcp_conn.h	53;"	d
-TCP_COMM_H	modules/auth_diameter/tcp_comm.h	36;"	d
-TCP_CONNECT_TIMEOUT	cfg.tab.c	/^     TCP_CONNECT_TIMEOUT = 347,$/;"	e	enum:yytokentype	file:
-TCP_CONNECT_TIMEOUT	cfg.tab.c	289;"	d	file:
-TCP_CONNECT_TIMEOUT	cfg.tab.h	/^     TCP_CONNECT_TIMEOUT = 347,$/;"	e	enum:yytokentype
-TCP_CONNECT_TIMEOUT	cfg.tab.h	265;"	d
-TCP_CON_MAX_ALIASES	tcp_conn.h	44;"	d
-TCP_CON_SEND_TIMEOUT	tcp_conn.h	48;"	d
-TCP_CON_TIMEOUT	tcp_conn.h	47;"	d
-TCP_ID_HASH_SIZE	tcp_conn.h	177;"	d
-TCP_MAIN_SELECT_TIMEOUT	tcp_conn.h	55;"	d
-TCP_READ_ERROR	tcp_conn.h	/^enum tcp_req_errors {	TCP_REQ_INIT, TCP_REQ_OK, TCP_READ_ERROR,$/;"	e	enum:tcp_req_errors
-TCP_REQ_BAD_LEN	tcp_conn.h	/^						TCP_REQ_OVERRUN, TCP_REQ_BAD_LEN };$/;"	e	enum:tcp_req_errors
-TCP_REQ_INIT	tcp_conn.h	/^enum tcp_req_errors {	TCP_REQ_INIT, TCP_REQ_OK, TCP_READ_ERROR,$/;"	e	enum:tcp_req_errors
-TCP_REQ_OK	tcp_conn.h	/^enum tcp_req_errors {	TCP_REQ_INIT, TCP_REQ_OK, TCP_READ_ERROR,$/;"	e	enum:tcp_req_errors
-TCP_REQ_OVERRUN	tcp_conn.h	/^						TCP_REQ_OVERRUN, TCP_REQ_BAD_LEN };$/;"	e	enum:tcp_req_errors
-TCP_SEND_TIMEOUT	cfg.tab.c	/^     TCP_SEND_TIMEOUT = 348,$/;"	e	enum:yytokentype	file:
-TCP_SEND_TIMEOUT	cfg.tab.c	290;"	d	file:
-TCP_SEND_TIMEOUT	cfg.tab.h	/^     TCP_SEND_TIMEOUT = 348,$/;"	e	enum:yytokentype
-TCP_SEND_TIMEOUT	cfg.tab.h	266;"	d
-TCP_TLS1	parser/parse_via.c	/^	TCP_TLS1, TCP2, FIN_TCP,$/;"	e	file:
-TCSETA	modules/postgres/aug_sysdep.h	254;"	d
-TCSETS	modules/postgres/aug_sysdep.h	252;"	d
-TCSETSW	modules/postgres/aug_sysdep.h	255;"	d
-TED_CASE	parser/case_unsu.h	41;"	d
-TEL_VAL	modules/cpl-c/CPL_tree.h	79;"	d
-TEST_RUN	mem/memtest.c	61;"	d	file:
-TEST_SIZE	mem/memtest.c	60;"	d	file:
-TEXTOID	modules/postgres/pg_type.h	47;"	d
-TE_P_CASE	parser/case_remo.h	56;"	d
-TG_DEL	modules/tm/lock.h	/^	TG_DEL,$/;"	e	enum:timer_groups
-TG_FR	modules/tm/lock.h	/^	TG_FR,$/;"	e	enum:timer_groups
-TG_NR	modules/tm/lock.h	/^	TG_NR$/;"	e	enum:timer_groups
-TG_RT	modules/tm/lock.h	/^	TG_RT,$/;"	e	enum:timer_groups
-TG_WT	modules/tm/lock.h	/^	TG_WT,$/;"	e	enum:timer_groups
-TH12	parser/obsolete/strs.h	331;"	d
-TH21	parser/obsolete/strs.h	336;"	d
-THOR_CASE	parser/case_prox.h	65;"	d
-TH_CASE	parser/case_cont.h	42;"	d
-TIDOID	modules/postgres/pg_type.h	49;"	d
-TIMEOID	modules/postgres/pg_type.h	74;"	d
-TIMEOUT_ATTR	modules/cpl-c/CPL_tree.h	148;"	d
-TIMER_DELETED	modules/tm/timer.h	45;"	d
-TIMER_ORDERED	modules/tm/timer.c	645;"	d	file:
-TIMER_TICK	config.h	125;"	d
-TIMESTAMPOID	modules/postgres/pg_type.h	75;"	d
-TIMESTAMPTZOID	modules/postgres/pg_type.h	76;"	d
-TIMETZOID	modules/postgres/pg_type.h	78;"	d
-TIME_FORMAT	modules/textops/textops.c	90;"	d	file:
-TIME_LEN	modules/sms/sms_funcs.h	58;"	d
-TIME_NODE	modules/cpl-c/CPL_tree.h	62;"	d
-TIME_SWITCH_NODE	modules/cpl-c/CPL_tree.h	63;"	d
-TINTERVALOID	modules/postgres/pg_type.h	63;"	d
-TLS	cfg.tab.c	/^     TLS = 309,$/;"	e	enum:yytokentype	file:
-TLS	cfg.tab.c	251;"	d	file:
-TLS	cfg.tab.h	/^     TLS = 309,$/;"	e	enum:yytokentype
-TLS	cfg.tab.h	227;"	d
-TLS2	parser/parse_via.c	/^	          TLS2, FIN_TLS,$/;"	e	file:
-TLSLOG	cfg.tab.c	/^     TLSLOG = 350,$/;"	e	enum:yytokentype	file:
-TLSLOG	cfg.tab.c	292;"	d	file:
-TLSLOG	cfg.tab.h	/^     TLSLOG = 350,$/;"	e	enum:yytokentype
-TLSLOG	cfg.tab.h	268;"	d
-TLS_CA_FILE	config.h	50;"	d
-TLS_CA_LIST	cfg.tab.c	/^     TLS_CA_LIST = 363,$/;"	e	enum:yytokentype	file:
-TLS_CA_LIST	cfg.tab.c	305;"	d	file:
-TLS_CA_LIST	cfg.tab.h	/^     TLS_CA_LIST = 363,$/;"	e	enum:yytokentype
-TLS_CA_LIST	cfg.tab.h	281;"	d
-TLS_CERTIFICATE	cfg.tab.c	/^     TLS_CERTIFICATE = 361,$/;"	e	enum:yytokentype	file:
-TLS_CERTIFICATE	cfg.tab.c	303;"	d	file:
-TLS_CERTIFICATE	cfg.tab.h	/^     TLS_CERTIFICATE = 361,$/;"	e	enum:yytokentype
-TLS_CERTIFICATE	cfg.tab.h	279;"	d
-TLS_CERT_FILE	config.h	49;"	d
-TLS_HANDSHAKE_TIMEOUT	cfg.tab.c	/^     TLS_HANDSHAKE_TIMEOUT = 353,$/;"	e	enum:yytokentype	file:
-TLS_HANDSHAKE_TIMEOUT	cfg.tab.c	295;"	d	file:
-TLS_HANDSHAKE_TIMEOUT	cfg.tab.h	/^     TLS_HANDSHAKE_TIMEOUT = 353,$/;"	e	enum:yytokentype
-TLS_HANDSHAKE_TIMEOUT	cfg.tab.h	271;"	d
-TLS_METHOD	cfg.tab.c	/^     TLS_METHOD = 352,$/;"	e	enum:yytokentype	file:
-TLS_METHOD	cfg.tab.c	294;"	d	file:
-TLS_METHOD	cfg.tab.h	/^     TLS_METHOD = 352,$/;"	e	enum:yytokentype
-TLS_METHOD	cfg.tab.h	270;"	d
-TLS_PKEY_FILE	config.h	48;"	d
-TLS_PORT_NO	cfg.tab.c	/^     TLS_PORT_NO = 351,$/;"	e	enum:yytokentype	file:
-TLS_PORT_NO	cfg.tab.c	293;"	d	file:
-TLS_PORT_NO	cfg.tab.h	/^     TLS_PORT_NO = 351,$/;"	e	enum:yytokentype
-TLS_PORT_NO	cfg.tab.h	269;"	d
-TLS_PRIVATE_KEY	cfg.tab.c	/^     TLS_PRIVATE_KEY = 362,$/;"	e	enum:yytokentype	file:
-TLS_PRIVATE_KEY	cfg.tab.c	304;"	d	file:
-TLS_PRIVATE_KEY	cfg.tab.h	/^     TLS_PRIVATE_KEY = 362,$/;"	e	enum:yytokentype
-TLS_PRIVATE_KEY	cfg.tab.h	280;"	d
-TLS_REQUIRE_CERTIFICATE	cfg.tab.c	/^     TLS_REQUIRE_CERTIFICATE = 360,$/;"	e	enum:yytokentype	file:
-TLS_REQUIRE_CERTIFICATE	cfg.tab.c	302;"	d	file:
-TLS_REQUIRE_CERTIFICATE	cfg.tab.h	/^     TLS_REQUIRE_CERTIFICATE = 360,$/;"	e	enum:yytokentype
-TLS_REQUIRE_CERTIFICATE	cfg.tab.h	278;"	d
-TLS_SEND_TIMEOUT	cfg.tab.c	/^     TLS_SEND_TIMEOUT = 354,$/;"	e	enum:yytokentype	file:
-TLS_SEND_TIMEOUT	cfg.tab.c	296;"	d	file:
-TLS_SEND_TIMEOUT	cfg.tab.h	/^     TLS_SEND_TIMEOUT = 354,$/;"	e	enum:yytokentype
-TLS_SEND_TIMEOUT	cfg.tab.h	272;"	d
-TLS_VERIFY	cfg.tab.c	/^     TLS_VERIFY = 359,$/;"	e	enum:yytokentype	file:
-TLS_VERIFY	cfg.tab.c	301;"	d	file:
-TLS_VERIFY	cfg.tab.h	/^     TLS_VERIFY = 359,$/;"	e	enum:yytokentype
-TLS_VERIFY	cfg.tab.h	277;"	d
-TLSv1	cfg.tab.c	/^     TLSv1 = 358,$/;"	e	enum:yytokentype	file:
-TLSv1	cfg.tab.c	300;"	d	file:
-TLSv1	cfg.tab.h	/^     TLSv1 = 358,$/;"	e	enum:yytokentype
-TLSv1	cfg.tab.h	276;"	d
-TLocation	modules/cpl/jcpli.h	/^} TLocation;$/;"	t
-TMCB_E2EACK_IN	modules/tm/t_hooks.h	48;"	d
-TMCB_LOCAL_COMPLETED	modules/tm/t_hooks.h	54;"	d
-TMCB_MAX	modules/tm/t_hooks.h	55;"	d
-TMCB_ON_FAILURE	modules/tm/t_hooks.h	52;"	d
-TMCB_ON_FAILURE_RO	modules/tm/t_hooks.h	51;"	d
-TMCB_REQUEST_FWDED	modules/tm/t_hooks.h	49;"	d
-TMCB_REQUEST_IN	modules/tm/t_hooks.h	46;"	d
-TMCB_RESPONSE_FWDED	modules/tm/t_hooks.h	50;"	d
-TMCB_RESPONSE_IN	modules/tm/t_hooks.h	47;"	d
-TMCB_RESPONSE_OUT	modules/tm/t_hooks.h	53;"	d
-TM_TAG_SEPARATOR	modules/tm/config.h	93;"	d
-TO	modules/tm/t_msgbuilder.h	44;"	d
-TO1	parser/obsolete/parse_hname.c	/^		TO1,$/;"	e	file:
-TO1	test/auto.c	/^		TO1,$/;"	e	file:
-TO12	parser/obsolete/strs.h	95;"	d
-TO21	parser/obsolete/strs.h	100;"	d
-TOTAG	modules/tm/t_msgbuilder.h	52;"	d
-TOTAG_LEN	modules/tm/t_msgbuilder.h	53;"	d
-TOTAG_TOKEN	config.h	99;"	d
-TOTAG_TOKEN_LEN	config.h	100;"	d
-TOTAG_VALUE_LEN	tags.h	53;"	d
-TO_ATTR	modules/cpl-c/CPL_tree.h	190;"	d
-TO_END	modules/pa/lpidf.c	40;"	d	file:
-TO_END_L	modules/pa/lpidf.c	41;"	d	file:
-TO_LEN	modules/tm/t_msgbuilder.h	45;"	d
-TO_START	modules/pa/lpidf.c	37;"	d	file:
-TO_START_L	modules/pa/lpidf.c	38;"	d	file:
-TO_URI	cfg.tab.c	/^     TO_URI = 298,$/;"	e	enum:yytokentype	file:
-TO_URI	cfg.tab.c	240;"	d	file:
-TO_URI	cfg.tab.h	/^     TO_URI = 298,$/;"	e	enum:yytokentype
-TO_URI	cfg.tab.h	216;"	d
-TO_URI_O	route_struct.h	/^enum { METHOD_O=1, URI_O, FROM_URI_O, TO_URI_O, SRCIP_O, SRCPORT_O,$/;"	e
-TRANSPORT_PARAM	config.h	96;"	d
-TRANSPORT_PARAM_LEN	config.h	97;"	d
-TREE234_H	modules/jabber/tree234.h	33;"	d
-TRIGGEROID	modules/postgres/pg_type.h	93;"	d
-TRIM_H	trim.h	30;"	d
-TRIM_SWITCH	trim.h	41;"	d
-TRUE	db/example/dbexample.c	37;"	d	file:
-TRUE	modules/dbtext/dbtex/dbtex.c	43;"	d	file:
-TRUE	modules/jabber/xsnprintf.c	248;"	d	file:
-TRUSTED_DUMP	modules/permissions/fifo.c	44;"	d	file:
-TRUSTED_H	modules/permissions/trusted.h	30;"	d
-TRUSTED_RELOAD	modules/permissions/fifo.c	43;"	d	file:
-TRedirectMessage	modules/cpl/jcpli.h	/^} TRedirectMessage;$/;"	t
-TRejectMessage	modules/cpl/jcpli.h	/^} TRejectMessage;$/;"	t
-TSEND_ERR_CHECK	tsend.c	81;"	d	file:
-TSEND_INIT	tsend.c	47;"	d	file:
-TSEND_POLL	tsend.c	53;"	d	file:
-TSW_RSET	modules/cpl-c/cpl_time.h	117;"	d
-TSW_TSET	modules/cpl-c/cpl_time.h	116;"	d
-TTL1	parser/parse_via.c	/^	TTL1, TTL2,$/;"	e	file:
-TTL1	test/via_parse.c	/^		TTL1,      TTL2,$/;"	e	file:
-TTL2	parser/parse_via.c	/^	TTL1, TTL2,$/;"	e	file:
-TTL2	test/via_parse.c	/^		TTL1,      TTL2,$/;"	e	file:
-TUPLE_END	modules/pa/pidf.c	76;"	d	file:
-TUPLE_END_L	modules/pa/pidf.c	77;"	d	file:
-TUPLE_ETAG	modules/pa/pidf.c	55;"	d	file:
-TUPLE_ETAG_L	modules/pa/pidf.c	56;"	d	file:
-TUPLE_ID_STR_LEN	modules/pa/presentity.h	54;"	d
-TUPLE_LOCATION_FLOOR_LEN	modules/pa/presentity.h	51;"	d
-TUPLE_LOCATION_LOC_LEN	modules/pa/presentity.h	49;"	d
-TUPLE_LOCATION_PACKET_LOSS_LEN	modules/pa/presentity.h	53;"	d
-TUPLE_LOCATION_ROOM_LEN	modules/pa/presentity.h	52;"	d
-TUPLE_LOCATION_SITE_LEN	modules/pa/presentity.h	50;"	d
-TUPLE_START	modules/pa/pidf.c	73;"	d	file:
-TUPLE_START_L	modules/pa/pidf.c	74;"	d	file:
-TUPLE_STATUS_STR_LEN	modules/pa/presentity.h	48;"	d
-TWRITE_PARAMS	modules/tm/t_fifo.c	87;"	d	file:
-TWRITE_VERSION_LEN	modules/tm/t_fifo.c	89;"	d	file:
-TWRITE_VERSION_S	modules/tm/t_fifo.c	88;"	d	file:
-TYPE_ALL	parser/parse_content.h	48;"	d
-TYPE_APPLICATION	parser/parse_content.h	47;"	d
-TYPE_LEN	modules/extcmd/extcmd_funcs.c	68;"	d	file:
-TYPE_LOCAL_CANCEL	modules/tm/h_table.h	78;"	d
-TYPE_MESSAGE	parser/parse_content.h	46;"	d
-TYPE_REQUEST	modules/tm/h_table.h	79;"	d
-TYPE_TEXT	parser/parse_content.h	45;"	d
-TYPE_UNKNOWN	parser/parse_content.h	49;"	d
-TZID_ATTR	modules/cpl-c/CPL_tree.h	98;"	d
-TZURL_ATTR	modules/cpl-c/CPL_tree.h	99;"	d
-T_ADDBLIND	modules/tm/tm_load.h	60;"	d
-T_FORWARD_NONACK	modules/tm/tm_load.h	62;"	d
-T_FORWARD_NONACK_TCP	modules/tm/tm_load.h	65;"	d
-T_FORWARD_NONACK_TLS	modules/tm/tm_load.h	66;"	d
-T_FORWARD_NONACK_UDP	modules/tm/tm_load.h	64;"	d
-T_FORWARD_NONACK_URI	modules/tm/tm_load.h	63;"	d
-T_GETT	modules/tm/tm_load.h	72;"	d
-T_GET_TI	modules/tm/t_lookup.h	82;"	d
-T_GET_TI	modules/tm/tm_load.h	67;"	d
-T_IS_INVITE_FLAG	modules/tm/h_table.h	172;"	d
-T_IS_LOCAL	modules/tm/t_lookup.h	84;"	d
-T_IS_LOCAL	modules/tm/tm_load.h	69;"	d
-T_IS_LOCAL_FLAG	modules/tm/h_table.h	174;"	d
-T_LOOKUP_IDENT	modules/tm/t_lookup.h	83;"	d
-T_LOOKUP_IDENT	modules/tm/tm_load.h	68;"	d
-T_NOISY_CTIMER_FLAG	modules/tm/h_table.h	177;"	d
-T_NULL_CELL	modules/tm/t_lookup.h	47;"	d
-T_RELAY	modules/tm/tm_load.h	56;"	d
-T_RELAY_TO	modules/tm/tm_load.h	52;"	d
-T_RELAY_TO_TCP	modules/tm/tm_load.h	54;"	d
-T_RELAY_TO_TLS	modules/tm/tm_load.h	55;"	d
-T_RELAY_TO_UDP	modules/tm/tm_load.h	53;"	d
-T_REPLY	modules/tm/tm_load.h	57;"	d
-T_REPLY_UNSAFE	modules/tm/tm_load.h	59;"	d
-T_REPLY_UNSAFE	modules/tm/tm_load.h	61;"	d
-T_REPLY_WB	modules/tm/tm_load.h	58;"	d
-T_REQUEST_OUTSIDE	modules/tm/tm_load.h	71;"	d
-T_REQUEST_WITHIN	modules/tm/tm_load.h	70;"	d
-T_TABLE_POWER	hash_func.h	36;"	d
-T_UNDEFINED	modules/tm/t_lookup.h	46;"	d
-Th12	parser/obsolete/strs.h	330;"	d
-Th21	parser/obsolete/strs.h	335;"	d
-To12	parser/obsolete/strs.h	94;"	d
-To21	parser/obsolete/strs.h	99;"	d
-True	modules/mediaproxy/mediaproxy.c	83;"	d	file:
-UAC_FIFO_H	modules/tm/uac_fifo.h	32;"	d
-UA_DUMMY_LEN	modules/registrar/save.c	486;"	d	file:
-UA_DUMMY_STR	modules/registrar/save.c	485;"	d	file:
-UCONTACT_H	modules/usrloc/ucontact.h	36;"	d
-UDOMAIN_H	modules/usrloc/udomain.h	37;"	d
-UDP	cfg.tab.c	/^     UDP = 307,$/;"	e	enum:yytokentype	file:
-UDP	cfg.tab.c	249;"	d	file:
-UDP	cfg.tab.h	/^     UDP = 307,$/;"	e	enum:yytokentype
-UDP	cfg.tab.h	225;"	d
-UDP1	parser/parse_via.c	/^	UDP1, UDP2, FIN_UDP,$/;"	e	file:
-UDP2	parser/parse_via.c	/^	UDP1, UDP2, FIN_UDP,$/;"	e	file:
-UINT16_MAX	lex.yy.c	73;"	d	file:
-UINT2	md5global.h	/^typedef unsigned short int UINT2;$/;"	t
-UINT32_MAX	lex.yy.c	76;"	d	file:
-UINT4	md5global.h	/^typedef unsigned int UINT4;$/;"	t
-UINT8_MAX	lex.yy.c	70;"	d	file:
-ULCB_MAX	modules/usrloc/ul_callback.h	43;"	d
-UL_ADD	modules/usrloc/ul_fifo.h	41;"	d
-UL_CONTACT_DELETE	modules/usrloc/ul_callback.h	41;"	d
-UL_CONTACT_EXPIRE	modules/usrloc/ul_callback.h	42;"	d
-UL_CONTACT_INSERT	modules/usrloc/ul_callback.h	39;"	d
-UL_CONTACT_UPDATE	modules/usrloc/ul_callback.h	40;"	d
-UL_DUMP	modules/usrloc/ul_fifo.h	39;"	d
-UL_FLUSH	modules/usrloc/ul_fifo.h	40;"	d
-UL_MOD_H	modules/usrloc/ul_mod.h	36;"	d
-UL_RM	modules/usrloc/ul_fifo.h	37;"	d
-UL_RM_CONTACT	modules/usrloc/ul_fifo.h	38;"	d
-UL_SHOW_CONTACT	modules/usrloc/ul_fifo.h	42;"	d
-UL_STATS	modules/usrloc/ul_fifo.h	36;"	d
-UNDEF_CHAR	modules/cpl-c/cpl_run.c	66;"	d	file:
-UNIXSOCK_BUF_SIZE	unixsock_server.c	73;"	d	file:
-UNIXSOCK_CALLID	modules/usrloc/ul_unixsock.c	42;"	d	file:
-UNIXSOCK_CALLID_LEN	modules/usrloc/ul_unixsock.c	43;"	d	file:
-UNIXSOCK_CSEQ	modules/usrloc/ul_unixsock.c	44;"	d	file:
-UNIXSOCK_UA	modules/usrloc/ul_unixsock.c	45;"	d	file:
-UNIXSOCK_UA_LEN	modules/usrloc/ul_unixsock.c	46;"	d	file:
-UNIX_SOCK	cfg.tab.c	/^     UNIX_SOCK = 331,$/;"	e	enum:yytokentype	file:
-UNIX_SOCK	cfg.tab.c	273;"	d	file:
-UNIX_SOCK	cfg.tab.h	/^     UNIX_SOCK = 331,$/;"	e	enum:yytokentype
-UNIX_SOCK	cfg.tab.h	249;"	d
-UNIX_SOCK_CHILDREN	cfg.tab.c	/^     UNIX_SOCK_CHILDREN = 332,$/;"	e	enum:yytokentype	file:
-UNIX_SOCK_CHILDREN	cfg.tab.c	274;"	d	file:
-UNIX_SOCK_CHILDREN	cfg.tab.h	/^     UNIX_SOCK_CHILDREN = 332,$/;"	e	enum:yytokentype
-UNIX_SOCK_CHILDREN	cfg.tab.h	250;"	d
-UNIX_TX_TIMEOUT	cfg.tab.c	/^     UNIX_TX_TIMEOUT = 333,$/;"	e	enum:yytokentype	file:
-UNIX_TX_TIMEOUT	cfg.tab.c	275;"	d	file:
-UNIX_TX_TIMEOUT	cfg.tab.h	/^     UNIX_TX_TIMEOUT = 333,$/;"	e	enum:yytokentype
-UNIX_TX_TIMEOUT	cfg.tab.h	251;"	d
-UNKNOWNOID	modules/postgres/pg_type.h	64;"	d
-UNKNOWN_HEADER	parser/obsolete/parse_hname.c	/^		UNKNOWN_HEADER=200,$/;"	e	file:
-UNKNOWN_HEADER	test/auto.c	/^		UNKNOWN_HEADER=200,$/;"	e	file:
-UNKNOWN_PRIO_VAL	modules/cpl-c/CPL_tree.h	137;"	d
-UNLOCK	test/locking/locking_test.c	109;"	d	file:
-UNLOCK	test/locking/locking_test.c	114;"	d	file:
-UNLOCK	test/locking/locking_test.c	119;"	d	file:
-UNLOCK	test/locking/locking_test.c	124;"	d	file:
-UNLOCK	test/locking/locking_test.c	86;"	d	file:
-UNLOCK	test/locking/locking_test.c	97;"	d	file:
-UNLOCK_HASH	modules/tm/h_table.h	69;"	d
-UNLOCK_REPLIES	modules/tm/t_reply.h	76;"	d
-UNREF	modules/tm/t_funcs.h	106;"	d
-UNREF_UNSAFE	modules/tm/t_funcs.h	105;"	d
-UNRESERVED_MARK	modules/exec/exec_hf.h	54;"	d
-UNTIL_ATTR	modules/cpl-c/CPL_tree.h	107;"	d
-UN_HASH	mem/f_malloc.c	77;"	d	file:
-UN_HASH	mem/q_malloc.c	91;"	d	file:
-UPDATE_CMD	db/db_fifo.c	55;"	d	file:
-UPDATE_STR	db/db_fifo.c	65;"	d	file:
-UPDATE_STR_LEN	db/db_fifo.c	66;"	d	file:
-UPDC16	crc.c	40;"	d	file:
-UPDC32	crc.c	38;"	d	file:
-UPDCIT	crc.c	39;"	d	file:
-UPTIME_CMD	unixsock_server.c	93;"	d	file:
-URECORD_H	modules/usrloc/urecord.h	36;"	d
-URGENT_STR	modules/cpl-c/CPL_tree.h	129;"	d
-URGENT_STR_LEN	modules/cpl-c/CPL_tree.h	130;"	d
-URGENT_VAL	modules/cpl-c/CPL_tree.h	128;"	d
-URI	cfg.tab.c	/^     URI = 296,$/;"	e	enum:yytokentype	file:
-URI	cfg.tab.c	238;"	d	file:
-URI	cfg.tab.h	/^     URI = 296,$/;"	e	enum:yytokentype
-URI	cfg.tab.h	214;"	d
-URIDB_MOD_H	modules/uri_db/uridb_mod.h	36;"	d
-URIHOST	cfg.tab.c	/^     URIHOST = 289,$/;"	e	enum:yytokentype	file:
-URIHOST	cfg.tab.c	231;"	d	file:
-URIHOST	cfg.tab.h	/^     URIHOST = 289,$/;"	e	enum:yytokentype
-URIHOST	cfg.tab.h	207;"	d
-URIHOST_ST	route_struct.h	/^		EXPR_ST, ACTIONS_ST, CMDF_ST, MODFIXUP_ST, URIHOST_ST, URIPORT_ST,$/;"	e
-URIPORT	cfg.tab.c	/^     URIPORT = 290,$/;"	e	enum:yytokentype	file:
-URIPORT	cfg.tab.c	232;"	d	file:
-URIPORT	cfg.tab.h	/^     URIPORT = 290,$/;"	e	enum:yytokentype
-URIPORT	cfg.tab.h	208;"	d
-URIPORT_ST	route_struct.h	/^		EXPR_ST, ACTIONS_ST, CMDF_ST, MODFIXUP_ST, URIHOST_ST, URIPORT_ST,$/;"	e
-URIRAD_MOD_H	modules/uri_radius/urirad_mod.h	35;"	d
-URI_ENCLOSED	parser/parse_to.c	/^	S_URI_ENCLOSED, URI_ENCLOSED, E_URI_ENCLOSED,$/;"	e	file:
-URI_MOD_H	modules/uri/uri_mod.h	36;"	d
-URI_O	route_struct.h	/^enum { METHOD_O=1, URI_O, FROM_URI_O, TO_URI_O, SRCIP_O, SRCPORT_O,$/;"	e
-URI_OR_TOKEN	parser/parse_to.c	/^	URI_OR_TOKEN, MAYBE_URI_END, END, F_CR, F_LF, F_CRLF$/;"	e	file:
-URI_START	modules/pa/watcher.c	565;"	d	file:
-URI_START_L	modules/pa/watcher.c	566;"	d	file:
-URI_TABLE	modules/uri_db/uridb_mod.c	66;"	d	file:
-URI_TABLE_LEN	modules/uri_db/uridb_mod.c	67;"	d	file:
-URI_TABLE_VERSION	modules/uri_db/uridb_mod.c	58;"	d	file:
-URI_USER_COL	modules/uri_db/uridb_mod.c	75;"	d	file:
-URI_USER_COL_LEN	modules/uri_db/uridb_mod.c	76;"	d	file:
-URL	modules/cpl/jcpli.h	/^	char *URL;$/;"	m	struct:_Location
-URL_ATTR	modules/cpl-c/CPL_tree.h	140;"	d
-URL_MAILTO_LEN	modules/cpl-c/CPL_tree.h	198;"	d
-URL_MAILTO_STR	modules/cpl-c/CPL_tree.h	197;"	d
-USED_MEM	modules/sms/libsms_sms.h	35;"	d
-USER	cfg.tab.c	/^     USER = 339,$/;"	e	enum:yytokentype	file:
-USER	cfg.tab.c	281;"	d	file:
-USER	cfg.tab.h	/^     USER = 339,$/;"	e	enum:yytokentype
-USER	cfg.tab.h	257;"	d
-USERLIST_ETAG	modules/pa/location.c	75;"	d	file:
-USERLIST_ETAG_L	modules/pa/location.c	76;"	d	file:
-USERLIST_START	modules/pa/location.c	73;"	d	file:
-USERLIST_START_L	modules/pa/location.c	74;"	d	file:
-USER_AGENT	config.h	76;"	d
-USER_AGENT_COL	modules/usrloc/ul_mod.c	70;"	d	file:
-USER_AGENT_LEN	config.h	78;"	d
-USER_AGENT_VAL	modules/cpl-c/CPL_tree.h	90;"	d
-USER_COL	modules/auth_db/authdb_mod.c	84;"	d	file:
-USER_COL	modules/group/group_mod.c	80;"	d	file:
-USER_COL	modules/uri_db/uridb_mod.c	69;"	d	file:
-USER_COL	modules/usrloc/ul_mod.c	60;"	d	file:
-USER_COL_LEN	modules/auth_db/authdb_mod.c	85;"	d	file:
-USER_COL_LEN	modules/group/group_mod.c	81;"	d	file:
-USER_COL_LEN	modules/uri_db/uridb_mod.c	70;"	d	file:
-USER_END	modules/pa/location.c	80;"	d	file:
-USER_END_L	modules/pa/location.c	81;"	d	file:
-USER_ETAG	modules/pa/location.c	82;"	d	file:
-USER_ETAG_L	modules/pa/location.c	83;"	d	file:
-USER_START	modules/pa/location.c	78;"	d	file:
-USER_START_L	modules/pa/location.c	79;"	d	file:
-USER_VAL	modules/cpl-c/CPL_tree.h	76;"	d
-USE_FUNC_PARAM	sr_module.h	62;"	d
-USE_GMAKE	freebsd/Makefile	/^USE_GMAKE= yes$/;"	m
-USE_GMAKE	netbsd/Makefile	/^USE_GMAKE= yes     $/;"	m
-USE_GMAKE	openbsd/Makefile	/^USE_GMAKE= yes$/;"	m
-USE_IPV6_STR	version.h	44;"	d
-USE_IPV6_STR	version.h	46;"	d
-USE_MCAST_STR	version.h	69;"	d
-USE_MCAST_STR	version.h	71;"	d
-USE_MEM	md5.c	35;"	d	file:
-USE_POSIX_SEM_STR	version.h	172;"	d
-USE_POSIX_SEM_STR	version.h	174;"	d
-USE_PTHREAD_MUTEX_STR	version.h	166;"	d
-USE_PTHREAD_MUTEX_STR	version.h	168;"	d
-USE_SHM_MEM_STR	version.h	130;"	d
-USE_SHM_MEM_STR	version.h	132;"	d
-USE_SYSV_SEM_STR	version.h	178;"	d
-USE_SYSV_SEM_STR	version.h	180;"	d
-USE_TCP_STR	version.h	50;"	d
-USE_TCP_STR	version.h	52;"	d
-USE_TLS_STR	version.h	56;"	d
-USE_TLS_STR	version.h	58;"	d
-USE_YWEEK_W	modules/cpl-c/cpl_time.c	96;"	d	file:
-USE_YWEEK_W	modules/cpl-c/cpl_time.h	51;"	d
-USRHOST_ERR	modules/cpl-c/cpl_loader.c	249;"	d	file:
-USRLOC_H	modules/usrloc/usrloc.h	32;"	d
-UTILS_H	modules/mangler/utils.h	35;"	d
-UTILS_H	modules/mysql/utils.h	32;"	d
-UTIME_H	modules/usrloc/utime.h	32;"	d
-UseMediaProxy	modules/mediaproxy/mediaproxy.c	/^UseMediaProxy(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-VALID_CONTACT	modules/usrloc/ucontact.h	91;"	d
-VALUE_ATTR	modules/cpl-c/CPL_tree.h	155;"	d
-VAL_BITMAP	db/db_val.h	81;"	d
-VAL_BLOB	db/db_val.h	80;"	d
-VAL_DOUBLE	db/db_val.h	76;"	d
-VAL_H	modules/mysql/val.h	29;"	d
-VAL_INT	db/db_val.h	75;"	d
-VAL_NULL	db/db_val.h	74;"	d
-VAL_STR	db/db_val.h	79;"	d
-VAL_STRING	db/db_val.h	78;"	d
-VAL_TIME	db/db_val.h	77;"	d
-VAL_TYPE	db/db_val.h	73;"	d
-VARBITOID	modules/postgres/pg_type.h	80;"	d
-VARCHAR	modules/pdt/doc/admin.sql	/^	name VARCHAR(20) NOT NULL PRIMARY KEY,$/;"	F
-VARCHAR	modules/pdt/doc/admin.sql	/^	username VARCHAR(50) NOT NULL,$/;"	F
-VARCHAROID	modules/postgres/pg_type.h	72;"	d
-VAR_CALLID	modules/exec/exec_hf.h	67;"	d
-VAR_CALLID_LEN	modules/exec/exec_hf.h	68;"	d
-VAR_CLEN	modules/exec/exec_hf.h	71;"	d
-VAR_CLEN_LEN	modules/exec/exec_hf.h	72;"	d
-VAR_CONTACT	modules/exec/exec_hf.h	73;"	d
-VAR_CONTACT_LEN	modules/exec/exec_hf.h	74;"	d
-VAR_CTYPE	modules/exec/exec_hf.h	63;"	d
-VAR_CTYPE_LEN	modules/exec/exec_hf.h	64;"	d
-VAR_EVENT	modules/exec/exec_hf.h	77;"	d
-VAR_EVENT_LEN	modules/exec/exec_hf.h	78;"	d
-VAR_FROM	modules/exec/exec_hf.h	65;"	d
-VAR_FROM_LEN	modules/exec/exec_hf.h	66;"	d
-VAR_SUPPORTED	modules/exec/exec_hf.h	69;"	d
-VAR_SUPPORTED_LEN	modules/exec/exec_hf.h	70;"	d
-VAR_TO	modules/exec/exec_hf.h	75;"	d
-VAR_TO_LEN	modules/exec/exec_hf.h	76;"	d
-VAR_VIA	modules/exec/exec_hf.h	61;"	d
-VAR_VIA_LEN	modules/exec/exec_hf.h	62;"	d
-VA_END	modules/jabber/xode.h	49;"	d
-VA_END	modules/jabber/xode.h	57;"	d
-VA_LOCAL_DECL	modules/jabber/xode.h	47;"	d
-VA_LOCAL_DECL	modules/jabber/xode.h	55;"	d
-VA_START	modules/jabber/xode.h	48;"	d
-VA_START	modules/jabber/xode.h	56;"	d
-VER1	parser/parse_fline.c	/^       VER1, VER2, VER3, VER4, VER5, VER6, FIN_VER,$/;"	e	file:
-VER1	parser/parse_via.c	/^	VER1, VER2, FIN_VER,$/;"	e	file:
-VER1	test/via_parse.c	/^		VER1, VER2, FIN_VER,$/;"	e	file:
-VER2	parser/parse_fline.c	/^       VER1, VER2, VER3, VER4, VER5, VER6, FIN_VER,$/;"	e	file:
-VER2	parser/parse_via.c	/^	VER1, VER2, FIN_VER,$/;"	e	file:
-VER2	test/via_parse.c	/^		VER1, VER2, FIN_VER,$/;"	e	file:
-VER3	parser/parse_fline.c	/^       VER1, VER2, VER3, VER4, VER5, VER6, FIN_VER,$/;"	e	file:
-VER4	parser/parse_fline.c	/^       VER1, VER2, VER3, VER4, VER5, VER6, FIN_VER,$/;"	e	file:
-VER5	parser/parse_fline.c	/^       VER1, VER2, VER3, VER4, VER5, VER6, FIN_VER,$/;"	e	file:
-VER6	parser/parse_fline.c	/^       VER1, VER2, VER3, VER4, VER5, VER6, FIN_VER,$/;"	e	file:
-VERSION_CMD	unixsock_server.c	92;"	d	file:
-VERSION_COLUMN	config.h	197;"	d
-VERSION_TABLE	config.h	196;"	d
-VER_SIZE	modules/acc/diam_message.h	40;"	d
-VER_SIZE	modules/auth_diameter/diameter_msg.h	40;"	d
-VIA1	parser/obsolete/parse_hname.c	/^		VIA1, VIA2,$/;"	e	file:
-VIA1	parser/obsolete/strs.h	64;"	d
-VIA1	test/auto.c	/^		VIA1, VIA2,$/;"	e	file:
-VIA2	parser/obsolete/parse_hname.c	/^		VIA1, VIA2,$/;"	e	file:
-VIA2	parser/obsolete/strs.h	73;"	d
-VIA2	test/auto.c	/^		VIA1, VIA2,$/;"	e	file:
-VIA_BEGIN_STR	test/shoot2.c	34;"	d	file:
-VIA_BEGIN_STR_LEN	test/shoot2.c	35;"	d	file:
-VIa1	parser/obsolete/strs.h	63;"	d
-VIa2	parser/obsolete/strs.h	72;"	d
-VOIDOID	modules/postgres/pg_type.h	92;"	d
-VOID_CMD	modules/extcmd/extcmd_funcs.c	62;"	d	file:
-VQM_DEBUG_FRAG	mem/vq_malloc.h	67;"	d
-VQM_DEBUG_FRAG	mem/vq_malloc.h	69;"	d
-VQM_OVERHEAD	mem/vq_malloc.h	65;"	d
-VQM_OVERHEAD	mem/vq_malloc.h	70;"	d
-VQ_MALLOC_H	mem/vq_malloc.h	30;"	d
-VQ_MALLOC_STR	version.h	118;"	d
-VQ_MALLOC_STR	version.h	120;"	d
-V_CALL_CHECK	modules/acc/dict.h	81;"	d
-V_EMERGENCY_CALL	modules/acc/dict.h	82;"	d
-V_GROUP_CHECK	modules/acc/dict.h	84;"	d
-V_MAX	modules/acc/dict.h	87;"	d
-V_SIP_CALLEE_AVPS	modules/acc/dict.h	86;"	d
-V_SIP_CALLER_AVPS	modules/acc/dict.h	85;"	d
-V_SIP_SESSION	modules/acc/dict.h	83;"	d
-V_STATUS_FAILED	modules/acc/dict.h	80;"	d
-V_STATUS_START	modules/acc/dict.h	78;"	d
-V_STATUS_STOP	modules/acc/dict.h	79;"	d
-ViA1	parser/obsolete/strs.h	62;"	d
-ViA2	parser/obsolete/strs.h	71;"	d
-Via1	parser/obsolete/strs.h	61;"	d
-Via2	parser/obsolete/strs.h	70;"	d
-WARN	modules/cpl-c/cpl_log.h	46;"	d
-WARNING	msg_translator.h	44;"	d
-WARNING_LEN	msg_translator.h	45;"	d
-WARNING_PHRASE	msg_translator.h	46;"	d
-WARNING_PHRASE_LEN	msg_translator.h	47;"	d
-WARN_LEN	modules/cpl-c/cpl_log.h	47;"	d
-WATCHERINFO_ETAG	modules/pa/watcher.c	547;"	d	file:
-WATCHERINFO_ETAG_L	modules/pa/watcher.c	548;"	d	file:
-WATCHERINFO_STAG	modules/pa/watcher.c	545;"	d	file:
-WATCHERINFO_STAG_L	modules/pa/watcher.c	546;"	d	file:
-WATCHERLIST_ETAG	modules/pa/watcher.c	552;"	d	file:
-WATCHERLIST_ETAG_L	modules/pa/watcher.c	553;"	d	file:
-WATCHERLIST_START	modules/pa/watcher.c	550;"	d	file:
-WATCHERLIST_START_L	modules/pa/watcher.c	551;"	d	file:
-WATCHER_ETAG	modules/pa/watcher.c	567;"	d	file:
-WATCHER_ETAG_L	modules/pa/watcher.c	568;"	d	file:
-WATCHER_H	modules/pa/watcher.h	31;"	d
-WATCHER_START	modules/pa/watcher.c	555;"	d	file:
-WATCHER_START_L	modules/pa/watcher.c	556;"	d	file:
-WDAY_FR	modules/cpl-c/cpl_time.h	112;"	d
-WDAY_MO	modules/cpl-c/cpl_time.h	108;"	d
-WDAY_NU	modules/cpl-c/cpl_time.h	114;"	d
-WDAY_SA	modules/cpl-c/cpl_time.h	113;"	d
-WDAY_SU	modules/cpl-c/cpl_time.h	107;"	d
-WDAY_TH	modules/cpl-c/cpl_time.h	111;"	d
-WDAY_TU	modules/cpl-c/cpl_time.h	109;"	d
-WDAY_WE	modules/cpl-c/cpl_time.h	110;"	d
-WDIR	cfg.tab.c	/^     WDIR = 342,$/;"	e	enum:yytokentype	file:
-WDIR	cfg.tab.c	284;"	d	file:
-WDIR	cfg.tab.h	/^     WDIR = 342,$/;"	e	enum:yytokentype
-WDIR	cfg.tab.h	260;"	d
-WE_APPROVED	modules/pa/watcher.h	/^	WE_APPROVED = 1,$/;"	e	enum:watcher_event
-WE_DEACTIVATED	modules/pa/watcher.h	/^	WE_DEACTIVATED = 2,$/;"	e	enum:watcher_event
-WE_GIVEUP	modules/pa/watcher.h	/^	WE_GIVEUP = 6,$/;"	e	enum:watcher_event
-WE_NORESOURCE	modules/pa/watcher.h	/^	WE_NORESOURCE = 7$/;"	e	enum:watcher_event
-WE_PROBATION	modules/pa/watcher.h	/^	WE_PROBATION = 3,$/;"	e	enum:watcher_event
-WE_REJECTED	modules/pa/watcher.h	/^	WE_REJECTED = 4,$/;"	e	enum:watcher_event
-WE_SUBSCRIBE	modules/pa/watcher.h	/^	WE_SUBSCRIBE = 0,$/;"	e	enum:watcher_event
-WE_TIMEOUT	modules/pa/watcher.h	/^	WE_TIMEOUT = 5,$/;"	e	enum:watcher_event
-WFLAG_SUBSCRIPTION_CHANGED	modules/pa/watcher.h	/^	WFLAG_SUBSCRIPTION_CHANGED=1$/;"	e	enum:wflags
-WHICH_CMD	unixsock_server.c	94;"	d	file:
-WIDE_INT	modules/jabber/xsnprintf.c	251;"	d	file:
-WINFO_TEXT	modules/pa/notify.c	59;"	d	file:
-WINFO_TEXT_L	modules/pa/notify.c	60;"	d	file:
-WKST_ATTR	modules/cpl-c/CPL_tree.h	117;"	d
-WRITE_BACK	modules/usrloc/ul_mod.h	50;"	d
-WRITE_THROUGH	modules/usrloc/ul_mod.h	49;"	d
-WRKSRC	freebsd/Makefile	/^WRKSRC= ${WRKDIR}\/${PORTNAME}-${PORTVERSION}$/;"	m
-WRKSRC	netbsd/Makefile	/^WRKSRC= ${WRKDIR}\/${PORTNAME}-${PORTVERSION}$/;"	m
-WRKSRC	openbsd/Makefile	/^WRKSRC= ${WRKDIR}\/${PORTNAME}-${PORTVERSION}$/;"	m
-WS_ACTIVE	modules/pa/watcher.h	/^	WS_ACTIVE = 1,$/;"	e	enum:watcher_status
-WS_PENDING	modules/pa/watcher.h	/^	WS_PENDING = 0,$/;"	e	enum:watcher_status
-WS_TERMINATED	modules/pa/watcher.h	/^	WS_TERMINATED = 3$/;"	e	enum:watcher_status
-WS_WAITING	modules/pa/watcher.h	/^	WS_WAITING = 2,$/;"	e	enum:watcher_status
-WT_TIMER_LIST	modules/tm/timer.h	/^	WT_TIMER_LIST,$/;"	e	enum:lists
-WT_TIME_OUT	modules/tm/config.h	54;"	d
-WWW_AUTH_CASE	parser/case_www.h	54;"	d
-WWW_AUTH_CHALLENGE	modules/auth/challenge.c	57;"	d	file:
-WWW_AUTH_CHALLENGE	modules/auth_diameter/defs.h	32;"	d
-WWW_AUTH_CHALLENGE_LEN	modules/auth_diameter/defs.h	29;"	d
-W_AV	modules/exec/exec_hf.h	/^enum wrapper_type { W_HF=1, W_AV };$/;"	e	enum:wrapper_type
-W_HF	modules/exec/exec_hf.h	/^enum wrapper_type { W_HF=1, W_AV };$/;"	e	enum:wrapper_type
-XCAP_CHANGE_TEXT	modules/pa/notify.c	62;"	d	file:
-XCAP_CHANGE_TEXT_L	modules/pa/notify.c	63;"	d	file:
-XIDOID	modules/postgres/pg_type.h	50;"	d
-XJAB_RESOURCE	modules/jabber/xjab_worker.c	75;"	d	file:
-XJ_ADDRTR_CON	modules/jabber/xjab_worker.c	80;"	d	file:
-XJ_ADDRTR_J2S	modules/jabber/xjab_worker.c	79;"	d	file:
-XJ_ADDRTR_NUL	modules/jabber/xjab_worker.c	77;"	d	file:
-XJ_ADDRTR_S2J	modules/jabber/xjab_worker.c	78;"	d	file:
-XJ_AIM_LEN	modules/jabber/xjab_jcon.h	50;"	d
-XJ_AIM_NAME	modules/jabber/xjab_jcon.h	49;"	d
-XJ_DEF_JDELIM	modules/jabber/xjab_wlist.c	51;"	d	file:
-XJ_DEL_WATCHER	modules/jabber/xjab_base.h	53;"	d
-XJ_DMSG_ERR_DISCONNECTED	modules/jabber/xjab_dmsg.h	61;"	d
-XJ_DMSG_ERR_JAUTH	modules/jabber/xjab_dmsg.h	47;"	d
-XJ_DMSG_ERR_JCONFNICK	modules/jabber/xjab_dmsg.h	65;"	d
-XJ_DMSG_ERR_JCONFREFUSED	modules/jabber/xjab_dmsg.h	67;"	d
-XJ_DMSG_ERR_JGWFORB	modules/jabber/xjab_dmsg.h	43;"	d
-XJ_DMSG_ERR_JGWFULL	modules/jabber/xjab_dmsg.h	49;"	d
-XJ_DMSG_ERR_JOINJCONF	modules/jabber/xjab_dmsg.h	51;"	d
-XJ_DMSG_ERR_NEWJCONF	modules/jabber/xjab_dmsg.h	53;"	d
-XJ_DMSG_ERR_NOJSRV	modules/jabber/xjab_dmsg.h	45;"	d
-XJ_DMSG_ERR_NOREGIM	modules/jabber/xjab_dmsg.h	59;"	d
-XJ_DMSG_ERR_NOTJCONF	modules/jabber/xjab_dmsg.h	39;"	d
-XJ_DMSG_ERR_SENDIM	modules/jabber/xjab_dmsg.h	37;"	d
-XJ_DMSG_ERR_SENDJMSG	modules/jabber/xjab_dmsg.h	55;"	d
-XJ_DMSG_ERR_STOREJMSG	modules/jabber/xjab_dmsg.h	57;"	d
-XJ_DMSG_INF_DISCONNECTED	modules/jabber/xjab_dmsg.h	35;"	d
-XJ_DMSG_INF_JCONFEXIT	modules/jabber/xjab_dmsg.h	41;"	d
-XJ_DMSG_INF_JOFFLINE	modules/jabber/xjab_dmsg.h	63;"	d
-XJ_EXIT_JCONF	modules/jabber/xjab_base.h	49;"	d
-XJ_FLAG_CLOSE	modules/jabber/xjab_base.h	56;"	d
-XJ_FLAG_OPEN	modules/jabber/xjab_base.h	55;"	d
-XJ_GO_OFFLINE	modules/jabber/xjab_base.h	51;"	d
-XJ_GO_ONLINE	modules/jabber/xjab_base.h	50;"	d
-XJ_ICQ_LEN	modules/jabber/xjab_jcon.h	52;"	d
-XJ_ICQ_NAME	modules/jabber/xjab_jcon.h	51;"	d
-XJ_JCMD_SUBSCRIBE	modules/jabber/xjab_jcon.h	62;"	d
-XJ_JCMD_UNSUBSCRIBE	modules/jabber/xjab_jcon.h	63;"	d
-XJ_JCONF_AUTH	modules/jabber/xjab_jconf.h	40;"	d
-XJ_JCONF_NULL	modules/jabber/xjab_jconf.h	37;"	d
-XJ_JCONF_READY	modules/jabber/xjab_jconf.h	38;"	d
-XJ_JCONF_WAITING	modules/jabber/xjab_jconf.h	39;"	d
-XJ_JMSG_CHAT	modules/jabber/xjab_jcon.h	59;"	d
-XJ_JMSG_GROUPCHAT	modules/jabber/xjab_jcon.h	60;"	d
-XJ_JMSG_NORMAL	modules/jabber/xjab_jcon.h	58;"	d
-XJ_JOIN_JCONF	modules/jabber/xjab_base.h	48;"	d
-XJ_MAX_JCONF	modules/jabber/xjab_jcon.c	60;"	d	file:
-XJ_MSG_POOL_SIZE	modules/jabber/xjab_worker.c	82;"	d	file:
-XJ_MSN_LEN	modules/jabber/xjab_jcon.h	54;"	d
-XJ_MSN_NAME	modules/jabber/xjab_jcon.h	53;"	d
-XJ_NET_AIM	modules/jabber/xjab_jcon.h	44;"	d
-XJ_NET_ALL	modules/jabber/xjab_jcon.h	42;"	d
-XJ_NET_ICQ	modules/jabber/xjab_jcon.h	45;"	d
-XJ_NET_JAB	modules/jabber/xjab_jcon.h	43;"	d
-XJ_NET_MSN	modules/jabber/xjab_jcon.h	46;"	d
-XJ_NET_NUL	modules/jabber/xjab_jcon.h	41;"	d
-XJ_NET_YAH	modules/jabber/xjab_jcon.h	47;"	d
-XJ_NO_SCRIPT_F	modules/jabber/xjab_load.h	36;"	d
-XJ_NULL	modules/jabber/xjab_base.h	46;"	d
-XJ_PRES_STATUS_NULL	modules/jabber/xjab_presence.h	43;"	d
-XJ_PRES_STATUS_SUBS	modules/jabber/xjab_presence.h	44;"	d
-XJ_PRES_STATUS_WAIT	modules/jabber/xjab_presence.h	45;"	d
-XJ_PS_CHECK	modules/jabber/xjab_presence.h	37;"	d
-XJ_PS_OFFLINE	modules/jabber/xjab_presence.h	38;"	d
-XJ_PS_ONLINE	modules/jabber/xjab_presence.h	39;"	d
-XJ_PS_REFUSED	modules/jabber/xjab_presence.h	41;"	d
-XJ_PS_TERMINATED	modules/jabber/xjab_presence.h	40;"	d
-XJ_REG_WATCHER	modules/jabber/xjab_base.h	52;"	d
-XJ_SEND_MESSAGE	modules/jabber/xjab_base.h	47;"	d
-XJ_YAH_LEN	modules/jabber/xjab_jcon.h	56;"	d
-XJ_YAH_NAME	modules/jabber/xjab_jcon.h	55;"	d
-XML_VERSION	modules/pa/location.c	65;"	d	file:
-XML_VERSION	modules/pa/pidf.c	52;"	d	file:
-XML_VERSION	modules/pa/watcher.c	542;"	d	file:
-XML_VERSION	modules/pa/xpidf.c	45;"	d	file:
-XML_VERSION_L	modules/pa/location.c	66;"	d	file:
-XML_VERSION_L	modules/pa/pidf.c	53;"	d	file:
-XML_VERSION_L	modules/pa/watcher.c	543;"	d	file:
-XML_VERSION_L	modules/pa/xpidf.c	46;"	d	file:
-XODE_STREAM_CLOSE	modules/jabber/xode.h	274;"	d
-XODE_STREAM_ERROR	modules/jabber/xode.h	275;"	d
-XODE_STREAM_MAXDEPTH	modules/jabber/xode.h	270;"	d
-XODE_STREAM_MAXNODE	modules/jabber/xode.h	269;"	d
-XODE_STREAM_NODE	modules/jabber/xode.h	273;"	d
-XODE_STREAM_ROOT	modules/jabber/xode.h	272;"	d
-XODE_TYPE_ATTRIB	modules/jabber/xode.h	175;"	d
-XODE_TYPE_CDATA	modules/jabber/xode.h	176;"	d
-XODE_TYPE_LAST	modules/jabber/xode.h	178;"	d
-XODE_TYPE_TAG	modules/jabber/xode.h	174;"	d
-XODE_TYPE_UNDEF	modules/jabber/xode.h	179;"	d
-XPIDF_DTD	modules/pa/xpidf.c	60;"	d	file:
-XPIDF_DTD_L	modules/pa/xpidf.c	61;"	d	file:
-XPIDF_H	modules/pa/xpidf.h	31;"	d
-XPIDF_ST_CLOSED	modules/pa/xpidf.h	/^	XPIDF_ST_CLOSED$/;"	e	enum:xpidf_status
-XPIDF_ST_OPEN	modules/pa/xpidf.h	/^	XPIDF_ST_OPEN,$/;"	e	enum:xpidf_status
-X_ETAG	modules/pa/pidf.c	139;"	d	file:
-X_ETAG_L	modules/pa/pidf.c	140;"	d	file:
-X_STAG	modules/pa/pidf.c	136;"	d	file:
-X_STAG_L	modules/pa/pidf.c	137;"	d	file:
-YES	modules/jabber/xsnprintf.c	/^    NO = 0, YES = 1$/;"	e	file:
-YES_VAL	modules/cpl-c/CPL_tree.h	144;"	d
-YYABORT	cfg.tab.c	1558;"	d	file:
-YYACCEPT	cfg.tab.c	1557;"	d	file:
-YYBACKUP	cfg.tab.c	1570;"	d	file:
-YYBISON	cfg.tab.c	37;"	d	file:
-YYCOPY	cfg.tab.c	502;"	d	file:
-YYCOPY	cfg.tab.c	505;"	d	file:
-YYDEBUG	cfg.tab.c	405;"	d	file:
-YYDPRINTF	cfg.tab.c	1650;"	d	file:
-YYDPRINTF	cfg.tab.c	1728;"	d	file:
-YYEMPTY	cfg.tab.c	1554;"	d	file:
-YYEOF	cfg.tab.c	1555;"	d	file:
-YYERRCODE	cfg.tab.c	1589;"	d	file:
-YYERROR	cfg.tab.c	1559;"	d	file:
-YYERROR_VERBOSE	cfg.tab.c	410;"	d	file:
-YYERROR_VERBOSE	cfg.tab.c	411;"	d	file:
-YYERROR_VERBOSE	cfg.tab.c	413;"	d	file:
-YYFAIL	cfg.tab.c	1566;"	d	file:
-YYFINAL	cfg.tab.c	541;"	d	file:
-YYFPRINTF	cfg.tab.c	1647;"	d	file:
-YYFREE	cfg.tab.c	446;"	d	file:
-YYINITDEPTH	cfg.tab.c	1737;"	d	file:
-YYLAST	cfg.tab.c	543;"	d	file:
-YYLEX	cfg.tab.c	1637;"	d	file:
-YYLEX	cfg.tab.c	1639;"	d	file:
-YYLLOC_DEFAULT	cfg.tab.c	1598;"	d	file:
-YYLSP_NEEDED	cfg.tab.c	46;"	d	file:
-YYMALLOC	cfg.tab.c	449;"	d	file:
-YYMAXDEPTH	cfg.tab.c	1748;"	d	file:
-YYMAXUTOK	cfg.tab.c	556;"	d	file:
-YYNNTS	cfg.tab.c	548;"	d	file:
-YYNRULES	cfg.tab.c	550;"	d	file:
-YYNSTATES	cfg.tab.c	552;"	d	file:
-YYNTOKENS	cfg.tab.c	546;"	d	file:
-YYPACT_NINF	cfg.tab.c	1101;"	d	file:
-YYPOPSTACK	cfg.tab.c	1957;"	d	file:
-YYPURE	cfg.tab.c	43;"	d	file:
-YYRECOVERING	cfg.tab.c	1568;"	d	file:
-YYRHSLOC	cfg.tab.c	1596;"	d	file:
-YYSIZE_T	cfg.tab.c	1537;"	d	file:
-YYSIZE_T	cfg.tab.c	1540;"	d	file:
-YYSIZE_T	cfg.tab.c	1545;"	d	file:
-YYSIZE_T	cfg.tab.c	1549;"	d	file:
-YYSIZE_T	cfg.tab.c	470;"	d	file:
-YYSKELETON_NAME	cfg.tab.c	40;"	d	file:
-YYSTACK_ALLOC	cfg.tab.c	457;"	d	file:
-YYSTACK_ALLOC	cfg.tab.c	459;"	d	file:
-YYSTACK_ALLOC	cfg.tab.c	472;"	d	file:
-YYSTACK_BYTES	cfg.tab.c	494;"	d	file:
-YYSTACK_FREE	cfg.tab.c	466;"	d	file:
-YYSTACK_FREE	cfg.tab.c	473;"	d	file:
-YYSTACK_GAP_MAXIMUM	cfg.tab.c	490;"	d	file:
-YYSTACK_RELOCATE	cfg.tab.c	2049;"	d	file:
-YYSTACK_RELOCATE	cfg.tab.c	521;"	d	file:
-YYSTATE	lex.yy.c	122;"	d	file:
-YYSTYPE	cfg.tab.c	/^typedef union YYSTYPE {$/;"	u	file:
-YYSTYPE	cfg.tab.c	/^} YYSTYPE;$/;"	t	file:
-YYSTYPE	cfg.tab.h	/^typedef union YYSTYPE {$/;"	u
-YYSTYPE	cfg.tab.h	/^} YYSTYPE;$/;"	t
-YYSTYPE_IS_DECLARED	cfg.tab.c	431;"	d	file:
-YYSTYPE_IS_DECLARED	cfg.tab.h	337;"	d
-YYSTYPE_IS_TRIVIAL	cfg.tab.c	432;"	d	file:
-YYSTYPE_IS_TRIVIAL	cfg.tab.h	338;"	d
-YYTABLES_NAME	lex.yy.c	3369;"	d	file:
-YYTABLE_NINF	cfg.tab.c	1195;"	d	file:
-YYTERROR	cfg.tab.c	1588;"	d	file:
-YYTOKENTYPE	cfg.tab.c	52;"	d	file:
-YYTOKENTYPE	cfg.tab.h	28;"	d
-YYTRANSLATE	cfg.tab.c	558;"	d	file:
-YYUNDEFTOK	cfg.tab.c	555;"	d	file:
-YY_AT_BOL	lex.yy.c	322;"	d	file:
-YY_BREAK	lex.yy.c	1375;"	d	file:
-YY_BUFFER_EOF_PENDING	lex.yy.c	238;"	d	file:
-YY_BUFFER_NEW	lex.yy.c	226;"	d	file:
-YY_BUFFER_NORMAL	lex.yy.c	227;"	d	file:
-YY_BUFFER_STATE	lex.yy.c	/^typedef struct yy_buffer_state *YY_BUFFER_STATE;$/;"	t	file:
-YY_BUF_SIZE	lex.yy.c	134;"	d	file:
-YY_CHAR	lex.yy.c	/^typedef unsigned char YY_CHAR;$/;"	t	file:
-YY_CURRENT_BUFFER	lex.yy.c	254;"	d	file:
-YY_CURRENT_BUFFER_LVALUE	lex.yy.c	261;"	d	file:
-YY_DECL	lex.yy.c	1363;"	d	file:
-YY_DECL	lex.yy.c	3381;"	d	file:
-YY_DECL_IS_OURS	lex.yy.c	1359;"	d	file:
-YY_DECL_IS_OURS	lex.yy.c	3380;"	d	file:
-YY_DO_BEFORE_ACTION	lex.yy.c	3377;"	d	file:
-YY_DO_BEFORE_ACTION	lex.yy.c	347;"	d	file:
-YY_END_OF_BUFFER	lex.yy.c	356;"	d	file:
-YY_END_OF_BUFFER_CHAR	lex.yy.c	130;"	d	file:
-YY_EXIT_FAILURE	lex.yy.c	3199;"	d	file:
-YY_EXTRA_TYPE	lex.yy.c	1251;"	d	file:
-YY_FATAL_ERROR	lex.yy.c	1350;"	d	file:
-YY_FLEX_MAJOR_VERSION	lex.yy.c	9;"	d	file:
-YY_FLEX_MINOR_VERSION	lex.yy.c	10;"	d	file:
-YY_FLEX_SUBMINOR_VERSION	lex.yy.c	11;"	d	file:
-YY_FLUSH_BUFFER	lex.yy.c	290;"	d	file:
-YY_FLUSH_BUFFER	lex.yy.c	3372;"	d	file:
-YY_INPUT	lex.yy.c	1303;"	d	file:
-YY_INT_ALIGNED	lex.yy.c	4;"	d	file:
-YY_LESS_LINENO	lex.yy.c	150;"	d	file:
-YY_LOCATION_PRINT	cfg.tab.c	1624;"	d	file:
-YY_LOCATION_PRINT	cfg.tab.c	1629;"	d	file:
-YY_MORE_ADJ	lex.yy.c	1127;"	d	file:
-YY_NEW_FILE	lex.yy.c	128;"	d	file:
-YY_NEW_FILE	lex.yy.c	3371;"	d	file:
-YY_NULL	lex.yy.c	102;"	d	file:
-YY_NUM_RULES	lex.yy.c	355;"	d	file:
-YY_READ_BUF_SIZE	lex.yy.c	1288;"	d	file:
-YY_REDUCE_PRINT	cfg.tab.c	1718;"	d	file:
-YY_REDUCE_PRINT	cfg.tab.c	1731;"	d	file:
-YY_RESTORE_YY_MORE_OFFSET	lex.yy.c	1128;"	d	file:
-YY_RULE_SETUP	lex.yy.c	1378;"	d	file:
-YY_SC_TO_UI	lex.yy.c	109;"	d	file:
-YY_STACK_PRINT	cfg.tab.c	1688;"	d	file:
-YY_STACK_PRINT	cfg.tab.c	1730;"	d	file:
-YY_START	lex.yy.c	121;"	d	file:
-YY_START_STACK_INCR	lex.yy.c	1345;"	d	file:
-YY_STATE_EOF	lex.yy.c	125;"	d	file:
-YY_STRUCT_YY_BUFFER_STATE	lex.yy.c	179;"	d	file:
-YY_SYMBOL_PRINT	cfg.tab.c	1656;"	d	file:
-YY_SYMBOL_PRINT	cfg.tab.c	1729;"	d	file:
-YY_TYPEDEF_YY_BUFFER_STATE	lex.yy.c	138;"	d	file:
-YY_TYPEDEF_YY_SIZE_T	lex.yy.c	174;"	d	file:
-YY_USER_ACTION	lex.yy.c	1370;"	d	file:
-YY_USE_CONST	lex.yy.c	84;"	d	file:
-YY_USE_CONST	lex.yy.c	90;"	d	file:
-Y_ETAG	modules/pa/pidf.c	145;"	d	file:
-Y_ETAG_L	modules/pa/pidf.c	146;"	d	file:
-Y_STAG	modules/pa/pidf.c	142;"	d	file:
-Y_STAG_L	modules/pa/pidf.c	143;"	d	file:
-ZSW	ut.h	62;"	d
-_AAA_DIAMETER_MSG_H	modules/acc/diam_message.h	28;"	d
-_AAA_DIAMETER_MSG_H	modules/auth_diameter/diameter_msg.h	28;"	d
-_ACC_DEFS_H	modules/acc/defs.h	34;"	d
-_ACC_H	modules/acc/acc.h	35;"	d
-_ACC_MOD_H	modules/acc/acc_mod.h	38;"	d
-_ALLOCA_H	cfg.tab.c	383;"	d	file:
-_AVPOPS_PARSE_H_	modules/avpops/avpops_parse.h	34;"	d
-_AVP_OPS_DB_H_	modules/avpops/avpops_db.h	36;"	d
-_AVP_OPS_IMPL_H_	modules/avpops/avpops_impl.h	35;"	d
-_CANCEL_H	modules/tm/t_cancel.h	35;"	d
-_COMP_DEFS_H	comp_defs.h	38;"	d
-_CPL_CPL_SIG_H_	modules/cpl-c/cpl_sig.h	30;"	d
-_CPL_C_ENV_H	modules/cpl-c/cpl_env.h	32;"	d
-_CPL_DB_H	modules/cpl-c/cpl_db.h	29;"	d
-_CPL_LOADER_H	modules/cpl-c/cpl_loader.h	34;"	d
-_CPL_LOC_SET_H_	modules/cpl-c/loc_set.h	30;"	d
-_CPL_LOG_H_	modules/cpl-c/cpl_log.h	36;"	d
-_CPL_NONSIG_H_	modules/cpl-c/cpl_nonsig.h	33;"	d
-_CPL_PARSER_H	modules/cpl-c/cpl_parser.h	29;"	d
-_CPL_RUN_H	modules/cpl-c/cpl_run.h	29;"	d
-_CPL_SUB_LIST_H	modules/cpl-c/sub_list.h	29;"	d
-_CPL_TIME_H_	modules/cpl-c/cpl_time.h	35;"	d
-_CPL_TREE_DEFINITION_H	modules/cpl-c/CPL_tree.h	29;"	d
-_CPL_UTILS_H	modules/cpl-c/cpl_utils.h	35;"	d
-_CRC_H_	crc.h	4;"	d
-_CRC_H_	hash_func.c	31;"	d	file:
-_D	modules/cpl-c/cpl_time.c	321;"	d	file:
-_DBG_WS	udp_server.c	75;"	d	file:
-_DBG_WS_LEN	udp_server.c	74;"	d	file:
-_DBTEXT_H_	modules/dbtext/dbtext.h	39;"	d
-_DBT_API_H_	modules/dbtext/dbt_api.h	39;"	d
-_DBT_LIB_H_	modules/dbtext/dbt_lib.h	39;"	d
-_DBT_RES_H_	modules/dbtext/dbt_res.h	39;"	d
-_DBT_UTIL_H_	modules/dbtext/dbt_util.h	39;"	d
-_DICT_H	modules/acc/dict.h	35;"	d
-_DISPATCH_H_	modules/dispatcher/dispatch.h	39;"	d
-_DOMAINS_H_	modules/pdt/domains.h	27;"	d
-_DSET_H	dset.h	29;"	d
-_EXEC_CONFIG_H	modules/exec/config.h	31;"	d
-_EXEC_H	modules/exec/exec.h	31;"	d
-_EXEC_HF_H	modules/exec/exec_hf.h	31;"	d
-_FIFO_H	modules/domain/fifo.h	32;"	d
-_FIFO_SERVER_H	fifo_server.h	31;"	d
-_FIX_LUMPS_H	modules/tm/fix_lumps.h	45;"	d
-_FLAGS_H	flags.h	31;"	d
-_FLATSTORE_H	modules/flatstore/flatstore.h	37;"	d
-_FLAT_CON_H	modules/flatstore/flat_con.h	31;"	d
-_FLAT_FIFO_H	modules/flatstore/flat_fifo.h	31;"	d
-_FLAT_ID_H	modules/flatstore/flat_id.h	31;"	d
-_FLAT_POOL_H	modules/flatstore/flat_pool.h	31;"	d
-_GNU_SOURCE	modules/postgres/db_utils.c	39;"	d	file:
-_HASH_H	hash_func.h	31;"	d
-_HASH_H	modules/domain/hash.h	32;"	d
-_HOOKS_H	modules/tm/t_hooks.h	38;"	d
-_H_EXTCMD_CLIENTS	modules/extcmd/clients.h	30;"	d
-_H_EXTERNAL_COMMANDS	modules/extcmd/extcmd_funcs.h	30;"	d
-_H_SMS_REPORT_DEF	modules/sms/sms_report.h	29;"	d
-_H_TABLE_H	modules/tm/h_table.h	44;"	d
-_ID1	parser/obsolete/strs.h	139;"	d
-_ID2	parser/obsolete/strs.h	144;"	d
-_ID_CASE	parser/case_remo.h	34;"	d
-_IP_TREE_H	modules/pike/ip_tree.h	37;"	d
-_IS_SET	modules/cpl-c/cpl_time.c	950;"	d	file:
-_Id1	parser/obsolete/strs.h	138;"	d
-_Id2	parser/obsolete/strs.h	143;"	d
-_JCPLI_H	modules/cpl/jcpli.h	30;"	d
-_KILL_H	modules/exec/kill.h	32;"	d
-_LIBSMS_MODEM_H	modules/sms/libsms_modem.h	16;"	d
-_LIBSMS_SMS_H	modules/sms/libsms_sms.h	30;"	d
-_Location	modules/cpl/jcpli.h	/^typedef struct _Location$/;"	s
-_MD5UTILS_H	md5utils.h	31;"	d
-_MF_FUNCS_H	modules/maxfwd/mf_funcs.h	30;"	d
-_MODULES_PA_LOCATION_H_	modules/pa/location.h	2;"	d
-_MSFUNCS_H_	modules/msilo/msfuncs.h	29;"	d
-_MSGBUILDER_H	modules/tm/t_msgbuilder.h	35;"	d
-_MSG_TRANSLATOR_H	msg_translator.h	38;"	d
-_MS_MSG_LIST_H_	modules/msilo/ms_msg_list.h	36;"	d
-_MY_POPEN_H	modules/ext/my_exec.h	33;"	d
-_MY_POPEN_NO_INLINE	modules/ext/my_exec.c	39;"	d	file:
-_M_CALLOC	modules/jabber/mdefines.h	43;"	d
-_M_FREE	modules/jabber/mdefines.h	47;"	d
-_M_MALLOC	modules/jabber/mdefines.h	46;"	d
-_M_PRINTF	modules/jabber/mdefines.h	42;"	d
-_M_REALLOC	modules/jabber/mdefines.h	44;"	d
-_M_SHM_FREE	modules/jabber/mdefines.h	50;"	d
-_M_SHM_MALLOC	modules/jabber/mdefines.h	49;"	d
-_NHLPR_FUNCS_H	modules/nathelper/nhelpr_funcs.h	31;"	d
-_PADDR	modules/jabber/xjab_worker.c	85;"	d	file:
-_PARSE_CONTENT_H	parser/parse_content.h	30;"	d
-_PARSE_DISPOSITION_H_	parser/parse_disposition.h	33;"	d
-_PARSE_FROM_H	parser/parse_from.h	30;"	d
-_PIKE_FIFO_	modules/pike/pike_fifo.h	39;"	d
-_PIKE_FUNCS_H	modules/pike/pike_funcs.h	31;"	d
-_PIKE_TIMER_H	modules/pike/timer.h	35;"	d
-_PT_H	pt.h	39;"	d
-_QVALUE_H	qvalue.h	35;"	d
-_RedirectMessage	modules/cpl/jcpli.h	/^typedef struct _RedirectMessage$/;"	s
-_RejectMessage	modules/cpl/jcpli.h	/^typedef struct _RejectMessage$/;"	s
-_SCRIPT_CB_H_	script_cb.h	29;"	d
-_SDLOOKUP_H_	modules/speeddial/sdlookup.h	34;"	d
-_SER_AAA_AVPS_H_	modules/auth_db/aaa_avps.h	32;"	d
-_SER_URS_AVP_H_	usr_avp.h	34;"	d
-_SIP_MSG_H	modules/tm/sip_msg.h	31;"	d
-_SL_FUNCS_H	modules/sl/sl_funcs.h	30;"	d
-_SL_STATS_H	modules/sl/sl_stats.h	33;"	d
-_SMS_FUNCS_H	modules/sms/sms_funcs.h	30;"	d
-_SPEEDDIAL_H_	modules/speeddial/speeddial.h	34;"	d
-_TAGS_H	tags.h	45;"	d
-_TIMER_H	modules/tm/timer.h	36;"	d
-_TM_BIND_H	modules/tm/tm_load.h	36;"	d
-_TM_CONFIG_H	modules/tm/config.h	31;"	d
-_TM_DEFS_H	modules/tm/defs.h	35;"	d
-_TM_T_FIFO_H_	modules/tm/t_fifo.h	36;"	d
-_TM_UT_H	modules/tm/ut.h	42;"	d
-_TYPES_H_	types.h	31;"	d
-_T_DLG_H	modules/tm/t_dlg.h	31;"	d
-_T_FUNCS_H	modules/tm/t_funcs.h	40;"	d
-_T_FWD_H	modules/tm/t_fwd.h	36;"	d
-_T_LOOKUP_H	modules/tm/t_lookup.h	38;"	d
-_T_REPLY_H	modules/tm/t_reply.h	31;"	d
-_T_STATS_H	modules/tm/t_stats.h	32;"	d
-_UAC_H	modules/tm/uac.h	34;"	d
-_UAC_UNIXSOCK_H	modules/tm/uac_unixsock.h	29;"	d
-_UL_CALLBACKS_H	modules/usrloc/ul_callback.h	34;"	d
-_UL_FIFO_H	modules/usrloc/ul_fifo.h	33;"	d
-_UL_UNIXSOCK_H	modules/usrloc/ul_unixsock.h	30;"	d
-_UNIXSOCK_H	modules/domain/unixsock.h	31;"	d
-_UNIXSOCK_H	modules/pa/unixsock.h	32;"	d
-_UNIXSOCK_H	modules/permissions/unixsock.h	33;"	d
-_UNIXSOCK_SERVER_H	unixsock_server.h	31;"	d
-_XHAB_JCONF_H_	modules/jabber/xjab_jconf.h	33;"	d
-_XJAB_BASE_H_	modules/jabber/xjab_base.h	42;"	d
-_XJAB_DMSG_H_	modules/jabber/xjab_dmsg.h	33;"	d
-_XJAB_JCON_H_	modules/jabber/xjab_jcon.h	33;"	d
-_XJAB_LOAD_H_	modules/jabber/xjab_load.h	30;"	d
-_XJAB_PRESENCE_H_	modules/jabber/xjab_presence.h	32;"	d
-_XJAB_UTIL_H_	modules/jabber/xjab_util.h	33;"	d
-_XJAB_WORKER_H_	modules/jabber/xjab_worker.h	40;"	d
-_XL_LIB_H_	modules/xlog/xl_lib.h	29;"	d
-_XOPEN_SOURCE	daemonize.c	40;"	d	file:
-_XOPEN_SOURCE	modules/mysql/utils.c	36;"	d	file:
-_XOPEN_SOURCE	modules/postgres/db_utils.h	44;"	d
-_XOPEN_SOURCE_EXTENDED	daemonize.c	43;"	d	file:
-_XOPEN_SOURCE_EXTENDED	modules/mysql/utils.c	37;"	d	file:
-__EXTENSIONS__	daemonize.c	45;"	d	file:
-__FUNCTION__	mem/mem.h	73;"	d
-__FUNCTION__	mem/shm_mem.h	121;"	d
-__USE_XOPEN_EXTENDED	daemonize.c	44;"	d	file:
-__age_	parser/keys.h	109;"	d
-__buf	lock_ops.h	/^		struct seminfo *__buf;        \/* buffer for IPC_INFO *\/$/;"	m	union:semun
-__buf	test/locking/locking_test.c	/^		struct seminfo *__buf;      \/* buffer for IPC_INFO *\/$/;"	m	union:semun	file:
-__id1_	parser/keys.h	126;"	d
-__id1_	parser/keys.h	51;"	d
-__id2_	parser/keys.h	125;"	d
-__id2_	parser/keys.h	50;"	d
-__lock_h	modules/tm/lock.h	39;"	d
-__resolve_h	resolve.h	38;"	d
-__tsend_h	tsend.h	34;"	d
-_ac_maxval	modules/cpl-c/cpl_time.h	/^typedef struct _ac_maxval$/;"	s
-_ac_tm	modules/cpl-c/cpl_time.h	/^typedef struct _ac_tm$/;"	s
-_acce_	parser/keys.h	44;"	d
-_act1_	parser/keys.h	54;"	d
-_act2_	parser/keys.h	53;"	d
-_age1_	parser/keys.h	99;"	d
-_age2_	parser/keys.h	98;"	d
-_algo_	parser/digest/digest_keys.h	42;"	d
-_allo_	parser/keys.h	45;"	d
-_angu_	parser/keys.h	97;"	d
-_ards_	parser/keys.h	66;"	d
-_arty_	parser/keys.h	124;"	d
-_atio_	parser/keys.h	48;"	d
-_auth_	parser/keys.h	46;"	d
-_avp_list_t	modules/acc/diam_message.h	/^typedef struct _avp_list_t {$/;"	s
-_avp_list_t	modules/auth_diameter/diameter_msg.h	/^typedef struct _avp_list_t {$/;"	s
-_cachedb	modules/dbtext/dbt_lib.c	/^static dbt_cache_p *_cachedb = NULL;$/;"	v	file:
-_cachesem	modules/dbtext/dbt_lib.c	/^static gen_lock_t *_cachesem = NULL;$/;"	v	file:
-_call_	parser/keys.h	49;"	d
-_cate_	parser/keys.h	93;"	d
-_cnon_	parser/digest/digest_keys.h	40;"	d
-_cont_	parser/keys.h	52;"	d
-_content_type	modules/msilo/msfuncs.h	/^typedef struct _content_type$/;"	s
-_cseq_	parser/keys.h	59;"	d
-_daemonize_h	daemonize.h	35;"	d
-_dbt_cache	modules/dbtext/dbt_lib.h	/^typedef struct _dbt_cache $/;"	s
-_dbt_column	modules/dbtext/dbt_lib.h	/^typedef struct _dbt_column$/;"	s
-_dbt_con	modules/dbtext/dbt_res.h	/^typedef struct _dbt_con$/;"	s
-_dbt_database	modules/dbtext/dbt_lib.h	/^typedef struct _dbt_database$/;"	s
-_dbt_result	modules/dbtext/dbt_res.h	/^typedef struct _dbt_result$/;"	s
-_dbt_row	modules/dbtext/dbt_lib.h	/^typedef struct _dbt_row$/;"	s
-_dbt_table	modules/dbtext/dbt_lib.h	/^typedef struct _dbt_table$/;"	s
-_dc	modules/pdt/domains.h	/^typedef struct _dc {$/;"	s
-_disp_	parser/keys.h	110;"	d
-_dive_	parser/keys.h	119;"	d
-_double_hash	modules/pdt/domains.h	/^typedef struct _double_hash {$/;"	s
-_ds_dest	modules/dispatcher/dispatch.c	/^typedef struct _ds_dest$/;"	s	file:
-_ds_index	modules/dispatcher/dispatch.c	/^ds_setidx_p _ds_index = NULL;$/;"	v
-_ds_list	modules/dispatcher/dispatch.c	/^ds_set_p _ds_list = NULL;$/;"	v
-_ds_set	modules/dispatcher/dispatch.c	/^typedef struct _ds_set$/;"	s	file:
-_ds_setidx	modules/dispatcher/dispatch.c	/^typedef struct _ds_setidx$/;"	s	file:
-_ect1_	parser/keys.h	107;"	d
-_ect2_	parser/keys.h	106;"	d
-_ent__	parser/keys.h	55;"	d
-_enti_	parser/keys.h	92;"	d
-_entry	modules/pdt/domains.h	/^typedef struct _entry {$/;"	s
-_even_	parser/keys.h	94;"	d
-_expi_	parser/keys.h	60;"	d
-_forw_	parser/keys.h	65;"	d
-_from_	parser/keys.h	63;"	d
-_h_entry	modules/pdt/domains.h	/^typedef struct _h_entry	{$/;"	s
-_iD1	parser/obsolete/strs.h	137;"	d
-_iD2	parser/obsolete/strs.h	142;"	d
-_id1	parser/obsolete/strs.h	136;"	d
-_id2	parser/obsolete/strs.h	141;"	d
-_ion1_	parser/keys.h	113;"	d
-_ion1_	parser/keys.h	72;"	d
-_ion2_	parser/keys.h	112;"	d
-_ion2_	parser/keys.h	71;"	d
-_ire1_	parser/keys.h	80;"	d
-_ire2_	parser/keys.h	79;"	d
-_ispo_	parser/keys.h	116;"	d
-_izat_	parser/keys.h	70;"	d
-_leng_	parser/keys.h	56;"	d
-_lock	modules/tm/lock.h	/^static inline void _lock( ser_lock_t* s , char *file, char *function,$/;"	f
-_lock_alloc_h	lock_alloc.h	53;"	d
-_lock_ops_h	lock_ops.h	67;"	d
-_locking_h	locking.h	67;"	d
-_max__	parser/keys.h	64;"	d
-_mdefines_h_	modules/jabber/mdefines.h	40;"	d
-_message_t	modules/acc/diam_message.h	/^typedef struct _message_t {$/;"	s
-_message_t	modules/auth_diameter/diameter_msg.h	/^typedef struct _message_t {$/;"	s
-_modfix_h	mod_fix.h	8;"	d
-_msg_list	modules/msilo/ms_msg_list.h	/^typedef struct _msg_list$/;"	s
-_msg_list_el	modules/msilo/ms_msg_list.h	/^typedef struct _msg_list_el$/;"	s
-_name_	parser/digest/digest_keys.h	35;"	d
-_niza_	parser/keys.h	101;"	d
-_nonc_	parser/digest/digest_keys.h	37;"	d
-_onse_	parser/digest/digest_keys.h	39;"	d
-_opaq_	parser/digest/digest_keys.h	41;"	d
-_orga_	parser/keys.h	100;"	d
-_oriz_	parser/keys.h	47;"	d
-_orte_	parser/keys.h	83;"	d
-_osit_	parser/keys.h	111;"	d
-_oute_	parser/keys.h	77;"	d
-_parse_ruri	parser/parse_uri.c	/^static inline int _parse_ruri(str *uri,$/;"	f	file:
-_pass_fd_h	pass_fd.h	29;"	d
-_ppor_	parser/keys.h	86;"	d
-_prio_	parser/keys.h	103;"	d
-_private_prog	modules/ext/my_exec.c	/^struct program _private_prog;$/;"	v
-_prox_	parser/keys.h	67;"	d
-_pt_d_	parser/keys.h	115;"	d
-_pt_l_	parser/keys.h	96;"	d
-_quir_	parser/keys.h	74;"	d
-_rd_r_	parser/keys.h	76;"	d
-_re_h	re.h	37;"	d
-_real_	parser/digest/digest_keys.h	36;"	d
-_reco_	parser/keys.h	75;"	d
-_remo_	parser/keys.h	122;"	d
-_reply	modules/tm/t_reply.c	/^static int _reply( struct cell *trans, struct sip_msg* p_msg, $/;"	f	file:
-_reply_light	modules/tm/t_reply.c	/^static int _reply_light( struct cell *trans, char* buf, unsigned int len,$/;"	f	file:
-_requ_	parser/keys.h	78;"	d
-_res1_	parser/keys.h	62;"	d
-_res2_	parser/keys.h	61;"	d
-_resp_	parser/digest/digest_keys.h	38;"	d
-_rith_	parser/digest/digest_keys.h	43;"	d
-_rity_	parser/keys.h	104;"	d
-_rout_	parser/keys.h	81;"	d
-_rsio_	parser/keys.h	120;"	d
-_set_fr_retr	modules/tm/t_funcs.h	/^static void inline _set_fr_retr( struct retr_buf *rb, int retr )$/;"	f
-_shm_malloc	mem/shm_mem.h	/^inline static void* _shm_malloc(unsigned int size, $/;"	f
-_shm_realloc	mem/shm_mem.h	/^inline static void* _shm_realloc(void *ptr, unsigned int size, $/;"	f
-_shm_resize	mem/shm_mem.c	/^void* _shm_resize( void* p, unsigned int s, const char* file, const char* func,$/;"	f
-_siti_	parser/keys.h	117;"	d
-_statusline	stats.h	69;"	d
-_str	str.h	/^struct _str{$/;"	s
-_subj_	parser/keys.h	105;"	d
-_supp_	parser/keys.h	82;"	d
-_tbl_cache	modules/dbtext/dbt_lib.h	/^typedef struct _tbl_cache$/;"	s
-_tcp_conn_h	tcp_conn.h	38;"	d
-_tcpconn_find	tcp_main.c	/^struct tcp_connection* _tcpconn_find(int id, struct ip_addr* ip, int port)$/;"	f
-_tcpconn_rm	tcp_main.c	/^void _tcpconn_rm(struct tcp_connection* c)$/;"	f
-_te_p_	parser/keys.h	123;"	d
-_ted1_	parser/keys.h	88;"	d
-_ted2_	parser/keys.h	87;"	d
-_test	modules/pike/pike_funcs.c	71;"	d	file:
-_test_insert_to_reply	modules/tm/test.c	/^int _test_insert_to_reply( struct sip_msg *msg, char *str )$/;"	f
-_th12_	parser/keys.h	57;"	d
-_thor_	parser/keys.h	69;"	d
-_tion_	parser/keys.h	102;"	d
-_tmrec	modules/cpl-c/cpl_time.h	/^typedef struct _tmrec$/;"	s
-_to12_	parser/keys.h	84;"	d
-_tr_byxxx	modules/cpl-c/cpl_time.h	/^typedef struct _tr_byxxx$/;"	s
-_tr_res	modules/cpl-c/cpl_time.h	/^typedef struct _tr_res$/;"	s
-_type_	parser/keys.h	58;"	d
-_unlock	modules/tm/lock.h	/^static inline void _unlock( ser_lock_t* s, char *file, char *function,$/;"	f
-_unsu_	parser/keys.h	85;"	d
-_update_request	stats.h	44;"	d
-_update_response	stats.h	73;"	d
-_user_	parser/digest/digest_keys.h	34;"	d
-_user_	parser/keys.h	108;"	d
-_via1_	parser/keys.h	90;"	d
-_via2_	parser/keys.h	89;"	d
-_w_t_forward_nonack	modules/tm/tm.c	/^inline static int _w_t_forward_nonack(struct sip_msg* msg, char* proxy,$/;"	f	file:
-_w_t_relay_to	modules/tm/tm.c	/^inline static int _w_t_relay_to( struct sip_msg  *p_msg , $/;"	f	file:
-_www__	parser/keys.h	91;"	d
-_xj_jalias	modules/jabber/xjab_worker.h	/^typedef struct _xj_jalias$/;"	s
-_xj_jcon	modules/jabber/xjab_jcon.h	/^typedef struct _xj_jcon$/;"	s
-_xj_jcon_pool	modules/jabber/xjab_util.h	/^typedef struct _xj_jcon_pool$/;"	s
-_xj_jconf	modules/jabber/xjab_jconf.h	/^typedef struct _xj_jconf$/;"	s
-_xj_jkey	modules/jabber/xjab_base.h	/^typedef struct _xj_jkey$/;"	s
-_xj_jmsg_queue	modules/jabber/xjab_util.h	/^typedef struct _xj_jmsg_queue$/;"	s
-_xj_pid	modules/jabber/xjab_worker.c	/^int _xj_pid = 0;$/;"	v
-_xj_pres_cell	modules/jabber/xjab_presence.h	/^typedef struct _xj_pres_cell$/;"	s
-_xj_pres_list	modules/jabber/xjab_presence.h	/^typedef struct _xj_pres_list$/;"	s
-_xj_sipmsg	modules/jabber/xjab_base.h	/^typedef struct _xj_sipmsg$/;"	s
-_xj_wlist	modules/jabber/xjab_worker.h	/^typedef struct _xj_wlist$/;"	s
-_xj_worker	modules/jabber/xjab_worker.h	/^typedef struct _xj_worker$/;"	s
-_xl_elog	modules/xlog/xl_lib.h	/^typedef struct _xl_elog$/;"	s
-_xode	modules/jabber/xode.h	/^} _xode, *xode;$/;"	t
-_xode_appendsibling	modules/jabber/xode.c	/^static xode _xode_appendsibling(xode lastsibling, const char* name, unsigned int type)$/;"	f	file:
-_xode_expat_charData	modules/jabber/xode_from.c	/^static void _xode_expat_charData(void* userdata, const char* s, int len)$/;"	f	file:
-_xode_expat_endElement	modules/jabber/xode_from.c	/^static void _xode_expat_endElement(void* userdata, const char* name)$/;"	f	file:
-_xode_expat_startElement	modules/jabber/xode_from.c	/^static void _xode_expat_startElement(void* userdata, const char* name, const char** atts)$/;"	f	file:
-_xode_hidesibling	modules/jabber/xode.c	/^static void _xode_hidesibling(xode child)$/;"	f	file:
-_xode_insert	modules/jabber/xode.c	/^static xode _xode_insert(xode parent, const char* name, unsigned int type)$/;"	f	file:
-_xode_merge	modules/jabber/xode.c	/^static char* _xode_merge(xode_pool p, char* dest, unsigned int destsize, const char* src, unsigned int srcsize)$/;"	f	file:
-_xode_new	modules/jabber/xode.c	/^static xode _xode_new(xode_pool p, const char* name, unsigned int type)$/;"	f	file:
-_xode_pool	modules/jabber/xode.h	/^} _xode_pool, *xode_pool;$/;"	t
-_xode_pool__free	modules/jabber/xpool.c	46;"	d	file:
-_xode_pool__malloc	modules/jabber/xpool.c	45;"	d	file:
-_xode_pool_cleanup_append	modules/jabber/xpool.c	/^void _xode_pool_cleanup_append(xode_pool p, struct xode_pool_free *pf)$/;"	f
-_xode_pool_free	modules/jabber/xpool.c	/^struct xode_pool_free *_xode_pool_free(xode_pool p, xode_pool_cleaner f, void *arg)$/;"	f
-_xode_pool_heap	modules/jabber/xpool.c	/^struct xode_pool_heap *_xode_pool_heap(xode_pool p, int size)$/;"	f
-_xode_pool_heapfree	modules/jabber/xpool.c	/^void _xode_pool_heapfree(void *arg)$/;"	f
-_xode_pool_new	modules/jabber/xpool.c	/^xode_pool _xode_pool_new(void)$/;"	f
-_xode_pool_newheap	modules/jabber/xpool.c	/^xode_pool _xode_pool_newheap(int bytes)$/;"	f
-_xode_put_expatattribs	modules/jabber/xode_from.c	/^static void _xode_put_expatattribs(xode current, const char **atts)$/;"	f	file:
-_xode_put_expatattribs	modules/jabber/xstream.c	/^static void _xode_put_expatattribs(xode owner, const char** atts)$/;"	f	file:
-_xode_search	modules/jabber/xode.c	/^static xode _xode_search(xode firstsibling, const char* name, unsigned int type)$/;"	f	file:
-_xode_strcmp	modules/jabber/xode.c	/^static int _xode_strcmp(const char *a, const char *b)$/;"	f	file:
-_xode_stream	modules/jabber/xode.h	/^} *xode_stream, _xode_stream;$/;"	t
-_xode_stream_charData	modules/jabber/xstream.c	/^static void _xode_stream_charData(xode_stream xs, const char *str, int len)$/;"	f	file:
-_xode_stream_cleanup	modules/jabber/xstream.c	/^static void _xode_stream_cleanup(void *arg)$/;"	f	file:
-_xode_stream_endElement	modules/jabber/xstream.c	/^static void _xode_stream_endElement(xode_stream xs, const char* name)$/;"	f	file:
-_xode_stream_startElement	modules/jabber/xstream.c	/^static void _xode_stream_startElement(xode_stream xs, const char* name, const char** atts)$/;"	f	file:
-_xode_tag2str	modules/jabber/xode.c	/^static void _xode_tag2str(xode_spool s, xode node, int flag)$/;"	f	file:
-_xode_to_prettystr	modules/jabber/xode.c	/^_xode_to_prettystr( xode_spool s, xode x, int deep )$/;"	f
-_xode_tospool	modules/jabber/xode.c	/^static xode_spool _xode_tospool(xode node)$/;"	f	file:
-_y_au_	parser/keys.h	68;"	d
-_y_re_	parser/keys.h	73;"	d
-a	modules/avpops/avpops_impl.h	/^	struct fis_param a;        \/* attribute *\/$/;"	m	struct:db_param
-a	modules/jabber/xjab_worker.h	/^	str *a;		\/\/ aliases$/;"	m	struct:_xj_jalias
-aCT1	parser/obsolete/strs.h	166;"	d
-aCT2	parser/obsolete/strs.h	175;"	d
-aCt1	parser/obsolete/strs.h	165;"	d
-aCt2	parser/obsolete/strs.h	174;"	d
-aRDS	parser/obsolete/strs.h	214;"	d
-aRDs	parser/obsolete/strs.h	213;"	d
-aRdS	parser/obsolete/strs.h	212;"	d
-aRds	parser/obsolete/strs.h	211;"	d
-a_rdata	resolve.h	/^struct a_rdata {$/;"	s
-aaa_avps_init	modules/auth_db/aaa_avps.h	/^aaa_avps_init(str *avps_column_int, str *avps_column_str,$/;"	f
-aaaa_rdata	resolve.h	/^struct aaaa_rdata {$/;"	s
-acT1	parser/obsolete/strs.h	164;"	d
-acT2	parser/obsolete/strs.h	173;"	d
-ac_get_maxval	modules/cpl-c/cpl_time.c	/^ac_maxval_p ac_get_maxval(ac_tm_p _atp)$/;"	f
-ac_get_mweek	modules/cpl-c/cpl_time.c	/^int ac_get_mweek(struct tm* _tm)$/;"	f
-ac_get_wday_mr	modules/cpl-c/cpl_time.c	110;"	d	file:
-ac_get_wday_yr	modules/cpl-c/cpl_time.c	109;"	d	file:
-ac_get_wkst	modules/cpl-c/cpl_time.c	/^int ac_get_wkst()$/;"	f
-ac_get_yweek	modules/cpl-c/cpl_time.c	/^int ac_get_yweek(struct tm* _tm)$/;"	f
-ac_maxval_p	modules/cpl-c/cpl_time.h	/^} ac_maxval_t, *ac_maxval_p;$/;"	t
-ac_maxval_t	modules/cpl-c/cpl_time.h	/^} ac_maxval_t, *ac_maxval_p;$/;"	t
-ac_print	modules/cpl-c/cpl_time.c	/^int ac_print(ac_tm_p _atp)$/;"	f
-ac_tm_fill	modules/cpl-c/cpl_time.c	/^int ac_tm_fill(ac_tm_p _atp, struct tm* _tm)$/;"	f
-ac_tm_free	modules/cpl-c/cpl_time.c	/^int ac_tm_free(ac_tm_p _atp)$/;"	f
-ac_tm_new	modules/cpl-c/cpl_time.c	/^ac_tm_p ac_tm_new()$/;"	f
-ac_tm_p	modules/cpl-c/cpl_time.h	/^} ac_tm_t, *ac_tm_p;$/;"	t
-ac_tm_reset	modules/cpl-c/cpl_time.c	/^int ac_tm_reset(ac_tm_p _atp)$/;"	f
-ac_tm_set	modules/cpl-c/cpl_time.c	/^int ac_tm_set(ac_tm_p _atp, struct tm* _tm)$/;"	f
-ac_tm_set_time	modules/cpl-c/cpl_time.c	/^int ac_tm_set_time(ac_tm_p _atp, time_t _t)$/;"	f
-ac_tm_t	modules/cpl-c/cpl_time.h	/^} ac_tm_t, *ac_tm_p;$/;"	t
-acc	modules/pa/subscribe.c	/^static doctype_t acc;$/;"	v	file:
-acc_db_ack	modules/acc/acc.c	/^void acc_db_ack(  struct cell* t , struct sip_msg *ack )$/;"	f
-acc_db_bind	modules/acc/acc.c	/^int acc_db_bind(char* db_url)$/;"	f
-acc_db_close	modules/acc/acc.c	/^void acc_db_close()$/;"	f
-acc_db_init	modules/acc/acc.c	/^int acc_db_init()$/;"	f
-acc_db_missed	modules/acc/acc.c	/^void acc_db_missed( struct cell* t, struct sip_msg *reply,$/;"	f
-acc_db_reply	modules/acc/acc.c	/^void acc_db_reply(  struct cell* t , struct sip_msg *reply,$/;"	f
-acc_db_request	modules/acc/acc.c	/^int acc_db_request( struct sip_msg *rq, struct hdr_field *to, $/;"	f
-acc_db_url	modules/acc/acc.c	/^static char* acc_db_url=0;$/;"	v	file:
-acc_dbf	modules/acc/acc.c	/^static db_func_t acc_dbf;$/;"	v	file:
-acc_diam_ack	modules/acc/acc.c	/^void acc_diam_ack( struct cell* t, struct sip_msg *ack )$/;"	f
-acc_diam_missed	modules/acc/acc.c	/^void acc_diam_missed( struct cell* t, struct sip_msg *reply, unsigned int code )$/;"	f
-acc_diam_reply	modules/acc/acc.c	/^void acc_diam_reply( struct cell* t , struct sip_msg *reply, unsigned int code )$/;"	f
-acc_diam_request	modules/acc/acc.c	/^int acc_diam_request( struct sip_msg *rq, struct hdr_field *to, str *phrase )$/;"	f
-acc_domain_col	modules/acc/acc_mod.c	/^char* acc_domain_col		= "domain";$/;"	v
-acc_entries	modules/tm/h_table.h	/^	unsigned long acc_entries;$/;"	m	struct:entry
-acc_from_uri	modules/acc/acc_mod.c	/^char* acc_from_uri			= "from_uri";$/;"	v
-acc_fromtag_col	modules/acc/acc_mod.c	/^char* acc_fromtag_col		= "fromtag";$/;"	v
-acc_i_uri_col	modules/acc/acc_mod.c	/^char* acc_i_uri_col         = "i_uri";$/;"	v
-acc_log_ack	modules/acc/acc.c	/^void acc_log_ack(  struct cell* t , struct sip_msg *ack )$/;"	f
-acc_log_missed	modules/acc/acc.c	/^void acc_log_missed( struct cell* t, struct sip_msg *reply,$/;"	f
-acc_log_reply	modules/acc/acc.c	/^void acc_log_reply(  struct cell* t , struct sip_msg *reply,$/;"	f
-acc_log_request	modules/acc/acc.c	/^int acc_log_request( struct sip_msg *rq, struct hdr_field *to, $/;"	f
-acc_o_uri_col	modules/acc/acc_mod.c	/^char* acc_o_uri_col         = "o_uri";$/;"	v
-acc_onack	modules/acc/acc_mod.c	/^static inline void acc_onack( struct cell* t , struct sip_msg *ack,$/;"	f	file:
-acc_onreply	modules/acc/acc_mod.c	/^static inline void acc_onreply( struct cell* t, struct sip_msg *reply,$/;"	f	file:
-acc_onreply_in	modules/acc/acc_mod.c	/^static inline void acc_onreply_in(struct cell *t, struct sip_msg *reply,$/;"	f	file:
-acc_onreq	modules/acc/acc_mod.c	/^static void acc_onreq( struct cell* t, int type, struct tmcb_params *ps )$/;"	f	file:
-acc_preparse_req	modules/acc/acc_mod.c	/^static inline void acc_preparse_req(struct sip_msg *rq)$/;"	f	file:
-acc_rad_ack	modules/acc/acc.c	/^void acc_rad_ack(  struct cell* t , struct sip_msg *ack )$/;"	f
-acc_rad_missed	modules/acc/acc.c	/^void acc_rad_missed( struct cell* t, struct sip_msg *reply,$/;"	f
-acc_rad_reply	modules/acc/acc.c	/^void acc_rad_reply(  struct cell* t , struct sip_msg *reply,$/;"	f
-acc_rad_request	modules/acc/acc.c	/^int acc_rad_request( struct sip_msg *rq, struct hdr_field *to, $/;"	f
-acc_req_time	stats.h	/^	acc_req_time,$/;"	m	struct:stats_s
-acc_res_time	stats.h	/^	acc_res_time,$/;"	m	struct:stats_s
-acc_sip_callid_col	modules/acc/acc_mod.c	/^char* acc_sip_callid_col    = "sip_callid";$/;"	v
-acc_sip_from_col	modules/acc/acc_mod.c	/^char* acc_sip_from_col      = "sip_from";$/;"	v
-acc_sip_method_col	modules/acc/acc_mod.c	/^char* acc_sip_method_col    = "sip_method";$/;"	v
-acc_sip_status_col	modules/acc/acc_mod.c	/^char* acc_sip_status_col    = "sip_status";$/;"	v
-acc_sip_to_col	modules/acc/acc_mod.c	/^char* acc_sip_to_col        = "sip_to";$/;"	v
-acc_time_col	modules/acc/acc_mod.c	/^char* acc_time_col          = "time";$/;"	v
-acc_to_uri	modules/acc/acc_mod.c	/^char* acc_to_uri			= "to_uri";$/;"	v
-acc_totag_col	modules/acc/acc_mod.c	/^char* acc_totag_col			= "totag";$/;"	v
-acc_user_col	modules/acc/acc_mod.c	/^char* acc_user_col          = "username";$/;"	v
-acce_CASE	parser/case_acce.h	105;"	d
-accept	modules/pa/watcher.h	/^	doctype_t accept;       \/* Type of document accepted by the watcher *\/$/;"	m	struct:watcher
-accept	parser/msg_parser.h	/^	struct hdr_field* accept;$/;"	m	struct:sip_msg
-accept_disposition	parser/msg_parser.h	/^	struct hdr_field* accept_disposition;$/;"	m	struct:sip_msg
-accept_language	modules/cpl-c/cpl_run.h	/^	str *accept_language;$/;"	m	struct:cpl_interpreter
-accept_language	parser/msg_parser.h	/^	struct hdr_field* accept_language;$/;"	m	struct:sip_msg
-accepts_to_event_package	modules/pa/subscribe.c	/^static int accepts_to_event_package[N_DOCTYPES] = {$/;"	v	file:
-ack_matching	modules/tm/t_lookup.c	/^static inline int ack_matching(struct cell *p_cell, struct sip_msg *p_msg) $/;"	f	file:
-acked	modules/tm/h_table.h	/^	short acked;$/;"	m	struct:totag_elem
-acl	modules/postgres/serpgctl	/^acl() {$/;"	f
-acl	scripts/sc	/^acl() {$/;"	f
-acl	scripts/sc_unixsock	/^acl() {$/;"	f
-acpt_c	modules/options/mod_options.c	/^char *acpt_c, *acpt_enc_c, *acpt_lan_c, *supt_c;$/;"	v
-acpt_enc_c	modules/options/mod_options.c	/^char *acpt_c, *acpt_enc_c, *acpt_lan_c, *supt_c;$/;"	v
-acpt_enc_s	modules/options/mod_options.c	/^str acpt_s, acpt_enc_s, acpt_lan_s, supt_s;$/;"	v
-acpt_lan_c	modules/options/mod_options.c	/^char *acpt_c, *acpt_enc_c, *acpt_lan_c, *supt_c;$/;"	v
-acpt_lan_s	modules/options/mod_options.c	/^str acpt_s, acpt_enc_s, acpt_lan_s, supt_s;$/;"	v
-acpt_s	modules/options/mod_options.c	/^str acpt_s, acpt_enc_s, acpt_lan_s, supt_s;$/;"	v
-act1	parser/obsolete/strs.h	163;"	d
-act2	parser/obsolete/strs.h	172;"	d
-act_contact	modules/registrar/sip_msg.c	/^static struct hdr_field* act_contact;$/;"	v	file:
-act_time	modules/pa/ptime.c	/^time_t act_time;$/;"	v
-act_time	modules/registrar/regtime.c	/^time_t act_time;$/;"	v
-act_time	modules/usrloc/utime.c	/^time_t act_time;$/;"	v
-action	cfg.tab.c	/^	struct action* action;$/;"	m	union:YYSTYPE	file:
-action	cfg.tab.h	/^	struct action* action;$/;"	m	union:YYSTYPE
-action	cfg.y	/^action:		cmd SEMICOLON {$$=$1;}$/;"	l
-action	modules/tm/t_fifo.c	/^	str action;$/;"	m	struct:tw_info	file:
-action	route_struct.h	/^struct action{$/;"	s
-action_h	action.h	31;"	d
-actions	cfg.y	/^actions:	actions action	{$$=append_action($1, $2); }$/;"	l
-activ_type	modules/tm/h_table.h	/^	int activ_type;$/;"	m	struct:retr_buf
-ad_free	modules/acc/diam_message.h	34;"	d
-ad_free	modules/auth_diameter/diameter_msg.h	34;"	d
-ad_malloc	modules/acc/diam_message.h	33;"	d
-ad_malloc	modules/auth_diameter/diameter_msg.h	33;"	d
-add234	modules/jabber/tree234.c	/^void *add234(tree234 *t, void *e) {$/;"	f
-add234_internal	modules/jabber/tree234.c	/^static void *add234_internal(tree234 *t, void *e, int index) {$/;"	f	file:
-add2buf	modules/tm/t_fifo.c	/^static inline char* add2buf(char *buf, char *end, char *title, int title_len,$/;"	f	file:
-add_actions	route.c	/^int add_actions(struct action* a, struct action** head)$/;"	f
-add_alias	name_alias.h	/^static inline int add_alias(char* name, int len, unsigned short port, $/;"	f
-add_avp	usr_avp.c	/^int add_avp(unsigned short flags, int_str name, int_str val)$/;"	f
-add_avp_galias	usr_avp.c	/^int add_avp_galias(str *alias, int type, int_str avp_name)$/;"	f
-add_avp_galias_str	usr_avp.c	/^int add_avp_galias_str(char *alias_definition)$/;"	f
-add_blind_uac	modules/tm/t_fwd.c	/^int add_blind_uac( \/*struct cell *t*\/ )$/;"	f
-add_body	modules/tm/t_fifo.c	/^	int add_body;$/;"	m	struct:tw_append	file:
-add_client	modules/extcmd/clients.h	/^inline int add_client( int fd )$/;"	f
-add_cont_type_hf	modules/pa/notify.c	/^static inline int add_cont_type_hf(str* _h, int _l, doctype_t _d)$/;"	f	file:
-add_contact	modules/usrloc/ul_fifo.c	/^static inline int add_contact(udomain_t* _d, str* _u, str* _c, time_t _e, qvalue_t _q, int _f)$/;"	f	file:
-add_contact	modules/usrloc/ul_unixsock.c	/^static inline int add_contact(udomain_t* _d, str* _u, str* _c, time_t _e, qvalue_t _q, int _f)$/;"	f	file:
-add_contacts_to_loc_set	modules/cpl-c/cpl_proxy.h	/^static inline int add_contacts_to_loc_set(struct sip_msg* msg,$/;"	f
-add_diversion	modules/diversion/diversion.c	/^int add_diversion(struct sip_msg* msg, char* r, char* s)$/;"	f
-add_diversion_helper	modules/diversion/diversion.c	/^static inline int add_diversion_helper(struct sip_msg* msg, str* s)$/;"	f	file:
-add_event_hf	modules/pa/notify.c	/^static inline int add_event_hf(str* _h, int _l, int accept)$/;"	f	file:
-add_interfaces	socket_info.c	/^int add_interfaces(char* if_name, int family, unsigned short port,$/;"	f
-add_listen_iface	socket_info.c	/^int add_listen_iface(char* name, unsigned short port, unsigned short proto,$/;"	f
-add_location	modules/cpl-c/loc_set.h	/^static inline int add_location(struct location **loc_set, str *uri,$/;"	f
-add_lump_rpl	data_lump_rpl.c	/^struct lump_rpl* add_lump_rpl(struct sip_msg *msg, char *s, int len, int flags)$/;"	f
-add_maxfwd_header	modules/maxfwd/mf_funcs.c	/^int add_maxfwd_header( struct sip_msg* msg , unsigned int val )$/;"	f
-add_param	parser/parse_to.c	56;"	d	file:
-add_presence_tuple	modules/pa/presentity.c	/^void add_presence_tuple(presentity_t *_p, presence_tuple_t *_t)$/;"	f
-add_presentity	modules/pa/pdomain.c	/^void add_presentity(pdomain_t* _d, struct presentity* _p)$/;"	f
-add_proxy	proxy.c	/^struct proxy_l* add_proxy(str* name, unsigned short port, int proto)$/;"	f
-add_pstr	modules/pa/location.c	87;"	d	file:
-add_pstr	modules/pa/watcher.c	599;"	d	file:
-add_rcv_param_f	modules/nathelper/nathelper.c	/^add_rcv_param_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-add_retry_after	modules/registrar/reply.c	/^static int add_retry_after(struct sip_msg* _m)$/;"	f	file:
-add_rm	parser/msg_parser.h	/^	struct lump* add_rm;       \/* used for all the forwarded requests\/replies *\/$/;"	m	struct:sip_msg
-add_sl_stats	modules/sl/sl_stats.c	/^static void add_sl_stats( struct sl_stats *t, struct sl_stats *i)$/;"	f	file:
-add_sms_into_report_queue	modules/sms/sms_report.c	/^void add_sms_into_report_queue(int id, struct sms_msg *sms, char *p, int l)$/;"	f
-add_str	modules/pa/location.c	86;"	d	file:
-add_str	modules/pa/watcher.c	598;"	d	file:
-add_string	modules/pa/location.c	85;"	d	file:
-add_string	modules/pa/watcher.c	597;"	d	file:
-add_subs_state_hf	modules/pa/notify.c	/^static inline int add_subs_state_hf(str* _h, int _l, subs_state_t _s, ss_reason_t _r, time_t _e)$/;"	f	file:
-add_timer_unsafe	modules/tm/timer.c	/^static void add_timer_unsafe( struct timer *timer_list, struct timer_link *tl,$/;"	f	file:
-add_to_branch_len	parser/msg_parser.h	/^	int add_to_branch_len;$/;"	m	struct:sip_msg
-add_to_branch_s	parser/msg_parser.h	/^	char add_to_branch_s[MAX_BRANCH_PARAM_LEN];$/;"	m	struct:sip_msg
-add_to_double_hash	modules/pdt/domains.c	/^int add_to_double_hash(double_hash_t* hash, dc_t* cell)$/;"	f
-add_to_hash	modules/pdt/domains.c	/^int add_to_hash(h_entry_t* hash, unsigned int hash_size, dc_t* cell, int type)$/;"	f
-add_uac	modules/tm/t_fwd.c	/^int add_uac( struct cell *t, struct sip_msg *request, str *uri, str* next_hop,$/;"	f
-add_uri_param	modules/enum/enum.c	/^int add_uri_param(str *uri, str *param, str *new_uri)$/;"	f
-add_uri_param	modules/uri/checks.c	/^int add_uri_param(struct sip_msg* _msg, char* _param, char* _s2)$/;"	f
-add_username	modules/rr/rr_mod.c	/^int add_username = 0;     \/* Do not add username by default *\/$/;"	v
-add_via	test/shoot2.c	/^add_via(char *mes)$/;"	f
-add_watcher	modules/pa/presentity.c	/^int add_watcher(presentity_t* _p, str* _uri, time_t _e, int event_package, doctype_t _a, dlg_t* _dlg, $/;"	f
-add_watcher	modules/usrloc/notify.c	/^int add_watcher(struct urecord* _r, notcb_t _c, void* _d)$/;"	f
-add_winfo_watcher	modules/pa/presentity.c	/^int add_winfo_watcher(presentity_t* _p, str* _uri, time_t _e, int event_package, doctype_t _a, dlg_t* _dlg, $/;"	f
-addchar	lex.yy.c	/^static char* addchar(struct str_buf* dst, char c)$/;"	f	file:
-addpos234	modules/jabber/tree234.c	/^void *addpos234(tree234 *t, void *e, int index) {$/;"	f
-addpostest	modules/jabber/tree234.c	/^void addpostest(void *elem, int i) {$/;"	f
-addr	ip_addr.h	/^		unsigned char  addr[16];$/;"	m	union:ip_addr::<anonymous>
-addr	modules/cpl-c/loc_set.h	/^	}addr;$/;"	m	struct:location
-addr16	ip_addr.h	/^		unsigned short addr16[8];$/;"	m	union:ip_addr::<anonymous>
-addr2re	scripts/serconf.sh	/^function addr2re()$/;"	f
-addr32	ip_addr.h	/^		unsigned int   addr32[4];$/;"	m	union:ip_addr::<anonymous>
-addr_idx	proxy.h	/^	int addr_idx;	\/* crt. addr. idx. *\/$/;"	m	struct:proxy_l
-address	ip_addr.h	/^	struct ip_addr address; \/* ip address *\/$/;"	m	struct:socket_info
-address	modules/cpl-c/loc_set.h	/^	struct address {$/;"	s	struct:location
-address	modules/mediaproxy/mediaproxy.c	/^    uint32_t address;$/;"	m	file:
-address_str	ip_addr.h	/^	str address_str;        \/* ip address converted to string -- optimization*\/$/;"	m	struct:socket_info
-addrl	ip_addr.h	/^		unsigned long  addrl[16\/sizeof(long)]; \/* long format*\/$/;"	m	union:ip_addr::<anonymous>
-addstr	lex.yy.c	/^static char* addstr(struct str_buf* dst_b, char* src, int len)$/;"	f	file:
-addtest	modules/jabber/tree234.c	/^void addtest(void *elem) {$/;"	f
-adjust_clen	msg_translator.c	/^static inline int adjust_clen(struct sip_msg* msg, int body_delta, int proto)$/;"	f	file:
-admin	modules/pdt/doc/admin.sql	/^CREATE TABLE admin($/;"	t
-advance	modules/nathelper/nhelpr_funcs.c	55;"	d	file:
-af	ip_addr.h	/^	unsigned int af; \/* address family: AF_INET6 or AF_INET *\/$/;"	m	struct:ip_addr
-after	lump_struct.h	/^	struct lump* after; \/* list of headers to be inserted immediately after$/;"	m	struct:lump
-after_loose	modules/rr/loose.c	/^static inline int after_loose(struct sip_msg* _m, int preloaded)$/;"	f	file:
-after_strict	modules/rr/loose.c	/^static inline int after_strict(struct sip_msg* _m)$/;"	f	file:
-age_CASE	parser/case_acce.h	34;"	d
-aim	modules/jabber/doc/xjab.sql	/^CREATE TABLE aim($/;"	t
-aim_id	modules/jabber/doc/xjab.sql	/^	aim_id VARCHAR(128) NOT NULL,$/;"	F
-alg	parser/digest/digest_parser.h	/^	struct algorithm alg;       \/* Type of algorithm used *\/$/;"	m	struct:dig_cred
-alg	parser/digest/digest_parser.h	/^typedef enum alg {$/;"	g
-alg_parsed	parser/digest/digest_parser.h	/^	alg_t alg_parsed;  \/* Parsed value *\/$/;"	m	struct:algorithm
-alg_str	parser/digest/digest_parser.h	/^	str alg_str;       \/* The original string representation *\/$/;"	m	struct:algorithm
-alg_t	parser/digest/digest_parser.h	/^} alg_t;$/;"	t
-algo_CASE	parser/digest/param_parser.c	172;"	d	file:
-algorithm	parser/digest/digest_parser.h	/^struct algorithm {$/;"	s
-alias	name_alias.h	/^	str alias;$/;"	m	struct:host_alias
-alias	parser/parse_via.h	/^	struct via_param* alias; \/* alias see draft-ietf-sip-connect-reuse-00 *\/$/;"	m	struct:via_body
-alias	usr_avp.c	/^	str alias;$/;"	m	struct:avp_galias	file:
-aliases	main.c	/^struct host_alias* aliases=0; \/* name aliases list *\/$/;"	v
-aliases	modules/jabber/xjab_worker.h	/^	xj_jalias	aliases; \/\/ added aliases$/;"	m	struct:_xj_wlist
-aliases	tcp_conn.h	/^	int aliases; \/* aliases number, at least 1 *\/$/;"	m	struct:tcp_connection
-align	modules/postgres/aug_alloc.c	/^	MemAlign align[1];$/;"	m	union:MemHead	file:
-allo_CASE	parser/case_allo.h	34;"	d
-alloc_ops	modules/postgres/aug_alloc.h	/^	unsigned long alloc_ops;		\/* Total allocs since epoch *\/$/;"	m
-allow	modules/permissions/permissions.c	/^static rule_file_t allow[MAX_RULE_FILES]; \/* Parsed allow files *\/$/;"	v	file:
-allow	parser/msg_parser.h	/^	struct hdr_field* allow;$/;"	m	struct:sip_msg
-allow_register_1	modules/permissions/permissions.c	/^int allow_register_1(struct sip_msg* msg, char* basename, char* s)$/;"	f
-allow_register_2	modules/permissions/permissions.c	/^int allow_register_2(struct sip_msg* msg, char* allow_file, char* deny_file)$/;"	f
-allow_routing_0	modules/permissions/permissions.c	/^int allow_routing_0(struct sip_msg* msg, char* str1, char* str2)$/;"	f
-allow_routing_1	modules/permissions/permissions.c	/^int allow_routing_1(struct sip_msg* msg, char* basename, char* s)$/;"	f
-allow_routing_2	modules/permissions/permissions.c	/^int allow_routing_2(struct sip_msg* msg, char* allow_file, char* deny_file)$/;"	f
-allow_suffix	modules/permissions/permissions.c	/^static char* allow_suffix = ".allow";$/;"	v	file:
-allow_trusted	modules/permissions/trusted.c	/^int allow_trusted(struct sip_msg* _msg, char* str1, char* str2) $/;"	f
-allowed	modules/jabber/xjab_jcon.h	/^	int allowed;		\/\/ allowed IM networks$/;"	m	struct:_xj_jcon
-alter_mediaip	modules/nathelper/nathelper.c	/^alter_mediaip(struct sip_msg *msg, str *body, str *oldip, int oldpf,$/;"	f	file:
-alter_mediaport	modules/nathelper/nathelper.c	/^alter_mediaport(struct sip_msg *msg, str *body, str *oldport, str *newport,$/;"	f	file:
-anchor_lump	data_lump.c	/^struct lump* anchor_lump(struct sip_msg* msg, int offset, int len, int type)$/;"	f
-anchor_struct	modules/extcmd/extcmd_funcs.c	/^typedef struct anchor_struct$/;"	s	file:
-anchor_t	modules/extcmd/extcmd_funcs.c	/^} anchor_t;$/;"	t	file:
-angu_CASE	parser/case_acce.h	48;"	d
-aor	modules/usrloc/ucontact.h	/^	str* aor;               \/* Pointer to the address of record string in record structure*\/$/;"	m	struct:ucontact
-aor	modules/usrloc/urecord.h	/^	str aor;                       \/* Address of record *\/$/;"	m	struct:urecord
-ap_cvt	modules/jabber/xsnprintf.c	/^ap_cvt(double arg, int ndigits, int *decpt, int *sign, int eflag)$/;"	f	file:
-ap_ecvt	modules/jabber/xsnprintf.c	/^ap_ecvt(double arg, int ndigits, int *decpt, int *sign)$/;"	f	file:
-ap_ecvt	modules/jabber/xsnprintf.c	73;"	d	file:
-ap_fcvt	modules/jabber/xsnprintf.c	/^ap_fcvt(double arg, int ndigits, int *decpt, int *sign)$/;"	f	file:
-ap_fcvt	modules/jabber/xsnprintf.c	74;"	d	file:
-ap_gcvt	modules/jabber/xsnprintf.c	/^ap_gcvt(double number, int ndigit, char *buf)$/;"	f	file:
-ap_gcvt	modules/jabber/xsnprintf.c	75;"	d	file:
-ap_snprintf	modules/jabber/xsnprintf.c	/^int ap_snprintf(char *buf, size_t len, const char *format,...)$/;"	f
-ap_vsnprintf	modules/jabber/xsnprintf.c	/^int ap_vsnprintf(char *buf, size_t len, const char *format, va_list ap)$/;"	f
-append	modules/tm/t_fifo.c	/^	struct tw_append *append;$/;"	m	struct:tw_info	file:
-append2buf	modules/tm/t_fifo.c	/^static inline char* append2buf( char *buf, int len, struct sip_msg *req, $/;"	f	file:
-append_0	modules/avpops/avpops_impl.c	/^inline static int append_0(str *in, str *out)$/;"	f	file:
-append_action	route_struct.c	/^struct action* append_action(struct action* a, struct action* b)$/;"	f
-append_branch	dset.c	/^int append_branch(struct sip_msg* msg, char* uri, int uri_len, char* dst_uri, int dst_uri_len, qvalue_t q)$/;"	f
-append_branches	modules/registrar/reg_mod.c	/^int append_branches = 1;              \/* If set to 1, lookup will put all contacts found in msg structure *\/$/;"	v
-append_chr	modules/tm/t_fifo.c	108;"	d	file:
-append_double_str_attr	modules/cpl-c/cpl_parser.c	105;"	d	file:
-append_fixed_vars	modules/exec/exec_hf.c	/^static int append_fixed_vars(struct sip_msg *msg, struct hf_wrapper **list)$/;"	f	file:
-append_fromtag	modules/rr/rr_mod.c	/^int append_fromtag = 1;$/;"	v
-append_hf	modules/textops/textops.c	/^static int append_hf(struct sip_msg *msg, char *str1, char *str2 )$/;"	f	file:
-append_hf_helper	modules/textops/textops.c	/^static int append_hf_helper(struct sip_msg* msg, str *str1, str *str2)$/;"	f	file:
-append_log	modules/cpl-c/cpl_log.c	/^void append_log( int nr, ...)$/;"	f
-append_mem_block	modules/tm/t_msgbuilder.c	66;"	d	file:
-append_mem_block	modules/tm/t_msgbuilder.h	63;"	d
-append_new_lump	data_lump.c	/^struct lump* append_new_lump(struct lump** list, char* new_hdr,$/;"	f
-append_rpid_helper	modules/auth/rpid.c	/^static inline int append_rpid_helper(struct sip_msg* _m, str *_s)$/;"	f	file:
-append_rpid_hf	modules/auth/rpid.c	/^int append_rpid_hf(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-append_rpid_hf_p	modules/auth/rpid.c	/^int append_rpid_hf_p(struct sip_msg* _m, char* _prefix, char* _suffix)$/;"	f
-append_short_attr	modules/cpl-c/cpl_parser.c	88;"	d	file:
-append_str	modules/extcmd/extcmd.c	59;"	d	file:
-append_str	modules/extcmd/extcmd_funcs.c	71;"	d	file:
-append_str	modules/sms/sms_funcs.c	101;"	d	file:
-append_str	modules/tm/t_fifo.c	102;"	d	file:
-append_str	modules/tm/t_msgbuilder.c	72;"	d	file:
-append_str	msg_translator.c	134;"	d	file:
-append_str_attr	modules/cpl-c/cpl_parser.c	95;"	d	file:
-append_str_trans	msg_translator.c	140;"	d	file:
-append_time_f	modules/textops/textops.c	/^static int append_time_f(struct sip_msg* msg, char* p1, char *p2)$/;"	f	file:
-append_to_list	modules/cpl-c/sub_list.c	/^struct node*   append_to_list(struct node *head, char *offset, char *name)$/;"	f
-append_to_reply_f	modules/textops/textops.c	/^static int append_to_reply_f(struct sip_msg* msg, char* key, char* str)$/;"	f	file:
-append_to_timer	modules/pike/timer.c	/^inline void append_to_timer(struct list_link *head, struct list_link *new_ll )$/;"	f
-append_urihf	modules/textops/textops.c	/^static int append_urihf(struct sip_msg *msg, char *str1, char *str2 )$/;"	f	file:
-append_var	modules/exec/exec_hf.c	/^static int append_var(char *name, char *value, int len, struct hf_wrapper **list)$/;"	f	file:
-applicationId	modules/acc/diam_message.h	/^	AAAApplicationId    applicationId;$/;"	m	struct:_message_t
-applicationId	modules/auth_diameter/diameter_msg.h	/^	AAAApplicationId    applicationId;$/;"	m	struct:_message_t
-apply_correction	modules/pdt/pdt.c	/^code_t apply_correction(code_t code)$/;"	f
-arDS	parser/obsolete/strs.h	210;"	d
-arDs	parser/obsolete/strs.h	209;"	d
-ardS	parser/obsolete/strs.h	208;"	d
-ards	parser/obsolete/strs.h	207;"	d
-arg	modules/jabber/xode.h	/^    void *arg;$/;"	m	struct:xode_stream_struct
-arg	modules/jabber/xpool.c	/^    void *arg;$/;"	m	struct:xode_pool_free	file:
-arg_cmd	fifo_server.c	/^static int arg_cmd( FILE *stream, char *response_file )$/;"	f	file:
-arg_cmd	unixsock_server.c	/^static int arg_cmd(str* msg)$/;"	f	file:
-array	lock_ops.h	/^		unsigned short int *array;    \/* array for GETALL, SETALL *\/$/;"	m	union:semun
-array	modules/jabber/tree234.c	/^void **array;$/;"	v
-array	test/locking/locking_test.c	/^		unsigned short int *array;  \/* array for GETALL, SETALL *\/$/;"	m	union:semun	file:
-arraylen	modules/jabber/tree234.c	/^int arraylen, arraysize;$/;"	v
-arraysize	modules/jabber/tree234.c	/^int arraylen, arraysize;$/;"	v
-ascii	modules/sms/sms_funcs.h	/^	char ascii[500];$/;"	m	struct:incame_sms
-ascii2pdu	modules/sms/libsms_putsms.c	/^int ascii2pdu(char* ascii, int asciiLength, char* pdu, int cs_convert)$/;"	f
-ascii2sms	modules/sms/libsms_charset.c	/^char ascii2sms(const char c)$/;"	f
-asedir	Makefile	/^	$(MAKE) install basedir=tmp\/ser prefix=\/usr\/local $/;"	m
-asedir	Makefile	/^	$(MAKE) install basedir=tmp\/ser prefix=\/usr\/local$/;"	m
-assemble_msg	modules/tm/t_fifo.c	/^static int assemble_msg(struct sip_msg* msg, struct tw_info *twi)$/;"	f	file:
-assemble_via	modules/tm/t_msgbuilder.c	/^static inline int assemble_via(str* dest, struct cell* t, struct socket_info* sock, int branch)$/;"	f	file:
-assign_stm	cfg.y	/^assign_stm:	DEBUG EQUAL NUMBER { debug=$3; }$/;"	l
-atch_CASE	parser/case_sip.h	4;"	d
-attr	modules/acc/dict.h	/^struct attr {$/;"	s
-attr	modules/exec/exec_hf.h	/^	str attr;$/;"	m	struct:attrval
-attr2uri	modules/avp/avp.c	/^static int attr2uri(struct sip_msg* msg, char* attr, char* foo)$/;"	f	file:
-attr_column	modules/avp_db/avp_db.c	/^static char* attr_column     = "attribute";$/;"	v	file:
-attr_name_value	modules/avp_radius/avp_radius.c	/^static inline void attr_name_value(VALUE_PAIR* vp, str* name, str* value)$/;"	f	file:
-attrs	modules/acc/acc_mod.c	/^struct attr attrs[A_MAX];$/;"	v
-attrs	modules/auth_radius/authrad_mod.c	/^struct attr attrs[A_MAX];$/;"	v
-attrs	modules/avp_radius/avp_radius.c	/^struct attr attrs[A_MAX];$/;"	v
-attrs	modules/group_radius/grouprad_mod.c	/^struct attr attrs[A_MAX];$/;"	v
-attrs	modules/uri_radius/urirad_mod.c	/^struct attr attrs[A_MAX];$/;"	v
-attrval	modules/exec/exec_hf.h	/^struct attrval {$/;"	s
-augAllocStats	modules/postgres/aug_alloc.h	/^} augAllocStats;$/;"	t
-augBool	modules/postgres/aug_std.h	77;"	d
-augDAB_DEBUG	modules/postgres/aug_debug.h	65;"	d
-augDAB_DEBUG	modules/postgres/aug_debug.h	80;"	d
-augDAB__FILE__	modules/postgres/aug_debug.h	68;"	d
-augDAB__FILE__	modules/postgres/aug_debug.h	70;"	d
-augDAB__FILE__	modules/postgres/aug_debug.h	81;"	d
-augDAB__LINE__	modules/postgres/aug_debug.h	73;"	d
-augDAB__LINE__	modules/postgres/aug_debug.h	75;"	d
-augDAB__LINE__	modules/postgres/aug_debug.h	82;"	d
-augEXIT_ABORT	modules/postgres/aug_std.h	96;"	d
-augEXIT_ERROR	modules/postgres/aug_std.h	98;"	d
-augEXIT_FATAL	modules/postgres/aug_std.h	97;"	d
-augEXIT_NO	modules/postgres/aug_std.h	94;"	d
-augEXIT_NOMEM	modules/postgres/aug_std.h	95;"	d
-augEXIT_USAGE	modules/postgres/aug_std.h	100;"	d
-augEXIT_WARN	modules/postgres/aug_std.h	99;"	d
-augEXIT_YES	modules/postgres/aug_std.h	93;"	d
-augExport	modules/postgres/aug_std.h	106;"	d
-augFALSE	modules/postgres/aug_std.h	79;"	d
-augNoMemFunc	modules/postgres/aug_alloc.h	/^typedef void augNoMemFunc(size_t size, char *func, char *file, int line);$/;"	t
-augTRUE	modules/postgres/aug_std.h	80;"	d
-augUInt32	modules/postgres/aug_sysdep.h	/^typedef unsigned int augUInt32;$/;"	t
-aug_abort	modules/postgres/aug_util.c	/^augExport void aug_abort(char *file, int line, char *fmt, ...)$/;"	f
-aug_abort_va	modules/postgres/aug_util.c	/^augExport void aug_abort_va(char *file, int line, char *fmt, va_list ap)$/;"	f
-aug_alloc	modules/postgres/aug_alloc.h	75;"	d
-aug_alloc_loc	modules/postgres/aug_alloc.c	/^augExport void *aug_alloc_loc(size_t size, void *parent, char *file, int line)$/;"	f
-aug_alloc_stats	modules/postgres/aug_alloc.c	/^augExport augAllocStats *aug_alloc_stats(void)$/;"	f
-aug_exit	modules/postgres/aug_util.c	/^augExport void aug_exit(int exit_code)$/;"	f
-aug_foster	modules/postgres/aug_alloc.h	80;"	d
-aug_foster_loc	modules/postgres/aug_alloc.c	/^augExport void aug_foster_loc(void *alloc, void *parent, char *file, int line)$/;"	f
-aug_free	modules/postgres/aug_alloc.h	79;"	d
-aug_free_loc	modules/postgres/aug_alloc.c	/^augExport void aug_free_loc(const void *alloc, char *file, int line)$/;"	f
-aug_module	modules/postgres/aug_util.c	/^augExport char *aug_module(void)$/;"	f
-aug_module_name	modules/postgres/aug_util.c	/^static char *aug_module_name = 0;$/;"	v	file:
-aug_realloc	modules/postgres/aug_alloc.h	76;"	d
-aug_realloc_loc	modules/postgres/aug_alloc.c	/^augExport void *aug_realloc_loc(size_t size, void *prev, char *file, int line)$/;"	f
-aug_set_nomem_func	modules/postgres/aug_alloc.c	/^augExport augNoMemFunc *aug_set_nomem_func(augNoMemFunc *new_func)$/;"	f
-aug_setmodule	modules/postgres/aug_util.c	/^augExport void aug_setmodule(char *name)$/;"	f
-aug_strdup	modules/postgres/aug_alloc.h	77;"	d
-aug_strdup_loc	modules/postgres/aug_alloc.c	/^augExport char *aug_strdup_loc(const char *str, void *parent, char *file,$/;"	f
-aug_vecdup	modules/postgres/aug_alloc.h	78;"	d
-aug_vecdup_loc	modules/postgres/aug_alloc.c	/^augExport char **aug_vecdup_loc(char **vec, void *parent, char *file, int line)$/;"	f
-auth_CASE	parser/case_auth.h	57;"	d
-auth_body	parser/digest/digest.h	/^typedef struct auth_body {$/;"	s
-auth_body_cloner	modules/tm/sip_msg.c	/^static inline struct auth_body* auth_body_cloner(char* new_buf, char *org_buf, struct auth_body *auth, char **p)$/;"	f	file:
-auth_body_t	parser/digest/digest.h	/^} auth_body_t;$/;"	t
-auth_db_bind	modules/auth_db/authorize.c	/^int auth_db_bind(char* db_url)$/;"	f
-auth_db_close	modules/auth_db/authorize.c	/^void auth_db_close()$/;"	f
-auth_db_init	modules/auth_db/authorize.c	/^int auth_db_init(char* db_url)$/;"	f
-auth_db_ver	modules/auth_db/authorize.c	/^int auth_db_ver(char* db_url, str* name)$/;"	f
-auth_dbf	modules/auth_db/authorize.c	/^static db_func_t  auth_dbf;$/;"	v	file:
-auth_result	modules/auth/api.h	/^typedef enum auth_result {$/;"	g
-auth_result	modules/auth_diameter/defs.h	/^typedef enum auth_result {$/;"	g
-auth_result_t	modules/auth/api.h	/^} auth_result_t;$/;"	t
-auth_result_t	modules/auth_diameter/defs.h	/^} auth_result_t;$/;"	t
-auth_ses_state	modules/acc/diam_message.h	/^	AAA_AVP             *auth_ses_state;$/;"	m	struct:_message_t
-auth_ses_state	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP             *auth_ses_state;$/;"	m	struct:_message_t
-authentication	modules/pdt/doc/admin.sql	/^CREATE TABLE authentication ($/;"	t
-authorization	parser/msg_parser.h	/^	struct hdr_field* authorization;$/;"	m	struct:sip_msg
-authorize	modules/auth_db/authorize.c	/^static inline int authorize(struct sip_msg* _m, str* _realm, char* _table, int _hftype)$/;"	f	file:
-authorize	modules/auth_diameter/authorize.c	/^int authorize(struct sip_msg* msg, str* realm, int hftype)$/;"	f
-authorize	modules/auth_radius/authorize.c	/^static inline int authorize(struct sip_msg* _msg, str* _realm, int _hftype)$/;"	f	file:
-authorized	modules/pdt/doc/web/request.php	/^		$authorized="1";$/;"	v
-authorized	modules/pdt/doc/web/request.php	/^	    $authorized = "0";$/;"	v
-authorized	modules/pdt/doc/web/request.php	/^	$authorized="0";$/;"	v
-authorized	parser/digest/digest.h	/^	struct hdr_field* authorized;$/;"	m	struct:auth_body
-auto_col	modules/dbtext/dbt_lib.h	/^	int auto_col;$/;"	m	struct:_dbt_table
-auto_gen	Makefile	/^auto_gen=lex.yy.c cfg.tab.c #lexx, yacc etc$/;"	m
-auto_gen	db/example/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/acc/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/auth/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/auth_db/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/auth_diameter/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/auth_radius/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/avp/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/avp_db/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/avp_radius/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/avpops/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/cpl-c/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/cpl/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/dbtext/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/dbtext/dbtex/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/dispatcher/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/diversion/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/domain/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/enum/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/exec/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/ext/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/extcmd/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/flatstore/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/gflags/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/group/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/group_radius/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/jabber/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/mangler/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/maxfwd/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/mediaproxy/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/msilo/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/mysql/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/nathelper/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/options/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/pa/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/pdt/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/permissions/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/pike/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/postgres/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/print/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/registrar/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/rr/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/sl/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/sms/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/speeddial/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/textops/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/tm/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/uri/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/uri_db/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/uri_radius/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/usrloc/Makefile	/^auto_gen=$/;"	m
-auto_gen	modules/xlog/Makefile	/^auto_gen=$/;"	m
-auto_gen	utils/gen_ha1/Makefile	/^auto_gen=$/;"	m
-auto_gen	utils/serunix/Makefile	/^auto_gen=$/;"	m
-auto_gen_others	Makefile	/^auto_gen_others=cfg.tab.h  # auto generated, non-c$/;"	m
-auto_reconnect	modules/mysql/db_mod.c	/^int auto_reconnect = 1;     \/* Default is enabled *\/$/;"	v
-auto_val	modules/dbtext/dbt_lib.h	/^	int auto_val;$/;"	m	struct:_dbt_table
-aux_process	modules/cpl-c/cpl.c	/^static pid_t aux_process   = 0;  \/* pid of the private aux. process *\/$/;"	v	file:
-av	modules/exec/exec_hf.h	/^		struct attrval av;$/;"	m	union:hf_wrapper::<anonymous>
-avp	modules/acc/diam_message.h	/^typedef struct avp {$/;"	s
-avp	modules/auth_diameter/diameter_msg.h	/^typedef struct avp {$/;"	s
-avp	usr_avp.c	/^	struct avp_spec  avp;$/;"	m	struct:avp_galias	file:
-avp2timer	modules/tm/t_funcs.c	/^static inline int avp2timer(unsigned int* timer, int type, int_str name)$/;"	f	file:
-avpList	modules/acc/diam_message.h	/^	AAA_AVP_LIST        avpList;$/;"	m	struct:_message_t
-avpList	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP_LIST        avpList;$/;"	m	struct:_message_t
-avp_add_db_scheme	modules/avpops/avpops_db.c	/^int avp_add_db_scheme( modparam_t type, void* val)$/;"	f
-avp_exists	modules/avp/avp.c	/^static int avp_exists(struct sip_msg* msg, char* key, char* value)$/;"	f	file:
-avp_galias	usr_avp.c	/^struct avp_galias {$/;"	s	file:
-avp_get_db_scheme	modules/avpops/avpops_db.c	/^struct db_scheme *avp_get_db_scheme (char *name)$/;"	f
-avp_spec	usr_avp.c	/^struct avp_spec {$/;"	s	file:
-avpops_child_init	modules/avpops/avpops.c	/^static int avpops_child_init(int rank)$/;"	f	file:
-avpops_db_bind	modules/avpops/avpops_db.c	/^int avpops_db_bind(char* db_url)$/;"	f
-avpops_db_init	modules/avpops/avpops_db.c	/^int avpops_db_init(char* db_url, char* db_table, char **db_cols)$/;"	f
-avpops_dbf	modules/avpops/avpops_db.c	/^static db_func_t avpops_dbf;    \/* DB functions *\/$/;"	v	file:
-avpops_init	modules/avpops/avpops.c	/^static int avpops_init(void)$/;"	f	file:
-avps_column_int	modules/auth_db/authdb_mod.c	/^static str avps_column_int  = {AVPS_COL_INT, AVPS_COL_INT_LEN};$/;"	v	file:
-avps_column_str	modules/auth_db/authdb_mod.c	/^static str avps_column_str  = {AVPS_COL_STR, AVPS_COL_STR_LEN};$/;"	v	file:
-avps_int	modules/auth_db/authdb_mod.c	/^str *avps_int        = NULL;$/;"	v
-avps_int_n	modules/auth_db/authdb_mod.c	/^int avps_int_n       = 0;$/;"	v
-avps_str	modules/auth_db/authdb_mod.c	/^str *avps_str        = NULL;$/;"	v
-avps_str_n	modules/auth_db/authdb_mod.c	/^int avps_str_n       = 0;$/;"	v
-bad_cpl	modules/cpl-c/cpl.c	/^static struct cpl_error bad_cpl = {400,"Bad CPL script"};$/;"	v	file:
-bad_req	modules/cpl-c/cpl.c	/^static struct cpl_error bad_req = {400,"Bad request"};$/;"	v	file:
-basic2status	modules/pa/presentity.c	/^int basic2status(str basic)$/;"	f
-baudrate	modules/sms/sms_funcs.h	/^	int  baudrate;$/;"	m	struct:modem
-before	lump_struct.h	/^	struct lump* before; \/* list of headers to be inserted in front of the$/;"	m	struct:lump
-begin_transaction	modules/postgres/dbase.c	/^static int begin_transaction(db_con_t * _h, char *_s)$/;"	f	file:
-big_chunks	mem/vq_malloc.h	/^	char *big_chunks;$/;"	m	struct:vqm_block
-big_hash_idx	mem/f_malloc.c	/^inline static unsigned long big_hash_idx(unsigned long s)$/;"	f	file:
-big_hash_idx	mem/q_malloc.c	/^inline static unsigned long big_hash_idx(unsigned long s)$/;"	f	file:
-binary2pdu	modules/sms/libsms_putsms.c	/^int binary2pdu(char* binary, int length, char* pdu)$/;"	f
-bind_address	ip_addr.h	/^	struct socket_info* bind_address; \/* sock_info structure on which $/;"	m	struct:receive_info
-bind_address	main.c	/^struct socket_info* bind_address=0; \/* pointer to the crt. proc.$/;"	v
-bind_dbmod	db/db.c	/^int bind_dbmod(char* mod, db_func_t* mydbf)$/;"	f
-bind_usrloc	modules/usrloc/usrloc.c	/^int bind_usrloc(usrloc_api_t* api)$/;"	f
-bind_usrloc_t	modules/usrloc/usrloc.h	/^typedef int (*bind_usrloc_t)(usrloc_api_t* api);$/;"	t
-bitmap_val	db/db_val.h	/^		unsigned int  bitmap_val; \/* Bitmap data type, 32 flags, should be enough *\/ $/;"	m
-blob_val	db/db_val.h	/^		str           blob_val;   \/* Blob data *\/$/;"	m
-block	modules/jabber/xode.h	/^    void *block;$/;"	m	struct:xode_pool_heap
-body	modules/pa/notify.c	/^static str body = {buffer, 0};$/;"	v	file:
-body	parser/hf.h	/^	str body;               \/* Header field body (may not include CRLF) *\/$/;"	m	struct:hdr_field
-body	parser/parse_disposition.h	/^	str body;$/;"	m	struct:disposition_param
-body	parser/parse_param.h	/^	str body;             \/* Parameter body *\/$/;"	m	struct:param
-body	parser/parse_to.h	/^	str body;                     \/* The whole header field body *\/$/;"	m	struct:to_body
-body	tcp_conn.h	/^	char* body; \/* body position *\/$/;"	m	struct:tcp_req
-body_lumps	parser/msg_parser.h	/^	struct lump* body_lumps;     \/* Lumps that update Content-Length *\/$/;"	m	struct:sip_msg
-bookmark	msg_translator.h	/^struct bookmark {$/;"	s
-bool_int	modules/jabber/xsnprintf.c	/^typedef int bool_int;$/;"	t	file:
-boolean_e	modules/jabber/xsnprintf.c	/^} boolean_e;$/;"	t	file:
-branch	dset.c	/^struct branch$/;"	s	file:
-branch	modules/pike/ip_tree.h	/^	unsigned char     branch;$/;"	m	struct:ip_node
-branch	modules/tm/h_table.h	/^	unsigned int branch;$/;"	m	struct:retr_buf
-branch	parser/parse_via.h	/^	struct via_param* branch;$/;"	m	struct:via_body
-branch_bm_t	modules/tm/t_reply.h	/^typedef unsigned int branch_bm_t;$/;"	t
-branch_builder	msg_translator.c	/^int branch_builder( unsigned int hash_index,$/;"	f
-branch_iterator	dset.c	/^static int branch_iterator = 0;$/;"	v	file:
-branches	dset.c	/^static struct branch branches[MAX_BRANCHES - 1];$/;"	v	file:
-bsize	parser/parse_via.h	/^	int bsize;                    \/* body size, not including hdr *\/$/;"	m	struct:via_body
-btostr	ut.h	/^static inline int btostr( char *p,  unsigned char val)$/;"	f
-bucket	mem/vq_malloc.h	/^			unsigned char bucket;$/;"	m	struct:vqm_frag::<anonymous>::<anonymous>
-buf	db/db_fifo.c	/^static char   buf[MAX_SIZE_LINE];$/;"	v	file:
-buf	lock_ops.h	/^		struct semid_ds *buf;         \/* buffer for IPC_STAT, IPC_SET *\/$/;"	m	union:semun
-buf	modules/acc/defs.h	/^	unsigned char *buf;$/;"	m	struct:rd_buf
-buf	modules/acc/diam_message.h	/^	str                 buf;$/;"	m	struct:_message_t
-buf	modules/auth_diameter/defs.h	/^	unsigned char *buf;$/;"	m	struct:rd_buf
-buf	modules/auth_diameter/diameter_msg.h	/^	str                 buf;$/;"	m	struct:_message_t
-buf	modules/registrar/reply.c	/^	char* buf;$/;"	m	file:
-buf	parser/msg_parser.h	/^	char* buf;        \/* scratch pad, holds a modified message,$/;"	m	struct:sip_msg
-buf	tcp_conn.h	/^	char buf[TCP_BUF_SIZE+1]; \/* bytes read so far (+0-terminator)*\/$/;"	m	struct:tcp_req
-buf	test/locking/locking_test.c	/^		struct semid_ds *buf;       \/* buffer for IPC_STAT, IPC_SET *\/$/;"	m	union:semun	file:
-buf	test/test.c	/^static char buf[BUF_SIZE];$/;"	v	file:
-buf	test/udp_test_proxy.c	/^static char buf[BUF_SIZE];$/;"	v	file:
-buf_agents	modules/jabber/doc/web/subscribe.php	/^		$buf_agents = fread($fd, 4096);$/;"	v
-buf_agents	modules/jabber/doc/web/subscribe.php	/^	$buf_agents = fread($fd, 4096);$/;"	v
-buf_area	modules/jabber/xsnprintf.c	/^struct buf_area {$/;"	s	file:
-buf_end	modules/jabber/xsnprintf.c	/^    char *buf_end;$/;"	m	struct:buf_area	file:
-buf_len	modules/acc/defs.h	/^	unsigned int buf_len;$/;"	m	struct:rd_buf
-buf_len	modules/auth_diameter/defs.h	/^	unsigned int buf_len;$/;"	m	struct:rd_buf
-buf_len	modules/registrar/reply.c	/^	int buf_len;$/;"	m	file:
-buf_recv	modules/jabber/doc/web/subscribe.php	/^				$buf_recv = fread($fd, 2048);$/;"	v
-buf_recv	modules/jabber/doc/web/subscribe.php	/^			$buf_recv = fread($fd, 2048);$/;"	v
-buf_recv	modules/jabber/doc/web/subscribe.php	/^		$buf_recv = fread($fd, 2048);$/;"	v
-buf_recv	modules/jabber/doc/web/subscribe.php	/^	$buf_recv = fread($fd, 2048);$/;"	v
-buf_size	modules/xlog/xlog.c	/^int buf_size=4096;$/;"	v
-buff	resolve.h	/^	unsigned char buff[MAX_QUERY_SIZE];$/;"	m	union:dns_query
-buffer	md5.h	/^  unsigned char buffer[64];                         \/* input buffer *\/$/;"	m
-buffer	modules/pa/notify.c	/^static char buffer[BUF_LEN];$/;"	v	file:
-buffer	modules/tm/h_table.h	/^	char *buffer;$/;"	m	struct:retr_buf
-buffer_len	modules/tm/h_table.h	/^	int   buffer_len;$/;"	m	struct:retr_buf
-buffy	modules/jabber/xsnprintf.c	/^typedef struct buf_area buffy;$/;"	t	file:
-build_ack	modules/tm/t_reply.c	/^static char *build_ack(struct sip_msg* rpl,struct cell *trans,int branch,$/;"	f	file:
-build_auth_hf	modules/auth/challenge.c	/^static inline char *build_auth_hf(int _retries, int _stale, str* _realm, $/;"	f	file:
-build_cancel	modules/tm/t_cancel.c	/^char *build_cancel(struct cell *Trans,unsigned int branch,$/;"	f
-build_cell	modules/tm/h_table.c	/^struct cell*  build_cell( struct sip_msg* p_msg )$/;"	f
-build_contact	modules/registrar/reply.c	/^int build_contact(ucontact_t* c)$/;"	f
-build_dlg_ack	modules/tm/t_msgbuilder.c	/^char *build_dlg_ack(struct sip_msg* rpl, struct cell *Trans, unsigned int branch,$/;"	f
-build_hf_struct	modules/exec/exec_hf.c	/^static int build_hf_struct(struct sip_msg *msg, struct hf_wrapper **list)$/;"	f	file:
-build_local	modules/tm/t_msgbuilder.c	/^char *build_local(struct cell *Trans,unsigned int branch,$/;"	f
-build_local_ack	modules/tm/t_reply.c	/^static char *build_local_ack(struct sip_msg* rpl, struct cell *trans, int branch,$/;"	f	file:
-build_req_buf_from_sip_req	msg_translator.c	/^char * build_req_buf_from_sip_req( struct sip_msg* msg,$/;"	f
-build_res_buf_from_sip_req	msg_translator.c	/^char * build_res_buf_from_sip_req( unsigned int code, char *text ,str *new_tag,$/;"	f
-build_res_buf_from_sip_res	msg_translator.c	/^char * build_res_buf_from_sip_res( struct sip_msg* msg,$/;"	f
-build_rr	modules/rr/record.c	/^static inline int build_rr(struct lump* _l, struct lump* _l2, int _lr, str* user, str* tag, int _inbound)$/;"	f	file:
-build_uac_req	modules/tm/t_msgbuilder.c	/^char* build_uac_req(str* method, str* headers, str* body, dlg_t* dialog, int branch, $/;"	f
-build_userhost	modules/cpl-c/cpl.c	/^static inline int build_userhost(struct sip_uri *uri, str *uh, int flg)$/;"	f	file:
-busy	modules/cpl-c/cpl_run.h	/^		char *busy;$/;"	m	struct:cpl_interpreter::proxy_st
-busy	tcp_main.c	/^	int busy;$/;"	m	struct:tcp_child	file:
-byday	modules/cpl-c/cpl_time.h	/^	tr_byxxx_p byday;$/;"	m	struct:_tmrec
-bymday	modules/cpl-c/cpl_time.h	/^	tr_byxxx_p bymday;$/;"	m	struct:_tmrec
-bymonth	modules/cpl-c/cpl_time.h	/^	tr_byxxx_p bymonth;$/;"	m	struct:_tmrec
-byte	modules/pike/ip_tree.h	/^	unsigned char     byte;$/;"	m	struct:ip_node
-bytes_to_go	tcp_conn.h	/^	int bytes_to_go; \/* how many bytes we have still to read from the body*\/$/;"	m	struct:tcp_req
-byweekno	modules/cpl-c/cpl_time.h	/^	tr_byxxx_p byweekno;$/;"	m	struct:_tmrec
-byyday	modules/cpl-c/cpl_time.h	/^	tr_byxxx_p byyday;$/;"	m	struct:_tmrec
-c	modules/jabber/xode.h	/^    char *c;$/;"	m	struct:xode_spool_node
-c	modules/usrloc/ucontact.h	/^	str c;                  \/* Contact address *\/$/;"	m	struct:ucontact
-c	parser/parse_content.c	/^	char c;                      \/* char contained by this node *\/$/;"	m	struct:type_node_s	file:
-c	re.h	/^		char c;$/;"	m	union:replace_with::<anonymous>
-cALL	parser/obsolete/strs.h	126;"	d
-cALl	parser/obsolete/strs.h	125;"	d
-cAlL	parser/obsolete/strs.h	124;"	d
-cAll	parser/obsolete/strs.h	123;"	d
-cONT	parser/obsolete/strs.h	153;"	d
-cONt	parser/obsolete/strs.h	152;"	d
-cOnT	parser/obsolete/strs.h	151;"	d
-cOnt	parser/obsolete/strs.h	150;"	d
-cSEQ	parser/obsolete/strs.h	109;"	d
-cSEq	parser/obsolete/strs.h	108;"	d
-cSeQ	parser/obsolete/strs.h	107;"	d
-cSeq	parser/obsolete/strs.h	106;"	d
-c_next	tcp_conn.h	/^	struct tcp_connection* c_next; \/* child next prev (use locally) *\/$/;"	m	struct:tcp_connection
-c_prev	tcp_conn.h	/^	struct tcp_connection* c_prev;$/;"	m	struct:tcp_connection
-caLL	parser/obsolete/strs.h	122;"	d
-caLl	parser/obsolete/strs.h	121;"	d
-cache	modules/jabber/xjab_util.h	/^	int cache;		\/\/ cache time (seconds)$/;"	m	struct:_xj_jmsg_queue
-cache_time	modules/jabber/jabber.c	/^int cache_time = 600;$/;"	v
-cachet	modules/jabber/xjab_worker.h	/^	int cachet;$/;"	m	struct:_xj_wlist
-calL	parser/obsolete/strs.h	120;"	d
-calc_HA1	modules/auth_db/rfc2617.c	/^void calc_HA1(ha_alg_t _alg, str* _username, str* _realm, str* _password,$/;"	f
-calc_buf_len	modules/registrar/reply.c	/^static inline unsigned int calc_buf_len(ucontact_t* c)$/;"	f	file:
-calc_contact_expires	modules/registrar/sip_msg.c	/^int calc_contact_expires(struct sip_msg* _m, param_t* _ep, int* _e)$/;"	f
-calc_contact_q	modules/registrar/sip_msg.c	/^int calc_contact_q(param_t* _q, qvalue_t* _r)$/;"	f
-calc_crc_suffix	modules/sl/sl_funcs.c	/^static void calc_crc_suffix( struct sip_msg *msg )$/;"	f	file:
-calc_crc_suffix	tags.h	/^static inline void calc_crc_suffix( struct sip_msg *msg, char *tag_suffix)$/;"	f
-calc_ha1	modules/auth_db/authdb_mod.c	/^int calc_ha1         = 0;$/;"	v
-calc_nonce	modules/auth/nonce.c	/^void calc_nonce(char* _nonce, int _expires, str* _secret)$/;"	f
-calc_response	modules/auth_db/rfc2617.c	/^void calc_response(HASHHEX _ha1,      \/* H(A1) *\/$/;"	f
-calc_routeset_len	modules/tm/t_msgbuilder.c	/^static inline int calc_routeset_len(struct rte* list, str* contact)$/;"	f	file:
-calculate_hooks	modules/tm/dlg.c	/^static inline int calculate_hooks(dlg_t* _d)$/;"	f	file:
-calculate_routeset_length	modules/tm/dlg.c	/^int calculate_routeset_length(dlg_t* _d)$/;"	f
-call	parser/obsolete/strs.h	119;"	d
-call_CASE	parser/case_call.h	55;"	d
-call_id	modules/tm/dlg.h	/^	str call_id;    \/* Call-ID *\/$/;"	m	struct:dlg_id
-callback	modules/pa/subscribe.c	/^void callback(str* _user, str *_contact, int state, void* data)$/;"	f
-callback	modules/tm/t_hooks.h	/^	transaction_cb* callback;    \/* callback function *\/$/;"	m	struct:tm_callback
-callback	modules/tm/uac_unixsock.c	/^static void callback(struct cell *t, int type, struct tmcb_params *ps)$/;"	f	file:
-callback	modules/usrloc/ul_callback.h	/^	ul_cb* callback;             \/* callback function *\/$/;"	m	struct:ul_callback
-callback_lock_pdomain	modules/pa/pa_mod.c	/^int callback_lock_pdomain = 1;$/;"	v
-callback_t	script_cb.h	/^} callback_t;       \/* Allowed types of callbacks *\/$/;"	t
-callback_update_db	modules/pa/pa_mod.c	/^int callback_update_db = 1;$/;"	v
-callee_prefix	modules/avp_db/avp_db.c	/^static str callee_prefix     = {CALLEE_PREFIX, CALLEE_PREFIX_LEN};$/;"	v	file:
-callee_prefix	modules/avp_radius/avp_radius.c	/^static str callee_prefix = {CALLEE_PREFIX, CALLEE_PREFIX_LEN};$/;"	v	file:
-callee_service_type	modules/avp_radius/avp_radius.c	/^static int callee_service_type = -1;$/;"	v	file:
-callee_uuid_avp	modules/avp_db/avp_db.c	/^static int callee_uuid_avp   = 2;$/;"	v	file:
-caller_prefix	modules/avp_db/avp_db.c	/^static str caller_prefix     = {CALLER_PREFIX, CALLER_PREFIX_LEN};$/;"	v	file:
-caller_prefix	modules/avp_radius/avp_radius.c	/^static str caller_prefix = {CALLER_PREFIX, CALLER_PREFIX_LEN};$/;"	v	file:
-caller_service_type	modules/avp_radius/avp_radius.c	/^static int caller_service_type = -1;$/;"	v	file:
-caller_uuid_avp	modules/avp_db/avp_db.c	/^static int caller_uuid_avp   = 1;$/;"	v	file:
-callid	modules/tm/h_table.h	/^	str from, callid, cseq_n, to;$/;"	m	struct:cell
-callid	modules/usrloc/ucontact.h	/^	str callid;             \/* Call-ID header field *\/$/;"	m	struct:ucontact
-callid	parser/msg_parser.h	/^	struct hdr_field* callid;$/;"	m	struct:sip_msg
-callid_buf	modules/tm/callid.c	/^static char callid_buf[CALLID_NR_LEN + CALLID_SUFFIX_LEN];$/;"	v	file:
-callid_col	modules/usrloc/ul_mod.c	/^str callid_col      = {CALLID_COL, sizeof(CALLID_COL) - 1};         \/* Name of column containing callid string *\/$/;"	v
-callid_nr	modules/tm/callid.c	/^static unsigned long callid_nr;$/;"	v	file:
-callid_prefix	modules/tm/callid.c	/^str callid_prefix;$/;"	v
-callid_suffix	modules/tm/callid.c	/^str callid_suffix;$/;"	v
-cancel_branch	modules/tm/t_cancel.c	/^void cancel_branch( struct cell *t, int branch )$/;"	f
-cancel_uacs	modules/tm/t_cancel.c	/^void cancel_uacs( struct cell *t, branch_bm_t cancel_bm )$/;"	f
-canonize_headername	modules/exec/exec_hf.c	/^static int canonize_headername(str *orig, char **hname, int *hlen )$/;"	f	file:
-cap	db/db.h	/^	unsigned int     cap;          \/* Capability vector of the database transport *\/$/;"	m	struct:db_func
-case_port	parser/parse_uri.c	100;"	d	file:
-case_port	test/p_uri.c	82;"	d	file:
-case_sensitive	modules/cpl-c/cpl_env.h	/^	int    case_sensitive;  \/* is user part case sensitive ? *\/$/;"	m	struct:cpl_enviroment
-case_sensitive	modules/registrar/reg_mod.c	/^int case_sensitive  = 0;              \/* If set to 1, username in aor will be case sensitive *\/$/;"	v
-cb	modules/usrloc/notify.h	/^	notcb_t cb;$/;"	m	struct:notify_cb
-cb_data	modules/tm/uac_fifo.c	/^struct cb_data {$/;"	s	file:
-cb_function	script_cb.h	/^typedef int (cb_function)( struct sip_msg *msg, void *param );$/;"	t
-cb_id	script_cb.c	/^static unsigned int cb_id=0;$/;"	v	file:
-cbf	modules/jabber/xjab_base.h	/^	pa_callback_f cbf;	\/\/ callback function$/;"	m	struct:_xj_sipmsg
-cbf	modules/jabber/xjab_presence.h	/^	pa_callback_f cbf;$/;"	m	struct:_xj_pres_cell
-cbf	script_cb.h	/^	cb_function *cbf;$/;"	m	struct:script_cb
-cblen	modules/nathelper/nathelper.c	/^static int cblen = 0;$/;"	v	file:
-cbp	modules/jabber/xjab_presence.h	/^	void *cbp;$/;"	m	struct:_xj_pres_cell
-ccitt_tab	crc.c	/^unsigned short int ccitt_tab[] = { \/* CRC polynomial 0x8408 *\/$/;"	v
-cdata	modules/jabber/xode.h	/^    char *cdata;$/;"	m	struct:xode_stream_struct
-cdata_len	modules/jabber/xode.h	/^    int cdata_len;$/;"	m	struct:xode_stream_struct
-cds2sms	modules/sms/libsms_getsms.c	/^int cds2sms(struct incame_sms *sms, struct modem *mdm, char *s, int s_len)$/;"	f
-cds_report	modules/sms/libsms_modem.h	/^typedef int(*cds_report)( struct modem* , char* , int );$/;"	t
-cds_report_func	modules/sms/libsms_modem.c	/^cds_report  cds_report_func;$/;"	v
-cell	modules/tm/h_table.h	/^typedef struct cell$/;"	s
-cell_type	modules/tm/h_table.h	/^}cell_type;$/;"	t
-cfg	cfg.y	/^cfg:	statements$/;"	l
-cfg_errors	main.c	/^int cfg_errors=0;$/;"	v
-cfg_file	main.c	/^char* cfg_file = 0;$/;"	v
-chall	modules/auth_diameter/defs.h	/^	unsigned char *chall;$/;"	m	struct:rd_buf
-chall_len	modules/auth_diameter/defs.h	/^	unsigned int chall_len; $/;"	m	struct:rd_buf
-challenge	modules/auth/challenge.c	/^static inline int challenge(struct sip_msg* _msg, str* _realm, int _qop, $/;"	f	file:
-challenge_fixup	modules/auth/auth_mod.c	/^static int challenge_fixup(void** param, int param_no)$/;"	f	file:
-change_state	tcp_read.c	153;"	d	file:
-change_state_case	tcp_read.c	161;"	d	file:
-char_msg_val	parser/msg_parser.h	/^inline static int char_msg_val( struct sip_msg *msg, char *cv )$/;"	f
-charset	modules/msilo/msfuncs.h	/^	str charset;$/;"	m	struct:_content_type
-charset	modules/sms/libsms_charset.c	/^unsigned char charset[128] ={$/;"	v
-chash	modules/pdt/domains.h	/^	h_entry_t* chash;$/;"	m	struct:_double_hash
-check	mem/f_malloc.h	/^	unsigned long check;$/;"	m	struct:fm_frag
-check	mem/q_malloc.h	/^	unsigned long check;$/;"	m	struct:qm_frag
-check	mem/vq_malloc.h	/^	unsigned long check;$/;"	m	struct:vqm_frag
-check1	mem/q_malloc.h	/^	unsigned long check1;$/;"	m	struct:qm_frag_end
-check2	mem/q_malloc.h	/^	unsigned long check2;$/;"	m	struct:qm_frag_end
-checkAsymmetricFile	modules/mediaproxy/mediaproxy.c	/^checkAsymmetricFile(AsymmetricClients *aptr)$/;"	f	file:
-checkContentType	modules/mediaproxy/mediaproxy.c	/^checkContentType(struct sip_msg *msg)$/;"	f	file:
-check_alias	scripts/sc	/^check_alias() {$/;"	f
-check_alias	scripts/sc_unixsock	/^check_alias() {$/;"	f
-check_all_branches	modules/permissions/permissions.c	/^static int check_all_branches = 1;$/;"	v	file:
-check_and_split_time_list	modules/tm/timer.c	/^static struct timer_link  *check_and_split_time_list( struct timer *timer_list,$/;"	f	file:
-check_and_split_timer	modules/pike/timer.c	/^void check_and_split_timer(struct list_link *head, int time,$/;"	f
-check_avp_galias	usr_avp.c	/^static inline int check_avp_galias(str *alias, int type, int_str avp_name)$/;"	f	file:
-check_byxxx	modules/cpl-c/cpl_time.c	/^int check_byxxx(tmrec_p _trp, ac_tm_p _atp)$/;"	f
-check_cds_report	modules/sms/sms_funcs.c	/^int check_cds_report( struct modem *mdm, char *cds, int cds_len)$/;"	f
-check_contacts	modules/registrar/sip_msg.c	/^int check_contacts(struct sip_msg* _m, int* _s)$/;"	f
-check_content_type	modules/nathelper/nhelpr_funcs.c	/^int check_content_type(struct sip_msg *msg)$/;"	f
-check_dig_cred	parser/digest/digest.c	/^dig_err_t check_dig_cred(dig_cred_t* _c)$/;"	f
-check_freq_interval	modules/cpl-c/cpl_time.c	/^int check_freq_interval(tmrec_p _trp, ac_tm_p _atp)$/;"	f
-check_from	modules/uri_db/checks.c	/^int check_from(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-check_host_end	parser/parse_uri.c	126;"	d	file:
-check_host_end	test/p_uri.c	108;"	d	file:
-check_memory	modules/sms/libsms_getsms.c	/^int check_memory(struct modem *mdm, int flag)$/;"	f
-check_message	modules/pa/subscribe.c	/^int check_message(struct sip_msg* _m)$/;"	f
-check_min_unit	modules/cpl-c/cpl_time.c	/^int check_min_unit(tmrec_p _trp, ac_tm_p _atp, tr_res_p _tsw)$/;"	f
-check_msg	modules/tm/uac_unixsock.c	/^static int check_msg(struct sip_msg* msg, str* method, str* body, $/;"	f	file:
-check_new_uri	modules/ext/ext.c	/^static int check_new_uri = 1;$/;"	v	file:
-check_nonce	modules/auth/nonce.c	/^int check_nonce(str* _nonce, str* _secret)$/;"	f
-check_overflow	modules/cpl-c/cpl_parser.c	72;"	d	file:
-check_overflow_by_offset	modules/cpl-c/cpl_run.c	79;"	d	file:
-check_overflow_by_ptr	modules/cpl-c/cpl_run.c	70;"	d	file:
-check_params	modules/tm/uac.c	/^static inline int check_params(str* method, str* to, str* from, dlg_t** dialog)$/;"	f	file:
-check_register	modules/permissions/permissions.c	/^static int check_register(struct sip_msg* msg, int idx)$/;"	f	file:
-check_response	modules/auth_db/authorize.c	/^static inline int check_response(dig_cred_t* _cred, str* _method, char* _ha1)$/;"	f	file:
-check_routing	modules/permissions/permissions.c	/^static int check_routing(struct sip_msg* msg, int idx) $/;"	f	file:
-check_run	etc/imgwd	/^check_run() {$/;"	f
-check_run	etc/obsoleted/sip2jabd	/^check_run() {$/;"	f
-check_self	forward.c	/^int check_self(str* host, unsigned short port, unsigned short proto)$/;"	f
-check_self_op	route.c	/^inline static int check_self_op(int op, str* s, unsigned short p)$/;"	f	file:
-check_sms_report	modules/sms/sms_funcs.c	/^int check_sms_report( struct incame_sms *sms )$/;"	f
-check_time	modules/jabber/jabber.c	/^int check_time = 20;$/;"	v
-check_timeout_in_report_queue	modules/sms/sms_report.c	/^void check_timeout_in_report_queue()$/;"	f
-check_tmrec	modules/cpl-c/cpl_time.c	/^int check_tmrec(tmrec_p _trp, ac_tm_p _atp, tr_res_p _tsw)$/;"	f
-check_to	modules/uri_db/checks.c	/^int check_to(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-check_transaction_quadruple	parser/msg_parser.c	/^int check_transaction_quadruple( struct sip_msg* msg )$/;"	f
-check_uri	modules/postgres/serpgctl	/^check_uri() {$/;"	f
-check_uri	scripts/sc	/^check_uri() {$/;"	f
-check_uri	scripts/sc_unixsock	/^check_uri() {$/;"	f
-check_userhost	modules/cpl-c/cpl_loader.c	/^static inline int check_userhost( char *p, char *end)$/;"	f	file:
-check_username	modules/uri_db/checks.c	/^static inline int check_username(struct sip_msg* _m, str* _uri)$/;"	f	file:
-check_via	main.c	/^int check_via =  0;        $/;"	v
-check_via_address	msg_translator.c	/^static int check_via_address(struct ip_addr* ip, str *name, $/;"	f	file:
-checkmodem	modules/sms/libsms_modem.c	/^int checkmodem(struct modem *mdm)$/;"	f
-child	modules/postgres/aug_alloc.c	/^	MemHead *parent, *sibling, *child;$/;"	m	struct:MemHeadStruct	file:
-child_init	modules/acc/acc_mod.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/auth_db/authdb_mod.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/avp_db/avp_db.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/dispatcher/dispatcher.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/domain/domain_mod.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/flatstore/flatstore_mod.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/group/group_mod.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/jabber/jabber.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/msilo/msilo.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/nathelper/nathelper.c	/^child_init(int rank)$/;"	f	file:
-child_init	modules/permissions/permissions.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/speeddial/speeddial.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/tm/tm.c	/^static int child_init(int rank) {$/;"	f	file:
-child_init	modules/uri_db/uridb_mod.c	/^static int child_init(int rank)$/;"	f	file:
-child_init	modules/usrloc/ul_mod.c	/^static int child_init(int _rank)$/;"	f	file:
-child_init	modules/xlog/xlog.c	/^static int child_init(int rank)$/;"	f	file:
-child_init_callid	modules/tm/callid.c	/^int child_init_callid(int rank) $/;"	f
-child_init_function	sr_module.h	/^typedef int (*child_init_function)(int rank);$/;"	t
-children_no	main.c	/^int children_no = 0;			\/* number of children processing requests *\/$/;"	v
-chkctx	modules/jabber/tree234.c	/^} chkctx;$/;"	t	file:
-chknode	modules/jabber/tree234.c	/^int chknode(chkctx *ctx, int level, node234 *node,$/;"	f
-chroot_dir	main.c	/^char* chroot_dir = 0;$/;"	v
-cld_pid	modules/xlog/xl_lib.c	/^int cld_pid = 0;$/;"	v
-clean_hdr_field	parser/hf.c	/^void clean_hdr_field(struct hdr_field* hf)$/;"	f
-clean_routine	modules/pike/pike_funcs.c	/^void clean_routine(unsigned int ticks , void *param)$/;"	f
-clean_trusted	modules/permissions/trusted.c	/^void clean_trusted(void)$/;"	f
-cleanup	main.c	/^void cleanup(show_status)$/;"	f
-cleanup	modules/jabber/xode.h	/^    struct xode_pool_free *cleanup;$/;"	m	struct:xode_pool_struct
-cleanup_localcancel_timers	modules/tm/timer.c	/^void cleanup_localcancel_timers( struct cell *t )$/;"	f
-cleanup_uac_timers	modules/tm/t_reply.c	/^void cleanup_uac_timers( struct cell *t )$/;"	f
-clear_branches	dset.c	/^void clear_branches(void)$/;"	f
-clen_builder	msg_translator.c	/^char* clen_builder(struct sip_msg* msg, int *clen_len, int diff)$/;"	f
-client	utils/fifo_relay/fifo_server.php	/^      $client = ip2long(fgets($fd, 4096));$/;"	v
-client_struct	modules/extcmd/clients.h	/^typedef struct client_struct$/;"	s
-client_t	modules/extcmd/clients.h	/^}client_t;$/;"	t
-clients	modules/extcmd/clients.h	/^client_t clients[MAX_CLIENTS];$/;"	v
-clients	modules/mediaproxy/mediaproxy.c	/^    regex_t **clients; \/\/ the asymmetric clients regular expressions$/;"	m	file:
-clients	utils/fifo_relay/fifo_server.php	/^    $clients = array();$/;"	v
-clients_is_full	modules/extcmd/clients.h	/^inline int clients_is_full()$/;"	f
-clist	modules/jabber/xjab_presence.h	/^	xj_pres_cell clist;$/;"	m	struct:_xj_pres_list
-clone_authorized_hooks	modules/tm/sip_msg.c	/^static inline int clone_authorized_hooks(struct sip_msg* new,$/;"	f	file:
-close	db/db.h	/^	db_close_f       close;        \/* Close database connection *\/$/;"	m	struct:db_func
-close_prog_input	modules/ext/my_exec.h	/^inline void close_prog_input()$/;"	f
-close_prog_output	modules/ext/my_exec.h	/^inline void close_prog_output()$/;"	f
-close_tcp_connection	modules/acc/diam_tcp.c	/^void close_tcp_connection(int sfd)$/;"	f
-close_tcp_connection	modules/auth_diameter/tcp_comm.c	/^void close_tcp_connection(int sfd)$/;"	f
-close_unixsock_server	unixsock_server.c	/^void close_unixsock_server(void)$/;"	f
-closemodem	modules/sms/libsms_modem.c	/^int closemodem(struct modem *mdm)$/;"	f
-cmd	cfg.y	/^cmd:		FORWARD LPAREN host RPAREN	{ $$=mk_action(	FORWARD_T,$/;"	l
-cmd	modules/extcmd/extcmd_funcs.c	/^	str cmd;$/;"	m	struct:anchor_struct	file:
-cmd_export_	sr_module.h	/^struct cmd_export_ {$/;"	s
-cmd_export_t	sr_module.h	/^typedef struct cmd_export_ cmd_export_t;$/;"	t
-cmd_function	sr_module.h	/^typedef  int (*cmd_function)(struct sip_msg*, char*, char*);$/;"	t
-cmd_list	fifo_server.c	/^static struct fifo_command *cmd_list=0;$/;"	v	file:
-cmd_list	unixsock_server.c	/^static struct unixsock_cmd* cmd_list = 0;$/;"	v	file:
-cmd_pipe	modules/cpl-c/cpl_env.h	/^	int    cmd_pipe[2];     \/* communication pipe with aux. process *\/$/;"	m	struct:cpl_enviroment
-cmds	modules/acc/acc_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/auth/auth_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/auth_db/authdb_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/auth_diameter/auth_diameter.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/auth_radius/authrad_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/avp/avp.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/avp_db/avp_db.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/avp_radius/avp_radius.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/avpops/avpops.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/cpl-c/cpl.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/cpl/cpl.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/dbtext/dbtext.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/dispatcher/dispatcher.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/diversion/diversion.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/domain/domain_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/enum/enum_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/exec/exec_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/ext/ext.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/extcmd/extcmd.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/flatstore/flatstore_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/gflags/gflags.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/group/group_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/group_radius/grouprad_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/jabber/jabber.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/mangler/mangler.c	/^static cmd_export_t cmds[] = $/;"	v	file:
-cmds	modules/maxfwd/maxfwd.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/msilo/msilo.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/mysql/db_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/nathelper/nathelper.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/options/mod_options.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/pa/pa_mod.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/pdt/pdt.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/permissions/permissions.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/pike/pike.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/postgres/db_mod.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/print/print.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/registrar/reg_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/rr/rr_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/sl/sl.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/sms/sms.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/speeddial/speeddial.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/textops/textops.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/tm/tm.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	modules/uri/uri_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/uri_db/uridb_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/uri_radius/urirad_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/usrloc/ul_mod.c	/^static cmd_export_t cmds[] = {$/;"	v	file:
-cmds	modules/xlog/xlog.c	/^static cmd_export_t cmds[]={$/;"	v	file:
-cmds	sr_module.h	/^	cmd_export_t* cmds;             \/* null terminated array of the exported$/;"	m	struct:module_exports
-cmp	modules/jabber/tree234.c	/^    cmpfn234 cmp;$/;"	m	struct:tree234_Tag	file:
-cmp	modules/jabber/tree234.c	/^cmpfn234 cmp;$/;"	v
-cmp_flat_id	modules/flatstore/flat_id.c	/^unsigned char cmp_flat_id(struct flat_id* id1, struct flat_id* id2)$/;"	f
-cmp_my_id	modules/mysql/my_id.c	/^unsigned char cmp_my_id(struct my_id* id1, struct my_id* id2)$/;"	f
-cmpfn234	modules/jabber/tree234.h	/^typedef int (*cmpfn234)(void *, void *);$/;"	t
-cname_rdata	resolve.h	/^struct cname_rdata {$/;"	s
-cnetaddr	modules/nathelper/nathelper.c	/^	const char *cnetaddr;$/;"	m	file:
-cnon_CASE	parser/digest/param_parser.c	133;"	d	file:
-cnonce	parser/digest/digest_parser.h	/^	str cnonce;                 \/* Cnonce value *\/$/;"	m	struct:dig_cred
-coNT	parser/obsolete/strs.h	149;"	d
-coNt	parser/obsolete/strs.h	148;"	d
-code	modules/acc/diam_message.h	/^	AAA_AVPCode code;$/;"	m	struct:avp
-code	modules/auth_diameter/diameter_msg.h	/^	AAA_AVPCode code;$/;"	m	struct:avp
-code	modules/cpl-c/cpl_nonsig.h	/^	unsigned int code;$/;"	m	struct:cpl_cmd
-code	modules/pdt/domains.h	/^    code_t code;$/;"	m	struct:_dc
-code	modules/tm/t_hooks.h	/^	int code;$/;"	m	struct:tmcb_params
-code_t	modules/pdt/domains.h	/^typedef int code_t;$/;"	t
-code_terminator	modules/pdt/pdt.c	/^code_t code_terminator = 0;$/;"	v
-code_valid	modules/pdt/pdt.c	/^inline code_t code_valid(code_t code)$/;"	f
-codes	modules/pa/reply.c	/^int codes[] = {$/;"	v
-codes	modules/registrar/reply.c	/^int codes[] = {$/;"	v
-col	db/db_res.h	/^	} col;$/;"	m	struct:db_res
-collect_InReqs	stats.c	/^static int collect_InReqs(struct sip_snmp_obj *o, enum handler_op op)$/;"	f	file:
-collect_InResp	stats.c	/^static int collect_InResp(struct sip_snmp_obj *o, enum handler_op op)$/;"	f	file:
-collect_OutReqs	stats.c	/^static int collect_OutReqs(struct sip_snmp_obj *o, enum handler_op op)$/;"	f	file:
-collect_OutResp	stats.c	/^static int collect_OutResp(struct sip_snmp_obj *o, enum handler_op op)$/;"	f	file:
-collect_stats	stats.c	/^static int collect_stats(struct stats_s *s)$/;"	f	file:
-collect_this_stat	stats.c	696;"	d	file:
-colon_case	parser/parse_uri.c	176;"	d	file:
-colon_case	test/p_uri.c	158;"	d	file:
-cols	modules/dbtext/dbt_lib.h	/^	dbt_column_p cols;$/;"	m	struct:_dbt_table
-column	lex.yy.c	/^	int column=1;$/;"	v
-colv	modules/dbtext/dbt_lib.h	/^	dbt_column_p *colv;$/;"	m	struct:_dbt_table
-colv	modules/dbtext/dbt_res.h	/^	dbt_column_p colv;$/;"	m	struct:_dbt_result
-commandCode	modules/acc/diam_message.h	/^	AAACommandCode      commandCode;$/;"	m	struct:_message_t
-commandCode	modules/auth_diameter/diameter_msg.h	/^	AAACommandCode      commandCode;$/;"	m	struct:_message_t
-commands	modules/mediaproxy/mediaproxy.c	/^static cmd_export_t commands[] = {$/;"	v	file:
-comment	parser/parse_via.h	/^	str comment;$/;"	m	struct:via_body
-comment_nest	lex.yy.c	/^	static int comment_nest=0;$/;"	v	file:
-commit_transaction	modules/postgres/dbase.c	/^static int commit_transaction(db_con_t * _h)$/;"	f	file:
-comp_ip	route.c	/^inline static int comp_ip(struct ip_addr* ip, void* param, int op, int subtype)$/;"	f	file:
-comp_no	route.c	/^inline static int comp_no( int port, void *param, int op, int subtype )$/;"	f	file:
-comp_str	route.c	/^inline static int comp_str(char* str, void* param, int op, int subtype)$/;"	f	file:
-comp_strstr	route.c	/^inline static int comp_strstr(str* str, void* param, int op, int subtype)$/;"	f	file:
-compacthdr_type2str	modules/exec/exec_hf.c	/^static int compacthdr_type2str(int type, char **hname, int *hlen )$/;"	f	file:
-compare_location_placeid_rows	modules/pa/location.c	/^static int compare_location_placeid_rows(const void *v1, const void *v2)$/;"	f	file:
-compile_expresions	modules/mangler/sdp_mangler.c	/^int compile_expresions(char *port,char *ip)$/;"	f
-compile_logs	modules/cpl-c/cpl_log.c	/^void compile_logs( str *log)$/;"	f
-compiled	main.c	/^char compiled[]= __TIME__ " " __DATE__ ;$/;"	v
-complete	modules/jabber/xode.h	/^     int                  complete;$/;"	m	struct:xode_struct
-complete	tcp_conn.h	/^	int complete; \/* 1 if one req has been fully read, 0 otherwise*\/$/;"	m	struct:tcp_req
-complete_uri	modules/ext/ext.c	/^static int complete_uri( str *user ,str *uri, struct sip_uri* puri )$/;"	f	file:
-completed_2xx	modules/tm/t_stats.h	/^		completed_6xx, completed_2xx;$/;"	m	struct:t_stats
-completed_3xx	modules/tm/t_stats.h	/^	stat_counter completed_3xx, completed_4xx, completed_5xx, $/;"	m	struct:t_stats
-completed_4xx	modules/tm/t_stats.h	/^	stat_counter completed_3xx, completed_4xx, completed_5xx, $/;"	m	struct:t_stats
-completed_5xx	modules/tm/t_stats.h	/^	stat_counter completed_3xx, completed_4xx, completed_5xx, $/;"	m	struct:t_stats
-completed_6xx	modules/tm/t_stats.h	/^		completed_6xx, completed_2xx;$/;"	m	struct:t_stats
-compose_hdr	modules/avpops/avpops_impl.c	/^inline static int compose_hdr(str *name, str *val, str *hdr, int new)$/;"	f	file:
-compute_ID	usr_avp.c	/^inline static unsigned short compute_ID( str *name )$/;"	f	file:
-compute_hash	modules/pa/watcher.c	/^unsigned int compute_hash(unsigned int _h, char* s, int len)$/;"	f
-compute_hash	modules/pdt/domains.c	/^unsigned int compute_hash(char* s)$/;"	f
-con	modules/dbtext/dbt_res.h	/^	dbt_cache_p con;$/;"	m	struct:_dbt_con
-con	modules/mysql/my_con.h	/^	MYSQL* con;          \/* Connection representation *\/$/;"	m	struct:my_con
-con	modules/postgres/con_postgres.h	/^	PGconn *con;	\/* this is the postgres connection *\/$/;"	m	struct:con_postgres
-conT	parser/obsolete/strs.h	147;"	d
-con_aliases	tcp_conn.h	/^	struct tcp_conn_alias con_aliases[TCP_CON_MAX_ALIASES];$/;"	m	struct:tcp_connection
-con_postgres	modules/postgres/con_postgres.h	/^struct con_postgres {$/;"	s
-cond	lump_struct.h	/^		enum lump_conditions cond; \/* condition for LUMP_ADD_OPT *\/$/;"	m	union:lump::<anonymous>
-condition	cfg.y	/^condition:	exp {$$=$1;}$/;"	l
-config_check	main.c	/^int config_check = 0;$/;"	v
-config_h	config.h	38;"	d
-conn_cmds	tcp_conn.h	/^enum conn_cmds { CONN_DESTROY=-3, CONN_ERROR=-2, CONN_EOF=-1, CONN_RELEASE, $/;"	g
-connect_db	modules/postgres/dbase.c	/^static int connect_db(db_con_t* _h, const char* _db_url)$/;"	f	file:
-connected	modules/postgres/con_postgres.h	/^	int connected;$/;"	m	struct:con_postgres
-connection_id	tcp_main.c	/^static int* connection_id=0; \/*  unique for each connection, used for $/;"	v	file:
-consume_credentials	modules/auth/challenge.c	/^int consume_credentials(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-consume_credentials	scripts/serconf.sh	/^		consume_credentials();$/;"	f
-consume_request	fifo_server.c	/^static void consume_request( FILE *stream )$/;"	f	file:
-cont	parser/obsolete/strs.h	146;"	d
-cont_CASE	parser/case_cont.h	124;"	d
-contact	modules/pa/presentity.h	/^	str contact;$/;"	m	struct:presence_tuple
-contact	modules/registrar/reply.c	/^} contact = {0, 0, 0};$/;"	v	file:
-contact	parser/contact/contact.h	/^typedef struct contact {$/;"	s
-contact	parser/msg_parser.h	/^	struct hdr_field* contact;$/;"	m	struct:sip_msg
-contact	parser/parse_param.h	/^	struct contact_hooks contact; \/* Contact hooks *\/$/;"	m	union:param_hooks
-contact_1918	modules/nathelper/nathelper.c	/^contact_1918(struct sip_msg* msg)$/;"	f	file:
-contact_body	parser/contact/parse_contact.h	/^typedef struct contact_body {$/;"	s
-contact_body_t	parser/contact/parse_contact.h	/^} contact_body_t;$/;"	t
-contact_col	modules/usrloc/ul_mod.c	/^str contact_col     = {CONTACT_COL, sizeof(CONTACT_COL) - 1};       \/* Name of column containing contact addresses *\/$/;"	v
-contact_fields_t	modules/mangler/contact_ops.h	/^typedef struct uri_format contact_fields_t;$/;"	t
-contact_flds_separator	modules/mangler/contact_ops.h	/^char *contact_flds_separator;$/;"	v
-contact_flds_separator	modules/mangler/mangler.c	/^char *contact_flds_separator = DEFAULT_SEPARATOR;$/;"	v
-contact_hooks	parser/parse_param.h	/^struct contact_hooks {$/;"	s
-contact_iterator	parser/contact/parse_contact.c	/^int contact_iterator(contact_t** c, struct sip_msg* msg, contact_t* prev)$/;"	f
-contact_parser	parser/contact/parse_contact.c	/^static inline int contact_parser(char* _s, int _l, contact_body_t* _c)$/;"	f	file:
-contact_t	parser/contact/contact.h	/^} contact_t;$/;"	t
-contacts	modules/registrar/save.c	/^static inline int contacts(struct sip_msg* _m, contact_t* _c, udomain_t* _d, str* _a, str* _ua)$/;"	f	file:
-contacts	modules/usrloc/urecord.h	/^	ucontact_t* contacts;          \/* One or more contact fields *\/$/;"	m	struct:urecord
-contacts	parser/contact/parse_contact.h	/^	contact_t* contacts;   \/* List of contacts *\/$/;"	m	struct:contact_body
-content_disposition	parser/msg_parser.h	/^	struct hdr_field* content_disposition;$/;"	m	struct:sip_msg
-content_len	tcp_conn.h	/^	int content_len;$/;"	m	struct:tcp_req
-content_len_beg_case	tcp_read.c	134;"	d	file:
-content_length	parser/msg_parser.h	/^	struct hdr_field* content_length;$/;"	m	struct:sip_msg
-content_type	parser/msg_parser.h	/^	struct hdr_field* content_type;$/;"	m	struct:sip_msg
-controlfd	modules/nathelper/nathelper.c	/^static int controlfd;$/;"	v	file:
-conv_10	modules/jabber/xsnprintf.c	/^conv_10(register wide_int num, register bool_int is_unsigned,$/;"	f	file:
-conv_fp	modules/jabber/xsnprintf.c	/^conv_fp(register char format, register double num,$/;"	f	file:
-conv_p2	modules/jabber/xsnprintf.c	/^conv_p2(register u_wide_int num, register int nbits,$/;"	f	file:
-convert_result	modules/mysql/res.c	/^int convert_result(db_con_t* _h, db_res_t* _r)$/;"	f
-convert_result	modules/postgres/db_res.c	/^int convert_result(db_con_t* _h, db_res_t* _r)$/;"	f
-convert_row	modules/mysql/row.c	/^int convert_row(db_con_t* _h, db_res_t* _res, db_row_t* _r)$/;"	f
-convert_row_pg	modules/postgres/db_res.c	/^int convert_row_pg(db_con_t* _h, db_res_t* _res, db_row_t* _r, char **row_buf,$/;"	f
-convert_rows	modules/mysql/res.c	/^static inline int convert_rows(db_con_t* _h, db_res_t* _r)$/;"	f	file:
-convert_rows	modules/postgres/db_res.c	/^static inline int convert_rows(db_con_t* _h, db_res_t* _r)$/;"	f	file:
-copy_route	modules/tm/t_fifo.c	111;"	d	file:
-core	mem/vq_malloc.h	/^	char *core, *init_core, *core_end;$/;"	m	struct:vqm_block
-core_end	mem/vq_malloc.h	/^	char *core, *init_core, *core_end;$/;"	m	struct:vqm_block
-count	lex.yy.c	/^static void count()$/;"	f	file:
-count	md5.h	/^  UINT4 count[2];        \/* number of bits, modulo 2^64 (lsb first) *\/$/;"	m
-count	modules/mediaproxy/mediaproxy.c	/^    int count;         \/\/ how many clients are in array above$/;"	m	file:
-count	modules/pdt/doc/web/request.php	/^	$count = 1000;$/;"	v
-count234	modules/jabber/tree234.c	/^int count234(tree234 *t) {$/;"	f
-countnode234	modules/jabber/tree234.c	/^static int countnode234(node234 *n) {$/;"	f	file:
-counts	modules/jabber/tree234.c	/^    int counts[4];$/;"	m	struct:node234_Tag	file:
-cpl_aux_process	modules/cpl-c/cpl_nonsig.c	/^void cpl_aux_process( int cmd_out, char *log_dir)$/;"	f
-cpl_child_init	modules/cpl-c/cpl.c	/^static int cpl_child_init(int rank)$/;"	f	file:
-cpl_cmd	modules/cpl-c/cpl_nonsig.h	/^struct cpl_cmd {$/;"	s
-cpl_db_bind	modules/cpl-c/cpl_db.c	/^int cpl_db_bind(char* db_url)$/;"	f
-cpl_db_close	modules/cpl-c/cpl_db.c	/^void cpl_db_close()$/;"	f
-cpl_db_init	modules/cpl-c/cpl_db.c	/^int cpl_db_init(char* db_url, char* db_table)$/;"	f
-cpl_dbf	modules/cpl-c/cpl_db.c	/^static db_func_t cpl_dbf;$/;"	v	file:
-cpl_env	modules/cpl-c/cpl.c	/^struct cpl_enviroment    cpl_env = {$/;"	v
-cpl_enviroment	modules/cpl-c/cpl_env.h	/^struct cpl_enviroment {$/;"	s
-cpl_err	modules/cpl-c/cpl.c	/^static struct cpl_error *cpl_err = &bad_req;$/;"	v	file:
-cpl_error	modules/cpl-c/cpl.c	/^struct cpl_error {$/;"	s	file:
-cpl_exit	modules/cpl-c/cpl.c	/^static int cpl_exit(void)$/;"	f	file:
-cpl_fct	modules/cpl-c/cpl.c	/^struct cpl_functions  cpl_fct;$/;"	v
-cpl_functions	modules/cpl-c/cpl_env.h	/^struct cpl_functions {$/;"	s
-cpl_get	modules/cpl-c/cpl_loader.c	/^int cpl_get( FILE *fifo_stream, char *response_file )$/;"	f
-cpl_init	modules/cpl-c/cpl.c	/^static int cpl_init(void)$/;"	f	file:
-cpl_interpreter	modules/cpl-c/cpl_run.h	/^struct cpl_interpreter {$/;"	s
-cpl_invoke_script	modules/cpl-c/cpl.c	/^static int cpl_invoke_script(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-cpl_is_response_accept	modules/cpl/cpl.c	/^static int cpl_is_response_accept(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-cpl_is_response_redirect	modules/cpl/cpl.c	/^static int cpl_is_response_redirect(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-cpl_is_response_reject	modules/cpl/cpl.c	/^static int cpl_is_response_reject(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-cpl_load	modules/cpl-c/cpl_loader.c	/^int cpl_load( FILE *fifo_stream, char *response_file )$/;"	f
-cpl_logs	modules/cpl-c/cpl_log.c	/^static str  cpl_logs[MAX_LOG_NR];$/;"	v	file:
-cpl_port	modules/cpl/cpl.c	/^unsigned int   cpl_port = 18011;$/;"	v
-cpl_process_register	modules/cpl-c/cpl.c	/^static int cpl_process_register(struct sip_msg* msg, int no_rpl)$/;"	f	file:
-cpl_proxy_to_loc_set	modules/cpl-c/cpl_sig.c	/^int cpl_proxy_to_loc_set( struct sip_msg *msg, struct location **locs,$/;"	f
-cpl_remove	modules/cpl-c/cpl_loader.c	/^int cpl_remove( FILE *fifo_stream, char *response_file )$/;"	f
-cpl_run_script	modules/cpl-c/cpl_run.c	/^int cpl_run_script( struct cpl_interpreter *intr )$/;"	f
-cpl_run_script	modules/cpl/cpl.c	/^static int cpl_run_script(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-cpl_server	modules/cpl/cpl.c	/^char           *cpl_server = "127.0.0.1";$/;"	v
-cpl_update_contact	modules/cpl/cpl.c	/^static int cpl_update_contact(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-crc32file	crc.c	/^int crc32file (char *name)$/;"	f
-crc_16_tab	crc.c	/^unsigned short int crc_16_tab[] = { \/* CRC polynomial 0xA001 *\/$/;"	v
-crc_32_tab	crc.c	/^unsigned long int crc_32_tab[] = { \/* CRC polynomial 0xedb88320 *\/$/;"	v
-crcitt_string	crc.c	/^unsigned short crcitt_string( char *s, int len )$/;"	f
-crcitt_string_array	crc.c	/^void crcitt_string_array( char *dst, str src[], int size )$/;"	f
-create_headers	modules/pa/notify.c	/^static inline int create_headers(struct watcher* _w)$/;"	f	file:
-create_presentity	modules/pa/subscribe.c	/^int create_presentity(struct sip_msg* _m, struct pdomain* _d, str* _puri, $/;"	f
-create_presentity_only	modules/pa/presentity.c	/^int create_presentity_only(struct sip_msg* _m, struct pdomain* _d, str* _puri, $/;"	f
-create_rcv_uri	modules/nathelper/nathelper.c	/^create_rcv_uri(str* uri, struct sip_msg* m)$/;"	f	file:
-create_vars	modules/exec/exec_hf.c	/^static int create_vars(struct hf_wrapper *list, int offset)$/;"	f	file:
-cred_realm	modules/acc/acc.c	/^static inline str *cred_realm(struct sip_msg *rq)$/;"	f	file:
-cred_user	modules/acc/acc.c	/^static inline str *cred_user(struct sip_msg *rq)$/;"	f	file:
-credentials	modules/postgres/serpgctl	/^credentials()$/;"	f
-credentials	scripts/sc	/^credentials()$/;"	f
-credentials	scripts/sc_unixsock	/^credentials()$/;"	f
-credentials	scripts/ser_mysql.sh	/^credentials()$/;"	f
-crlf_default_skip_case	tcp_read.c	127;"	d	file:
-crt	lex.yy.c	/^		char* crt;$/;"	m	struct:str_buf	file:
-crt_avps	usr_avp.c	/^static struct usr_avp **crt_avps  = &global_avps;$/;"	v	file:
-csEQ	parser/obsolete/strs.h	105;"	d
-csEq	parser/obsolete/strs.h	104;"	d
-cseQ	parser/obsolete/strs.h	103;"	d
-cseq	modules/usrloc/ucontact.h	/^        int cseq;               \/* CSeq value *\/$/;"	m	struct:ucontact
-cseq	parser/msg_parser.h	/^	struct hdr_field* cseq;$/;"	m	struct:sip_msg
-cseq	parser/obsolete/strs.h	102;"	d
-cseq_CASE	parser/case_cseq.h	35;"	d
-cseq_body	parser/parse_cseq.h	/^struct cseq_body{$/;"	s
-cseq_col	modules/usrloc/ul_mod.c	/^str cseq_col        = {CSEQ_COL, sizeof(CSEQ_COL) - 1};             \/* Name of column containing cseq values *\/$/;"	v
-cseq_n	modules/tm/h_table.h	/^	str from, callid, cseq_n, to;$/;"	m	struct:cell
-cstate	modules/usrloc/ucontact.h	/^typedef enum cstate {$/;"	g
-cstate_t	modules/usrloc/ucontact.h	/^} cstate_t;$/;"	t
-cur_entries	modules/tm/h_table.h	/^	unsigned long cur_entries;$/;"	m	struct:entry
-cur_mtime	utils/fifo_relay/fifo_server.php	/^  $cur_mtime = filemtime($fifo_clients);$/;"	v
-current_bytes_allocated	modules/postgres/aug_alloc.h	/^	unsigned long current_bytes_allocated;	\/* Running allocation total *\/$/;"	m
-cvp	modules/cpl-c/cpl_parser.c	/^static xmlValidCtxt  cvp;     \/* validating context *\/$/;"	v	file:
-cvt_hex	modules/auth_db/rfc2617.c	/^inline void cvt_hex(HASH _b, HASHHEX _h)$/;"	f
-d	modules/jabber/xjab_worker.h	/^	char *d;	\/\/ user part delimiter for aliases$/;"	m	struct:_xj_jalias
-d	modules/pa/dlist.h	/^	pdomain_t* d;        \/* Payload *\/$/;"	m	struct:dlist
-d	modules/pa/hslot.h	/^	struct pdomain* d;         \/* Domain we belong to *\/$/;"	m	struct:hslot
-d	modules/usrloc/dlist.h	/^	udomain_t* d;        \/* Payload *\/$/;"	m	struct:dlist
-d	modules/usrloc/hslot.h	/^	struct udomain* d;      \/* Domain we belong to *\/$/;"	m	struct:hslot
-d_ll	modules/usrloc/udomain.h	/^	} d_ll;$/;"	m	struct:udomain
-d_ll	modules/usrloc/urecord.h	/^	} d_ll;$/;"	m	struct:urecord
-daemonize	daemonize.c	/^int daemonize(char*  name)$/;"	f
-damocles	modules/tm/h_table.h	/^	short damocles;$/;"	m	struct:cell
-data	modules/acc/diam_message.h	/^	str data;$/;"	m	struct:avp
-data	modules/auth_diameter/diameter_msg.h	/^	str data;$/;"	m	struct:avp
-data	modules/jabber/xode.h	/^     char*                data;$/;"	m	struct:xode_struct
-data	modules/usrloc/notify.h	/^	void* data;$/;"	m	struct:notify_cb
-data	route_struct.h	/^		void* data;$/;"	m	union:action::<anonymous>
-data	usr_avp.h	/^	void *data;$/;"	m	struct:usr_avp
-data_len	modules/registrar/reply.c	/^	int data_len;$/;"	m	file:
-data_lump_h	data_lump.h	41;"	d
-data_lump_rpl_h	data_lump_rpl.h	38;"	d
-data_sz	modules/jabber/xode.h	/^     int                  data_sz;$/;"	m	struct:xode_struct
-database	modules/mysql/my_id.h	/^	str database;  \/* Database, case sensitive *\/$/;"	m	struct:my_id
-database	modules/pdt/doc/web/request.php	/^$database="pdt";$/;"	v
-date	modules/sms/sms_funcs.h	/^	char date[DATE_LEN];$/;"	m	struct:incame_sms
-db_cap	db/db_cap.h	/^typedef enum db_cap {$/;"	g
-db_cap_t	db/db_cap.h	/^} db_cap_t;$/;"	t
-db_close	modules/mysql/dbase.c	/^void db_close(db_con_t* _h)$/;"	f
-db_close	modules/postgres/dbase.c	/^void db_close(db_con_t* _h)$/;"	f
-db_close_f	db/db.h	/^typedef void (*db_close_f) (db_con_t* _h); $/;"	t
-db_close_query	modules/avpops/avpops_db.c	/^void db_close_query( db_res_t *res )$/;"	f
-db_columns	modules/avpops/avpops.c	/^static char *db_columns[6] = {"uuid","attribute","value",$/;"	v	file:
-db_columns	modules/avpops/avpops_db.c	/^static char      **db_columns;  \/* array with names of DB columns *\/$/;"	v	file:
-db_con	modules/jabber/jabber.c	/^static db_con_t** db_con;$/;"	v	file:
-db_con	modules/msilo/msilo.c	/^static db_con_t *db_con = NULL;$/;"	v	file:
-db_con	modules/pdt/pdt.c	/^static db_con_t *db_con = NULL;$/;"	v	file:
-db_con_t	db/db_con.h	/^} db_con_t;$/;"	t
-db_delete	modules/mysql/dbase.c	/^int db_delete(db_con_t* _h, db_key_t* _k, db_op_t* _o, db_val_t* _v, int _n)$/;"	f
-db_delete	modules/postgres/dbase.c	/^int db_delete(db_con_t* _h, db_key_t* _k, db_op_t* _o, db_val_t* _v, int _n)$/;"	f
-db_delete_avp	modules/avpops/avpops_db.c	/^int db_delete_avp( str *uuid, str *username, str *domain, char *attr,$/;"	f
-db_delete_f	db/db.h	/^typedef int (*db_delete_f) (db_con_t* _h, db_key_t* _k, db_op_t* _o, db_val_t* _v, int _n);$/;"	t
-db_delete_ucontact	modules/usrloc/ucontact.c	/^int db_delete_ucontact(ucontact_t* _c)$/;"	f
-db_delete_urecord	modules/usrloc/urecord.c	/^int db_delete_urecord(urecord_t* _r)$/;"	f
-db_fifo	db/db_fifo.c	/^int db_fifo( FILE *fifo, char *response_file )$/;"	f
-db_fifo_cmd	db/db_fifo.h	35;"	d
-db_flag	modules/acc/acc_mod.c	/^int db_flag = 0;$/;"	v
-db_flags	modules/avpops/avpops_db.h	/^	int  db_flags;$/;"	m	struct:db_scheme
-db_free_query	modules/postgres/dbase.c	/^int db_free_query(db_con_t* _h, db_res_t* _r)$/;"	f
-db_free_result	modules/mysql/dbase.c	/^int db_free_result(db_con_t* _h, db_res_t* _r)$/;"	f
-db_free_result_f	db/db.h	/^typedef int (*db_free_result_f) (db_con_t* _h, db_res_t* _r);$/;"	t
-db_func	db/db.h	/^typedef struct db_func {$/;"	s
-db_func_t	db/db.h	/^} db_func_t;$/;"	t
-db_funcs	modules/speeddial/speeddial.c	/^db_func_t db_funcs;      \/* Database functions *\/$/;"	v
-db_handle	modules/acc/acc.c	/^static db_con_t* db_handle=0;$/;"	v	file:
-db_handle	modules/auth_db/authorize.c	/^static db_con_t* db_handle=0; \/* database connection handle *\/$/;"	v	file:
-db_handle	modules/avp_db/avp_db.c	/^static db_con_t* db_handle;$/;"	v	file:
-db_handle	modules/domain/domain.c	/^static db_con_t* db_handle=0;$/;"	v	file:
-db_handle	modules/group/group.c	/^static db_con_t* db_handle = 0;   \/* Database connection handle *\/$/;"	v	file:
-db_handle	modules/permissions/trusted.c	/^static db_con_t* db_handle = 0;$/;"	v	file:
-db_handle	modules/speeddial/speeddial.c	/^db_con_t* db_handle=0;   \/* Database connection handle *\/$/;"	v
-db_handle	modules/uri_db/checks.c	/^static db_con_t* db_handle = 0;   \/* Database connection handle *\/$/;"	v	file:
-db_hdl	modules/avpops/avpops_db.c	/^static db_con_t  *db_hdl=0;     \/* DB handler *\/$/;"	v	file:
-db_hdl	modules/cpl-c/cpl_db.c	/^static db_con_t* db_hdl=0;$/;"	v	file:
-db_init	modules/mysql/dbase.c	/^db_con_t* db_init(const char* _url)$/;"	f
-db_init	modules/postgres/dbase.c	/^db_con_t *db_init(const char* _sqlurl)$/;"	f
-db_init_f	db/db.h	/^typedef db_con_t* (*db_init_f) (const char* _sqlurl);$/;"	t
-db_insert	modules/mysql/dbase.c	/^int db_insert(db_con_t* _h, db_key_t* _k, db_val_t* _v, int _n)$/;"	f
-db_insert	modules/postgres/dbase.c	/^int db_insert(db_con_t* _h, db_key_t* _k, db_val_t* _v, int _n)$/;"	f
-db_insert_f	db/db.h	/^typedef int (*db_insert_f) (db_con_t* _h, db_key_t* _k, db_val_t* _v, int _n);$/;"	t
-db_insert_ucontact	modules/usrloc/ucontact.c	/^int db_insert_ucontact(ucontact_t* _c)$/;"	f
-db_key_t	db/db_key.h	/^typedef const char* db_key_t;$/;"	t
-db_load_avp	modules/avpops/avpops_db.c	/^db_res_t *db_load_avp( str *uuid, str *username, str *domain,$/;"	f
-db_localtime	modules/acc/acc_mod.c	/^int db_localtime = 0;$/;"	v
-db_missed_flag	modules/acc/acc_mod.c	/^int db_missed_flag = 0;$/;"	v
-db_mode	modules/domain/domain_mod.c	/^int db_mode = 0;			\/* Database usage mode: 0 = no cache, 1 = cache *\/$/;"	v
-db_mode	modules/permissions/permissions.c	/^int db_mode = DISABLE_CACHE;	   \/* Database usage mode: 0=no cache, 1=cache *\/$/;"	v
-db_mode	modules/usrloc/ul_mod.c	/^int db_mode         = 0;              \/* Database sync scheme: 0-no db, 1-write through, 2-write back *\/$/;"	v
-db_op_t	db/db_op.h	/^typedef const char* db_op_t;$/;"	t
-db_param	modules/avpops/avpops_impl.h	/^struct db_param$/;"	s
-db_query	modules/mysql/dbase.c	/^int db_query(db_con_t* _h, db_key_t* _k, db_op_t* _op,$/;"	f
-db_query	modules/postgres/dbase.c	/^int db_query(db_con_t* _h, db_key_t* _k, db_op_t* _op,$/;"	f
-db_query_f	db/db.h	/^typedef int (*db_query_f) (db_con_t* _h, db_key_t* _k, $/;"	t
-db_raw_query	modules/mysql/dbase.c	/^int db_raw_query(db_con_t* _h, char* _s, db_res_t** _r)$/;"	f
-db_raw_query	modules/postgres/dbase.c	/^int db_raw_query(db_con_t* _h, char* _s, db_res_t** _r)$/;"	f
-db_raw_query_f	db/db.h	/^typedef int (*db_raw_query_f) (db_con_t* _h, char* _s, db_res_t** _r);$/;"	t
-db_read_watcherinfo	modules/pa/watcher.c	/^int db_read_watcherinfo(presentity_t *_p)$/;"	f
-db_res	db/db_res.h	/^typedef struct db_res {$/;"	s
-db_res_t	db/db_res.h	/^} db_res_t;$/;"	t
-db_row	db/db_row.h	/^typedef struct db_row {$/;"	s
-db_row_t	db/db_row.h	/^} db_row_t;$/;"	t
-db_scheme	modules/avpops/avpops_db.h	/^struct db_scheme$/;"	s
-db_scheme_list	modules/avpops/avpops_db.c	/^static struct db_scheme  *db_scheme_list=0;$/;"	v	file:
-db_store_avp	modules/avpops/avpops_db.c	/^int db_store_avp( db_key_t *keys, db_val_t *vals, int n, char *table)$/;"	f
-db_table	modules/avp_db/avp_db.c	/^static char* db_table        = "usr_preferences";$/;"	v	file:
-db_table	modules/jabber/jabber.c	/^char *db_table = "jusers";$/;"	v
-db_table	modules/pdt/pdt.c	/^char *db_table = "domains";$/;"	v
-db_table_acc	modules/acc/acc_mod.c	/^char *db_table_acc="acc"; \/* name of database table> *\/$/;"	v
-db_table_mc	modules/acc/acc_mod.c	/^char *db_table_mc="missed_calls";$/;"	v
-db_type_t	db/db_val.h	/^} db_type_t;$/;"	t
-db_update	modules/mysql/dbase.c	/^int db_update(db_con_t* _h, db_key_t* _k, db_op_t* _o, db_val_t* _v,$/;"	f
-db_update	modules/postgres/dbase.c	/^int db_update(db_con_t* _h, db_key_t* _k, db_op_t* _o, db_val_t* _v,$/;"	f
-db_update_f	db/db.h	/^typedef int (*db_update_f) (db_con_t* _h, db_key_t* _k, db_op_t* _o, db_val_t* _v,$/;"	t
-db_update_presentity	modules/pa/presentity.c	/^int db_update_presentity(presentity_t* _p)$/;"	f
-db_update_ucontact	modules/usrloc/ucontact.c	/^int db_update_ucontact(ucontact_t* _c)$/;"	f
-db_url	modules/acc/acc_mod.c	/^static char *db_url=DEFAULT_DB_URL; \/* Database url *\/$/;"	v	file:
-db_url	modules/auth_db/authdb_mod.c	/^static str db_url           = {DEFAULT_RODB_URL, DEFAULT_RODB_URL_LEN};$/;"	v	file:
-db_url	modules/avp_db/avp_db.c	/^static char* db_url          = DEFAULT_RODB_URL;    \/* Database URL *\/$/;"	v	file:
-db_url	modules/domain/domain_mod.c	/^static str db_url = {DEFAULT_RODB_URL, DEFAULT_RODB_URL_LEN};$/;"	v	file:
-db_url	modules/group/group_mod.c	/^static str db_url        = {DEFAULT_RODB_URL, DEFAULT_RODB_URL_LEN};$/;"	v	file:
-db_url	modules/jabber/jabber.c	/^static char *db_url   = "mysql:\/\/root at 127.0.0.1\/sip_jab";$/;"	v	file:
-db_url	modules/pa/pa_mod.c	/^str db_url;$/;"	v
-db_url	modules/pdt/pdt.c	/^static char *db_url = "mysql:\/\/root at 127.0.0.1\/pdt";$/;"	v	file:
-db_url	modules/permissions/permissions.c	/^char* db_url = 0;                  \/* Don't connect to the database by default *\/$/;"	v
-db_url	modules/speeddial/speeddial.c	/^char* db_url           = DEFAULT_RODB_URL;$/;"	v
-db_url	modules/uri_db/uridb_mod.c	/^static str db_url         = {DEFAULT_RODB_URL, DEFAULT_RODB_URL_LEN};$/;"	v	file:
-db_url	modules/usrloc/ul_mod.c	/^str db_url          = {DEFAULT_DB_URL, sizeof(DEFAULT_DB_URL) - 1}; \/* Database URL *\/$/;"	v
-db_use_table_f	db/db.h	/^typedef int (*db_use_table_f)(db_con_t* _h, const char* _t);$/;"	t
-db_val_t	db/db_val.h	/^} db_val_t;$/;"	t
-dbex_exports	db/example/dbexample.c	/^static struct module_exports dbex_exports= {	$/;"	v	file:
-dbf	modules/avp_db/avp_db.c	/^static db_func_t dbf;$/;"	v	file:
-dbg_msg	modules/jabber/doc/web/subscribe.php	/^function dbg_msg($message)$/;"	f
-dbg_msg_qa	udp_server.c	/^static int dbg_msg_qa(char *buf, int len)$/;"	f	file:
-dblink	modules/jabber/doc/web/subscribe.php	/^	$dblink = mysql_connect($jab_db_srv, $jab_db_usr, $jab_db_pas) or html_die("Could not connect to Jabber database");$/;"	v
-dblink	modules/jabber/doc/web/subscribe.php	/^	$dblink = mysql_connect($sip_db_srv, $sip_db_usr, $sip_db_pas) or$/;"	v
-dbp	modules/dbtext/dbt_lib.h	/^	dbt_db_p dbp;$/;"	m	struct:_dbt_cache
-dbrow2avp	modules/avpops/avpops_impl.c	/^static int dbrow2avp(struct db_row *row, int flags, int_str attr,$/;"	f	file:
-dbt_cache_check_db	modules/dbtext/dbt_lib.c	/^int dbt_cache_check_db(str *_s)$/;"	f
-dbt_cache_del_db	modules/dbtext/dbt_lib.c	/^int dbt_cache_del_db(str *_s)$/;"	f
-dbt_cache_destroy	modules/dbtext/dbt_lib.c	/^int dbt_cache_destroy()$/;"	f
-dbt_cache_free	modules/dbtext/dbt_lib.c	/^int dbt_cache_free(dbt_cache_p _dc)$/;"	f
-dbt_cache_get_db	modules/dbtext/dbt_lib.c	/^dbt_cache_p dbt_cache_get_db(str *_s)$/;"	f
-dbt_cache_p	modules/dbtext/dbt_lib.h	/^} dbt_cache_t, *dbt_cache_p;$/;"	t
-dbt_cache_print	modules/dbtext/dbt_lib.c	/^int dbt_cache_print(int _f)$/;"	f
-dbt_cache_t	modules/dbtext/dbt_lib.h	/^} dbt_cache_t, *dbt_cache_p;$/;"	t
-dbt_close	modules/dbtext/dbt_base.c	/^void dbt_close(db_con_t* _h)$/;"	f
-dbt_cmp_val	modules/dbtext/dbt_res.c	/^int dbt_cmp_val(dbt_val_p _vp, db_val_t* _v)$/;"	f
-dbt_column_free	modules/dbtext/dbt_tb.c	/^int dbt_column_free(dbt_column_p dcp)$/;"	f
-dbt_column_new	modules/dbtext/dbt_tb.c	/^dbt_column_p dbt_column_new(char *_s, int _l)$/;"	f
-dbt_column_p	modules/dbtext/dbt_lib.h	/^} dbt_column_t, *dbt_column_p;$/;"	t
-dbt_column_t	modules/dbtext/dbt_lib.h	/^} dbt_column_t, *dbt_column_p;$/;"	t
-dbt_con_p	modules/dbtext/dbt_res.h	/^} dbt_con_t, *dbt_con_p;$/;"	t
-dbt_con_t	modules/dbtext/dbt_res.h	/^} dbt_con_t, *dbt_con_p;$/;"	t
-dbt_convert_result	modules/dbtext/dbt_api.c	/^int dbt_convert_result(db_con_t* _h, db_res_t* _r)$/;"	f
-dbt_convert_row	modules/dbtext/dbt_api.c	/^int dbt_convert_row(db_con_t* _h, db_res_t* _res, db_row_t* _r)$/;"	f
-dbt_convert_rows	modules/dbtext/dbt_api.c	/^int dbt_convert_rows(db_con_t* _h, db_res_t* _r)$/;"	f
-dbt_db_del_table	modules/dbtext/dbt_lib.c	/^int dbt_db_del_table(dbt_cache_p _dc, str *_s)$/;"	f
-dbt_db_free	modules/dbtext/dbt_lib.c	/^int dbt_db_free(dbt_db_p _dbp)$/;"	f
-dbt_db_get_table	modules/dbtext/dbt_lib.c	/^tbl_cache_p dbt_db_get_table(dbt_cache_p _dc, str *_s)$/;"	f
-dbt_db_p	modules/dbtext/dbt_lib.h	/^} dbt_db_t, *dbt_db_p;$/;"	t
-dbt_db_t	modules/dbtext/dbt_lib.h	/^} dbt_db_t, *dbt_db_p;$/;"	t
-dbt_delete	modules/dbtext/dbt_base.c	/^int dbt_delete(db_con_t* _h, db_key_t* _k, db_op_t* _o, db_val_t* _v, int _n)$/;"	f
-dbt_free_columns	modules/dbtext/dbt_api.c	/^int dbt_free_columns(db_res_t* _r)$/;"	f
-dbt_free_query	modules/dbtext/dbt_base.c	/^int dbt_free_query(db_con_t* _h, db_res_t* _r)$/;"	f
-dbt_free_result	modules/dbtext/dbt_api.c	/^int dbt_free_result(db_res_t* _r)$/;"	f
-dbt_free_row	modules/dbtext/dbt_api.c	/^int dbt_free_row(db_row_t* _r)$/;"	f
-dbt_free_rows	modules/dbtext/dbt_api.c	/^int dbt_free_rows(db_res_t* _r)$/;"	f
-dbt_get_columns	modules/dbtext/dbt_api.c	/^int dbt_get_columns(db_con_t* _h, db_res_t* _r)$/;"	f
-dbt_get_refs	modules/dbtext/dbt_res.c	/^int* dbt_get_refs(dbt_table_p _dtp, db_key_t* _k, int _n)$/;"	f
-dbt_get_result	modules/dbtext/dbt_api.c	/^int dbt_get_result(db_con_t* _h, db_res_t** _r)$/;"	f
-dbt_init	modules/dbtext/dbt_base.c	/^db_con_t* dbt_init(const char* _sqlurl)$/;"	f
-dbt_init_cache	modules/dbtext/dbt_lib.c	/^int dbt_init_cache()$/;"	f
-dbt_insert	modules/dbtext/dbt_base.c	/^int dbt_insert(db_con_t* _h, db_key_t* _k, db_val_t* _v, int _n)$/;"	f
-dbt_is_database	modules/dbtext/dbt_util.c	/^int dbt_is_database(str *_s)$/;"	f
-dbt_is_neq_type	modules/dbtext/dbt_res.c	/^int dbt_is_neq_type(db_type_t _t0, db_type_t _t1)$/;"	f
-dbt_load_file	modules/dbtext/dbt_file.c	/^dbt_table_p dbt_load_file(str *tbn, str *dbn)$/;"	f
-dbt_new_result	modules/dbtext/dbt_api.c	/^db_res_t* dbt_new_result(void)$/;"	f
-dbt_print_table	modules/dbtext/dbt_file.c	/^int dbt_print_table(dbt_table_p _dtp, str *_dbn)$/;"	f
-dbt_query	modules/dbtext/dbt_base.c	/^int dbt_query(db_con_t* _h, db_key_t* _k, db_op_t* _op, db_val_t* _v, $/;"	f
-dbt_raw_query	modules/dbtext/dbt_base.c	/^int dbt_raw_query(db_con_t* _h, char* _s, db_res_t** _r)$/;"	f
-dbt_result_add_row	modules/dbtext/dbt_res.c	/^int dbt_result_add_row(dbt_result_p _dres, dbt_row_p _drp)$/;"	f
-dbt_result_extract_fields	modules/dbtext/dbt_res.c	/^int dbt_result_extract_fields(dbt_table_p _dtp, dbt_row_p _drp,$/;"	f
-dbt_result_free	modules/dbtext/dbt_res.c	/^int dbt_result_free(dbt_result_p _dres)$/;"	f
-dbt_result_new	modules/dbtext/dbt_res.c	/^dbt_result_p dbt_result_new(dbt_table_p _dtp, int *_lres, int _sz)$/;"	f
-dbt_result_new_row	modules/dbtext/dbt_res.c	/^dbt_row_p dbt_result_new_row(dbt_result_p _dres)$/;"	f
-dbt_result_p	modules/dbtext/dbt_res.h	/^} dbt_result_t, *dbt_result_p;$/;"	t
-dbt_result_print	modules/dbtext/dbt_res.c	/^int dbt_result_print(dbt_result_p _dres)$/;"	f
-dbt_result_t	modules/dbtext/dbt_res.h	/^} dbt_result_t, *dbt_result_p;$/;"	t
-dbt_row_free	modules/dbtext/dbt_tb.c	/^int dbt_row_free(dbt_table_p _dtp, dbt_row_p _drp)$/;"	f
-dbt_row_match	modules/dbtext/dbt_res.c	/^int dbt_row_match(dbt_table_p _dtp, dbt_row_p _drp, int* _lkey,$/;"	f
-dbt_row_new	modules/dbtext/dbt_tb.c	/^dbt_row_p dbt_row_new(int _nf)$/;"	f
-dbt_row_p	modules/dbtext/dbt_lib.h	/^} dbt_row_t, *dbt_row_p;$/;"	t
-dbt_row_set_val	modules/dbtext/dbt_tb.c	/^int dbt_row_set_val(dbt_row_p _drp, dbt_val_p _vp, int _t, int _idx)$/;"	f
-dbt_row_t	modules/dbtext/dbt_lib.h	/^} dbt_row_t, *dbt_row_p;$/;"	t
-dbt_row_update_val	modules/dbtext/dbt_tb.c	/^int dbt_row_update_val(dbt_row_p _drp, dbt_val_p _vp, int _t, int _idx)$/;"	f
-dbt_table_add_row	modules/dbtext/dbt_tb.c	/^int dbt_table_add_row(dbt_table_p _dtp, dbt_row_p _drp)$/;"	f
-dbt_table_check_row	modules/dbtext/dbt_tb.c	/^int dbt_table_check_row(dbt_table_p _dtp, dbt_row_p _drp)$/;"	f
-dbt_table_free	modules/dbtext/dbt_tb.c	/^int dbt_table_free(dbt_table_p _dtp)$/;"	f
-dbt_table_free_rows	modules/dbtext/dbt_tb.c	/^int dbt_table_free_rows(dbt_table_p _dtp)$/;"	f
-dbt_table_new	modules/dbtext/dbt_tb.c	/^dbt_table_p dbt_table_new(char *_s, int _l)$/;"	f
-dbt_table_p	modules/dbtext/dbt_lib.h	/^} dbt_table_t, *dbt_table_p;$/;"	t
-dbt_table_t	modules/dbtext/dbt_lib.h	/^} dbt_table_t, *dbt_table_p;$/;"	t
-dbt_table_update_flags	modules/dbtext/dbt_tb.c	/^int dbt_table_update_flags(dbt_table_p _dtp, int _f, int _o, int _m)$/;"	f
-dbt_update	modules/dbtext/dbt_base.c	/^int dbt_update(db_con_t* _h, db_key_t* _k, db_op_t* _o, db_val_t* _v,$/;"	f
-dbt_use_table	modules/dbtext/dbt_api.c	/^int dbt_use_table(db_con_t* _h, const char* _t)$/;"	f
-dbt_val_p	modules/dbtext/dbt_lib.h	/^typedef db_val_t dbt_val_t, *dbt_val_p;$/;"	t
-dbt_val_t	modules/dbtext/dbt_lib.h	/^typedef db_val_t dbt_val_t, *dbt_val_p;$/;"	t
-dc	modules/pdt/domains.h	/^    dc_t *dc;$/;"	m	struct:_entry
-dc_t	modules/pdt/domains.h	/^} dc_t;$/;"	t
-debug	main.c	/^int debug = L_NOTICE;$/;"	v
-debug	test/dns_query.c	/^int debug=0;$/;"	v
-decode2format	modules/mangler/contact_ops.c	/^decode2format (str uri, char separator, struct uri_format *format)$/;"	f
-decode_contact	modules/mangler/contact_ops.c	/^decode_contact (struct sip_msg *msg,char *unused1,char *unused2)$/;"	f
-decode_contact_header	modules/mangler/contact_ops.c	/^decode_contact_header (struct sip_msg *msg,char *unused1,char *unused2)$/;"	f
-decode_mail_url	modules/cpl-c/cpl_parser.c	/^static inline char *decode_mail_url(char *p, char *p_end, char *url,$/;"	f	file:
-decode_mime_type	parser/parse_content.c	/^char* decode_mime_type(char *start, char *end, unsigned int *mime_type)$/;"	f
-decode_pdu	modules/sms/libsms_getsms.c	/^inline int decode_pdu( struct modem *mdm, char *pdu, struct incame_sms *sms)$/;"	f
-decode_uri	modules/mangler/contact_ops.c	/^decode_uri (str uri, char separator, str * result)$/;"	f
-decrement_maxfwd	modules/maxfwd/mf_funcs.c	/^int decrement_maxfwd( struct sip_msg* msg , int x, str *s)$/;"	f
-def_qv	modules/ext/ext.c	/^static qvalue_t def_qv  = 1000;$/;"	v	file:
-def_table	modules/avpops/avpops_db.c	/^static char      *def_table;    \/* default DB table *\/$/;"	v	file:
-default_	modules/cpl-c/cpl_run.h	/^		char *default_;$/;"	m	struct:cpl_interpreter::proxy_st
-default_allow_file	modules/permissions/permissions.c	/^static char* default_allow_file = DEFAULT_ALLOW_FILE;$/;"	v	file:
-default_deny_file	modules/permissions/permissions.c	/^static char* default_deny_file = DEFAULT_DENY_FILE;$/;"	v	file:
-default_expires	modules/pa/pa_mod.c	/^int default_expires = 3600;  \/* Default expires value if not present in the message *\/$/;"	v
-default_expires	modules/registrar/reg_mod.c	/^int default_expires = 3600;           \/* Default expires value in seconds *\/$/;"	v
-default_global_address	receive.c	/^str default_global_address={0,0};$/;"	v
-default_global_port	receive.c	/^str default_global_port={0,0};$/;"	v
-default_net	modules/sms/sms.c	/^int    default_net    = 0;$/;"	v
-default_net_str	modules/sms/sms.c	/^char *default_net_str = 0;$/;"	v
-default_priority	modules/pa/pa_mod.c	/^double default_priority = 0.5; \/* Default priority of presence tuple *\/$/;"	v
-default_priority_percentage	modules/pa/pa_mod.c	/^static int default_priority_percentage = 50; \/* expressed as percentage because config file grammar does not support floats *\/$/;"	v	file:
-default_q	modules/registrar/reg_mod.c	/^qvalue_t default_q  = Q_UNSPECIFIED;  \/* Default q value multiplied by 1000 *\/$/;"	v
-default_via_address	receive.c	/^str default_via_address={0,0};$/;"	v
-default_via_port	receive.c	/^str default_via_port={0,0};$/;"	v
-deinit_slot	modules/pa/hslot.c	/^void deinit_slot(hslot_t* _s)$/;"	f
-deinit_slot	modules/usrloc/hslot.c	/^void deinit_slot(hslot_t* _s)$/;"	f
-del234	modules/jabber/tree234.c	/^void *del234(tree234 *t, void *e) {$/;"	f
-del_client	modules/extcmd/clients.h	/^inline int del_client( int index )$/;"	f
-del_lump	data_lump.c	/^struct lump* del_lump(struct sip_msg* msg, int offset, int len, int type)$/;"	f
-del_nonshm_lump	data_lump.c	/^void del_nonshm_lump( struct lump** lump_list )$/;"	f
-del_nonshm_lump_rpl	data_lump_rpl.c	/^void del_nonshm_lump_rpl(struct lump_rpl** list)$/;"	f
-delay_time	modules/jabber/jabber.c	/^int delay_time = 90;$/;"	v
-delayt	modules/jabber/xjab_worker.h	/^	int delayt;$/;"	m	struct:_xj_wlist
-dele_tl	modules/tm/h_table.h	/^	struct timer_link dele_tl;$/;"	m	struct:cell
-delete	db/db.h	/^	db_delete_f      delete;       \/* Delete from table *\/ $/;"	m	struct:db_func
-delete_cell	modules/tm/timer.c	/^static void delete_cell( struct cell *p_cell, int unlock )$/;"	f	file:
-delete_handler	modules/tm/timer.c	/^inline static void delete_handler( struct timer_link *dele_tl )$/;"	f	file:
-delete_list	modules/cpl-c/sub_list.c	/^void delete_list(struct node* head)$/;"	f
-delete_ucontact	modules/usrloc/urecord.c	/^int delete_ucontact(urecord_t* _r, struct ucontact* _c)$/;"	f
-delete_ucontact	modules/usrloc/usrloc.h	/^	delete_ucontact_t    delete_ucontact;$/;"	m	struct:usrloc_api
-delete_ucontact_t	modules/usrloc/urecord.h	/^typedef int (*delete_ucontact_t)(urecord_t* _r, struct ucontact* _c);$/;"	t
-delete_urecord	modules/usrloc/udomain.c	/^int delete_urecord(udomain_t* _d, str* _aor)$/;"	f
-delete_urecord	modules/usrloc/usrloc.h	/^	delete_urecord_t     delete_urecord;$/;"	m	struct:usrloc_api
-delete_urecord_t	modules/usrloc/udomain.h	/^typedef int  (*delete_urecord_t)(udomain_t* _d, str* _a);$/;"	t
-deleted	modules/tm/t_stats.h	/^	stat_counter deleted;$/;"	m	struct:t_stats
-deletesms	modules/sms/libsms_getsms.c	/^void deletesms(struct modem *mdm, int sim) {$/;"	f
-delpos234	modules/jabber/tree234.c	/^void *delpos234(tree234 *t, int index) {$/;"	f
-delpos234_internal	modules/jabber/tree234.c	/^static void *delpos234_internal(tree234 *t, int index) {$/;"	f	file:
-delpostest	modules/jabber/tree234.c	/^void delpostest(int i) {$/;"	f
-deltest	modules/jabber/tree234.c	/^void deltest(void *elem) {$/;"	f
-demanded_size	mem/vq_malloc.h	/^	unsigned long demanded_size;$/;"	m	struct:vqm_frag
-deny	modules/permissions/permissions.c	/^static rule_file_t deny[MAX_RULE_FILES];  \/* Parsed deny files *\/$/;"	v	file:
-deny_suffix	modules/permissions/permissions.c	/^static char* deny_suffix = ".deny";$/;"	v	file:
-depth	modules/jabber/xode.h	/^    int depth;$/;"	m	struct:xode_stream_struct
-desc	pt.h	/^	char desc[MAX_PT_DESC];$/;"	m	struct:process_table
-desc_time_order	modules/registrar/reg_mod.c	/^int desc_time_order = 0;              \/* By default do not order according to the descending modification time *\/$/;"	v
-desc_time_order	modules/usrloc/ul_mod.c	/^int desc_time_order = 0;              \/* By default do not enable timestamp ordering *\/                  $/;"	v
-dest_host	modules/acc/diam_message.h	/^	AAA_AVP             *dest_host;$/;"	m	struct:_message_t
-dest_host	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP             *dest_host;$/;"	m	struct:_message_t
-dest_info	ip_addr.h	/^struct dest_info{$/;"	s
-dest_realm	modules/acc/diam_message.h	/^	AAA_AVP             *dest_realm;$/;"	m	struct:_message_t
-dest_realm	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP             *dest_realm;$/;"	m	struct:_message_t
-destroy	modules/acc/acc_mod.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/auth/auth_mod.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/auth_db/authdb_mod.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/dbtext/dbtext.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/dispatcher/dispatcher.c	/^void destroy(void)$/;"	f
-destroy	modules/domain/domain_mod.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/group/group_mod.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/jabber/jabber.c	/^void destroy(void)$/;"	f
-destroy	modules/mangler/mangler.c	/^destroy (void)$/;"	f	file:
-destroy	modules/msilo/msilo.c	/^void destroy(void)$/;"	f
-destroy	modules/speeddial/speeddial.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/uri_db/uridb_mod.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/usrloc/ul_mod.c	/^static void destroy(void)$/;"	f	file:
-destroy	modules/xlog/xlog.c	/^void destroy(void)$/;"	f
-destroy_avp	usr_avp.c	/^void destroy_avp( struct usr_avp *avp_del)$/;"	f
-destroy_avp_list	usr_avp.c	/^inline void destroy_avp_list( struct usr_avp **list )$/;"	f
-destroy_avp_list_unsafe	usr_avp.c	/^void destroy_avp_list_unsafe( struct usr_avp **list )$/;"	f
-destroy_f	sr_module.h	/^	destroy_function destroy_f;     \/* function called when the module should$/;"	m	struct:module_exports
-destroy_fifo	fifo_server.c	/^void destroy_fifo()$/;"	f
-destroy_function	sr_module.h	/^typedef void (*destroy_function)();$/;"	t
-destroy_ip_node	modules/pike/ip_tree.c	/^static inline void destroy_ip_node(struct ip_node *node)$/;"	f	file:
-destroy_ip_tree	modules/pike/ip_tree.c	/^void destroy_ip_tree()$/;"	f
-destroy_kill	modules/exec/kill.c	/^void destroy_kill()$/;"	f
-destroy_modules	sr_module.c	/^void destroy_modules()$/;"	f
-destroy_report_queue	modules/sms/sms_report.c	/^void destroy_report_queue()$/;"	f
-destroy_script_cb	script_cb.c	/^void destroy_script_cb()$/;"	f
-destroy_tcp	tcp_main.c	/^void destroy_tcp()$/;"	f
-destroy_timer	timer.c	/^void destroy_timer()$/;"	f
-destroy_tmcb_lists	modules/tm/t_hooks.c	/^void destroy_tmcb_lists()$/;"	f
-destroy_ulcb_list	modules/usrloc/ul_callback.c	/^void destroy_ulcb_list()$/;"	f
-destructor_list	modules/postgres/aug_alloc.c	/^	MemDestructor *destructor_list;$/;"	m	struct:MemOpt	file:
-detached_timer	modules/tm/timer.c	/^static struct timer detached_timer; \/* just to have a value to compare with*\/$/;"	v	file:
-device	modules/sms/sms_funcs.h	/^	char device[MAX_CHAR_BUF+1];$/;"	m	struct:modem
-dhash	modules/pdt/domains.h	/^	h_entry_t* dhash;$/;"	m	struct:_double_hash
-dhash	modules/pdt/domains.h	/^    unsigned int dhash;$/;"	m	struct:_dc
-dialog	modules/pa/watcher.h	/^	dlg_t* dialog;          \/* Dialog handle *\/$/;"	m	struct:watcher
-dialog	modules/tm/t_dlg.h	/^struct dialog {$/;"	s
-dialog	modules/tm/uac_fifo.c	/^	dlg_t* dialog;$/;"	m	struct:cb_data	file:
-diam_attr	modules/acc/acc.c	/^static int diam_attr[] = { AVP_SIP_FROM_URI, AVP_SIP_TO_URI, AVP_SIP_OURI, $/;"	v	file:
-diam_status	modules/acc/acc.c	/^inline unsigned long diam_status(struct sip_msg *rq, str *phrase)$/;"	f
-diameter_authorize	modules/auth_diameter/authorize.c	/^int diameter_authorize(struct hdr_field* hdr, str* p_method, struct sip_uri uri,$/;"	f
-diameter_client_host	modules/acc/acc_mod.c	/^char* diameter_client_host="localhost";$/;"	v
-diameter_client_host	modules/auth_diameter/auth_diameter.c	/^char* diameter_client_host = "localhost";$/;"	v
-diameter_client_port	modules/acc/acc_mod.c	/^int diameter_client_port=3000;$/;"	v
-diameter_client_port	modules/auth_diameter/auth_diameter.c	/^int diameter_client_port = 3000;$/;"	v
-diameter_flag	modules/acc/acc_mod.c	/^int diameter_flag = 1;$/;"	v
-diameter_is_user_in	modules/auth_diameter/user_in.c	/^int diameter_is_user_in(struct sip_msg* _m, char* _hf, char* _group)$/;"	f
-diameter_missed_flag	modules/acc/acc_mod.c	/^int diameter_missed_flag = 2;$/;"	v
-diameter_proxy_authorize	modules/auth_diameter/auth_diameter.c	/^int diameter_proxy_authorize(struct sip_msg* _msg, char* _realm, char* _s2)$/;"	f
-diameter_www_authorize	modules/auth_diameter/auth_diameter.c	/^int diameter_www_authorize(struct sip_msg* _msg, char* _realm, char* _s2)$/;"	f
-dig_cred	parser/digest/digest_parser.h	/^typedef struct dig_cred {$/;"	s
-dig_cred_t	parser/digest/digest_parser.h	/^} dig_cred_t;$/;"	t
-dig_err	parser/digest/digest.h	/^typedef enum dig_err {$/;"	g
-dig_err_t	parser/digest/digest.h	/^} dig_err_t;$/;"	t
-dig_par	parser/digest/param_parser.h	/^typedef enum dig_par {$/;"	g
-dig_par_t	parser/digest/param_parser.h	/^} dig_par_t;$/;"	t
-digest	parser/digest/digest.h	/^	dig_cred_t digest;           \/* Parsed digest credentials *\/$/;"	m	struct:auth_body
-dir	modules/flatstore/flat_id.h	/^	str dir;   \/* Database directory *\/ $/;"	m	struct:flat_id
-disable_core_dump	main.c	/^int disable_core_dump=0; \/* by default enabled *\/$/;"	v
-disconnect_db	modules/postgres/dbase.c	/^static int disconnect_db(db_con_t* _h)$/;"	f	file:
-display	parser/parse_to.h	/^	str display;				  \/* Display Name *\/$/;"	m	struct:to_body
-display_name	modules/pa/watcher.h	/^	str display_name;       \/* Display Name of watcher *\/$/;"	m	struct:watcher
-disposition	parser/parse_disposition.h	/^struct disposition {$/;"	s
-disposition_param	parser/parse_disposition.h	/^struct disposition_param {$/;"	s
-dive_CASE	parser/case_dive.h	48;"	d
-diversion	parser/msg_parser.h	/^	struct hdr_field* diversion;$/;"	m	struct:sip_msg
-dlg	modules/tm/dlg.h	/^typedef struct dlg {$/;"	s
-dlg	modules/tm/t_dlg.c	/^dlg_t dlg=0;$/;"	v
-dlg2hash	modules/tm/uac.c	/^static inline unsigned int dlg2hash( dlg_t* dlg )$/;"	f	file:
-dlg_confirmed_resp_uac	modules/tm/dlg.c	/^static inline int dlg_confirmed_resp_uac(dlg_t* _d, struct sip_msg* _m)$/;"	f	file:
-dlg_early_resp_uac	modules/tm/dlg.c	/^static inline int dlg_early_resp_uac(dlg_t* _d, struct sip_msg* _m)$/;"	f	file:
-dlg_hooks	modules/tm/dlg.h	/^typedef struct dlg_hooks {$/;"	s
-dlg_hooks_t	modules/tm/dlg.h	/^} dlg_hooks_t;$/;"	t
-dlg_id	modules/tm/dlg.h	/^typedef struct dlg_id {$/;"	s
-dlg_id_t	modules/tm/dlg.h	/^} dlg_id_t;$/;"	t
-dlg_matching	modules/tm/t_lookup.c	/^static inline int dlg_matching(struct cell *p_cell, struct sip_msg *ack )$/;"	f	file:
-dlg_new_resp_uac	modules/tm/dlg.c	/^static inline int dlg_new_resp_uac(dlg_t* _d, struct sip_msg* _m)$/;"	f	file:
-dlg_request_uas	modules/tm/dlg.c	/^int dlg_request_uas(dlg_t* _d, struct sip_msg* _m)$/;"	f
-dlg_request_uas	modules/tm/tm_load.h	/^	dlg_request_uas_f  dlg_request_uas;$/;"	m	struct:tm_binds
-dlg_request_uas_f	modules/tm/dlg.h	/^typedef int (*dlg_request_uas_f)(dlg_t* _d, struct sip_msg* _m);$/;"	t
-dlg_response_uac	modules/tm/dlg.c	/^int dlg_response_uac(dlg_t* _d, struct sip_msg* _m)$/;"	f
-dlg_response_uac	modules/tm/tm_load.h	/^	dlg_response_uac_f dlg_response_uac;$/;"	m	struct:tm_binds
-dlg_response_uac_f	modules/tm/dlg.h	/^typedef int (*dlg_response_uac_f)(dlg_t* _d, struct sip_msg* _m);$/;"	t
-dlg_seq	modules/tm/dlg.h	/^typedef struct dlg_seq {$/;"	s
-dlg_seq_t	modules/tm/dlg.h	/^} dlg_seq_t;$/;"	t
-dlg_state	modules/tm/dlg.h	/^typedef enum dlg_state {$/;"	g
-dlg_state_t	modules/tm/dlg.h	/^} dlg_state_t;$/;"	t
-dlg_t	modules/tm/dlg.h	/^} dlg_t;$/;"	t
-dlg_t	modules/tm/t_dlg.h	/^typedef struct dialog *dlg_t;$/;"	t
-dlist	modules/dispatcher/dispatch.c	/^	ds_dest_p dlist;$/;"	m	struct:_ds_set	file:
-dlist	modules/pa/dlist.h	/^typedef struct dlist {$/;"	s
-dlist	modules/usrloc/dlist.h	/^typedef struct dlist {$/;"	s
-dlist_t	modules/pa/dlist.h	/^} dlist_t;$/;"	t
-dlist_t	modules/usrloc/dlist.h	/^} dlist_t;$/;"	t
-dlm	modules/jabber/xjab_worker.h	/^	char dlm;	\/\/ user part delimiter$/;"	m	struct:_xj_jalias
-dns_a_parser	resolve.c	/^struct a_rdata* dns_a_parser(unsigned char* rdata, unsigned char* end)$/;"	f
-dns_aaaa_parser	resolve.c	/^struct aaaa_rdata* dns_aaaa_parser(unsigned char* rdata, unsigned char* end)$/;"	f
-dns_cname_parser	resolve.c	/^struct cname_rdata* dns_cname_parser( unsigned char* msg, unsigned char* end,$/;"	f
-dns_naptr_parser	resolve.c	/^struct naptr_rdata* dns_naptr_parser( unsigned char* msg, unsigned char* end,$/;"	f
-dns_query	resolve.h	/^union dns_query{$/;"	u
-dns_skipname	resolve.c	/^unsigned char* dns_skipname(unsigned char* p, unsigned char* end)$/;"	f
-dns_srv_parser	resolve.c	/^struct srv_rdata* dns_srv_parser( unsigned char* msg, unsigned char* end,$/;"	f
-do_RR	modules/rr/record.c	/^static inline int do_RR(struct sip_msg* _m, int _lr)$/;"	f	file:
-do_action	action.c	/^int do_action(struct action* a, struct sip_msg* msg)$/;"	f
-do_duplicate_params	parser/parse_param.c	/^static inline int do_duplicate_params(param_t** _n, param_t* _p, int _shm)$/;"	f	file:
-do_duplicate_rr	parser/parse_rr.c	/^static inline int do_duplicate_rr(rr_t** _new, rr_t* _r, int _shm)$/;"	f	file:
-do_free_params	parser/parse_param.c	/^static inline void do_free_params(param_t* _p, int _shm)$/;"	f	file:
-do_free_rr	parser/parse_rr.c	/^static inline void do_free_rr(rr_t** _r, int _shm)$/;"	f	file:
-do_parse_rr_body	parser/parse_rr.c	/^static inline int do_parse_rr_body(char *buf, int len, rr_t **head)$/;"	f	file:
-do_read	modules/acc/diam_tcp.c	/^int do_read( int socket, rd_buf_t *p)$/;"	f
-do_read	modules/auth_diameter/tcp_comm.c	/^int do_read( int socket, rd_buf_t *p)$/;"	f
-do_script_action	modules/cpl-c/cpl.c	/^static inline int do_script_action(struct sip_msg *msg, int action)$/;"	f	file:
-do_script_download	modules/cpl-c/cpl.c	/^static inline int do_script_download(struct sip_msg *msg)$/;"	f	file:
-do_suid	daemonize.c	/^int do_suid()$/;"	f
-doctype	modules/pa/watcher.h	/^typedef enum doctype {$/;"	g
-doctype_name	modules/pa/watcher.c	/^char *doctype_name[] = {$/;"	v
-doctype_t	modules/pa/watcher.h	/^} doctype_t;$/;"	t
-does_uri_exist	modules/uri_db/checks.c	/^int does_uri_exist(struct sip_msg* _msg, char* _s1, char* _s2)$/;"	f
-dom	modules/usrloc/notify.c	/^str dom = {"location", 8};$/;"	v
-domain	modules/domain/domain_mod.h	/^	str domain;$/;"	m	struct:domain_list
-domain	modules/pdt/doc/pdt.sql	/^	domain VARCHAR(255) NOT NULL DEFAULT ""$/;"	F
-domain	modules/pdt/domains.h	/^    char* domain;$/;"	m	struct:_dc
-domain	modules/sms/sms.c	/^str    domain;$/;"	v
-domain	modules/usrloc/ucontact.h	/^	str* domain;            \/* Pointer to domain name *\/$/;"	m	struct:ucontact
-domain	modules/usrloc/urecord.h	/^	str* domain;                   \/* Pointer to domain we belong to *\/$/;"	m	struct:urecord
-domain	parser/digest/digest_parser.h	/^	str domain;       \/* Domain part only *\/$/;"	m	struct:username
-domain	scripts/sc	/^domain() {$/;"	f
-domain	scripts/sc_unixsock	/^domain() {$/;"	f
-domain_code	modules/pdt/doc/web/request.php	/^	    $domain_code = "not registered";$/;"	v
-domain_code	modules/pdt/doc/web/request.php	/^	    $domain_code = "registration failed"; $/;"	v
-domain_code	modules/pdt/doc/web/request.php	/^	$domain_code = "";$/;"	v
-domain_col	modules/avpops/avpops_db.h	/^	char *domain_col;$/;"	m	struct:db_scheme
-domain_col	modules/domain/domain_mod.c	/^str domain_col = {DOMAIN_COL, DOMAIN_COL_LEN};           \/* Name of domain column *\/$/;"	v
-domain_col	modules/usrloc/ul_mod.c	/^str domain_col      = {DOMAIN_COL, sizeof(DOMAIN_COL) - 1};         \/* Name of column containing domains *\/$/;"	v
-domain_column	modules/auth_db/authdb_mod.c	/^str domain_column    = {DOMAIN_COL, DOMAIN_COL_LEN};$/;"	v
-domain_column	modules/avp_db/avp_db.c	/^static char* domain_column   = "domain";$/;"	v	file:
-domain_column	modules/group/group_mod.c	/^str domain_column = {DOMAIN_COL, DOMAIN_COL_LEN};$/;"	v
-domain_column	modules/speeddial/speeddial.c	/^char* domain_column    = "domain";$/;"	v
-domain_db_bind	modules/domain/domain.c	/^int domain_db_bind(char* db_url)$/;"	f
-domain_db_close	modules/domain/domain.c	/^void domain_db_close()$/;"	f
-domain_db_init	modules/domain/domain.c	/^int domain_db_init(char* db_url)$/;"	f
-domain_db_ver	modules/domain/domain.c	/^int domain_db_ver(str* name)$/;"	f
-domain_dbf	modules/domain/domain.c	/^static db_func_t domain_dbf;$/;"	v	file:
-domain_dump	modules/domain/fifo.c	/^static int domain_dump ( FILE* pipe, char* response_file )$/;"	f	file:
-domain_dump	modules/domain/unixsock.c	/^static int domain_dump(str* msg)$/;"	f	file:
-domain_fixup	modules/registrar/reg_mod.c	/^static int domain_fixup(void** param, int param_no)$/;"	f	file:
-domain_list	modules/domain/domain_mod.h	/^struct domain_list {$/;"	s
-domain_prefix	modules/speeddial/speeddial.c	/^char* domain_prefix    = NULL;$/;"	v
-domain_reload	modules/domain/fifo.c	/^static int domain_reload ( FILE* pipe, char* response_file )$/;"	f	file:
-domain_reload	modules/domain/unixsock.c	/^static int domain_reload(str* msg)$/;"	f	file:
-domain_str	modules/sms/sms.c	/^char *domain_str      = 0;$/;"	v
-domain_suffix	modules/enum/enum_mod.c	/^char* domain_suffix = "e164.arpa.";$/;"	v
-domain_table	modules/domain/domain_mod.c	/^str domain_table = {DOMAIN_TABLE, DOMAIN_TABLE_LEN};     \/* Name of domain table *\/$/;"	v
-domains	modules/pdt/doc/pdt.sql	/^CREATE TABLE domains($/;"	t
-dont_fork	main.c	/^int dont_fork = 0;$/;"	v
-double2q	qvalue.h	/^static inline qvalue_t double2q(double q)$/;"	f
-double2str	modules/mysql/val.c	/^static inline int double2str(double _v, char* _s, int* _l)$/;"	f	file:
-double2str	modules/postgres/db_val.c	/^static inline int double2str(double _v, char* _s, int* _l)$/;"	f	file:
-double_hash_t	modules/pdt/domains.h	/^} double_hash_t;$/;"	t
-double_log	db/db_fifo.c	96;"	d	file:
-double_val	db/db_val.h	/^		double        double_val; \/* double value *\/$/;"	m
-dprint	dprint.c	/^void dprint(char * format, ...)$/;"	f
-dprint_h	dprint.h	31;"	d
-ds_dest_p	modules/dispatcher/dispatch.c	/^} ds_dest_t, *ds_dest_p;$/;"	t	file:
-ds_dest_t	modules/dispatcher/dispatch.c	/^} ds_dest_t, *ds_dest_p;$/;"	t	file:
-ds_destroy_list	modules/dispatcher/dispatch.c	/^int ds_destroy_list()$/;"	f
-ds_fixup	modules/dispatcher/dispatcher.c	/^static int ds_fixup(void** param, int param_no)$/;"	f	file:
-ds_get_hash	modules/dispatcher/dispatch.c	/^unsigned int ds_get_hash(str *x, str *y)$/;"	f
-ds_hash_callid	modules/dispatcher/dispatch.c	/^int ds_hash_callid(struct sip_msg *msg, unsigned int *hash)$/;"	f
-ds_hash_fromuri	modules/dispatcher/dispatch.c	/^int ds_hash_fromuri(struct sip_msg *msg, unsigned int *hash)$/;"	f
-ds_load_list	modules/dispatcher/dispatch.c	/^int ds_load_list(char *lfile)$/;"	f
-ds_select_dst	modules/dispatcher/dispatch.c	/^int ds_select_dst(struct sip_msg *msg, char *set, char *alg)$/;"	f
-ds_set_p	modules/dispatcher/dispatch.c	/^} ds_set_t, *ds_set_p;$/;"	t	file:
-ds_set_t	modules/dispatcher/dispatch.c	/^} ds_set_t, *ds_set_p;$/;"	t	file:
-ds_setidx_p	modules/dispatcher/dispatch.c	/^} ds_setidx_t, *ds_setidx_p;$/;"	t	file:
-ds_setidx_t	modules/dispatcher/dispatch.c	/^} ds_setidx_t, *ds_setidx_p;$/;"	t	file:
-dslistfile	modules/dispatcher/dispatcher.c	/^char *dslistfile = CFG_DIR"dispatcher.list";$/;"	v
-dst	modules/tm/h_table.h	/^	struct dest_info dst;$/;"	m	struct:retr_buf
-dst_ip	ip_addr.h	/^	struct ip_addr dst_ip;$/;"	m	struct:receive_info
-dst_port	ip_addr.h	/^	unsigned short dst_port; \/* host byte order *\/$/;"	m	struct:receive_info
-dst_uri	dset.c	/^	char dst_uri[MAX_URI_SIZE];$/;"	m	struct:branch	file:
-dst_uri	parser/msg_parser.h	/^	str dst_uri; \/* Destination URI, must be forwarded to this URI if len != 0 *\/$/;"	m	struct:sip_msg
-dst_uri_len	dset.c	/^	unsigned int dst_uri_len;$/;"	m	struct:branch	file:
-dstrip_s	modules/speeddial/speeddial.c	/^str   dstrip_s;$/;"	v
-dtd	modules/cpl-c/cpl_parser.c	/^static xmlDtdPtr     dtd;     \/* DTD file *\/$/;"	v	file:
-dtd_file	modules/cpl-c/cpl.c	/^static char *dtd_file      = 0;  \/* name of the DTD file for CPL parser *\/$/;"	v	file:
-dtend	modules/cpl-c/cpl_time.h	/^	time_t dtend;$/;"	m	struct:_tmrec
-dtp	modules/dbtext/dbt_lib.h	/^	dbt_table_p dtp;$/;"	m	struct:_tbl_cache
-dtstart	modules/cpl-c/cpl_time.h	/^	time_t dtstart;$/;"	m	struct:_tmrec
-dump_all_statistic	stats.c	/^int dump_all_statistic()$/;"	f
-dump_frag	mem/vq_malloc.c	/^void dump_frag( struct vqm_frag* f, int i )$/;"	f
-dump_hdr_field	parser/hf.c	/^void dump_hdr_field( struct hdr_field* hf )$/;"	f
-dump_request	modules/extcmd/extcmd_funcs.c	/^int dump_request(struct sip_msg *msg, char *para1, char *para2)$/;"	f
-dump_statistic	stats.c	/^int dump_statistic(FILE *fp, struct stats_s *istats, int printheader)$/;"	f
-dup_lump_list	data_lump.c	/^struct lump* dup_lump_list( struct lump *l )$/;"	f
-dup_lump_list_r	data_lump.c	/^static struct lump *dup_lump_list_r( struct lump *l, $/;"	f	file:
-duplicate_addr	modules/tm/uac_unixsock.c	/^static int duplicate_addr(struct sockaddr_un** dest, struct sockaddr_un* addr)$/;"	f	file:
-duplicate_params	parser/parse_param.c	/^int duplicate_params(param_t** _n, param_t* _p)$/;"	f
-duplicate_rr	parser/parse_rr.c	/^int duplicate_rr(rr_t** _new, rr_t* _r)$/;"	f
-duplicate_str	modules/avpops/avpops_parse.c	451;"	d	file:
-duplicate_str	modules/cpl-c/cpl_proxy.h	38;"	d
-duration	modules/cpl-c/cpl_time.h	/^	time_t duration;$/;"	m	struct:_tmrec
-e	modules/pdt/domains.h	/^    entry_t * e;$/;"	m	struct:_h_entry
-e2e_cancel	modules/tm/t_fwd.c	/^void e2e_cancel( struct sip_msg *cancel_msg, $/;"	f
-e2e_cancel_branch	modules/tm/t_fwd.c	/^int e2e_cancel_branch( struct sip_msg *cancel_msg, struct cell *t_cancel, $/;"	f
-eNT_	parser/obsolete/strs.h	288;"	d
-eNt_	parser/obsolete/strs.h	287;"	d
-early_media	modules/acc/acc_mod.c	/^int early_media = 0;$/;"	v
-eat_line	parser/parser_f.c	/^char* eat_line(char* buffer, unsigned int len)$/;"	f
-eat_lws_end	parser/parser_f.h	/^inline static char* eat_lws_end(char* p, char* pend)$/;"	f
-eat_space_end	parser/parser_f.h	/^inline static char* eat_space_end(char* p, char* pend)$/;"	f
-eat_spaces	modules/sms/sms.c	151;"	d	file:
-eat_token2_end	parser/parser_f.h	/^inline static char* eat_token2_end(char* p, char* pend, char delim)$/;"	f
-eat_token_end	parser/parser_f.h	/^inline static char* eat_token_end(char* p, char* pend)$/;"	f
-ect_CASE	parser/case_subj.h	35;"	d
-elemcount	modules/jabber/tree234.c	/^    int elemcount;$/;"	m	file:
-elems	modules/jabber/tree234.c	/^    void *elems[3];$/;"	m	struct:node234_Tag	file:
-elems	modules/tm/t_fifo.c	/^	struct hdr_avp *elems;$/;"	m	struct:tw_append	file:
-empty	modules/avpops/avpops_impl.c	/^static str      empty={"",0};$/;"	v	file:
-empty_hash_table	modules/permissions/hash.c	/^void empty_hash_table(struct trusted_list **hash_table)$/;"	f
-empty_location_set	modules/cpl-c/loc_set.h	/^static inline void empty_location_set(struct location **loc_set)$/;"	f
-enT_	parser/obsolete/strs.h	286;"	d
-enable_double_rr	modules/rr/rr_mod.c	/^int enable_double_rr = 1; \/* Enable using of 2 RR by default *\/$/;"	v
-enable_full_lr	modules/rr/rr_mod.c	/^int enable_full_lr = 0;   \/* Disabled by default *\/$/;"	v
-encode2format	modules/mangler/contact_ops.c	/^encode2format (str uri, struct uri_format *format)$/;"	f
-encodeCPL	modules/cpl-c/cpl_parser.c	/^int encodeCPL( str *xml, str *bin, str *log)$/;"	f
-encodeQuopri	modules/mediaproxy/mediaproxy.c	/^encodeQuopri(str buf)$/;"	f	file:
-encode_address_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_address_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_address_switch_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_address_switch_attr(xmlNodePtr node, char *node_ptr,$/;"	f	file:
-encode_contact	modules/mangler/contact_ops.c	/^encode_contact (struct sip_msg *msg, char *encoding_prefix,char *public_ip)$/;"	f
-encode_lang_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_lang_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_location_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_location_attr(xmlNodePtr  node, char *node_ptr,$/;"	f	file:
-encode_log_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_log_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_lookup_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_lookup_attr(xmlNodePtr  node, char *node_ptr,$/;"	f	file:
-encode_mail_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_mail_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_node	modules/cpl-c/cpl_parser.c	/^int encode_node( xmlNodePtr node, char *p, char *p_end)$/;"	f
-encode_priority_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_priority_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_proxy_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_proxy_attr(xmlNodePtr  node, char *node_ptr,$/;"	f	file:
-encode_redirect_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_redirect_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_reject_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_reject_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_rmvloc_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_rmvloc_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_string_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_string_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_string_switch_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_string_switch_attr(xmlNodePtr  node, char *node_ptr,$/;"	f	file:
-encode_sub_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_sub_attr(xmlNodePtr  node, char *node_ptr, char *buf_end)$/;"	f	file:
-encode_subaction_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_subaction_attr(xmlNodePtr  node, char *node_ptr,$/;"	f	file:
-encode_time_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_time_attr(xmlNodePtr  node, char *node_ptr,$/;"	f	file:
-encode_time_switch_attr	modules/cpl-c/cpl_parser.c	/^static inline int encode_time_switch_attr(xmlNodePtr  node, char *node_ptr,$/;"	f	file:
-encode_uri	modules/mangler/contact_ops.c	/^encode_uri (str uri, char *encoding_prefix, char *public_ip,char separator, str * result)$/;"	f
-end	modules/postgres/aug_alloc.c	/^	char *end;$/;"	m	struct:MemHeadStruct	file:
-end_check	mem/vq_malloc.h	/^	char *end_check;$/;"	m	struct:vqm_frag
-end_pidf_doc	modules/pa/pidf.c	/^int end_pidf_doc(str* _b, int _l)$/;"	f
-end_request	modules/tm/h_table.h	/^	char             *end_request;$/;"	m	struct:ua_server
-end_winfo_doc	modules/pa/watcher.c	/^int end_winfo_doc(str* _b, int _l)$/;"	f
-end_xpidf_doc	modules/pa/xpidf.c	/^int end_xpidf_doc(str* _b, int _l)$/;"	f
-endtoendId	modules/acc/diam_message.h	/^	AAAMsgIdentifier    endtoendId;$/;"	m	struct:_message_t
-endtoendId	modules/auth_diameter/diameter_msg.h	/^	AAAMsgIdentifier    endtoendId;$/;"	m	struct:_message_t
-ent_	parser/obsolete/strs.h	285;"	d
-entries	modules/pike/ip_tree.h	/^	} entries[MAX_IP_BRANCHES];$/;"	m	struct:ip_tree
-entry	modules/pike/ip_tree.h	/^	struct entry {$/;"	s	struct:ip_tree
-entry	modules/tm/h_table.h	/^typedef struct entry$/;"	s
-entry_lock_set	modules/pike/ip_tree.h	/^	gen_lock_set_t  *entry_lock_set;$/;"	m	struct:ip_tree
-entry_semaphore	modules/tm/lock.c	/^gen_lock_set_t* entry_semaphore=0;$/;"	v
-entry_t	modules/pdt/domains.h	/^} entry_t;$/;"	t
-entry_type	modules/tm/h_table.h	/^}entry_type;$/;"	t
-entrys	modules/tm/h_table.h	/^	struct entry   entrys[ TABLE_ENTRIES ];$/;"	m	struct:s_table
-enum_fixup	modules/enum/enum_mod.c	/^static int enum_fixup(void** param, int param_no)$/;"	f	file:
-enum_query_0	modules/enum/enum.c	/^int enum_query_0(struct sip_msg* _msg, char* _str1, char* _str2)$/;"	f
-enum_query_1	modules/enum/enum.c	/^int enum_query_1(struct sip_msg* _msg, char* _suffix, char* _str2)$/;"	f
-enum_query_2	modules/enum/enum.c	/^int enum_query_2(struct sip_msg* _msg, char* _suffix, char* _service)$/;"	f
-env	modules/exec/exec_hf.h	/^	char** env;$/;"	m	struct:env
-env	modules/exec/exec_hf.h	/^typedef struct env {$/;"	s
-environment_t	modules/exec/exec_hf.h	/^} environment_t;$/;"	t
-envvar	modules/exec/exec_hf.h	/^	char *envvar;$/;"	m	struct:hf_wrapper
-eoh	parser/msg_parser.h	/^	char* eoh;        \/* pointer to the end of header (if found) or null *\/$/;"	m	struct:sip_msg
-eol	modules/tm/t_fifo.c	/^static struct iovec eol={"\\n",1};$/;"	v	file:
-eol_line	modules/tm/t_fifo.c	94;"	d	file:
-eol_line_len	modules/tm/t_fifo.c	92;"	d	file:
-eol_line_s	modules/tm/t_fifo.c	91;"	d	file:
-equalop	cfg.y	/^equalop:	  EQUAL_T {$$=EQUAL_OP; }$/;"	l
-err	modules/jabber/doc/web/subscribe.php	/^						$err = substr($err1, 0, strlen($err1)-strlen($err2));$/;"	v
-err	modules/sl/sl_stats.h	/^	unsigned long err[RT_END];$/;"	m	struct:sl_stats
-err1	modules/jabber/doc/web/subscribe.php	/^				$err1 = stristr($buf_recv, "<error ");$/;"	v
-err1	modules/jabber/doc/web/subscribe.php	/^				$err1 = strstr($err1, ">");$/;"	v
-err1	modules/jabber/doc/web/subscribe.php	/^				$err1 = substr($err1, 1);$/;"	v
-err1	modules/jabber/doc/web/subscribe.php	/^				$err1 = substr($err1, 7);$/;"	v
-err2	modules/jabber/doc/web/subscribe.php	/^					$err2 = strstr($err1, "<\/error>");$/;"	v
-err2reason_phrase	error.c	/^int err2reason_phrase( $/;"	f
-err_code	modules/cpl-c/cpl.c	/^	int   err_code;$/;"	m	struct:cpl_error	file:
-err_msg	modules/cpl-c/cpl.c	/^	char *err_msg;$/;"	m	struct:cpl_error	file:
-errfile	modules/jabber/doc/web/libjab.php	/^	    $errfile = "\/tmp\/php_error.log";$/;"	v
-errmsg	modules/jabber/doc/web/libjab.php	/^		$errmsg = "Error: $errno - $errstr\\n";$/;"	v
-error	modules/jabber/tree234.c	/^void error(char *fmt, ...) {$/;"	f
-error	parser/parse_cseq.h	/^	int error;  \/* Error code *\/$/;"	m	struct:cseq_body
-error	parser/parse_to.h	/^	int error;                    \/* Error code *\/$/;"	m	struct:to_body
-error	parser/parse_via.h	/^	int error;$/;"	m	struct:via_body
-error	tcp_conn.h	/^	enum tcp_req_errors error;$/;"	m	struct:tcp_req
-error_h	error.h	30;"	d
-error_info	modules/pa/reply.c	/^str error_info[] = {$/;"	v
-error_info	modules/registrar/reply.c	/^str error_info[] = {$/;"	v
-error_text	error.c	/^char *error_text( int code )$/;"	f
-errors	proxy.h	/^	int errors;$/;"	m	struct:proxy_l
-escape_str	modules/pa/watcher.c	/^void escape_str(str *unescaped)$/;"	f
-estimated_overhead_per_alloc	modules/postgres/aug_alloc.h	/^	int estimated_overhead_per_alloc;	\/* assumes malloc overhead$/;"	m
-etag	parser/parse_sipifmatch.h	/^typedef struct etag {$/;"	s
-etag_parser	parser/parse_sipifmatch.c	/^etag_parser(char *_s, int _l, str *_e)$/;"	f
-etag_t	parser/parse_sipifmatch.h	/^} etag_t;$/;"	t
-eval_elem	route.c	/^static int eval_elem(struct expr* e, struct sip_msg* msg)$/;"	f	file:
-eval_expr	route.c	/^int eval_expr(struct expr* e, struct sip_msg* msg)$/;"	f
-even_CASE	parser/case_even.h	35;"	d
-event	modules/pa/watcher.h	/^        watcher_event_t  event;$/;"	m	struct:watcher
-event	parser/msg_parser.h	/^	struct hdr_field* event;$/;"	m	struct:sip_msg
-event	parser/parse_event.h	/^typedef struct event {$/;"	s
-event_body_parse	modules/pa/pidf.c	/^xmlDocPtr event_body_parse(char *event_body)$/;"	f
-event_package	modules/pa/watcher.h	/^	int event_package;      \/* event package being watched *\/$/;"	m	struct:watcher
-event_package_from_string	modules/pa/watcher.c	/^int event_package_from_string(str *epname) $/;"	f
-event_package_name	modules/pa/watcher.c	/^char *event_package_name[] = {$/;"	v
-event_parser	parser/parse_event.c	/^static inline int event_parser(char* _s, int _l, event_t* _e)$/;"	f	file:
-event_t	parser/parse_event.h	/^} event_t;$/;"	t
-eventlist	modules/pa/pa.sql	/^create table eventlist ($/;"	t
-eventlistitem	modules/pa/pa.sql	/^create table eventlistitem ($/;"	t
-exec_exports	modules/exec/exec_mod.c	/^struct module_exports exec_exports = {$/;"	v
-exec_msg	modules/exec/exec.c	/^int exec_msg(struct sip_msg *msg, char *cmd )$/;"	f
-exec_post_cb	script_cb.c	/^void exec_post_cb( struct sip_msg *msg)$/;"	f
-exec_pre_cb	script_cb.c	/^int exec_pre_cb( struct sip_msg *msg)$/;"	f
-exec_shutdown	modules/exec/exec_mod.c	/^void exec_shutdown()$/;"	f
-exec_str	modules/exec/exec.c	/^int exec_str(struct sip_msg *msg, char *cmd, char *param, int param_len) {$/;"	f
-executeCPLForSIPMessage	modules/cpl/jcpli.c	/^int executeCPLForSIPMessage(char *msgContent, int msgLength, char *serverAddress, int serverPort, char **pRespBuff, int *pRespLen)$/;"	f
-existing_subscription	modules/pa/subscribe.c	/^int existing_subscription(struct sip_msg* _m, char* _domain, char* _s2)$/;"	f
-exists_ulcb_type	modules/usrloc/ul_callback.h	68;"	d
-exp	cfg.y	/^exp:	exp AND exp 	{ $$=mk_exp(AND_OP, $1, $3); }$/;"	l
-exp_body	parser/parse_expires.h	/^typedef struct exp_body {$/;"	s
-exp_body_t	parser/parse_expires.h	/^} exp_body_t;$/;"	t
-exp_elem	cfg.y	/^exp_elem:	METHOD strop STRING	{$$= mk_elem(	$2, STRING_ST, $/;"	l
-exp_stm	cfg.y	/^exp_stm:	cmd						{ $$=$1; }$/;"	l
-expi_CASE	parser/case_expi.h	55;"	d
-expire	modules/jabber/xjab_jcon.h	/^	int expire;			\/\/ time when the open connection is expired$/;"	m	struct:_xj_jcon
-expire	modules/jabber/xjab_util.h	/^	int *expire;	\/\/ expire time of the queued message$/;"	m	struct:_xj_jmsg_queue
-expired	modules/pa/pdomain.h	/^	int expired;                \/* Number of expired presentities *\/$/;"	m	struct:pdomain
-expired	modules/usrloc/udomain.h	/^	int expired;                   \/* Number of expired contacts *\/$/;"	m	struct:udomain
-expires	modules/pa/presentity.h	/^	time_t expires;$/;"	m	struct:presence_tuple
-expires	modules/pa/watcher.h	/^	time_t expires;         \/* Absolute of the expiration *\/$/;"	m	struct:watcher
-expires	modules/pike/ip_tree.h	/^	unsigned int      expires;$/;"	m	struct:ip_node
-expires	modules/usrloc/ucontact.h	/^	time_t expires;         \/* expires parameter *\/$/;"	m	struct:ucontact
-expires	parser/contact/contact.h	/^	param_t* expires;       \/* expires parameter hook *\/$/;"	m	struct:contact
-expires	parser/msg_parser.h	/^	struct hdr_field* expires;$/;"	m	struct:sip_msg
-expires	parser/parse_param.h	/^	struct param* expires;  \/* expires parameter *\/$/;"	m	struct:contact_hooks
-expires	timer.h	/^	unsigned int expires;$/;"	m	struct:sr_timer
-expires_col	modules/usrloc/ul_mod.c	/^str expires_col     = {EXPIRES_COL, sizeof(EXPIRES_COL) - 1};       \/* Name of column containing expires values *\/$/;"	v
-expires_parser	parser/parse_expires.c	/^static inline int expires_parser(char* _s, int _l, exp_body_t* _e)$/;"	f	file:
-exports	modules/acc/acc_mod.c	/^struct module_exports exports= {$/;"	v
-exports	modules/auth/auth_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/auth_db/authdb_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/auth_diameter/auth_diameter.c	/^struct module_exports exports = {$/;"	v
-exports	modules/auth_radius/authrad_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/avp/avp.c	/^struct module_exports exports = {$/;"	v
-exports	modules/avp_db/avp_db.c	/^struct module_exports exports = {$/;"	v
-exports	modules/avp_radius/avp_radius.c	/^struct module_exports exports = {$/;"	v
-exports	modules/avpops/avpops.c	/^struct module_exports exports = {$/;"	v
-exports	modules/cpl-c/cpl.c	/^struct module_exports exports = {$/;"	v
-exports	modules/cpl/cpl.c	/^struct module_exports exports = {$/;"	v
-exports	modules/dbtext/dbtex/dbtex.c	/^struct module_exports exports= {	$/;"	v
-exports	modules/dbtext/dbtext.c	/^struct module_exports exports = {	$/;"	v
-exports	modules/dispatcher/dispatcher.c	/^struct module_exports exports= {$/;"	v
-exports	modules/diversion/diversion.c	/^struct module_exports exports = {$/;"	v
-exports	modules/domain/domain_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/enum/enum_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/ext/ext.c	/^struct module_exports exports = {$/;"	v
-exports	modules/extcmd/extcmd.c	/^struct module_exports exports= {$/;"	v
-exports	modules/flatstore/flatstore_mod.c	/^struct module_exports exports = {	$/;"	v
-exports	modules/gflags/gflags.c	/^struct module_exports exports = {$/;"	v
-exports	modules/group/group_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/group_radius/grouprad_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/jabber/jabber.c	/^struct module_exports exports= {$/;"	v
-exports	modules/mangler/mangler.c	/^struct module_exports exports = {$/;"	v
-exports	modules/mediaproxy/mediaproxy.c	/^struct module_exports exports = {$/;"	v
-exports	modules/msilo/msilo.c	/^struct module_exports exports= {$/;"	v
-exports	modules/mysql/db_mod.c	/^struct module_exports exports = {	$/;"	v
-exports	modules/nathelper/nathelper.c	/^struct module_exports exports = {$/;"	v
-exports	modules/options/mod_options.c	/^struct module_exports exports = {$/;"	v
-exports	modules/pa/pa_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/pdt/pdt.c	/^struct module_exports exports = {$/;"	v
-exports	modules/permissions/permissions.c	/^struct module_exports exports = {$/;"	v
-exports	modules/pike/pike.c	/^struct module_exports exports= {$/;"	v
-exports	modules/postgres/db_mod.c	/^struct module_exports exports = {	$/;"	v
-exports	modules/print/print.c	/^struct module_exports exports = {$/;"	v
-exports	modules/registrar/reg_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/rr/rr_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/sms/sms.c	/^struct module_exports exports= {$/;"	v
-exports	modules/speeddial/speeddial.c	/^struct module_exports exports = {$/;"	v
-exports	modules/textops/textops.c	/^struct module_exports exports= {$/;"	v
-exports	modules/uri/uri_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/uri_db/uridb_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/uri_radius/urirad_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/usrloc/ul_mod.c	/^struct module_exports exports = {$/;"	v
-exports	modules/xlog/xlog.c	/^struct module_exports exports= {$/;"	v
-exports	sr_module.h	/^	struct module_exports* exports;$/;"	m	struct:sr_module
-expr	cfg.tab.c	/^	struct expr* expr;$/;"	m	union:YYSTYPE	file:
-expr	cfg.tab.h	/^	struct expr* expr;$/;"	m	union:YYSTYPE
-expr	route_struct.h	/^		struct expr* expr;$/;"	m	union:expr::<anonymous>
-expr	route_struct.h	/^struct expr{$/;"	s
-expression	modules/permissions/rule.h	/^typedef struct expression_struct expression;$/;"	t
-expression_struct	modules/permissions/rule.h	/^struct expression_struct  {$/;"	s
-ext_child_init	modules/ext/ext.c	/^static int ext_child_init(int child)$/;"	f	file:
-ext_rewrite	modules/ext/ext.c	/^static int ext_rewrite(struct sip_msg *msg, char *cmd, int type )$/;"	f	file:
-ext_rewriteuri	modules/ext/ext.c	/^static int ext_rewriteuri(struct sip_msg *msg, char *cmd, char *foo_str )$/;"	f	file:
-ext_rewriteuser	modules/ext/ext.c	/^static int ext_rewriteuser(struct sip_msg *msg, char *cmd, char *foo_str )$/;"	f	file:
-extcmd_child_init	modules/extcmd/extcmd.c	/^int extcmd_child_init(int rank)$/;"	f
-extcmd_init	modules/extcmd/extcmd.c	/^static int extcmd_init(void)$/;"	f	file:
-extcmd_server_process	modules/extcmd/extcmd_funcs.c	/^void extcmd_server_process( int server_sock )$/;"	f
-extra_data	tcp_conn.h	/^	void* extra_data; \/* extra data associated to the connection, 0 for tcp*\/$/;"	m	struct:tcp_connection
-extra_objs	Makefile	/^extra_objs=$(extra_sources:.c=.o)$/;"	m
-extra_sources	Makefile	/^extra_sources=$(wildcard $(addsuffix \/*.c, $(static_modules_path)))$/;"	m
-extract_aor	modules/registrar/common.c	/^int extract_aor(str* _uri, str* _a)$/;"	f
-extract_body	modules/nathelper/nhelpr_funcs.c	/^int extract_body(struct sip_msg *msg, str *body )$/;"	f
-extract_mediaip	modules/nathelper/nathelper.c	/^extract_mediaip(str *body, str *mediaip, int *pf)$/;"	f	file:
-extract_mediaport	modules/nathelper/nathelper.c	/^extract_mediaport(str *body, str *mediaport)$/;"	f	file:
-extract_plain_uri	modules/pa/subscribe.c	/^static int extract_plain_uri(str* _uri)$/;"	f	file:
-f	fifo_server.h	/^	fifo_cmd *f;$/;"	m	struct:fifo_command
-f	modules/jabber/xode.h	/^    xode_stream_onNode f;$/;"	m	struct:xode_stream_struct
-f	modules/jabber/xpool.c	/^    xode_pool_cleaner f;$/;"	m	struct:xode_pool_free	file:
-f	unixsock_server.h	/^	unixsock_f* f;              \/* Function to be called *\/$/;"	m	struct:unixsock_cmd
-f1	modules/jabber/sha.c	83;"	d	file:
-f2	modules/jabber/sha.c	84;"	d	file:
-f3	modules/jabber/sha.c	85;"	d	file:
-fORW	parser/obsolete/strs.h	197;"	d
-fORw	parser/obsolete/strs.h	196;"	d
-fOrW	parser/obsolete/strs.h	195;"	d
-fOrw	parser/obsolete/strs.h	194;"	d
-fROM	parser/obsolete/strs.h	82;"	d
-fROm	parser/obsolete/strs.h	81;"	d
-fRoM	parser/obsolete/strs.h	80;"	d
-fRom	parser/obsolete/strs.h	79;"	d
-f_malloc_h	mem/f_malloc.h	40;"	d
-f_tmp	cfg.tab.c	/^static void* f_tmp;$/;"	v	file:
-failed_on_send	stats.h	/^	failed_on_send;			$/;"	m	struct:stats_s
-failed_transactions	modules/acc/acc_mod.c	/^int failed_transactions = 0;$/;"	v
-failure	modules/cpl-c/cpl_run.h	/^		char *failure;$/;"	m	struct:cpl_interpreter::proxy_st
-failure_rlist	route.c	/^struct action* failure_rlist[FAILURE_RT_NO];$/;"	v
-failure_route_stm	cfg.y	/^failure_route_stm: ROUTE_FAILURE LBRACK NUMBER RBRACK LBRACE actions RBRACE {$/;"	l
-failures	modules/sl/sl_stats.h	/^	unsigned long failures;$/;"	m	struct:sl_stats
-fake_reply	modules/tm/timer.c	/^static void fake_reply(struct cell *t, int branch, int code )$/;"	f	file:
-fake_req	modules/tm/t_reply.c	/^static inline int fake_req(struct sip_msg *faked_req, $/;"	f	file:
-faked_env	modules/tm/t_reply.c	/^static inline void faked_env( struct cell *t,struct sip_msg *msg)$/;"	f	file:
-fastlock_h	fastlock.h	49;"	d
-fd	modules/extcmd/clients.h	/^	int fd;$/;"	m	struct:client_struct
-fd	modules/extcmd/extcmd_funcs.c	/^	int fd;$/;"	m	struct:anchor_struct	file:
-fd	modules/jabber/doc/web/libjab.php	/^	$fd = fsockopen($server, $port, $errno, $errstr, 30);$/;"	v
-fd	modules/jabber/doc/web/subscribe.php	/^		$fd = jab_connect($jserver, $jport);$/;"	v
-fd	modules/jabber/doc/web/subscribe.php	/^	$fd = jab_connect($jserver, $jport);$/;"	v
-fd	modules/sms/sms_funcs.h	/^	int  fd;$/;"	m	struct:modem
-fd	tcp_conn.h	/^	int fd; \/* used only by "children", don't modify it! private data! *\/$/;"	m	struct:tcp_connection
-fd	utils/fifo_relay/fifo_server.php	/^    $fd = fopen($fifo_clients, "r");$/;"	v
-fd_in	modules/ext/my_exec.h	/^	int   fd_in;$/;"	m	struct:program
-fd_out	modules/ext/my_exec.h	/^	int   fd_out;$/;"	m	struct:program
-fdp	modules/jabber/doc/web/libjab.php	/^	$fdp = socket_set_blocking($fd, 0);$/;"	v
-fetch_sms_id	modules/sms/libsms_putsms.c	/^inline int fetch_sms_id(char *answer)$/;"	f
-fetchsms	modules/sms/libsms_getsms.c	/^int fetchsms(struct modem *mdm, int sim, char* pdu)$/;"	f
-fields	modules/dbtext/dbt_lib.h	/^	dbt_val_p fields;$/;"	m	struct:_dbt_row
-fifo	examples/web_im/click_to_dial.php	/^$fifo="\/tmp\/ser_fifo";$/;"	v
-fifo	examples/web_im/send_im.php	/^$fifo="\/tmp\/ser_fifo";$/;"	v
-fifo	fifo_server.c	/^char *fifo=0; \/* FIFO name *\/$/;"	v
-fifo_allow	utils/fifo_relay/fifo_server.php	/^function fifo_allow($fifo_clients, $addr) {$/;"	f
-fifo_callback	modules/tm/uac_fifo.c	/^static void fifo_callback( struct cell *t, int type, struct tmcb_params *ps )$/;"	f	file:
-fifo_cbp	modules/tm/uac_fifo.c	/^static inline int fifo_cbp(char** shm_file, char* response_file)$/;"	f	file:
-fifo_check	fifo_server.c	/^static int fifo_check(int fd, char* fname)$/;"	f	file:
-fifo_check_msg	modules/tm/uac_fifo.c	/^static inline int fifo_check_msg(struct sip_msg* msg, str* method, char* resp, str* body, $/;"	f	file:
-fifo_clients	utils/fifo_relay/fifo_server.php	/^$fifo_clients = "\/etc\/ser\/fifo_server.clients";$/;"	v
-fifo_cmd	examples/web_im/click_to_dial.php	/^$fifo_cmd=":t_uac:".$myfilename."\\n".$/;"	v
-fifo_cmd	examples/web_im/send_im.php	/^$fifo_cmd=":t_uac_dlg:".$myfilename."\\n".$/;"	v
-fifo_cmd	fifo_server.h	/^typedef int (fifo_cmd)( FILE *fifo_stream, char *response_file );$/;"	t
-fifo_cmd	modules/postgres/serpgctl	/^fifo_cmd()$/;"	f
-fifo_cmd	scripts/sc	/^fifo_cmd()$/;"	f
-fifo_cmd	utils/fifo_relay/fifo_server.php	/^  $fifo_cmd = str_replace("REPLY_FILE_NAME", $fifo_reply_file_name, $fifo_cmd);$/;"	v
-fifo_cmd	utils/fifo_relay/fifo_server.php	/^  $fifo_cmd=$fifo_cmd."\\n";$/;"	v
-fifo_command	fifo_server.h	/^struct fifo_command{$/;"	s
-fifo_command	modules/pdt/doc/web/request.php	/^	    $fifo_command = $fifo_command.":".$domain_port;$/;"	v
-fifo_command	modules/pdt/doc/web/request.php	/^	$fifo_command = ":get_domainprefix:";	$/;"	v
-fifo_command	modules/pdt/doc/web/request.php	/^	$fifo_command = $fifo_command.$authorized.$new_line.$new_line;$/;"	v
-fifo_command	modules/pdt/doc/web/request.php	/^	$fifo_command = $fifo_command.$domain_name;$/;"	v
-fifo_command	modules/pdt/doc/web/request.php	/^	$fifo_command = $fifo_command.$new_line;$/;"	v
-fifo_command	modules/pdt/doc/web/request.php	/^	$fifo_command = $fifo_command.$response_file.$new_line;$/;"	v
-fifo_db_con	db/db_fifo.c	/^static db_con_t*     fifo_db_con=0;$/;"	v	file:
-fifo_db_url	fifo_server.c	/^char *fifo_db_url = 0;$/;"	v
-fifo_dbf	db/db_fifo.c	/^static db_func_t fifo_dbf;$/;"	v	file:
-fifo_dir	fifo_server.c	/^char* fifo_dir=DEFAULT_FIFO_DIR; \/* dir where reply fifos are allowed *\/$/;"	v
-fifo_find_domain	modules/usrloc/ul_fifo.c	/^static inline void fifo_find_domain(str* _name, udomain_t** _d)$/;"	f	file:
-fifo_get_body	modules/tm/uac_fifo.c	/^static inline int fifo_get_body(FILE* stream, char* response_file, str* body)$/;"	f	file:
-fifo_get_headers	modules/tm/uac_fifo.c	/^static inline int fifo_get_headers(FILE* stream, char* response_file, str* headers)$/;"	f	file:
-fifo_get_method	modules/tm/uac_fifo.c	/^static inline int fifo_get_method(FILE* stream, char* response_file, str* method)$/;"	f	file:
-fifo_get_nexthop	modules/tm/uac_fifo.c	/^static inline int fifo_get_nexthop(FILE* stream, char* response_file, str* nexthop, struct sip_uri* pnexthop)$/;"	f	file:
-fifo_get_ruri	modules/tm/uac_fifo.c	/^static inline int fifo_get_ruri(FILE* stream, char* response_file, str* ruri, struct sip_uri* puri)$/;"	f	file:
-fifo_handle	examples/web_im/click_to_dial.php	/^$fifo_handle=fopen( $fifo, "w" );$/;"	v
-fifo_handle	examples/web_im/send_im.php	/^$fifo_handle=fopen( $fifo, "w" );$/;"	v
-fifo_handle	utils/fifo_relay/fifo_server.php	/^  $fifo_handle=fopen( "\/tmp\/ser_fifo", "w" );$/;"	v
-fifo_hash	modules/tm/h_table.c	/^int fifo_hash( FILE *stream, char *response_file )$/;"	f
-fifo_is_gflag	modules/gflags/gflags.c	/^static int fifo_is_gflag( FILE* pipe, char* response_file )$/;"	f	file:
-fifo_pa_location	modules/pa/publish.c	/^int fifo_pa_location(FILE *fifo, char *response_file)$/;"	f
-fifo_pa_location_contact	modules/pa/publish.c	/^int fifo_pa_location_contact(FILE *fifo, char *response_file)$/;"	f
-fifo_pa_presence	modules/pa/publish.c	/^int fifo_pa_presence(FILE *fifo, char *response_file)$/;"	f
-fifo_pa_presence_contact	modules/pa/publish.c	/^int fifo_pa_presence_contact(FILE *fifo, char *response_file)$/;"	f
-fifo_pa_publish	modules/pa/publish.c	/^int fifo_pa_publish(FILE *stream, char *response_file)$/;"	f
-fifo_pa_watcherinfo	modules/pa/publish.c	/^int fifo_pa_watcherinfo(FILE *fifo, char *response_file)$/;"	f
-fifo_pid	fifo_server.c	/^pid_t fifo_pid;$/;"	v
-fifo_print_ip_tree	modules/pike/pike_fifo.c	/^int fifo_print_ip_tree( FILE *fifo_stream, char *response_file )$/;"	f
-fifo_print_timer_list	modules/pike/pike_fifo.c	/^int fifo_print_timer_list( FILE *fifo_stream, char *response_file )$/;"	f
-fifo_read	fifo_server.c	/^static int fifo_read=0;$/;"	v	file:
-fifo_reply	fifo_server.c	/^void fifo_reply( char *reply_fifo, char *reply_fmt, ... )$/;"	f
-fifo_reply_file	utils/fifo_relay/fifo_server.php	/^  $fifo_reply_file = "\/tmp\/".$fifo_reply_file_name;$/;"	v
-fifo_reply_file_name	utils/fifo_relay/fifo_server.php	/^  $fifo_reply_file_name = "ser_fifo_reply_".rand();$/;"	v
-fifo_reset_gflag	modules/gflags/gflags.c	/^static int fifo_reset_gflag( FILE* pipe, char* response_file )$/;"	f	file:
-fifo_server	fifo_server.c	/^static void fifo_server(FILE *fifo_stream)$/;"	f	file:
-fifo_set_gflag	modules/gflags/gflags.c	/^static int fifo_set_gflag( FILE* pipe, char* response_file )$/;"	f	file:
-fifo_stats	modules/tm/t_stats.c	/^int static fifo_stats( FILE *pipe, char *response_file )$/;"	f	file:
-fifo_stream	fifo_server.c	/^static FILE *fifo_stream=0;$/;"	v	file:
-fifo_t_reply	modules/tm/t_reply.c	/^int fifo_t_reply( FILE *stream, char *response_file )$/;"	f
-fifo_uac	modules/tm/uac_fifo.c	/^int fifo_uac(FILE *stream, char *response_file)$/;"	f
-fifo_uac_cancel	modules/tm/t_cancel.c	/^int fifo_uac_cancel( FILE* stream, char *response_file )$/;"	f
-fifo_uac_error	modules/tm/uac_fifo.c	/^static inline void fifo_uac_error(char *reply_fifo, int code, char *msg)$/;"	f	file:
-fifo_write	fifo_server.c	/^static int fifo_write=0;$/;"	v	file:
-file	mem/f_malloc.h	/^	const char* file;$/;"	m	struct:fm_frag
-file	mem/q_malloc.h	/^	const char* file;$/;"	m	struct:qm_frag
-file	mem/vq_malloc.h	/^	char* file;$/;"	m	struct:vqm_frag
-file	modules/cpl-c/cpl_nonsig.c	/^static char file[MAX_LOG_DIR_SIZE+1+MAX_LOG_FILE_NAME+FILE_NAME_SUFIX_LEN+1];$/;"	v	file:
-file	modules/flatstore/flat_con.h	/^	FILE* file;            \/* File descriptor structure *\/$/;"	m	struct:flat_con
-file	modules/mediaproxy/mediaproxy.c	/^    char *file;        \/\/ the file which lists the asymmetric clients$/;"	m	file:
-file	modules/postgres/aug_alloc.c	/^	char *file;$/;"	m	struct:MemHeadStruct	file:
-file_ptr	modules/cpl-c/cpl_nonsig.c	/^static char *file_ptr;$/;"	v	file:
-filename	modules/permissions/permissions.h	/^	char* filename; \/* The name of the file *\/$/;"	m	struct:rule_file
-filename	modules/tm/uac_fifo.c	/^	char filename[1];$/;"	m	struct:cb_data	file:
-filter_fl	examples/ctd.sh	/^filter_fl()$/;"	f
-filter_fl	modules/postgres/serpgctl	/^filter_fl()$/;"	f
-filter_fl	scripts/sc	/^filter_fl()$/;"	f
-filter_fl	scripts/sc_unixsock	/^filter_fl()$/;"	f
-final	parser/parse_content.c	/^	unsigned char final;         \/* says what mime type\/subtype was detected$/;"	m	struct:type_node_s	file:
-final_response_handler	modules/tm/timer.c	/^inline static void final_response_handler( struct timer_link *fr_tl )$/;"	f	file:
-find234	modules/jabber/tree234.c	/^void *find234(tree234 *t, void *e, cmpfn234 cmp) {$/;"	f
-findLineStartingWith	modules/mediaproxy/mediaproxy.c	/^findLineStartingWith(str *block, char *start, int ignoreCase)$/;"	f	file:
-find_credentials	modules/auth/api.c	/^static inline int find_credentials(struct sip_msg* _m, str* _realm, int _hftype, struct hdr_field** _h)$/;"	f	file:
-find_credentials	modules/auth_diameter/authorize.c	/^int find_credentials(struct sip_msg* _m, str* _realm, int _hftype, $/;"	f
-find_dlist	modules/pa/dlist.c	/^static inline int find_dlist(str* _n, dlist_t** _d)$/;"	f	file:
-find_dlist	modules/usrloc/dlist.c	/^static inline int find_dlist(str* _n, dlist_t** _d)$/;"	f	file:
-find_domain	modules/usrloc/dlist.c	/^int find_domain(str* _d, udomain_t** _p)$/;"	f
-find_export	sr_module.c	/^cmd_function find_export(char* name, int param_no, int flags)$/;"	f
-find_first_route	modules/rr/loose.c	/^static inline int find_first_route(struct sip_msg* _m)$/;"	f	file:
-find_index	modules/permissions/permissions.c	/^static int find_index(rule_file_t* array, char* pathname)$/;"	f	file:
-find_mod_export	sr_module.c	/^cmd_function find_mod_export(char* mod, char* name, int param_no, int flags)$/;"	f
-find_module	sr_module.c	/^struct sr_module* find_module(void* f, cmd_export_t  **c)$/;"	f
-find_next_route	modules/rr/loose.c	/^static inline int find_next_route(struct sip_msg* _m, struct hdr_field** _hdr)$/;"	f	file:
-find_not_quoted	parser/parser_f.h	/^inline static char* find_not_quoted(str* _s, char _c)$/;"	f
-find_param_export	sr_module.c	/^void* find_param_export(char* mod, char* name, modparam_t type)$/;"	f
-find_presence_tuple	modules/pa/presentity.c	/^int find_presence_tuple(str* _contact, presentity_t *_p, presence_tuple_t ** _t)$/;"	f
-find_presentity	modules/pa/pdomain.c	/^int find_presentity(pdomain_t* _d, str* _uri, struct presentity** _p)$/;"	f
-find_proxy	proxy.c	/^static struct proxy_l* find_proxy(str *name, unsigned short port, int proto)$/;"	f	file:
-find_rem_target	modules/rr/loose.c	/^static inline int find_rem_target(struct sip_msg* _m, struct hdr_field** _h, rr_t** _l, rr_t** _p)$/;"	f	file:
-find_si	socket_info.c	/^struct socket_info* find_si(struct ip_addr* ip, unsigned short port,$/;"	f
-find_watcher	modules/pa/presentity.c	/^int find_watcher(struct presentity* _p, str* _uri, int _et, watcher_t** _w)$/;"	f
-findendline	modules/mediaproxy/mediaproxy.c	/^findendline(char *string, int len)$/;"	f	file:
-findpos234	modules/jabber/tree234.c	/^void *findpos234(tree234 *t, void *e, cmpfn234 cmp, int *index) {$/;"	f
-findrel234	modules/jabber/tree234.c	/^void *findrel234(tree234 *t, void *e, cmpfn234 cmp, int relation) {$/;"	f
-findrelpos234	modules/jabber/tree234.c	/^void *findrelpos234(tree234 *t, void *e, cmpfn234 cmp,$/;"	f
-findtest	modules/jabber/tree234.c	/^int findtest(void) {$/;"	f
-first	mem/f_malloc.h	/^	struct fm_frag* first;$/;"	m	struct:fm_frag_lnk
-first	modules/jabber/xode.h	/^    struct xode_spool_node *first;$/;"	m	struct:xode_spool_struct
-first	modules/mangler/contact_ops.h	/^	int first;$/;"	m	struct:uri_format
-first	modules/pa/hslot.h	/^	struct presentity* first;  \/* First element in the list *\/$/;"	m	struct:hslot
-first	modules/pa/pdomain.h	/^	struct presentity* first;   \/* First presentity in the domain *\/$/;"	m	struct:pdomain
-first	modules/tm/t_hooks.h	/^	struct tm_callback *first;$/;"	m	struct:tmcb_head_list
-first	modules/usrloc/hslot.h	/^	struct urecord* first;  \/* First element in the list *\/$/;"	m	struct:hslot
-first	modules/usrloc/udomain.h	/^		struct urecord* first; \/* First element in the list *\/$/;"	m	struct:udomain::<anonymous>
-first	modules/usrloc/ul_callback.h	/^	struct ul_callback *first;$/;"	m	struct:ulcb_head_list
-first_4bytes	modules/acc/defs.h	/^	unsigned int first_4bytes;$/;"	m	struct:rd_buf
-first_4bytes	modules/auth_diameter/defs.h	/^	unsigned int first_4bytes;$/;"	m	struct:rd_buf
-first_cell	modules/tm/h_table.h	/^	struct cell*    first_cell;$/;"	m	struct:entry
-first_frag	mem/f_malloc.h	/^	struct fm_frag* first_frag;$/;"	m	struct:fm_block
-first_frag	mem/q_malloc.h	/^	struct qm_frag* first_frag;$/;"	m	struct:qm_block
-first_line	parser/msg_parser.h	/^	struct msg_start first_line;   \/* Message first line *\/$/;"	m	struct:sip_msg
-first_route	modules/tm/dlg.h	/^	rr_t* first_route;  \/* First route to be printed into the message *\/$/;"	m	struct:dlg_hooks
-first_tl	modules/exec/kill.h	/^	struct timer_link  first_tl;$/;"	m	struct:timer_list
-first_tl	modules/tm/timer.h	/^	struct timer_link  first_tl;$/;"	m	struct:timer
-firstattrib	modules/jabber/xode.h	/^     struct xode_struct*  firstattrib;$/;"	m	struct:xode_struct
-firstchild	modules/jabber/xode.h	/^     struct xode_struct*  firstchild; $/;"	m	struct:xode_struct
-firstseen	modules/pa/pa.sql	/^create table firstseen ($/;"	t
-fis_param	modules/avpops/avpops_impl.h	/^struct fis_param$/;"	s
-fix_actions	route.c	/^static int fix_actions(struct action* a)$/;"	f	file:
-fix_all_socket_lists	socket_info.c	/^int fix_all_socket_lists()$/;"	f
-fix_expr	route.c	/^static int fix_expr(struct expr* exp)$/;"	f	file:
-fix_nated_contact_f	modules/nathelper/nathelper.c	/^fix_nated_contact_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-fix_nated_register_f	modules/nathelper/nathelper.c	/^fix_nated_register_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-fix_nated_sdp_f	modules/nathelper/nathelper.c	/^fix_nated_sdp_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-fix_rls	route.c	/^int fix_rls()$/;"	f
-fix_socket_list	socket_info.c	/^static int fix_socket_list(struct socket_info **list)$/;"	f	file:
-fixstring2int	modules/mediaproxy/mediaproxy.c	/^fixstring2int(void **param, int param_count)$/;"	f	file:
-fixup	sr_module.h	/^	fixup_function fixup;   \/* pointer to the function called to "fix" the$/;"	m	struct:cmd_export_
-fixup_char2int	modules/mangler/mangler.c	/^static int fixup_char2int (void **param, int param_no)$/;"	f	file:
-fixup_char2str	modules/mangler/mangler.c	/^static int fixup_char2str(void** param, int param_no)$/;"	f	file:
-fixup_char2uint	modules/mangler/mangler.c	/^static int fixup_char2uint (void **param, int param_no)$/;"	f	file:
-fixup_check_avp	modules/avpops/avpops.c	/^static int fixup_check_avp(void** param, int param_no)$/;"	f	file:
-fixup_cpl_run_script	modules/cpl-c/cpl.c	/^static int fixup_cpl_run_script(void** param, int param_no)$/;"	f	file:
-fixup_db_avp	modules/avpops/avpops.c	/^static int fixup_db_avp(void** param, int param_no, int allow_scheme)$/;"	f	file:
-fixup_db_delete_avp	modules/avpops/avpops.c	/^static int fixup_db_delete_avp(void** param, int param_no)$/;"	f	file:
-fixup_db_load_avp	modules/avpops/avpops.c	/^static int fixup_db_load_avp(void** param, int param_no)$/;"	f	file:
-fixup_db_store_avp	modules/avpops/avpops.c	/^static int fixup_db_store_avp(void** param, int param_no)$/;"	f	file:
-fixup_delete_avp	modules/avpops/avpops.c	/^static int fixup_delete_avp(void** param, int param_no)$/;"	f	file:
-fixup_ext_rewrite	modules/ext/ext.c	/^static int fixup_ext_rewrite(void** param, int param_no)$/;"	f	file:
-fixup_function	sr_module.h	/^typedef  int (*fixup_function)(void** param, int param_no);$/;"	t
-fixup_hostport2proxy	modules/tm/tm.c	/^static int fixup_hostport2proxy(void** param, int param_no)$/;"	f	file:
-fixup_maxfwd_header	modules/maxfwd/maxfwd.c	/^static int fixup_maxfwd_header(void** param, int param_no)$/;"	f	file:
-fixup_pushto_avp	modules/avpops/avpops.c	/^static int fixup_pushto_avp(void** param, int param_no)$/;"	f	file:
-fixup_regex	modules/textops/textops.c	/^static int fixup_regex(void** param, int param_no)$/;"	f	file:
-fixup_sl_send_reply	modules/sl/sl.c	/^static int fixup_sl_send_reply(void** param, int param_no)$/;"	f	file:
-fixup_sms_send_msg_to_net	modules/sms/sms.c	/^static int fixup_sms_send_msg_to_net(void** param, int param_no)$/;"	f	file:
-fixup_str2int	modules/gflags/gflags.c	/^static int fixup_str2int( void** param, int param_no)$/;"	f	file:
-fixup_str2int	modules/nathelper/nathelper.c	/^fixup_str2int( void** param, int param_no)$/;"	f	file:
-fixup_str2int	modules/tm/tm.c	/^static int fixup_str2int( void** param, int param_no)$/;"	f	file:
-fixup_str2regexp	modules/tm/tm.c	/^static int fixup_str2regexp(void** param, int param_no)$/;"	f	file:
-fixup_substre	modules/textops/textops.c	/^static int fixup_substre(void** param, int param_no)$/;"	f	file:
-fixup_t_flag	flags.c	/^static int fixup_t_flag(void** param, int param_no)$/;"	f	file:
-fixup_t_send_reply	modules/tm/tm.c	/^static int fixup_t_send_reply(void** param, int param_no)$/;"	f	file:
-fixup_t_write	modules/tm/t_fifo.c	/^int fixup_t_write( void** param, int param_no)$/;"	f
-fixup_write_avp	modules/avpops/avpops.c	/^static int fixup_write_avp(void** param, int param_no)$/;"	f	file:
-fl_lock_t	fastlock.h	/^typedef  volatile int fl_lock_t;$/;"	t
-fl_lock_t	test/mips_lock.c	/^typedef volatile int fl_lock_t;$/;"	t	file:
-flag	modules/cpl-c/cpl_time.h	/^	int flag;$/;"	m	struct:_tr_res
-flag	modules/dbtext/dbt_lib.h	/^	int flag;$/;"	m	struct:_dbt_column
-flag	modules/dbtext/dbt_lib.h	/^	int flag;$/;"	m	struct:_dbt_table
-flag	modules/jabber/xjab_base.h	/^	int flag;$/;"	m	struct:_xj_jkey
-flag	modules/msilo/ms_msg_list.h	/^	int flag;$/;"	m	struct:_msg_list_el
-flag_in_range	flags.c	/^int flag_in_range( flag_t flag ) {$/;"	f
-flag_t	flags.h	/^typedef unsigned int flag_t;$/;"	t
-flags	data_lump_rpl.h	/^	int flags;$/;"	m	struct:lump_rpl
-flags	ip_addr.h	/^	enum si_flags flags; \/* SI_IS_IP | SI_IS_LO | SI_IS_MCAST *\/$/;"	m	struct:socket_info
-flags	lump_struct.h	/^	enum lump_flag flags; \/* additional hints for use from TM's shmem *\/$/;"	m	struct:lump
-flags	main.c	/^static char* flags=SER_COMPILE_FLAGS;$/;"	v	file:
-flags	modules/acc/diam_message.h	/^	AAAMsgFlag          flags;$/;"	m	struct:_message_t
-flags	modules/acc/diam_message.h	/^	AAA_AVPFlag flags;$/;"	m	struct:avp
-flags	modules/auth_diameter/diameter_msg.h	/^	AAAMsgFlag          flags;$/;"	m	struct:_message_t
-flags	modules/auth_diameter/diameter_msg.h	/^	AAA_AVPFlag flags;$/;"	m	struct:avp
-flags	modules/avpops/avpops_impl.h	/^	int     flags;  \/* flags *\/$/;"	m	struct:fis_param
-flags	modules/cpl-c/cpl_run.h	/^	unsigned int flags;$/;"	m	struct:cpl_interpreter
-flags	modules/cpl-c/loc_set.h	/^	int flags;$/;"	m	struct:location
-flags	modules/pa/presentity.h	/^	pflag_t flags;$/;"	m	struct:presentity
-flags	modules/pa/watcher.h	/^	wflags_t flags;$/;"	m	struct:watcher
-flags	modules/tm/h_table.h	/^	unsigned int flags;$/;"	m	struct:cell
-flags	modules/usrloc/ucontact.h	/^	unsigned int flags;     \/* Various flags (NAT, supported methods etc) *\/$/;"	m	struct:ucontact
-flags	modules/usrloc/ucontact.h	/^typedef enum flags {$/;"	g
-flags	parser/msg_parser.h	/^	flag_t flags;	$/;"	m	struct:sip_msg
-flags	resolve.h	/^	char flags[MAX_DNS_STRING];$/;"	m	struct:naptr_rdata
-flags	sr_module.h	/^	int flags;              \/* Function flags *\/$/;"	m	struct:cmd_export_
-flags	tcp_conn.h	/^	int flags; \/* connection related flags *\/$/;"	m	struct:tcp_connection
-flags	usr_avp.h	/^	unsigned short flags;$/;"	m	struct:usr_avp
-flags2attr	modules/avp/avp.c	/^static int flags2attr(struct sip_msg* msg, char* foo, char* bar)$/;"	f	file:
-flags_col	modules/usrloc/ul_mod.c	/^str flags_col       = {FLAGS_COL, sizeof(FLAGS_COL) - 1};           \/* Name of column containing flags *\/$/;"	v
-flags_len	resolve.h	/^	unsigned int flags_len;$/;"	m	struct:naptr_rdata
-flags_t	modules/usrloc/ucontact.h	/^} flags_t;$/;"	t
-flat_con	modules/flatstore/flat_con.h	/^struct flat_con {$/;"	s
-flat_db_close	modules/flatstore/flatstore.c	/^void flat_db_close(db_con_t* h)$/;"	f
-flat_db_init	modules/flatstore/flatstore.c	/^db_con_t* flat_db_init(const char* url)$/;"	f
-flat_db_insert	modules/flatstore/flatstore.c	/^int flat_db_insert(db_con_t* h, db_key_t* k, db_val_t* v, int n)$/;"	f
-flat_delimiter	modules/flatstore/flatstore_mod.c	/^char* flat_delimiter = "|";$/;"	v
-flat_flush	modules/flatstore/flatstore_mod.c	/^int flat_flush = 1;$/;"	v
-flat_free_connection	modules/flatstore/flat_con.c	/^void flat_free_connection(struct flat_con* con)$/;"	f
-flat_get_connection	modules/flatstore/flat_pool.c	/^struct flat_con* flat_get_connection(char* dir, char* table)$/;"	f
-flat_id	modules/flatstore/flat_id.h	/^struct flat_id {$/;"	s
-flat_new_connection	modules/flatstore/flat_con.c	/^struct flat_con* flat_new_connection(struct flat_id* id)$/;"	f
-flat_pid	modules/flatstore/flatstore_mod.c	/^int flat_pid;$/;"	v
-flat_release_connection	modules/flatstore/flat_pool.c	/^void flat_release_connection(struct flat_con* con)$/;"	f
-flat_reopen_connection	modules/flatstore/flat_con.c	/^int flat_reopen_connection(struct flat_con* con)$/;"	f
-flat_rotate	modules/flatstore/flatstore_mod.c	/^time_t* flat_rotate;	$/;"	v
-flat_rotate_cmd	modules/flatstore/flat_fifo.c	/^static int flat_rotate_cmd(FILE* pipe, char* response_file)$/;"	f	file:
-flat_rotate_logs	modules/flatstore/flat_pool.c	/^int flat_rotate_logs(void)$/;"	f
-flat_use_table	modules/flatstore/flatstore.c	/^int flat_use_table(db_con_t* h, const char* t)$/;"	f
-flex_int16_t	lex.yy.c	/^typedef int16_t flex_int16_t;$/;"	t	file:
-flex_int16_t	lex.yy.c	/^typedef short int flex_int16_t;$/;"	t	file:
-flex_int32_t	lex.yy.c	/^typedef int flex_int32_t;$/;"	t	file:
-flex_int32_t	lex.yy.c	/^typedef int32_t flex_int32_t;$/;"	t	file:
-flex_int8_t	lex.yy.c	/^typedef int8_t flex_int8_t;$/;"	t	file:
-flex_int8_t	lex.yy.c	/^typedef signed char flex_int8_t;$/;"	t	file:
-flex_uint16_t	lex.yy.c	/^typedef uint16_t flex_uint16_t;$/;"	t	file:
-flex_uint16_t	lex.yy.c	/^typedef unsigned short int flex_uint16_t;$/;"	t	file:
-flex_uint32_t	lex.yy.c	/^typedef uint32_t flex_uint32_t;$/;"	t	file:
-flex_uint32_t	lex.yy.c	/^typedef unsigned int flex_uint32_t;$/;"	t	file:
-flex_uint8_t	lex.yy.c	/^typedef uint8_t flex_uint8_t;$/;"	t	file:
-flex_uint8_t	lex.yy.c	/^typedef unsigned char flex_uint8_t; $/;"	t	file:
-floor	modules/pa/presentity.h	/^	str   floor;$/;"	m	struct:location
-floor_buf	modules/pa/presentity.h	/^	char floor_buf[TUPLE_LOCATION_FLOOR_LEN];$/;"	m	struct:location
-fm_block	mem/f_malloc.h	/^struct fm_block{$/;"	s
-fm_frag	mem/f_malloc.h	/^struct fm_frag{$/;"	s
-fm_frag_lnk	mem/f_malloc.h	/^struct fm_frag_lnk{$/;"	s
-fm_free	mem/f_malloc.c	/^void fm_free(struct fm_block* qm, void* p, const char* file, const char* func, $/;"	f
-fm_insert_free	mem/f_malloc.c	/^static inline void fm_insert_free(struct fm_block* qm, struct fm_frag* frag)$/;"	f	file:
-fm_malloc	mem/f_malloc.c	/^void* fm_malloc(struct fm_block* qm, unsigned long size,$/;"	f
-fm_malloc_init	mem/f_malloc.c	/^struct fm_block* fm_malloc_init(char* address, unsigned long size)$/;"	f
-fm_realloc	mem/f_malloc.c	/^void* fm_realloc(struct fm_block* qm, void* p, unsigned long size,$/;"	f
-fm_split_frag	mem/f_malloc.c	/^void fm_split_frag(struct fm_block* qm, struct fm_frag* frag,$/;"	f	file:
-fm_status	mem/f_malloc.c	/^void fm_status(struct fm_block* qm)$/;"	f
-fmt2strar	modules/acc/acc.c	/^static int fmt2strar( char *fmt, \/* what would you like to account ? *\/$/;"	f	file:
-foRW	parser/obsolete/strs.h	193;"	d
-foRw	parser/obsolete/strs.h	192;"	d
-forW	parser/obsolete/strs.h	191;"	d
-force_dst	modules/dispatcher/dispatcher.c	/^int  force_dst = 0;$/;"	v
-force_retr	modules/tm/t_funcs.h	/^static void inline force_retr(struct retr_buf *rb)$/;"	f
-force_rtp_proxy0_f	modules/nathelper/nathelper.c	/^force_rtp_proxy0_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-force_rtp_proxy1_f	modules/nathelper/nathelper.c	/^force_rtp_proxy1_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-force_rtp_proxy2_f	modules/nathelper/nathelper.c	/^force_rtp_proxy2_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-force_send_socket	parser/msg_parser.h	/^	struct socket_info* force_send_socket; \/* force sending on this socket,$/;"	m	struct:sip_msg
-force_socket	modules/nathelper/nathelper.c	/^struct socket_info* force_socket = 0;$/;"	v
-force_socket_str	modules/nathelper/nathelper.c	/^static char *force_socket_str = 0;$/;"	v	file:
-format_converter	modules/jabber/xsnprintf.c	/^static int format_converter(register buffy * odp, const char *fmt,$/;"	f	file:
-forw	parser/obsolete/strs.h	190;"	d
-forward_h	forward.h	41;"	d
-forward_reply	forward.c	/^int forward_reply(struct sip_msg* msg)$/;"	f
-forward_reply_to_client	modules/extcmd/extcmd_funcs.c	/^inline int forward_reply_to_client(int pipe_fd)$/;"	f
-forward_request	forward.c	/^int forward_request( struct sip_msg* msg, struct proxy_l * p, int proto)$/;"	f
-forward_request_to_all_clients	modules/extcmd/extcmd_funcs.c	/^static int forward_request_to_all_clients(int pipe_fd)$/;"	f	file:
-fourbits2char	ut.h	/^static char fourbits2char[16] = { '0', '1', '2', '3', '4', '5',$/;"	v
-fp	modules/pdt/doc/web/request.php	/^	$fp = fopen($input_file, "w");$/;"	v
-fp	modules/postgres/con_postgres.h	/^	FILE *fp;	\/* debug file output *\/$/;"	m	struct:con_postgres
-fr	modules/pdt/doc/web/request.php	/^	$fr = fopen($reply, "r");$/;"	v
-frOM	parser/obsolete/strs.h	78;"	d
-frOm	parser/obsolete/strs.h	77;"	d
-fr_avp2timer	modules/tm/t_funcs.c	/^int fr_avp2timer(unsigned int* timer)$/;"	f
-fr_inv_avp2timer	modules/tm/t_funcs.c	/^int fr_inv_avp2timer(unsigned int* timer)$/;"	f
-fr_inv_timer_avp	modules/tm/t_funcs.c	/^static int_str fr_inv_timer_avp = \/*(int_str)*\/{ 0 };$/;"	v	file:
-fr_inv_timer_avp_type	modules/tm/t_funcs.c	/^static int     fr_inv_timer_avp_type = 0;$/;"	v	file:
-fr_inv_timer_param	modules/tm/tm.c	/^static char *fr_inv_timer_param = FR_INV_TIMER_AVP;$/;"	v	file:
-fr_inv_timer_str	modules/tm/t_funcs.c	/^static str     fr_inv_timer_str;$/;"	v	file:
-fr_timer	modules/tm/h_table.h	/^	struct timer_link fr_timer;$/;"	m	struct:retr_buf
-fr_timer_avp	modules/tm/t_funcs.c	/^static int_str fr_timer_avp = \/*(int_str)*\/{ 0 };$/;"	v	file:
-fr_timer_avp_type	modules/tm/t_funcs.c	/^static int     fr_timer_avp_type = 0;$/;"	v	file:
-fr_timer_param	modules/tm/tm.c	/^static char *fr_timer_param = FR_TIMER_AVP;$/;"	v	file:
-fr_timer_str	modules/tm/t_funcs.c	/^static str     fr_timer_str;$/;"	v	file:
-free2node234	modules/jabber/tree234.c	/^static void free2node234(node234 *n, freefn fn )$/;"	f	file:
-free2tree234	modules/jabber/tree234.c	/^void free2tree234(tree234 *t, freefn fn)$/;"	f
-freeRedirectMessage	modules/cpl/jcpli.c	/^void freeRedirectMessage(TRedirectMessage *redMessage)$/;"	f
-freeRejectMessage	modules/cpl/jcpli.c	/^void freeRejectMessage(TRejectMessage *rejMessage)$/;"	f
-free_all_pdomains	modules/pa/dlist.c	/^void free_all_pdomains(void)$/;"	f
-free_all_udomains	modules/usrloc/dlist.c	/^void free_all_udomains(void)$/;"	f
-free_allow	parser/parse_allow.c	/^void free_allow(unsigned int** _methods)$/;"	f
-free_cell	modules/pdt/domains.c	/^void free_cell(dc_t* cell)$/;"	f
-free_cell	modules/tm/h_table.c	/^void free_cell( struct cell* dead_cell )$/;"	f
-free_columns	modules/mysql/res.c	/^static inline int free_columns(db_res_t* _r)$/;"	f	file:
-free_compiled_expresions	modules/mangler/sdp_mangler.c	/^int free_compiled_expresions()$/;"	f
-free_connection	modules/mysql/my_con.c	/^void free_connection(struct my_con* con)$/;"	f
-free_contact	parser/contact/parse_contact.c	/^void free_contact(contact_body_t** _c)$/;"	f
-free_contact_buf	modules/registrar/reply.c	/^void free_contact_buf(void)$/;"	f
-free_contacts	parser/contact/contact.c	/^void free_contacts(contact_t** _c)$/;"	f
-free_core	mem/vq_malloc.h	/^	unsigned long free_core;$/;"	m	struct:vqm_block
-free_cpl_interpreter	modules/cpl-c/cpl_run.c	/^void free_cpl_interpreter(struct cpl_interpreter *intr)$/;"	f
-free_credentials	parser/digest/digest.c	/^void free_credentials(auth_body_t** _b)$/;"	f
-free_cseq	parser/parse_cseq.c	/^void free_cseq(struct cseq_body* cb)$/;"	f
-free_disposition	parser/parse_disposition.c	/^void free_disposition( struct disposition **disp)$/;"	f
-free_dlg	modules/tm/dlg.c	/^void free_dlg(dlg_t* _d)$/;"	f
-free_dlg	modules/tm/tm_load.h	/^	free_dlg_f         free_dlg;$/;"	m	struct:tm_binds
-free_dlg_f	modules/tm/dlg.h	/^typedef void (*free_dlg_f)(dlg_t* _d);$/;"	t
-free_double_hash	modules/pdt/domains.c	/^void free_double_hash(double_hash_t* hash)$/;"	f
-free_duped_lump_list	data_lump.c	/^void free_duped_lump_list(struct lump* l)$/;"	f
-free_entry	modules/pdt/domains.c	/^void free_entry(entry_t *e, int erase_cell)$/;"	f
-free_event	parser/parse_event.c	/^void free_event(event_t** _e)$/;"	f
-free_expires	parser/parse_expires.c	/^void free_expires(exp_body_t** _e)$/;"	f
-free_expression	modules/permissions/rule.c	/^void free_expression(expression *e) $/;"	f
-free_faked_req	modules/tm/t_reply.c	/^void inline static free_faked_req(struct sip_msg *faked_req, struct cell *t)$/;"	f	file:
-free_flat_id	modules/flatstore/flat_id.c	/^void free_flat_id(struct flat_id* id)$/;"	f
-free_from	parser/parse_from.h	38;"	d
-free_func	stats.c	/^	void (*free_func)(struct sip_snmp_handler*);$/;"	m	struct:stats_funcs	file:
-free_hash	mem/f_malloc.h	/^	struct fm_frag_lnk free_hash[F_HASH_SIZE];$/;"	m	struct:fm_block
-free_hash	mem/q_malloc.h	/^	struct qm_frag_lnk free_hash[QM_HASH_SIZE];$/;"	m	struct:qm_block
-free_hash	modules/pdt/domains.c	/^void free_hash(h_entry_t* hash, unsigned int hash_size, int do_cell)$/;"	f
-free_hash_table	modules/permissions/hash.c	/^void free_hash_table(struct trusted_list** table)$/;"	f
-free_hash_table	modules/tm/h_table.c	/^void free_hash_table(  )$/;"	f
-free_hdr_field_lst	parser/hf.c	/^void free_hdr_field_lst(struct hdr_field* hf)$/;"	f
-free_hostent	proxy.c	/^void free_hostent(struct hostent *dst)$/;"	f
-free_it	modules/acc/diam_message.h	/^	unsigned char free_it;$/;"	m	struct:avp
-free_it	modules/auth_diameter/diameter_msg.h	/^	unsigned char free_it;$/;"	m	struct:avp
-free_location	modules/cpl-c/loc_set.h	/^static inline void free_location( struct location *loc)$/;"	f
-free_lump	data_lump.c	/^void free_lump(struct lump* lmp)$/;"	f
-free_lump_list	data_lump.c	/^void free_lump_list(struct lump* l)$/;"	f
-free_lump_rpl	data_lump_rpl.c	/^void free_lump_rpl(struct lump_rpl* lump)$/;"	f
-free_my_id	modules/mysql/my_id.c	/^void free_my_id(struct my_id* id)$/;"	f
-free_ops	modules/postgres/aug_alloc.h	/^	unsigned long free_ops;			\/* Total frees since epoch *\/$/;"	m
-free_params	parser/parse_param.c	/^void free_params(param_t* _p)$/;"	f
-free_pdomain	modules/pa/pdomain.c	/^void free_pdomain(pdomain_t* _d)$/;"	f
-free_presence_tuple	modules/pa/presentity.c	/^void free_presence_tuple(presence_tuple_t * _t)$/;"	f
-free_presentity	modules/pa/presentity.c	/^void free_presentity(presentity_t* _p)$/;"	f
-free_proxy	proxy.c	/^void free_proxy(struct proxy_l* p)$/;"	f
-free_query	modules/postgres/dbase.c	/^static int free_query(db_con_t* _h)$/;"	f	file:
-free_rdata_list	resolve.c	/^void free_rdata_list(struct rdata* head)$/;"	f
-free_reply_lump	parser/msg_parser.c	/^void free_reply_lump( struct lump_rpl *lump)$/;"	f
-free_report_cell	modules/sms/sms_report.c	/^inline void free_report_cell(struct report_cell *cell)$/;"	f
-free_result	db/db.h	/^	db_free_result_f free_result;  \/* Free a query result *\/$/;"	m	struct:db_func
-free_result	modules/mysql/res.c	/^int free_result(db_res_t* _r)$/;"	f
-free_result	modules/postgres/db_res.c	/^int free_result(db_res_t* _r)$/;"	f
-free_row	modules/mysql/row.c	/^int free_row(db_row_t* _r)$/;"	f
-free_rows	modules/mysql/res.c	/^static inline int free_rows(db_res_t* _r)$/;"	f	file:
-free_rr	parser/parse_rr.c	/^void free_rr(rr_t** _r)$/;"	f
-free_rte_list	modules/tm/t_msgbuilder.c	/^static inline void free_rte_list(struct rte* list)$/;"	f	file:
-free_rule	modules/permissions/rule.c	/^void free_rule(rule *r) $/;"	f
-free_shallow_lump	data_lump.c	/^static void free_shallow_lump( struct lump *l )$/;"	f	file:
-free_sip_msg	parser/msg_parser.c	/^void free_sip_msg(struct sip_msg* msg)$/;"	f
-free_sipifmatch	parser/parse_sipifmatch.c	/^void free_sipifmatch(str** _e)$/;"	f
-free_sock_info	socket_info.c	/^static void free_sock_info(struct socket_info* si)$/;"	f	file:
-free_timer_table	modules/tm/timer.c	/^void free_timer_table()$/;"	f
-free_tm_stats	modules/tm/t_stats.c	/^void free_tm_stats()$/;"	f
-free_to	parser/parse_to.c	/^void free_to(struct to_body* tb)$/;"	f
-free_ucontact	modules/usrloc/ucontact.c	/^void free_ucontact(ucontact_t* _c)$/;"	f
-free_udomain	modules/usrloc/udomain.c	/^void free_udomain(udomain_t* _d)$/;"	f
-free_urecord	modules/usrloc/urecord.c	/^void free_urecord(urecord_t* _r)$/;"	f
-free_via_clen_lump	modules/tm/fix_lumps.h	/^inline static void free_via_clen_lump( struct lump **list )$/;"	f
-free_via_list	parser/parse_via.c	/^void free_via_list(struct via_body* vb)$/;"	f
-free_via_param_list	parser/parse_via.c	/^static inline void free_via_param_list(struct via_param* vp)$/;"	f	file:
-free_watcher	modules/pa/watcher.c	/^void free_watcher(watcher_t* _w)$/;"	f
-freefn	modules/jabber/tree234.h	/^typedef void (*freefn)(void *);$/;"	t
-freenode234	modules/jabber/tree234.c	/^static void freenode234(node234 *n) {$/;"	f	file:
-freetree234	modules/jabber/tree234.c	/^void freetree234(tree234 *t)$/;"	f
-freq	modules/cpl-c/cpl_time.h	/^	int freq;$/;"	m	struct:_tmrec
-froM	parser/obsolete/strs.h	76;"	d
-from	modules/cpl-c/cpl_run.h	/^	str *from;$/;"	m	struct:cpl_interpreter
-from	modules/sms/sms_funcs.h	/^	str  from;$/;"	m	struct:sms_msg
-from	modules/tm/h_table.h	/^	str from, callid, cseq_n, to;$/;"	m	struct:cell
-from	parser/msg_parser.h	/^	struct hdr_field* from;$/;"	m	struct:sip_msg
-from	parser/obsolete/strs.h	75;"	d
-from_CASE	parser/case_from.h	35;"	d
-from_col	modules/permissions/permissions.c	/^char* from_col = "from_pattern";   \/* Name of from pattern column *\/$/;"	v
-from_tag	modules/tm/uac.c	/^static char from_tag[FROM_TAG_LEN + 1];$/;"	v	file:
-func	mem/f_malloc.h	/^	const char* func;$/;"	m	struct:fm_frag
-func	mem/q_malloc.h	/^	const char* func;$/;"	m	struct:qm_frag
-func	mem/vq_malloc.h	/^	char* func;$/;"	m	struct:vqm_frag
-func_invite	modules/mangler/mangler.c	/^static void func_invite(struct cell *t,struct sip_msg *msg,int code,void *param)$/;"	f	file:
-function	sr_module.h	/^	cmd_function function;  \/* pointer to the corresponding function *\/$/;"	m	struct:cmd_export_
-fwded_totags	modules/tm/h_table.h	/^	struct totag_elem *fwded_totags;$/;"	m	struct:cell
-galiases	usr_avp.c	/^static struct avp_galias *galiases = 0;$/;"	v	file:
-gen_lock_set_t	lock_ops.h	/^typedef struct gen_lock_set_t_ gen_lock_set_t;$/;"	t
-gen_lock_set_t_	lock_ops.h	/^struct gen_lock_set_t_ {$/;"	s
-gen_lock_t	lock_ops.h	/^typedef fl_lock_t gen_lock_t;$/;"	t
-gen_lock_t	lock_ops.h	/^typedef int gen_lock_t;$/;"	t
-gen_lock_t	lock_ops.h	/^typedef pthread_mutex_t gen_lock_t;$/;"	t
-gen_lock_t	lock_ops.h	/^typedef sem_t gen_lock_t;$/;"	t
-gencookie	modules/nathelper/nathelper.c	/^gencookie()$/;"	f	file:
-generate_callid	modules/tm/callid.c	/^void generate_callid(str* callid)$/;"	f
-generate_fromtag	modules/tm/uac.c	/^void generate_fromtag(str* tag, str* callid)$/;"	f
-generate_random_secret	modules/auth/auth_mod.c	/^static inline int generate_random_secret(void)$/;"	f	file:
-getCallId	modules/mediaproxy/mediaproxy.c	/^getCallId(struct sip_msg* msg, str *cid)$/;"	f	file:
-getContactURI	modules/mediaproxy/mediaproxy.c	/^getContactURI(struct sip_msg* msg, struct sip_uri *uri, contact_t** _c)$/;"	f	file:
-getDestinationDomain	modules/mediaproxy/mediaproxy.c	/^getDestinationDomain(struct sip_msg* msg)$/;"	f	file:
-getFromAddress	modules/mediaproxy/mediaproxy.c	/^getFromAddress(struct sip_msg *msg)$/;"	f	file:
-getFromDomain	modules/mediaproxy/mediaproxy.c	/^getFromDomain(struct sip_msg* msg)$/;"	f	file:
-getFromTag	modules/mediaproxy/mediaproxy.c	/^getFromTag(struct sip_msg *msg)$/;"	f	file:
-getMediaIPFromBlock	modules/mediaproxy/mediaproxy.c	/^getMediaIPFromBlock(str *block, str *mediaip)$/;"	f	file:
-getMediaStreams	modules/mediaproxy/mediaproxy.c	/^getMediaStreams(str *sdp, str *sessionIP, StreamInfo *streams, int limit)$/;"	f	file:
-getSDPMessage	modules/mediaproxy/mediaproxy.c	/^getSDPMessage(struct sip_msg *msg, str *sdp)$/;"	f	file:
-getSessionLevelMediaIP	modules/mediaproxy/mediaproxy.c	/^getSessionLevelMediaIP(str *sdp, str *mediaip)$/;"	f	file:
-getStrTokens	modules/mediaproxy/mediaproxy.c	/^getStrTokens(str *string, str *tokens, int limit)$/;"	f	file:
-getToAddress	modules/mediaproxy/mediaproxy.c	/^getToAddress(struct sip_msg *msg)$/;"	f	file:
-getToDomain	modules/mediaproxy/mediaproxy.c	/^getToDomain(struct sip_msg* msg)$/;"	f	file:
-getToTag	modules/mediaproxy/mediaproxy.c	/^getToTag(struct sip_msg *msg)$/;"	f	file:
-getTokens	modules/mediaproxy/mediaproxy.c	/^getTokens(char *string, str *tokens, int limit)$/;"	f	file:
-getUserAgent	modules/mediaproxy/mediaproxy.c	/^getUserAgent(struct sip_msg* msg)$/;"	f	file:
-get_3bytes	modules/acc/diam_message.c	36;"	d	file:
-get_3bytes	modules/auth_diameter/message.c	36;"	d	file:
-get_4bytes	modules/acc/diam_message.c	40;"	d	file:
-get_4bytes	modules/auth_diameter/message.c	40;"	d	file:
-get_T_from_cancel_rb	modules/tm/h_table.h	302;"	d
-get_T_from_reply_rb	modules/tm/h_table.h	296;"	d
-get_T_from_request_rb	modules/tm/h_table.h	299;"	d
-get_accept	parser/parse_content.h	80;"	d
-get_act_time	modules/pa/ptime.c	/^void get_act_time(void)$/;"	f
-get_act_time	modules/registrar/regtime.c	/^void get_act_time(void)$/;"	f
-get_act_time	modules/usrloc/utime.c	/^void get_act_time(void)$/;"	f
-get_all_ucontacts	modules/usrloc/dlist.c	/^int get_all_ucontacts(void *buf, int len, unsigned int flags)$/;"	f
-get_all_ucontacts	modules/usrloc/usrloc.h	/^	get_all_ucontacts_t  get_all_ucontacts;$/;"	m	struct:usrloc_api
-get_all_ucontacts_t	modules/usrloc/dlist.h	/^typedef int  (*get_all_ucontacts_t) (void* buf, int len, unsigned int flags);$/;"	t
-get_allow_methods	parser/parse_allow.h	37;"	d
-get_attr_or_alias	modules/avpops/avpops.c	/^static struct fis_param *get_attr_or_alias(char *s)$/;"	f	file:
-get_attr_val	modules/cpl-c/cpl_parser.c	117;"	d	file:
-get_authorized_cred	parser/digest/digest.c	/^int get_authorized_cred(struct hdr_field* _f, struct hdr_field** _h)$/;"	f
-get_avp_as_str	modules/avpops/avpops_impl.c	/^static int get_avp_as_str(struct fis_param *ap ,str *val)$/;"	f	file:
-get_avp_list	usr_avp.c	/^struct usr_avp** get_avp_list( )$/;"	f
-get_avp_name	usr_avp.c	/^inline str* get_avp_name(struct usr_avp *avp)$/;"	f
-get_avp_val	usr_avp.c	/^inline void get_avp_val(struct usr_avp *avp, int_str *val)$/;"	f
-get_avps	db/db_fifo.c	/^static inline int get_avps( FILE *fifo , db_key_t *keys, db_op_t *ops,$/;"	f	file:
-get_basic_attr	modules/cpl-c/cpl_run.c	92;"	d	file:
-get_body	parser/msg_parser.h	/^inline static char* get_body(struct sip_msg *msg)$/;"	f
-get_body_lines	modules/tm/uac_unixsock.c	/^static int get_body_lines(str* body, str* msg)$/;"	f	file:
-get_callid	modules/nathelper/nathelper.c	/^get_callid(struct sip_msg* _m, str* _cid)$/;"	f	file:
-get_callid	modules/tm/dlg.c	/^static inline int get_callid(struct sip_msg* _m, str* _cid)$/;"	f	file:
-get_client	modules/extcmd/clients.h	/^inline client_t* get_client( int index )$/;"	f
-get_cmd	modules/extcmd/extcmd_funcs.c	/^static int get_cmd( int fd, str *cmd)$/;"	f	file:
-get_code_from_hash	modules/pdt/domains.c	/^dc_t* get_code_from_hash(h_entry_t* hash, unsigned int hash_size, char* domain)$/;"	f
-get_columns	modules/mysql/res.c	/^static inline int get_columns(db_con_t* _h, db_res_t* _r)$/;"	f	file:
-get_columns	modules/postgres/db_res.c	/^static inline int get_columns(db_con_t* _h, db_res_t* _r)$/;"	f	file:
-get_connection	modules/mysql/my_pool.c	/^struct my_con* get_connection(const char* url)$/;"	f
-get_contact_uri	modules/nathelper/nathelper.c	/^get_contact_uri(struct sip_msg* _m, struct sip_uri *uri, contact_t** _c)$/;"	f	file:
-get_contact_uri	modules/tm/dlg.c	/^static inline int get_contact_uri(struct sip_msg* _m, str* _uri)$/;"	f	file:
-get_contact_uri	modules/tm/t_msgbuilder.c	/^static inline int get_contact_uri(struct sip_msg* msg, str* uri)$/;"	f	file:
-get_content_disposition	parser/parse_disposition.h	39;"	d
-get_content_length	parser/parse_content.h	67;"	d
-get_content_type	parser/parse_content.h	73;"	d
-get_cseq	parser/parse_cseq.h	43;"	d
-get_cseq_method	modules/tm/dlg.c	/^static inline int get_cseq_method(struct sip_msg* _m, str* _method)$/;"	f	file:
-get_cseq_value	modules/tm/dlg.c	/^static inline int get_cseq_value(struct sip_msg* _m, unsigned int* _cs)$/;"	f	file:
-get_dele_timer_payload	modules/tm/h_table.h	293;"	d
-get_dest_user	modules/cpl-c/cpl.c	/^static inline int get_dest_user(struct sip_msg *msg, str *uh, int flg)$/;"	f	file:
-get_diversion	parser/parse_diversion.h	35;"	d
-get_dlg_uri	modules/tm/dlg.c	/^static inline int get_dlg_uri(struct hdr_field* _h, str* _s)$/;"	f	file:
-get_domain_from_hash	modules/pdt/domains.c	/^char* get_domain_from_hash(h_entry_t* hash, unsigned int hash_size, code_t code)$/;"	f
-get_domainprefix	modules/pdt/pdt.c	/^int get_domainprefix(FILE *stream, char *response_file)$/;"	f
-get_domainprefix_unixsock	modules/pdt/pdt.c	/^static int get_domainprefix_unixsock(str* msg)$/;"	f	file:
-get_error_str	modules/sms/sms_report.c	/^str* get_error_str(int status)$/;"	f
-get_expires_hf	modules/registrar/sip_msg.c	/^static inline int get_expires_hf(struct sip_msg* _m)$/;"	f	file:
-get_first_child	modules/cpl-c/cpl_run.c	89;"	d	file:
-get_first_contact	modules/registrar/sip_msg.c	/^contact_t* get_first_contact(struct sip_msg* _m)$/;"	f
-get_first_socket	socket_info.h	/^inline static struct socket_info* get_first_socket()$/;"	f
-get_fr_timer_payload	modules/tm/h_table.h	289;"	d
-get_from	parser/parse_from.h	36;"	d
-get_from_tag	modules/nathelper/nathelper.c	/^get_from_tag(struct sip_msg* _m, str* _tag)$/;"	f	file:
-get_from_tag	modules/tm/dlg.c	/^static inline int get_from_tag(struct sip_msg* _m, str* _tag)$/;"	f	file:
-get_from_uri	modules/auth_diameter/user_in.c	/^static inline int get_from_uri(struct sip_msg* m, str* u)$/;"	f	file:
-get_from_uri	modules/group/group.c	/^static inline int get_from_uri(struct sip_msg* _m, str* _u)$/;"	f	file:
-get_from_uri	modules/group_radius/group.c	/^static inline int get_from_uri(struct sip_msg* _m, str* _u)$/;"	f	file:
-get_ha1	modules/auth_db/authorize.c	/^static inline int get_ha1(struct username* _username, str* _domain,$/;"	f	file:
-get_hash_entry	modules/pdt/domains.c	45;"	d	file:
-get_hdr_field	parser/msg_parser.c	/^char* get_hdr_field(char* buf, char* end, struct hdr_field* hdr)$/;"	f
-get_header	modules/textops/textops.c	/^static char *get_header(struct sip_msg *msg)$/;"	f	file:
-get_headers	modules/tm/uac_unixsock.c	/^static int get_headers(str* headers, str* msg)$/;"	f	file:
-get_hfblock	modules/tm/uac_fifo.c	/^static char *get_hfblock(str *uri, struct hdr_field *hf, int *l, int proto) $/;"	f	file:
-get_hfblock	modules/tm/uac_unixsock.c	/^static char *get_hfblock(str *uri, struct hdr_field *hf, int *l, int proto) $/;"	f	file:
-get_int	db/db_fifo.c	108;"	d	file:
-get_int_n2h	modules/extcmd/extcmd_funcs.c	/^inline int get_int_n2h( char *b, int l)$/;"	f
-get_ip_port_proto	msg_translator.c	445;"	d	file:
-get_keys	db/db_fifo.c	/^static inline int get_keys( FILE *fifo , db_key_t *keys, int *nr, int max_nr)$/;"	f	file:
-get_kr	modules/tm/h_table.c	/^enum kill_reason get_kr() {$/;"	f
-get_lock	fastlock.h	/^inline static void get_lock(fl_lock_t* lock)$/;"	f
-get_method	modules/tm/uac_unixsock.c	/^static int get_method(str* method, str* msg)$/;"	f	file:
-get_min_interval	modules/cpl-c/cpl_time.c	/^int get_min_interval(tmrec_p _trp)$/;"	f
-get_my_host	scripts/sc	/^get_my_host() {$/;"	f
-get_my_host	scripts/sc_unixsock	/^get_my_host() {$/;"	f
-get_name	modules/flatstore/flat_con.c	/^static char* get_name(struct flat_id* id)$/;"	f	file:
-get_next_contact	modules/registrar/sip_msg.c	/^contact_t* get_next_contact(contact_t* _c)$/;"	f
-get_nexthop	modules/tm/uac_unixsock.c	/^static int get_nexthop(str* nexthop, struct sip_uri* pnexthop, str* msg)$/;"	f	file:
-get_nonce_expires	modules/auth/nonce.c	/^time_t get_nonce_expires(str* _n)$/;"	f
-get_nr_clients	modules/extcmd/clients.h	/^inline int get_nr_clients()$/;"	f
-get_on_negative	modules/tm/t_reply.c	/^unsigned int get_on_negative()$/;"	f
-get_on_reply	modules/tm/t_reply.c	/^unsigned int get_on_reply()$/;"	f
-get_orig_user	modules/cpl-c/cpl.c	/^static inline int get_orig_user(struct sip_msg *msg, str *uh, int flg)$/;"	f	file:
-get_out_socket	forward.c	/^struct socket_info* get_out_socket(union sockaddr_union* to, int proto)$/;"	f
-get_parsed_from_body	modules/enum/enum.c	/^static inline struct to_body *get_parsed_from_body(struct sip_msg *_msg)$/;"	f	file:
-get_path	modules/permissions/permissions.c	/^static int get_path(char* pathname)$/;"	f	file:
-get_pathname	modules/permissions/permissions.c	/^static char* get_pathname(char* name)$/;"	f	file:
-get_plain_uri	modules/permissions/permissions.c	/^static char* get_plain_uri(const str* uri)$/;"	f	file:
-get_pres_uri	modules/pa/subscribe.c	/^int get_pres_uri(struct sip_msg* _m, str* _puri)$/;"	f
-get_proto	modules/tm/ut.h	/^inline static enum sip_protos get_proto(enum sip_protos force_proto,$/;"	f
-get_proto_name	socket_info.c	/^static char* get_proto_name(unsigned short proto)$/;"	f	file:
-get_raw_uri	modules/tm/dlg.c	/^void get_raw_uri(str* _s)$/;"	f
-get_realm	modules/auth/common.c	/^int get_realm(struct sip_msg* _m, int _hftype, struct sip_uri* _u)$/;"	f
-get_realm	modules/auth_diameter/authorize.c	/^int get_realm(struct sip_msg* m, int hftype, struct sip_uri* u)$/;"	f
-get_record	resolve.c	/^struct rdata* get_record(char* name, int type)$/;"	f
-get_reply_status	error.c	/^void get_reply_status( str *status, struct sip_msg *reply, int code )$/;"	f
-get_request_uri	dset.c	/^int get_request_uri(struct sip_msg* _m, str* _u)$/;"	f
-get_request_uri	modules/auth_diameter/user_in.c	/^static inline int get_request_uri(struct sip_msg* m, str* u)$/;"	f	file:
-get_request_uri	modules/group/group.c	/^static inline int get_request_uri(struct sip_msg* _m, str* _u)$/;"	f	file:
-get_request_uri	modules/group_radius/group.c	/^static inline int get_request_uri(struct sip_msg* _m, str* _u)$/;"	f	file:
-get_result	modules/postgres/dbase.c	/^int get_result(db_con_t* _h, db_res_t** _r)$/;"	f
-get_retr_timer_payload	modules/tm/h_table.h	287;"	d
-get_route_set	modules/tm/dlg.c	/^static inline int get_route_set(struct sip_msg* _m, rr_t** _rs, unsigned char _order)$/;"	f	file:
-get_rpid	parser/parse_rpid.h	34;"	d
-get_ruri	modules/tm/uac_unixsock.c	/^static int get_ruri(str* ruri, struct sip_uri* puri, str* msg)$/;"	f	file:
-get_ruri_q	dset.c	/^qvalue_t get_ruri_q(void)$/;"	f
-get_send_socket	forward.c	/^struct socket_info* get_send_socket(struct sip_msg *msg, $/;"	f
-get_sms_from_report_queue	modules/sms/sms_report.c	/^struct sms_msg* get_sms_from_report_queue(int id)$/;"	f
-get_sock_info_list	socket_info.c	/^static struct socket_info** get_sock_info_list(unsigned short proto)$/;"	f	file:
-get_source_uri	modules/avpops/avpops_impl.c	/^inline static str* get_source_uri(struct sip_msg* msg,int source)$/;"	f	file:
-get_str_attr	modules/cpl-c/cpl_run.c	100;"	d	file:
-get_t	modules/tm/t_lookup.c	/^struct cell *get_t() { return T; }$/;"	f
-get_text_from_report_queue	modules/sms/sms_report.c	/^str* get_text_from_report_queue(int id)$/;"	f
-get_ticks	timer.c	/^unsigned int get_ticks()$/;"	f
-get_time	modules/sms/sms_report.c	/^get_time_func  *get_time;$/;"	v
-get_time_func	modules/sms/sms_report.c	/^typedef time_t (get_time_func)(void);$/;"	t	file:
-get_time_ser	modules/sms/sms_report.c	/^static time_t get_time_ser(void)$/;"	f	file:
-get_time_sys	modules/sms/sms_report.c	/^static time_t get_time_sys(void)$/;"	f	file:
-get_timertable	modules/tm/timer.c	/^struct timer_table *get_timertable()$/;"	f
-get_tm_table	modules/tm/h_table.c	/^struct s_table* get_tm_table()$/;"	f
-get_to	parser/parse_to.h	58;"	d
-get_to_tag	modules/nathelper/nathelper.c	/^get_to_tag(struct sip_msg* _m, str* _tag)$/;"	f	file:
-get_to_tag	modules/tm/dlg.c	/^static inline int get_to_tag(struct sip_msg* _m, str* _tag)$/;"	f	file:
-get_to_uri	modules/auth_diameter/user_in.c	/^static inline int get_to_uri(struct sip_msg* m, str* u)$/;"	f	file:
-get_to_uri	modules/group/group.c	/^static inline int get_to_uri(struct sip_msg* _m, str* _u)$/;"	f	file:
-get_to_uri	modules/group_radius/group.c	/^static inline int get_to_uri(struct sip_msg* _m, str* _u)$/;"	f	file:
-get_tree_branch	modules/pike/ip_tree.c	/^struct ip_node* get_tree_branch(unsigned char b)$/;"	f
-get_ucontact	modules/usrloc/urecord.c	/^int get_ucontact(urecord_t* _r, str* _c, struct ucontact** _co)$/;"	f
-get_ucontact	modules/usrloc/usrloc.h	/^	get_ucontact_t       get_ucontact;$/;"	m	struct:usrloc_api
-get_ucontact_t	modules/usrloc/urecord.h	/^typedef int (*get_ucontact_t)(urecord_t* _r, str* _c, struct ucontact** _co);$/;"	t
-get_uptime	unixsock_server.c	/^static int get_uptime(void)$/;"	f	file:
-get_urecord	modules/usrloc/udomain.c	/^int get_urecord(udomain_t* _d, str* _aor, struct urecord** _r)$/;"	f
-get_urecord	modules/usrloc/usrloc.h	/^	get_urecord_t        get_urecord;$/;"	m	struct:usrloc_api
-get_urecord_t	modules/usrloc/udomain.h	/^typedef int  (*get_urecord_t)(udomain_t* _d, str* _a, struct urecord** _r);$/;"	t
-get_uri	modules/acc/diam_tcp.c	/^int get_uri(struct sip_msg* m, str** uri)$/;"	f
-get_uri	modules/auth_diameter/authorize.c	/^int get_uri(struct sip_msg* m, str** uri)$/;"	f
-get_uri	modules/auth_radius/authorize.c	/^static inline int get_uri(struct sip_msg* _m, str** _uri)$/;"	f	file:
-get_user_script	modules/cpl-c/cpl_db.c	/^int get_user_script(str *user, str *script, const char* key)$/;"	f
-get_username	modules/rr/record.c	/^static inline int get_username(struct sip_msg* _m, str* _user)$/;"	f	file:
-get_wait_timer_payload	modules/tm/h_table.h	291;"	d
-get_watch_uri	modules/pa/subscribe.c	/^static int get_watch_uri(struct sip_msg* _m, str* _wuri, str *_dn)$/;"	f	file:
-getaddress	test/shoot.c	/^long getaddress(char *host)$/;"	f
-getaddress	test/shoot2.c	/^long getaddress(char *host)$/;"	f
-getsms	modules/sms/libsms_getsms.c	/^int getsms( struct incame_sms *sms, struct modem *mdm, int sim)$/;"	f
-gflags	modules/gflags/gflags.c	/^static unsigned int *gflags; $/;"	v	file:
-gid	main.c	/^int gid = 0;$/;"	v
-global_avps	usr_avp.c	/^static struct usr_avp *global_avps = 0;$/;"	v	file:
-global_init	modules/sms/sms.c	/^int global_init()$/;"	f
-global_msg_id	modules/tm/t_lookup.c	/^unsigned int     global_msg_id;$/;"	v
-global_stats	stats.c	/^static struct stats_s *global_stats=NULL;$/;"	v	file:
-globals_h	globals.h	34;"	d
-go_to_pstn	scripts/serconf.sh	/^function go_to_pstn()$/;"	f
-goto_on_negative	modules/tm/t_reply.c	/^static int goto_on_negative=0;$/;"	v	file:
-goto_on_reply	modules/tm/t_reply.c	/^static int goto_on_reply=0;$/;"	v	file:
-grep_aliases	name_alias.h	/^static inline int grep_aliases(char* name, int len, unsigned short port,$/;"	f
-grep_sock_info	socket_info.c	/^struct socket_info* grep_sock_info(str* host, unsigned short port,$/;"	f
-group	main.c	/^char* group=0;$/;"	v
-group2gid	main.c	/^static int group2gid(int* gid, char* group)$/;"	f	file:
-group_column	modules/group/group_mod.c	/^str group_column  = {GROUP_COL, GROUP_COL_LEN};$/;"	v
-group_db_bind	modules/group/group.c	/^int group_db_bind(char* db_url)$/;"	f
-group_db_close	modules/group/group.c	/^void group_db_close()$/;"	f
-group_db_init	modules/group/group.c	/^int group_db_init(char* db_url)$/;"	f
-group_db_ver	modules/group/group.c	/^int group_db_ver(char* db_url, str* name)$/;"	f
-group_dbf	modules/group/group.c	/^static db_func_t group_dbf;$/;"	v	file:
-group_fixup	modules/auth_diameter/auth_diameter.c	/^static int group_fixup(void** param, int param_no)$/;"	f	file:
-gw_check	scripts/serconf.sh	/^function gw_check()$/;"	f
-gw_m_check	scripts/serconf.sh	/^function gw_m_check()$/;"	f
-h_entry_t	modules/pdt/domains.h	/^} h_entry_t;$/;"	t
-h_inc	hash_func.c	102;"	d	file:
-h_inc	modules/pa/watcher.c	120;"	d	file:
-h_inc	modules/pdt/domains.c	475;"	d	file:
-h_via1	parser/msg_parser.h	/^	struct hdr_field* h_via1;$/;"	m	struct:sip_msg
-h_via2	parser/msg_parser.h	/^	struct hdr_field* h_via2;$/;"	m	struct:sip_msg
-ha_alg_t	modules/auth_db/rfc2617.h	/^} ha_alg_t;$/;"	t
-handle	sr_module.h	/^	void* handle;$/;"	m	struct:sr_module
-handle_new_connect	tcp_main.c	/^static inline void handle_new_connect(struct socket_info* si,$/;"	f	file:
-handle_publish	modules/pa/publish.c	/^int handle_publish(struct sip_msg* _m, char* _domain, char* _s2)$/;"	f
-handle_sigs	main.c	/^void handle_sigs()$/;"	f
-handle_sr	modules/rr/loose.c	/^static inline int handle_sr(struct sip_msg* _m, struct hdr_field* _hdr, rr_t* _r)$/;"	f	file:
-handle_subscription	modules/pa/subscribe.c	/^int handle_subscription(struct sip_msg* _m, char* _domain, char* _s2)$/;"	f
-has_content_len	tcp_conn.h	/^	int has_content_len; \/* 1 if content_length was parsed ok*\/$/;"	m	struct:tcp_req
-has_noisy_ctimer	modules/tm/h_table.h	308;"	d
-has_reqin_tmcbs	modules/tm/t_hooks.h	197;"	d
-has_timer_set	modules/pike/timer.h	44;"	d
-has_totag	modules/uri/checks.c	/^int has_totag(struct sip_msg* _m, char* _foo, char* _bar)$/;"	f
-has_tran_tmcbs	modules/tm/t_hooks.h	195;"	d
-hash	hash_func.h	43;"	d
-hash	modules/domain/hash.c	/^unsigned int hash (str *domain)$/;"	f
-hash	modules/jabber/xjab_base.h	/^	int hash;$/;"	m	struct:_xj_jkey
-hash	modules/pdt/pdt.c	/^double_hash_t *hash = NULL;$/;"	v
-hash	modules/permissions/hash.c	/^static unsigned int hash(str* src_ip)$/;"	f	file:
-hash	tcp_conn.h	/^	unsigned short hash; \/* hash index in the address hash *\/$/;"	m	struct:tcp_conn_alias
-hash_func	modules/pa/pdomain.c	/^static inline int hash_func(pdomain_t* _d, char* _s, int _l)$/;"	f	file:
-hash_func	modules/usrloc/udomain.c	/^static inline int hash_func(udomain_t* _d, unsigned char* _s, int _l)$/;"	f	file:
-hash_index	modules/tm/h_table.h	/^	unsigned int  hash_index;$/;"	m	struct:cell
-hash_index	parser/msg_parser.h	/^	unsigned int  hash_index;$/;"	m	struct:sip_msg
-hash_size	modules/pdt/domains.h	/^	unsigned int hash_size;$/;"	m	struct:_double_hash
-hash_table	modules/domain/domain_mod.c	/^struct domain_list ***hash_table;	\/* Pointer to current hash table pointer *\/$/;"	v
-hash_table	modules/permissions/trusted.c	/^struct trusted_list ***hash_table;     \/* Pointer to current hash table pointer *\/$/;"	v
-hash_table_1	modules/domain/domain_mod.c	/^struct domain_list **hash_table_1;	\/* Pointer to hash table 1 *\/$/;"	v
-hash_table_1	modules/permissions/trusted.c	/^struct trusted_list **hash_table_1;   \/* Pointer to hash table 1 *\/$/;"	v
-hash_table_2	modules/domain/domain_mod.c	/^struct domain_list **hash_table_2;	\/* Pointer to hash table 2 *\/$/;"	v
-hash_table_2	modules/permissions/trusted.c	/^struct trusted_list **hash_table_2;   \/* Pointer to hash table 2 *\/$/;"	v
-hash_table_free	modules/domain/hash.c	/^void hash_table_free (struct domain_list **hash_table)$/;"	f
-hash_table_insert	modules/permissions/hash.c	/^int hash_table_insert(struct trusted_list** hash_table, char* src_ip, char* proto, char* pattern)$/;"	f
-hash_table_install	modules/domain/hash.c	/^int hash_table_install (struct domain_list **hash_table, char *domain)$/;"	f
-hash_table_lookup	modules/domain/hash.c	/^int hash_table_lookup (str *domain)$/;"	f
-hash_table_print	modules/domain/hash.c	/^void hash_table_print (struct domain_list **hash_table, FILE *reply_file)$/;"	f
-hash_table_print	modules/permissions/hash.c	/^void hash_table_print(struct trusted_list** hash_table, FILE* reply_file)$/;"	f
-hash_table_print_unixsock	modules/domain/unixsock.c	/^static int hash_table_print_unixsock(struct domain_list **hash_table)$/;"	f	file:
-hash_table_print_unixsock	modules/permissions/unixsock.c	/^static int hash_table_print_unixsock(struct trusted_list** hash_table)$/;"	f	file:
-hashtest	hash_func.c	/^void hashtest()$/;"	f
-hashtest_cycle	hash_func.c	/^void hashtest_cycle( int hits[TABLE_ENTRIES+5], char *ip )$/;"	f
-hbuf	modules/pa/watcher.c	/^static char hbuf[2048];$/;"	v	file:
-hdr	parser/parse_via.h	/^	str hdr;   \/* Contains "Via" or "v" *\/$/;"	m	struct:via_body
-hdr	resolve.h	/^	HEADER hdr;$/;"	m	union:dns_query
-hdr_allocs_parse	parser/hf.h	80;"	d
-hdr_avp	modules/tm/t_fifo.c	/^struct hdr_avp {$/;"	s	file:
-hdr_field	parser/hf.h	/^struct hdr_field {   $/;"	s
-head	mem/q_malloc.h	/^	struct qm_frag head;$/;"	m	struct:qm_frag_lnk
-head	modules/acc/diam_message.h	/^	AAA_AVP *head;$/;"	m	struct:_avp_list_t
-head	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP *head;$/;"	m	struct:_avp_list_t
-headers	modules/pa/notify.c	/^static str headers = {headers_buf, 0};$/;"	v	file:
-headers	parser/msg_parser.h	/^	str headers;  $/;"	m	struct:sip_uri
-headers	parser/msg_parser.h	/^	struct hdr_field* headers;     \/* All the parsed headers*\/$/;"	m	struct:sip_msg
-headers	test/p_uri.c	/^	str headers;  $/;"	m	struct:sip_uri	file:
-headers_buf	modules/pa/notify.c	/^static char headers_buf[BUF_LEN];$/;"	v	file:
-heap	modules/jabber/xode.h	/^    struct xode_pool_heap *heap;$/;"	m	struct:xode_pool_struct
-heap	modules/jabber/xpool.c	/^    struct xode_pool_heap *heap;$/;"	m	struct:xode_pool_free	file:
-help	scripts/serconf.sh	/^function help()$/;"	f
-help_msg	main.c	/^static char help_msg[]= "\\$/;"	v	file:
-help_msg	test/dns_query.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/gethostbyaddr.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/gethostbyname.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/ifls.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/locking/locking_test.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/re_test.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/resolver_test.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/udp_flood.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/udp_flood_disc.c	/^static char* help_msg="\\$/;"	v	file:
-help_msg	test/udp_test_proxy.c	/^static char* help_msg="\\$/;"	v	file:
-hex2int	ut.h	/^inline static int hex2int(char hex_digit)$/;"	f
-hex2integer	modules/auth/nonce.c	/^static inline int hex2integer(char* _s)$/;"	f	file:
-hexa	modules/sms/libsms_putsms.c	/^static char hexa[16] = {$/;"	v	file:
-hf	modules/exec/exec_hf.h	/^		struct hdr_field *hf;$/;"	m	union:hf_wrapper::<anonymous>
-hf_fixup	modules/group/group_mod.c	/^static int hf_fixup(void** param, int param_no)$/;"	f	file:
-hf_fixup	modules/group_radius/grouprad_mod.c	/^static int hf_fixup(void** param, int param_no)$/;"	f	file:
-hf_wrapper	modules/exec/exec_hf.h	/^struct hf_wrapper {$/;"	s
-hindex	modules/xlog/xl_lib.h	/^	int hindex;$/;"	m	struct:_xl_elog
-hits	modules/pike/ip_tree.h	/^	unsigned short    hits[2];$/;"	m	struct:ip_node
-hooks	modules/tm/dlg.h	/^	dlg_hooks_t hooks;      \/* Various hooks used to store information that$/;"	m	struct:dlg
-hopbyhopId	modules/acc/diam_message.h	/^	AAAMsgIdentifier    hopbyhopId;$/;"	m	struct:_message_t
-hopbyhopId	modules/auth_diameter/diameter_msg.h	/^	AAAMsgIdentifier    hopbyhopId;$/;"	m	struct:_message_t
-host	cfg.y	/^host:	ID				{ $$=$1; }$/;"	l
-host	modules/mysql/my_id.h	/^	str host;      \/* Host or IP, case insensitive *\/$/;"	m	struct:my_id
-host	modules/pdt/doc/web/request.php	/^$host="127.0.0.1";$/;"	v
-host	msg_translator.h	/^	str* host;$/;"	m	struct:hostport
-host	parser/msg_parser.h	/^	str host;     \/* Host name *\/$/;"	m	struct:sip_uri
-host	parser/parse_via.h	/^	str host;$/;"	m	struct:via_body
-host	proxy.h	/^	struct hostent host; \/* addresses *\/$/;"	m	struct:proxy_l
-host	test/p_uri.c	/^	str host;     \/* Host name *\/$/;"	m	struct:sip_uri	file:
-host_alias	name_alias.h	/^struct host_alias{$/;"	s
-host_sep	cfg.y	/^host_sep:	DOT {$$=".";}$/;"	l
-hostent2ip_addr	ip_addr.h	147;"	d
-hostent2su	ip_addr.h	/^static inline int hostent2su( union sockaddr_union* su,$/;"	f
-hostent_cpy	proxy.c	/^static int hostent_cpy(struct hostent *dst, struct hostent* src)$/;"	f	file:
-hostname	modules/jabber/xjab_jcon.h	/^	char *hostname;		\/\/ hostname of the Jabber server$/;"	m	struct:_xj_jcon
-hostport	msg_translator.h	/^struct hostport {$/;"	s
-hparam	modules/xlog/xl_lib.h	/^	str hparam;$/;"	m	struct:_xl_elog
-hs_two_pow	modules/pdt/pdt.c	/^int hs_two_pow = 1;$/;"	v
-hslot	modules/pa/hslot.h	/^typedef struct hslot {$/;"	s
-hslot	modules/usrloc/hslot.h	/^typedef struct hslot {$/;"	s
-hslot_t	modules/pa/hslot.h	/^} hslot_t;$/;"	t
-hslot_t	modules/usrloc/hslot.h	/^} hslot_t;$/;"	t
-html_die	modules/jabber/doc/web/subscribe.php	/^function html_die($message)$/;"	f
-i	parser/parse_via.h	/^	struct via_param* i;$/;"	m	struct:via_body
-i_tmp	cfg.tab.c	/^static int i_tmp;$/;"	v	file:
-i_user	modules/rr/rr_mod.c	/^str i_user;$/;"	v
-iattr_fixup	modules/avp/avp.c	/^static int iattr_fixup(void** param, int param_no)$/;"	f	file:
-ic_parse_byday	modules/cpl-c/cpl_time.c	/^tr_byxxx_p ic_parse_byday(char *_in)$/;"	f
-ic_parse_byxxx	modules/cpl-c/cpl_time.c	/^tr_byxxx_p ic_parse_byxxx(char *_in)$/;"	f
-ic_parse_datetime	modules/cpl-c/cpl_time.c	/^time_t ic_parse_datetime(char *_in, struct tm *_tm)$/;"	f
-ic_parse_duration	modules/cpl-c/cpl_time.c	/^time_t ic_parse_duration(char *_in)$/;"	f
-ic_parse_wkst	modules/cpl-c/cpl_time.c	/^int ic_parse_wkst(char *_in)$/;"	f
-icq	modules/jabber/doc/xjab.sql	/^CREATE TABLE icq($/;"	t
-icq_id	modules/jabber/doc/xjab.sql	/^	icq_id INT NOT NULL,$/;"	F
-icq_passwd	modules/jabber/doc/xjab.sql	/^	icq_passwd VARCHAR(50),$/;"	F
-id	main.c	/^static char id[]="@(#) $Id: main.c,v 1.197.2.1 2005\/07\/25 16:56:24 andrei Exp $";$/;"	v	file:
-id	modules/dispatcher/dispatch.c	/^	int id;$/;"	m	struct:_ds_set	file:
-id	modules/dispatcher/dispatch.c	/^	int id;$/;"	m	struct:_ds_setidx	file:
-id	modules/flatstore/flat_con.h	/^	struct flat_id* id;    \/* Connection identifier *\/$/;"	m	struct:flat_con
-id	modules/jabber/xjab_base.h	/^	str *id;$/;"	m	struct:_xj_jkey
-id	modules/mysql/my_con.h	/^	struct my_id* id;    \/* Connection identifier *\/$/;"	m	struct:my_con
-id	modules/pa/presentity.h	/^	str id;$/;"	m	struct:presence_tuple
-id	modules/tm/dlg.h	/^	dlg_id_t id;            \/* Dialog identifier *\/$/;"	m	struct:dlg
-id	modules/tm/t_hooks.h	/^	int id;                      \/* id of this callback - useless *\/$/;"	m	struct:tm_callback
-id	modules/tm/timer.h	/^	enum lists         id;$/;"	m	struct:timer
-id	modules/usrloc/ul_callback.h	/^	int id;                      \/* id of this callback - useless *\/$/;"	m	struct:ul_callback
-id	parser/msg_parser.h	/^	unsigned int id;               \/* message id, unique\/process*\/$/;"	m	struct:sip_msg
-id	script_cb.h	/^	unsigned int id;$/;"	m	struct:script_cb
-id	tcp_conn.h	/^	int id; \/* id (unique!) used to retrieve a specific connection when$/;"	m	struct:tcp_connection
-id	test/dns_query.c	/^static char* id="$Id: dns_query.c,v 1.6 2004\/11\/10 21:51:24 andrei Exp $";$/;"	v	file:
-id	test/gethostbyaddr.c	/^static char* id="$Id: gethostbyaddr.c,v 1.3 2004\/08\/24 09:01:29 janakj Exp $";$/;"	v	file:
-id	test/gethostbyname.c	/^static char* id="$Id: gethostbyname.c,v 1.3 2004\/08\/24 09:01:29 janakj Exp $";$/;"	v	file:
-id	test/ifls.c	/^static char* id="$Id: ifls.c,v 1.7 2004\/08\/24 09:01:29 janakj Exp $";$/;"	v	file:
-id	test/locking/locking_test.c	/^static char *id="$Id: locking_test.c,v 1.8 2004\/08\/24 09:01:30 janakj Exp $";$/;"	v	file:
-id	test/re_test.c	/^static char *id="$Id: re_test.c,v 1.3 2004\/08\/24 09:01:29 janakj Exp $";$/;"	v	file:
-id	test/resolver_test.c	/^static char *id="$Id: resolver_test.c,v 1.3 2004\/08\/24 09:01:29 janakj Exp $";$/;"	v	file:
-id	test/udp_flood.c	/^static char *id="$Id: udp_flood.c,v 1.6 2004\/08\/24 09:01:29 janakj Exp $";$/;"	v	file:
-id	test/udp_flood_disc.c	/^static char *id="$Id: udp_flood_disc.c,v 1.4 2004\/08\/24 09:01:29 janakj Exp $";$/;"	v	file:
-id	test/udp_test_proxy.c	/^static char *id="$Id: udp_test_proxy.c,v 1.4 2004\/08\/24 09:01:29 janakj Exp $";$/;"	v	file:
-id	timer.h	/^	int id;$/;"	m	struct:sr_timer
-id	usr_avp.h	/^	unsigned short id;$/;"	m	struct:usr_avp
-id_buf	modules/pa/presentity.h	/^	char id_buf[TUPLE_ID_STR_LEN];$/;"	m	struct:presence_tuple
-id_builder	msg_translator.c	/^char* id_builder(struct sip_msg* msg, unsigned int *id_len)$/;"	f
-id_hash	tcp_conn.h	/^	unsigned id_hash; \/* hash index in the id_hash *\/$/;"	m	struct:tcp_connection
-id_lst	cfg.y	/^id_lst:		phostport		{  $$=$1 ; }$/;"	l
-id_next	tcp_conn.h	/^	struct tcp_connection* id_next; \/* next, prev in id hash table *\/$/;"	m	struct:tcp_connection
-id_prev	tcp_conn.h	/^	struct tcp_connection* id_prev;$/;"	m	struct:tcp_connection
-idx	pt.h	/^	int idx; \/* tcp child index, -1 for other processes *\/$/;"	m	struct:process_table
-if_cmd	cfg.y	/^if_cmd:		IF exp stm				{ $$=mk_action3( IF_T,$/;"	l
-ifm_CASE	parser/case_sip.h	14;"	d
-ignore_user	modules/rr/rr_mod.c	/^char *ignore_user = NULL;$/;"	v
-ihb	modules/jabber/jabber.c	/^struct ih_binds ihb;$/;"	v
-imag	modules/jabber/doc/web/subscribe.php	/^			$imag = substr($imag1, 0, strlen($imag1)-strlen($imag2));$/;"	v
-imag1	modules/jabber/doc/web/subscribe.php	/^	$imag1 = stristr($buf_agents, "<agent jid='".$imtype.".");$/;"	v
-imag1	modules/jabber/doc/web/subscribe.php	/^	$imag1 = substr($imag1, strlen("<agent jid='"));$/;"	v
-imag2	modules/jabber/doc/web/subscribe.php	/^		$imag2 = strstr($imag1, "'");$/;"	v
-imkey	modules/jabber/doc/web/subscribe.php	/^					$imkey = substr($imkey1, 0, strlen($imkey1)-strlen($imkey2));$/;"	v
-imkey1	modules/jabber/doc/web/subscribe.php	/^			$imkey1 = stristr($buf_recv, "<key>");$/;"	v
-imkey1	modules/jabber/doc/web/subscribe.php	/^			$imkey1 = substr($imkey1, 5);$/;"	v
-imkey2	modules/jabber/doc/web/subscribe.php	/^				$imkey2 = strstr($imkey1, "<\/key>");$/;"	v
-in_pdomain	modules/pa/pdomain.c	/^static int in_pdomain = 0; \/* this only works with single or multiprocess execution model, but not multi-threaded *\/$/;"	v	file:
-in_peer	modules/acc/diam_message.h	/^	void                *in_peer;$/;"	m	struct:_message_t
-in_peer	modules/auth_diameter/diameter_msg.h	/^	void                *in_peer;$/;"	m	struct:_message_t
-inc_hexchar	modules/tm/callid.c	/^static inline int inc_hexchar(char* _c)$/;"	f	file:
-incame_sms	modules/sms/sms_funcs.h	/^struct incame_sms {$/;"	s
-include_modules	freebsd/Makefile	/^MAKE_ENV= include_modules="mysql jabber cpl-c pa"$/;"	m
-include_modules	netbsd/Makefile	/^MAKE_ENV= include_modules="mysql jabber cpl-c pa"$/;"	m
-include_modules	openbsd/Makefile	/^MAKE_ENV= include_modules="mysql jabber cpl-c pa"$/;"	m
-increase_open_fds	daemonize.c	/^int increase_open_fds(int target)$/;"	f
-index	modules/dispatcher/dispatch.c	/^	int index;$/;"	m	struct:_ds_set	file:
-index	modules/dispatcher/dispatch.c	/^	int index;$/;"	m	struct:_ds_setidx	file:
-index234	modules/jabber/tree234.c	/^void *index234(tree234 *t, int index) {$/;"	f
-init	db/db.h	/^	db_init_f        init;         \/* Initialize database connection *\/$/;"	m	struct:db_func
-init_CPL_parser	modules/cpl-c/cpl_parser.c	/^int init_CPL_parser( char* DTD_filename )$/;"	f
-init_avp_params	modules/tm/t_funcs.c	/^int init_avp_params(char *fr_timer_param, char *fr_inv_timer_param)$/;"	f
-init_branch_iterator	dset.c	/^void init_branch_iterator(void)$/;"	f
-init_branches	modules/tm/h_table.c	/^static void inline init_branches(struct cell *t)$/;"	f	file:
-init_callid	modules/tm/callid.c	/^int init_callid(void)$/;"	f
-init_cell_lock	modules/tm/lock.c	/^int init_cell_lock( struct cell *cell )$/;"	f
-init_child	sr_module.c	/^int init_child(int rank)$/;"	f
-init_child_f	sr_module.h	/^	child_init_function init_child_f;  \/* function called by all processes$/;"	m	struct:module_exports
-init_child_trusted	modules/permissions/trusted.c	/^int init_child_trusted(int rank)$/;"	f
-init_core	mem/vq_malloc.h	/^	char *core, *init_core, *core_end;$/;"	m	struct:vqm_block
-init_db_fifo	db/db_fifo.c	/^int init_db_fifo(char* fifo_db_url)$/;"	f
-init_dig_cred	parser/digest/digest_parser.c	/^void init_dig_cred(dig_cred_t* _c)$/;"	f
-init_domain_fifo	modules/domain/fifo.c	/^int init_domain_fifo( void ) $/;"	f
-init_domain_unixsock	modules/domain/unixsock.c	/^int init_domain_unixsock(void) $/;"	f
-init_double_hash	modules/pdt/domains.c	/^double_hash_t* init_double_hash(int hs_two_pow)$/;"	f
-init_entry_lock	modules/tm/lock.c	/^int init_entry_lock( struct s_table* ht, struct entry *entry )$/;"	f
-init_ext	modules/ext/my_exec.c	/^int init_ext(int rank)$/;"	f
-init_f	sr_module.h	/^	init_function init_f;           \/* Initialization function *\/$/;"	m	struct:module_exports
-init_fifo_server	fifo_server.c	/^int init_fifo_server()$/;"	f
-init_flat_fifo	modules/flatstore/flat_fifo.c	/^int init_flat_fifo(void)$/;"	f
-init_function	sr_module.h	/^typedef int (*init_function)(void);$/;"	t
-init_hash	modules/pdt/domains.c	/^h_entry_t* init_hash(unsigned int hash_size)$/;"	f
-init_hash_table	modules/tm/h_table.c	/^struct s_table* init_hash_table()$/;"	f
-init_ip_tree	modules/pike/ip_tree.c	/^int init_ip_tree(int maximum_hits)$/;"	f
-init_lock	fastlock.h	64;"	d
-init_lock_set	modules/pike/ip_tree.c	/^static gen_lock_set_t* init_lock_set(int *size)$/;"	f	file:
-init_mod	sr_module.c	/^static int init_mod( struct sr_module* m )$/;"	f	file:
-init_mod_child	sr_module.c	/^static int init_mod_child( struct sr_module* m, int rank )$/;"	f	file:
-init_modules	sr_module.c	/^int init_modules(void)$/;"	f
-init_mytcp	modules/acc/diam_tcp.c	/^int init_mytcp(char* host, int port)$/;"	f
-init_mytcp	modules/auth_diameter/tcp_comm.c	/^int init_mytcp(char* host, int port)$/;"	f
-init_new_t	modules/tm/t_lookup.c	/^static inline void init_new_t(struct cell *new_cell, struct sip_msg *p_msg)$/;"	f	file:
-init_pkg_mallocs	mem/mem.c	/^int init_pkg_mallocs()$/;"	f
-init_rb	modules/tm/t_lookup.c	/^int init_rb( struct retr_buf *rb, struct sip_msg *msg)$/;"	f
-init_report_queue	modules/sms/sms_report.c	/^int init_report_queue()$/;"	f
-init_shm_mallocs	mem/mem.c	/^int init_shm_mallocs()$/;"	f
-init_sl_stats	modules/sl/sl_stats.c	/^int init_sl_stats( void ) $/;"	f
-init_slot	modules/pa/hslot.c	/^void init_slot(struct pdomain* _d, hslot_t* _s)$/;"	f
-init_slot	modules/usrloc/hslot.c	/^int init_slot(struct udomain* _d, hslot_t* _s)$/;"	f
-init_sock_opt	tcp_main.c	/^static int init_sock_opt(int s)$/;"	f	file:
-init_stats	stats.c	/^int init_stats(int nr_of_processes)$/;"	f
-init_store_avps	modules/avpops/avpops_impl.c	/^void init_store_avps( char **db_columns)$/;"	f
-init_su	ip_addr.h	/^static inline int init_su( union sockaddr_union* su,$/;"	f
-init_synonym_id	modules/tm/h_table.c	/^static inline void init_synonym_id( struct cell *t )$/;"	f	file:
-init_t	modules/tm/t_lookup.c	/^void init_t() {global_msg_id=0; set_t(T_UNDEFINED);}$/;"	f
-init_tags	tags.h	/^static void inline init_tags( char *tag, char **suffix, $/;"	f
-init_tcp	tcp_main.c	/^int init_tcp()$/;"	f
-init_tcp_req	tcp_conn.h	143;"	d
-init_timer	timer.c	/^int init_timer()$/;"	f
-init_timer_list	modules/tm/timer.c	/^void init_timer_list( \/* struct s_table* ht, *\/ enum lists list_id)$/;"	f
-init_timerlist_lock	modules/tm/lock.c	/^int init_timerlist_lock( enum lists timerlist_id)$/;"	f
-init_tm_stats	modules/tm/t_stats.c	/^int init_tm_stats(void)$/;"	f
-init_tmcb_lists	modules/tm/t_hooks.c	/^int init_tmcb_lists()$/;"	f
-init_trusted	modules/permissions/trusted.c	/^int init_trusted(void)$/;"	f
-init_trusted_fifo	modules/permissions/fifo.c	/^int init_trusted_fifo(void) $/;"	f
-init_trusted_unixsock	modules/permissions/unixsock.c	/^int init_trusted_unixsock(void) $/;"	f
-init_twrite_lines	modules/tm/t_fifo.c	/^int init_twrite_lines()$/;"	f
-init_twrite_sock	modules/tm/t_fifo.c	/^int init_twrite_sock(void)$/;"	f
-init_ul_fifo	modules/usrloc/ul_fifo.c	/^int init_ul_fifo( void ) $/;"	f
-init_ul_unixsock	modules/usrloc/ul_unixsock.c	/^int init_ul_unixsock(void) $/;"	f
-init_ulcb_list	modules/usrloc/ul_callback.c	/^int init_ulcb_list()$/;"	f
-init_unixsock_children	unixsock_server.c	/^int init_unixsock_children(void)$/;"	f
-init_unixsock_iface	modules/pa/unixsock.c	/^int init_unixsock_iface(void)$/;"	f
-init_unixsock_socket	unixsock_server.c	/^int init_unixsock_socket(void)$/;"	f
-initial	modules/gflags/gflags.c	/^static int initial=0;$/;"	v	file:
-initialize_kill	modules/exec/kill.c	/^int initialize_kill()$/;"	f
-initmodem	modules/sms/libsms_modem.c	/^int initmodem(struct modem *mdm, cds_report cds_report_f)$/;"	f
-input_file	modules/pdt/doc/web/request.php	/^$input_file = "\/tmp\/ser_fifo";$/;"	v
-insert	db/db.h	/^	db_insert_f      insert;       \/* Insert into table *\/$/;"	m	struct:db_func
-insert	modules/registrar/save.c	/^static inline int insert(struct sip_msg* _m, contact_t* _c, udomain_t* _d, str* _a, str *ua)$/;"	f	file:
-insert_RR	modules/rr/record.c	/^static inline int insert_RR(struct sip_msg* _m, int _lr)$/;"	f	file:
-insert_cond_lump_after	data_lump.c	/^struct lump* insert_cond_lump_after( struct lump* after, enum lump_conditions c,$/;"	f
-insert_cond_lump_before	data_lump.c	/^struct lump* insert_cond_lump_before(	struct lump* before, $/;"	f
-insert_hf	modules/exec/exec_hf.c	/^static int insert_hf( struct hf_wrapper **list, struct hdr_field *hf )$/;"	f	file:
-insert_into_hash_table	modules/tm/h_table.c	/^void insert_into_hash_table( struct cell * p_cell)$/;"	f
-insert_into_hash_table_unsafe	modules/tm/h_table.c	/^void insert_into_hash_table_unsafe( struct cell * p_cell, unsigned int _hash )$/;"	f
-insert_new_lump	data_lump.c	/^struct lump* insert_new_lump(struct lump** list, char* new_hdr,$/;"	f
-insert_new_lump_after	data_lump.c	/^struct lump* insert_new_lump_after( struct lump* after, char* new_hdr,$/;"	f
-insert_new_lump_before	data_lump.c	/^struct lump* insert_new_lump_before( struct lump* before, char* new_hdr,$/;"	f
-insert_subst_lump_after	data_lump.c	/^struct lump* insert_subst_lump_after( struct lump* after, enum lump_subst subst,$/;"	f
-insert_subst_lump_before	data_lump.c	/^struct lump* insert_subst_lump_before(	struct lump* before, $/;"	f
-insert_timer_unsafe	modules/tm/timer.c	/^static void insert_timer_unsafe( struct timer *timer_list, struct timer_link *tl,$/;"	f	file:
-insert_timer_unsafe	modules/tm/timer.c	705;"	d	file:
-insert_tmcb	modules/tm/t_hooks.c	/^int insert_tmcb(struct tmcb_head_list *cb_list, int types,$/;"	f
-insert_ucontact	modules/usrloc/urecord.c	/^int insert_ucontact(urecord_t* _r, str* _c, time_t _e, qvalue_t _q, str* _cid, $/;"	f
-insert_ucontact	modules/usrloc/usrloc.h	/^	insert_ucontact_t    insert_ucontact;$/;"	m	struct:usrloc_api
-insert_ucontact_t	modules/usrloc/urecord.h	/^typedef int (*insert_ucontact_t)(urecord_t* _r, str* _c, time_t _e, qvalue_t _q, str* _cid, int _cs, $/;"	t
-insert_urecord	modules/usrloc/udomain.c	/^int insert_urecord(udomain_t* _d, str* _aor, struct urecord** _r)$/;"	f
-insert_urecord	modules/usrloc/usrloc.h	/^	insert_urecord_t     insert_urecord;$/;"	m	struct:usrloc_api
-insert_urecord_t	modules/usrloc/udomain.h	/^typedef int (*insert_urecord_t)(udomain_t* _d, str* _aor, struct urecord** _r);$/;"	t
-install_sigs	main.c	/^int install_sigs()$/;"	f
-int	modules/pa/pa.sql	/^	elid         int(10) unsigned NOT NULL auto_increment,$/;"	F
-int	modules/pa/pa.sql	/^	itemid       int(10) unsigned NOT NULL auto_increment,$/;"	F
-int	modules/pa/pa.sql	/^	placeid                 int(10) unsigned NOT NULL auto_increment,$/;"	F
-int	modules/pa/pa.sql	/^  contactid int(10) unsigned NOT NULL auto_increment,$/;"	F
-int	modules/pa/pa.sql	/^  presid int(10) unsigned NOT NULL auto_increment,$/;"	F
-int2reverse_hex	ut.h	/^inline static int int2reverse_hex( char **c, int *size, unsigned int nr )$/;"	f
-int2str	modules/mysql/val.c	/^static inline int int2str(int _v, char* _s, int* _l)$/;"	f	file:
-int2str	modules/postgres/db_val.c	/^static inline int int2str(int _v, char* _s, int* _l)$/;"	f	file:
-int2str	ut.h	/^static inline char* int2str(unsigned long l, int* len)$/;"	f
-int_fac	dprint.c	/^static int int_fac[]={LOG_AUTH ,  LOG_CRON , LOG_DAEMON ,$/;"	v	file:
-int_param	modules/print/print.c	/^int int_param;$/;"	v
-int_str	usr_avp.h	/^} int_str;$/;"	t
-int_str2db_val	modules/avpops/avpops_impl.c	/^static inline void int_str2db_val( int_str is_val, str *val, int is_s)$/;"	f	file:
-int_val	db/db_val.h	/^		int           int_val;    \/* integer value *\/$/;"	m
-integer2hex	modules/auth/nonce.c	/^static inline void integer2hex(char* _d, int _s)$/;"	f	file:
-intern_err	modules/cpl-c/cpl.c	/^static struct cpl_error intern_err = {500,"Internal server error"};$/;"	v	file:
-internal_addtest	modules/jabber/tree234.c	/^void internal_addtest(void *elem, int index, void *realret) {$/;"	f
-internal_search_ID_avp	usr_avp.c	/^inline static struct usr_avp *internal_search_ID_avp( struct usr_avp *avp,$/;"	f	file:
-internal_search_name_avp	usr_avp.c	/^inline static struct usr_avp *internal_search_name_avp( struct usr_avp *avp,$/;"	f	file:
-interval	modules/cpl-c/cpl_time.h	/^	int interval;$/;"	m	struct:_tmrec
-interval	timer.h	/^	unsigned int interval;$/;"	m	struct:sr_timer
-intop	cfg.y	/^intop:	equalop	{$$=$1; }$/;"	l
-intval	cfg.tab.c	/^	long intval;$/;"	m	union:YYSTYPE	file:
-intval	cfg.tab.h	/^	long intval;$/;"	m	union:YYSTYPE
-intval	route_struct.h	/^		int   intval;$/;"	m	union:expr::<anonymous>
-inuse	mem/vq_malloc.h	/^        } inuse;$/;"	m	union:vqm_frag::<anonymous>
-ion_CASE	parser/case_cont.h	60;"	d
-iov_lines_eol	modules/tm/t_fifo.c	/^static struct iovec iov_lines_eol[2*TWRITE_PARAMS];$/;"	v	file:
-ip	cfg.y	/^ip:		 ipv4  { $$=$1; }$/;"	l
-ip	ip_addr.h	/^	struct ip_addr ip;$/;"	m	struct:net
-ip	modules/cpl-c/cpl_run.h	/^	char *ip;              \/* instruction pointer *\/$/;"	m	struct:cpl_interpreter
-ip	modules/mangler/contact_ops.h	/^	str ip;$/;"	m	struct:uri_format
-ip	modules/mediaproxy/mediaproxy.c	/^    str ip;$/;"	m	file:
-ip	resolve.h	/^	unsigned char ip[4];$/;"	m	struct:a_rdata
-ip2str	modules/mangler/ip_helper.c	/^ip2str (unsigned int address, char **rr)$/;"	f
-ip6	resolve.h	/^	unsigned char ip6[16];$/;"	m	struct:aaaa_rdata
-ipExpression	modules/mangler/sdp_mangler.h	/^regex_t *ipExpression;$/;"	v
-ip_addr	ip_addr.h	/^struct ip_addr{$/;"	s
-ip_addr2a	ip_addr.h	/^static inline char* ip_addr2a(struct ip_addr* ip)$/;"	f
-ip_addr2he	ip_addr.h	/^static inline struct hostent* ip_addr2he(str* name, struct ip_addr* ip)$/;"	f
-ip_addr2su	ip_addr.h	321;"	d
-ip_addr_cmp	ip_addr.h	230;"	d
-ip_addr_h	ip_addr.h	36;"	d
-ip_node	modules/pike/ip_tree.h	/^struct ip_node$/;"	s
-ip_tmp	cfg.tab.c	/^static struct ip_addr* ip_tmp;$/;"	v	file:
-ip_tree	modules/pike/ip_tree.h	/^struct ip_tree$/;"	s
-ipaddr	cfg.tab.c	/^	struct ip_addr* ipaddr;$/;"	m	union:YYSTYPE	file:
-ipaddr	cfg.tab.h	/^	struct ip_addr* ipaddr;$/;"	m	union:YYSTYPE
-ipnet	cfg.tab.c	/^	struct net* ipnet;$/;"	m	union:YYSTYPE	file:
-ipnet	cfg.tab.h	/^	struct net* ipnet;$/;"	m	union:YYSTYPE
-ipnet	cfg.y	/^ipnet:	ip SLASH ip	{ $$=mk_net($1, $3); } $/;"	l
-ipv4	cfg.y	/^ipv4:	NUMBER DOT NUMBER DOT NUMBER DOT NUMBER { $/;"	l
-ipv6	cfg.y	/^ipv6:	ipv6addr { $$=$1; }$/;"	l
-ipv6addr	cfg.y	/^ipv6addr:	IPV6ADDR {$/;"	l
-is1918addr	modules/nathelper/nathelper.c	/^is1918addr(str *saddr)$/;"	f	file:
-isAnyAddress	modules/mediaproxy/mediaproxy.c	79;"	d	file:
-isDestinationLocal	modules/mediaproxy/mediaproxy.c	/^static CheckLocalPartyProc isDestinationLocal;$/;"	v	file:
-isFromLocal	modules/mediaproxy/mediaproxy.c	/^static CheckLocalPartyProc isFromLocal;$/;"	v	file:
-isPrivateAddress	modules/mediaproxy/mediaproxy.c	1051;"	d	file:
-isRTPAsymmetric	modules/mediaproxy/mediaproxy.c	/^isRTPAsymmetric(str userAgent)$/;"	f	file:
-isSIPAsymmetric	modules/mediaproxy/mediaproxy.c	/^isSIPAsymmetric(str userAgent)$/;"	f	file:
-is_2rr	modules/rr/loose.c	/^static inline int is_2rr(str* _params)$/;"	f	file:
-is_acc_on	modules/acc/acc_mod.h	/^static inline int is_acc_on(struct sip_msg *rq)$/;"	f
-is_char_equal	parser/parse_content.c	49;"	d	file:
-is_db_acc_on	modules/acc/acc_mod.h	/^static inline int is_db_acc_on(struct sip_msg *rq)$/;"	f
-is_db_mc_on	modules/acc/acc_mod.h	/^static inline int is_db_mc_on(struct sip_msg *rq)$/;"	f
-is_diam_acc_on	modules/acc/acc_mod.h	/^static inline int is_diam_acc_on(struct sip_msg *rq)$/;"	f
-is_diam_mc_on	modules/acc/acc_mod.h	/^static inline int is_diam_mc_on(struct sip_msg *rq)$/;"	f
-is_domain_local	modules/domain/domain.c	/^int is_domain_local(str* _host)$/;"	f
-is_e164	modules/auth/rpid.c	/^static inline int is_e164(str* _user)$/;"	f	file:
-is_e164	modules/enum/enum.c	/^static inline int is_e164(str* _user)$/;"	f	file:
-is_empty_end	parser/parser_f.h	/^inline static int is_empty_end(char* p, char* pend )$/;"	f
-is_finished	modules/ext/my_exec.h	/^inline int is_finished()$/;"	f
-is_free	mem/q_malloc.h	/^		long is_free;$/;"	m	union:qm_frag::<anonymous>
-is_from_local	modules/domain/domain.c	/^int is_from_local(struct sip_msg* _msg, char* _s1, char* _s2)$/;"	f
-is_from_user_e164	modules/enum/enum.c	/^int is_from_user_e164(struct sip_msg* _msg, char* _s1, char* _s2)$/;"	f
-is_gflag	modules/gflags/gflags.c	/^static int is_gflag(struct sip_msg *bar, char *flag_par, char *foo)$/;"	f	file:
-is_hot_leaf	modules/pike/ip_tree.c	256;"	d	file:
-is_hot_non_leaf	modules/pike/ip_tree.c	250;"	d	file:
-is_in_sip_addr	modules/sms/sms_funcs.c	105;"	d	file:
-is_in_timer_list2	modules/tm/timer.c	129;"	d	file:
-is_invite	modules/tm/h_table.h	306;"	d
-is_lang_tag_matching	modules/cpl-c/cpl_switches.h	/^inline static int is_lang_tag_matching(str *range,str *cpl_tag,str *cpl_subtag)$/;"	f
-is_leap_year	modules/cpl-c/cpl_time.h	56;"	d
-is_list_empty	modules/pike/timer.h	47;"	d
-is_local	modules/tm/h_table.h	307;"	d
-is_log_acc_on	modules/acc/acc_mod.h	/^static inline int is_log_acc_on(struct sip_msg *rq)$/;"	f
-is_log_mc_on	modules/acc/acc_mod.h	/^static inline int is_log_mc_on(struct sip_msg *rq)$/;"	f
-is_main	main.c	/^int is_main=1; \/* flag = is this the  "main" process? *\/$/;"	v
-is_maxfwd_present	modules/maxfwd/mf_funcs.c	/^int is_maxfwd_present( struct sip_msg* msg , str *foo)$/;"	f
-is_mc_on	modules/acc/acc_mod.h	/^static inline int is_mc_on(struct sip_msg *rq)$/;"	f
-is_mcast	ip_addr.c	/^int is_mcast(struct ip_addr* ip)$/;"	f
-is_mime_char	parser/parse_content.c	47;"	d	file:
-is_myself	modules/rr/loose.c	/^static inline int is_myself(str *_user, str* _host, unsigned short _port)$/;"	f	file:
-is_nonce_stale	modules/auth/nonce.c	/^int is_nonce_stale(str* _n) $/;"	f
-is_positive_number	modules/mangler/ip_helper.c	/^is_positive_number (char *str)$/;"	f
-is_preloaded	modules/rr/loose.c	/^static int is_preloaded(struct sip_msg* msg)$/;"	f	file:
-is_present_hf_f	modules/textops/textops.c	/^static int is_present_hf_f(struct sip_msg* msg, char* str_hf, char* foo)$/;"	f	file:
-is_quoted	parser/parse_disposition.h	/^	int is_quoted;$/;"	m	struct:disposition_param
-is_rad_acc_on	modules/acc/acc_mod.h	/^static inline int is_rad_acc_on(struct sip_msg *rq)$/;"	f
-is_rad_mc_on	modules/acc/acc_mod.h	/^static inline int is_rad_mc_on(struct sip_msg *rq)$/;"	f
-is_req	modules/acc/diam_message.h	308;"	d
-is_req	modules/auth_diameter/diameter_msg.h	312;"	d
-is_rpid_user_e164	modules/auth/rpid.c	/^int is_rpid_user_e164(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-is_sattr_set	modules/avp/avp.c	/^static int is_sattr_set(struct sip_msg* msg, char* attr, char* foo)$/;"	f	file:
-is_set	modules/tm/dlg.h	/^	unsigned char is_set;  \/* is_set flag *\/$/;"	m	struct:dlg_seq
-is_space	modules/ext/ext.c	/^static inline int is_space(char c)$/;"	f	file:
-is_statusreport	modules/sms/sms_funcs.h	/^	int  is_statusreport;$/;"	m	struct:incame_sms
-is_strict	modules/rr/loose.c	/^static inline int is_strict(str* _params)$/;"	f	file:
-is_uri_host_local	modules/domain/domain.c	/^int is_uri_host_local(struct sip_msg* _msg, char* _s1, char* _s2)$/;"	f
-is_user	modules/postgres/serpgctl	/^is_user() {$/;"	f
-is_user	modules/uri/checks.c	/^int is_user(struct sip_msg* _m, char* _user, char* _str2)$/;"	f
-is_user	scripts/sc	/^is_user() {$/;"	f
-is_user	scripts/sc_unixsock	/^is_user() {$/;"	f
-is_user_in	modules/group/group.c	/^int is_user_in(struct sip_msg* _msg, char* _hf, char* _grp)$/;"	f
-is_warm_leaf	modules/pike/ip_tree.c	262;"	d	file:
-isflagset	flags.c	/^int isflagset( struct sip_msg* msg, flag_t flag ) {$/;"	f
-isnulladdr	modules/nathelper/nathelper.c	/^isnulladdr(str *sx, int pf)$/;"	f	file:
-ispo_CASE	parser/case_acce.h	79;"	d
-item_func_t	modules/xlog/xl_lib.h	/^typedef int (*item_func_t) (struct sip_msg*, str*, str*, int);$/;"	t
-itf	modules/xlog/xl_lib.h	/^	item_func_t itf;$/;"	m	struct:_xl_elog
-ival	modules/tm/t_fifo.c	/^	int ival;$/;"	m	struct:hdr_avp	file:
-jab_connect	modules/jabber/doc/web/libjab.php	/^function jab_connect($server, $port)$/;"	f
-jab_db_db	modules/jabber/doc/web/subscribe.php	/^$jab_db_db="sip_jab";   # database name$/;"	v
-jab_db_pas	modules/jabber/doc/web/subscribe.php	/^$jab_db_pas="***";  # database user's password$/;"	v
-jab_db_srv	modules/jabber/doc/web/subscribe.php	/^$jab_db_srv="127.0.0.1";  # database server$/;"	v
-jab_db_usr	modules/jabber/doc/web/subscribe.php	/^$jab_db_usr="ser";  # database user$/;"	v
-jab_disconnect	modules/jabber/doc/web/libjab.php	/^function jab_disconnect($fd)$/;"	f
-jab_get_agents	modules/jabber/doc/web/libjab.php	/^function jab_get_agents($fd, $id, $server)$/;"	f
-jab_get_auth	modules/jabber/doc/web/libjab.php	/^function jab_get_auth($fd, $id, $user)$/;"	f
-jab_get_reg	modules/jabber/doc/web/libjab.php	/^function jab_get_reg($fd, $id, $server)$/;"	f
-jab_gw_name	modules/jabber/xjab_worker.c	/^static str jab_gw_name = {"jabber_gateway at 127.0.0.1", 24};$/;"	v	file:
-jab_id	modules/jabber/doc/web/subscribe.php	/^	$jab_id = $row[1];$/;"	v
-jab_id	modules/jabber/doc/xjab.sql	/^	jab_id VARCHAR(128) NOT NULL,$/;"	F
-jab_passwd	modules/jabber/doc/web/subscribe.php	/^	$jab_passwd = $row[2];$/;"	v
-jab_send_presence	modules/jabber/doc/web/libjab.php	/^function jab_send_presence($fd, $to, $presence)$/;"	f
-jab_set_auth	modules/jabber/doc/web/libjab.php	/^function jab_set_auth($fd, $id, $user, $passwd)$/;"	f
-jab_set_reg	modules/jabber/doc/web/libjab.php	/^function jab_set_reg($fd, $id, $server, $username, $password)$/;"	f
-jab_set_regk	modules/jabber/doc/web/libjab.php	/^function jab_set_regk($fd, $id, $server, $username, $password, $nick, $key)$/;"	f
-jab_set_unreg	modules/jabber/doc/web/libjab.php	/^function jab_set_unreg($fd, $id, $server)$/;"	f
-jab_type	modules/jabber/doc/web/subscribe.php	/^	$jab_type = $row[3];$/;"	v
-jabber_dbf	modules/jabber/jabber.c	/^static db_func_t jabber_dbf;$/;"	v	file:
-jaddress	modules/jabber/jabber.c	/^char *jaddress = "127.0.0.1";$/;"	v
-jaliases	modules/jabber/jabber.c	/^char *jaliases = NULL;$/;"	v
-jcid	modules/jabber/doc/web/subscribe.php	/^			$jcid = $jcid + 1;$/;"	v
-jcid	modules/jabber/doc/web/subscribe.php	/^		$jcid = $jcid + 1;$/;"	v
-jcid	modules/jabber/doc/web/subscribe.php	/^	$jcid = $jcid + 1;$/;"	v
-jcid	modules/jabber/doc/web/subscribe.php	/^$jcid  = 0;      # Jabber communication ID$/;"	v
-jcid	modules/jabber/xjab_jconf.h	/^	int jcid;$/;"	m	struct:_xj_jconf
-jconf	modules/jabber/xjab_jcon.h	/^	tree234 *jconf;		\/\/ open conferences$/;"	m	struct:_xj_jcon
-jdm	modules/jabber/xjab_worker.h	/^	str *jdm;	\/\/ Jabber domain$/;"	m	struct:_xj_jalias
-jdomain	modules/jabber/jabber.c	/^char *jdomain  = NULL;$/;"	v
-jid	modules/jabber/doc/web/subscribe.php	/^				$jid = substr($jid1, 0, strlen($jid1)-strlen($jid2));$/;"	v
-jid	modules/jabber/doc/web/subscribe.php	/^			$jid = substr($jid1, 0, strlen($jid1)-strlen($jid2));$/;"	v
-jid1	modules/jabber/doc/web/subscribe.php	/^		$jid1 = stristr($buf_recv, "id='");$/;"	v
-jid1	modules/jabber/doc/web/subscribe.php	/^		$jid1 = substr($jid1, 4);$/;"	v
-jid1	modules/jabber/doc/web/subscribe.php	/^	$jid1 = stristr($buf_recv, "id='");$/;"	v
-jid1	modules/jabber/doc/web/subscribe.php	/^	$jid1 = substr($jid1, 4);$/;"	v
-jid2	modules/jabber/doc/web/subscribe.php	/^			$jid2 = strstr($jid1, "'");$/;"	v
-jid2	modules/jabber/doc/web/subscribe.php	/^		$jid2 = strstr($jid1, "'");$/;"	v
-jiffies	timer.c	/^static int* jiffies=0;$/;"	v	file:
-jkey	modules/jabber/xjab_base.h	/^	xj_jkey jkey;		\/\/ pointer to FROM$/;"	m	struct:_xj_sipmsg
-jkey	modules/jabber/xjab_jcon.h	/^	xj_jkey jkey;		\/\/ id of connection$/;"	m	struct:_xj_jcon
-jmqueue	modules/jabber/xjab_util.h	/^	t_xj_jmsg_queue jmqueue;	\/\/ messages queue$/;"	m	struct:_xj_jcon_pool
-jport	modules/jabber/doc/web/subscribe.php	/^$jport = "5222";     # Jabber server port$/;"	v
-jport	modules/jabber/jabber.c	/^int jport = 5222;$/;"	v
-jserver	modules/jabber/doc/web/subscribe.php	/^$jserver = "127.0.0.1";   # Jabber server address$/;"	v
-jsm	modules/jabber/xjab_util.h	/^	xj_sipmsg *jsm;	\/\/ pointer to the message$/;"	m	struct:_xj_jmsg_queue
-juid	modules/jabber/doc/web/subscribe.php	/^	$juid = $row[0];$/;"	v
-juid	modules/jabber/xjab_jcon.h	/^	int juid;			\/\/ internal id of the Jabber user$/;"	m	struct:_xj_jcon
-jusers	modules/jabber/doc/xjab.sql	/^CREATE TABLE jusers($/;"	t
-jwl	modules/jabber/jabber.c	/^xj_wlist jwl = NULL;$/;"	v
-key	modules/jabber/xjab_presence.h	/^	int key;$/;"	m	struct:_xj_pres_cell
-keys_cmp	modules/avpops/avpops_db.c	/^static db_key_t   keys_cmp[3]; \/* array of keys and values used in selection *\/$/;"	v	file:
-kids	modules/jabber/tree234.c	/^    node234 *kids[4];$/;"	m	struct:node234_Tag	file:
-kids	modules/pike/ip_tree.h	/^	struct ip_node    *kids;$/;"	m	struct:ip_node
-kill_all_children	main.c	/^static void kill_all_children(int signum)$/;"	f	file:
-kill_cmd	unixsock_server.c	/^static int kill_cmd(str* msg)$/;"	f	file:
-kill_fifo_cmd	fifo_server.c	/^static int kill_fifo_cmd( FILE *stream, char *response_file )$/;"	f	file:
-kill_list	modules/exec/kill.c	/^static struct timer_list kill_list;$/;"	v	file:
-kill_lock	modules/exec/kill.c	/^static gen_lock_t *kill_lock;$/;"	v	file:
-kill_prog	modules/ext/my_exec.c	/^int kill_prog()$/;"	f
-kill_reason	modules/tm/h_table.h	/^enum kill_reason { REQ_FWDED=1, REQ_RPLD=2, REQ_RLSD=4, REQ_EXIST=8 };$/;"	g
-kill_transaction	modules/tm/t_funcs.c	/^static int kill_transaction( struct cell *trans )$/;"	f	file:
-kr	modules/tm/h_table.c	/^static enum kill_reason kr;$/;"	v	file:
-l	modules/pdt/pdt.c	/^gen_lock_t l;$/;"	v
-l	route_struct.h	/^	}l;$/;"	m	struct:expr
-lENG	parser/obsolete/strs.h	318;"	d
-lENg	parser/obsolete/strs.h	317;"	d
-lEnG	parser/obsolete/strs.h	316;"	d
-lEng	parser/obsolete/strs.h	315;"	d
-label	modules/tm/h_table.h	/^	unsigned int  label;$/;"	m	struct:cell
-last	modules/jabber/xode.h	/^    struct xode_spool_node *last;$/;"	m	struct:xode_spool_struct
-last	modules/pa/pdomain.h	/^	struct presentity* last;    \/* Last presentity in the domain *\/$/;"	m	struct:pdomain
-last	modules/usrloc/hslot.h	/^	struct urecord* last;   \/* Last element in the list *\/$/;"	m	struct:hslot
-last	modules/usrloc/udomain.h	/^		struct urecord* last;  \/* Last element in the list *\/$/;"	m	struct:udomain::<anonymous>
-last_cell	modules/tm/h_table.h	/^	struct cell*    last_cell;$/;"	m	struct:entry
-last_frag	mem/f_malloc.h	/^	struct fm_frag* last_frag;$/;"	m	struct:fm_block
-last_frag_end	mem/q_malloc.h	/^	struct qm_frag_end* last_frag_end;$/;"	m	struct:qm_block
-last_header	parser/msg_parser.h	/^	struct hdr_field* last_header; \/* Pointer to the last parsed header*\/$/;"	m	struct:sip_msg
-last_param	parser/parse_to.h	/^	struct to_param *last_param;  \/* Last parameter in the list *\/$/;"	m	struct:to_body
-last_param	parser/parse_via.h	/^	struct via_param* last_param; \/*last via parameter, internal use*\/$/;"	m	struct:via_body
-last_received	modules/tm/h_table.h	/^	int             last_received;$/;"	m	struct:ua_client
-last_route	modules/tm/dlg.h	/^	str* last_route;    \/* If not zero add this as the last route *\/$/;"	m	struct:dlg_hooks
-last_tl	modules/exec/kill.h	/^	struct timer_link  last_tl;$/;"	m	struct:timer_list
-last_tl	modules/tm/timer.h	/^	struct timer_link  last_tl;$/;"	m	struct:timer
-last_to_proxy	modules/cpl-c/cpl_run.h	/^		struct location *last_to_proxy;$/;"	m	struct:cpl_interpreter::proxy_st
-lastattrib	modules/jabber/xode.h	/^     struct xode_struct*  lastattrib;$/;"	m	struct:xode_struct
-lastchild	modules/jabber/xode.h	/^     struct xode_struct*  lastchild;$/;"	m	struct:xode_struct
-ldone	modules/msilo/ms_msg_list.h	/^	msg_list_el ldone;$/;"	m	struct:_msg_list
-leNG	parser/obsolete/strs.h	314;"	d
-leNg	parser/obsolete/strs.h	313;"	d
-leaf_hits	modules/pike/ip_tree.h	/^	unsigned short    leaf_hits[2];$/;"	m	struct:ip_node
-left	lex.yy.c	/^		int left;$/;"	m	struct:str_buf	file:
-left	modules/permissions/rule.h	/^	expression *left, *left_exceptions, *right, *right_exceptions;$/;"	m	struct:rule_struct
-left_exceptions	modules/permissions/rule.h	/^	expression *left, *left_exceptions, *right, *right_exceptions;$/;"	m	struct:rule_struct
-len	dset.c	/^	unsigned int len;$/;"	m	struct:branch	file:
-len	ip_addr.h	/^	unsigned int len;    \/* address len, 16 or 4 *\/$/;"	m	struct:ip_addr
-len	lump_struct.h	/^	int len; \/* length of this header field *\/$/;"	m	struct:lump
-len	modules/jabber/xjab_util.h	/^	int len;					\/\/ maximum len of the pool$/;"	m	struct:_xj_jcon_pool
-len	modules/jabber/xjab_util.h	/^	int len;		\/\/ maximum size of the queue$/;"	m	struct:_xj_jmsg_queue
-len	modules/jabber/xjab_worker.h	/^	int len;   			\/\/ length of the list$/;"	m	struct:_xj_wlist
-len	modules/jabber/xode.h	/^    int len;$/;"	m	struct:xode_spool_struct
-len	parser/contact/contact.h	/^	int len;                \/* Total length of the element *\/$/;"	m	struct:contact
-len	parser/hf.h	/^	int len;		\/* length from hdr start until EoHF (incl.CRLF) *\/$/;"	m	struct:hdr_field
-len	parser/msg_parser.h	/^	unsigned int len; \/* message len (orig) *\/$/;"	m	struct:sip_msg
-len	parser/parse_fline.h	/^	int len; 						\/* length including delimiter *\/$/;"	m	struct:msg_start
-len	parser/parse_nameaddr.h	/^	int len;    \/* Total length of the field (including all$/;"	m	struct:name_addr
-len	parser/parse_param.h	/^	int len;              \/* Total length of the parameter including = and quotes *\/$/;"	m	struct:param
-len	parser/parse_rr.h	/^	int len;              \/* Length of the whole route field *\/$/;"	m	struct:rr
-len	str.h	/^	int len; \/*string len*\/$/;"	m	struct:_str
-lenG	parser/obsolete/strs.h	312;"	d
-len_q	qvalue.h	/^static inline size_t len_q(qvalue_t q)$/;"	f
-leng	parser/obsolete/strs.h	311;"	d
-length	examples/geo_split.sh	/^	length()==0 { next; } # skip empty lines$/;"	f
-length_type	modules/cpl-c/cpl_parser.c	/^typedef unsigned short length_type ;$/;"	t	file:
-length_type_ptr	modules/cpl-c/cpl_parser.c	/^typedef length_type*   length_type_ptr;$/;"	t	file:
-lenof	modules/jabber/tree234.c	1248;"	d	file:
-line	lex.yy.c	/^	int line=1;$/;"	v
-line	mem/f_malloc.h	/^	unsigned long line;$/;"	m	struct:fm_frag
-line	mem/q_malloc.h	/^	unsigned long line;$/;"	m	struct:qm_frag
-line	mem/vq_malloc.h	/^	unsigned long line;$/;"	m	struct:vqm_frag
-line	modules/postgres/aug_alloc.c	/^	augUInt32 line;$/;"	m	struct:MemHeadStruct	file:
-link	modules/pdt/doc/web/request.php	/^	    $link = mysql_connect($host, $user, $pass)$/;"	v
-links_config	modules/sms/sms.c	/^char *links_config    = 0;$/;"	v
-list	modules/cpl-c/cpl_parser.c	/^static struct node *list = 0;$/;"	v	file:
-list_entry	modules/tm/h_table.h	284;"	d
-list_link	modules/pike/timer.h	/^struct list_link {$/;"	s
-listen_id	cfg.y	/^listen_id:	ip			{	tmp=ip_addr2a($1);$/;"	l
-lists	modules/tm/timer.h	/^enum lists$/;"	g
-ll2ipnode	modules/pike/ip_tree.h	81;"	d
-load_avp	modules/avp_db/avp_db.c	/^static int load_avp(struct sip_msg* msg, char* attr, char* _dummy)$/;"	f	file:
-load_avp_fixup	modules/avp_db/avp_db.c	/^static int load_avp_fixup(void** param, int param_no)$/;"	f	file:
-load_avp_fixup	modules/avp_radius/avp_radius.c	/^static int load_avp_fixup(void** param, int param_no)$/;"	f	file:
-load_avp_param	modules/avp_db/avp_db.c	/^typedef enum load_avp_param {$/;"	g	file:
-load_avp_param	modules/avp_radius/avp_radius.c	/^typedef enum load_avp_param {$/;"	g	file:
-load_avp_param_t	modules/avp_db/avp_db.c	/^} load_avp_param_t;$/;"	t	file:
-load_avp_param_t	modules/avp_radius/avp_radius.c	/^} load_avp_param_t;$/;"	t	file:
-load_avp_radius	modules/avp_radius/avp_radius.c	/^static int load_avp_radius(struct sip_msg* msg, char* attr, char* _dummy)$/;"	f	file:
-load_avp_user	modules/avp_db/avp_db.c	/^static int load_avp_user(struct sip_msg* msg, str* prefix, load_avp_param_t param)$/;"	f	file:
-load_avp_user	modules/avp_radius/avp_radius.c	/^static int load_avp_user(struct sip_msg* msg, str* prefix, load_avp_param_t type)$/;"	f	file:
-load_avp_uuid	modules/avp_db/avp_db.c	/^static int load_avp_uuid(struct sip_msg* msg, str* prefix, int avp_id)$/;"	f	file:
-load_file	modules/cpl-c/cpl_loader.c	/^int load_file( char *filename, str *xml)$/;"	f
-load_fixup	modules/permissions/permissions.c	/^static int load_fixup(void** param, int param_no)$/;"	f	file:
-load_mod	scripts/serconf.sh	/^function load_mod()$/;"	f
-load_module	sr_module.c	/^int load_module(char* path)$/;"	f
-load_tm	modules/tm/tm_load.c	/^int load_tm( struct tm_binds *tmb)$/;"	f
-load_tm_f	modules/tm/tm_load.h	/^typedef int(*load_tm_f)( struct tm_binds *tmb );$/;"	t
-load_xjab	modules/jabber/xjab_load.c	/^int load_xjab(struct xjab_binds *xjb)$/;"	f
-load_xjab_f	modules/jabber/xjab_load.h	/^typedef int(*load_xjab_f)(struct xjab_binds*);$/;"	t
-loc	modules/pa/presentity.h	/^	str   loc; \/* human readable description of location *\/$/;"	m	struct:location
-loc_buf	modules/pa/presentity.h	/^	char loc_buf[TUPLE_LOCATION_LOC_LEN];$/;"	m	struct:location
-loc_seq	modules/tm/dlg.h	/^	dlg_seq_t loc_seq;      \/* Local sequence number *\/$/;"	m	struct:dlg
-loc_set	modules/cpl-c/cpl_run.h	/^	struct location *loc_set;     \/* location set *\/$/;"	m	struct:cpl_interpreter
-loc_tag	modules/tm/dlg.h	/^	str loc_tag;    \/* Local tag of the dialog *\/$/;"	m	struct:dlg_id
-loc_uri	modules/tm/dlg.h	/^	str loc_uri;            \/* Local URI *\/$/;"	m	struct:dlg
-localIP	modules/mediaproxy/mediaproxy.c	/^    int localIP; \/\/ true if the IP is locally defined inside this media stream$/;"	m	file:
-local_cancel	modules/tm/h_table.h	/^	struct retr_buf local_cancel;$/;"	m	struct:ua_client
-local_free	resolve.c	50;"	d	file:
-local_free	tcp_main.c	106;"	d	file:
-local_malloc	resolve.c	49;"	d	file:
-local_malloc	tcp_main.c	105;"	d	file:
-local_reply	modules/tm/t_reply.c	/^enum rps local_reply( struct cell *t, struct sip_msg *p_msg, int branch, $/;"	f
-local_timestamp	modules/flatstore/flatstore_mod.c	/^time_t local_timestamp;$/;"	v
-local_totag	modules/tm/h_table.h	/^	str				 local_totag;$/;"	m	struct:ua_server
-location	modules/cpl-c/loc_set.h	/^struct location {$/;"	s
-location	modules/pa/presentity.h	/^	location_t location;$/;"	m	struct:presence_tuple
-location	modules/pa/presentity.h	/^typedef struct location {$/;"	s
-location_doc_add_user	modules/pa/location.c	/^int location_doc_add_user(str* _b, int _l, str *user_uri)$/;"	f
-location_doc_end	modules/pa/location.c	/^int location_doc_end(str* _b, int _l)$/;"	f
-location_doc_end_resource	modules/pa/location.c	/^int location_doc_end_resource(str *_b, int _l)$/;"	f
-location_doc_start	modules/pa/location.c	/^int location_doc_start(str* _b, int _l)$/;"	f
-location_doc_start_userlist	modules/pa/location.c	/^int location_doc_start_userlist(str* _b, int _l, str* _uri)$/;"	f
-location_lookup_placeid	modules/pa/location.c	/^int location_lookup_placeid(str *room_name, int *placeid)$/;"	f
-location_package	modules/pa/presentity.h	/^	location_package_t location_package;$/;"	m	struct:presentity
-location_package	modules/pa/presentity.h	/^typedef struct location_package {$/;"	s
-location_package_location_add_user	modules/pa/publish.c	/^int location_package_location_add_user(pdomain_t *pdomain, str *site, str *floor, str *room, presentity_t *presentity)$/;"	f
-location_package_location_del_user	modules/pa/publish.c	/^int location_package_location_del_user(pdomain_t *pdomain, str *site, str *floor, str *room, presentity_t *presentity)$/;"	f
-location_package_t	modules/pa/presentity.h	/^} location_package_t;$/;"	t
-location_placeid_n_rows	modules/pa/location.c	/^int location_placeid_n_rows;$/;"	v
-location_placeid_row	modules/pa/location.c	/^struct location_placeid_row {$/;"	s	file:
-location_placeid_table	modules/pa/location.c	/^} *location_placeid_table;$/;"	v
-location_t	modules/pa/presentity.h	/^} location_t;$/;"	t
-locations	modules/cpl/jcpli.h	/^	TLocation *locations;$/;"	m	struct:_RedirectMessage
-lock	modules/exec/kill.c	66;"	d	file:
-lock	modules/pa/pdomain.h	/^	gen_lock_t lock;            \/* Lock for the domain *\/$/;"	m	struct:pdomain
-lock	modules/pdt/domains.h	/^    gen_lock_t lock;$/;"	m	struct:_h_entry
-lock	modules/tm/lock.h	81;"	d
-lock	modules/tm/lock.h	84;"	d
-lock	modules/usrloc/udomain.h	/^	gen_lock_t lock;                \/* lock variable *\/$/;"	m	struct:udomain
-lock	test/locking/locking_test.c	/^fl_lock_t lock;$/;"	v
-lock_alloc	lock_alloc.h	65;"	d
-lock_alloc	lock_alloc.h	87;"	d
-lock_cleanup	modules/tm/lock.c	/^void lock_cleanup()$/;"	f
-lock_dealloc	lock_alloc.h	66;"	d
-lock_dealloc	lock_alloc.h	88;"	d
-lock_destroy	lock_ops.h	/^inline static void lock_destroy(gen_lock_t* lock)$/;"	f
-lock_destroy	lock_ops.h	110;"	d
-lock_destroy	lock_ops.h	76;"	d
-lock_destroy	lock_ops.h	92;"	d
-lock_fd	test/locking/locking_test.c	/^static int lock_fd;$/;"	v	file:
-lock_get	lock_ops.h	/^inline static void lock_get(gen_lock_t* lock)$/;"	f
-lock_get	lock_ops.h	100;"	d
-lock_get	lock_ops.h	118;"	d
-lock_get	lock_ops.h	84;"	d
-lock_hash	modules/tm/h_table.c	/^void lock_hash(int i) $/;"	f
-lock_idx	modules/pike/ip_tree.h	/^		int            lock_idx;$/;"	m	struct:ip_tree::entry
-lock_init	lock_ops.h	/^inline static gen_lock_t* lock_init(gen_lock_t* lock)$/;"	f
-lock_initialize	modules/tm/lock.c	/^int lock_initialize()$/;"	f
-lock_pdomain	modules/pa/pdomain.c	/^void lock_pdomain(pdomain_t* _d)$/;"	f
-lock_release	lock_ops.h	/^inline static void lock_release(gen_lock_t* lock)$/;"	f
-lock_release	lock_ops.h	101;"	d
-lock_release	lock_ops.h	119;"	d
-lock_release	lock_ops.h	85;"	d
-lock_set_alloc	lock_alloc.h	/^inline static gen_lock_set_t* lock_set_alloc(int n)$/;"	f
-lock_set_dealloc	lock_alloc.h	103;"	d
-lock_set_dealloc	lock_alloc.h	82;"	d
-lock_set_destroy	lock_ops.h	/^inline static void lock_set_destroy(gen_lock_set_t* s)$/;"	f
-lock_set_destroy	lock_ops.h	234;"	d
-lock_set_get	lock_ops.h	/^inline static void lock_set_get(gen_lock_set_t* s, int n)$/;"	f
-lock_set_get	lock_ops.h	244;"	d
-lock_set_init	lock_ops.h	/^inline static gen_lock_set_t* lock_set_init(gen_lock_set_t* s)$/;"	f
-lock_set_release	lock_ops.h	/^inline static void lock_set_release(gen_lock_set_t* s, int n)$/;"	f
-lock_set_release	lock_ops.h	245;"	d
-lock_tree_branch	modules/pike/ip_tree.c	/^void lock_tree_branch(unsigned char b)$/;"	f
-lock_udomain	modules/usrloc/udomain.c	/^void lock_udomain(udomain_t* _d)$/;"	f
-lock_udomain	modules/usrloc/usrloc.h	/^	lock_udomain_t       lock_udomain;$/;"	m	struct:usrloc_api
-lock_udomain_t	modules/usrloc/udomain.h	/^typedef void (*lock_udomain_t)(udomain_t* _d);$/;"	t
-locks	lock_ops.h	/^	gen_lock_t* locks;$/;"	m	struct:gen_lock_set_t_
-log_buf	modules/xlog/xlog.c	/^char *log_buf = NULL;$/;"	v
-log_dir	modules/cpl-c/cpl_env.h	/^	char  *log_dir;         \/* dir where the user log should be dumped *\/$/;"	m	struct:cpl_enviroment
-log_facility	main.c	/^int log_facility = LOG_DAEMON;$/;"	v
-log_flag	modules/acc/acc_mod.c	/^int log_flag = 0;$/;"	v
-log_fmt	modules/acc/acc_mod.c	/^char *log_fmt=DEFAULT_LOG_FMT;$/;"	v
-log_level	modules/acc/acc_mod.c	/^int log_level=L_NOTICE;$/;"	v
-log_missed_flag	modules/acc/acc_mod.c	/^int log_missed_flag = 0;$/;"	v
-log_stderr	main.c	/^int log_stderr = 0;$/;"	v
-log_stderr	test/dns_query.c	/^int log_stderr=1;$/;"	v
-long_addr	utils/fifo_relay/fifo_server.php	/^  $long_addr = ip2long($addr);$/;"	v
-lookup	modules/registrar/lookup.c	/^int lookup(struct sip_msg* _m, char* _t, char* _s)$/;"	f
-lookup_avp_galias	usr_avp.c	/^int lookup_avp_galias(str *alias, int *type, int_str *avp_name)$/;"	f
-lookup_cmd	unixsock_server.c	/^static struct unixsock_cmd* lookup_cmd(str* cmd)$/;"	f	file:
-lookup_domain	modules/cpl-c/cpl.c	/^static char *lookup_domain = 0;$/;"	v	file:
-lookup_fifo_cmd	fifo_server.c	/^static struct fifo_command *lookup_fifo_cmd( char *name )$/;"	f	file:
-looping_interval	modules/sms/sms_funcs.h	/^	int  looping_interval;$/;"	m	struct:modem
-loose_route	modules/rr/loose.c	/^int loose_route(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-lpidf_add_address	modules/pa/lpidf.c	/^int lpidf_add_address(str* _b, int _l, str* _addr, lpidf_status_t _st)$/;"	f
-lpidf_add_presentity	modules/pa/lpidf.c	/^int lpidf_add_presentity(str* _b, int _l, str* _uri)$/;"	f
-lpidf_status	modules/pa/lpidf.h	/^typedef enum lpidf_status {$/;"	g
-lpidf_status_t	modules/pa/lpidf.h	/^} lpidf_status_t;$/;"	t
-lr	parser/msg_parser.h	/^	str lr;$/;"	m	struct:sip_uri
-lr	parser/parse_param.h	/^	struct param* lr;        \/* lr parameter *\/$/;"	m	struct:uri_hooks
-lr	test/p_uri.c	/^	str lr;$/;"	m	struct:sip_uri	file:
-lr_val	parser/msg_parser.h	/^	str lr_val; \/* lr value placeholder for lr=on a.s.o*\/$/;"	m	struct:sip_uri
-ls_ifflags	test/ifls.c	/^int ls_ifflags(char* name, int family , int options)$/;"	f
-ls_ifs	test/ifls.c	/^int ls_ifs(char* name, int family, int options)$/;"	f
-lsent	modules/msilo/ms_msg_list.h	/^	msg_list_el lsent;$/;"	m	struct:_msg_list
-lst_tmp	cfg.tab.c	/^static struct socket_id* lst_tmp;$/;"	v	file:
-ltrim	modules/mediaproxy/mediaproxy.c	/^ltrim(str *string)$/;"	f	file:
-lu_append_branches	modules/cpl-c/cpl_env.h	/^	int lu_append_branches; \/* how many branches lookup should add *\/$/;"	m	struct:cpl_enviroment
-lu_domain	modules/cpl-c/cpl_env.h	/^	udomain_t*  lu_domain;  \/* domain used for lookup *\/$/;"	m	struct:cpl_enviroment
-lump	lump_struct.h	/^struct lump{$/;"	s
-lump_check_opt	msg_translator.c	/^static inline int lump_check_opt(	enum lump_conditions cond,$/;"	f	file:
-lump_clone	modules/tm/sip_msg.c	72;"	d	file:
-lump_conditions	lump_struct.h	/^enum lump_conditions {	COND_FALSE,         \/* always false *\/$/;"	g
-lump_dir	data_lump.c	/^enum lump_dir { LD_NEXT, LD_BEFORE, LD_AFTER };$/;"	g	file:
-lump_flag	lump_struct.h	/^enum lump_flag { LUMPFLAG_NONE=0, LUMPFLAG_DUPED=1, LUMPFLAG_SHMEM=2 };$/;"	g
-lump_len	modules/tm/sip_msg.c	69;"	d	file:
-lump_op	lump_struct.h	/^enum lump_op { LUMP_NOP=0, LUMP_DEL, LUMP_ADD, LUMP_ADD_SUBST, LUMP_ADD_OPT };$/;"	g
-lump_rpl	data_lump_rpl.h	/^struct lump_rpl$/;"	s
-lump_struct_h	lump_struct.h	42;"	d
-lump_subst	lump_struct.h	/^enum lump_subst{ SUBST_NOP=0,                     \/* do nothing *\/$/;"	g
-lumps_len	msg_translator.c	/^static inline int lumps_len(struct sip_msg* msg, struct lump* lumps, struct socket_info* send_sock)$/;"	f	file:
-m	modules/postgres/aug_alloc.c	/^	struct MemHeadStruct m;$/;"	m	union:MemHead	file:
-mAX_	parser/obsolete/strs.h	184;"	d
-mAx_	parser/obsolete/strs.h	183;"	d
-m_apo_escape	modules/msilo/msfuncs.c	/^int m_apo_escape(char* src, int slen, char* dst, int dlen)$/;"	f
-m_build_body	modules/msilo/msfuncs.c	/^int m_build_body(str *body, time_t date, str msg)$/;"	f
-m_build_headers	modules/msilo/msfuncs.c	/^int m_build_headers(str *buf, str ctype, str contact)$/;"	f
-m_clean_silo	modules/msilo/msilo.c	/^void m_clean_silo(unsigned int ticks, void *param)$/;"	f
-m_dump	modules/msilo/msilo.c	/^static int m_dump(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-m_dump	scripts/serconf.sh	/^		m_dump();$/;"	f
-m_extract_content_type	modules/msilo/msfuncs.c	/^int m_extract_content_type(char* src, int len, t_content_type* ctype, int flag)$/;"	f
-m_store	modules/msilo/msilo.c	/^static int m_store(struct sip_msg* msg, char* mode, char* str2)$/;"	f	file:
-m_tm_callback	modules/msilo/msilo.c	/^void m_tm_callback( struct cell *t, int type, struct tmcb_params *ps)$/;"	f
-ma	mem/memtest.c	63;"	d	file:
-maX_	parser/obsolete/strs.h	182;"	d
-maddr	parser/msg_parser.h	/^	str maddr;$/;"	m	struct:sip_uri
-maddr	parser/parse_param.h	/^	struct param* maddr;     \/* maddr parameter *\/$/;"	m	struct:uri_hooks
-maddr	test/p_uri.c	/^	str maddr;$/;"	m	struct:sip_uri	file:
-maddr_val	parser/msg_parser.h	/^	str maddr_val;$/;"	m	struct:sip_uri
-maddr_val	test/p_uri.c	/^	str maddr_val;$/;"	m	struct:sip_uri	file:
-magic	mem/vq_malloc.h	/^			unsigned char magic;$/;"	m	struct:vqm_frag::<anonymous>::<anonymous>
-magic	modules/postgres/aug_alloc.c	/^	MemMagic magic;$/;"	m	struct:MemHeadStruct	file:
-magic	modules/postgres/aug_alloc.c	/^	MemMagic magic;$/;"	m	struct:MemOpt	file:
-main	main.c	/^int main(int argc, char** argv)$/;"	f
-main	modules/jabber/tree234.c	/^int main(void) {$/;"	f
-main	modules/postgres/aug_alloc.c	/^main(int argc, char **argv)$/;"	f
-main	test/auto.c	/^int main(int argc, char** argv)$/;"	f
-main	test/dns_query.c	/^int main(int argc, char** argv)$/;"	f
-main	test/gethostbyaddr.c	/^int main(int argc, char** argv)$/;"	f
-main	test/gethostbyname.c	/^int main(int argc, char** argv)$/;"	f
-main	test/ifls.c	/^int main(int argc, char**argv)$/;"	f
-main	test/locking/locking_test.c	/^int main (int argc, char** argv)$/;"	f
-main	test/mips_lock.c	/^int main(int argc, char** argv)$/;"	f
-main	test/p_uri.c	/^int main (int argc, char** argv)$/;"	f
-main	test/re_test.c	/^int main (int argc, char** argv)$/;"	f
-main	test/resolver_test.c	/^int main (int argc, char** argv)$/;"	f
-main	test/shoot.c	/^int main(int argc, char *argv[])$/;"	f
-main	test/shoot2.c	/^int main(int argc, char *argv[])$/;"	f
-main	test/sock_conn.c	/^main() {$/;"	f
-main	test/sock_disc.c	/^main() {$/;"	f
-main	test/test.c	/^int main(char** argv, int argn)$/;"	f
-main	test/udp.c	/^int main(int argc, char *argv[])$/;"	f
-main	test/udp_flood.c	/^int main (int argc, char** argv)$/;"	f
-main	test/udp_flood_disc.c	/^int main (int argc, char** argv)$/;"	f
-main	test/udp_test_proxy.c	/^int main(int argc, char** argv)$/;"	f
-main	test/via_parse.c	/^int main(int argc, char** argv)$/;"	f
-main	utils/gen_ha1/gen_ha1.c	/^int main(int argc, char** argv)$/;"	f
-main	utils/serunix/serunix.c	/^int main(int argc, char** argv)$/;"	f
-main_loop	main.c	/^int main_loop()$/;"	f
-main_loop	modules/jabber/xjab_worker.c	/^int main_loop = 1;$/;"	v
-make_clean	etc/imgwd	/^make_clean() {$/;"	f
-make_mask	modules/mangler/ip_helper.c	/^make_mask (unsigned int length)$/;"	f
-make_pdu	modules/sms/libsms_putsms.c	/^int make_pdu(struct sms_msg *msg, struct modem *mdm, char* pdu)$/;"	f
-makefile_defs	Makefile	/^makefile_defs=0$/;"	m
-mark	modules/dbtext/dbt_lib.h	/^	int mark;$/;"	m	struct:_dbt_table
-mark_authorized_cred	parser/digest/digest.c	/^int mark_authorized_cred(struct sip_msg* _m, struct hdr_field* _h)$/;"	f
-mark_node	modules/pike/ip_tree.c	/^struct ip_node* mark_node(unsigned char *ip,int ip_len,$/;"	f
-mask	ip_addr.h	/^	struct ip_addr mask;$/;"	m	struct:net
-mask	modules/mediaproxy/mediaproxy.c	/^    uint32_t mask;$/;"	m	file:
-mask	modules/nathelper/nathelper.c	/^	uint32_t mask;$/;"	m	file:
-match_hash_table	modules/permissions/hash.c	/^int match_hash_table(struct trusted_list** table, struct sip_msg* msg)$/;"	f
-match_proto	modules/permissions/trusted.c	/^static inline int match_proto(char *proto_string, int proto_int)$/;"	f	file:
-match_res	modules/permissions/trusted.c	/^static int match_res(struct sip_msg* msg, db_res_t* _r)$/;"	f	file:
-matching_3261	modules/tm/t_lookup.c	/^static int matching_3261( struct sip_msg *p_msg, struct cell **trans,$/;"	f	file:
-matchnet	ip_addr.h	/^inline static int matchnet(struct ip_addr* ip, struct net* net)$/;"	f
-max_	parser/obsolete/strs.h	181;"	d
-max_CASE	parser/case_max.h	53;"	d
-max_branches	modules/ext/ext.c	/^static int max_branches = 0;$/;"	v	file:
-max_contacts	modules/registrar/reg_mod.c	/^int max_contacts = 0;                 \/* Maximum number of contacts per AOR *\/$/;"	v
-max_expires	modules/registrar/reg_mod.c	/^int max_expires     = 0;              \/* Minimum expires the phones are allowed to use in seconds,$/;"	v
-max_hits	modules/pike/ip_tree.h	/^	unsigned short   max_hits;$/;"	m	struct:ip_tree
-max_jobs	modules/jabber/jabber.c	/^int max_jobs = 10;$/;"	v
-max_limit	modules/maxfwd/maxfwd.c	/^static int max_limit = 16;$/;"	v	file:
-max_pmatch	re.h	/^	int max_pmatch ; \/* highest () referenced *\/$/;"	m	struct:subst_expr
-max_real_used	mem/f_malloc.h	/^	unsigned long max_real_used;$/;"	m	struct:fm_block
-max_real_used	mem/q_malloc.h	/^	unsigned long max_real_used;$/;"	m	struct:qm_block
-max_reqs	modules/pike/pike.c	/^static int max_reqs  = 30;$/;"	v	file:
-max_small_bucket	mem/vq_malloc.h	/^	unsigned char max_small_bucket;$/;"	m	struct:vqm_block
-max_sms_parts	modules/sms/sms.c	/^int    max_sms_parts  = MAX_SMS_PARTS;$/;"	v
-max_sms_parts	modules/sms/sms_funcs.c	/^int max_sms_parts;$/;"	v
-max_sms_per_call	modules/sms/sms_funcs.h	/^	int  max_sms_per_call;$/;"	m	struct:network
-maxbuffer	main.c	/^unsigned int maxbuffer = MAX_RECV_BUFFER_SIZE; \/* maximum buffer size we do$/;"	v
-maxforwards	parser/msg_parser.h	/^	struct hdr_field* maxforwards;$/;"	m	struct:sip_msg
-maxfwd_exports	modules/maxfwd/maxfwd.c	/^struct module_exports maxfwd_exports = {$/;"	v
-maxj	modules/jabber/xjab_worker.h	/^	int maxj;			\/\/ maximum jobs \/ worker$/;"	m	struct:_xj_wlist
-mcast_loopback	main.c	/^int mcast_loopback = 0;$/;"	v
-mcast_ttl	main.c	/^int mcast_ttl = -1; \/* if -1, don't touch it, use the default (usually 1) *\/$/;"	v
-md5	modules/tm/h_table.h	/^	char md5[MD5_LEN];$/;"	m	struct:cell
-mday	modules/cpl-c/cpl_time.h	/^	int mday;$/;"	m	struct:_ac_maxval
-mediaproxySocket	modules/mediaproxy/mediaproxy.c	/^static char *mediaproxySocket = "\/var\/run\/proxydispatcher.sock";$/;"	v	file:
-mem_alloc	modules/postgres/aug_alloc.c	/^static void *mem_alloc(size_t size, void *parent, char *file, int line)$/;"	f	file:
-mem_bad	modules/postgres/aug_alloc.c	/^static int mem_bad(MemHead *mem, char *where, char *file, int line)$/;"	f	file:
-mem_block	mem/mem.c	/^		struct fm_block* mem_block;$/;"	v
-mem_block	mem/mem.c	/^		struct qm_block* mem_block;$/;"	v
-mem_block	mem/mem.c	/^		struct vqm_block* mem_block;$/;"	v
-mem_block	test/dns_query.c	/^struct qm_block* mem_block;$/;"	v
-mem_delete_ucontact	modules/usrloc/urecord.c	/^void mem_delete_ucontact(urecord_t* _r, ucontact_t* _c)$/;"	f
-mem_delete_urecord	modules/usrloc/udomain.c	/^void mem_delete_urecord(udomain_t* _d, struct urecord* _r)$/;"	f
-mem_find	modules/postgres/aug_alloc.c	/^static augBool mem_find(MemHead *mem, MemHead *p)$/;"	f	file:
-mem_free	modules/postgres/aug_alloc.c	/^static void mem_free(MemHead *mem)$/;"	f	file:
-mem_h	mem/mem.h	41;"	d
-mem_insert_ucontact	modules/usrloc/urecord.c	/^int mem_insert_ucontact(urecord_t* _r, str* _c, time_t _e, qvalue_t _q, str* _cid, int _cs, $/;"	f
-mem_insert_urecord	modules/usrloc/udomain.c	/^int mem_insert_urecord(udomain_t* _d, str* _aor, struct urecord** _r)$/;"	f
-mem_lock	mem/shm_mem.c	/^gen_lock_t* mem_lock=0;$/;"	v
-mem_magic	modules/postgres/aug_alloc.c	/^static MemMagic mem_magic = MEM_MAGIC_BOUND;$/;"	v	file:
-mem_nomem	modules/postgres/aug_alloc.c	/^static void mem_nomem(size_t size, char *func, char *file, int line)$/;"	f	file:
-mem_nomem_func	modules/postgres/aug_alloc.c	/^static augNoMemFunc *mem_nomem_func = 0;$/;"	v	file:
-mem_only	modules/registrar/save.c	/^static int mem_only = 0;$/;"	v	file:
-mem_pool	mem/mem.c	/^	char mem_pool[PKG_MEM_POOL_SIZE];$/;"	v
-mem_pool	test/dns_query.c	/^char mem_pool[1024*1024];$/;"	v
-mem_remove_ucontact	modules/usrloc/urecord.c	/^void mem_remove_ucontact(urecord_t* _r, ucontact_t* _c)$/;"	f
-mem_stats	modules/postgres/aug_alloc.c	/^static augAllocStats mem_stats = {sizeof (MemHead) + sizeof (MemMagic) + 8, 0};$/;"	v	file:
-mem_update_ucontact	modules/usrloc/ucontact.c	/^int mem_update_ucontact(ucontact_t* _c, time_t _e, qvalue_t _q, str* _cid, int _cs,$/;"	f
-memapp	modules/tm/t_msgbuilder.h	57;"	d
-memlog	main.c	/^int memlog = L_DBG;$/;"	v
-method	modules/pa/notify.c	/^static str method = {METHOD_NOTIFY, METHOD_NOTIFY_L};$/;"	v	file:
-method	modules/tm/h_table.h	/^	str method;$/;"	m	struct:cell
-method	parser/contact/contact.h	/^	param_t* method;        \/* method parameter hook *\/$/;"	m	struct:contact
-method	parser/msg_parser.h	/^	str method;$/;"	m	struct:sip_uri
-method	parser/parse_cseq.h	/^	str method; \/* Associated method *\/$/;"	m	struct:cseq_body
-method	parser/parse_fline.h	/^			str method;       \/* Method string *\/$/;"	m	struct:msg_start::<anonymous>::<anonymous>
-method	parser/parse_methods.h	/^enum method {$/;"	g
-method	parser/parse_param.h	/^	struct param* method;   \/* method parameter *\/$/;"	m	struct:contact_hooks
-method	test/p_uri.c	/^	str method;$/;"	m	struct:sip_uri	file:
-method_col	modules/usrloc/ul_mod.c	/^str method_col      = {METHOD_COL, sizeof(METHOD_COL) - 1};         \/* Name of column containing supported method *\/$/;"	v
-method_val	parser/msg_parser.h	/^	str method_val;$/;"	m	struct:sip_uri
-method_val	test/p_uri.c	/^	str method_val;$/;"	m	struct:sip_uri	file:
-method_value	parser/parse_fline.h	/^			int method_value;$/;"	m	struct:msg_start::<anonymous>::<anonymous>
-mf	mem/memtest.c	65;"	d	file:
-mhomed	main.c	/^int mhomed=0;$/;"	v
-mime_type	parser/parse_content.h	/^struct mime_type {$/;"	s
-min	modules/mediaproxy/mediaproxy.c	77;"	d	file:
-min_expires	modules/registrar/reg_mod.c	/^int min_expires     = 60;             \/* Minimum expires the phones are allowed to use in seconds,$/;"	v
-mine_check	scripts/serconf.sh	/^function mine_check()$/;"	f
-mk_action	route_struct.c	/^struct action* mk_action(int type, int p1_type, int p2_type,$/;"	f
-mk_action3	route_struct.c	/^struct action* mk_action3(int type, int p1_type, int p2_type, int p3_type,$/;"	f
-mk_elem	route_struct.c	/^struct expr* mk_elem(int op, int subtype, int operand, void* param)$/;"	f
-mk_exp	route_struct.c	/^struct expr* mk_exp(int op, struct expr* left, struct expr* right)$/;"	f
-mk_listen_id	cfg.tab.c	/^static struct socket_id* mk_listen_id(char* host, int proto, int port)$/;"	f	file:
-mk_net	ip_addr.c	/^struct net* mk_net(struct ip_addr* ip, struct ip_addr* mask)$/;"	f
-mk_net_bitlen	ip_addr.c	/^struct net* mk_net_bitlen(struct ip_addr* ip, unsigned int bitlen)$/;"	f
-mk_proxy	proxy.c	/^struct proxy_l* mk_proxy(str* name, unsigned short port, int proto)$/;"	f
-mk_proxy_from_ip	proxy.c	/^struct proxy_l* mk_proxy_from_ip(struct ip_addr* ip, unsigned short port,$/;"	f
-mknew	modules/jabber/tree234.c	44;"	d	file:
-ml	modules/msilo/msilo.c	/^msg_list ml = NULL;$/;"	v
-mod_child_init	modules/auth_diameter/auth_diameter.c	/^static int mod_child_init(int r)$/;"	f	file:
-mod_child_init	modules/pdt/pdt.c	/^static int mod_child_init(int r)$/;"	f	file:
-mod_destroy	modules/flatstore/flatstore_mod.c	/^static void mod_destroy(void)$/;"	f	file:
-mod_destroy	modules/pdt/pdt.c	/^static void mod_destroy(void)$/;"	f	file:
-mod_destroy	modules/registrar/reg_mod.c	/^static void mod_destroy(void)$/;"	f	file:
-mod_destroy	modules/sl/sl.c	/^static void mod_destroy()$/;"	f	file:
-mod_exit	modules/permissions/permissions.c	/^static void mod_exit(void) $/;"	f	file:
-mod_init	modules/acc/acc_mod.c	/^static int mod_init( void )$/;"	f	file:
-mod_init	modules/auth/auth_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/auth_db/authdb_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/auth_diameter/auth_diameter.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/auth_radius/authrad_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/avp_db/avp_db.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/avp_radius/avp_radius.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/cpl/cpl.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/dbtext/dbtex/dbtex.c	/^int mod_init()$/;"	f
-mod_init	modules/dbtext/dbtext.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/dispatcher/dispatcher.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/diversion/diversion.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/domain/domain_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/enum/enum_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/exec/exec_mod.c	/^static int mod_init( void )$/;"	f	file:
-mod_init	modules/flatstore/flatstore_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/gflags/gflags.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/group/group_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/group_radius/grouprad_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/jabber/jabber.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/mangler/mangler.c	/^mod_init (void)$/;"	f	file:
-mod_init	modules/maxfwd/maxfwd.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/mediaproxy/mediaproxy.c	/^mod_init(void)$/;"	f	file:
-mod_init	modules/msilo/msilo.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/nathelper/nathelper.c	/^mod_init(void)$/;"	f	file:
-mod_init	modules/options/mod_options.c	/^static int mod_init(void) {$/;"	f	file:
-mod_init	modules/pdt/pdt.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/permissions/permissions.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/postgres/db_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/print/print.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/registrar/reg_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/rr/rr_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/sl/sl.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/speeddial/speeddial.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/textops/textops.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/tm/tm.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/uri_db/uridb_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/uri_radius/urirad_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/usrloc/ul_mod.c	/^static int mod_init(void)$/;"	f	file:
-mod_init	modules/xlog/xlog.c	/^static int mod_init(void)$/;"	f	file:
-mod_register	db/example/dbexample.c	/^struct module_exports* mod_register()$/;"	f
-mode	modules/sms/sms_funcs.h	/^	int  mode;$/;"	m	struct:modem
-modem	modules/sms/sms_funcs.h	/^struct modem {$/;"	s
-modem_process	modules/sms/sms_funcs.c	/^void modem_process(struct modem *mdm)$/;"	f
-modems	modules/sms/sms_funcs.c	/^struct modem modems[MAX_MODEMS];$/;"	v
-modems_config	modules/sms/sms.c	/^char *modems_config   = 0;$/;"	v
-modparam_h	modparam.h	31;"	d
-modparam_t	sr_module.h	/^typedef unsigned int modparam_t;$/;"	t
-module_exports	sr_module.h	/^struct module_exports{$/;"	s
-module_register	sr_module.h	/^typedef  struct module_exports* (*module_register)();$/;"	t
-module_stm	cfg.y	/^module_stm:	LOADMODULE STRING	{ DBG("loading module %s\\n", $2);$/;"	l
-modules	Makefile	/^modules:=$(filter-out $(modules), $(addprefix modules\/, $(include_modules) )) \\$/;"	m
-modules	Makefile	/^modules=$(filter-out $(addprefix modules\/, \\$/;"	m
-modules	sr_module.c	/^struct sr_module* modules=0;$/;"	v
-modules	sr_module.h	/^struct sr_module* modules; \/* global module list*\/$/;"	v
-modules_basenames	Makefile	/^modules_basenames=$(shell echo $(modules)| \\$/;"	m
-modules_full_path	Makefile	/^modules_full_path=$(join  $(modules), $(addprefix \/, $(modules_names)))$/;"	m
-modules_names	Makefile	/^modules_names=$(shell echo $(modules)| \\$/;"	m
-monit_start	etc/sr	/^monit_start() {$/;"	f
-monit_stop	etc/sr	/^monit_stop() {$/;"	f
-more_core	mem/vq_malloc.c	/^struct vqm_frag *more_core(	struct vqm_block* qm, $/;"	f
-move_on_top	modules/registrar/save.c	/^void move_on_top(urecord_t* _r, ucontact_t* _c)$/;"	f
-ms_check_time	modules/msilo/msilo.c	/^int  ms_check_time=30;$/;"	v
-ms_clean_period	modules/msilo/msilo.c	/^int  ms_clean_period=5;$/;"	v
-ms_db_table	modules/msilo/msilo.c	/^char *ms_db_table="silo";$/;"	v
-ms_db_url	modules/msilo/msilo.c	/^char *ms_db_url=DEFAULT_DB_URL;$/;"	v
-ms_expire_time	modules/msilo/msilo.c	/^int  ms_expire_time=259200;$/;"	v
-ms_registrar	modules/msilo/msilo.c	/^char *ms_registrar=NULL; \/\/"sip:registrar at iptel.org";$/;"	v
-ms_use_contact	modules/msilo/msilo.c	/^int  ms_use_contact=1;$/;"	v
-msg	modules/cpl-c/cpl_run.h	/^	struct sip_msg *msg;$/;"	m	struct:cpl_interpreter
-msg	modules/jabber/xjab_base.h	/^	str msg;			\/\/ message body$/;"	m	struct:_xj_sipmsg
-msg	utils/fifo_relay/fifo_server.php	/^    $msg = "403 Forbidden\\n";$/;"	v
-msg	utils/fifo_relay/fifo_server.php	/^    $msg = "sorry -- cannot open write fifo";$/;"	v
-msg	utils/fifo_relay/fifo_server.php	/^    $msg = "sorry -- fifo writing error";$/;"	v
-msg	utils/fifo_relay/fifo_server.php	/^    $msg = "sorry -- reply fifo opening error";$/;"	v
-msg	utils/fifo_relay/fifo_server.php	/^    $msg = "sorry -- reply fifo reading error";$/;"	v
-msg_flags	parser/msg_parser.h	/^	unsigned int msg_flags; \/* flags used by core *\/$/;"	m	struct:sip_msg
-msg_id	modules/xlog/xl_lib.c	/^int msg_id = 0;$/;"	v
-msg_list	modules/msilo/ms_msg_list.h	/^} t_msg_list, *msg_list;$/;"	t
-msg_list_check	modules/msilo/ms_msg_list.c	/^int msg_list_check(msg_list ml)$/;"	f
-msg_list_check_msg	modules/msilo/ms_msg_list.c	/^int msg_list_check_msg(msg_list ml, int mid)$/;"	f
-msg_list_el	modules/msilo/ms_msg_list.h	/^} t_msg_list_el, *msg_list_el;$/;"	t
-msg_list_el_free	modules/msilo/ms_msg_list.c	/^void msg_list_el_free(msg_list_el mle)$/;"	f
-msg_list_el_free_all	modules/msilo/ms_msg_list.c	/^void msg_list_el_free_all(msg_list_el mle)$/;"	f
-msg_list_el_new	modules/msilo/ms_msg_list.c	/^msg_list_el msg_list_el_new()$/;"	f
-msg_list_free	modules/msilo/ms_msg_list.c	/^void msg_list_free(msg_list ml)$/;"	f
-msg_list_init	modules/msilo/ms_msg_list.c	/^msg_list msg_list_init()$/;"	f
-msg_list_reset	modules/msilo/ms_msg_list.c	/^msg_list_el msg_list_reset(msg_list ml)$/;"	f
-msg_list_set_flag	modules/msilo/ms_msg_list.c	/^int msg_list_set_flag(msg_list ml, int mid, int fl)$/;"	f
-msg_no	receive.c	/^unsigned int msg_no=0;$/;"	v
-msg_parser_h	parser/msg_parser.h	44;"	d
-msg_send	forward.h	/^static inline int msg_send(	struct socket_info* send_sock, int proto,$/;"	f
-msg_start	parser/parse_fline.h	/^struct msg_start {$/;"	s
-msg_tm	modules/xlog/xl_lib.c	/^time_t msg_tm = 0;$/;"	v
-msg_type	modules/msilo/msilo.c	/^str msg_type = { "MESSAGE", 7 };$/;"	v
-msgid	modules/msilo/ms_msg_list.h	/^	int msgid;$/;"	m	struct:_msg_list_el
-msgr	modules/msilo/msfuncs.h	/^	str msgr;$/;"	m	struct:_content_type
-msilo_dbf	modules/msilo/msilo.c	/^static db_func_t msilo_dbf;$/;"	v	file:
-msn	modules/jabber/doc/xjab.sql	/^CREATE TABLE msn($/;"	t
-msn_id	modules/jabber/doc/xjab.sql	/^	msn_id VARCHAR(128) NOT NULL,$/;"	F
-mtime	utils/fifo_relay/fifo_server.php	/^    $mtime = $cur_mtime;$/;"	v
-mtime	utils/fifo_relay/fifo_server.php	/^$mtime = 0;$/;"	v
-mutex	modules/tm/h_table.h	/^	ser_lock_t      mutex;$/;"	m	struct:entry
-mutex	modules/tm/timer.h	/^	ser_lock_t*        mutex;$/;"	m	struct:timer
-mutex	test/locking/locking_test.c	/^pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;$/;"	v
-mv	modules/cpl-c/cpl_time.h	/^	ac_maxval_p mv;$/;"	m	struct:_ac_tm
-mwday	modules/cpl-c/cpl_time.h	/^	int mwday;$/;"	m	struct:_ac_maxval
-mwday	modules/cpl-c/cpl_time.h	/^	int mwday;$/;"	m	struct:_ac_tm
-mweek	modules/cpl-c/cpl_time.h	/^	int mweek;$/;"	m	struct:_ac_maxval
-mweek	modules/cpl-c/cpl_time.h	/^	int mweek;$/;"	m	struct:_ac_tm
-my_T	modules/tm/h_table.h	/^	struct cell* my_T;$/;"	m	struct:retr_buf
-my_address	modules/extcmd/extcmd.c	/^char *my_address = 0;$/;"	v
-my_argc	main.c	/^int my_argc;$/;"	v
-my_argv	main.c	/^char **my_argv;$/;"	v
-my_assert	mem/vq_malloc.c	/^void my_assert( int assertation, int line, char *file, char *function )$/;"	f
-my_con	modules/mysql/my_con.h	/^struct my_con {$/;"	s
-my_id	modules/mysql/my_id.h	/^struct my_id {$/;"	s
-my_pid	pt.h	/^inline static int my_pid()$/;"	f
-my_port	modules/extcmd/extcmd.c	/^int  my_port = 7890;$/;"	v
-mycmp	modules/jabber/tree234.c	/^int mycmp(void *av, void *bv) {$/;"	f
-myfilename	examples/web_im/click_to_dial.php	/^$myfilename="webfifo_".rand();$/;"	v
-myfilename	examples/web_im/send_im.php	/^$myfilename="webfifo_".rand();$/;"	v
-mypath	examples/web_im/click_to_dial.php	/^$mypath="\/tmp\/".$myfilename;$/;"	v
-mypath	examples/web_im/send_im.php	/^$mypath="\/tmp\/".$myfilename;$/;"	v
-mypid	modules/nathelper/nathelper.c	/^static pid_t mypid;$/;"	v	file:
-myseqn	modules/nathelper/nathelper.c	/^static unsigned int myseqn = 0;$/;"	v	file:
-mysql2time	modules/mysql/utils.c	/^time_t mysql2time(const char* _str)$/;"	f
-n	db/db_res.h	/^		int n;             \/* Number of columns *\/$/;"	m	struct:db_res::<anonymous>
-n	db/db_res.h	/^	int n;                     \/* Number of rows *\/$/;"	m	struct:db_res
-n	db/db_row.h	/^	int n;             \/* Number of columns in the row *\/$/;"	m	struct:db_row
-n	modules/acc/dict.h	/^	const char *n;$/;"	m	struct:attr
-n	modules/acc/dict.h	/^	const char *n;$/;"	m	struct:val
-n	modules/pa/hslot.h	/^	int n;                     \/* Number of elements in the collision slot *\/$/;"	m	struct:hslot
-n	modules/pdt/domains.h	/^    struct _entry *n;$/;"	m	struct:_entry
-n	modules/usrloc/hslot.h	/^	int n;                  \/* Number of elements in the collision slot *\/$/;"	m	struct:hslot
-n	modules/usrloc/udomain.h	/^		int n;                 \/* Number of element in the linked list *\/$/;"	m	struct:udomain::<anonymous>
-n	usr_avp.h	/^	int  n;$/;"	m
-n_escapes	re.h	/^	int n_escapes; \/* escapes number (replace[] size) *\/$/;"	m	struct:subst_expr
-n_reqs	tcp_main.c	/^	int n_reqs; \/* number of requests serviced so far *\/$/;"	m	struct:tcp_child	file:
-na	modules/acc/acc.c	/^static str na={NA, NA_LEN};$/;"	v	file:
-name	fifo_server.h	/^	char *name;$/;"	m	struct:fifo_command
-name	ip_addr.h	/^	char* name;$/;"	m	struct:socket_id
-name	ip_addr.h	/^	str name; \/* name - eg.: foo.bar or 10.0.0.1 *\/$/;"	m	struct:socket_info
-name	modules/avpops/avpops_db.h	/^	char *name;$/;"	m	struct:db_scheme
-name	modules/cpl-c/sub_list.h	/^	char         *name;$/;"	m	struct:node
-name	modules/dbtext/dbt_lib.h	/^	str name;$/;"	m	struct:_dbt_column
-name	modules/dbtext/dbt_lib.h	/^	str name;$/;"	m	struct:_dbt_database
-name	modules/dbtext/dbt_lib.h	/^	str name;$/;"	m	struct:_dbt_table
-name	modules/jabber/xode.h	/^     char*                name;$/;"	m	struct:xode_struct
-name	modules/mediaproxy/mediaproxy.c	/^    const char *name;$/;"	m	file:
-name	modules/pa/dlist.h	/^	str name;            \/* Name of the domain *\/$/;"	m	struct:dlist
-name	modules/pa/pdomain.h	/^	str* name;$/;"	m	struct:pdomain
-name	modules/sms/sms_funcs.h	/^	char name[64];$/;"	m	struct:incame_sms
-name	modules/sms/sms_funcs.h	/^	char name[MAX_CHAR_BUF+1];$/;"	m	struct:modem
-name	modules/sms/sms_funcs.h	/^	char name[MAX_CHAR_BUF+1];$/;"	m	struct:network
-name	modules/tm/t_fifo.c	/^	str name;$/;"	m	struct:tw_append	file:
-name	modules/usrloc/dlist.h	/^	str name;            \/* Name of the domain *\/$/;"	m	struct:dlist
-name	modules/usrloc/udomain.h	/^	str* name;                     \/* Domain name *\/$/;"	m	struct:udomain
-name	parser/contact/contact.h	/^	str name;               \/* Name part *\/$/;"	m	struct:contact
-name	parser/hf.h	/^	str name;               \/* Header field name *\/$/;"	m	struct:hdr_field
-name	parser/parse_disposition.h	/^	str name;$/;"	m	struct:disposition_param
-name	parser/parse_nameaddr.h	/^	str name;   \/* Display name part *\/$/;"	m	struct:name_addr
-name	parser/parse_param.h	/^	str name;             \/* Parameter name *\/$/;"	m	struct:param
-name	parser/parse_to.h	/^	str name;              \/* Name of parameter *\/$/;"	m	struct:to_param
-name	parser/parse_via.h	/^	str name;               \/* Name of the parameter *\/$/;"	m	struct:via_param
-name	parser/parse_via.h	/^	str name;$/;"	m	struct:via_body
-name	proxy.h	/^	str name; \/* original name *\/$/;"	m	struct:proxy_l
-name	resolve.h	/^	char name[MAX_DNS_NAME];$/;"	m	struct:cname_rdata
-name	resolve.h	/^	char name[MAX_DNS_NAME];$/;"	m	struct:srv_rdata
-name	sr_module.h	/^	char* name;                     \/* null terminated module name *\/$/;"	m	struct:module_exports
-name	sr_module.h	/^	char* name;             \/* null terminated command name *\/$/;"	m	struct:cmd_export_
-name	sr_module.h	/^	char* name;             \/* null terminated param. name *\/$/;"	m	struct:param_export_
-name	unixsock_server.h	/^	str name;                   \/* The name of the function *\/$/;"	m	struct:unixsock_cmd
-name	usr_avp.c	/^	int_str name;$/;"	m	struct:avp_spec	file:
-name	usr_avp.c	/^	str  name;$/;"	m	struct:str_int_data	file:
-name	usr_avp.c	/^	str  name;$/;"	m	struct:str_str_data	file:
-name_CASE	parser/digest/param_parser.c	83;"	d	file:
-name_addr	parser/parse_nameaddr.h	/^typedef struct name_addr {$/;"	s
-name_addr_t	parser/parse_nameaddr.h	/^} name_addr_t;$/;"	t
-name_len	resolve.h	/^	unsigned int name_len;$/;"	m	struct:srv_rdata
-nameaddr	parser/parse_rr.h	/^	name_addr_t nameaddr; \/* Name-addr part *\/$/;"	m	struct:rr
-names	db/db_res.h	/^		db_key_t* names;   \/* Column names *\/$/;"	m	struct:db_res::<anonymous>
-naptr_greater	modules/enum/enum.c	/^static inline int naptr_greater(struct rdata* a, struct rdata* b)$/;"	f	file:
-naptr_rdata	resolve.h	/^struct naptr_rdata {$/;"	s
-naptr_sort	modules/enum/enum.c	/^static inline void naptr_sort(struct rdata** head)$/;"	f	file:
-natTests	modules/mediaproxy/mediaproxy.c	/^NatTest natTests[] = {$/;"	v
-nat_flag	modules/cpl-c/cpl_env.h	/^	int    nat_flag;        \/* flag for marking looked up contact as NAT *\/$/;"	m	struct:cpl_enviroment
-nat_flag	modules/registrar/reg_mod.c	/^int nat_flag        = 4;              \/* SER flag marking contacts behind NAT *\/$/;"	v
-nat_uac_test_f	modules/nathelper/nathelper.c	/^nat_uac_test_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-natpingInterval	modules/mediaproxy/mediaproxy.c	/^static int natpingInterval = 60; \/\/ 60 seconds$/;"	v	file:
-natping_interval	modules/nathelper/nathelper.c	/^static int natping_interval = 0;$/;"	v	file:
-nc	parser/digest/digest_parser.h	/^	str nc;                     \/* Nonce count parameter *\/$/;"	m	struct:dig_cred
-net	ip_addr.h	/^struct net{$/;"	s
-net_address	modules/mangler/ip_helper.c	/^net_address (unsigned int ip, unsigned int mask)$/;"	f
-net_list	modules/sms/sms_funcs.h	/^	int  net_list[MAX_NETWORKS];$/;"	m	struct:modem
-net_pipes_in	modules/sms/sms_funcs.c	/^int net_pipes_in[MAX_NETWORKS];$/;"	v
-netaddr	modules/nathelper/nathelper.c	/^	uint32_t netaddr;$/;"	m	file:
-nets_1918	modules/nathelper/nathelper.c	/^} nets_1918[] = {$/;"	v	file:
-network	modules/sms/sms_funcs.h	/^struct network {$/;"	s
-networks	modules/sms/sms_funcs.c	/^struct network networks[MAX_NETWORKS];$/;"	v
-networks_config	modules/sms/sms.c	/^char *networks_config = 0;$/;"	v
-new_cell	modules/pdt/domains.c	/^dc_t* new_cell(char* domain, code_t code)$/;"	f
-new_connection	modules/mysql/my_con.c	/^struct my_con* new_connection(struct my_id* id)$/;"	f
-new_cpl_interpreter	modules/cpl-c/cpl_run.c	/^struct cpl_interpreter* new_cpl_interpreter( struct sip_msg *msg, str *script)$/;"	f
-new_credentials	parser/digest/digest.c	/^static inline int new_credentials(struct hdr_field* _h)$/;"	f	file:
-new_dlg_uac	modules/tm/dlg.c	/^int new_dlg_uac(str* _cid, str* _ltag, unsigned int _lseq, str* _luri, str* _ruri, dlg_t** _d)$/;"	f
-new_dlg_uac	modules/tm/tm_load.h	/^	new_dlg_uac_f      new_dlg_uac;$/;"	m	struct:tm_binds
-new_dlg_uac_f	modules/tm/dlg.h	/^typedef int (*new_dlg_uac_f)(str* _cid, str* _ltag, unsigned int _lseq, str* _luri, str* _ruri, dlg_t** _d);$/;"	t
-new_dlg_uas	modules/tm/dlg.c	/^int new_dlg_uas(struct sip_msg* _req, int _code, \/*str* _tag,*\/ dlg_t** _d)$/;"	f
-new_dlg_uas	modules/tm/tm_load.h	/^	new_dlg_uas_f      new_dlg_uas;$/;"	m	struct:tm_binds
-new_dlg_uas_f	modules/tm/dlg.h	/^typedef int (*new_dlg_uas_f)(struct sip_msg* _req, int _code, dlg_t** _d);$/;"	t
-new_dlist	modules/pa/dlist.c	/^static inline int new_dlist(str* _n, dlist_t** _d)$/;"	f	file:
-new_dlist	modules/usrloc/dlist.c	/^static inline int new_dlist(str* _n, dlist_t** _d)$/;"	f	file:
-new_entry	modules/pdt/domains.c	/^entry_t* new_entry(dc_t* cell)$/;"	f
-new_expression	modules/permissions/rule.c	/^expression *new_expression(char *str) $/;"	f
-new_flat_id	modules/flatstore/flat_id.c	/^struct flat_id* new_flat_id(char* dir, char* table)$/;"	f
-new_func	stats.c	/^	struct sip_snmp_handler* (*new_func)(size_t);$/;"	m	struct:stats_funcs	file:
-new_hash	hash_func.c	/^int new_hash( str call_id, str cseq_nr )$/;"	f
-new_hash2	hash_func.c	/^int new_hash2( str call_id, str cseq_nr )$/;"	f
-new_hash_table	modules/permissions/hash.c	/^struct trusted_list** new_hash_table(void)$/;"	f
-new_ip_node	modules/pike/ip_tree.c	/^static inline struct ip_node *new_ip_node(unsigned char byte)$/;"	f	file:
-new_line	modules/pdt/doc/web/request.php	/^	$new_line ="\\n";	$/;"	v
-new_my_id	modules/mysql/my_id.c	/^struct my_id* new_my_id(const char* url)$/;"	f
-new_passwd	modules/jabber/doc/web/subscribe.php	/^		$new_passwd = "#".$sipname."%";$/;"	v
-new_pdomain	modules/pa/pdomain.c	/^int new_pdomain(str* _n, int _s, pdomain_t** _d, register_watcher_t _r, unregister_watcher_t _u)$/;"	f
-new_presence_tuple	modules/pa/presentity.c	/^int new_presence_tuple(str* _contact, time_t expires, presentity_t *_p, presence_tuple_t ** _t)$/;"	f
-new_presentity	modules/pa/presentity.c	/^int new_presentity(struct pdomain *pdomain, str* _uri, presentity_t** _p)$/;"	f
-new_presentity_no_wb	modules/pa/presentity.c	/^int new_presentity_no_wb(struct pdomain *pdomain, str* _uri, presentity_t** _p)$/;"	f
-new_result	modules/mysql/res.c	/^db_res_t* new_result(void)$/;"	f
-new_result_pg	modules/postgres/db_res.c	/^db_res_t* new_result_pg(char *parent)$/;"	f
-new_rule	modules/permissions/rule.c	/^rule *new_rule(void) $/;"	f
-new_sock2list	socket_info.c	/^int new_sock2list(char* name, unsigned short port, unsigned short proto,$/;"	f
-new_sock_info	socket_info.c	/^static inline struct socket_info* new_sock_info(	char* name,$/;"	f	file:
-new_str	modules/tm/uac_fifo.c	/^static inline struct str_list *new_str(char *s, int len, struct str_list **last, int *total)$/;"	f	file:
-new_str	modules/tm/uac_unixsock.c	/^static inline struct str_list *new_str(char *s, int len, struct str_list **last, int *total)$/;"	f	file:
-new_t	modules/tm/t_lookup.c	/^static inline int new_t(struct sip_msg *p_msg)$/;"	f	file:
-new_tuple_on_publish	modules/pa/pa_mod.c	/^int new_tuple_on_publish = 0;$/;"	v
-new_ucontact	modules/usrloc/ucontact.c	/^int new_ucontact(str* _dom, str* _aor, str* _contact, time_t _e, qvalue_t _q,$/;"	f
-new_udomain	modules/usrloc/udomain.c	/^int new_udomain(str* _n, int _s, udomain_t** _d)$/;"	f
-new_urecord	modules/usrloc/urecord.c	/^int new_urecord(str* _dom, str* _aor, urecord_t** _r)$/;"	f
-new_uri	parser/msg_parser.h	/^	str new_uri; \/* changed first line uri, when you change this$/;"	m	struct:sip_msg
-new_uri_column	modules/speeddial/speeddial.c	/^char* new_uri_column   = "new_uri";$/;"	v
-new_watcher	modules/pa/watcher.c	/^int new_watcher(presentity_t *_p, str* _uri, time_t _e, int event_package, doctype_t _a, dlg_t* _dlg, $/;"	f
-new_watcher_no_wb	modules/pa/watcher.c	/^int new_watcher_no_wb(presentity_t *_p, str* _uri, time_t _e, int event_package, doctype_t _a, dlg_t* _dlg, $/;"	f
-new_watcher_pending	modules/pa/pa_mod.c	/^int new_watcher_pending = 0;$/;"	v
-newtree234	modules/jabber/tree234.c	/^tree234 *newtree234(cmpfn234 cmp) {$/;"	f
-next	data_lump_rpl.h	/^	struct lump_rpl* next;$/;"	m	struct:lump_rpl
-next	fifo_server.h	/^	struct fifo_command *next;$/;"	m	struct:fifo_command
-next	ip_addr.h	/^	struct socket_id* next;$/;"	m	struct:socket_id
-next	ip_addr.h	/^	struct socket_info* next;$/;"	m	struct:socket_info
-next	lump_struct.h	/^	struct lump* next;$/;"	m	struct:lump
-next	modules/acc/diam_message.h	/^	struct avp *next;$/;"	m	struct:avp
-next	modules/auth_diameter/diameter_msg.h	/^	struct avp *next;$/;"	m	struct:avp
-next	modules/avpops/avpops_db.h	/^	struct db_scheme *next;$/;"	m	struct:db_scheme
-next	modules/cpl-c/loc_set.h	/^	struct location *next;$/;"	m	struct:location
-next	modules/cpl-c/sub_list.h	/^	struct node  *next;$/;"	m	struct:node
-next	modules/dbtext/dbt_lib.h	/^	struct _dbt_cache *next;$/;"	m	struct:_dbt_cache
-next	modules/dbtext/dbt_lib.h	/^	struct _dbt_column *next;$/;"	m	struct:_dbt_column
-next	modules/dbtext/dbt_lib.h	/^	struct _dbt_row *next;$/;"	m	struct:_dbt_row
-next	modules/dbtext/dbt_lib.h	/^	struct _tbl_cache *next;	$/;"	m	struct:_tbl_cache
-next	modules/dispatcher/dispatch.c	/^	struct _ds_dest *next;$/;"	m	struct:_ds_dest	file:
-next	modules/dispatcher/dispatch.c	/^	struct _ds_set *next;$/;"	m	struct:_ds_set	file:
-next	modules/dispatcher/dispatch.c	/^	struct _ds_setidx *next;$/;"	m	struct:_ds_setidx	file:
-next	modules/domain/domain_mod.h	/^	struct domain_list *next;$/;"	m	struct:domain_list
-next	modules/flatstore/flat_con.h	/^	struct flat_con* next; \/* Next connection in the pool *\/$/;"	m	struct:flat_con
-next	modules/jabber/xjab_presence.h	/^	struct _xj_pres_cell *next;$/;"	m	struct:_xj_pres_cell
-next	modules/jabber/xode.h	/^     struct xode_struct*  next;$/;"	m	struct:xode_struct
-next	modules/jabber/xode.h	/^    struct xode_spool_node *next;$/;"	m	struct:xode_spool_node
-next	modules/jabber/xpool.c	/^    struct xode_pool_free *next;$/;"	m	struct:xode_pool_free	file:
-next	modules/msilo/ms_msg_list.h	/^	struct _msg_list_el * next;$/;"	m	struct:_msg_list_el
-next	modules/mysql/my_con.h	/^	struct my_con* next; \/* Next connection in the pool *\/$/;"	m	struct:my_con
-next	modules/pa/dlist.h	/^	struct dlist* next;  \/* Next element in the list *\/$/;"	m	struct:dlist
-next	modules/pa/presentity.h	/^	struct presence_tuple *next;$/;"	m	struct:presence_tuple
-next	modules/pa/presentity.h	/^	struct presentity* next; \/* Next presentity *\/$/;"	m	struct:presentity
-next	modules/pa/presentity.h	/^	struct resource_list *next;$/;"	m	struct:resource_list
-next	modules/pa/watcher.h	/^	struct watcher* next;   \/* Next watcher in the list *\/$/;"	m	struct:watcher
-next	modules/permissions/hash.h	/^	struct trusted_list *next;  \/* Next element in the list *\/$/;"	m	struct:trusted_list
-next	modules/permissions/rule.h	/^	struct expression_struct	*next;$/;"	m	struct:expression_struct
-next	modules/permissions/rule.h	/^	struct rule_struct	*next;$/;"	m	struct:rule_struct
-next	modules/pike/ip_tree.h	/^	struct ip_node    *next;$/;"	m	struct:ip_node
-next	modules/pike/timer.h	/^	struct list_link *next;$/;"	m	struct:list_link
-next	modules/tm/h_table.h	/^	struct totag_elem *next;$/;"	m	struct:totag_elem
-next	modules/tm/t_fifo.c	/^	struct hdr_avp *next;$/;"	m	struct:hdr_avp	file:
-next	modules/tm/t_fifo.c	/^	struct tw_append *next;$/;"	m	struct:tw_append	file:
-next	modules/tm/t_hooks.h	/^	struct tm_callback* next;$/;"	m	struct:tm_callback
-next	modules/tm/t_msgbuilder.c	/^	struct rte* next;$/;"	m	struct:rte	file:
-next	modules/tm/uac_fifo.c	/^	struct str_list *next;$/;"	m	struct:str_list	file:
-next	modules/tm/uac_unixsock.c	/^	struct str_list *next;$/;"	m	struct:str_list	file:
-next	modules/usrloc/dlist.h	/^	struct dlist* next;  \/* Next element in the list *\/$/;"	m	struct:dlist
-next	modules/usrloc/notify.h	/^	struct notify_cb* next;$/;"	m	struct:notify_cb
-next	modules/usrloc/ucontact.h	/^	struct ucontact* next;  \/* Next contact in the linked list *\/$/;"	m	struct:ucontact
-next	modules/usrloc/ul_callback.h	/^	struct ul_callback* next;$/;"	m	struct:ul_callback
-next	modules/usrloc/urecord.h	/^		struct urecord* next;  \/* Next item in the list *\/$/;"	m	struct:urecord::<anonymous>
-next	modules/usrloc/urecord.h	/^		struct urecord* next;  \/* Previous item in the linked list *\/$/;"	m	struct:urecord::<anonymous>
-next	modules/xlog/xl_lib.h	/^	struct _xl_elog *next;$/;"	m	struct:_xl_elog
-next	name_alias.h	/^	struct host_alias* next;$/;"	m	struct:host_alias
-next	parser/contact/contact.h	/^        struct contact* next; \/* Next contact in the list *\/$/;"	m	struct:contact
-next	parser/hf.h	/^	struct hdr_field* next; \/* Next header field in the list *\/$/;"	m	struct:hdr_field
-next	parser/parse_content.c	/^	int next;                    \/* the next sibling node *\/$/;"	m	struct:type_node_s	file:
-next	parser/parse_disposition.h	/^	struct disposition_param *next;$/;"	m	struct:disposition_param
-next	parser/parse_param.h	/^	struct param* next;   \/* Next parameter in the list *\/$/;"	m	struct:param
-next	parser/parse_rr.h	/^	struct rr* next;      \/* Next RR in the list *\/$/;"	m	struct:rr
-next	parser/parse_to.h	/^	struct to_param* next; \/* Next parameter in the list *\/$/;"	m	struct:to_param
-next	parser/parse_via.h	/^	struct via_body* next; \/* pointer to next via body string if$/;"	m	struct:via_body
-next	parser/parse_via.h	/^	struct via_param* next; \/* Next parameter in the list *\/$/;"	m	struct:via_param
-next	proxy.h	/^	struct proxy_l* next;$/;"	m	struct:proxy_l
-next	re.h	/^	struct replace_lst *next;$/;"	m	struct:replace_lst
-next	resolve.h	/^	struct rdata* next;$/;"	m	struct:rdata
-next	route_struct.h	/^	struct action* next;$/;"	m	struct:action
-next	script_cb.h	/^	struct script_cb *next;$/;"	m	struct:script_cb
-next	sr_module.h	/^	struct sr_module* next;$/;"	m	struct:sr_module
-next	tcp_conn.h	/^	struct tcp_conn_alias* next;$/;"	m	struct:tcp_conn_alias
-next	tcp_conn.h	/^	struct tcp_req* next;$/;"	m	struct:tcp_req
-next	timer.h	/^	struct sr_timer* next;$/;"	m	struct:sr_timer
-next	unixsock_server.h	/^	struct unixsock_cmd* next;  \/* Next element in the linked list *\/$/;"	m	struct:unixsock_cmd
-next	usr_avp.c	/^	struct avp_galias *next;$/;"	m	struct:avp_galias	file:
-next	usr_avp.h	/^	struct usr_avp *next;$/;"	m	struct:usr_avp
-next_branch	dset.c	/^char* next_branch(int* len, qvalue_t* q, char** dst_uri, int* dst_len)$/;"	f
-next_cell	modules/tm/h_table.h	/^	struct cell*     next_cell;$/;"	m	struct:cell
-next_code	modules/pdt/pdt.c	/^code_t *next_code = NULL;$/;"	v
-next_free	mem/vq_malloc.h	/^	struct vqm_frag* next_free[ MAX_BUCKET +1];$/;"	m	struct:vqm_block
-next_hop	modules/tm/dlg.h	/^	str* next_hop;      \/* Where the message should be really sent *\/$/;"	m	struct:dlg_hooks
-next_label	modules/tm/h_table.h	/^	unsigned int    next_label;$/;"	m	struct:entry
-next_other	modules/exec/exec_hf.h	/^	struct hf_wrapper *next_other;$/;"	m	struct:hf_wrapper
-next_proto	socket_info.h	/^static inline int next_proto(unsigned short proto)$/;"	f
-next_same	modules/exec/exec_hf.h	/^	struct hf_wrapper *next_same;$/;"	m	struct:hf_wrapper
-next_tl	modules/exec/kill.h	/^	struct timer_link *next_tl;$/;"	m	struct:timer_link
-next_tl	modules/tm/timer.h	/^	struct timer_link     *next_tl;$/;"	m	struct:timer_link
-nextb	modules/jabber/xsnprintf.c	/^    char *nextb;                \/* pointer to next byte to read\/write   *\/$/;"	m	struct:buf_area	file:
-nh	modules/tm/dlg.h	/^	str nh;$/;"	m	struct:dlg_hooks
-nick	modules/jabber/xjab_jconf.h	/^	str nick;$/;"	m	struct:_xj_jconf
-niza_CASE	parser/case_orga.h	43;"	d
-nmatch	re.h	/^		int nmatch;$/;"	m	union:replace_with::<anonymous>
-no	mem/f_malloc.h	/^	unsigned long no;$/;"	m	struct:fm_frag_lnk
-no	mem/q_malloc.h	/^	unsigned long no;$/;"	m	struct:qm_frag_lnk
-no_contacts	modules/registrar/save.c	/^static inline int no_contacts(udomain_t* _d, str* _a)$/;"	f	file:
-no_sip_addr_begin	modules/sms/sms_funcs.c	110;"	d	file:
-noanswer	modules/cpl-c/cpl_run.h	/^		char *noanswer;$/;"	m	struct:cpl_interpreter::proxy_st
-noc	modules/sms/libsms_charset.c	17;"	d	file:
-nodb_timer	modules/usrloc/urecord.c	/^static inline int nodb_timer(urecord_t* _r)$/;"	f	file:
-node	modules/cpl-c/sub_list.h	/^struct node {$/;"	s
-node	modules/jabber/xode.h	/^    xode node;$/;"	m	struct:xode_stream_struct
-node	modules/pike/ip_tree.h	/^		struct ip_node *node;$/;"	m	struct:ip_tree::entry
-node234	modules/jabber/tree234.c	/^typedef struct node234_Tag node234;$/;"	t	file:
-node234_Tag	modules/jabber/tree234.c	/^struct node234_Tag {$/;"	s	file:
-noisy_ctimer	modules/tm/timer.c	/^int noisy_ctimer=0;$/;"	v
-nomem	modules/postgres/aug_alloc.c	/^static void nomem(size_t size, char *func, char *file, int line)$/;"	f	file:
-nonc_CASE	parser/digest/param_parser.c	108;"	d	file:
-nonce	parser/digest/digest_parser.h	/^	str nonce;                  \/* Nonce value *\/$/;"	m	struct:dig_cred
-nonce_expire	modules/auth/auth_mod.c	/^int   nonce_expire = 300; \/* Nonce lifetime *\/$/;"	v
-notcb_t	modules/usrloc/notify.h	/^typedef void (*notcb_t)(str* _user, str* _contact, pres_state_t _p, void* _d);$/;"	t
-notify_cb	modules/usrloc/notify.h	/^typedef struct notify_cb {$/;"	s
-notify_cb_t	modules/usrloc/notify.h	/^} notify_cb_t;$/;"	t
-notify_watchers	modules/pa/presentity.c	/^int notify_watchers(presentity_t* _p)$/;"	f
-notify_watchers	modules/usrloc/notify.c	/^void notify_watchers(struct urecord* _r, ucontact_t *_c, int state)$/;"	f
-notify_winfo_watchers	modules/pa/presentity.c	/^int notify_winfo_watchers(presentity_t* _p)$/;"	f
-nr	modules/cpl-c/cpl_time.h	/^	int nr;$/;"	m	struct:_tr_byxxx
-nr	modules/dispatcher/dispatch.c	/^	int nr;$/;"	m	struct:_ds_set	file:
-nr	modules/jabber/xjab_presence.h	/^	int nr;$/;"	m	struct:_xj_pres_list
-nr	modules/jabber/xjab_worker.h	/^	int nr;				\/\/ number of jobs$/;"	m	struct:_xj_worker
-nr_branches	dset.c	/^unsigned int nr_branches = 0;$/;"	v
-nr_clients	modules/extcmd/clients.h	/^int nr_clients = 0;$/;"	v
-nr_logs	modules/cpl-c/cpl_log.c	/^static int  nr_logs;$/;"	v	file:
-nr_of_modems	modules/sms/sms_funcs.c	/^int nr_of_modems;$/;"	v
-nr_of_networks	modules/sms/sms_funcs.c	/^int nr_of_networks;$/;"	v
-nr_of_outgoings	modules/tm/h_table.h	/^	int nr_of_outgoings;$/;"	m	struct:cell
-nr_sons	parser/parse_content.c	/^	unsigned char nr_sons;       \/* the number of sub-nodes *\/$/;"	m	struct:type_node_s	file:
-nrcols	modules/dbtext/dbt_lib.h	/^	int nrcols;$/;"	m	struct:_dbt_table
-nrcols	modules/dbtext/dbt_res.h	/^	int nrcols;$/;"	m	struct:_dbt_result
-nrdone	modules/msilo/ms_msg_list.h	/^	int nrdone;$/;"	m	struct:_msg_list
-nrjconf	modules/jabber/xjab_jcon.h	/^	int nrjconf;		\/\/ number of open conferences$/;"	m	struct:_xj_jcon
-nrrows	modules/dbtext/dbt_lib.h	/^	int nrrows;$/;"	m	struct:_dbt_table
-nrrows	modules/dbtext/dbt_res.h	/^	int nrrows;$/;"	m	struct:_dbt_result
-nrsent	modules/msilo/ms_msg_list.h	/^	int nrsent;$/;"	m	struct:_msg_list
-nrw	modules/jabber/jabber.c	/^int nrw = 2;$/;"	v
-nt_CASE	parser/case_user.h	34;"	d
-nul	db/db_val.h	/^	int nul;                       \/* Means that the column in database$/;"	m
-num_rows	modules/pdt/doc/web/request.php	/^	    $num_rows = mysql_num_rows($result);$/;"	v
-number	parser/parse_cseq.h	/^	str number; \/* CSeq number *\/$/;"	m	struct:cseq_body
-number	route_struct.h	/^		long number;$/;"	m	union:action::<anonymous>
-numberOfLocations	modules/cpl/jcpli.h	/^	int numberOfLocations;$/;"	m	struct:_RedirectMessage
-nxt_free	mem/f_malloc.h	/^		struct fm_frag* nxt_free;$/;"	m	union:fm_frag::<anonymous>
-nxt_free	mem/q_malloc.h	/^		struct qm_frag* nxt_free;$/;"	m	union:qm_frag::<anonymous>
-nxt_free	mem/vq_malloc.h	/^		struct vqm_frag* nxt_free; $/;"	m	union:vqm_frag::<anonymous>
-oUTE	parser/obsolete/strs.h	274;"	d
-oUTe	parser/obsolete/strs.h	273;"	d
-oUtE	parser/obsolete/strs.h	272;"	d
-oUte	parser/obsolete/strs.h	271;"	d
-octet2bin	modules/sms/libsms_getsms.c	/^int octet2bin(char* octet)$/;"	f
-offset	lump_struct.h	/^		int offset; \/* used for DEL, MODIFY *\/$/;"	m	union:lump::<anonymous>
-offset	modules/cpl-c/sub_list.h	/^	char         *offset;$/;"	m	struct:node
-offset	re.h	/^	int offset; \/* offset in string *\/$/;"	m	struct:replace_with
-offset	re.h	/^	int offset;$/;"	m	struct:replace_lst
-ojc	modules/jabber/xjab_util.h	/^	xj_jcon *ojc;				\/\/ the connections to the Jabber$/;"	m	struct:_xj_jcon_pool
-ojc	modules/jabber/xjab_util.h	/^	xj_jcon *ojc;	\/\/ pointer to the connection which will be used on sending$/;"	m	struct:_xj_jmsg_queue
-ok	proxy.h	/^	int ok; \/* 0 on error *\/$/;"	m	struct:proxy_l
-old_cnt	modules/exec/exec_hf.h	/^	int old_cnt;$/;"	m	struct:env
-oldtio	modules/sms/sms_funcs.h	/^	struct termios oldtio;$/;"	m	struct:modem
-on_CASE	parser/case_acce.h	58;"	d
-on_missed	modules/acc/acc_mod.c	/^static inline void on_missed(struct cell *t, struct sip_msg *reply,$/;"	f	file:
-on_negative	modules/tm/h_table.h	/^	unsigned int on_negative;$/;"	m	struct:cell
-on_reply	modules/tm/h_table.h	/^	unsigned int on_reply;$/;"	m	struct:cell
-onbreak_f	sr_module.h	/^	onbreak_function onbreak_f;$/;"	m	struct:module_exports
-onbreak_function	sr_module.h	/^typedef  void (*onbreak_function)(struct sip_msg*);$/;"	t
-one_of_16	modules/nathelper/nhelpr_funcs.c	61;"	d	file:
-one_of_8	modules/nathelper/nhelpr_funcs.c	65;"	d	file:
-onreply_rlist	route.c	/^struct action* onreply_rlist[ONREPLY_RT_NO];$/;"	v
-onreply_route_stm	cfg.y	/^onreply_route_stm: ROUTE_ONREPLY LBRACK NUMBER RBRACK LBRACE actions RBRACE {$/;"	l
-onse_CASE	parser/digest/param_parser.c	117;"	d	file:
-op	lump_struct.h	/^	enum lump_op op;   \/* DEL, ADD, NOP, UNSPEC(=0) *\/$/;"	m	struct:lump
-op	route_struct.h	/^	int op; \/* and, or, not | ==,  =~ *\/$/;"	m	struct:expr
-opaq_CASE	parser/digest/param_parser.c	146;"	d	file:
-opaque	parser/digest/digest_parser.h	/^	str opaque;                 \/* Opaque data string *\/$/;"	m	struct:dig_cred
-open_files_limit	main.c	/^int open_files_limit=-1; \/* don't touch it by default *\/$/;"	v
-open_reply_pipe	fifo_server.c	/^FILE *open_reply_pipe( char *pipe_name )$/;"	f
-openmodem	modules/sms/libsms_modem.c	/^int openmodem( struct modem *mdm)$/;"	f
-operand	route_struct.h	/^		int operand;$/;"	m	union:expr::<anonymous>
-ops_check_avp	modules/avpops/avpops_impl.c	/^int ops_check_avp( struct sip_msg* msg, struct fis_param* ap,$/;"	f
-ops_dbdelete_avps	modules/avpops/avpops_impl.c	/^int ops_dbdelete_avps (struct sip_msg* msg, struct fis_param *sp,$/;"	f
-ops_dbload_avps	modules/avpops/avpops_impl.c	/^int ops_dbload_avps (struct sip_msg* msg, struct fis_param *sp,$/;"	f
-ops_dbstore_avps	modules/avpops/avpops_impl.c	/^int ops_dbstore_avps (struct sip_msg* msg, struct fis_param *sp,$/;"	f
-ops_delete_avp	modules/avpops/avpops_impl.c	/^int ops_delete_avp(struct sip_msg* msg, struct fis_param *ap)$/;"	f
-ops_print_avp	modules/avpops/avpops_impl.c	/^int ops_print_avp()$/;"	f
-ops_pushto_avp	modules/avpops/avpops_impl.c	/^int ops_pushto_avp ( struct sip_msg* msg, struct fis_param* dst,$/;"	f
-ops_write_avp	modules/avpops/avpops_impl.c	/^int ops_write_avp(struct sip_msg* msg, struct fis_param *src,$/;"	f
-opt_reply	modules/options/mod_options.c	/^static int opt_reply(struct sip_msg* _msg, char* _foo, char* _bar) {$/;"	f	file:
-options	modules/postgres/aug_alloc.c	/^	MemOpt *options;$/;"	m	struct:MemHeadStruct	file:
-optz	modules/sms/libsms_modem.c	35;"	d	file:
-order	resolve.h	/^	unsigned short order;$/;"	m	struct:naptr_rdata
-ordering	modules/cpl-c/cpl_run.h	/^		unsigned short ordering;$/;"	m	struct:cpl_interpreter::proxy_st
-orga_CASE	parser/case_orga.h	53;"	d
-organization	modules/cpl-c/cpl_run.h	/^	str *organization;$/;"	m	struct:cpl_interpreter
-organization	parser/msg_parser.h	/^	struct hdr_field* organization;$/;"	m	struct:sip_msg
-orig_host	modules/acc/diam_message.h	/^	AAA_AVP             *orig_host;$/;"	m	struct:_message_t
-orig_host	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP             *orig_host;$/;"	m	struct:_message_t
-orig_realm	modules/acc/diam_message.h	/^	AAA_AVP             *orig_realm;$/;"	m	struct:_message_t
-orig_realm	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP             *orig_realm;$/;"	m	struct:_message_t
-orig_tz	modules/cpl-c/cpl_env.h	/^	str    orig_tz;         \/* a copy of the original TZ; kept as a null$/;"	m	struct:cpl_enviroment
-ouTE	parser/obsolete/strs.h	270;"	d
-ouTe	parser/obsolete/strs.h	269;"	d
-outE	parser/obsolete/strs.h	268;"	d
-oute	parser/obsolete/strs.h	267;"	d
-own_pgid	main.c	/^int own_pgid = 0; \/* whether or not we have our own pgid (and it's ok$/;"	v
-p	modules/jabber/xjab_base.h	/^	void *p;			\/\/ callback parameter$/;"	m	struct:_xj_sipmsg
-p	modules/jabber/xode.h	/^     xode_pool            p;$/;"	m	struct:xode_struct
-p	modules/jabber/xode.h	/^    xode_pool p;$/;"	m	struct:xode_spool_struct
-p	modules/jabber/xode.h	/^    xode_pool p;$/;"	m	struct:xode_stream_struct
-p	modules/pdt/domains.h	/^    struct _entry *p;$/;"	m	struct:_entry
-p1	route_struct.h	/^	}p1, p2, p3;$/;"	m	struct:action
-p1_type	route_struct.h	/^	int p1_type;$/;"	m	struct:action
-p2	route_struct.h	/^	}p1, p2, p3;$/;"	m	struct:action
-p2_type	route_struct.h	/^	int p2_type;$/;"	m	struct:action
-p3	route_struct.h	/^	}p1, p2, p3;$/;"	m	struct:action
-p3_type	route_struct.h	/^	int p3_type;$/;"	m	struct:action
-pa_callback_f	modules/jabber/xjab_base.h	/^typedef void (*pa_callback_f)(str* _user, str* _contact, int _state, void *p);$/;"	t
-pa_child_init	modules/pa/pa_mod.c	/^static int pa_child_init(int _rank)$/;"	f	file:
-pa_db	modules/pa/pa_mod.c	/^db_con_t* pa_db; \/* Database connection handle *\/$/;"	v
-pa_dbf	modules/pa/pa_mod.c	/^db_func_t pa_dbf;$/;"	v
-pa_destroy	modules/pa/pa_mod.c	/^static void pa_destroy(void)$/;"	f	file:
-pa_domain	modules/pa/pa_mod.c	/^str pa_domain;$/;"	v
-pa_extract_aor	modules/pa/subscribe.c	/^int pa_extract_aor(str* _uri, str* _a)$/;"	f
-pa_handle_registration	modules/pa/subscribe.c	/^int pa_handle_registration(struct sip_msg* _m, char* _domain, char* _s2)$/;"	f
-pa_location	modules/pa/unixsock.c	/^static int pa_location(str* msg)$/;"	f	file:
-pa_location_init	modules/pa/location.c	/^int pa_location_init(void)$/;"	f
-pa_mod_init	modules/pa/pa_mod.c	/^static int pa_mod_init(void)$/;"	f	file:
-pa_pidf_priority	modules/pa/pa_mod.c	/^int pa_pidf_priority = 1;$/;"	v
-pa_presence	modules/pa/unixsock.c	/^static int pa_presence(str* msg)$/;"	f	file:
-pa_publish	modules/pa/unixsock.c	/^static int pa_publish(str* msg)$/;"	f	file:
-pa_register_watcher_f	modules/jabber/xjab_load.h	/^typedef int (*pa_register_watcher_f)(str*, str *, void*, void*);$/;"	t
-pa_sig_handler	modules/pa/pa_mod.c	/^void pa_sig_handler(int s) $/;"	f
-pa_unregister_watcher_f	modules/jabber/xjab_load.h	/^typedef int (*pa_unregister_watcher_f)(str*, str *, void*, void*);$/;"	t
-packetType	modules/acc/diam_message.h	/^	} packetType;$/;"	m	struct:avp
-packetType	modules/auth_diameter/diameter_msg.h	/^	} packetType;$/;"	m	struct:avp
-packet_loss	modules/pa/presentity.h	/^	str   packet_loss;$/;"	m	struct:location
-packet_loss_buf	modules/pa/presentity.h	/^	char packet_loss_buf[TUPLE_LOCATION_PACKET_LOSS_LEN];$/;"	m	struct:location
-paerr	modules/pa/paerrno.h	/^typedef enum paerr {$/;"	g
-paerr_t	modules/pa/paerrno.h	/^} paerr_t;$/;"	t
-paerrno	modules/pa/paerrno.c	/^paerr_t paerrno;$/;"	v
-param	fifo_server.h	/^	void *param;$/;"	m	struct:fifo_command
-param	modules/enum/enum_mod.c	/^str param;$/;"	v
-param	modules/tm/t_hooks.h	/^	void **param;$/;"	m	struct:tmcb_params
-param	modules/tm/t_hooks.h	/^	void *param;                 \/* param to be passed to callback function *\/$/;"	m	struct:tm_callback
-param	modules/usrloc/ul_callback.h	/^	void *param;                 \/* param to be passed to callback function *\/$/;"	m	struct:ul_callback
-param	parser/parse_param.h	/^typedef struct param {$/;"	s
-param	route_struct.h	/^		void* param;$/;"	m	union:expr::<anonymous>
-param	script_cb.h	/^	void *param;$/;"	m	struct:script_cb
-param_common_cases	parser/parse_uri.c	189;"	d	file:
-param_common_cases	test/p_uri.c	171;"	d	file:
-param_export_	sr_module.h	/^struct param_export_ {$/;"	s
-param_export_t	sr_module.h	/^typedef struct param_export_ param_export_t;$/;"	t
-param_func_t	sr_module.h	/^typedef int (*param_func_t)( modparam_t type, void* val);$/;"	t
-param_hooks	parser/parse_param.h	/^typedef union param_hooks {$/;"	u
-param_hooks_t	parser/parse_param.h	/^} param_hooks_t;$/;"	t
-param_lst	parser/parse_to.h	/^	struct to_param *param_lst;   \/* Linked list of parameters *\/$/;"	m	struct:to_body
-param_lst	parser/parse_via.h	/^	struct via_param* param_lst;  \/* list of parameters*\/$/;"	m	struct:via_body
-param_no	sr_module.h	/^	int param_no;           \/* number of parameters used by the function *\/$/;"	m	struct:cmd_export_
-param_pointer	sr_module.h	/^	void* param_pointer;    \/* pointer to the param. memory location *\/$/;"	m	struct:param_export_
-param_set	parser/parse_uri.c	151;"	d	file:
-param_set	test/p_uri.c	133;"	d	file:
-param_switch	parser/parse_uri.c	216;"	d	file:
-param_switch	test/p_uri.c	198;"	d	file:
-param_switch1	parser/parse_uri.c	228;"	d	file:
-param_switch1	test/p_uri.c	210;"	d	file:
-param_switch_big	parser/parse_uri.c	239;"	d	file:
-param_switch_big	test/p_uri.c	221;"	d	file:
-param_t	parser/parse_param.h	/^} param_t;$/;"	t
-parameters	modules/mediaproxy/mediaproxy.c	/^static param_export_t parameters[] = {$/;"	v	file:
-params	modules/acc/acc_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/auth/auth_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/auth_db/authdb_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/auth_diameter/auth_diameter.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/auth_radius/authrad_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/avp/avp.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/avp_db/avp_db.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/avp_radius/avp_radius.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/avpops/avpops.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/cpl-c/cpl.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/cpl/cpl.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/dbtext/dbtext.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/dispatcher/dispatcher.c	/^static param_export_t params[]={$/;"	v	file:
-params	modules/diversion/diversion.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/domain/domain_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/enum/enum_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/exec/exec_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/ext/ext.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/extcmd/extcmd.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/flatstore/flatstore_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/gflags/gflags.c	/^static param_export_t params[]={ $/;"	v	file:
-params	modules/group/group_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/group_radius/grouprad_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/jabber/jabber.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/mangler/mangler.c	/^static param_export_t params[] = { $/;"	v	file:
-params	modules/maxfwd/maxfwd.c	/^static param_export_t params[]={$/;"	v	file:
-params	modules/msilo/msilo.c	/^static param_export_t params[]={$/;"	v	file:
-params	modules/mysql/db_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/nathelper/nathelper.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/options/mod_options.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/pa/pa_mod.c	/^static param_export_t params[]={$/;"	v	file:
-params	modules/pdt/pdt.c	/^static param_export_t params[]={$/;"	v	file:
-params	modules/permissions/permissions.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/pike/pike.c	/^static param_export_t params[]={$/;"	v	file:
-params	modules/print/print.c	/^static param_export_t params[]={ $/;"	v	file:
-params	modules/registrar/reg_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/rr/rr_mod.c	/^static param_export_t params[] ={ $/;"	v	file:
-params	modules/sms/sms.c	/^static param_export_t params[]={$/;"	v	file:
-params	modules/speeddial/speeddial.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/textops/textops.c	/^static param_export_t params[]={ {0,0,0} }; \/* no params *\/$/;"	v	file:
-params	modules/tm/tm.c	/^static param_export_t params[]={$/;"	v	file:
-params	modules/uri/uri_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/uri_db/uridb_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/uri_radius/urirad_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/usrloc/ul_mod.c	/^static param_export_t params[] = {$/;"	v	file:
-params	modules/xlog/xlog.c	/^static param_export_t params[]={$/;"	v	file:
-params	parser/contact/contact.h	/^	param_t* params;        \/* List of all parameters *\/$/;"	m	struct:contact
-params	parser/msg_parser.h	/^	str params;   \/* Parameters *\/$/;"	m	struct:sip_uri
-params	parser/parse_disposition.h	/^	struct disposition_param *params;$/;"	m	struct:disposition
-params	parser/parse_rr.h	/^	param_t* params;      \/* Linked list of other parameters *\/$/;"	m	struct:rr
-params	parser/parse_via.h	/^	str params;$/;"	m	struct:via_body
-params	sr_module.h	/^	param_export_t* params;         \/* null terminated array of the exported$/;"	m	struct:module_exports
-params	test/p_uri.c	/^	str params;   \/* Parameters *\/$/;"	m	struct:sip_uri	file:
-parent	modules/jabber/tree234.c	/^    node234 *parent;$/;"	m	struct:node234_Tag	file:
-parent	modules/jabber/xode.h	/^     struct xode_struct*  parent;$/;"	m	struct:xode_struct
-parent	modules/postgres/aug_alloc.c	/^	MemHead *parent, *sibling, *child;$/;"	m	struct:MemHeadStruct	file:
-parent	tcp_conn.h	/^	struct tcp_connection* parent;$/;"	m	struct:tcp_conn_alias
-parseRedirectResponse	modules/cpl/jcpli.c	/^TRedirectMessage* parseRedirectResponse(char *message, int length)$/;"	f
-parseRejectResponse	modules/cpl/jcpli.c	/^TRejectMessage* parseRejectResponse(char *message, int length)$/;"	f
-parse_accept	modules/pa/subscribe.c	/^int parse_accept(struct hdr_field* _h, doctype_t* _a)$/;"	f
-parse_accept_hdr	parser/parse_content.c	/^int parse_accept_hdr( struct sip_msg *msg )$/;"	f
-parse_algorithm	parser/digest/digest_parser.c	/^static inline void parse_algorithm(struct algorithm* _a)$/;"	f	file:
-parse_allow_header	parser/parse_allow.c	/^int parse_allow_header(struct hdr_field* _hf)$/;"	f
-parse_avp_attr	modules/avpops/avpops_parse.c	/^char *parse_avp_attr(char *s, struct fis_param *attr, char end)$/;"	f
-parse_avp_db	modules/avpops/avpops_parse.c	/^int parse_avp_db(char *s, struct db_param *dbp, int allow_scheme)$/;"	f
-parse_avp_db_scheme	modules/avpops/avpops_parse.c	/^int parse_avp_db_scheme( char *s, struct db_scheme *scheme)$/;"	f
-parse_avp_name	usr_avp.c	/^int parse_avp_name( str *name, int *type, int_str *avp_name)$/;"	f
-parse_avp_spec	usr_avp.c	/^int parse_avp_spec( str *name, int *type, int_str *avp_name)$/;"	f
-parse_check_value	modules/avpops/avpops_parse.c	/^struct fis_param* parse_check_value(char *s)$/;"	f
-parse_cmd	unixsock_server.c	/^static int parse_cmd(str* res, str* buffer)$/;"	f	file:
-parse_config_file	modules/permissions/parse_config.c	/^rule *parse_config_file(char *filename) $/;"	f
-parse_config_line	modules/permissions/parse_config.c	/^static rule *parse_config_line(char *line) $/;"	f	file:
-parse_config_lines	modules/sms/sms.c	/^int parse_config_lines()$/;"	f
-parse_contact	parser/contact/parse_contact.c	/^int parse_contact(struct hdr_field* _h)$/;"	f
-parse_contact_class	parser/parse_param.c	/^static inline void parse_contact_class(param_hooks_t* _h, param_t* _p)$/;"	f	file:
-parse_contacts	parser/contact/contact.c	/^int parse_contacts(str* _s, contact_t** _c)$/;"	f
-parse_content_disposition	parser/parse_disposition.c	/^int parse_content_disposition( struct sip_msg *msg )$/;"	f
-parse_content_length	parser/parse_content.c	/^char* parse_content_length( char* buffer, char* end, int* length)$/;"	f
-parse_content_type_hdr	parser/parse_content.c	/^int parse_content_type_hdr( struct sip_msg *msg )$/;"	f
-parse_credentials	parser/digest/digest.c	/^int parse_credentials(struct hdr_field* _h)$/;"	f
-parse_cseq	parser/parse_cseq.c	/^char* parse_cseq(char *buf, char* end, struct cseq_body* cb)$/;"	f
-parse_db_value	db/db_fifo.c	/^static inline int parse_db_value( str *s, db_val_t *val, str **ret_s)$/;"	f	file:
-parse_digest_cred	parser/digest/digest_parser.c	/^int parse_digest_cred(str* _s, dig_cred_t* _c)$/;"	f
-parse_digest_param	parser/digest/digest_parser.c	/^static inline int parse_digest_param(str* _s, dig_cred_t* _c)$/;"	f	file:
-parse_digest_params	parser/digest/digest_parser.c	/^static inline int parse_digest_params(str* _s, dig_cred_t* _c)$/;"	f	file:
-parse_disposition	parser/parse_disposition.c	/^int parse_disposition( str *s, struct disposition *disp)$/;"	f
-parse_diversion_header	parser/parse_diversion.c	/^int parse_diversion_header(struct sip_msg *msg)$/;"	f
-parse_dlg	modules/tm/t_lookup.c	/^static inline int parse_dlg( struct sip_msg *msg )$/;"	f	file:
-parse_event	parser/parse_event.c	/^int parse_event(struct hdr_field* _h)$/;"	f
-parse_expires	parser/parse_expires.c	/^int parse_expires(struct hdr_field* _h)$/;"	f
-parse_expression	modules/permissions/parse_config.c	/^static int parse_expression(char *str, expression **e, expression **e_exceptions) $/;"	f	file:
-parse_expression_list	modules/permissions/parse_config.c	/^static int parse_expression_list(char *str, expression **e) $/;"	f	file:
-parse_first_line	parser/parse_fline.c	/^char* parse_first_line(char* buffer, unsigned int len, struct msg_start * fl)$/;"	f
-parse_flat_url	modules/flatstore/flatstore.c	/^static int parse_flat_url(const char* url, const char** path)$/;"	f	file:
-parse_fline	parser/parse_fline.c	/^char* parse_fline(char* buffer, char* end, struct msg_start* fl)$/;"	f
-parse_from_header	parser/parse_from.c	/^int parse_from_header( struct sip_msg *msg)$/;"	f
-parse_headers	parser/msg_parser.c	/^int parse_headers(struct sip_msg* msg, int flags, int next)$/;"	f
-parse_hfs	modules/pa/publish.c	/^static int parse_hfs(struct sip_msg* _m)$/;"	f	file:
-parse_hfs	modules/pa/subscribe.c	/^static int parse_hfs(struct sip_msg* _m, int accept_header_required)$/;"	f	file:
-parse_hname	parser/msg_parser.c	64;"	d	file:
-parse_hname1	parser/obsolete/parse_hname.c	/^char* parse_hname1(char* p, char* end, struct hdr_field* hdr)$/;"	f
-parse_hname2	parser/parse_hname2.c	/^char* parse_hname2(char* begin, char* end, struct hdr_field* hdr)$/;"	f
-parse_hostport	parser/parse_hostport.c	/^char* parse_hostport(char* buf, str* host, short int* port)$/;"	f
-parse_intstr_value	modules/avpops/avpops_parse.c	/^struct fis_param* parse_intstr_value(char *p, int len)$/;"	f
-parse_ip_address	modules/mangler/ip_helper.c	/^parse_ip_address (char *c, unsigned int *address)	\/\/inet_aton$/;"	f
-parse_ip_netmask	modules/mangler/ip_helper.c	/^parse_ip_netmask (char *c, char **ip, unsigned int *mask)$/;"	f
-parse_message	modules/registrar/sip_msg.c	/^int parse_message(struct sip_msg* _m)$/;"	f
-parse_method	parser/parse_methods.c	/^static int parse_method(str* _next, unsigned int* _method) $/;"	f	file:
-parse_methods	parser/parse_methods.c	/^ int parse_methods(str* _body, unsigned int* _methods)$/;"	f
-parse_msg	parser/msg_parser.c	/^int parse_msg(char* buf, unsigned int len, struct sip_msg* msg)$/;"	f
-parse_mysql_url	modules/mysql/utils.c	/^int parse_mysql_url(char* _url, char** _user, char** _pass,$/;"	f
-parse_nameaddr	parser/parse_nameaddr.c	/^int parse_nameaddr(str* _s, name_addr_t* _a)$/;"	f
-parse_naptr_regexp	modules/enum/enum.c	/^static inline int parse_naptr_regexp(char* first, int len, str* pattern,$/;"	f	file:
-parse_orig_ruri	parser/parse_uri.c	/^int parse_orig_ruri(struct sip_msg* msg)$/;"	f
-parse_param_body	parser/parse_param.c	/^static inline int parse_param_body(str* _s, param_t* _c)$/;"	f	file:
-parse_param_name	parser/digest/param_parser.c	/^int parse_param_name(str* _s, dig_par_t* _type)$/;"	f
-parse_param_name	parser/parse_param.c	/^static inline void parse_param_name(str* _s, pclass_t _c, param_hooks_t* _h, param_t* _p)$/;"	f	file:
-parse_params	parser/parse_param.c	/^int parse_params(str* _s, pclass_t _c, param_hooks_t* _h, param_t** _p)$/;"	f
-parse_phostport	main.c	/^static int parse_phostport(char* s, char** host, int* hlen, int* port,$/;"	f	file:
-parse_pidf	modules/pa/pidf.c	/^int parse_pidf(char *pidf_body, str *contact_str, str *basic_str, str *status_str, $/;"	f
-parse_proto	main.c	/^static int parse_proto(unsigned char* s, long len, int* proto)$/;"	f	file:
-parse_q	modules/cpl-c/cpl_proxy.h	/^static inline int parse_q(str *q, unsigned int *prio)$/;"	f
-parse_qop	parser/digest/digest_parser.c	/^static inline void parse_qop(struct qp* _q)$/;"	f	file:
-parse_quoted	parser/digest/digest_parser.c	/^static inline int parse_quoted(str* _s, str* _r)$/;"	f	file:
-parse_quoted_param	parser/parse_param.c	/^static inline int parse_quoted_param(str* _s, str* _r)$/;"	f	file:
-parse_rpid_header	parser/parse_rpid.c	/^int parse_rpid_header( struct sip_msg *msg )$/;"	f
-parse_rr	parser/parse_rr.c	/^int parse_rr(struct hdr_field* _h)$/;"	f
-parse_rr_body	parser/parse_rr.c	/^int parse_rr_body(char *buf, int len, rr_t **head)$/;"	f
-parse_sip_msg_uri	parser/parse_uri.c	/^int parse_sip_msg_uri(struct sip_msg* msg)$/;"	f
-parse_sipifmatch	parser/parse_sipifmatch.c	/^parse_sipifmatch(struct hdr_field* _h)$/;"	f
-parse_source_uri	modules/avpops/avpops_impl.c	/^static int parse_source_uri(struct sip_msg* msg,int source,struct sip_uri *uri)$/;"	f	file:
-parse_sql_url	modules/postgres/db_utils.c	/^int parse_sql_url(char* _url, char** _user, char** _pass, $/;"	f
-parse_to	parser/parse_to.c	/^char* parse_to(char* buffer, char *end, struct to_body *to_b)$/;"	f
-parse_to_param	parser/parse_to.c	/^static \/*inline*\/ char* parse_to_param(char *buffer, char *end,$/;"	f	file:
-parse_token	parser/digest/digest_parser.c	/^static inline int parse_token(str* _s, str* _r)$/;"	f	file:
-parse_token_list	modules/auth_db/aaa_avps.h	/^parse_token_list(char *p, char *pend, char separator, str **result)$/;"	f
-parse_token_param	parser/parse_param.c	/^static inline int parse_token_param(str* _s, str* _r)$/;"	f	file:
-parse_transid	modules/tm/t_reply.c	/^static int parse_transid(str* s, unsigned int* index, unsigned int* label)$/;"	f	file:
-parse_tw_append	modules/tm/t_fifo.c	/^int parse_tw_append( modparam_t type, void* val)$/;"	f
-parse_uri	parser/parse_uri.c	/^int parse_uri(char *buf, int len, struct sip_uri* uri)$/;"	f
-parse_uri	parser/parse_uri.c	/^int parse_uri(char* buf, int len, struct sip_uri* uri)$/;"	f
-parse_uri	test/p_uri.c	/^int parse_uri(char* buf, int len, struct sip_uri* uri)$/;"	f
-parse_uri_class	parser/parse_param.c	/^static inline void parse_uri_class(param_hooks_t* _h, param_t* _p)$/;"	f	file:
-parse_username	parser/digest/digest_parser.c	/^static inline void parse_username(struct username* _u)$/;"	f	file:
-parse_via	parser/parse_via.c	/^char* parse_via(char* buffer, char* end, struct via_body *vbody)$/;"	f
-parse_via_param	parser/parse_via.c	/^static \/*inline*\/ char* parse_via_param(char* p, char* end,$/;"	f	file:
-parse_via_param	test/via_parse.c	/^__inline char* parse_via_param(char* p, int* pstate, int* psaved_state)$/;"	f
-parsed	parser/hf.h	/^	void* parsed;           \/* Parsed data structures *\/$/;"	m	struct:hdr_field
-parsed	parser/parse_event.h	/^	int parsed;     \/* Parsed variant *\/$/;"	m	struct:event
-parsed	tcp_conn.h	/^	char* parsed; \/* last parsed position *\/$/;"	m	struct:tcp_req
-parsed_flag	parser/msg_parser.h	/^	int parsed_flag;               \/* Already parsed header field types *\/$/;"	m	struct:sip_msg
-parsed_orig_ruri	parser/msg_parser.h	/^	struct sip_uri parsed_orig_ruri;$/;"	m	struct:sip_msg
-parsed_orig_ruri_ok	parser/msg_parser.h	/^	int parsed_orig_ruri_ok;$/;"	m	struct:sip_msg
-parsed_uri	parser/msg_parser.h	/^	struct sip_uri parsed_uri; \/* speed-up > keep here the parsed uri*\/$/;"	m	struct:sip_msg
-parsed_uri_ok	parser/msg_parser.h	/^	int parsed_uri_ok; \/* 1 if parsed_uri is valid, 0 if not, set if to 0$/;"	m	struct:sip_msg
-parser	modules/jabber/xode.h	/^    XML_Parser parser;$/;"	m	struct:xode_stream_struct
-parser_f_h	parser/parser_f.h	35;"	d
-partial_dlg_matching	modules/tm/t_lookup.c	/^static inline int partial_dlg_matching(struct sip_msg *t_msg, struct sip_msg *p_msg)$/;"	f	file:
-pass	modules/pdt/doc/web/request.php	/^$pass="";$/;"	v
-pass_column	modules/auth_db/authdb_mod.c	/^str pass_column      = {PASS_COL, PASS_COL_LEN};$/;"	v
-pass_column_2	modules/auth_db/authdb_mod.c	/^str pass_column_2    = {PASS_COL_2, PASS_COL_2_LEN};$/;"	v
-passwd	modules/jabber/xjab_jconf.h	/^	str passwd;$/;"	m	struct:_xj_jconf
-passwd	parser/msg_parser.h	/^	str passwd;   \/* Password *\/$/;"	m	struct:sip_uri
-passwd	test/p_uri.c	/^	str passwd;   \/* Password *\/$/;"	m	struct:sip_uri	file:
-password	modules/mangler/contact_ops.h	/^	str password;$/;"	m	struct:uri_format
-password	modules/mysql/my_id.h	/^	str password;  \/* Password, case sensitive *\/$/;"	m	struct:my_id
-patch	modules/mangler/utils.c	/^patch (struct sip_msg *msg, char *oldstr, unsigned int oldlen, char *newstr,$/;"	f
-patch_content_length	modules/mangler/utils.c	/^patch_content_length (struct sip_msg *msg, unsigned int newValue)$/;"	f
-path	sr_module.h	/^	char* path;$/;"	m	struct:sr_module
-pathmax	ut.h	/^inline static int pathmax()$/;"	f
-pattern	modules/permissions/hash.h	/^	char *pattern;              \/* Pattern matching From header field *\/$/;"	m	struct:trusted_list
-pclass	parser/parse_param.h	/^typedef enum pclass {$/;"	g
-pclass_t	parser/parse_param.h	/^} pclass_t;$/;"	t
-pdomain	modules/pa/pdomain.h	/^typedef struct pdomain {$/;"	s
-pdomain	modules/pa/presentity.h	/^	struct pdomain *pdomain; $/;"	m	struct:presentity
-pdomain_load_presentities	modules/pa/presentity.c	/^int pdomain_load_presentities(pdomain_t *pdomain)$/;"	f
-pdomain_t	modules/pa/pdomain.h	/^} pdomain_t;$/;"	t
-pdt_dbf	modules/pdt/pdt.c	/^static db_func_t pdt_dbf;$/;"	v	file:
-pdu2ascii	modules/sms/libsms_getsms.c	/^int pdu2ascii(char* pdu, char* ascii)$/;"	f
-pdu2binary	modules/sms/libsms_getsms.c	/^int pdu2binary(char* pdu, char* binary)$/;"	f
-periodicAsymmetricsCheck	modules/mediaproxy/mediaproxy.c	/^periodicAsymmetricsCheck(void)$/;"	f	file:
-perm_dbf	modules/permissions/trusted.c	/^static db_func_t perm_dbf;$/;"	v	file:
-permanent	modules/cpl/jcpli.h	/^	int permanent;$/;"	m	struct:_RedirectMessage
-pflag	modules/pa/presentity.h	/^typedef enum pflag {$/;"	g
-pflag_t	modules/pa/presentity.h	/^} pflag_t;$/;"	t
-pgid_file	globals.h	/^char* pgid_file;$/;"	v
-pgid_file	main.c	/^char* pgid_file = 0;$/;"	v
-phones	modules/pa/presentity.h	/^	resource_list_t *phones;$/;"	m	struct:location_package
-phostport	cfg.y	/^phostport:	listen_id				{ $$=mk_listen_id($1, 0, 0); }$/;"	l
-phrase2code	modules/acc/acc.c	/^inline static UINT4 phrase2code(str *phrase)$/;"	f	file:
-phrase2code	modules/acc/acc.c	/^inline static unsigned long phrase2code(str *phrase)$/;"	f	file:
-pid	modules/exec/kill.h	/^	int pid;$/;"	m	struct:timer_link
-pid	modules/ext/my_exec.h	/^	pid_t pid;$/;"	m	struct:program
-pid	modules/jabber/xjab_worker.h	/^	int pid;			\/\/ process id$/;"	m	struct:_xj_worker
-pid	pt.h	/^	int pid;$/;"	m	struct:process_table
-pid	stats.h	/^	pid_t		pid;$/;"	m	struct:stats_s
-pid	tcp_main.c	/^	pid_t pid;$/;"	m	struct:tcp_child	file:
-pid_file	globals.h	/^char* pid_file;$/;"	v
-pid_file	main.c	/^char* pid_file = 0; \/* filename as asked by use *\/$/;"	v
-pidf_add_contact	modules/pa/pidf.c	/^int pidf_add_contact(str* _b, int _l, str* _addr, double priority)$/;"	f
-pidf_add_location	modules/pa/pidf.c	/^int pidf_add_location(str* _b, int _l, str *_loc, str *_site, str *_floor, str *_room, double _x, double _y, double _radius,$/;"	f
-pidf_add_presentity	modules/pa/pidf.c	/^int pidf_add_presentity(str* _b, int _l, str* _uri)$/;"	f
-pidf_end_status	modules/pa/pidf.c	/^int pidf_end_status(str *_b, int _l)$/;"	f
-pidf_end_tuple	modules/pa/pidf.c	/^int pidf_end_tuple(str* _b, int _l)$/;"	f
-pidf_start_status	modules/pa/pidf.c	/^int pidf_start_status(str *_b, int _l, pidf_status_t _st)$/;"	f
-pidf_start_tuple	modules/pa/pidf.c	/^int pidf_start_tuple(str* _b, str *id, int _l)$/;"	f
-pidf_status	modules/pa/pidf.h	/^typedef enum pidf_status {$/;"	g
-pidf_status_t	modules/pa/pidf.h	/^} pidf_status_t;$/;"	t
-pids	test/dns_query.c	/^int pids[1];$/;"	v
-pike_check_req	modules/pike/pike_funcs.c	/^int pike_check_req(struct sip_msg *msg, char *foo, char *bar)$/;"	f
-pike_exit	modules/pike/pike.c	/^static int pike_exit(void)$/;"	f	file:
-pike_init	modules/pike/pike.c	/^static int pike_init(void)$/;"	f	file:
-pin	modules/sms/sms_funcs.h	/^	char pin[MAX_CHAR_BUF+1];$/;"	m	struct:modem
-pingClients	modules/mediaproxy/functions.h	/^pingClients(unsigned int ticks, void *param)$/;"	f
-ping_interval	modules/mysql/db_mod.c	/^int ping_interval = 5 * 60; \/* Default is 5 minutes *\/$/;"	v
-ping_nated_only	modules/nathelper/nathelper.c	/^static int ping_nated_only = 0;$/;"	v	file:
-pipe_out	modules/sms/sms_funcs.h	/^	int  pipe_out;$/;"	m	struct:network
-pipes	modules/jabber/jabber.c	/^int **pipes = NULL;$/;"	v
-pkg_free	mem/mem.h	103;"	d
-pkg_free	mem/mem.h	107;"	d
-pkg_free	mem/mem.h	120;"	d
-pkg_free	mem/mem.h	128;"	d
-pkg_free	mem/mem.h	78;"	d
-pkg_free	mem/mem.h	84;"	d
-pkg_free	mem/mem.h	93;"	d
-pkg_free	mem/mem.h	99;"	d
-pkg_malloc	mem/mem.h	101;"	d
-pkg_malloc	mem/mem.h	105;"	d
-pkg_malloc	mem/mem.h	119;"	d
-pkg_malloc	mem/mem.h	124;"	d
-pkg_malloc	mem/mem.h	76;"	d
-pkg_malloc	mem/mem.h	82;"	d
-pkg_malloc	mem/mem.h	89;"	d
-pkg_malloc	mem/mem.h	98;"	d
-pkg_realloc	mem/mem.h	102;"	d
-pkg_realloc	mem/mem.h	106;"	d
-pkg_realloc	mem/mem.h	86;"	d
-pkg_realloc	mem/mem.h	91;"	d
-pkg_status	mem/mem.h	111;"	d
-pkg_status	mem/mem.h	113;"	d
-pkg_status	mem/mem.h	115;"	d
-pkg_status	mem/mem.h	121;"	d
-pkg_status	mem/mem.h	129;"	d
-place	modules/pa/pa.sql	/^create table place($/;"	t
-place_holder	modules/tm/t_dlg.h	/^	int place_holder;$/;"	m	struct:dialog
-place_table	modules/pa/pa_mod.c	/^char *place_table = "place";$/;"	v
-placeid	modules/pa/location.c	/^     int placeid;$/;"	m	struct:location_placeid_row	file:
-places_initialized	modules/pa/location.c	/^static int places_initialized = 0;$/;"	v	file:
-plist	modules/jabber/xjab_jcon.h	/^	xj_pres_list plist;	\/\/ presence list$/;"	m	struct:_xj_jcon
-pool	modules/flatstore/flat_pool.c	/^static struct flat_con* pool = 0;$/;"	v	file:
-pool	modules/mysql/my_pool.c	/^static struct my_con* pool = 0;$/;"	v	file:
-pool_pid	modules/flatstore/flat_pool.c	/^static int pool_pid;$/;"	v	file:
-pool_pid	modules/mysql/my_pool.c	/^static int pool_pid;$/;"	v	file:
-port	cfg.y	/^port:	  NUMBER	{ $$=$1; }$/;"	l
-port	ip_addr.h	/^	int port;$/;"	m	struct:socket_id
-port	modules/jabber/xjab_jcon.h	/^	int port;			\/\/ port of the server$/;"	m	struct:_xj_jcon
-port	modules/mangler/contact_ops.h	/^	str port;$/;"	m	struct:uri_format
-port	modules/mediaproxy/mediaproxy.c	/^    str port;$/;"	m	file:
-port	modules/mysql/my_id.h	/^	unsigned short port; \/* Port number *\/$/;"	m	struct:my_id
-port	msg_translator.h	/^	str* port;$/;"	m	struct:hostport
-port	name_alias.h	/^	unsigned short port;$/;"	m	struct:host_alias
-port	parser/msg_parser.h	/^	str port;     \/* Port number *\/$/;"	m	struct:sip_uri
-port	parser/parse_via.h	/^	int port;$/;"	m	struct:via_body
-port	proxy.h	/^	unsigned short port;$/;"	m	struct:proxy_l
-port	resolve.h	/^	unsigned short port;$/;"	m	struct:srv_rdata
-port	tcp_conn.h	/^	unsigned short port; \/* alias port *\/$/;"	m	struct:tcp_conn_alias
-port	test/p_uri.c	/^	str port;     \/* Port number *\/$/;"	m	struct:sip_uri	file:
-portExpression	modules/mangler/sdp_mangler.h	/^regex_t *portExpression;$/;"	v
-port_no	ip_addr.h	/^	unsigned short port_no;  \/* port number *\/$/;"	m	struct:socket_info
-port_no	main.c	/^unsigned short port_no=0; \/* default port*\/$/;"	v
-port_no	parser/msg_parser.h	/^	unsigned short port_no;$/;"	m	struct:sip_uri
-port_no	test/p_uri.c	/^	unsigned short port_no;$/;"	m	struct:sip_uri	file:
-port_no_str	ip_addr.h	/^	str port_no_str; \/* port number converted to string -- optimization*\/$/;"	m	struct:socket_info
-port_str	parser/parse_via.h	/^	str port_str;$/;"	m	struct:via_body
-pos	tcp_conn.h	/^	char* pos; \/* current position in buf *\/$/;"	m	struct:tcp_req
-post_auth	modules/auth/api.c	/^auth_result_t post_auth(struct sip_msg* _m, struct hdr_field* _h, str* _rpid)$/;"	f
-post_auth_f	modules/auth/api.h	/^typedef auth_result_t (*post_auth_f)(struct sip_msg* _m, struct hdr_field* _h, str* _rpid);$/;"	t
-post_auth_func	modules/auth_db/authdb_mod.c	/^post_auth_f post_auth_func = 0;$/;"	v
-post_auth_func	modules/auth_radius/authrad_mod.c	/^post_auth_f post_auth_func = 0; \/* Post authorization function from auth module *\/$/;"	v
-post_cb	script_cb.c	/^static struct script_cb *post_cb=0;$/;"	v	file:
-pre_auth	modules/auth/api.c	/^auth_result_t pre_auth(struct sip_msg* _m, str* _realm, int _hftype, struct hdr_field** _h)$/;"	f
-pre_auth	modules/auth_diameter/authorize.c	/^auth_result_t pre_auth(struct sip_msg* _m, str* _realm, int _hftype, struct hdr_field** _h)$/;"	f
-pre_auth_f	modules/auth/api.h	/^typedef auth_result_t (*pre_auth_f)(struct sip_msg* _m, str* _realm, int _hftype, struct hdr_field** _h);$/;"	t
-pre_auth_func	modules/auth_db/authdb_mod.c	/^pre_auth_f pre_auth_func = 0;$/;"	v
-pre_auth_func	modules/auth_radius/authrad_mod.c	/^pre_auth_f pre_auth_func = 0;   \/* Pre authorization function from auth module *\/$/;"	v
-pre_cb	script_cb.c	/^static struct script_cb *pre_cb=0;$/;"	v	file:
-pref	resolve.h	/^	unsigned short pref;$/;"	m	struct:naptr_rdata
-prefix	modules/exec/exec_hf.h	/^	char *prefix;$/;"	m	struct:hf_wrapper
-prefix	modules/pdt/pdt.c	/^char *prefix = NULL;$/;"	v
-prefix2domain	modules/pdt/pdt.c	/^static int prefix2domain(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-prefix_len	modules/exec/exec_hf.h	/^	int prefix_len;$/;"	m	struct:hf_wrapper
-prefix_len	modules/pdt/pdt.c	/^code_t prefix_len = 0;$/;"	v
-prefix_valid	modules/pdt/pdt.c	/^inline int prefix_valid()$/;"	f
-preload_udomain	modules/usrloc/udomain.c	/^int preload_udomain(db_con_t* _c, udomain_t* _d)$/;"	f
-prepare	modules/mangler/mangler.c	/^prepare ()$/;"	f
-prepare_selection	modules/avpops/avpops_db.c	/^static inline int prepare_selection( str *uuid, str *username, str *domain,$/;"	f	file:
-pres_state	modules/usrloc/notify.h	/^typedef enum pres_state {$/;"	g
-pres_state_t	modules/usrloc/notify.h	/^} pres_state_t;$/;"	t
-prescap_names	modules/pa/pidf.c	/^const char *prescap_names[] = {$/;"	v
-prescaps	modules/pa/presentity.h	/^	enum prescaps prescaps;$/;"	m	struct:presence_tuple
-prescaps	modules/pa/presentity.h	/^enum prescaps {$/;"	g
-presence_agent	scripts/sc	/^presence_agent() {$/;"	f
-presence_tuple	modules/pa/presentity.h	/^typedef struct presence_tuple {$/;"	s
-presence_tuple_t	modules/pa/presentity.h	/^} presence_tuple_t;$/;"	t
-presentity	modules/pa/pa.sql	/^CREATE TABLE presentity ($/;"	t
-presentity	modules/pa/presentity.h	/^typedef struct presentity {$/;"	s
-presentity_contact	modules/pa/pa.sql	/^CREATE TABLE presentity_contact ($/;"	t
-presentity_contact_table	modules/pa/pa_mod.c	/^char *presentity_contact_table = "presentity_contact";$/;"	v
-presentity_t	modules/pa/presentity.h	/^} presentity_t;$/;"	t
-presentity_table	modules/pa/pa_mod.c	/^char *presentity_table = "presentity";$/;"	v
-presid	modules/pa/presentity.h	/^	int presid;              \/* presid of the record in the presentity table *\/$/;"	m	struct:presentity
-prev	ip_addr.h	/^	struct socket_info* prev;$/;"	m	struct:socket_info
-prev	modules/acc/diam_message.h	/^	struct avp *prev;$/;"	m	struct:avp
-prev	modules/auth_diameter/diameter_msg.h	/^	struct avp *prev;$/;"	m	struct:avp
-prev	modules/dbtext/dbt_lib.h	/^	struct _dbt_cache *prev;$/;"	m	struct:_dbt_cache
-prev	modules/dbtext/dbt_lib.h	/^	struct _dbt_column *prev;$/;"	m	struct:_dbt_column
-prev	modules/dbtext/dbt_lib.h	/^	struct _dbt_row *prev;$/;"	m	struct:_dbt_row
-prev	modules/dbtext/dbt_lib.h	/^	struct _tbl_cache *prev;$/;"	m	struct:_tbl_cache
-prev	modules/jabber/xjab_presence.h	/^	struct _xj_pres_cell *prev;$/;"	m	struct:_xj_pres_cell
-prev	modules/jabber/xode.h	/^     struct xode_struct*  prev; $/;"	m	struct:xode_struct
-prev	modules/msilo/ms_msg_list.h	/^	struct _msg_list_el * prev;$/;"	m	struct:_msg_list_el
-prev	modules/pa/presentity.h	/^	struct presence_tuple *prev;$/;"	m	struct:presence_tuple
-prev	modules/pa/presentity.h	/^	struct presentity* prev; \/* Previous presentity in list *\/$/;"	m	struct:presentity
-prev	modules/pa/presentity.h	/^	struct resource_list *prev;$/;"	m	struct:resource_list
-prev	modules/pike/ip_tree.h	/^	struct ip_node    *prev;$/;"	m	struct:ip_node
-prev	modules/pike/timer.h	/^	struct list_link *prev;$/;"	m	struct:list_link
-prev	modules/usrloc/ucontact.h	/^	struct ucontact* prev;  \/* Previous contact in the linked list *\/$/;"	m	struct:ucontact
-prev	modules/usrloc/urecord.h	/^		struct urecord* prev;  \/* Next item in the linked list *\/$/;"	m	struct:urecord::<anonymous>
-prev	modules/usrloc/urecord.h	/^		struct urecord* prev;  \/* Previous item in the list *\/$/;"	m	struct:urecord::<anonymous>
-prev	tcp_conn.h	/^	struct tcp_conn_alias* prev;$/;"	m	struct:tcp_conn_alias
-prev_cell	modules/tm/h_table.h	/^	struct cell*     prev_cell;$/;"	m	struct:cell
-prev_free	mem/q_malloc.h	/^	struct qm_frag* prev_free;$/;"	m	struct:qm_frag_end
-prev_ser_error	error.c	/^int prev_ser_error=-1;$/;"	v
-prev_tl	modules/exec/kill.h	/^	struct timer_link *prev_tl;$/;"	m	struct:timer_link
-prev_tl	modules/tm/timer.h	/^	struct timer_link     *prev_tl;$/;"	m	struct:timer_link
-printRedirectMessage	modules/cpl/jcpli.c	/^void printRedirectMessage(TRedirectMessage *redMessage)$/;"	f
-printRejectMessage	modules/cpl/jcpli.c	/^void printRejectMessage(TRejectMessage *rejMessage)$/;"	f
-print_action	route_struct.c	/^void print_action(struct action* a)$/;"	f
-print_aliases	socket_info.c	/^void print_aliases()$/;"	f
-print_all_pdomains	modules/pa/dlist.c	/^void print_all_pdomains(FILE* _f)$/;"	f
-print_all_socket_lists	socket_info.c	/^void print_all_socket_lists()$/;"	f
-print_all_udomains	modules/usrloc/dlist.c	/^void print_all_udomains(FILE* _f)$/;"	f
-print_av_var	modules/exec/exec_hf.c	/^static int print_av_var(struct hf_wrapper *w)$/;"	f	file:
-print_callid	modules/tm/t_msgbuilder.c	/^static inline char* print_callid(char* w, dlg_t* dialog, struct cell* t)$/;"	f	file:
-print_callid_mini	modules/tm/t_msgbuilder.c	/^char* print_callid_mini(char* target, str callid) {$/;"	f
-print_cmd	unixsock_server.c	/^static int print_cmd(str* msg)$/;"	f	file:
-print_columns	modules/mysql/dbase.c	/^static int print_columns(char* _b, int _l, db_key_t* _c, int _n)$/;"	f	file:
-print_columns	modules/postgres/dbase.c	/^static int print_columns(char* _b, int _l, db_key_t* _c, int _n)$/;"	f	file:
-print_contact	parser/contact/parse_contact.c	/^void print_contact(FILE* _o, contact_body_t* _c)$/;"	f
-print_contacts	modules/usrloc/ul_fifo.c	/^static inline int print_contacts(FILE* _o, ucontact_t* _c)$/;"	f	file:
-print_contacts	modules/usrloc/ul_unixsock.c	/^static inline int print_contacts(ucontact_t* _c)$/;"	f	file:
-print_contacts	parser/contact/contact.c	/^void print_contacts(FILE* _o, contact_t* _c)$/;"	f
-print_content_length	modules/tm/t_msgbuilder.c	/^static inline int print_content_length(str* dest, str* body)$/;"	f	file:
-print_cred	parser/digest/digest.c	/^void print_cred(dig_cred_t* _c)$/;"	f
-print_cseq	modules/tm/t_msgbuilder.c	/^static inline char* print_cseq(char* w, str* cseq, str* method, struct cell* t)$/;"	f	file:
-print_cseq_mini	modules/tm/t_msgbuilder.c	/^char* print_cseq_mini(char* target, str* cseq, str* method) {$/;"	f
-print_cseq_num	modules/tm/t_msgbuilder.c	/^static inline int print_cseq_num(str* _s, dlg_t* _d)$/;"	f	file:
-print_ct_constants	main.c	/^void print_ct_constants()$/;"	f
-print_disposition	parser/parse_disposition.c	/^void print_disposition( struct disposition *disp)$/;"	f
-print_dlg	modules/tm/dlg.c	/^void print_dlg(FILE* out, dlg_t* _d)$/;"	f
-print_dlg	modules/tm/tm_load.h	/^	print_dlg_f        print_dlg;$/;"	m	struct:tm_binds
-print_dlg_f	modules/tm/dlg.h	/^typedef void (*print_dlg_f)(FILE* out, dlg_t* _d);$/;"	t
-print_dset	dset.c	/^char* print_dset(struct sip_msg* msg, int* len) $/;"	f
-print_event	parser/parse_event.c	/^void print_event(event_t* _e)$/;"	f
-print_expires	parser/parse_expires.c	/^void print_expires(exp_body_t* _e)$/;"	f
-print_expr	route_struct.c	/^void print_expr(struct expr* exp)$/;"	f
-print_expression	modules/permissions/rule.c	/^void print_expression(expression *e) $/;"	f
-print_f	modules/print/print.c	/^static int print_f(struct sip_msg* msg, char* str, char* str2)$/;"	f	file:
-print_fifo_cmd	fifo_server.c	/^static int print_fifo_cmd( FILE *stream, char *response_file )$/;"	f	file:
-print_from	modules/tm/t_msgbuilder.c	/^static inline char* print_from(char* w, dlg_t* dialog, struct cell* t)$/;"	f	file:
-print_hash	modules/pdt/domains.c	/^void print_hash(h_entry_t* hash, unsigned int hash_size)$/;"	f
-print_hf_var	modules/exec/exec_hf.c	/^static int print_hf_var(struct hf_wrapper *w, int offset)$/;"	f	file:
-print_ip	ip_addr.c	/^void print_ip(char* p, struct ip_addr* ip, char *s)$/;"	f
-print_location_set	modules/cpl-c/loc_set.h	/^static inline void print_location_set(struct location *loc_set)$/;"	f
-print_nameaddr	parser/parse_nameaddr.c	/^void print_nameaddr(FILE* _o, name_addr_t* _a)$/;"	f
-print_net	ip_addr.c	/^void print_net(struct net* net)$/;"	f
-print_node	modules/pike/ip_tree.c	/^void print_node(struct ip_node *node,int sp, FILE *f)$/;"	f
-print_param	parser/parse_param.c	/^static inline void print_param(FILE* _o, param_t* _p)$/;"	f	file:
-print_params	parser/parse_param.c	/^void print_params(FILE* _o, param_t* _p)$/;"	f
-print_pdomain	modules/pa/pdomain.c	/^void print_pdomain(FILE* _f, pdomain_t* _d)$/;"	f
-print_presentity	modules/pa/presentity.c	/^void print_presentity(FILE* _f, presentity_t* _p)$/;"	f
-print_request_uri	modules/tm/t_msgbuilder.c	/^static inline char* print_request_uri(char* w, str* method, dlg_t* dialog, struct cell* t, int branch)$/;"	f	file:
-print_res	db/db_fifo.c	/^static inline void print_res(db_res_t* res, FILE *rpl)$/;"	f	file:
-print_res	db/example/dbexample.c	/^static int print_res(db_res_t* _r)$/;"	f	file:
-print_res	modules/dbtext/dbtex/dbtex.c	/^static int print_res(db_res_t* _r)$/;"	f	file:
-print_rl	route.c	/^void print_rl()$/;"	f
-print_routes	modules/tm/uac_fifo.c	/^static inline void print_routes(FILE* out, dlg_t* _d)$/;"	f	file:
-print_routes	modules/tm/uac_unixsock.c	/^static void print_routes(dlg_t* _d)$/;"	f	file:
-print_routeset	modules/tm/dlg.c	/^char* print_routeset(char* buf, dlg_t* _d)$/;"	f
-print_rr	parser/parse_rr.c	/^void print_rr(FILE* _o, rr_t* _r)$/;"	f
-print_rs	modules/tm/t_msgbuilder.c	/^static inline char* print_rs(char* p, struct rte* list, str* contact)$/;"	f	file:
-print_rule	modules/permissions/rule.c	/^void print_rule(rule *r) $/;"	f
-print_sattr	modules/avp/avp.c	/^static int print_sattr(struct sip_msg* msg, char* attr, char* s2)$/;"	f	file:
-print_set	modules/mysql/dbase.c	/^static int print_set(MYSQL* _c, char* _b, int _l, db_key_t* _k, db_val_t* _v, int _n)$/;"	f	file:
-print_set	modules/postgres/dbase.c	/^static int print_set(char* _b, int _l, db_key_t* _k,$/;"	f	file:
-print_sl_stats	modules/sl/sl_stats.c	/^static int print_sl_stats(FILE *reply_file)$/;"	f	file:
-print_sockaddr	test/ifls.c	/^void print_sockaddr(struct sockaddr* sa)$/;"	f
-print_stats	modules/postgres/serpgctl	/^print_stats() {$/;"	f
-print_stats	modules/tm/t_stats.c	/^int print_stats(  FILE *f )$/;"	f
-print_stats	scripts/sc	/^print_stats() {$/;"	f
-print_stats	scripts/sc_unixsock	/^print_stats() {$/;"	f
-print_status	scripts/sc	/^print_status() {$/;"	f
-print_status	scripts/sc_unixsock	/^print_status() {$/;"	f
-print_timer_list	modules/pike/pike_funcs.c	/^void print_timer_list(struct list_link *head)$/;"	f
-print_timer_list	modules/tm/timer.c	/^void print_timer_list( enum lists list_id)$/;"	f
-print_to	modules/tm/t_msgbuilder.c	/^static inline char* print_to(char* w, dlg_t* dialog, struct cell* t)$/;"	f	file:
-print_tree	modules/pike/ip_tree.c	/^void print_tree(  FILE *f )$/;"	f
-print_tw_append	modules/tm/t_fifo.c	/^static void print_tw_append( struct tw_append *append)$/;"	f	file:
-print_uac_request	modules/tm/t_fwd.c	/^char *print_uac_request( struct cell *t, struct sip_msg *i_req,$/;"	f
-print_ucontact	modules/usrloc/ucontact.c	/^void print_ucontact(FILE* _f, ucontact_t* _c)$/;"	f
-print_udomain	modules/usrloc/udomain.c	/^void print_udomain(FILE* _f, udomain_t* _d)$/;"	f
-print_ul_stats	modules/usrloc/ul_fifo.c	/^static int print_ul_stats(FILE *reply_file)$/;"	f	file:
-print_urecord	modules/usrloc/urecord.c	/^void print_urecord(FILE* _f, urecord_t* _r)$/;"	f
-print_uris	modules/tm/uac_fifo.c	/^static inline int print_uris(FILE* out, struct sip_msg* reply)$/;"	f	file:
-print_uris	modules/tm/uac_unixsock.c	/^static int print_uris(struct sip_msg* reply)$/;"	f	file:
-print_values	modules/mysql/dbase.c	/^static int print_values(MYSQL* _c, char* _b, int _l, db_val_t* _v, int _n)$/;"	f	file:
-print_values	modules/postgres/dbase.c	/^static int print_values(char* _b, int _l, db_val_t* _v, int _n)$/;"	f	file:
-print_var	modules/exec/exec_hf.c	/^static int print_var(struct hf_wrapper *w, int offset)$/;"	f	file:
-print_version_cmd	fifo_server.c	/^static int print_version_cmd( FILE *stream, char *response_file )$/;"	f	file:
-print_watcher	modules/pa/watcher.c	/^void print_watcher(FILE* _f, watcher_t* _w)$/;"	f
-print_where	modules/mysql/dbase.c	/^static int print_where(MYSQL* _c, char* _b, int _l, db_key_t* _k, db_op_t* _o, db_val_t* _v, int _n)$/;"	f	file:
-print_where	modules/postgres/dbase.c	/^static int print_where(char* _b, int _l, db_key_t* _k,$/;"	f	file:
-prio_CASE	parser/case_prio.h	43;"	d
-priority	modules/cpl-c/cpl_run.h	/^	str *priority;$/;"	m	struct:cpl_interpreter
-priority	modules/cpl-c/loc_set.h	/^		unsigned int priority;$/;"	m	struct:location::address
-priority	modules/cpl/jcpli.h	/^	float priority;$/;"	m	struct:_Location
-priority	modules/pa/presentity.h	/^	double priority;$/;"	m	struct:presence_tuple
-priority	parser/msg_parser.h	/^	struct hdr_field* priority;$/;"	m	struct:sip_msg
-priority	resolve.h	/^	unsigned short priority;$/;"	m	struct:srv_rdata
-probe_max_receive_buffer	udp_server.c	/^int probe_max_receive_buffer( int udp_sock )$/;"	f
-proc	modules/mediaproxy/mediaproxy.c	/^    NatTestProc proc;$/;"	m	file:
-proc_no	tcp_main.c	/^	int proc_no; \/* ser proc_no, for debugging *\/$/;"	m	struct:tcp_child	file:
-processResponseMessage	modules/cpl/jcpli.c	/^void processResponseMessage(char* msgBuff, int msgLen, int msgType)$/;"	f
-process_bm_t	types.h	/^typedef unsigned int process_bm_t;$/;"	t
-process_count	pt.h	/^inline static int process_count()$/;"	f
-process_index	stats.h	/^	unsigned int	process_index;$/;"	m	struct:stats_s
-process_lumps	msg_translator.c	/^static inline void process_lumps(	struct sip_msg* msg,$/;"	f	file:
-process_no	main.c	/^int process_no = 0;$/;"	v
-process_no	test/dns_query.c	/^int process_no=0;$/;"	v
-process_routeset	modules/tm/t_msgbuilder.c	/^static inline int process_routeset(struct sip_msg* msg, str* contact, struct rte** list, str* ruri, str* next_hop)$/;"	f	file:
-process_table	pt.h	/^struct process_table {$/;"	s
-processed_requests	stats.h	/^	processed_requests,$/;"	m	struct:stats_s
-processed_responses	stats.h	/^	processed_responses,$/;"	m	struct:stats_s
-program	modules/ext/my_exec.h	/^struct program$/;"	s
-prompt_pw	modules/postgres/serpgctl	/^prompt_pw() {$/;"	f
-prompt_pw	scripts/sc	/^prompt_pw() {$/;"	f
-prompt_pw	scripts/sc_unixsock	/^prompt_pw() {$/;"	f
-prompt_pw	scripts/ser_mysql.sh	/^prompt_pw()$/;"	f
-prompt_realm	scripts/ser_mysql.sh	/^prompt_realm()$/;"	f
-proto	cfg.y	/^proto:	  UDP	{ $$=PROTO_UDP; }$/;"	l
-proto	ip_addr.h	/^	int proto; \/* tcp or udp*\/$/;"	m	struct:socket_info
-proto	ip_addr.h	/^	int proto;$/;"	m	struct:dest_info
-proto	ip_addr.h	/^	int proto;$/;"	m	struct:receive_info
-proto	ip_addr.h	/^	int proto;$/;"	m	struct:socket_id
-proto	modules/permissions/hash.h	/^	int proto;                  \/* Protocol -- UDP, TCP, TLS, or SCTP *\/$/;"	m	struct:trusted_list
-proto	name_alias.h	/^	unsigned short proto;$/;"	m	struct:host_alias
-proto	parser/msg_parser.h	/^	unsigned short proto; \/* from transport *\/$/;"	m	struct:sip_uri
-proto	parser/parse_via.h	/^	int proto; \/* transport *\/$/;"	m	struct:via_body
-proto	proxy.h	/^	int proto;$/;"	m	struct:proxy_l
-proto	test/p_uri.c	/^	unsigned short proto; \/* from transport *\/$/;"	m	struct:sip_uri	file:
-proto_col	modules/permissions/permissions.c	/^char* proto_col = "proto";         \/* Name of protocol column *\/$/;"	v
-proto_reserved1	ip_addr.h	/^	int proto_reserved1; \/* tcp stores the connection id here *\/ $/;"	m	struct:dest_info
-proto_reserved1	ip_addr.h	/^	int proto_reserved1; \/* tcp stores the connection id here *\/$/;"	m	struct:receive_info
-proto_reserved2	ip_addr.h	/^	int proto_reserved2;$/;"	m	struct:receive_info
-protocol	modules/mangler/contact_ops.h	/^	str protocol;$/;"	m	struct:uri_format
-prox_CASE	parser/case_prox.h	105;"	d
-proxies	proxy.c	/^struct proxy_l* proxies=0;$/;"	v
-proxy	modules/cpl-c/cpl_run.h	/^	}proxy;$/;"	m	struct:cpl_interpreter
-proxy	modules/jabber/jabber.c	/^char *proxy	   = NULL;$/;"	v
-proxy	modules/jabber/xjab_worker.h	/^	str *proxy; \/\/ outbound proxy$/;"	m	struct:_xj_jalias
-proxy_auth	parser/msg_parser.h	/^	struct hdr_field* proxy_auth;$/;"	m	struct:sip_msg
-proxy_authorize	modules/auth_db/authorize.c	/^int proxy_authorize(struct sip_msg* _m, char* _realm, char* _table)$/;"	f
-proxy_challenge	modules/auth/challenge.c	/^int proxy_challenge(struct sip_msg* _msg, char* _realm, char* _qop)$/;"	f
-proxy_h	proxy.h	36;"	d
-proxy_l	proxy.h	/^struct proxy_l{$/;"	s
-proxy_recurse	modules/cpl-c/cpl_env.h	/^	int    proxy_recurse;   \/* numbers of proxy redirection accepted *\/$/;"	m	struct:cpl_enviroment
-proxy_require	parser/msg_parser.h	/^	struct hdr_field* proxy_require;$/;"	m	struct:sip_msg
-proxy_route	modules/cpl-c/cpl_env.h	/^	int    proxy_route;     \/* script route to be run before proxy *\/$/;"	m	struct:cpl_enviroment
-proxy_st	modules/cpl-c/cpl_run.h	/^	struct proxy_st {$/;"	s	struct:cpl_interpreter
-prv_free	mem/vq_malloc.h	/^	struct vqm_frag* prv_free;$/;"	m	struct:vqm_frag_end
-prv_get_tree_branch	modules/pike/ip_tree.c	/^static inline struct ip_node* prv_get_tree_branch(unsigned char b)$/;"	f	file:
-prv_lock_tree_branch	modules/pike/ip_tree.c	/^static inline void prv_lock_tree_branch(unsigned char b)$/;"	f	file:
-prv_unlock_tree_branch	modules/pike/ip_tree.c	/^static inline void prv_unlock_tree_branch(unsigned char b)$/;"	f	file:
-ps_cmd	unixsock_server.c	/^static int ps_cmd(str* msg)$/;"	f	file:
-ps_fifo_cmd	fifo_server.c	/^static int ps_fifo_cmd(FILE *stream, char *response_file )$/;"	f	file:
-pstate	modules/pa/pstate.h	/^typedef enum pstate {$/;"	g
-pstate_name	modules/pa/presentity.c	/^str pstate_name[PS_NSTATES] = {$/;"	v
-pstate_t	modules/pa/pstate.h	/^} pstate_t;$/;"	t
-pt	main.c	/^struct process_table *pt=0;		\/*array with children pids, 0= main proc,$/;"	v
-ptld_CASE	parser/case_acce.h	89;"	d
-ptr	modules/tm/t_msgbuilder.c	/^	rr_t* ptr;$/;"	m	struct:rte	file:
-ptype	parser/parse_param.h	/^typedef enum ptype {$/;"	g
-ptype_t	parser/parse_param.h	/^} ptype_t;$/;"	t
-pua_exists	modules/pa/subscribe.c	/^int pua_exists(struct sip_msg* _m, char* _domain, char* _s2)$/;"	f
-publish_presentity	modules/pa/publish.c	/^static int publish_presentity(struct sip_msg* _m, struct pdomain* _d, struct presentity* presentity, int *pchanged)$/;"	f	file:
-publish_presentity_pidf	modules/pa/publish.c	/^static int publish_presentity_pidf(struct sip_msg* _m, struct pdomain* _d, struct presentity* presentity, int *pchanged)$/;"	f	file:
-publish_presentity_xcap_change	modules/pa/publish.c	/^static int publish_presentity_xcap_change(struct sip_msg* _m, struct pdomain* _d, struct presentity* presentity, int *pchanged)$/;"	f	file:
-push	route.c	/^void push(struct action* a, struct action** head)$/;"	f
-push_on_network	modules/sms/sms_funcs.c	/^int push_on_network(struct sip_msg *msg, int net)$/;"	f
-push_reply_to_client	modules/extcmd/extcmd_funcs.c	/^static int push_reply_to_client(int code, char* reason_s, int reason_l,$/;"	f	file:
-put_command	modules/sms/libsms_modem.c	/^int put_command( struct modem *mdm, char* cmd, int cmd_len, char* answer,$/;"	f
-put_int_h2n	modules/extcmd/extcmd_funcs.c	/^inline void put_int_h2n( int x, char *b, int l)$/;"	f
-put_on_wait	modules/tm/t_funcs.c	/^void put_on_wait(  struct cell  *Trans  )$/;"	f
-putsms	modules/sms/libsms_putsms.c	/^int putsms( struct sms_msg *sms_messg, struct modem *mdm)$/;"	f
-pwd_cmd	fifo_server.c	/^static int pwd_cmd( FILE *stream, char *response_file )$/;"	f	file:
-pwd_cmd	unixsock_server.c	/^static int pwd_cmd(str* msg)$/;"	f	file:
-q	dset.c	/^	int q; \/* Preference of the contact among$/;"	m	struct:branch	file:
-q	modules/usrloc/ucontact.h	/^	qvalue_t q;             \/* q parameter *\/$/;"	m	struct:ucontact
-q	parser/contact/contact.h	/^	param_t* q;             \/* q parameter hook *\/$/;"	m	struct:contact
-q	parser/parse_param.h	/^	struct param* q;        \/* q parameter *\/$/;"	m	struct:contact_hooks
-q2double	qvalue.h	/^static inline double q2double(qvalue_t q)$/;"	f
-q2str	qvalue.h	/^static inline char* q2str(qvalue_t q, unsigned int* len)$/;"	f
-q_col	modules/usrloc/ul_mod.c	/^str q_col           = {Q_COL, sizeof(Q_COL) - 1};                   \/* Name of column containing q values *\/$/;"	v
-q_malloc	mem/q_malloc.c	43;"	d	file:
-q_malloc_h	mem/q_malloc.h	40;"	d
-q_memchr	ut.h	/^static inline char* q_memchr(char* p, int c, unsigned int size)$/;"	f
-qm_block	mem/q_malloc.h	/^struct qm_block{$/;"	s
-qm_debug_frag	mem/q_malloc.c	/^static  void qm_debug_frag(struct qm_block* qm, struct qm_frag* f)$/;"	f	file:
-qm_detach_free	mem/q_malloc.c	/^static inline void qm_detach_free(struct qm_block* qm, struct qm_frag* frag)$/;"	f	file:
-qm_find_free	mem/q_malloc.c	/^static inline struct qm_frag* qm_find_free(struct qm_block* qm, $/;"	f	file:
-qm_frag	mem/q_malloc.h	/^struct qm_frag{$/;"	s
-qm_frag_end	mem/q_malloc.h	/^struct qm_frag_end{$/;"	s
-qm_frag_lnk	mem/q_malloc.h	/^struct qm_frag_lnk{$/;"	s
-qm_free	mem/q_malloc.c	/^void qm_free(struct qm_block* qm, void* p, const char* file, const char* func, $/;"	f
-qm_insert_free	mem/q_malloc.c	/^static inline void qm_insert_free(struct qm_block* qm, struct qm_frag* frag)$/;"	f	file:
-qm_malloc	mem/q_malloc.c	/^void* qm_malloc(struct qm_block* qm, unsigned long size,$/;"	f
-qm_malloc_init	mem/q_malloc.c	/^struct qm_block* qm_malloc_init(char* address, unsigned long size)$/;"	f
-qm_realloc	mem/q_malloc.c	/^void* qm_realloc(struct qm_block* qm, void* p, unsigned long size,$/;"	f
-qm_status	mem/q_malloc.c	/^void qm_status(struct qm_block* qm)$/;"	f
-qop	parser/digest/digest_parser.h	/^	struct qp qop;              \/* Quality Of Protection *\/$/;"	m	struct:dig_cred
-qop_parsed	parser/digest/digest_parser.h	/^	qop_type_t qop_parsed; \/* Parsed value *\/$/;"	m	struct:qp
-qop_str	parser/digest/digest_parser.h	/^	str qop_str;           \/* The original string representation *\/$/;"	m	struct:qp
-qop_type	parser/digest/digest_parser.h	/^typedef enum qop_type { $/;"	g
-qop_type_t	parser/digest/digest_parser.h	/^} qop_type_t;$/;"	t
-qp	parser/digest/digest_parser.h	/^struct qp {$/;"	s
-query	db/db.h	/^	db_query_f       query;        \/* query a table *\/$/;"	m	struct:db_func
-query	modules/jabber/doc/web/subscribe.php	/^				$query = "INSERT INTO ".$imtype." (juid, ".$imtype."_id, ".$imtype."_passwd, ".$imtype."_nick) VALUES ('$juid', '$imname', '$impasswd', '$imnick')";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^				$query = "UPDATE ".$imtype." SET ".$imtype."_id='$imname', ".$imtype."_passwd='$impasswd', ".$imtype."_nick='$imnick' WHERE juid='$juid'";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^			$query = "DELETE FROM ".$imtype." WHERE juid='$juid'";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^			$query = "SELECT ".$imtype."_id FROM ".$imtype." WHERE juid='$juid'";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^		$query = "INSERT INTO jusers (jab_id, jab_passwd, sip_id) VALUES ('$sipname', '$new_passwd', '$sipuri')";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^		$query = "UPDATE jusers SET tyep=1 WHERE sip_id='$sipuri'";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^		$query = "UPDATE jusers SET type=0 WHERE sip_id='$sipuri'";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^	$query = "SELECT $sip_db_cusr FROM $sip_db_tab WHERE $sip_db_cusr='$sipname' AND $sip_db_cpas='$sippasswd'";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^	$query = "SELECT jab_id FROM jusers WHERE sip_id='$sipuri'";$/;"	v
-query	modules/jabber/doc/web/subscribe.php	/^	$query="SELECT juid,jab_id,jab_passwd,type FROM jusers WHERE$/;"	v
-query	modules/pdt/doc/web/request.php	/^	    $query = "SELECT * FROM ".$table." WHERE name=\\"".$admin."\\" and passwd=\\"".$passwd."\\"";$/;"	v
-query	scripts/serstats	/^query() {$/;"	f
-query_db	modules/avp_db/avp_db.c	/^static int query_db(str* prefix, str* uuid, str* username, str* domain)$/;"	f	file:
-question_case	parser/parse_uri.c	165;"	d	file:
-question_case	test/p_uri.c	147;"	d	file:
-queued_msgs	modules/sms/sms.c	/^int    *queued_msgs    = 0;$/;"	v
-queued_msgs	modules/sms/sms_funcs.c	/^int *queued_msgs;$/;"	v
-qvalue_t	qvalue.h	/^typedef int qvalue_t;$/;"	t
-r	route_struct.h	/^	}r;$/;"	m	struct:expr
-r2	parser/msg_parser.h	/^	str r2; \/* ser specific rr parameter *\/$/;"	m	struct:sip_uri
-r2	parser/parse_param.h	/^	struct param* r2;        \/* r2 parameter *\/$/;"	m	struct:uri_hooks
-r2	parser/parse_rr.h	/^	param_t* r2;          \/* Hook to r2 parameter *\/$/;"	m	struct:rr
-r2_val	parser/msg_parser.h	/^	str r2_val;$/;"	m	struct:sip_uri
-rD_R	parser/obsolete/strs.h	261;"	d
-rD_r	parser/obsolete/strs.h	260;"	d
-rECO	parser/obsolete/strs.h	248;"	d
-rECo	parser/obsolete/strs.h	247;"	d
-rEcO	parser/obsolete/strs.h	246;"	d
-rEco	parser/obsolete/strs.h	245;"	d
-rOUT	parser/obsolete/strs.h	231;"	d
-rOUt	parser/obsolete/strs.h	230;"	d
-rOuT	parser/obsolete/strs.h	229;"	d
-rOut	parser/obsolete/strs.h	228;"	d
-rad_attr	modules/acc/acc.c	/^static int rad_attr[] = { A_CALLING_STATION_ID, A_CALLED_STATION_ID,$/;"	v	file:
-rad_status	modules/acc/acc.c	/^inline UINT4 rad_status(struct sip_msg *rq, str *phrase)$/;"	f
-radius	modules/pa/presentity.h	/^	double radius;$/;"	m	struct:location
-radius_authorize_sterman	modules/auth_radius/sterman.c	/^int radius_authorize_sterman(struct sip_msg* _msg, dig_cred_t* _cred, str* _method, str* _user, str* _rpid) $/;"	f
-radius_config	modules/acc/acc_mod.c	/^static char *radius_config = "\/usr\/local\/etc\/radiusclient\/radiusclient.conf";$/;"	v	file:
-radius_config	modules/auth_radius/authrad_mod.c	/^static char* radius_config = "\/usr\/local\/etc\/radiusclient\/radiusclient.conf";$/;"	v	file:
-radius_config	modules/avp_radius/avp_radius.c	/^static char *radius_config = "\/usr\/local\/etc\/radiusclient\/radiusclient.conf";$/;"	v	file:
-radius_config	modules/group_radius/grouprad_mod.c	/^static char* radius_config = "\/usr\/local\/etc\/radiusclient\/radiusclient.conf";$/;"	v	file:
-radius_config	modules/uri_radius/urirad_mod.c	/^static char* radius_config = "\/usr\/local\/etc\/radiusclient\/radiusclient.conf";$/;"	v	file:
-radius_does_uri_exist	modules/uri_radius/checks.c	/^int radius_does_uri_exist(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-radius_flag	modules/acc/acc_mod.c	/^int radius_flag = 0;$/;"	v
-radius_is_user_in	modules/group_radius/group.c	/^int radius_is_user_in(struct sip_msg* _m, char* _hf, char* _group)$/;"	f
-radius_missed_flag	modules/acc/acc_mod.c	/^int radius_missed_flag = 0;$/;"	v
-radius_proxy_authorize	modules/auth_radius/authorize.c	/^int radius_proxy_authorize(struct sip_msg* _msg, char* _realm, char* _s2)$/;"	f
-radius_www_authorize	modules/auth_radius/authorize.c	/^int radius_www_authorize(struct sip_msg* _msg, char* _realm, char* _s2)$/;"	f
-randomnumber	modules/jabber/tree234.c	/^int randomnumber(unsigned *seed) {$/;"	f
-raw_query	db/db.h	/^	db_raw_query_f   raw_query;    \/* Raw query - SQL *\/$/;"	m	struct:db_func
-rb	modules/acc/acc_mod.c	/^rd_buf_t *rb;$/;"	v
-rb	modules/auth_diameter/auth_diameter.c	/^rd_buf_t *rb;$/;"	v
-rcv	parser/msg_parser.h	/^	struct receive_info rcv; \/* source & dest ip, ports, proto a.s.o*\/$/;"	m	struct:sip_msg
-rcv	tcp_conn.h	/^	struct receive_info rcv; \/* src & dst ip, ports, proto a.s.o*\/$/;"	m	struct:tcp_connection
-rcv_avp_no	modules/nathelper/nathelper.c	/^static int rcv_avp_no=42;$/;"	v	file:
-rcv_avp_no	modules/registrar/reg_mod.c	/^int rcv_avp_no=42;$/;"	v
-rcv_param	modules/registrar/reg_mod.c	/^str rcv_param = {RCV_NAME, RCV_NAME_LEN};$/;"	v
-rd_R	parser/obsolete/strs.h	259;"	d
-rd_buf	modules/acc/defs.h	/^typedef struct rd_buf$/;"	s
-rd_buf	modules/auth_diameter/defs.h	/^typedef struct rd_buf$/;"	s
-rd_buf_t	modules/acc/defs.h	/^} rd_buf_t;$/;"	t
-rd_buf_t	modules/auth_diameter/defs.h	/^} rd_buf_t;$/;"	t
-rd_r	parser/obsolete/strs.h	258;"	d
-rdata	resolve.h	/^	void* rdata;$/;"	m	struct:rdata
-rdata	resolve.h	/^struct rdata {$/;"	s
-re	re.h	/^	regex_t* re;$/;"	m	struct:subst_expr
-reCO	parser/obsolete/strs.h	244;"	d
-reCo	parser/obsolete/strs.h	243;"	d
-read_body	fifo_server.c	/^int read_body(char *buf, int max_len, FILE *fifo, int *len)$/;"	f
-read_eol	fifo_server.c	/^int read_eol( FILE *stream )$/;"	f
-read_flag	modules/gflags/gflags.c	/^static unsigned int read_flag(FILE *pipe, char *response_file)$/;"	f	file:
-read_line	fifo_server.c	/^int read_line( char *b, int max, FILE *stream, int *read )$/;"	f
-read_line_set	fifo_server.c	/^int read_line_set(char *buf, int max_len, FILE *fifo, int *len)$/;"	f
-read_n	modules/extcmd/extcmd_funcs.c	/^inline int read_n( int fd, int n, char *b)$/;"	f
-readall	modules/mediaproxy/mediaproxy.c	/^readall(int fd, void *buf, size_t count)$/;"	f	file:
-ready	modules/jabber/xjab_jcon.h	/^	int ready;			\/\/ time when the connection is ready for sending messages$/;"	m	struct:_xj_jcon
-real_CASE	parser/digest/param_parser.c	99;"	d	file:
-real_used	mem/f_malloc.h	/^	unsigned long real_used; \/* used+malloc overhead*\/$/;"	m	struct:fm_block
-real_used	mem/q_malloc.h	/^	unsigned long real_used; \/* used+malloc overhead*\/$/;"	m	struct:qm_block
-realloc_ops	modules/postgres/aug_alloc.h	/^	unsigned long realloc_ops;		\/* Total reallocs since epoch *\/$/;"	m
-realm	parser/digest/digest_parser.h	/^	str realm;                  \/* Realm *\/$/;"	m	struct:dig_cred
-realm_pref	modules/registrar/reg_mod.c	/^char* realm_pref    = "";   \/* Realm prefix to be removed *\/$/;"	v
-realm_prefix	modules/auth/auth_mod.c	/^str realm_prefix;$/;"	v
-realm_prefix	modules/cpl-c/cpl_env.h	/^	str    realm_prefix;    \/* domain prefix to be ignored *\/$/;"	m	struct:cpl_enviroment
-realm_prefix	modules/registrar/reg_mod.c	/^str realm_prefix;$/;"	v
-realm_prefix_param	modules/auth/auth_mod.c	/^static char* realm_prefix_param = "";$/;"	v	file:
-reason	modules/cpl/jcpli.h	/^	char *reason;$/;"	m	struct:_RejectMessage
-reason	modules/pa/notify.c	/^static str reason[] = {$/;"	v	file:
-reason	parser/parse_fline.h	/^			str reason;       \/* Reply reason phrase *\/$/;"	m	struct:msg_start::<anonymous>::<anonymous>
-reasonLength	modules/cpl/jcpli.h	/^	int reasonLength;$/;"	m	struct:_RejectMessage
-recO	parser/obsolete/strs.h	242;"	d
-receive_fd	pass_fd.c	/^int receive_fd(int unix_socket, void* data, int data_len, int* fd)$/;"	f
-receive_h	receive.h	31;"	d
-receive_info	ip_addr.h	/^struct receive_info{$/;"	s
-receive_msg	receive.c	/^int receive_msg(char* buf, unsigned int len, struct receive_info* rcv_info) $/;"	f
-received	modules/usrloc/ucontact.h	/^	str received;           \/* IP, port, and protocol we received the REGISTER from *\/$/;"	m	struct:ucontact
-received	parser/contact/contact.h	/^	param_t* received;      \/* received parameter hook *\/$/;"	m	struct:contact
-received	parser/parse_param.h	/^	struct param* received; \/* received parameter *\/$/;"	m	struct:contact_hooks
-received	parser/parse_via.h	/^	struct via_param* received;$/;"	m	struct:via_body
-received_builder	msg_translator.c	/^char* received_builder(struct sip_msg *msg, unsigned int *received_len)$/;"	f
-received_col	modules/usrloc/ul_mod.c	/^str received_col    = {RECEIVED_COL, sizeof(RECEIVED_COL) - 1};     \/* Name of column containing transport info of REGISTER *\/$/;"	v
-received_dns	main.c	/^int received_dns = 0;      $/;"	v
-received_drops	stats.h	/^	received_drops,	\/* all messages we received and did not process$/;"	m	struct:stats_s
-received_requests_ack	stats.h	/^	received_requests_ack,$/;"	m	struct:stats_s
-received_requests_bye	stats.h	/^	received_requests_bye,$/;"	m	struct:stats_s
-received_requests_cnc	stats.h	/^	received_requests_cnc,$/;"	m	struct:stats_s
-received_requests_inv	stats.h	/^	received_requests_inv, 		\/* received_requests *\/$/;"	m	struct:stats_s
-received_requests_other	stats.h	/^	received_requests_other,$/;"	m	struct:stats_s
-received_responses_1	stats.h	/^	received_responses_1, 		\/* received_responses *\/$/;"	m	struct:stats_s
-received_responses_2	stats.h	/^	received_responses_2,$/;"	m	struct:stats_s
-received_responses_3	stats.h	/^	received_responses_3,$/;"	m	struct:stats_s
-received_responses_4	stats.h	/^	received_responses_4,$/;"	m	struct:stats_s
-received_responses_5	stats.h	/^	received_responses_5,$/;"	m	struct:stats_s
-received_responses_6	stats.h	/^	received_responses_6,$/;"	m	struct:stats_s
-received_responses_other	stats.h	/^	received_responses_other,$/;"	m	struct:stats_s
-received_test	msg_translator.c	/^int received_test( struct sip_msg *msg )$/;"	f
-reco	parser/obsolete/strs.h	241;"	d
-reco_CASE	parser/case_reco.h	53;"	d
-record_route	modules/rr/record.c	/^int record_route(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-record_route	parser/msg_parser.h	/^	struct hdr_field* record_route;$/;"	m	struct:sip_msg
-record_route	scripts/serconf.sh	/^	record_route();$/;"	f
-record_route_preset	modules/rr/record.c	/^int record_route_preset(struct sip_msg* _m, char* _data, char* _s2)$/;"	f
-record_route_strict	modules/rr/record.c	/^int record_route_strict(struct sip_msg* _m, char* _s1, char* _s2)$/;"	f
-recurse	modules/cpl-c/cpl_run.h	/^		unsigned short recurse;$/;"	m	struct:cpl_interpreter::proxy_st
-recv_all	pass_fd.c	/^int recv_all(int socket, void* data, int data_len)$/;"	f
-recv_time	modules/cpl-c/cpl_run.h	/^	int recv_time;         \/* receiving time stamp *\/$/;"	m	struct:cpl_interpreter
-recvfrom_prog	modules/ext/my_exec.h	/^inline int recvfrom_prog(char *out, int out_len)$/;"	f
-redirect	modules/cpl-c/cpl_run.h	/^		char *redirect;$/;"	m	struct:cpl_interpreter::proxy_st
-ref	modules/flatstore/flat_con.h	/^	int ref;               \/* Reference count *\/$/;"	m	struct:flat_con
-ref	modules/mysql/my_con.h	/^	int ref;             \/* Reference count *\/$/;"	m	struct:my_con
-ref	modules/sms/sms_funcs.h	/^	int  ref;$/;"	m	struct:sms_msg
-ref_count	modules/tm/h_table.h	/^	volatile unsigned int ref_count;$/;"	m	struct:cell
-refcnt	tcp_conn.h	/^	volatile int refcnt;$/;"	m	struct:tcp_connection
-refix	Makefile	/^	$(MAKE) install basedir=tmp\/ser prefix=\/usr\/local $/;"	m
-refix	Makefile	/^	$(MAKE) install basedir=tmp\/ser prefix=\/usr\/local$/;"	m
-refresh_node	modules/pike/pike_funcs.c	/^void refresh_node( struct ip_node *node)$/;"	f
-reg	modules/pa/pdomain.h	/^	register_watcher_t reg;     \/* Register watcher function *\/$/;"	m	struct:pdomain
-reg	stats.c	321;"	d	file:
-reg_addr	modules/msilo/msilo.c	/^str reg_addr;$/;"	v
-reg_func	stats.c	/^	int (*reg_func)(const char *, struct sip_snmp_handler*);$/;"	m	struct:stats_funcs	file:
-reg_match	modules/enum/regexp.c	/^int reg_match(char *pattern, char *string, regmatch_t *pmatch)$/;"	f
-reg_replace	modules/enum/regexp.c	/^int reg_replace(char *pattern, char *replacement, char *string, str *result)$/;"	f
-reg_types	modules/tm/t_hooks.h	/^	int reg_types;$/;"	m	struct:tmcb_head_list
-reg_types	modules/usrloc/ul_callback.h	/^	int reg_types;$/;"	m	struct:ulcb_head_list
-reg_value	modules/permissions/rule.h	/^	regex_t	*reg_value;$/;"	m	struct:expression_struct
-regexp	resolve.h	/^	char regexp[MAX_DNS_STRING];$/;"	m	struct:naptr_rdata
-regexp	test/shoot.c	/^regex_t* regexp;$/;"	v
-regexp	test/shoot2.c	/^regex_t* regexp;$/;"	v
-regexp_len	resolve.h	/^	unsigned int regexp_len;$/;"	m	struct:naptr_rdata
-register_builtin_modules	sr_module.c	/^int register_builtin_modules()$/;"	f
-register_core_commands	unixsock_server.c	/^static int register_core_commands(void)$/;"	f	file:
-register_core_fifo	fifo_server.c	/^int register_core_fifo()$/;"	f
-register_fifo_cmd	fifo_server.c	/^int register_fifo_cmd(fifo_cmd f, char *cmd_name, void *param)$/;"	f
-register_galiases	modules/avpops/avpops.c	/^static int register_galiases( modparam_t type, void* val)$/;"	f	file:
-register_module	sr_module.c	/^int register_module(struct module_exports* e, char* path, void* handle)$/;"	f
-register_pdomain	modules/pa/dlist.c	/^int register_pdomain(const char* _n, pdomain_t** _d)$/;"	f
-register_script_cb	script_cb.c	/^int register_script_cb( cb_function f, callback_t t, void *param )$/;"	f
-register_timer	timer.c	/^int register_timer(timer_function f, void* param, unsigned int interval)$/;"	f
-register_tmcb	modules/tm/t_hooks.c	/^int register_tmcb( struct sip_msg* p_msg, struct cell *t, int types,$/;"	f
-register_tmcb	modules/tm/tm_load.h	/^	register_tmcb_f  register_tmcb;$/;"	m	struct:tm_binds
-register_tmcb_f	modules/tm/t_hooks.h	/^typedef int (*register_tmcb_f)(struct sip_msg* p_msg, struct cell *t,$/;"	t
-register_udomain	modules/usrloc/dlist.c	/^int register_udomain(const char* _n, udomain_t** _d)$/;"	f
-register_udomain	modules/usrloc/usrloc.h	/^	register_udomain_t   register_udomain;$/;"	m	struct:usrloc_api
-register_udomain_t	modules/usrloc/dlist.h	/^typedef int (*register_udomain_t)(const char* _n, udomain_t** _d);$/;"	t
-register_ulcb	modules/usrloc/ul_callback.c	/^int register_ulcb( int types, ul_cb f, void *param )$/;"	f
-register_ulcb	modules/usrloc/usrloc.h	/^	register_ulcb_t      register_ulcb;$/;"	m	struct:usrloc_api
-register_ulcb_t	modules/usrloc/ul_callback.h	/^typedef int (*register_ulcb_t)( int cb_types, ul_cb f, void *param);$/;"	t
-register_watcher	modules/jabber/xjab_load.h	/^	pa_register_watcher_f register_watcher;$/;"	m	struct:xjab_binds
-register_watcher	modules/usrloc/notify.c	/^int register_watcher(str* _f, str* _t, notcb_t _c, void* _data)$/;"	f
-register_watcher	modules/usrloc/usrloc.h	/^	register_watcher_t   register_watcher;$/;"	m	struct:usrloc_api
-register_watcher_t	modules/pa/pdomain.h	/^typedef int (*register_watcher_t)(str* _f, str* _t, void* _cb, void* _data);$/;"	t
-register_watcher_t	modules/usrloc/notify.h	/^typedef int (*register_watcher_t)(str* _f, str* _t, notcb_t _c, void* _data);$/;"	t
-registered	modules/registrar/lookup.c	/^int registered(struct sip_msg* _m, char* _t, char* _s)$/;"	f
-registrar	modules/jabber/jabber.c	/^char *registrar=NULL; \/\/"sip:registrar at iptel.org";$/;"	v
-relaied_reply_branch	modules/tm/h_table.h	/^	int relaied_reply_branch;$/;"	m	struct:cell
-relay_reply	modules/tm/t_reply.c	/^enum rps relay_reply( struct cell *t, struct sip_msg *p_msg, int branch, $/;"	f
-relay_report_to_queue	modules/sms/sms_report.c	/^int  relay_report_to_queue(int id, char *phone, int status, int *old_status)$/;"	f
-release_cell_lock	modules/tm/lock.c	/^int release_cell_lock( struct cell *cell )$/;"	f
-release_connection	modules/mysql/my_pool.c	/^void release_connection(struct my_con* con)$/;"	f
-release_entry_lock	modules/tm/lock.c	/^int release_entry_lock( struct entry *entry )$/;"	f
-release_hf_struct	modules/exec/exec_hf.c	/^static void release_hf_struct( struct hf_wrapper *list )$/;"	f	file:
-release_lock	fastlock.h	/^inline static void release_lock(fl_lock_t* lock)$/;"	f
-release_lock	test/mips_lock.c	/^void release_lock(fl_lock_t* lock)$/;"	f
-release_tcpconn	tcp_read.c	/^void release_tcpconn(struct tcp_connection* c, long state, int unix_sock)$/;"	f
-release_timerlist_lock	modules/tm/lock.c	/^int release_timerlist_lock( struct timer *timerlist )$/;"	f
-release_urecord	modules/usrloc/urecord.c	/^void release_urecord(urecord_t* _r)$/;"	f
-release_urecord	modules/usrloc/usrloc.h	/^	release_urecord_t    release_urecord;$/;"	m	struct:usrloc_api
-release_urecord_t	modules/usrloc/urecord.h	/^typedef void (*release_urecord_t)(urecord_t* _r);$/;"	t
-release_vars	modules/exec/exec_hf.c	/^static void release_vars(struct hf_wrapper *list) $/;"	f	file:
-reload	rpm/ser.init	/^reload() {$/;"	f
-reload_domain_table	modules/domain/domain.c	/^int reload_domain_table ( void )$/;"	f
-reload_trusted_table	modules/permissions/trusted.c	/^int reload_trusted_table(void)$/;"	f
-rem_seq	modules/tm/dlg.h	/^	dlg_seq_t rem_seq;      \/* Remote sequence number *\/$/;"	m	struct:dlg
-rem_tag	modules/tm/dlg.h	/^	str rem_tag;    \/* Remote tag of the dialog *\/$/;"	m	struct:dlg_id
-rem_target	modules/tm/dlg.h	/^	str rem_target;         \/* Remote target URI *\/$/;"	m	struct:dlg
-rem_uri	modules/tm/dlg.h	/^	str rem_uri;            \/* Remote URI *\/$/;"	m	struct:dlg
-remo_CASE	parser/case_remo.h	65;"	d
-remove_cont	modules/registrar/save.c	/^void remove_cont(urecord_t* _r, ucontact_t* _c)$/;"	f
-remove_first_location	modules/cpl-c/loc_set.h	/^static inline struct location *remove_first_location(struct location **loc_set)$/;"	f
-remove_from_double_hash	modules/pdt/domains.c	/^int remove_from_double_hash(double_hash_t* hash, dc_t* cell)$/;"	f
-remove_from_hash	modules/pdt/domains.c	/^int remove_from_hash(h_entry_t* hash, unsigned int hash_size, dc_t* cell, int type)$/;"	f
-remove_from_hash_table_unsafe	modules/tm/h_table.c	/^void remove_from_hash_table_unsafe( struct cell * p_cell)$/;"	f
-remove_from_timer	modules/pike/timer.c	/^inline void remove_from_timer(struct list_link *head, struct list_link *ll)$/;"	f
-remove_hf_f	modules/textops/textops.c	/^static int remove_hf_f(struct sip_msg* msg, char* str_hf, char* foo)$/;"	f	file:
-remove_location	modules/cpl-c/loc_set.h	/^static inline void remove_location(struct location **loc_set, char *uri_s,$/;"	f
-remove_node	modules/pike/ip_tree.c	/^void remove_node(struct ip_node *node)$/;"	f
-remove_presence_tuple	modules/pa/presentity.c	/^void remove_presence_tuple(presentity_t *_p, presence_tuple_t *_t)$/;"	f
-remove_presentity	modules/pa/pdomain.c	/^void remove_presentity(pdomain_t* _d, struct presentity* _p)$/;"	f
-remove_sms_from_report_queue	modules/sms/sms_report.c	/^void remove_sms_from_report_queue(int id)$/;"	f
-remove_timer_unsafe	modules/tm/timer.c	/^static void remove_timer_unsafe(  struct timer_link* tl )$/;"	f	file:
-remove_watcher	modules/pa/presentity.c	/^int remove_watcher(presentity_t* _p, watcher_t* _w)$/;"	f
-remove_watcher	modules/usrloc/notify.c	/^int remove_watcher(struct urecord* _r, notcb_t _c, void* _d)$/;"	f
-remove_winfo_watcher	modules/pa/presentity.c	/^int remove_winfo_watcher(presentity_t* _p, watcher_t* _w)$/;"	f
-repl	resolve.h	/^	char repl[MAX_DNS_NAME];$/;"	m	struct:naptr_rdata
-repl_len	resolve.h	/^	unsigned int repl_len; \/* not currently used *\/$/;"	m	struct:naptr_rdata
-replace	modules/enum/regexp.c	/^int replace(regmatch_t* pmatch, char* string, char* replacement, str* result)$/;"	f
-replace	re.h	/^	struct replace_with replace[1]; \/* 0 does not work on all compilers *\/$/;"	m	struct:subst_expr
-replaceElement	modules/mediaproxy/mediaproxy.c	/^replaceElement(struct sip_msg *msg, str *oldElem, str *newElem)$/;"	f	file:
-replace_all	re.h	/^	int replace_all; $/;"	m	struct:subst_expr
-replace_all_f	modules/textops/textops.c	/^static int replace_all_f(struct sip_msg* msg, char* key, char* str)$/;"	f	file:
-replace_build	re.c	/^static int replace_build(const char* match, int nmatch, regmatch_t* pmatch,$/;"	f	file:
-replace_env	modules/exec/exec_hf.c	/^environment_t *replace_env(struct hf_wrapper *list)$/;"	f
-replace_f	modules/textops/textops.c	/^static int replace_f(struct sip_msg* msg, char* key, char* str)$/;"	f	file:
-replace_len	re.c	/^static int replace_len(const char* match, int nmatch, regmatch_t* pmatch,$/;"	f	file:
-replace_lst	re.h	/^struct replace_lst{$/;"	s
-replace_lst_free	re.c	/^void replace_lst_free(struct replace_lst* l)$/;"	f
-replace_special	re.h	/^enum replace_special { REPLACE_NMATCH, REPLACE_CHAR, REPLACE_URI };$/;"	g
-replace_with	re.h	/^struct replace_with{$/;"	s
-replacement	re.h	/^	str replacement;$/;"	m	struct:subst_expr
-replied_localy	modules/tm/t_stats.h	/^	stat_counter replied_localy;$/;"	m	struct:t_stats
-reply	modules/pdt/doc/web/request.php	/^	$reply = "\/tmp\/".$response_file;$/;"	v
-reply	modules/tm/h_table.h	/^	struct sip_msg  *reply;$/;"	m	struct:ua_client
-reply	parser/parse_fline.h	/^		} reply;$/;"	m	union:msg_start::<anonymous>
-reply_addr	unixsock_server.c	/^static struct sockaddr_un reply_addr;$/;"	v	file:
-reply_addr_len	unixsock_server.c	/^static unsigned int reply_addr_len;$/;"	v	file:
-reply_buf	unixsock_server.c	/^static char reply_buf[UNIXSOCK_BUF_SIZE];$/;"	v	file:
-reply_callback	modules/cpl-c/cpl_proxy.h	/^static void reply_callback( struct cell* t, int type, struct tmcb_params* ps)$/;"	f
-reply_lump	parser/msg_parser.h	/^	struct lump_rpl *reply_lump; \/* only for localy generated replies !!!*\/$/;"	m	struct:sip_msg
-reply_mutex	modules/tm/h_table.h	/^	ser_lock_t   reply_mutex;$/;"	m	struct:cell
-reply_pos	unixsock_server.c	/^static str reply_pos;$/;"	v	file:
-reply_received	modules/tm/t_reply.c	/^int reply_received( struct sip_msg  *p_msg )$/;"	f
-reply_semaphore	modules/tm/lock.c	/^gen_lock_set_t* reply_semaphore=0;$/;"	v
-reply_to_via	main.c	/^int reply_to_via=0;$/;"	v
-reply_type	modules/sl/sl_stats.h	/^enum reply_type { RT_200, RT_202, RT_2xx,$/;"	g
-report	profile/launch.sh	/^function report()$/;"	f
-report_ack	modules/acc/acc_mod.c	/^int report_ack = 1;$/;"	v
-report_cancels	modules/acc/acc_mod.c	/^int report_cancels = 0;$/;"	v
-report_cell	modules/sms/sms_report.c	/^struct report_cell {$/;"	s	file:
-report_queue	modules/sms/sms_report.c	/^struct report_cell *report_queue=0;$/;"	v
-req	modules/cpl-c/cpl_time.h	/^	int *req;$/;"	m	struct:_tr_byxxx
-req	modules/tm/t_hooks.h	/^	struct sip_msg* req;$/;"	m	struct:tmcb_params
-req	tcp_conn.h	/^	struct tcp_req req; \/* request data *\/$/;"	m	struct:tcp_connection
-req_in_tmcb_hl	modules/tm/t_hooks.c	/^struct tmcb_head_list* req_in_tmcb_hl = 0;$/;"	v
-req_outside	modules/tm/uac.c	/^int req_outside(str* method, str* to, str* from, str* headers, str* body, dlg_t** dialog, transaction_cb cb, void* cbp)$/;"	f
-req_pipe	modules/extcmd/extcmd.c	/^int    req_pipe[2];$/;"	v
-req_pipe	modules/extcmd/extcmd_funcs.c	/^int    req_pipe[2];$/;"	v
-req_t	modules/tm/uac.h	/^typedef int (*req_t)(str* m, str* ruri, str* t, str* f, str* h, str* b, transaction_cb c, void* cp);$/;"	t
-req_within	modules/tm/uac.c	/^int req_within(str* method, str* headers, str* body, dlg_t* dialog, transaction_cb completion_cb, void* cbp)$/;"	f
-reqout_t	modules/tm/uac.h	/^typedef int (*reqout_t)(str* m, str* t, str* f, str* h, str* b, dlg_t** d, transaction_cb c, void* cp);$/;"	t
-requ_CASE	parser/case_requ.h	56;"	d
-request	modules/tm/h_table.h	/^	struct retr_buf  request;$/;"	m	struct:ua_client
-request	modules/tm/h_table.h	/^	struct sip_msg   *request;$/;"	m	struct:ua_server
-request	modules/tm/uac.c	/^int request(str* m, str* ruri, str* to, str* from, str* h, str* b, transaction_cb c, void* cp)$/;"	f
-request	parser/parse_fline.h	/^		} request;$/;"	m	union:msg_start::<anonymous>
-request2dlg	modules/tm/dlg.c	/^static inline int request2dlg(struct sip_msg* _m, dlg_t* _d)$/;"	f	file:
-request_method	parser/msg_parser.h	/^enum request_method { METHOD_UNDEF=0, METHOD_INVITE=1, METHOD_CANCEL=2, METHOD_ACK=4, $/;"	g
-request_uri	modules/tm/dlg.h	/^	str* request_uri;   \/* This should be put into Request-URI *\/$/;"	m	struct:dlg_hooks
-reqwith_t	modules/tm/uac.h	/^typedef int (*reqwith_t)(str* m, str* h, str* b, dlg_t* d, transaction_cb c, void* cp);$/;"	t
-rerr	modules/registrar/rerrno.h	/^typedef enum rerr {$/;"	g
-rerr_t	modules/registrar/rerrno.h	/^} rerr_t;$/;"	t
-rerrno	modules/registrar/rerrno.c	/^rerr_t rerrno;$/;"	v
-res	modules/dbtext/dbt_res.h	/^	dbt_result_p res;$/;"	m	struct:_dbt_con
-res	modules/mysql/my_con.h	/^	MYSQL_RES* res;      \/* Actual result *\/$/;"	m	struct:my_con
-res	modules/postgres/con_postgres.h	/^	PGresult *res;	\/* this is the current result *\/$/;"	m	struct:con_postgres
-res_code	modules/acc/diam_message.h	/^	AAA_AVP             *res_code;$/;"	m	struct:_message_t
-res_code	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP             *res_code;$/;"	m	struct:_message_t
-reserved	mem/f_malloc.h	/^		long reserved;$/;"	m	union:fm_frag::<anonymous>
-reserved	proxy.h	/^	unsigned short reserved; \/*align*\/$/;"	m	struct:proxy_l
-reserved1	mem/q_malloc.h	/^	unsigned long reserved1;$/;"	m	struct:qm_frag_end
-reserved2	mem/q_malloc.h	/^	unsigned long reserved2;$/;"	m	struct:qm_frag_end
-reset_avps	usr_avp.c	/^void reset_avps( )$/;"	f
-reset_gflag	modules/gflags/gflags.c	/^static int reset_gflag(struct sip_msg *bar, char *flag_par, char *foo)$/;"	f	file:
-reset_logs	modules/cpl-c/cpl_log.c	/^void reset_logs()$/;"	f
-reset_read_buffer	modules/acc/diam_tcp.c	/^void reset_read_buffer(rd_buf_t *rb)$/;"	f
-reset_read_buffer	modules/auth_diameter/tcp_comm.c	/^void reset_read_buffer(rd_buf_t *rb)$/;"	f
-reset_timer	modules/tm/timer.c	/^void reset_timer( struct timer_link* tl )$/;"	f
-reset_timer_list	modules/tm/timer.c	/^void reset_timer_list( enum lists list_id)$/;"	f
-resetflag	flags.c	/^int resetflag( struct sip_msg* msg, flag_t flag ) {$/;"	f
-resolvehost	resolve.h	/^static inline struct hostent* resolvehost(char* name)$/;"	f
-resource	modules/jabber/xjab_jcon.h	/^	char *resource;		\/\/ resource ID$/;"	m	struct:_xj_jcon
-resource_list	modules/pa/presentity.h	/^typedef struct resource_list {$/;"	s
-resource_list_append_unique	modules/pa/presentity.c	/^resource_list_t *resource_list_append_unique(resource_list_t *list, str *uri)$/;"	f
-resource_list_remove	modules/pa/presentity.c	/^resource_list_t *resource_list_remove(resource_list_t *list, str *uri)$/;"	f
-resource_list_t	modules/pa/presentity.h	/^} resource_list_t;$/;"	t
-resp_CASE	parser/digest/param_parser.c	126;"	d	file:
-resp_buf	modules/cpl/cpl.c	/^char           *resp_buf;$/;"	v
-resp_code	modules/cpl/cpl.c	/^unsigned int   resp_code;$/;"	v
-resp_len	modules/cpl/cpl.c	/^unsigned int   resp_len;$/;"	v
-response	modules/tm/h_table.h	/^	struct retr_buf  response;$/;"	m	struct:ua_server
-response	parser/digest/digest_parser.h	/^	str response;               \/* Response string *\/$/;"	m	struct:dig_cred
-response2dlg	modules/tm/dlg.c	/^static inline int response2dlg(struct sip_msg* _m, dlg_t* _d)$/;"	f	file:
-response_f	sr_module.h	/^	response_function response_f;   \/* function used for responses,$/;"	m	struct:module_exports
-response_file	modules/pdt/doc/web/request.php	/^	$response_file = "rf".session_id();$/;"	v
-response_function	sr_module.h	/^typedef  int (*response_function)(struct sip_msg*);$/;"	t
-rest	modules/cpl-c/cpl_time.h	/^	time_t rest;$/;"	m	struct:_tr_res
-rest	utils/fifo_relay/fifo_server.php	/^  $rest = fread($fp, 8192);$/;"	v
-restart_fr_on_each_reply	modules/tm/t_reply.c	/^int restart_fr_on_each_reply=1;$/;"	v
-result	modules/jabber/doc/web/subscribe.php	/^				$result = mysql_query($query, $dblink);$/;"	v
-result	modules/jabber/doc/web/subscribe.php	/^			$result = mysql_query($query, $dblink) or html_die("Invalid SQL query");$/;"	v
-result	modules/jabber/doc/web/subscribe.php	/^			$result = mysql_query($query, $dblink);$/;"	v
-result	modules/jabber/doc/web/subscribe.php	/^		$result = mysql_query($query, $dblink);$/;"	v
-result	modules/jabber/doc/web/subscribe.php	/^	$result = mysql_query($query) or html_die("Invalid SQL query");$/;"	v
-result	modules/jabber/doc/web/subscribe.php	/^	$result = mysql_query($query, $dblink) or html_die("Invalid SQL query");$/;"	v
-result	modules/pdt/doc/web/request.php	/^	    $result = mysql_query($query) or die("Query failed: ".mysql_error());	$/;"	v
-ret_code	modules/auth_diameter/defs.h	/^	int ret_code;$/;"	m	struct:rd_buf
-retr_buf	modules/tm/h_table.h	/^typedef struct retr_buf$/;"	s
-retr_buf_type	modules/tm/h_table.h	/^}retr_buf_type;$/;"	t
-retr_list	modules/tm/h_table.h	/^	enum lists retr_list;$/;"	m	struct:retr_buf
-retr_timer	modules/tm/h_table.h	/^	struct timer_link retr_timer;$/;"	m	struct:retr_buf
-retransmission_handler	modules/tm/timer.c	/^inline static void retransmission_handler( struct timer_link *retr_tl )$/;"	f	file:
-retry	modules/sms/sms_funcs.h	/^	int  retry;$/;"	m	struct:modem
-retry_after	modules/registrar/reg_mod.c	/^int retry_after = 0;                  \/* The value of Retry-After HF in 5xx replies *\/$/;"	v
-rev_resolvehost	resolve.h	123;"	d
-reverseInteger	modules/cpl/jcpli.c	/^int reverseInteger(int val)$/;"	f
-reverse_hex2int	ut.h	/^inline static int reverse_hex2int( char *c, int len, unsigned int* res)$/;"	f
-rewrite_ruri	modules/speeddial/sdlookup.c	/^static inline int rewrite_ruri(struct sip_msg* _m, char* _s)$/;"	f	file:
-rewrite_uri	dset.c	/^int rewrite_uri(struct sip_msg* _m, str* _s)$/;"	f
-rfc1918address	modules/mediaproxy/mediaproxy.c	/^rfc1918address(str *address)$/;"	f	file:
-rfc1918nets	modules/mediaproxy/mediaproxy.c	/^NetInfo rfc1918nets[] = {$/;"	v
-rh	modules/acc/acc_mod.c	/^void *rh;$/;"	v
-rh	modules/auth_radius/authrad_mod.c	/^void *rh;$/;"	v
-rh	modules/avp_radius/avp_radius.c	/^static void *rh;$/;"	v	file:
-rh	modules/group_radius/grouprad_mod.c	/^void *rh;$/;"	v
-rh	modules/uri_radius/urirad_mod.c	/^void *rh;$/;"	v
-right	modules/permissions/rule.h	/^	expression *left, *left_exceptions, *right, *right_exceptions;$/;"	m	struct:rule_struct
-right_exceptions	modules/permissions/rule.h	/^	expression *left, *left_exceptions, *right, *right_exceptions;$/;"	m	struct:rule_struct
-rith_CASE	parser/digest/param_parser.c	159;"	d	file:
-rity_CASE	parser/case_prio.h	35;"	d
-rlist	route.c	/^struct action* rlist[RT_NO];$/;"	v
-rmode	modules/tm/t_reply.c	/^enum route_mode rmode=MODE_REQUEST;$/;"	v
-rmv_from_db	modules/cpl-c/cpl_db.c	/^int rmv_from_db(char *usr)$/;"	f
-roUT	parser/obsolete/strs.h	227;"	d
-roUt	parser/obsolete/strs.h	226;"	d
-rol1	modules/jabber/sha.c	88;"	d	file:
-rol30	modules/jabber/sha.c	90;"	d	file:
-rol5	modules/jabber/sha.c	89;"	d	file:
-room	modules/jabber/xjab_jconf.h	/^	str room;$/;"	m	struct:_xj_jconf
-room	modules/pa/presentity.h	/^	str   room;$/;"	m	struct:location
-room_buf	modules/pa/presentity.h	/^	char room_buf[TUPLE_LOCATION_ROOM_LEN];$/;"	m	struct:location
-room_name	modules/pa/location.c	/^     str room_name;$/;"	m	struct:location_placeid_row	file:
-root	modules/jabber/tree234.c	/^    node234 *root;$/;"	m	struct:tree234_Tag	file:
-root	modules/pa/dlist.c	/^dlist_t* root = 0;$/;"	v
-root	modules/pike/ip_tree.c	/^static struct ip_tree*  root = 0;$/;"	v	file:
-root	modules/usrloc/dlist.c	/^dlist_t* root = 0;$/;"	v
-rouT	parser/obsolete/strs.h	225;"	d
-rout	parser/obsolete/strs.h	224;"	d
-rout_CASE	parser/case_rout.h	35;"	d
-route	parser/msg_parser.h	/^	struct hdr_field* route;$/;"	m	struct:sip_msg
-route_h	route.h	30;"	d
-route_mode	modules/tm/t_reply.h	/^enum route_mode { MODE_REQUEST=1, MODE_ONREPLY, MODE_ONFAILURE };$/;"	g
-route_mode	modules/tm/tm_load.h	/^	enum route_mode*   route_mode;$/;"	m	struct:tm_binds
-route_set	modules/tm/dlg.h	/^	rr_t* route_set;        \/* Route set *\/$/;"	m	struct:dlg
-route_stm	cfg.y	/^route_stm:  ROUTE LBRACE actions RBRACE { push($3, &rlist[DEFAULT_RT]); }$/;"	l
-route_struct_h	route_struct.h	40;"	d
-row	modules/dbtext/dbt_res.h	/^	dbt_row_p row;$/;"	m	struct:_dbt_con
-row	modules/mysql/my_con.h	/^	MYSQL_ROW row;       \/* Actual row in the result *\/$/;"	m	struct:my_con
-rows	db/db_res.h	/^	struct db_row* rows;       \/* Rows *\/$/;"	m	struct:db_res
-rows	modules/dbtext/dbt_lib.h	/^	dbt_row_p rows;$/;"	m	struct:_dbt_table
-rows	modules/dbtext/dbt_res.h	/^	dbt_row_p rows;$/;"	m	struct:_dbt_result
-rpid	modules/auth/rpid.c	/^static str rpid = {rpid_buffer,  0};	\/* rpid, stored in a backend $/;"	v	file:
-rpid	modules/auth_radius/authorize.c	/^static str rpid = {rpid_buffer, 0};$/;"	v	file:
-rpid	parser/msg_parser.h	/^	struct hdr_field* rpid;$/;"	m	struct:sip_msg
-rpid	scripts/sc	/^rpid() {$/;"	f
-rpid	scripts/sc_unixsock	/^rpid() {$/;"	f
-rpid_buffer	modules/auth/rpid.c	/^static char rpid_buffer[MAX_RPID_LEN];$/;"	v	file:
-rpid_buffer	modules/auth_radius/authorize.c	/^static char rpid_buffer[MAX_RPID_LEN];$/;"	v	file:
-rpid_fixup	modules/auth/auth_mod.c	/^static int rpid_fixup(void** param, int param_no)$/;"	f	file:
-rpid_is_e164	modules/auth/rpid.c	/^static int rpid_is_e164;        \/* 1 - yes, 0 - unknown, -1 - no *\/$/;"	v	file:
-rpid_prefix	modules/auth/auth_mod.c	/^str rpid_prefix;$/;"	v
-rpid_prefix_param	modules/auth/auth_mod.c	/^char* rpid_prefix_param = "";$/;"	v
-rpid_suffix	modules/auth/auth_mod.c	/^str rpid_suffix;$/;"	v
-rpid_suffix_param	modules/auth/auth_mod.c	/^char* rpid_suffix_param = ";party=calling;id-type=subscriber;screen=yes";$/;"	v
-rpipe	modules/jabber/xjab_worker.h	/^	int rpipe;			\/\/ communication pipe - read$/;"	m	struct:_xj_worker
-rpl	db/db_fifo.c	/^static FILE*  rpl;$/;"	v	file:
-rpl	modules/tm/t_hooks.h	/^	struct sip_msg* rpl;$/;"	m	struct:tmcb_params
-rpl	re.h	/^	str rpl;$/;"	m	struct:replace_lst
-rpl_pipe	modules/extcmd/extcmd.c	/^int    rpl_pipe[2];$/;"	v
-rpl_pipe	modules/extcmd/extcmd_funcs.c	/^int    rpl_pipe[2];$/;"	v
-rport	parser/parse_via.h	/^	struct via_param* rport;$/;"	m	struct:via_body
-rport_builder	msg_translator.c	/^char* rport_builder(struct sip_msg *msg, unsigned int *rport_len)$/;"	f
-rps	modules/tm/t_reply.h	/^enum rps {$/;"	g
-rr	parser/parse_rr.h	/^typedef struct rr {$/;"	s
-rr_t	parser/parse_rr.h	/^} rr_t;$/;"	t
-rt	cfg.tab.c	/^static int rt;  \/* Type of route block for find_export *\/$/;"	v	file:
-rte	modules/tm/t_msgbuilder.c	/^struct rte {$/;"	s	file:
-rtpAsymmetrics	modules/mediaproxy/mediaproxy.c	/^static AsymmetricClients rtpAsymmetrics = {$/;"	v	file:
-rtpp_test	modules/nathelper/nathelper.c	/^rtpp_test(int isdisabled, int force)$/;"	f	file:
-rtpproxy_disable	modules/nathelper/nathelper.c	/^static int rtpproxy_disable = 0;$/;"	v	file:
-rtpproxy_disable_tout	modules/nathelper/nathelper.c	/^static int rtpproxy_disable_tout = 60;$/;"	v	file:
-rtpproxy_retr	modules/nathelper/nathelper.c	/^static int rtpproxy_retr = 5;$/;"	v	file:
-rtpproxy_sock	modules/nathelper/nathelper.c	/^static char *rtpproxy_sock = "unix:\/var\/run\/rtpproxy.sock";$/;"	v	file:
-rtpproxy_tout	modules/nathelper/nathelper.c	/^static int rtpproxy_tout = 1;$/;"	v	file:
-rtrim	modules/mediaproxy/mediaproxy.c	/^rtrim(str *string)$/;"	f	file:
-ru	modules/tm/dlg.h	/^	str ru;$/;"	m	struct:dlg_hooks
-rule	cfg.y	/^rule:	condition	actions CR {$/;"	l
-rule	modules/permissions/rule.h	/^typedef struct rule_struct rule;$/;"	t
-rule_file	modules/permissions/permissions.h	/^typedef struct rule_file {$/;"	s
-rule_file_t	modules/permissions/permissions.h	/^} rule_file_t;$/;"	t
-rule_struct	modules/permissions/rule.h	/^struct rule_struct {$/;"	s
-rules	cfg.y	/^rules:	rules rule { push($2, &$1); $$=$1; }$/;"	l
-rules	modules/permissions/permissions.h	/^	rule* rules;    \/* Parsed rule set *\/$/;"	m	struct:rule_file
-rules_num	modules/permissions/permissions.c	/^static int rules_num;  \/* Number of parsed allow\/deny files *\/$/;"	v	file:
-run	profile/launch.sh	/^function run()$/;"	f
-run_actions	action.c	/^int run_actions(struct action* a, struct sip_msg* msg)$/;"	f
-run_address_switch	modules/cpl-c/cpl_switches.h	/^static inline char *run_address_switch( struct cpl_interpreter *intr )$/;"	f
-run_cpl_node	modules/cpl-c/cpl_run.c	/^static inline char *run_cpl_node( struct cpl_interpreter *intr )$/;"	f	file:
-run_default	modules/cpl-c/cpl_run.c	/^static inline int run_default( struct cpl_interpreter *intr )$/;"	f	file:
-run_ext_prog	modules/ext/ext.c	/^static  char *run_ext_prog(char *cmd, char *in, int in_len, int *out_len)$/;"	f	file:
-run_failure_handlers	modules/tm/t_reply.c	/^static inline int run_failure_handlers(struct cell *t, struct sip_msg *rpl,$/;"	f	file:
-run_handler_for_each	modules/tm/timer.c	939;"	d	file:
-run_language_switch	modules/cpl-c/cpl_switches.h	/^static inline char *run_language_switch( struct cpl_interpreter *intr )$/;"	f
-run_location	modules/cpl-c/cpl_run.c	/^static inline char *run_location( struct cpl_interpreter *intr )$/;"	f	file:
-run_log	modules/cpl-c/cpl_run.c	/^static inline char *run_log( struct cpl_interpreter *intr )$/;"	f	file:
-run_lookup	modules/cpl-c/cpl_run.c	/^static inline char *run_lookup( struct cpl_interpreter *intr )$/;"	f	file:
-run_mail	modules/cpl-c/cpl_run.c	/^static inline char *run_mail( struct cpl_interpreter *intr )$/;"	f	file:
-run_priority_switch	modules/cpl-c/cpl_switches.h	/^static inline char *run_priority_switch( struct cpl_interpreter *intr )$/;"	f
-run_proxy	modules/cpl-c/cpl_proxy.h	/^static inline char *run_proxy( struct cpl_interpreter *intr )$/;"	f
-run_redirect	modules/cpl-c/cpl_run.c	/^static inline char *run_redirect( struct cpl_interpreter *intr )$/;"	f	file:
-run_reject	modules/cpl-c/cpl_run.c	/^static inline char *run_reject( struct cpl_interpreter *intr )$/;"	f	file:
-run_remove_location	modules/cpl-c/cpl_run.c	/^static inline char *run_remove_location( struct cpl_interpreter *intr )$/;"	f	file:
-run_reqin_callbacks	modules/tm/t_hooks.c	/^void run_reqin_callbacks( struct cell *trans, struct sip_msg *req, int code )$/;"	f
-run_string_switch	modules/cpl-c/cpl_switches.h	/^static inline char *run_string_switch( struct cpl_interpreter *intr )$/;"	f
-run_sub	modules/cpl-c/cpl_run.c	/^static inline char *run_sub( struct cpl_interpreter *intr )$/;"	f	file:
-run_time_switch	modules/cpl-c/cpl_switches.h	/^static inline char *run_time_switch( struct cpl_interpreter *intr )$/;"	f
-run_trans_callbacks	modules/tm/t_hooks.c	/^void run_trans_callbacks( int type , struct cell *trans,$/;"	f
-run_ul_callbacks	modules/usrloc/ul_callback.h	/^static inline void run_ul_callbacks( int type , ucontact_t *c)$/;"	f
-ruri	modules/cpl-c/cpl_run.h	/^	str *ruri;$/;"	m	struct:cpl_interpreter
-ruri_matching	modules/tm/t_lookup.c	/^int ruri_matching=1;$/;"	v
-ruri_q	dset.c	/^static qvalue_t ruri_q = Q_UNSPECIFIED; $/;"	v	file:
-rx_sock	unixsock_server.c	/^static int rx_sock, tx_sock;$/;"	v	file:
-s	ip_addr.h	/^		struct sockaddr     s;$/;"	m	union:sockaddr_union
-s	lex.yy.c	/^		char* s;$/;"	m	struct:str_buf	file:
-s	modules/tm/uac_fifo.c	/^	str s;$/;"	m	struct:str_list	file:
-s	modules/tm/uac_unixsock.c	/^	str s;$/;"	m	struct:str_list	file:
-s	str.h	/^	char* s; \/*string*\/$/;"	m	struct:_str
-s	tcp_conn.h	/^	int s; \/*socket, used by "tcp main" *\/$/;"	m	struct:tcp_connection
-s	usr_avp.h	/^	str *s;$/;"	m
-s1	modules/cpl-c/cpl_nonsig.h	/^	str s1;$/;"	m	struct:cpl_cmd
-s2	modules/cpl-c/cpl_nonsig.h	/^	str s2;$/;"	m	struct:cpl_cmd
-s2b	mem/vq_malloc.h	/^	unsigned char s2b[ MAX_FIXED_BLOCK ];$/;"	m	struct:vqm_block
-s2b_step	mem/vq_malloc.c	/^int s2b_step[] = {8, 16, 32, 64, 128, 256, 512, 1024, 1536, 2048, 2560,$/;"	v
-s2s	mem/vq_malloc.h	/^	unsigned short s2s[ MAX_FIXED_BLOCK ];$/;"	m	struct:vqm_block
-s3	modules/cpl-c/cpl_nonsig.h	/^	str s3;$/;"	m	struct:cpl_cmd
-sId	modules/acc/diam_message.h	/^	AAASessionId        *sId;$/;"	m	struct:_message_t
-sId	modules/auth_diameter/diameter_msg.h	/^	AAASessionId        *sId;$/;"	m	struct:_message_t
-s_buf	lex.yy.c	/^	static struct str_buf s_buf;$/;"	v	file:
-s_client_transactions	modules/tm/t_stats.h	/^	stat_counter *s_client_transactions;$/;"	m	struct:t_stats
-s_id	modules/pa/watcher.h	/^	str s_id;               \/* id of this watcherinfo statement *\/$/;"	m	struct:watcher
-s_ll	modules/usrloc/urecord.h	/^	} s_ll;$/;"	m	struct:urecord
-s_table	modules/tm/h_table.h	/^struct s_table$/;"	s
-s_tmp	cfg.tab.c	/^static str s_tmp;$/;"	v	file:
-s_transactions	modules/tm/t_stats.h	/^	stat_counter *s_transactions;$/;"	m	struct:t_stats
-s_waiting	modules/tm/t_stats.h	/^	stat_counter *s_waiting;$/;"	m	struct:t_stats
-sa	modules/avpops/avpops_impl.h	/^	str              sa;       \/* attribute as str (for db queries) *\/$/;"	m	struct:db_param
-same_net	modules/mangler/ip_helper.c	/^same_net (unsigned int ip, unsigned int address, unsigned int mask)$/;"	f
-save	modules/registrar/save.c	/^int save(struct sip_msg* _m, char* _t, char* _s)$/;"	f
-save_memory	modules/registrar/save.c	/^int save_memory(struct sip_msg* _m, char* _t, char* _s)$/;"	f
-save_noreply	modules/registrar/save.c	/^int save_noreply(struct sip_msg* _m, char* _t, char* _s)$/;"	f
-save_real	modules/registrar/save.c	/^static inline int save_real(struct sip_msg* _m, udomain_t* _t, char* _s, int doreply)$/;"	f	file:
-save_rpid	modules/auth/rpid.c	/^void save_rpid(str* _rpid)$/;"	f
-save_ruri	modules/rr/loose.c	/^static inline int save_ruri(struct sip_msg* _m)$/;"	f	file:
-sbuf	modules/nathelper/nathelper.c	/^static const char sbuf[4] = {0, 0, 0, 0};$/;"	v	file:
-sc_body	modules/msilo/msilo.c	/^char *sc_body     = "body";      \/* 5 *\/$/;"	v
-sc_ctype	modules/msilo/msilo.c	/^char *sc_ctype    = "ctype";     \/* 6 *\/$/;"	v
-sc_exp_time	modules/msilo/msilo.c	/^char *sc_exp_time = "exp_time";  \/* 7 *\/$/;"	v
-sc_from	modules/msilo/msilo.c	/^char *sc_from     = "src_addr";  \/* 1 *\/$/;"	v
-sc_inc_time	modules/msilo/msilo.c	/^char *sc_inc_time = "inc_time";  \/* 8 *\/$/;"	v
-sc_mid	modules/msilo/msilo.c	/^char *sc_mid      = "mid";       \/* 0 *\/$/;"	v
-sc_to	modules/msilo/msilo.c	/^char *sc_to       = "dst_addr";  \/* 2 *\/$/;"	v
-sc_uri_host	modules/msilo/msilo.c	/^char *sc_uri_host = "domain";    \/* 4 *\/$/;"	v
-sc_uri_user	modules/msilo/msilo.c	/^char *sc_uri_user = "username";  \/* 3 *\/$/;"	v
-sched_yield	fastlock.h	56;"	d
-schedule_to_kill	modules/exec/kill.c	/^int schedule_to_kill( int pid )$/;"	f
-scheme	modules/avpops/avpops_impl.h	/^	struct db_scheme *scheme;  \/* DB scheme name *\/$/;"	m	struct:db_param
-script	modules/cpl-c/cpl_run.h	/^	str script;            \/* CPL script *\/$/;"	m	struct:cpl_interpreter
-script_cb	script_cb.h	/^struct script_cb{$/;"	s
-script_init	modules/tm/tm.c	/^static int script_init( struct sip_msg *foo, void *bar)$/;"	f	file:
-sd_domain_column	modules/speeddial/speeddial.c	/^char* sd_domain_column = "sd_domain";$/;"	v
-sd_lookup	modules/speeddial/sdlookup.c	/^int sd_lookup(struct sip_msg* _msg, char* _table, char* _str2)$/;"	f
-sd_user_column	modules/speeddial/speeddial.c	/^char* sd_user_column   = "sd_username";$/;"	v
-sdp_1918	modules/nathelper/nathelper.c	/^sdp_1918(struct sip_msg* msg)$/;"	f	file:
-sdp_mangle_ip	modules/mangler/sdp_mangler.c	/^sdp_mangle_ip (struct sip_msg *msg, char *oldip, char *newip)$/;"	f
-sdp_mangle_port	modules/mangler/sdp_mangler.c	/^sdp_mangle_port (struct sip_msg *msg, char *offset, char *unused)$/;"	f
-search_and_duplicate_hdr	modules/cpl-c/cpl_proxy.h	47;"	d
-search_append_f	modules/textops/textops.c	/^static int search_append_f(struct sip_msg* msg, char* key, char* str)$/;"	f	file:
-search_expression	modules/permissions/rule.c	/^int search_expression(expression *e, char *value) $/;"	f
-search_f	modules/textops/textops.c	/^static int search_f(struct sip_msg* msg, char* key, char* str2)$/;"	f	file:
-search_first_avp	usr_avp.c	/^struct usr_avp *search_first_avp( unsigned short name_type,$/;"	f
-search_next_avp	usr_avp.c	/^struct usr_avp *search_next_avp( struct usr_avp *avp,  int_str *val )$/;"	f
-search_rule	modules/permissions/rule.c	/^int search_rule(rule *r, char *left, char *right) $/;"	f
-search_the_list	modules/cpl-c/sub_list.c	/^char* search_the_list(struct node *head, char *name)$/;"	f
-search_tw_append	modules/tm/t_fifo.c	/^static struct tw_append *search_tw_append(char *name, int len)$/;"	f	file:
-sec_param	modules/auth/auth_mod.c	/^char* sec_param    = 0;   \/* If the parameter was not used, the secret phrase will be auto-generated *\/$/;"	v
-sec_rand	modules/auth/auth_mod.c	/^char* sec_rand = 0;$/;"	v
-second	modules/mangler/contact_ops.h	/^	int second;$/;"	m	struct:uri_format
-secret	modules/auth/auth_mod.c	/^str secret;$/;"	v
-secure	modules/tm/dlg.h	/^	unsigned char secure;   \/* Secure flag -- currently not used *\/$/;"	m	struct:dlg
-secure	parser/msg_parser.h	/^	int secure; \/* 1 if is a sips, 0 otherwise *\/$/;"	m	struct:sip_uri
-sem	modules/dbtext/dbt_lib.h	/^	gen_lock_t sem;$/;"	m	struct:_dbt_cache
-sem	modules/dbtext/dbt_lib.h	/^	gen_lock_t sem;$/;"	m	struct:_tbl_cache
-sem	test/locking/locking_test.c	/^static sem_t sem;$/;"	v	file:
-sem_done	modules/msilo/ms_msg_list.h	/^	gen_lock_t  sem_done;$/;"	m	struct:_msg_list
-sem_nr	modules/tm/lock.c	/^static int sem_nr;$/;"	v	file:
-sem_sent	modules/msilo/ms_msg_list.h	/^	gen_lock_t  sem_sent;$/;"	m	struct:_msg_list
-semaphore_index	modules/tm/lock.h	/^	int semaphore_index;$/;"	m
-semaphore_set	modules/tm/lock.h	/^	gen_lock_set_t* semaphore_set;$/;"	m
-semicolon_case	parser/parse_uri.c	157;"	d	file:
-semicolon_case	test/p_uri.c	139;"	d	file:
-semid	lock_ops.h	/^	int semid;$/;"	m	struct:gen_lock_set_t_
-semid	test/locking/locking_test.c	/^static int semid=-1;$/;"	v	file:
-semidouble_log	db/db_fifo.c	102;"	d	file:
-sems	modules/jabber/xjab_worker.h	/^	gen_lock_set_t	 *sems;	 \/\/ semaphores$/;"	m	struct:_xj_wlist
-semun	lock_ops.h	/^	union semun {$/;"	u
-semun	test/locking/locking_test.c	/^	union semun {$/;"	u	file:
-send2child	tcp_main.c	/^static int send2child(struct tcp_connection* tcpconn)$/;"	f	file:
-sendMediaproxyCommand	modules/mediaproxy/mediaproxy.c	/^sendMediaproxyCommand(char *command)$/;"	f	file:
-send_all	pass_fd.c	/^int send_all(int socket, void* data, int data_len)$/;"	f
-send_as_sms	modules/sms/sms_funcs.c	/^int send_as_sms(struct sms_msg *sms_messg, struct modem *mdm)$/;"	f
-send_error	modules/sms/sms_funcs.c	/^inline int send_error(struct sms_msg *sms_messg, char *msg1_s, int msg1_len,$/;"	f
-send_fd	pass_fd.c	/^int send_fd(int unix_socket, void* data, int data_len, int fd)$/;"	f
-send_local_ack	modules/tm/t_reply.c	/^static int send_local_ack(struct sip_msg* msg, str* next_hop,$/;"	f	file:
-send_location_notify	modules/pa/notify.c	/^int send_location_notify(struct presentity* _p, struct watcher* _w)$/;"	f
-send_lpidf_notify	modules/pa/notify.c	/^static int send_lpidf_notify(struct presentity* _p, struct watcher* _w)$/;"	f	file:
-send_mail	modules/cpl-c/cpl_nonsig.c	/^static inline void send_mail( struct cpl_cmd *cmd)$/;"	f	file:
-send_notify	modules/pa/notify.c	/^int send_notify(struct presentity* _p, struct watcher* _w)$/;"	f
-send_pidf_notify	modules/pa/notify.c	/^static int send_pidf_notify(struct presentity* _p, struct watcher* _w)$/;"	f	file:
-send_pr_buffer	modules/tm/t_funcs.c	/^int send_pr_buffer(	struct retr_buf *rb, void *buf, int len$/;"	f
-send_reply	modules/pa/reply.c	/^int send_reply(struct sip_msg* _m)$/;"	f
-send_reply	modules/registrar/reply.c	/^int send_reply(struct sip_msg* _m)$/;"	f
-send_reply	modules/tm/t_reply.c	/^static int send_reply(struct cell *trans, unsigned int code, str* text, str* body, str* headers, str* to_tag)$/;"	f	file:
-send_resp	modules/auth/common.c	/^int send_resp(struct sip_msg* _m, int _code, char* _reason,$/;"	f
-send_resp	modules/auth_diameter/authorize.c	/^int send_resp(struct sip_msg* m, int code, char* reason,$/;"	f
-send_rtpp_command	modules/nathelper/nathelper.c	/^send_rtpp_command(struct iovec *v, int vcnt)$/;"	f	file:
-send_sip_msg_request	modules/sms/sms_funcs.c	/^int send_sip_msg_request(str *to, str *from_user, str *body)$/;"	f
-send_sip_req	modules/extcmd/extcmd_funcs.c	/^int send_sip_req(str* msg_type, str *msg, int client_fd)$/;"	f
-send_sms_as_sip	modules/sms/sms_funcs.c	/^int send_sms_as_sip( struct incame_sms *sms )$/;"	f
-send_sock	ip_addr.h	/^	struct socket_info* send_sock;$/;"	m	struct:dest_info
-send_winfo_notify	modules/pa/notify.c	/^static int send_winfo_notify(struct presentity* _p, struct watcher* _w)$/;"	f	file:
-send_xcap_change_notify	modules/pa/notify.c	/^static int send_xcap_change_notify(struct presentity* _p, struct watcher* _w)$/;"	f	file:
-send_xpidf_notify	modules/pa/notify.c	/^static int send_xpidf_notify(struct presentity* _p, struct watcher* _w)$/;"	f	file:
-sender	modules/sms/sms_funcs.h	/^	char sender[31];$/;"	m	struct:incame_sms
-sendipv4	main.c	/^struct socket_info* sendipv4; \/* ipv4 socket to use when msg. comes from ipv6*\/$/;"	v
-sendipv4_tcp	main.c	/^struct socket_info* sendipv4_tcp; $/;"	v
-sendipv4_tls	main.c	/^struct socket_info* sendipv4_tls;$/;"	v
-sendipv6	main.c	/^struct socket_info* sendipv6; \/* same as above for ipv6 *\/$/;"	v
-sendipv6_tcp	main.c	/^struct socket_info* sendipv6_tcp; $/;"	v
-sendipv6_tls	main.c	/^struct socket_info* sendipv6_tls;$/;"	v
-sendto_prog	modules/ext/my_exec.h	/^inline int sendto_prog(char *in, int in_len, int end_it)$/;"	f
-sent_requests_ack	stats.h	/^	sent_requests_ack,$/;"	m	struct:stats_s
-sent_requests_bye	stats.h	/^	sent_requests_bye,$/;"	m	struct:stats_s
-sent_requests_cnc	stats.h	/^	sent_requests_cnc,$/;"	m	struct:stats_s
-sent_requests_inv	stats.h	/^	sent_requests_inv,$/;"	m	struct:stats_s
-sent_requests_other	stats.h	/^	sent_requests_other,$/;"	m	struct:stats_s
-sent_responses_1	stats.h	/^	sent_responses_1,$/;"	m	struct:stats_s
-sent_responses_2	stats.h	/^	sent_responses_2,$/;"	m	struct:stats_s
-sent_responses_3	stats.h	/^	sent_responses_3,$/;"	m	struct:stats_s
-sent_responses_4	stats.h	/^	sent_responses_4,$/;"	m	struct:stats_s
-sent_responses_5	stats.h	/^	sent_responses_5,$/;"	m	struct:stats_s
-sent_responses_6	stats.h	/^	sent_responses_6,$/;"	m	struct:stats_s
-separator	modules/auth_diameter/defs.h	40;"	d
-seq_nr	modules/jabber/xjab_jcon.h	/^	int seq_nr;			\/\/ sequence number$/;"	m	struct:_xj_jcon
-ser_backup	scripts/ser_mysql.sh	/^ser_backup() # par: <database name>$/;"	f
-ser_create	scripts/ser_mysql.sh	/^ser_create () # pars: <database name> [<no_init_user>]$/;"	f
-ser_drop	scripts/ser_mysql.sh	/^ser_drop()  # pars: <database name>$/;"	f
-ser_dump	scripts/ser_mysql.sh	/^ser_dump()  # pars: <database name>$/;"	f
-ser_error	error.c	/^int ser_error=-1;$/;"	v
-ser_lock_t	modules/tm/lock.h	/^} ser_lock_t;$/;"	t
-ser_lock_t	modules/tm/lock.h	47;"	d
-ser_memmem	modules/nathelper/nathelper.c	/^ser_memmem(const void *b1, const void *b2, size_t len1, size_t len2)$/;"	f	file:
-ser_restore	scripts/ser_mysql.sh	/^ser_restore() #pars: <database name> <filename>$/;"	f
-ser_start	etc/sr	/^ser_start() {$/;"	f
-ser_stop	etc/sr	/^ser_stop() {$/;"	f
-server	modules/jabber/xjab_jconf.h	/^	str server;$/;"	m	struct:_xj_jconf
-server_signature	main.c	/^int server_signature=1;$/;"	v
-server_sock	modules/extcmd/extcmd.c	/^int    server_sock;$/;"	v
-service	modules/enum/enum_mod.c	/^str service;$/;"	v
-service_type	modules/acc/acc_mod.c	/^static int service_type = -1;$/;"	v	file:
-service_type	modules/auth_radius/authrad_mod.c	/^static int service_type = -1;$/;"	v	file:
-service_type	modules/uri_radius/urirad_mod.c	/^static int service_type = -1;$/;"	v	file:
-services	resolve.h	/^	char services[MAX_DNS_STRING];$/;"	m	struct:naptr_rdata
-services_len	resolve.h	/^	unsigned int services_len;$/;"	m	struct:naptr_rdata
-sessionId	modules/acc/diam_message.h	/^	AAA_AVP             *sessionId;$/;"	m	struct:_message_t
-sessionId	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP             *sessionId;$/;"	m	struct:_message_t
-set_1timer	modules/tm/timer.c	/^void set_1timer( struct timer_link *new_tl, enum lists list_id, unsigned int* ext_timeout )$/;"	f
-set_3bytes	modules/acc/diam_message.c	44;"	d	file:
-set_3bytes	modules/auth_diameter/message.c	44;"	d	file:
-set_4bytes	modules/acc/diam_message.c	48;"	d	file:
-set_4bytes	modules/auth_diameter/message.c	48;"	d	file:
-set_TZ	modules/cpl-c/cpl_switches.h	/^inline static int set_TZ(char *tz_env)$/;"	f
-set_attr_type	modules/cpl-c/cpl_parser.c	81;"	d	file:
-set_avp_fields	modules/acc/diam_avp.c	/^inline void set_avp_fields( AAA_AVPCode code, AAA_AVP *avp)$/;"	f
-set_avp_fields	modules/auth_diameter/avp.c	/^inline void set_avp_fields( AAA_AVPCode code, AAA_AVP *avp)$/;"	f
-set_avp_list	usr_avp.c	/^struct usr_avp** set_avp_list( struct usr_avp **list )$/;"	f
-set_core_dump	daemonize.c	/^int set_core_dump(int enable, int size)$/;"	f
-set_date	modules/sms/libsms_getsms.c	32;"	d	file:
-set_dst_uri	parser/msg_parser.c	/^int set_dst_uri(struct sip_msg* msg, str* uri)$/;"	f
-set_env	modules/exec/exec_hf.c	/^environment_t *set_env(struct sip_msg *msg)$/;"	f
-set_final_timer	modules/tm/t_reply.c	/^void set_final_timer( \/* struct s_table *h_table, *\/ struct cell *t )$/;"	f
-set_gettime_function	modules/sms/sms_report.c	/^void set_gettime_function()$/;"	f
-set_gflag	modules/gflags/gflags.c	/^static int set_gflag(struct sip_msg *bar, char *flag_par, char *foo) $/;"	f	file:
-set_global_address	parser/msg_parser.h	/^	str set_global_address;$/;"	m	struct:sip_msg
-set_global_port	parser/msg_parser.h	/^	str set_global_port;$/;"	m	struct:sip_msg
-set_hostport	msg_translator.h	66;"	d
-set_iattr	modules/avp/avp.c	/^static int set_iattr(struct sip_msg* msg, char* attr, char* nr) $/;"	f	file:
-set_kr	modules/tm/h_table.c	/^void set_kr( enum kill_reason _kr )$/;"	f
-set_mod_param	modparam.c	/^int set_mod_param(char* _mod, char* _name, modparam_t _type, void* _val)$/;"	f
-set_mod_param_regex	modparam.c	/^int set_mod_param_regex(char* regex, char* name, modparam_t type, void* val)$/;"	f
-set_modem_arg	modules/sms/sms.c	/^int set_modem_arg(struct modem *mdm, char *arg, char *arg_end)$/;"	f
-set_network_arg	modules/sms/sms.c	/^int set_network_arg(struct network *net, char *arg, char *arg_end)$/;"	f
-set_ruri_q	dset.c	/^void set_ruri_q(qvalue_t q)$/;"	f
-set_sattr	modules/avp/avp.c	/^static int set_sattr(struct sip_msg* msg, char* attr, char* val) $/;"	f	file:
-set_sig_h	main.c	/^static void (*set_sig_h(int sig, void (*handler) (int) ))(int)$/;"	f	file:
-set_sig_h	main.c	430;"	d	file:
-set_t	modules/tm/t_lookup.c	/^void set_t(struct cell *t) { T=t; }$/;"	f
-set_table	modules/avpops/avpops_db.c	/^static inline int set_table( char *table, char *func)$/;"	f	file:
-set_time	modules/sms/libsms_getsms.c	42;"	d	file:
-set_timer	modules/tm/timer.c	/^void set_timer( struct timer_link *new_tl, enum lists list_id, unsigned int* ext_timeout )$/;"	f
-set_user	scripts/sc	/^set_user() {$/;"	f
-set_user	scripts/sc_unixsock	/^set_user() {$/;"	f
-setflag	flags.c	/^int setflag( struct sip_msg* msg, flag_t flag ) {$/;"	f
-setmodemparams	modules/sms/libsms_modem.c	/^int setmodemparams( struct modem *mdm )$/;"	f
-setsmsc	modules/sms/libsms_modem.c	/^int setsmsc(struct modem *mdm, char *smsc)$/;"	f
-setstats	stats.c	/^void setstats(int child_index)$/;"	f
-setup_mcast_rcvr	udp_server.c	/^static int setup_mcast_rcvr(int sock, union sockaddr_union* addr)$/;"	f	file:
-setvars	modules/exec/exec_hf.c	/^unsigned int setvars=1;$/;"	v
-sfree	modules/jabber/tree234.c	42;"	d	file:
-sgn_str2float	db/db_fifo.c	/^static inline int sgn_str2float(str* _s, float* _r, db_type_t* _type )$/;"	f	file:
-sh_realloc	mem/shm_mem.c	/^inline static void* sh_realloc(void* p, unsigned int size)$/;"	f	file:
-sha_hash	modules/jabber/sha.c	/^sha_hash(int *data, int *hash)  $/;"	f
-sha_init	modules/jabber/sha.c	/^sha_init(int *hash) $/;"	f
-shahash	modules/jabber/sha.c	/^char *shahash(const char *str) $/;"	f
-shm_block	mem/shm_mem.c	/^	struct fm_block* shm_block;$/;"	v
-shm_block	mem/shm_mem.c	/^	struct qm_block* shm_block;$/;"	v
-shm_block	mem/shm_mem.c	/^	struct vqm_block* shm_block;$/;"	v
-shm_duplicate_params	parser/parse_param.c	/^int shm_duplicate_params(param_t** _n, param_t* _p)$/;"	f
-shm_duplicate_rr	parser/parse_rr.c	/^int shm_duplicate_rr(rr_t** _new, rr_t* _r)$/;"	f
-shm_free	mem/shm_mem.h	162;"	d
-shm_free	mem/shm_mem.h	208;"	d
-shm_free_params	parser/parse_param.c	/^void shm_free_params(param_t* _p)$/;"	f
-shm_free_rr	parser/parse_rr.c	/^void shm_free_rr(rr_t** _r)$/;"	f
-shm_free_unsafe	mem/shm_mem.h	159;"	d
-shm_free_unsafe	mem/shm_mem.h	206;"	d
-shm_getmem	mem/shm_mem.c	/^int shm_getmem()$/;"	f
-shm_lock	mem/shm_mem.h	114;"	d
-shm_malloc	mem/shm_mem.h	/^inline static void* shm_malloc(unsigned int size)$/;"	f
-shm_malloc	mem/shm_mem.h	151;"	d
-shm_malloc_init	mem/shm_mem.h	81;"	d
-shm_malloc_init	mem/shm_mem.h	90;"	d
-shm_malloc_init	mem/shm_mem.h	98;"	d
-shm_malloc_unsafe	mem/shm_mem.h	125;"	d
-shm_malloc_unsafe	mem/shm_mem.h	182;"	d
-shm_mem_destroy	mem/shm_mem.c	/^void shm_mem_destroy()$/;"	f
-shm_mem_h	mem/shm_mem.h	40;"	d
-shm_mem_init	mem/shm_mem.c	/^int shm_mem_init()$/;"	f
-shm_mem_init_mallocs	mem/shm_mem.c	/^int shm_mem_init_mallocs(void* mempool, unsigned long pool_size)$/;"	f
-shm_mem_size	main.c	/^unsigned long shm_mem_size=SHM_MEM_SIZE * 1024 * 1024;$/;"	v
-shm_mem_size	test/dns_query.c	/^long shm_mem_size=0;$/;"	v
-shm_mempool	mem/shm_mem.c	/^static void* shm_mempool=(void*)-1;$/;"	v	file:
-shm_realloc	mem/shm_mem.h	/^inline static void* shm_realloc(void *ptr, unsigned int size)$/;"	f
-shm_realloc	mem/shm_mem.h	154;"	d
-shm_resize	mem/shm_mem.h	173;"	d
-shm_resize	mem/shm_mem.h	218;"	d
-shm_shmid	mem/shm_mem.c	/^static int shm_shmid=-1; \/*shared memory id*\/$/;"	v	file:
-shm_status	mem/shm_mem.h	225;"	d
-shm_unlock	mem/shm_mem.h	115;"	d
-shoot	test/shoot.c	/^void shoot(char *buff, long address, int lport, int rport )$/;"	f
-shoot	test/shoot2.c	/^void shoot(char *buff, long address, int lport, int rport )$/;"	f
-shoot	test/udp.c	/^void shoot()$/;"	f
-should_acc_reply	modules/acc/acc_mod.c	/^static inline int should_acc_reply(struct cell *t, int code)$/;"	f	file:
-should_cancel_branch	modules/tm/t_cancel.h	/^inline short static should_cancel_branch( struct cell *t, int b )$/;"	f
-si_flags	ip_addr.h	/^enum si_flags { SI_NONE=0, SI_IS_IP=1, SI_IS_LO=2, SI_IS_MCAST=4 };$/;"	g
-sibling	modules/postgres/aug_alloc.c	/^	MemHead *parent, *sibling, *child;$/;"	m	struct:MemHeadStruct	file:
-sig_alarm_abort	main.c	/^static void sig_alarm_abort(int signo)$/;"	f	file:
-sig_alarm_kill	main.c	/^static void sig_alarm_kill(int signo)$/;"	f	file:
-sig_chld	modules/ext/my_exec.c	/^static void sig_chld(int signo)$/;"	f	file:
-sig_flag	main.c	/^int sig_flag = 0;              \/* last signal received *\/$/;"	v
-sig_usr	main.c	/^static void sig_usr(int signo)$/;"	f	file:
-signature	examples/web_im/click_to_dial.php	/^$signature="web_test_0.0.0";$/;"	v
-signature	examples/web_im/send_im.php	/^$signature="web_test_0.0.0";$/;"	v
-silo	modules/msilo/doc/msilo.sql	/^CREATE TABLE silo($/;"	t
-sin	ip_addr.h	/^		struct sockaddr_in  sin;$/;"	m	union:sockaddr_union
-sin6	ip_addr.h	/^		struct sockaddr_in6 sin6;$/;"	m	union:sockaddr_union
-single_fixup	modules/permissions/permissions.c	/^static int single_fixup(void** param, int param_no)$/;"	f	file:
-sipAsymmetrics	modules/mediaproxy/mediaproxy.c	/^static AsymmetricClients sipAsymmetrics = {$/;"	v	file:
-sipMethodStatsTable_register	stats.c	/^static int sipMethodStatsTable_register(const struct stats_funcs *f)$/;"	f	file:
-sipStatsMethod_handler	stats.c	/^static int sipStatsMethod_handler(struct sip_snmp_obj *o, enum handler_op op)$/;"	f	file:
-sipStatusCodesTable_register	stats.c	/^static int sipStatusCodesTable_register(const struct stats_funcs *f)$/;"	f	file:
-sipStatusCodes_handler	stats.c	/^static int sipStatusCodes_handler(struct sip_snmp_obj *o, enum handler_op op)$/;"	f	file:
-sipSummaryStatsTable_register	stats.c	/^static int sipSummaryStatsTable_register(const struct stats_funcs *f)$/;"	f	file:
-sip_CASE	parser/case_sip.h	24;"	d
-sip_db_cpas	modules/jabber/doc/web/subscribe.php	/^$sip_db_cpas="password"; # column name for user's password$/;"	v
-sip_db_cusr	modules/jabber/doc/web/subscribe.php	/^$sip_db_cusr="user"; # column name for username$/;"	v
-sip_db_db	modules/jabber/doc/web/subscribe.php	/^$sip_db_db="ser";   # database name$/;"	v
-sip_db_pas	modules/jabber/doc/web/subscribe.php	/^$sip_db_pas="***";  # database user's password$/;"	v
-sip_db_srv	modules/jabber/doc/web/subscribe.php	/^$sip_db_srv="127.0.0.1";  # database server$/;"	v
-sip_db_tab	modules/jabber/doc/web/subscribe.php	/^$sip_db_tab="subscriber";  # name of users table$/;"	v
-sip_db_usr	modules/jabber/doc/web/subscribe.php	/^$sip_db_usr="ser";  # database user$/;"	v
-sip_ids	modules/jabber/xjab_worker.h	/^	tree234 *sip_ids;   \/\/ sip ids allocated for the worker$/;"	m	struct:_xj_worker
-sip_match	modules/enum/enum.c	/^static inline int sip_match( struct naptr_rdata* naptr, str* service)$/;"	f	file:
-sip_msg	parser/msg_parser.h	/^struct sip_msg {$/;"	s
-sip_msg_cloner	modules/tm/sip_msg.c	/^struct sip_msg*  sip_msg_cloner( struct sip_msg *org_msg, int *sip_msg_len )$/;"	f
-sip_msg_free	modules/tm/sip_msg.h	39;"	d
-sip_msg_free_unsafe	modules/tm/sip_msg.h	40;"	d
-sip_protos	ip_addr.h	/^enum sip_protos { PROTO_NONE, PROTO_UDP, PROTO_TCP, PROTO_TLS, PROTO_SCTP };$/;"	g
-sip_resolvehost	resolve.c	/^struct hostent* sip_resolvehost(str* name, unsigned short* port, int proto)$/;"	f
-sip_uri	parser/msg_parser.h	/^struct sip_uri {$/;"	s
-sip_uri	test/p_uri.c	/^struct sip_uri {$/;"	s	file:
-sip_warning	main.c	/^int sip_warning = 1;$/;"	v
-sipuri	modules/jabber/doc/web/subscribe.php	/^	$sipuri = "sip:".$sipname."@iptel.org";$/;"	v
-site	modules/pa/presentity.h	/^	str   site;$/;"	m	struct:location
-site_buf	modules/pa/presentity.h	/^	char site_buf[TUPLE_LOCATION_SITE_LEN];$/;"	m	struct:location
-siti_CASE	parser/case_acce.h	69;"	d
-size	lock_ops.h	/^	int size;$/;"	m	struct:gen_lock_set_t_
-size	lock_ops.h	/^	long size;$/;"	m	struct:gen_lock_set_t_
-size	mem/f_malloc.h	/^	unsigned long size; \/* total size *\/$/;"	m	struct:fm_block
-size	mem/f_malloc.h	/^	unsigned long size;$/;"	m	struct:fm_frag
-size	mem/q_malloc.h	/^	unsigned long size; \/* total size *\/$/;"	m	struct:qm_block
-size	mem/q_malloc.h	/^	unsigned long size;$/;"	m	struct:qm_frag
-size	mem/q_malloc.h	/^	unsigned long size;$/;"	m	struct:qm_frag_end
-size	mem/vq_malloc.h	/^	unsigned long size; $/;"	m	struct:vqm_frag_end
-size	mem/vq_malloc.h	/^	unsigned long size;$/;"	m	struct:vqm_frag
-size	modules/jabber/xjab_util.h	/^	int size;		\/\/ number of elements in the queue$/;"	m	struct:_xj_jmsg_queue
-size	modules/jabber/xjab_worker.h	/^	int size;	\/\/ number of aliases$/;"	m	struct:_xj_jalias
-size	modules/jabber/xode.h	/^    int size, used;$/;"	m	struct:xode_pool_heap
-size	modules/jabber/xode.h	/^    int size;$/;"	m	struct:xode_pool_struct
-size	modules/mediaproxy/mediaproxy.c	/^    int size;          \/\/ size of array above$/;"	m	file:
-size	modules/pa/pdomain.h	/^	int size;                   \/* Hash table size *\/$/;"	m	struct:pdomain
-size	modules/usrloc/udomain.h	/^	int size;                      \/* Hash table size *\/$/;"	m	struct:udomain
-size	parser/parse_via.h	/^	int size;               \/* total size, including preceding and trailing$/;"	m	struct:via_param
-size	re.h	/^	int size;   \/* at offset, delete size bytes and replace them with rpl *\/$/;"	m	struct:replace_lst
-size	re.h	/^	int size;   \/* size of replace "anchor" in string *\/$/;"	m	struct:replace_with
-size2bucket	mem/vq_malloc.c	/^unsigned char size2bucket( struct vqm_block* qm, int *size  )$/;"	f
-skip_cancel	modules/acc/acc.h	/^inline static int skip_cancel(struct sip_msg *msg)$/;"	f
-skip_hf	modules/tm/uac_fifo.c	67;"	d	file:
-skip_hf	modules/tm/uac_unixsock.c	54;"	d	file:
-skip_line	unixsock_server.c	/^static void skip_line(str* buffer)$/;"	f	file:
-skip_name	parser/contact/contact.c	/^static inline int skip_name(str* _s)$/;"	f	file:
-skip_token	parser/parse_event.c	/^static inline char* skip_token(char* _b, int _l)$/;"	f	file:
-skip_token	parser/parse_sipifmatch.c	/^static inline char* skip_token(char* _b, int _l)$/;"	f	file:
-skip_uri	parser/contact/contact.c	/^static inline int skip_uri(str* _s)$/;"	f	file:
-skip_ws	parser/parse_hname2.c	/^static inline char* skip_ws(char* p, unsigned int size)$/;"	f	file:
-sl_exports	modules/sl/sl.c	/^struct module_exports sl_exports = {$/;"	v
-sl_filter_ACK	modules/sl/sl_funcs.c	/^int sl_filter_ACK(struct sip_msg *msg, void *bar )$/;"	f
-sl_reply	modules/auth/auth_mod.c	/^int (*sl_reply)(struct sip_msg* _msg, char* _str1, char* _str2);$/;"	v
-sl_reply	modules/auth_db/authdb_mod.c	/^int (*sl_reply)(struct sip_msg* _msg, char* _str1, char* _str2);$/;"	v
-sl_reply	modules/auth_diameter/auth_diameter.c	/^int (*sl_reply)(struct sip_msg* _msg, char* _str1, char* _str2);$/;"	v
-sl_reply	modules/cpl-c/cpl_env.h	/^	int (*sl_reply)(struct sip_msg* _m, char* _s1, char* _s2);$/;"	m	struct:cpl_functions
-sl_reply	modules/options/mod_options.c	/^int (*sl_reply)(struct sip_msg* _m, char* _s1, char* _s2);$/;"	v
-sl_reply	modules/registrar/reg_mod.c	/^int (*sl_reply)(struct sip_msg* _m, char* _s1, char* _s2);$/;"	v
-sl_reply	modules/speeddial/speeddial.c	/^int (*sl_reply)(struct sip_msg* _m, char* _s1, char* _s2);$/;"	v
-sl_reply_error	modules/sl/sl_funcs.c	/^int sl_reply_error(struct sip_msg *msg )$/;"	f
-sl_reply_error	scripts/serconf.sh	/^			sl_reply_error();$/;"	f
-sl_reply_error	scripts/serconf.sh	/^		sl_reply_error();$/;"	f
-sl_send_reply	modules/sl/sl_funcs.c	/^int sl_send_reply(struct sip_msg *msg ,int code ,char *text )$/;"	f
-sl_shutdown	modules/sl/sl_funcs.c	/^int sl_shutdown()$/;"	f
-sl_startup	modules/sl/sl_funcs.c	/^int sl_startup()$/;"	f
-sl_stats	modules/sl/sl_stats.c	/^static struct sl_stats *sl_stats;$/;"	v	file:
-sl_stats	modules/sl/sl_stats.h	/^struct sl_stats {$/;"	s
-sl_stats_cmd	modules/sl/sl_stats.c	/^int static sl_stats_cmd( FILE *pipe, char *response_file )$/;"	f	file:
-sl_stats_cmd_unixsock	modules/sl/sl_stats.c	/^int static sl_stats_cmd_unixsock( str* msg )$/;"	f	file:
-sl_stats_destroy	modules/sl/sl_stats.c	/^void sl_stats_destroy()$/;"	f
-sl_tag	modules/sl/sl_funcs.c	/^static str            sl_tag = {sl_tag_buf,TOTAG_VALUE_LEN};$/;"	v	file:
-sl_tag_buf	modules/sl/sl_funcs.c	/^static char           sl_tag_buf[TOTAG_VALUE_LEN];$/;"	v	file:
-sl_timeout	modules/sl/sl_funcs.c	/^static unsigned int  *sl_timeout;$/;"	v	file:
-sleep_time	modules/jabber/jabber.c	/^int sleep_time = 20;$/;"	v
-sleep_us	ut.h	/^inline static void sleep_us( unsigned int nusecs )$/;"	f
-sleept	modules/jabber/xjab_worker.h	/^	int sleept;$/;"	m	struct:_xj_wlist
-slot	modules/pa/presentity.h	/^	struct hslot* slot;      \/* Hash table collision slot we belong to *\/$/;"	m	struct:presentity
-slot	modules/usrloc/urecord.h	/^	struct hslot* slot;            \/* Collision slot in the hash table array we belong to *\/$/;"	m	struct:urecord
-slot_add	modules/pa/hslot.c	/^void slot_add(hslot_t* _s, struct presentity* _p, struct presentity** _f, struct presentity** _l)$/;"	f
-slot_add	modules/usrloc/hslot.c	/^void slot_add(hslot_t* _s, struct urecord* _r)$/;"	f
-slot_rem	modules/pa/hslot.c	/^void slot_rem(hslot_t* _s, struct presentity* _p, struct presentity** _f, struct presentity** _l)$/;"	f
-slot_rem	modules/usrloc/hslot.c	/^void slot_rem(hslot_t* _s, struct urecord* _r)$/;"	f
-smalloc	modules/jabber/tree234.c	41;"	d	file:
-sms	modules/sms/sms_report.c	/^	struct sms_msg  *sms;$/;"	m	struct:report_cell	file:
-sms2ascii	modules/sms/libsms_charset.c	/^char sms2ascii(const char c)$/;"	f
-sms_child_init	modules/sms/sms.c	/^int sms_child_init(int rank)$/;"	f
-sms_exit	modules/sms/sms.c	/^static int sms_exit(void)$/;"	f	file:
-sms_id	modules/sms/sms_funcs.h	/^	int  sms_id;$/;"	m	struct:incame_sms
-sms_init	modules/sms/sms.c	/^static int sms_init(void)$/;"	f	file:
-sms_msg	modules/sms/sms_funcs.h	/^struct sms_msg {$/;"	s
-sms_report_type	modules/sms/libsms_modem.c	/^int         sms_report_type;$/;"	v
-sms_report_type	modules/sms/libsms_putsms.c	/^int  sms_report_type;$/;"	v
-sms_report_type	modules/sms/sms.c	/^int    sms_report_type = NO_REPORT;$/;"	v
-sms_report_type	modules/sms/sms_funcs.c	/^int sms_report_type;$/;"	v
-smsc	modules/sms/sms_funcs.h	/^	char smsc[31];$/;"	m	struct:incame_sms
-smsc	modules/sms/sms_funcs.h	/^	char smsc[MAX_CHAR_BUF+1];$/;"	m	struct:modem
-snprintf	modules/jabber/sha.c	60;"	d	file:
-snprintf	modules/jabber/xode.h	72;"	d
-sock	modules/jabber/xjab_jcon.h	/^	int sock;			\/\/ communication socket$/;"	m	struct:_xj_jcon
-sock	modules/tm/t_fifo.c	/^static int sock;$/;"	v	file:
-sock_gid	main.c	/^int sock_gid= -1;$/;"	v
-sock_group	main.c	/^char* sock_group=0;$/;"	v
-sock_listadd	socket_info.c	68;"	d	file:
-sock_listins	socket_info.c	82;"	d	file:
-sock_listrm	socket_info.c	96;"	d	file:
-sock_mode	main.c	/^int sock_mode= S_IRUSR| S_IWUSR| S_IRGRP| S_IWGRP; \/* rw-rw---- *\/$/;"	v
-sock_uid	main.c	/^int sock_uid= -1;$/;"	v
-sock_user	main.c	/^char* sock_user=0;$/;"	v
-sockaddr2ip_addr	ip_addr.h	/^static inline void sockaddr2ip_addr(struct ip_addr* ip, struct sockaddr* sa)$/;"	f
-sockaddr_union	ip_addr.h	/^union sockaddr_union{$/;"	u
-sockaddru_len	ip_addr.h	132;"	d
-sockaddru_len	ip_addr.h	135;"	d
-sockaddru_len	ip_addr.h	139;"	d
-socket	ip_addr.h	/^	int socket;$/;"	m	struct:socket_info
-socket_id	ip_addr.h	/^struct socket_id{$/;"	s
-socket_info	ip_addr.h	/^struct socket_info{$/;"	s
-socket_info_h	socket_info.h	39;"	d
-sockfd	modules/acc/diam_tcp.h	/^int sockfd;$/;"	v
-sockfd	modules/auth_diameter/auth_diameter.h	/^int sockfd;$/;"	v
-sockid	cfg.tab.c	/^	struct socket_id* sockid;$/;"	m	union:YYSTYPE	file:
-sockid	cfg.tab.h	/^	struct socket_id* sockid;$/;"	m	union:YYSTYPE
-source_col	modules/permissions/permissions.c	/^char* source_col = "src_ip";       \/* Name of source address column *\/$/;"	v
-speed_dial	modules/speeddial/doc/speeddial.sql	/^CREATE TABLE speed_dial ($/;"	t
-split_frag	mem/q_malloc.c	/^int split_frag(struct qm_block* qm, struct qm_frag* f, unsigned long new_size,$/;"	f	file:
-split_node	modules/pike/ip_tree.c	/^struct ip_node *split_node(struct ip_node* dad, unsigned char byte)$/;"	f
-split_text	modules/sms/sms_funcs.c	/^inline unsigned int split_text(str *text, unsigned char *lens,int nice)$/;"	f
-split_type_0	modules/sms/libsms_getsms.c	/^int split_type_0( char* Pointer,struct incame_sms *sms)$/;"	f
-split_type_2	modules/sms/libsms_getsms.c	/^int split_type_2( char* position, struct incame_sms *sms)$/;"	f
-splitascii	modules/sms/libsms_getsms.c	/^int splitascii(struct modem *mdm, char *source, struct incame_sms *sms)$/;"	f
-splitpdu	modules/sms/libsms_getsms.c	/^int splitpdu(struct modem *mdm, char* pdu, struct incame_sms *sms)$/;"	f
-sql_buf	modules/mysql/dbase.c	/^static char sql_buf[SQL_BUF_LEN];$/;"	v	file:
-sql_buf	modules/postgres/dbase.c	/^static char sql_buf[SQL_BUF_LEN];$/;"	v	file:
-sql_query	modules/postgres/serpgctl	/^sql_query() {$/;"	f
-sql_query	scripts/sc	/^sql_query() {$/;"	f
-sql_query	scripts/sc_unixsock	/^sql_query() {$/;"	f
-sql_query	scripts/ser_mysql.sh	/^sql_query()$/;"	f
-sql_ro_query	modules/postgres/serpgctl	/^sql_ro_query() {$/;"	f
-sql_ro_query	scripts/sc	/^sql_ro_query() {$/;"	f
-sql_ro_query	scripts/sc_unixsock	/^sql_ro_query() {$/;"	f
-sql_ro_raw_query	modules/postgres/serpgctl	/^sql_ro_raw_query() {$/;"	f
-sqlurl	modules/postgres/con_postgres.h	/^	char *sqlurl;	\/* the url we are connected to, all connection memory$/;"	m	struct:con_postgres
-sr_module	sr_module.h	/^struct sr_module{$/;"	s
-sr_module_h	sr_module.h	45;"	d
-sr_timer	timer.h	/^struct sr_timer{$/;"	s
-src_addr	modules/msilo/doc/msilo.sql	/^    src_addr VARCHAR(255) NOT NULL DEFAULT "",$/;"	F
-src_ip	ip_addr.h	/^	struct ip_addr src_ip;$/;"	m	struct:receive_info
-src_ip	modules/permissions/hash.h	/^	str src_ip;                 \/* Source IP of SIP message *\/$/;"	m	struct:trusted_list
-src_port	ip_addr.h	/^	unsigned short src_port; \/* host byte order *\/$/;"	m	struct:receive_info
-src_su	ip_addr.h	/^	union sockaddr_union src_su; \/* useful for replies*\/$/;"	m	struct:receive_info
-srealloc	modules/jabber/tree234.c	966;"	d	file:
-srv_rdata	resolve.h	/^struct srv_rdata {$/;"	s
-srv_response	modules/auth_diameter/authorize.c	/^int srv_response(struct sip_msg* msg, rd_buf_t * rb, int hftype)$/;"	f
-ss_reason	modules/pa/notify.h	/^typedef enum ss_reason {$/;"	g
-ss_reason_t	modules/pa/notify.h	/^} ss_reason_t;$/;"	t
-st_delete_ucontact	modules/usrloc/ucontact.c	/^int st_delete_ucontact(ucontact_t* _c)$/;"	f
-st_expired_ucontact	modules/usrloc/ucontact.c	/^int st_expired_ucontact(ucontact_t* _c)$/;"	f
-st_flush_ucontact	modules/usrloc/ucontact.c	/^int st_flush_ucontact(ucontact_t* _c)$/;"	f
-st_update_ucontact	modules/usrloc/ucontact.c	/^void st_update_ucontact(ucontact_t* _c)$/;"	f
-stale	parser/digest/digest.h	/^	unsigned char stale;         \/* Flag is set if nonce is stale *\/$/;"	m	struct:auth_body
-star	modules/registrar/save.c	/^static inline int star(udomain_t* _d, str* _a)$/;"	f	file:
-star	parser/contact/parse_contact.h	/^	unsigned char star;    \/* Star contact *\/$/;"	m	struct:contact_body
-start	parser/parse_via.h	/^	char* start;            \/* Pointer to param start, just after ';',$/;"	m	struct:via_param
-start	rpm/ser.init	/^start() {$/;"	f
-start	tcp_conn.h	/^	char* start; \/* where the message starts, after all the empty lines are$/;"	m	struct:tcp_req
-start_fifo_server	fifo_server.c	/^int start_fifo_server()$/;"	f
-start_jab	etc/imgwd	/^start_jab() {$/;"	f
-start_jab	etc/obsoleted/sip2jabd	/^start_jab() {$/;"	f
-start_pidf_doc	modules/pa/pidf.c	/^int start_pidf_doc(str* _b, int _l)$/;"	f
-start_prog	modules/ext/my_exec.c	/^int start_prog( char *cmd )$/;"	f
-start_range	modules/pdt/pdt.c	/^code_t start_range = 10;$/;"	v
-start_retr	modules/tm/t_funcs.c	/^void start_retr( struct retr_buf *rb )$/;"	f
-start_retr	modules/tm/t_funcs.h	/^static void inline start_retr(struct retr_buf *rb)$/;"	f
-start_ser	etc/imgwd	/^start_ser() {$/;"	f
-start_ser	etc/obsoleted/sip2jabd	/^start_ser() {$/;"	f
-start_time	stats.h	/^	time_t		start_time;$/;"	m	struct:stats_s
-start_winfo_doc	modules/pa/watcher.c	/^int start_winfo_doc(str* _b, int _l)$/;"	f
-start_xpidf_doc	modules/pa/xpidf.c	/^int start_xpidf_doc(str* _b, int _l)$/;"	f
-startcolumn	lex.yy.c	/^	int startcolumn=1;$/;"	v
-stat	modules/ext/my_exec.h	/^	int   stat;$/;"	m	struct:program
-stat_counter	modules/tm/t_stats.h	/^typedef unsigned long stat_counter;$/;"	t
-stat_file	stats.c	/^char *stat_file = NULL;		\/* set by the parser *\/$/;"	v
-state	lex.yy.c	/^	static int state=0;$/;"	v	file:
-state	md5.h	/^  UINT4 state[4];                                   \/* state (ABCD) *\/$/;"	m
-state	modules/jabber/xjab_presence.h	/^	int state;$/;"	m	struct:_xj_pres_cell
-state	modules/pa/presentity.h	/^	pstate_t state;$/;"	m	struct:presence_tuple
-state	modules/tm/dlg.h	/^	dlg_state_t state;      \/* State of the dialog *\/$/;"	m	struct:dlg
-state	modules/usrloc/ucontact.h	/^	cstate_t state;         \/* State of the contact *\/$/;"	m	struct:ucontact
-state	tcp_conn.h	/^	enum tcp_conn_states state; \/* connection state *\/$/;"	m	struct:tcp_connection
-state	tcp_conn.h	/^	enum tcp_req_states state;$/;"	m	struct:tcp_req
-state_col	modules/usrloc/ul_mod.c	/^str state_col       = {STATE_COL, sizeof(STATE_COL) - 1};           \/* Name of column containing contact state *\/$/;"	v
-statement	cfg.y	/^statement:	assign_stm $/;"	l
-statements	cfg.y	/^statements:	statements statement {}$/;"	l
-static_defs	Makefile	/^static_defs= $(foreach  mod, $(static_modules), \\$/;"	m
-static_modules	Makefile	/^static_modules=$/;"	m
-static_modules_path	Makefile	/^static_modules_path=$(addprefix modules\/, $(static_modules))$/;"	m
-stats	examples/geo_split.sh	/^stats()$/;"	f
-stats	stats.c	/^struct stats_s *stats;		\/* per process stats structure *\/ $/;"	v
-stats_funcs	stats.c	/^struct stats_funcs {$/;"	s	file:
-stats_h	stats.h	31;"	d
-stats_register	stats.c	/^int stats_register()$/;"	f
-stats_s	stats.h	/^struct stats_s {$/;"	s
-stats_segments	stats.c	/^static int stats_segments=-1;	\/*used also to determine if we've been init'ed*\/$/;"	v	file:
-status	modules/cpl/jcpli.h	/^	int status;$/;"	m	struct:_RejectMessage
-status	modules/jabber/xjab_jconf.h	/^	int status;$/;"	m	struct:_xj_jconf
-status	modules/jabber/xjab_presence.h	/^	int status;$/;"	m	struct:_xj_pres_cell
-status	modules/jabber/xode.h	/^    int status;$/;"	m	struct:xode_stream_struct
-status	modules/pa/presentity.h	/^	str status;$/;"	m	struct:presence_tuple
-status	modules/pa/watcher.h	/^	watcher_status_t status; \/* status of subscription *\/$/;"	m	struct:watcher
-status	modules/sms/sms_report.c	/^	int             status;$/;"	m	struct:report_cell	file:
-status	modules/tm/h_table.h	/^	unsigned int     status;$/;"	m	struct:ua_server
-status	parser/parse_fline.h	/^			str status;       \/* Reply status *\/$/;"	m	struct:msg_start::<anonymous>::<anonymous>
-status	utils/fifo_relay/fifo_server.php	/^  $status = fgetS($fp, 256);$/;"	v
-status_buf	modules/pa/presentity.h	/^	char status_buf[TUPLE_STATUS_STR_LEN];$/;"	m	struct:presence_tuple
-statuscode	parser/parse_fline.h	/^			unsigned int \/* statusclass,*\/ statuscode;$/;"	m	struct:msg_start::<anonymous>::<anonymous>
-stdout_print_ip	ip_addr.c	/^void stdout_print_ip(struct ip_addr* ip)$/;"	f
-still_at_user	parser/parse_uri.c	105;"	d	file:
-still_at_user	test/p_uri.c	87;"	d	file:
-stm	cfg.y	/^stm:		action					{ $$=$1; }$/;"	l
-stop	rpm/ser.init	/^stop() {$/;"	f
-stop_jab	etc/imgwd	/^stop_jab() {$/;"	f
-stop_jab	etc/obsoleted/sip2jabd	/^stop_jab() {$/;"	f
-stop_ser	etc/imgwd	/^stop_ser() {$/;"	f
-stop_ser	etc/obsoleted/sip2jabd	/^stop_ser() {$/;"	f
-store_keys	modules/avpops/avpops_impl.c	/^static db_key_t  store_keys[6];$/;"	v	file:
-store_reply	modules/tm/t_reply.c	/^static int store_reply( struct cell *trans, int branch, struct sip_msg *rpl)$/;"	f	file:
-store_result	modules/mysql/dbase.c	/^static int store_result(db_con_t* _h, db_res_t** _r)$/;"	f	file:
-store_vals	modules/avpops/avpops_impl.c	/^static db_val_t  store_vals[6];$/;"	v	file:
-str	modules/jabber/doc/web/libjab.php	/^	$str = "<iq id='$id' to='$server' type='get'><query xmlns='jabber:iq:register'\/><\/iq>";$/;"	v
-str	modules/jabber/doc/web/libjab.php	/^	$str = "<iq id='$id' to='$server' type='set'><query xmlns='jabber:iq:register'><remove\/><\/query><\/iq>";$/;"	v
-str	modules/jabber/doc/web/libjab.php	/^	$str = "<iq id='$id' to='$server' type='set'><query xmlns='jabber:iq:register'><username>$username<\/username><password>$password<\/password><\/query><\/iq>";$/;"	v
-str	modules/jabber/doc/web/libjab.php	/^	$str = "<iq id='$id' to='$server' type='set'><query xmlns='jabber:iq:register'><username>$username<\/username><password>$password<\/password><nick>$nick<\/nick><key>$key<\/key><\/query><\/iq>";$/;"	v
-str	modules/jabber/doc/web/libjab.php	/^	$str = "<iq id='$id' type='get'><query xmlns='jabber:iq:auth'><username>$user<\/username><\/query><\/iq>";$/;"	v
-str	modules/jabber/doc/web/libjab.php	/^	$str = "<iq id='$id' type='set'><query xmlns='jabber:iq:auth'><username>$user<\/username><resource>webjb<\/resource><password>$passwd<\/password><\/query><\/iq>";$/;"	v
-str	modules/jabber/doc/web/libjab.php	/^	$str = "<iq id='j86' to='$server' type='get'><query xmlns='jabber:iq:agents'\/><\/iq>";$/;"	v
-str	modules/jabber/doc/web/libjab.php	/^    $str = "<presence to='$to' type='$presence'\/>";$/;"	v
-str	modules/pdt/doc/web/request.php	/^	$str = fread($fr, $count);$/;"	v
-str	str.h	/^typedef struct _str str;$/;"	t
-str2double	modules/mysql/val.c	/^static inline int str2double(const char* _s, double* _v)$/;"	f	file:
-str2double	modules/postgres/db_val.c	/^static inline int str2double(const char* _s, double* _v)$/;"	f	file:
-str2facility	dprint.c	/^int str2facility(char *s)$/;"	f
-str2int	modules/mysql/val.c	/^static inline int str2int(const char* _s, int* _v)$/;"	f	file:
-str2int	modules/postgres/db_val.c	/^static inline int str2int(const char* _s, int* _v)$/;"	f	file:
-str2int	ut.h	/^static inline int str2int(str* _s, unsigned int* _r)$/;"	f
-str2ip	resolve.h	/^static inline struct ip_addr* str2ip(str* st)$/;"	f
-str2ip6	resolve.h	/^static inline struct ip_addr* str2ip6(str* st)$/;"	f
-str2q	qvalue.c	/^int str2q(qvalue_t* q, char* s, int len)$/;"	f
-str2s	ut.h	/^static inline unsigned short str2s(char* s, unsigned int len,$/;"	f
-str2time	modules/mysql/val.c	/^static inline int str2time(const char* _s, time_t* _v)$/;"	f	file:
-str2time	modules/postgres/db_val.c	/^static inline int str2time(const char* _s, time_t* _v)$/;"	f	file:
-str2val	modules/mysql/val.c	/^int str2val(db_type_t _t, db_val_t* _v, const char* _s, int _l)$/;"	f
-str2valp	modules/postgres/db_val.c	/^int str2valp(db_type_t _t, db_val_t* _v, const char* _s, int _l, void *_p)$/;"	f
-str_append	modules/pa/common.h	40;"	d
-str_buf	lex.yy.c	/^	struct str_buf{$/;"	s	file:
-str_buf	modules/avpops/avpops_impl.c	/^static char str_buf[STR_BUF_SIZE];$/;"	v	file:
-str_duplicate	modules/tm/dlg.c	/^static inline int str_duplicate(str* _d, str* _s)$/;"	f	file:
-str_fac	dprint.c	/^static char* str_fac[]={"LOG_AUTH","LOG_CRON","LOG_DAEMON",$/;"	v	file:
-str_fixup	mod_fix.h	/^static int str_fixup(void** param, int param_no)$/;"	f
-str_fixup	modules/auth/auth_mod.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/auth_db/authdb_mod.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/auth_diameter/auth_diameter.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/auth_radius/authrad_mod.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/avp/avp.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/diversion/diversion.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/enum/enum_mod.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/rr/rr_mod.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/textops/textops.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_fixup	modules/uri/uri_mod.c	/^static int str_fixup(void** param, int param_no)$/;"	f	file:
-str_h	str.h	30;"	d
-str_int_data	usr_avp.c	/^struct str_int_data {$/;"	s	file:
-str_int_print	msg_translator.c	257;"	d	file:
-str_ipaddr_print	msg_translator.c	263;"	d	file:
-str_lenpair_print	msg_translator.c	248;"	d	file:
-str_list	modules/tm/uac_fifo.c	/^struct str_list {$/;"	s	file:
-str_list	modules/tm/uac_unixsock.c	/^struct str_list {$/;"	s	file:
-str_null	modules/xlog/xl_lib.c	/^static str str_null = { "<null>", 6 };$/;"	v	file:
-str_pair_print	msg_translator.c	254;"	d	file:
-str_param	modules/print/print.c	/^char* str_param;$/;"	v
-str_per	modules/xlog/xl_lib.c	/^static str str_per = { "%", 1 };$/;"	v	file:
-str_print	msg_translator.c	239;"	d	file:
-str_str_data	usr_avp.c	/^struct str_str_data {$/;"	s	file:
-str_strcasecmp	modules/pa/pa_mod.c	/^int str_strcasecmp(const str *stra, const str *strb)$/;"	f
-str_strcmp	modules/pa/pa_mod.c	/^int str_strcmp(const str *stra, const str *strb)$/;"	f
-str_strdup	modules/pa/presentity.c	/^str str_strdup(str string)$/;"	f
-str_tmp	cfg.tab.c	/^static str* str_tmp;$/;"	v	file:
-str_val	db/db_val.h	/^		str           str_val;    \/* str string value *\/$/;"	m
-strcasefind	modules/mediaproxy/mediaproxy.c	/^strcasefind(const char *haystack, size_t len, const char *needle, size_t nlen)$/;"	f	file:
-strcasestr_str	modules/cpl-c/cpl_utils.h	/^static inline char *strcasestr_str(str *s1, str *s2)$/;"	f
-stream	modules/jabber/doc/web/libjab.php	/^	$stream = "<\/stream:stream>";$/;"	v
-stream	modules/jabber/doc/web/libjab.php	/^	$stream = "<stream:stream to='$server' xmlns='jabber:client' xmlns:stream='http:\/\/etherx.jabber.org\/streams'>";$/;"	v
-stream_id	modules/jabber/xjab_jcon.h	/^	char *stream_id;	\/\/ stream id of the session$/;"	m	struct:_xj_jcon
-strfind	modules/mediaproxy/mediaproxy.c	/^strfind(const void *haystack, size_t len, const void *needle, size_t nlen)$/;"	f	file:
-string	route_struct.h	/^		char* string;$/;"	m	union:action::<anonymous>
-string2hex	ut.h	/^inline static int string2hex( $/;"	f
-string_val	db/db_val.h	/^		const char*   string_val; \/* NULL terminated string *\/$/;"	m
-strings	modules/jabber/tree234.c	/^char *strings[] = {$/;"	v
-strip_realm	modules/auth/api.c	/^void strip_realm(str* _realm)$/;"	f
-strlower	ut.h	/^static inline void strlower(str* _s)$/;"	f
-strop	cfg.y	/^strop:	equalop	{$$=$1; }$/;"	l
-strprintsha	modules/jabber/sha.c	/^int strprintsha(char *dest, int *hashval) $/;"	f
-strtoint	modules/mediaproxy/mediaproxy.c	/^strtoint(str *data)$/;"	f	file:
-strval	cfg.tab.c	/^	char* strval;$/;"	m	union:YYSTYPE	file:
-strval	cfg.tab.h	/^	char* strval;$/;"	m	union:YYSTYPE
-strx_printv	modules/jabber/xsnprintf.c	/^static void strx_printv(int *ccp, char *buf, size_t len, const char *format,$/;"	f	file:
-strz2int	modules/cpl-c/cpl_time.c	/^static inline int strz2int(char *_bp)$/;"	f	file:
-su	ip_addr.h	/^	union sockaddr_union su; $/;"	m	struct:socket_info
-su2ip_addr	ip_addr.h	/^static inline void su2ip_addr(struct ip_addr* ip, union sockaddr_union* su)$/;"	f
-su_cmp	ip_addr.h	/^static inline int su_cmp(union sockaddr_union* s1, union sockaddr_union* s2)$/;"	f
-su_getport	ip_addr.h	/^static inline unsigned short su_getport(union sockaddr_union* su)$/;"	f
-su_setport	ip_addr.h	/^static inline void su_setport(union sockaddr_union* su, unsigned short port)$/;"	f
-subj_CASE	parser/case_subj.h	49;"	d
-subject	modules/cpl-c/cpl_run.h	/^	str *subject;$/;"	m	struct:cpl_interpreter
-subject	parser/msg_parser.h	/^	struct hdr_field* subject;$/;"	m	struct:sip_msg
-submit_query	modules/mysql/dbase.c	/^static int submit_query(db_con_t* _h, const char* _s)$/;"	f	file:
-submit_query	modules/postgres/dbase.c	/^static int submit_query(db_con_t* _h, const char* _s)$/;"	f	file:
-subs_state	modules/pa/notify.h	/^typedef enum subs_state {$/;"	g
-subs_state_t	modules/pa/notify.h	/^} subs_state_t;$/;"	t
-subs_states	modules/pa/notify.c	/^static str subs_states[] = {$/;"	v	file:
-subscribe_fixup	modules/pa/pa_mod.c	/^static int subscribe_fixup(void** param, int param_no)$/;"	f	file:
-subscriber_domain_col	modules/uri_db/uridb_mod.c	/^str subscriber_domain_col = {DOMAIN_COL, DOMAIN_COL_LEN};             \/* Name of domain column in subscriber table *\/$/;"	v
-subscriber_table	modules/uri_db/uridb_mod.c	/^str subscriber_table      = {SUBSCRIBER_TABLE, SUBSCRIBER_TABLE_LEN}; \/* Name of subscriber table *\/$/;"	v
-subscriber_user_col	modules/uri_db/uridb_mod.c	/^str subscriber_user_col   = {USER_COL, USER_COL_LEN};                 \/* Name of user column in subscriber table *\/$/;"	v
-subst	lump_struct.h	/^		enum lump_subst subst; \/*what to subst: ip addr, port, proto*\/$/;"	m	union:lump::<anonymous>
-subst_expr	re.h	/^struct subst_expr{$/;"	s
-subst_expr_free	re.c	/^void subst_expr_free(struct subst_expr* se)$/;"	f
-subst_f	modules/textops/textops.c	/^static int subst_f(struct sip_msg* msg, char*  subst, char* ignored)$/;"	f	file:
-subst_parser	re.c	/^struct subst_expr* subst_parser(str* subst)$/;"	f
-subst_run	re.c	/^struct replace_lst* subst_run(struct subst_expr* se, const char* input,$/;"	f
-subst_str	re.c	/^str* subst_str(const char *input, struct sip_msg* msg, struct subst_expr* se,$/;"	f
-subst_uri_f	modules/textops/textops.c	/^static int subst_uri_f(struct sip_msg* msg, char*  subst, char* ignored)$/;"	f	file:
-subst_user_f	modules/textops/textops.c	/^static int subst_user_f(struct sip_msg* msg, char*  subst, char* ignored)$/;"	f	file:
-subtype	parser/parse_content.h	/^	unsigned short subtype;$/;"	m	struct:mime_type
-subtype	route_struct.h	/^	int  subtype;$/;"	m	struct:expr
-subtype_tree	parser/parse_content.c	/^static type_node_t subtype_tree[] = {$/;"	v	file:
-suffix	modules/diversion/diversion.c	/^str suffix = {"", 0};$/;"	v
-suffix	modules/enum/enum_mod.c	/^str suffix;$/;"	v
-supp_CASE	parser/case_supp.h	48;"	d
-supported	parser/msg_parser.h	/^	struct hdr_field* supported;$/;"	m	struct:sip_msg
-supt_c	modules/options/mod_options.c	/^char *acpt_c, *acpt_enc_c, *acpt_lan_c, *supt_c;$/;"	v
-supt_s	modules/options/mod_options.c	/^str acpt_s, acpt_enc_s, acpt_lan_s, supt_s;$/;"	v
-sval	modules/tm/t_fifo.c	/^	str sval;$/;"	m	struct:hdr_avp	file:
-swap_routine	modules/pike/pike_funcs.c	/^void swap_routine( unsigned int ticks, void *param)$/;"	f
-swapchars	modules/sms/libsms_putsms.c	/^void swapchars(char* string, int len) \/* Swaps every second character *\/$/;"	f
-switch_endianness	modules/jabber/sha.c	64;"	d	file:
-syn_branch	main.c	/^int syn_branch = 1;$/;"	v
-synchronize_all_udomains	modules/usrloc/dlist.c	/^int synchronize_all_udomains(void)$/;"	f
-t	modules/cpl-c/cpl_time.h	/^	struct tm t;$/;"	m	struct:_ac_tm
-tH12	parser/obsolete/strs.h	329;"	d
-tH21	parser/obsolete/strs.h	334;"	d
-tO12	parser/obsolete/strs.h	93;"	d
-tO21	parser/obsolete/strs.h	98;"	d
-t_ack	modules/tm/t_lookup.c	/^static struct cell *t_ack;$/;"	v	file:
-t_addblind	modules/tm/tm_load.h	/^	taddblind_f      t_addblind;$/;"	m	struct:tm_binds
-t_calc_branch	modules/tm/t_msgbuilder.c	/^int t_calc_branch(struct cell *t, $/;"	f
-t_check	modules/tm/t_lookup.c	/^int t_check( struct sip_msg* p_msg , int *param_branch )$/;"	f
-t_check_status	modules/tm/tm.c	/^static int t_check_status(struct sip_msg* msg, char *regexp, char *foo)$/;"	f	file:
-t_content_type	modules/msilo/msfuncs.h	/^} t_content_type;$/;"	t
-t_forward_nonack	modules/tm/t_fwd.c	/^int t_forward_nonack( struct cell *t, struct sip_msg* p_msg , $/;"	f
-t_forward_nonack	modules/tm/tm_load.h	/^	tfwd_f           t_forward_nonack;$/;"	m	struct:tm_binds
-t_get_trans_ident	modules/tm/t_lookup.c	/^int t_get_trans_ident(struct sip_msg* p_msg, unsigned int* hash_index, unsigned int* label)$/;"	f
-t_get_trans_ident	modules/tm/tm_load.h	/^	tget_ti_f        t_get_trans_ident;$/;"	m	struct:tm_binds
-t_getdlg	modules/tm/t_dlg.c	/^dlg_t t_getdlg() {$/;"	f
-t_gett	modules/tm/tm_load.h	/^	tgett_f            t_gett;$/;"	m	struct:tm_binds
-t_is_local	modules/tm/t_lookup.c	/^int t_is_local(struct sip_msg* p_msg)$/;"	f
-t_is_local	modules/tm/tm_load.h	/^	tislocal_f       t_is_local;$/;"	m	struct:tm_binds
-t_lookupOriginalT	modules/tm/t_lookup.c	/^struct cell* t_lookupOriginalT(  struct sip_msg* p_msg )$/;"	f
-t_lookup_callid	modules/tm/t_lookup.c	/^int t_lookup_callid(struct cell ** trans, str callid, str cseq) {$/;"	f
-t_lookup_ident	modules/tm/t_lookup.c	/^int t_lookup_ident(struct cell ** trans, unsigned int hash_index, unsigned int label)$/;"	f
-t_lookup_ident	modules/tm/tm_load.h	/^	tlookup_ident_f  t_lookup_ident;$/;"	m	struct:tm_binds
-t_lookup_request	modules/tm/t_lookup.c	/^int t_lookup_request( struct sip_msg* p_msg , int leave_new_locked )$/;"	f
-t_msg_list	modules/msilo/ms_msg_list.h	/^} t_msg_list, *msg_list;$/;"	t
-t_msg_list_el	modules/msilo/ms_msg_list.h	/^} t_msg_list_el, *msg_list_el;$/;"	t
-t_newdlg	modules/tm/t_dlg.c	/^int t_newdlg( struct sip_msg *msg )$/;"	f
-t_newtran	modules/tm/t_lookup.c	/^int t_newtran( struct sip_msg* p_msg )$/;"	f
-t_newtran	modules/tm/tm_load.h	/^	tnewtran_f       t_newtran;$/;"	m	struct:tm_binds
-t_newtran	scripts/serconf.sh	/^		t_newtran();$/;"	f
-t_newtran	scripts/serconf.sh	/^	t_newtran();$/;"	f
-t_on_negative	modules/tm/t_reply.c	/^void t_on_negative( unsigned int go_to )$/;"	f
-t_on_reply	modules/tm/t_reply.c	/^void t_on_reply( unsigned int go_to )$/;"	f
-t_param	timer.h	/^	void* t_param;$/;"	m	struct:sr_timer
-t_pick_branch	modules/tm/t_reply.c	/^int t_pick_branch(int inc_branch, int inc_code, struct cell *t, int *res_code)$/;"	f
-t_relay	modules/tm/tm_load.h	/^	cmd_function     t_relay;$/;"	m	struct:tm_binds
-t_relay	scripts/serconf.sh	/^		t_relay();$/;"	f
-t_relay	scripts/serconf.sh	/^	t_relay();$/;"	f
-t_relay_to	modules/tm/t_funcs.c	/^int t_relay_to( struct sip_msg  *p_msg , struct proxy_l *proxy, int proto,$/;"	f
-t_relay_to_tcp	modules/tm/tm_load.h	/^	cmd_function     t_relay_to_tcp;$/;"	m	struct:tm_binds
-t_relay_to_udp	modules/tm/tm_load.h	/^	cmd_function     t_relay_to_udp;$/;"	m	struct:tm_binds
-t_release_transaction	modules/tm/t_funcs.c	/^int t_release_transaction( struct cell *trans )$/;"	f
-t_replicate	modules/tm/t_fwd.c	/^int t_replicate(struct sip_msg *p_msg,  struct proxy_l *proxy, int proto )$/;"	f
-t_reply	modules/tm/t_reply.c	/^int t_reply( struct cell *t, struct sip_msg* p_msg, unsigned int code, $/;"	f
-t_reply	modules/tm/tm_load.h	/^	treply_f         t_reply;$/;"	m	struct:tm_binds
-t_reply_matching	modules/tm/t_lookup.c	/^int t_reply_matching( struct sip_msg *p_msg , int *p_branch )$/;"	f
-t_reply_unsafe	modules/tm/t_reply.c	/^int t_reply_unsafe( struct cell *t, struct sip_msg* p_msg, unsigned int code, $/;"	f
-t_reply_unsafe	modules/tm/tm_load.h	/^	treply_f         t_reply_unsafe;$/;"	m	struct:tm_binds
-t_reply_with_body	modules/tm/t_reply.c	/^int t_reply_with_body( struct cell *trans, unsigned int code, $/;"	f
-t_reply_with_body	modules/tm/tm_load.h	/^	treply_wb_f      t_reply_with_body;$/;"	m	struct:tm_binds
-t_request	modules/tm/tm_load.h	/^	req_t            t_request;$/;"	m	struct:tm_binds
-t_request_outside	modules/tm/tm_load.h	/^	reqout_t         t_request_outside;$/;"	m	struct:tm_binds
-t_request_within	modules/tm/tm_load.h	/^	reqwith_t        t_request_within;$/;"	m	struct:tm_binds
-t_retransmit_reply	modules/tm/t_reply.c	/^int t_retransmit_reply( struct cell *t )$/;"	f
-t_should_relay_response	modules/tm/t_reply.c	/^static enum rps t_should_relay_response( struct cell *Trans , int new_code,$/;"	f	file:
-t_stats	modules/tm/t_stats.h	/^struct t_stats {$/;"	s
-t_stats_deleted	modules/tm/t_stats.h	/^inline void static t_stats_deleted( int local )$/;"	f
-t_stats_new	modules/tm/t_stats.h	/^inline void static t_stats_new(int local)$/;"	f
-t_stats_wait	modules/tm/t_stats.h	/^inline void static t_stats_wait()$/;"	f
-t_uac	modules/tm/uac.c	/^int t_uac(str* method, str* headers, str* body, dlg_t* dialog,$/;"	f
-t_unref	modules/tm/t_lookup.c	/^int t_unref( struct sip_msg* p_msg  )$/;"	f
-t_write_req	modules/tm/t_fifo.c	/^int t_write_req(struct sip_msg* msg, char* vm_fifo, char* info)$/;"	f
-t_write_unix	modules/tm/t_fifo.c	/^int t_write_unix(struct sip_msg* msg, char* socket, char* info)$/;"	f
-t_xj_jalias	modules/jabber/xjab_worker.h	/^} t_xj_jalias, *xj_jalias;$/;"	t
-t_xj_jcon	modules/jabber/xjab_jcon.h	/^} t_xj_jcon, *xj_jcon;$/;"	t
-t_xj_jcon_pool	modules/jabber/xjab_util.h	/^} t_xj_jcon_pool, *xj_jcon_pool;$/;"	t
-t_xj_jconf	modules/jabber/xjab_jconf.h	/^} t_xj_jconf, *xj_jconf;$/;"	t
-t_xj_jkey	modules/jabber/xjab_base.h	/^} t_xj_jkey, *xj_jkey;$/;"	t
-t_xj_jmsg_queue	modules/jabber/xjab_util.h	/^} t_xj_jmsg_queue, *xj_jmsg_queue;$/;"	t
-t_xj_pres_cell	modules/jabber/xjab_presence.h	/^} t_xj_pres_cell, *xj_pres_cell;$/;"	t
-t_xj_pres_list	modules/jabber/xjab_presence.h	/^} t_xj_pres_list, *xj_pres_list;$/;"	t
-t_xj_sipmsg	modules/jabber/xjab_base.h	/^} t_xj_sipmsg, *xj_sipmsg;$/;"	t
-t_xj_wlist	modules/jabber/xjab_worker.h	/^} t_xj_wlist, *xj_wlist;$/;"	t
-t_xj_worker	modules/jabber/xjab_worker.h	/^} t_xj_worker, *xj_worker;$/;"	t
-table	db/db_con.h	/^	const char* table;     \/* Default table to use *\/$/;"	m
-table	modules/avpops/avpops_db.h	/^	char *table;$/;"	m	struct:db_scheme
-table	modules/avpops/avpops_impl.h	/^	char             *table;   \/* DB table\/scheme name *\/$/;"	m	struct:db_param
-table	modules/flatstore/flat_id.h	/^	str table; \/* Name of table *\/$/;"	m	struct:flat_id
-table	modules/group/group_mod.c	/^str table         = {TABLE, TABLE_LEN};         \/* Table name where group definitions are stored *\/$/;"	v
-table	modules/pa/pdomain.h	/^	struct hslot* table;        \/* Hash table for fast lookup *\/$/;"	m	struct:pdomain
-table	modules/pdt/doc/web/request.php	/^$table="admin";$/;"	v
-table	modules/usrloc/udomain.h	/^	struct hslot* table;           \/* Hash table - array of collision slots *\/$/;"	m	struct:udomain
-table_version	db/db.c	/^int table_version(db_func_t* dbf, db_con_t* connection, const str* table)$/;"	f
-tables	modules/dbtext/dbt_lib.h	/^	tbl_cache_p tables;$/;"	m	struct:_dbt_database
-taddblind_f	modules/tm/t_fwd.h	/^typedef int (*taddblind_f)( \/*struct cell *t *\/ );$/;"	t
-tag	modules/tm/h_table.h	/^	str tag;$/;"	m	struct:totag_elem
-tag_suffix	modules/sl/sl_funcs.c	/^static char           *tag_suffix;$/;"	v	file:
-tag_value	parser/parse_to.h	/^	str tag_value;                \/* Value of tag *\/$/;"	m	struct:to_body
-tail	db/db_con.h	/^	unsigned long tail;    \/* Variable length tail$/;"	m
-tail	mem/q_malloc.h	/^	struct qm_frag_end tail;$/;"	m	struct:qm_frag_lnk
-tail	modules/acc/diam_message.h	/^	AAA_AVP *tail;$/;"	m	struct:_avp_list_t
-tail	modules/auth_diameter/diameter_msg.h	/^	AAA_AVP *tail;$/;"	m	struct:_avp_list_t
-tbl_buf	db/db_fifo.c	/^static char   tbl_buf[MAX_SIZE_LINE]; \/* current 'table name' buffer *\/$/;"	v	file:
-tbl_cache_free	modules/dbtext/dbt_lib.c	/^int tbl_cache_free(tbl_cache_p _tbc)$/;"	f
-tbl_cache_new	modules/dbtext/dbt_lib.c	/^tbl_cache_p tbl_cache_new()$/;"	f
-tbl_cache_p	modules/dbtext/dbt_lib.h	/^} tbl_cache_t, *tbl_cache_p;$/;"	t
-tbl_cache_t	modules/dbtext/dbt_lib.h	/^} tbl_cache_t, *tbl_cache_p;$/;"	t
-tcp_accept_aliases	tcp_main.c	/^int tcp_accept_aliases=0; \/* by default don't accept aliases *\/$/;"	v
-tcp_addr_hash	tcp_conn.h	/^static inline unsigned tcp_addr_hash(struct ip_addr* ip, unsigned short port)$/;"	f
-tcp_blocking_connect	tcp_main.c	/^static int tcp_blocking_connect(int fd, const struct sockaddr *servaddr,$/;"	f	file:
-tcp_child	tcp_main.c	/^struct tcp_child{$/;"	s	file:
-tcp_children	tcp_main.c	/^struct tcp_child tcp_children[MAX_TCP_CHILDREN];$/;"	v
-tcp_children_no	main.c	/^int tcp_children_no = 0;$/;"	v
-tcp_conn_alias	tcp_conn.h	/^struct tcp_conn_alias{$/;"	s
-tcp_conn_states	tcp_conn.h	/^enum tcp_conn_states { S_CONN_ERROR=-2, S_CONN_BAD=-1, S_CONN_OK=0, $/;"	g
-tcp_connect_timeout	tcp_main.c	/^int tcp_connect_timeout=DEFAULT_TCP_CONNECT_TIMEOUT;$/;"	v
-tcp_connection	tcp_conn.h	/^struct tcp_connection{$/;"	s
-tcp_disable	main.c	/^int tcp_disable = 0; \/* 1 if tcp is disabled *\/$/;"	v
-tcp_id_hash	tcp_conn.h	192;"	d
-tcp_init	tcp_main.c	/^int tcp_init(struct socket_info* sock_info)$/;"	f
-tcp_init_children	tcp_main.c	/^int tcp_init_children()$/;"	f
-tcp_init_h	tcp_init.h	29;"	d
-tcp_listen	main.c	/^struct socket_info* tcp_listen=0;$/;"	v
-tcp_listen	socket_info.h	/^struct socket_info* tcp_listen;$/;"	v
-tcp_main_loop	tcp_main.c	/^void tcp_main_loop()$/;"	f
-tcp_proto_no	tcp_main.c	/^int tcp_proto_no=-1; \/* tcp protocol number as returned by getprotobyname *\/$/;"	v
-tcp_read	tcp_read.c	/^int tcp_read(struct tcp_connection *c)$/;"	f
-tcp_read_headers	tcp_read.c	/^int tcp_read_headers(struct tcp_connection *c)$/;"	f
-tcp_read_req	tcp_read.c	/^int tcp_read_req(struct tcp_connection* con)$/;"	f
-tcp_receive_loop	tcp_read.c	/^void tcp_receive_loop(int unix_sock)$/;"	f
-tcp_req	tcp_conn.h	/^struct tcp_req{$/;"	s
-tcp_req_errors	tcp_conn.h	/^enum tcp_req_errors {	TCP_REQ_INIT, TCP_REQ_OK, TCP_READ_ERROR,$/;"	g
-tcp_req_states	tcp_conn.h	/^enum tcp_req_states {	H_SKIP_EMPTY, H_SKIP, H_LF, H_LFCR,  H_BODY, H_STARTWS,$/;"	g
-tcp_send	tcp_main.c	/^int tcp_send(int type, char* buf, unsigned len, union sockaddr_union* to,$/;"	f
-tcp_send_recv	modules/acc/diam_tcp.c	/^int tcp_send_recv(int sockfd, char* buf, int len, rd_buf_t* rb, $/;"	f
-tcp_send_recv	modules/auth_diameter/tcp_comm.c	/^int tcp_send_recv(int sockfd, char* buf, int len, rd_buf_t* rb, $/;"	f
-tcp_send_timeout	tcp_main.c	/^int tcp_send_timeout=DEFAULT_TCP_SEND_TIMEOUT;$/;"	v
-tcp_server_h	tcp_server.h	30;"	d
-tcpconn_add	tcp_main.c	/^struct tcp_connection*  tcpconn_add(struct tcp_connection *c)$/;"	f
-tcpconn_add_alias	tcp_main.c	/^int tcpconn_add_alias(int id, int port, int proto)$/;"	f
-tcpconn_aliases_hash	tcp_main.c	/^struct tcp_conn_alias** tcpconn_aliases_hash=0;$/;"	v
-tcpconn_connect	tcp_main.c	/^struct tcp_connection* tcpconn_connect(union sockaddr_union* server, int type)$/;"	f
-tcpconn_destroy	tcp_main.c	/^static void tcpconn_destroy(struct tcp_connection* tcpconn)$/;"	f	file:
-tcpconn_get	tcp_main.c	/^struct tcp_connection* tcpconn_get(int id, struct ip_addr* ip, int port,$/;"	f
-tcpconn_id_hash	tcp_main.c	/^struct tcp_connection** tcpconn_id_hash=0;$/;"	v
-tcpconn_listadd	tcp_conn.h	154;"	d
-tcpconn_listrm	tcp_conn.h	165;"	d
-tcpconn_lock	tcp_main.c	/^gen_lock_t* tcpconn_lock=0;$/;"	v
-tcpconn_new	tcp_main.c	/^struct tcp_connection* tcpconn_new(int sock, union sockaddr_union* su,$/;"	f
-tcpconn_put	tcp_main.c	/^void tcpconn_put(struct tcp_connection* c)$/;"	f
-tcpconn_ref	tcp_main.c	/^void tcpconn_ref(struct tcp_connection* c)$/;"	f
-tcpconn_rm	tcp_main.c	/^void tcpconn_rm(struct tcp_connection* c)$/;"	f
-tcpconn_timeout	tcp_main.c	/^void tcpconn_timeout(fd_set* set)$/;"	f
-tel2sip	modules/uri/checks.c	/^int tel2sip(struct sip_msg* _msg, char* _s1, char* _s2)$/;"	f
-tel_uri_params	modules/enum/enum_mod.c	/^char* tel_uri_params = "";$/;"	v
-termio	modules/postgres/aug_sysdep.h	257;"	d
-test	modules/mediaproxy/mediaproxy.c	/^    NatTestType test;$/;"	m	file:
-testPrivateContact	modules/mediaproxy/mediaproxy.c	/^testPrivateContact(struct sip_msg* msg)$/;"	f	file:
-testPrivateVia	modules/mediaproxy/mediaproxy.c	/^testPrivateVia(struct sip_msg* msg)$/;"	f	file:
-testSourceAddress	modules/mediaproxy/mediaproxy.c	/^testSourceAddress(struct sip_msg* msg)$/;"	f	file:
-test_max_contacts	modules/registrar/save.c	/^static int test_max_contacts(struct sip_msg* _m, urecord_t* _r, contact_t* _c)$/;"	f	file:
-text	data_lump_rpl.h	/^	str text;$/;"	m	struct:lump_rpl
-text	modules/sms/sms_funcs.h	/^	str  text;$/;"	m	struct:sms_msg
-text	modules/sms/sms_report.c	/^	char            *text;$/;"	m	struct:report_cell	file:
-text	modules/xlog/xl_lib.h	/^	str text;$/;"	m	struct:_xl_elog
-text	parser/parse_event.h	/^	str text;       \/* Original string representation *\/$/;"	m	struct:event
-text	parser/parse_expires.h	/^	str text;            \/* Original text representation *\/$/;"	m	struct:exp_body
-text	parser/parse_sipifmatch.h	/^	str text;       \/* Original string representation *\/$/;"	m	struct:etag
-text_len	modules/sms/sms_report.c	/^	unsigned int    text_len;$/;"	m	struct:report_cell	file:
-tfwd_f	modules/tm/t_fwd.h	/^typedef int (*tfwd_f)(struct sip_msg* p_msg , struct proxy_l * proxy );$/;"	t
-tg	modules/tm/timer.h	/^	enum timer_groups  tg;$/;"	m	struct:timer_link
-tget_ti_f	modules/tm/t_lookup.h	/^typedef int (*tget_ti_f)(struct sip_msg*, unsigned int*, unsigned int*);$/;"	t
-tgett_f	modules/tm/t_lookup.h	/^typedef struct cell * (*tgett_f)(void);$/;"	t
-th12	parser/obsolete/strs.h	328;"	d
-th21	parser/obsolete/strs.h	333;"	d
-tid	parser/parse_via.h	/^	str tid; \/* transaction id, part of branch *\/$/;"	m	struct:via_body
-time	modules/cpl-c/cpl_time.h	/^	time_t time;$/;"	m	struct:_ac_tm
-time	modules/sms/sms_funcs.h	/^	char time[TIME_LEN];$/;"	m	struct:incame_sms
-time2mysql	modules/mysql/utils.c	/^int time2mysql(time_t _time, char* _result, int _res_len)$/;"	f
-time2str	modules/mysql/val.c	/^static inline int time2str(time_t _v, char* _s, int* _l)$/;"	f	file:
-time2str	modules/postgres/db_val.c	/^static inline int time2str(time_t _v, char* _s, int* _l)$/;"	f	file:
-time_out	modules/exec/kill.h	/^	volatile unsigned int time_out;$/;"	m	struct:timer_link
-time_out	modules/tm/timer.h	/^	volatile unsigned int  time_out;$/;"	m	struct:timer_link
-time_to_kill	modules/exec/exec_mod.c	/^unsigned int time_to_kill=0;$/;"	v
-time_unit	modules/pike/pike.c	/^static int time_unit = 2;$/;"	v	file:
-time_val	db/db_val.h	/^		time_t        time_val;   \/* unix time value *\/$/;"	m
-timeout	modules/pike/pike.c	/^int timeout   = 120;$/;"	v
-timeout	modules/sms/sms_report.c	/^	time_t          timeout;$/;"	m	struct:report_cell	file:
-timeout	tcp_conn.h	/^	int timeout; \/* connection timeout, after this it will be removed*\/$/;"	m	struct:tcp_connection
-timer	modules/nathelper/nathelper.c	/^timer(unsigned int ticks, void *param)$/;"	f	file:
-timer	modules/pa/pa_mod.c	/^static void timer(unsigned int ticks, void* param)$/;"	f	file:
-timer	modules/pike/pike.c	/^struct list_link*       timer = 0;$/;"	v
-timer	modules/tm/timer.h	/^typedef struct  timer$/;"	s
-timer	modules/usrloc/ul_mod.c	/^static void timer(unsigned int ticks, void* param)$/;"	f	file:
-timer_all_pdomains	modules/pa/dlist.c	/^int timer_all_pdomains(void)$/;"	f
-timer_avp	modules/cpl-c/cpl.c	/^static char *timer_avp     = 0;  \/* name of variable timer AVP *\/$/;"	v	file:
-timer_avp	modules/cpl-c/cpl_env.h	/^	int_str timer_avp;$/;"	m	struct:cpl_enviroment
-timer_avp_type	modules/cpl-c/cpl_env.h	/^	int timer_avp_type;     \/* specs - type and name - of the timer AVP *\/$/;"	m	struct:cpl_enviroment
-timer_f	timer.h	/^	timer_function* timer_f;$/;"	m	struct:sr_timer
-timer_function	timer.h	/^typedef void (timer_function)(unsigned int ticks, void* param);$/;"	t
-timer_group	modules/tm/timer.c	/^int timer_group[NR_OF_TIMER_LISTS] = $/;"	v
-timer_group_lock	modules/tm/lock.c	/^static ser_lock_t* timer_group_lock=0; \/* pointer to a TG_NR lock array,$/;"	v	file:
-timer_groups	modules/tm/lock.h	/^enum timer_groups {$/;"	g
-timer_h	timer.h	34;"	d
-timer_id	timer.c	/^static int timer_id=0;$/;"	v	file:
-timer_id2timeout	modules/tm/timer.c	/^unsigned int timer_id2timeout[NR_OF_TIMER_LISTS] = {$/;"	v
-timer_interval	modules/pa/pa_mod.c	/^int timer_interval = 10;     \/* Expiration timer interval in seconds *\/$/;"	v
-timer_interval	modules/usrloc/ul_mod.c	/^int timer_interval  = 60;             \/* Timer interval in seconds *\/$/;"	v
-timer_link	modules/exec/kill.h	/^struct timer_link {$/;"	s
-timer_link	modules/tm/timer.h	/^typedef struct timer_link$/;"	s
-timer_link_type	modules/tm/timer.h	/^}timer_link_type ;$/;"	t
-timer_list	modules/exec/kill.h	/^struct timer_list$/;"	s
-timer_list	modules/tm/timer.h	/^	struct timer          *timer_list;$/;"	m	struct:timer_link
-timer_list	timer.c	/^struct sr_timer* timer_list=0;$/;"	v
-timer_ll	modules/pike/ip_tree.h	/^	struct list_link  timer_ll;$/;"	m	struct:ip_node
-timer_lock	modules/pike/pike.c	/^gen_lock_t*             timer_lock=0;$/;"	v
-timer_pdomain	modules/pa/pdomain.c	/^int timer_pdomain(pdomain_t* _d)$/;"	f
-timer_presentity	modules/pa/presentity.c	/^int timer_presentity(presentity_t* _p)$/;"	f
-timer_routine	modules/exec/kill.c	/^static void timer_routine(unsigned int ticks , void * attr)$/;"	f	file:
-timer_routine	modules/tm/timer.c	/^void timer_routine(unsigned int ticks , void * attr)$/;"	f
-timer_semaphore	modules/tm/lock.c	/^gen_lock_set_t* timer_semaphore=0;$/;"	v
-timer_table	modules/tm/timer.h	/^struct timer_table$/;"	s
-timer_ticker	timer.c	/^void timer_ticker()$/;"	f
-timer_type	modules/tm/timer.h	/^} timer_type;$/;"	t
-timer_udomain	modules/usrloc/udomain.c	/^int timer_udomain(udomain_t* _d)$/;"	f
-timer_urecord	modules/usrloc/urecord.c	/^int timer_urecord(urecord_t* _r)$/;"	f
-timers	modules/tm/timer.h	/^    struct timer   timers[ NR_OF_TIMER_LISTS ];$/;"	m	struct:timer_table
-timertable	modules/tm/timer.c	/^static struct timer_table *timertable=0;$/;"	v	file:
-timestamp	modules/mediaproxy/mediaproxy.c	/^    long timestamp;    \/\/ for checking if it was modified$/;"	m	file:
-timestamp	modules/mysql/my_con.h	/^	time_t timestamp;    \/* Timestamp of last query *\/$/;"	m	struct:my_con
-tion_CASE	parser/case_orga.h	35;"	d
-tislocal_f	modules/tm/t_lookup.h	/^typedef int (*tislocal_f)(struct sip_msg*);$/;"	t
-title	modules/tm/t_fifo.c	/^	str title;$/;"	m	struct:hdr_avp	file:
-tlookup_ident_f	modules/tm/t_lookup.h	/^typedef int (*tlookup_ident_f)(struct cell**, unsigned int, unsigned int);$/;"	t
-tls_disable	main.c	/^int tls_disable = 0; \/* 1 if tls is disabled *\/$/;"	v
-tls_listen	main.c	/^struct socket_info* tls_listen=0;$/;"	v
-tls_listen	socket_info.h	/^struct socket_info* tls_listen;$/;"	v
-tls_port_no	main.c	/^unsigned short tls_port_no=0; \/* default port *\/$/;"	v
-tm_binds	modules/tm/tm_load.h	/^struct tm_binds {$/;"	s
-tm_callback	modules/tm/t_hooks.h	/^struct tm_callback {$/;"	s
-tm_exports	modules/tm/tm.c	/^struct module_exports tm_exports = {$/;"	v
-tm_init_tags	modules/tm/t_reply.c	/^void tm_init_tags()$/;"	f
-tm_init_timers	modules/tm/timer.c	/^struct timer_table *tm_init_timers()$/;"	f
-tm_shutdown	modules/tm/t_funcs.c	/^void tm_shutdown()$/;"	f
-tm_stats	modules/tm/t_stats.c	/^struct t_stats *tm_stats=0;$/;"	v
-tm_table	modules/tm/h_table.c	/^static struct s_table*  tm_table;$/;"	v	file:
-tm_tag	modules/tm/t_reply.c	/^static str  tm_tag = {tm_tags,TOTAG_VALUE_LEN};$/;"	v	file:
-tm_tag_suffix	modules/tm/t_reply.c	/^char *tm_tag_suffix;$/;"	v
-tm_tags	modules/tm/t_reply.c	/^char tm_tags[TOTAG_VALUE_LEN];$/;"	v
-tm_unix_tx_timeout	modules/tm/t_fifo.c	/^int tm_unix_tx_timeout = 2; \/* Default is 2 seconds *\/$/;"	v
-tmb	modules/acc/acc_mod.c	/^struct tm_binds tmb;$/;"	v
-tmb	modules/cpl-c/cpl_env.h	/^	struct tm_binds tmb;     \/* Structure with pointers to tm funcs *\/$/;"	m	struct:cpl_functions
-tmb	modules/extcmd/extcmd.c	/^struct tm_binds tmb;$/;"	v
-tmb	modules/extcmd/extcmd_funcs.c	/^struct tm_binds tmb;$/;"	v
-tmb	modules/jabber/jabber.c	/^struct tm_binds tmb;$/;"	v
-tmb	modules/mangler/mangler.c	/^struct tm_binds tmb; $/;"	v
-tmb	modules/msilo/msilo.c	/^struct tm_binds tmb;$/;"	v
-tmb	modules/pa/pa_mod.c	/^struct tm_binds tmb;$/;"	v
-tmb	modules/sms/sms.c	/^struct tm_binds tmb;$/;"	v
-tmb	modules/sms/sms_funcs.c	/^struct tm_binds tmb;$/;"	v
-tmcb_func	modules/acc/acc_mod.c	/^static void tmcb_func( struct cell* t, int type, struct tmcb_params *ps )$/;"	f	file:
-tmcb_head_list	modules/tm/t_hooks.h	/^struct tmcb_head_list {$/;"	s
-tmcb_hl	modules/tm/h_table.h	/^	struct tmcb_head_list tmcb_hl;$/;"	m	struct:cell
-tmcb_params	modules/tm/t_hooks.h	/^struct tmcb_params {$/;"	s
-tmp	cfg.tab.c	/^static char* tmp;$/;"	v	file:
-tmrec_free	modules/cpl-c/cpl_time.c	/^int tmrec_free(tmrec_p _trp)$/;"	f
-tmrec_new	modules/cpl-c/cpl_time.c	/^tmrec_p tmrec_new()$/;"	f
-tmrec_p	modules/cpl-c/cpl_time.h	/^} tmrec_t, *tmrec_p;$/;"	t
-tmrec_t	modules/cpl-c/cpl_time.h	/^} tmrec_t, *tmrec_p;$/;"	t
-tnewtran_f	modules/tm/t_lookup.h	/^typedef int (*tnewtran_f)(struct sip_msg*);$/;"	t
-to	ip_addr.h	/^	union sockaddr_union to;$/;"	m	struct:dest_info
-to	modules/cpl-c/cpl_run.h	/^	str *to;$/;"	m	struct:cpl_interpreter
-to	modules/jabber/xjab_base.h	/^	str to;				\/\/ destination$/;"	m	struct:_xj_sipmsg
-to	modules/sms/sms_funcs.h	/^	str  to;$/;"	m	struct:sms_msg
-to	modules/tm/h_table.h	/^	str from, callid, cseq_n, to;$/;"	m	struct:cell
-to	parser/msg_parser.h	/^	struct hdr_field* to;$/;"	m	struct:sip_msg
-to12	parser/obsolete/strs.h	92;"	d
-to12_CASE	parser/case_to.h	41;"	d
-to21	parser/obsolete/strs.h	97;"	d
-to_32x_len	modules/acc/diam_message.c	52;"	d	file:
-to_32x_len	modules/auth_diameter/message.c	52;"	d	file:
-to_body	parser/parse_to.h	/^struct to_body{$/;"	s
-to_param	parser/parse_to.h	/^struct to_param{$/;"	s
-to_tag_val	msg_translator.h	/^	str to_tag_val;$/;"	m	struct:bookmark
-token_char	parser/parse_methods.c	/^static int token_char(char _c)$/;"	f	file:
-totag_elem	modules/tm/h_table.h	/^struct totag_elem {$/;"	s
-tpid	modules/postgres/con_postgres.h	/^	long tpid;	\/* record pid of database opener in case one of *\/$/;"	m	struct:con_postgres
-tr_byxxx_free	modules/cpl-c/cpl_time.c	/^int tr_byxxx_free(tr_byxxx_p _bxp)$/;"	f
-tr_byxxx_init	modules/cpl-c/cpl_time.c	/^int tr_byxxx_init(tr_byxxx_p _bxp, int _nr)$/;"	f
-tr_byxxx_new	modules/cpl-c/cpl_time.c	/^tr_byxxx_p tr_byxxx_new()$/;"	f
-tr_byxxx_p	modules/cpl-c/cpl_time.h	/^} tr_byxxx_t, *tr_byxxx_p;$/;"	t
-tr_byxxx_t	modules/cpl-c/cpl_time.h	/^} tr_byxxx_t, *tr_byxxx_p;$/;"	t
-tr_parse_byday	modules/cpl-c/cpl_time.c	/^int tr_parse_byday(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_bymday	modules/cpl-c/cpl_time.c	/^int tr_parse_bymday(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_bymonth	modules/cpl-c/cpl_time.c	/^int tr_parse_bymonth(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_byweekno	modules/cpl-c/cpl_time.c	/^int tr_parse_byweekno(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_byyday	modules/cpl-c/cpl_time.c	/^int tr_parse_byyday(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_dtend	modules/cpl-c/cpl_time.c	/^int tr_parse_dtend(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_dtstart	modules/cpl-c/cpl_time.c	/^int tr_parse_dtstart(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_duration	modules/cpl-c/cpl_time.c	/^int tr_parse_duration(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_freq	modules/cpl-c/cpl_time.c	/^int tr_parse_freq(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_interval	modules/cpl-c/cpl_time.c	/^int tr_parse_interval(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_until	modules/cpl-c/cpl_time.c	/^int tr_parse_until(tmrec_p _trp, char *_in)$/;"	f
-tr_parse_wkst	modules/cpl-c/cpl_time.c	/^int tr_parse_wkst(tmrec_p _trp, char *_in)$/;"	f
-tr_print	modules/cpl-c/cpl_time.c	/^int tr_print(tmrec_p _trp)$/;"	f
-tr_res_p	modules/cpl-c/cpl_time.h	/^} tr_res_t, *tr_res_p;$/;"	t
-tr_res_t	modules/cpl-c/cpl_time.h	/^} tr_res_t, *tr_res_p;$/;"	t
-transaction_cb	modules/tm/t_hooks.h	/^typedef void (transaction_cb) (struct cell* t, int type, struct tmcb_params*);$/;"	t
-transaction_count	modules/tm/h_table.c	/^unsigned int transaction_count( void )$/;"	f
-translate_pointer	ut.h	87;"	d
-transport	parser/msg_parser.h	/^	str transport;$/;"	m	struct:sip_uri
-transport	parser/parse_param.h	/^	struct param* transport; \/* transport parameter *\/$/;"	m	struct:uri_hooks
-transport	parser/parse_via.h	/^	str transport;$/;"	m	struct:via_body
-transport	test/p_uri.c	/^	str transport;$/;"	m	struct:sip_uri	file:
-transport_fin	parser/parse_uri.c	284;"	d	file:
-transport_fin	test/p_uri.c	266;"	d	file:
-transport_val	parser/msg_parser.h	/^	str transport_val;$/;"	m	struct:sip_uri
-transport_val	test/p_uri.c	/^	str transport_val;$/;"	m	struct:sip_uri	file:
-tree	modules/jabber/tree234.c	/^tree234 *tree;$/;"	v
-tree234	modules/jabber/tree234.h	/^typedef struct tree234_Tag tree234;$/;"	t
-tree234_Tag	modules/jabber/tree234.c	/^struct tree234_Tag {$/;"	s	file:
-treedepth	modules/jabber/tree234.c	/^    int treedepth;$/;"	m	file:
-treply_f	modules/tm/t_reply.h	/^typedef int (*treply_f)(struct sip_msg * , unsigned int , char * );$/;"	t
-treply_wb_f	modules/tm/t_reply.h	/^typedef int (*treply_wb_f)( struct cell* trans,$/;"	t
-trim	modules/cpl-c/cpl_time.c	/^static inline char* trim(char* _s)$/;"	f	file:
-trim	modules/mediaproxy/mediaproxy.c	/^trim(str *string)$/;"	f	file:
-trim	modules/postgres/db_utils.c	/^char* trim(char* _s)$/;"	f
-trim	trim.h	/^static inline void trim(str* _s)$/;"	f
-trim_filename	fifo_server.c	/^static char *trim_filename( char * file )$/;"	f	file:
-trim_leading	trim.h	/^static inline void trim_leading(str* _s)$/;"	f
-trim_len	ut.h	65;"	d
-trim_r	ut.h	78;"	d
-trim_spaces	db/db_fifo.c	90;"	d	file:
-trim_trailing	trim.h	/^static inline void trim_trailing(str* _s)$/;"	f
-trimlr	modules/cpl-c/cpl_parser.c	66;"	d	file:
-trusted_dump	modules/permissions/fifo.c	/^static int trusted_dump(FILE* pipe, char* response_file)$/;"	f	file:
-trusted_dump	modules/permissions/unixsock.c	/^static int trusted_dump(str* msg)$/;"	f	file:
-trusted_list	modules/permissions/hash.h	/^struct trusted_list {$/;"	s
-trusted_reload	modules/permissions/fifo.c	/^static int trusted_reload(FILE* pipe, char* response_file)$/;"	f	file:
-trusted_reload	modules/permissions/unixsock.c	/^static int trusted_reload(str* msg)$/;"	f	file:
-trusted_table	modules/permissions/permissions.c	/^char* trusted_table = "trusted";   \/* Name of trusted table *\/$/;"	v
-ts	modules/cpl-c/cpl_time.h	/^	struct tm ts;$/;"	m	struct:_tmrec
-tsend_dgram	tsend.c	/^int tsend_dgram(int fd, char* buf, unsigned int len, $/;"	f
-tsend_dgram_ev	tsend.c	/^int tsend_dgram_ev(int fd, const struct iovec* v, int count, int timeout)$/;"	f
-tsend_stream	tsend.c	/^int tsend_stream(int fd, char* buf, unsigned int len, int timeout)$/;"	f
-tsl	fastlock.h	/^inline static int tsl(fl_lock_t* lock)$/;"	f
-tsl	test/mips_lock.c	/^int tsl(fl_lock_t* lock)$/;"	f
-ttl	parser/msg_parser.h	/^	str ttl;$/;"	m	struct:sip_uri
-ttl	parser/parse_param.h	/^	struct param* ttl;       \/* ttl parameter *\/$/;"	m	struct:uri_hooks
-ttl	resolve.h	/^	unsigned int   ttl;$/;"	m	struct:rdata
-ttl	test/p_uri.c	/^	str ttl;$/;"	m	struct:sip_uri	file:
-ttl_val	parser/msg_parser.h	/^	str ttl_val;$/;"	m	struct:sip_uri
-ttl_val	test/p_uri.c	/^	str ttl_val;$/;"	m	struct:sip_uri	file:
-tuac_callback	modules/extcmd/extcmd_funcs.c	/^void tuac_callback( struct cell *t, struct sip_msg *msg, int code, void *param)$/;"	f
-tuples	modules/pa/presentity.h	/^	presence_tuple_t *tuples;$/;"	m	struct:presentity
-tw_append	modules/tm/t_fifo.c	/^struct tw_append {$/;"	s	file:
-tw_appends	modules/tm/t_fifo.c	/^static struct tw_append *tw_appends;$/;"	v	file:
-tw_info	modules/tm/t_fifo.c	/^struct tw_info {$/;"	s	file:
-tx	proxy.h	/^	int tx;$/;"	m	struct:proxy_l
-tx_bytes	proxy.h	/^	int tx_bytes;$/;"	m	struct:proxy_l
-tx_sock	unixsock_server.c	/^static int rx_sock, tx_sock;$/;"	v	file:
-type	db/db_val.h	/^	db_type_t type;                \/* Type of the value *\/$/;"	m
-type	lump_struct.h	/^	int type; \/* VIA, OTHER, UNSPEC(=0), ... *\/$/;"	m	struct:lump
-type	modules/acc/diam_message.h	/^	AAA_AVPDataType type;$/;"	m	struct:avp
-type	modules/auth_diameter/diameter_msg.h	/^	AAA_AVPDataType type;$/;"	m	struct:avp
-type	modules/dbtext/dbt_lib.h	/^	int type;$/;"	m	struct:_dbt_column
-type	modules/jabber/xjab_base.h	/^	int type;			\/\/ type of message$/;"	m	struct:_xj_sipmsg
-type	modules/jabber/xode.h	/^     unsigned short       type;$/;"	m	struct:xode_struct
-type	modules/mediaproxy/mediaproxy.c	/^    str type;    \/\/ stream type (`audio', `video', ...)$/;"	m	file:
-type	modules/msilo/msfuncs.h	/^	str type;$/;"	m	struct:_content_type
-type	modules/tm/t_fifo.c	/^	int type;$/;"	m	struct:hdr_avp	file:
-type	parser/hf.h	/^	int type;               \/* Header field type *\/$/;"	m	struct:hdr_field
-type	parser/parse_content.h	/^	unsigned short type;$/;"	m	struct:mime_type
-type	parser/parse_disposition.h	/^	str type;$/;"	m	struct:disposition
-type	parser/parse_fline.h	/^	int type;                         \/* Type of the Message - Request\/Response *\/$/;"	m	struct:msg_start
-type	parser/parse_param.h	/^	ptype_t type;         \/* Type of the parameter *\/$/;"	m	struct:param
-type	parser/parse_to.h	/^	int type;              \/* Type of parameter *\/$/;"	m	struct:to_param
-type	parser/parse_via.h	/^	int type;               \/* Type of the parameter *\/$/;"	m	struct:via_param
-type	re.h	/^	enum replace_special type;$/;"	m	struct:replace_with
-type	resolve.h	/^	unsigned short type;$/;"	m	struct:rdata
-type	route_struct.h	/^	int type;  \/* forward, drop, log, send ...*\/$/;"	m	struct:action
-type	route_struct.h	/^	int type; \/* exp, exp_elem *\/$/;"	m	struct:expr
-type	sr_module.h	/^	modparam_t type;        \/* param. type *\/$/;"	m	struct:param_export_
-type	tcp_conn.h	/^	enum sip_protos type; \/* PROTO_TCP or a protocol over it, e.g. TLS *\/$/;"	m	struct:tcp_connection
-type	usr_avp.c	/^	int type;$/;"	m	struct:avp_spec	file:
-type_node_s	parser/parse_content.c	/^typedef struct type_node_s {$/;"	s	file:
-type_node_t	parser/parse_content.c	/^}type_node_t;$/;"	t	file:
-type_tree	parser/parse_content.c	/^static type_node_t type_tree[] = {$/;"	v	file:
-types	db/db_res.h	/^		db_type_t* types;  \/* Column types *\/$/;"	m	struct:db_res::<anonymous>
-types	modules/tm/t_hooks.h	/^	int types;                   \/* types of events that trigger the callback*\/$/;"	m	struct:tm_callback
-types	modules/usrloc/ul_callback.h	/^	int types;                   \/* types of events that trigger the callback*\/$/;"	m	struct:ul_callback
-u	ip_addr.h	/^	}u;$/;"	m	struct:ip_addr
-u	lump_struct.h	/^	}u;$/;"	m	struct:lump
-u	mem/f_malloc.h	/^	}u;$/;"	m	struct:fm_frag
-u	mem/q_malloc.h	/^	}u;$/;"	m	struct:qm_frag
-u	mem/vq_malloc.h	/^	} u;$/;"	m	struct:vqm_frag
-u	modules/exec/exec_hf.h	/^	} u;$/;"	m	struct:hf_wrapper
-u	parser/parse_fline.h	/^	}u;$/;"	m	struct:msg_start
-u	re.h	/^	}u;$/;"	m	struct:replace_with
-u_wide_int	modules/jabber/xsnprintf.c	/^typedef unsigned WIDE_INT u_wide_int;$/;"	t	file:
-ua_client	modules/tm/h_table.h	/^typedef struct ua_client$/;"	s
-ua_client_type	modules/tm/h_table.h	/^}ua_client_type;$/;"	t
-ua_server	modules/tm/h_table.h	/^typedef struct ua_server$/;"	s
-ua_server_type	modules/tm/h_table.h	/^}ua_server_type;$/;"	t
-uac	modules/tm/h_table.h	/^	struct ua_client  uac[ MAX_BRANCHES ];$/;"	m	struct:cell
-uac_from	modules/tm/uac.c	/^char* uac_from = "sip:foo at foo.bar"; \/* Module parameter *\/$/;"	v
-uac_init	modules/tm/uac.c	/^int uac_init(void) $/;"	f
-uas	modules/tm/h_table.h	/^	struct ua_server  uas;$/;"	m	struct:cell
-ucontact	modules/usrloc/ucontact.h	/^typedef struct ucontact {$/;"	s
-ucontact_t	modules/usrloc/ucontact.h	/^} ucontact_t;$/;"	t
-udomain	modules/usrloc/udomain.h	/^typedef struct udomain {$/;"	s
-udomain_add	modules/usrloc/udomain.c	/^static inline void udomain_add(udomain_t* _d, urecord_t* _r)$/;"	f	file:
-udomain_remove	modules/usrloc/udomain.c	/^static inline void udomain_remove(udomain_t* _d, urecord_t* _r)$/;"	f	file:
-udomain_t	modules/usrloc/udomain.h	/^} udomain_t;$/;"	t
-udp_init	udp_server.c	/^int udp_init(struct socket_info* sock_info)$/;"	f
-udp_listen	main.c	/^struct socket_info* udp_listen=0;$/;"	v
-udp_listen	socket_info.h	/^struct socket_info* udp_listen;$/;"	v
-udp_rcv_loop	udp_server.c	/^int udp_rcv_loop()$/;"	f
-udp_send	test/sock_conn.c	/^int udp_send()$/;"	f
-udp_send	test/sock_disc.c	/^int udp_send()$/;"	f
-udp_send	udp_server.c	/^int udp_send(struct socket_info *source, char *buf, unsigned len,$/;"	f
-udp_server_h	udp_server.h	30;"	d
-uid	main.c	/^int uid = 0;$/;"	v
-ul	modules/nathelper/nathelper.c	/^static usrloc_api_t ul;$/;"	v	file:
-ul	modules/registrar/reg_mod.c	/^usrloc_api_t ul;            \/* Structure containing pointers to usrloc functions *\/$/;"	v
-ul	modules/registrar/reg_mod.h	/^usrloc_api_t ul;  \/* Structure containing pointers to usrloc functions *\/$/;"	v
-ul_add	modules/usrloc/ul_fifo.c	/^static int ul_add(FILE* pipe, char* response_file)$/;"	f	file:
-ul_add	modules/usrloc/ul_unixsock.c	/^static int ul_add(str* msg)$/;"	f	file:
-ul_callback	modules/usrloc/ul_callback.h	/^struct ul_callback {$/;"	s
-ul_cb	modules/usrloc/ul_callback.h	/^typedef void (ul_cb) (ucontact_t *c, int type, void *param);$/;"	t
-ul_dbf	modules/usrloc/ul_mod.c	/^db_func_t ul_dbf;$/;"	v
-ul_dbh	modules/usrloc/ul_mod.c	/^db_con_t* ul_dbh; \/* Database connection handle *\/$/;"	v
-ul_dump	modules/usrloc/ul_fifo.c	/^int static ul_dump(FILE* pipe, char* response_file)$/;"	f	file:
-ul_dump	modules/usrloc/ul_unixsock.c	/^static int ul_dump(str* msg)$/;"	f	file:
-ul_flush	modules/usrloc/ul_fifo.c	/^int static ul_flush(FILE* pipe, char* response_file)$/;"	f	file:
-ul_flush	modules/usrloc/ul_unixsock.c	/^static int ul_flush(str* msg)$/;"	f	file:
-ul_rm	modules/usrloc/ul_fifo.c	/^int static ul_rm( FILE *pipe, char *response_file )$/;"	f	file:
-ul_rm	modules/usrloc/ul_unixsock.c	/^static int ul_rm(str* msg)$/;"	f	file:
-ul_rm_contact	modules/usrloc/ul_fifo.c	/^static int ul_rm_contact(FILE* pipe, char* response_file)$/;"	f	file:
-ul_rm_contact	modules/usrloc/ul_unixsock.c	/^static int ul_rm_contact(str* msg)$/;"	f	file:
-ul_show_contact	modules/usrloc/ul_fifo.c	/^static inline int ul_show_contact(FILE* pipe, char* response_file)$/;"	f	file:
-ul_show_contact	modules/usrloc/ul_unixsock.c	/^static inline int ul_show_contact(str* msg)$/;"	f	file:
-ul_stats_cmd	modules/usrloc/ul_fifo.c	/^int static ul_stats_cmd( FILE *pipe, char *response_file )$/;"	f	file:
-ul_stats_cmd	modules/usrloc/ul_unixsock.c	/^static int ul_stats_cmd(str* msg)$/;"	f	file:
-ulb	modules/cpl-c/cpl_env.h	/^	usrloc_api_t ulb;        \/* Structure with pointers to usrloc funcs *\/$/;"	m	struct:cpl_functions
-ulcb_head_list	modules/usrloc/ul_callback.h	/^struct ulcb_head_list {$/;"	s
-ulcb_list	modules/usrloc/ul_callback.c	/^struct ulcb_head_list* ulcb_list = 0;$/;"	v
-umode	modules/nathelper/nathelper.c	/^static int umode = 0;$/;"	v	file:
-un_escape	ut.h	/^inline static int un_escape(str *user, str *new_user ) $/;"	f
-unforce_rtp_proxy_f	modules/nathelper/nathelper.c	/^unforce_rtp_proxy_f(struct sip_msg* msg, char* str1, char* str2)$/;"	f	file:
-unix_server_loop	unixsock_server.c	/^static void unix_server_loop(void)$/;"	f	file:
-unix_sock	pt.h	/^	int unix_sock; \/* unix socket on which tcp main listens *\/$/;"	m	struct:process_table
-unix_sock	tcp_main.c	/^	int unix_sock; \/* unix "read child" sock fd *\/$/;"	m	struct:tcp_child	file:
-unix_tcp_sock	tcp_main.c	/^int unix_tcp_sock;$/;"	v
-unixsock_add_to_reply	unixsock_server.c	/^int unixsock_add_to_reply(const char* buf, size_t len)$/;"	f
-unixsock_children	unixsock_server.c	/^int unixsock_children = 1;$/;"	v
-unixsock_cmd	scripts/sc_unixsock	/^unixsock_cmd()$/;"	f
-unixsock_cmd	unixsock_server.h	/^struct unixsock_cmd {$/;"	s
-unixsock_f	unixsock_server.h	/^typedef int (unixsock_f)(str* msg);$/;"	t
-unixsock_find_domain	modules/usrloc/ul_unixsock.c	/^static inline void unixsock_find_domain(str* _name, udomain_t** _d)$/;"	f	file:
-unixsock_hash	modules/tm/h_table.c	/^int unixsock_hash(str* msg)$/;"	f
-unixsock_name	unixsock_server.c	/^char* unixsock_name = 0;$/;"	v
-unixsock_read_body	unixsock_server.c	/^int unixsock_read_body(str* body, str* source)$/;"	f
-unixsock_read_line	unixsock_server.c	/^int unixsock_read_line(str* line, str* source)$/;"	f
-unixsock_read_lineset	unixsock_server.c	/^int unixsock_read_lineset(str* lineset, str* source)$/;"	f
-unixsock_register_cmd	unixsock_server.c	/^int unixsock_register_cmd(char* command, unixsock_f* f)$/;"	f
-unixsock_reply_asciiz	unixsock_server.c	/^int unixsock_reply_asciiz(char* str)$/;"	f
-unixsock_reply_printf	unixsock_server.c	/^int unixsock_reply_printf(char* fmt, ...)$/;"	f
-unixsock_reply_reset	unixsock_server.c	/^void unixsock_reply_reset(void)$/;"	f
-unixsock_reply_send	unixsock_server.c	/^ssize_t unixsock_reply_send(void)$/;"	f
-unixsock_reply_sendto	unixsock_server.c	/^ssize_t unixsock_reply_sendto(struct sockaddr_un* to)$/;"	f
-unixsock_reply_str	unixsock_server.c	/^int unixsock_reply_str(str* s)$/;"	f
-unixsock_sender_addr	unixsock_server.c	/^struct sockaddr_un* unixsock_sender_addr(void)$/;"	f
-unixsock_stats	modules/tm/t_stats.c	/^int static unixsock_stats(str* cmd)$/;"	f	file:
-unixsock_t_reply	modules/tm/t_reply.c	/^int unixsock_t_reply(str* msg)$/;"	f
-unixsock_tx_timeout	unixsock_server.c	/^int unixsock_tx_timeout = 2000; \/* Timeout for sending replies in milliseconds *\/$/;"	v
-unixsock_uac	modules/tm/uac_unixsock.c	/^int unixsock_uac(str* msg)$/;"	f
-unixsock_uac_cancel	modules/tm/t_cancel.c	/^int unixsock_uac_cancel(str* msg)$/;"	f
-unlink_lump_rpl	data_lump_rpl.c	/^void unlink_lump_rpl(struct sip_msg * msg, struct lump_rpl* lump)$/;"	f
-unlink_timer_lists	modules/tm/timer.c	/^void unlink_timer_lists()$/;"	f
-unlink_timers	modules/tm/timer.c	/^static void unlink_timers( struct cell *t )$/;"	f	file:
-unlock	modules/exec/kill.c	68;"	d	file:
-unlock	modules/tm/lock.h	82;"	d
-unlock	modules/tm/lock.h	85;"	d
-unlock_hash	modules/tm/h_table.c	/^void unlock_hash(int i) $/;"	f
-unlock_pdomain	modules/pa/pdomain.c	/^void unlock_pdomain(pdomain_t* _d)$/;"	f
-unlock_tree_branch	modules/pike/ip_tree.c	/^void unlock_tree_branch(unsigned char b)$/;"	f
-unlock_udomain	modules/usrloc/udomain.c	/^void unlock_udomain(udomain_t* _d)$/;"	f
-unlock_udomain	modules/usrloc/usrloc.h	/^	unlock_udomain_t     unlock_udomain;$/;"	m	struct:usrloc_api
-unlock_udomain_t	modules/usrloc/udomain.h	/^typedef void (*unlock_udomain_t)(udomain_t* _d);$/;"	t
-unmatched_totag	modules/tm/t_reply.c	/^int unmatched_totag(struct cell *t, struct sip_msg *ack)$/;"	f
-unparsed	parser/msg_parser.h	/^	char* unparsed;   \/* here we stopped parsing*\/$/;"	m	struct:sip_msg
-unput	lex.yy.c	166;"	d	file:
-unreg	modules/pa/pdomain.h	/^	unregister_watcher_t unreg; \/* Unregister watcher function *\/$/;"	m	struct:pdomain
-unregister_watcher	modules/jabber/xjab_load.h	/^	pa_unregister_watcher_f unregister_watcher;$/;"	m	struct:xjab_binds
-unregister_watcher	modules/usrloc/notify.c	/^int unregister_watcher(str* _f, str* _t, notcb_t _c, void* _data)$/;"	f
-unregister_watcher	modules/usrloc/usrloc.h	/^	unregister_watcher_t unregister_watcher;$/;"	m	struct:usrloc_api
-unregister_watcher_t	modules/pa/pdomain.h	/^typedef int (*unregister_watcher_t)(str* _f, str* _t, void* _cb, void* _data);$/;"	t
-unregister_watcher_t	modules/usrloc/notify.h	/^typedef int (*unregister_watcher_t)(str* _f, str* _t, notcb_t _c, void* _data);$/;"	t
-unset_env	modules/exec/exec_hf.c	/^void unset_env(environment_t *backup_env)$/;"	f
-unsu_CASE	parser/case_unsu.h	65;"	d
-unsupported	parser/msg_parser.h	/^	struct hdr_field* unsupported;$/;"	m	struct:sip_msg
-until	modules/cpl-c/cpl_time.h	/^	time_t until;$/;"	m	struct:_tmrec
-up_since	fifo_server.c	/^static time_t up_since;$/;"	v	file:
-up_since	unixsock_server.c	/^static time_t up_since;$/;"	v	file:
-up_since_ctime	fifo_server.c	/^static char up_since_ctime[MAX_CTIME_LEN];$/;"	v	file:
-up_since_ctime	unixsock_server.c	/^static char up_since_ctime[MAX_CTIME_LEN];$/;"	v	file:
-update	db/db.h	/^	db_update_f      update;       \/* Update table *\/$/;"	m	struct:db_func
-update	modules/registrar/save.c	/^static inline int update(struct sip_msg* _m, urecord_t* _r, contact_t* _c, str* _ua)$/;"	f	file:
-update_in_timer	modules/pike/timer.c	/^void update_in_timer(struct list_link *head, struct list_link *ll)$/;"	f
-update_local_tags	modules/tm/t_reply.c	/^static inline void update_local_tags(struct cell *trans, $/;"	f	file:
-update_new_uri	modules/pdt/pdt.c	/^int update_new_uri(struct sip_msg *msg, int code_len, char* host_port)$/;"	f
-update_presentity	modules/pa/subscribe.c	/^static int update_presentity(struct sip_msg* _m, struct pdomain* _d, $/;"	f	file:
-update_reply_stats	modules/tm/t_stats.h	/^inline static void update_reply_stats( int code ) {$/;"	f
-update_sl_failures	modules/sl/sl_stats.c	/^void update_sl_failures( void )$/;"	f
-update_sl_stats	modules/sl/sl_stats.c	/^void update_sl_stats( int code ) $/;"	f
-update_sock_struct_from_ip	forward.h	67;"	d
-update_sock_struct_from_via	forward.c	/^int update_sock_struct_from_via( union sockaddr_union* to,$/;"	f
-update_totag_set	modules/tm/t_reply.c	/^inline static int update_totag_set(struct cell *t, struct sip_msg *ok)$/;"	f	file:
-update_ucontact	modules/usrloc/ucontact.c	/^int update_ucontact(ucontact_t* _c, time_t _e, qvalue_t _q, str* _cid, int _cs,$/;"	f
-update_ucontact	modules/usrloc/usrloc.h	/^	update_ucontact_t    update_ucontact;$/;"	m	struct:usrloc_api
-update_ucontact_t	modules/usrloc/ucontact.h	/^typedef int (*update_ucontact_t)(ucontact_t* _c, time_t _e, qvalue_t _q, str* _cid, int _cs, $/;"	t
-update_watcher	modules/pa/watcher.c	/^int update_watcher(watcher_t* _w, time_t _e)$/;"	f
-uptime_cmd	unixsock_server.c	/^static int uptime_cmd(str* msg)$/;"	f	file:
-uptime_fifo_cmd	fifo_server.c	/^static int uptime_fifo_cmd( FILE *stream, char *response_file )$/;"	f	file:
-uread	modules/mediaproxy/mediaproxy.c	/^uread(int fd, void *buf, size_t count)$/;"	f	file:
-urecord	modules/usrloc/urecord.h	/^typedef struct urecord {$/;"	s
-urecord_t	modules/usrloc/urecord.h	/^} urecord_t;$/;"	t
-uri	dset.c	/^	char uri[MAX_URI_SIZE];$/;"	m	struct:branch	file:
-uri	modules/cpl-c/loc_set.h	/^		str uri;$/;"	m	struct:location::address
-uri	modules/dispatcher/dispatch.c	/^	str uri;$/;"	m	struct:_ds_dest	file:
-uri	modules/jabber/xjab_jconf.h	/^	str uri;$/;"	m	struct:_xj_jconf
-uri	modules/pa/presentity.h	/^	str   uri;$/;"	m	struct:resource_list
-uri	modules/pa/presentity.h	/^	str uri;                 \/* URI of presentity *\/$/;"	m	struct:presentity
-uri	modules/pa/watcher.h	/^	str uri;                \/* Uri of the watcher *\/$/;"	m	struct:watcher
-uri	modules/tm/h_table.h	/^	str              uri;$/;"	m	struct:ua_client
-uri	parser/contact/contact.h	/^	str uri;                \/* contact uri *\/$/;"	m	struct:contact
-uri	parser/digest/digest_parser.h	/^	str uri;                    \/* URI *\/$/;"	m	struct:dig_cred
-uri	parser/parse_fline.h	/^			str uri;          \/* Request URI *\/$/;"	m	struct:msg_start::<anonymous>::<anonymous>
-uri	parser/parse_nameaddr.h	/^	str uri;    \/* Uri part without surrounding <> *\/$/;"	m	struct:name_addr
-uri	parser/parse_param.h	/^	struct uri_hooks uri;         \/* URI hooks *\/$/;"	m	union:param_hooks
-uri	parser/parse_to.h	/^	str uri;                      \/* URI *\/$/;"	m	struct:to_body
-uri2attr	modules/avp/avp.c	/^static int uri2attr(struct sip_msg* msg, char* attr, char* foo)$/;"	f	file:
-uri2proxy	modules/tm/ut.h	/^inline static struct proxy_l *uri2proxy( str *uri, int proto )$/;"	f
-uri2sock	modules/tm/ut.h	/^static inline struct socket_info *uri2sock(struct sip_msg* msg, str *uri,$/;"	f
-uri_domain_col	modules/uri_db/uridb_mod.c	/^str uri_domain_col        = {DOMAIN_COL, DOMAIN_COL_LEN};             \/* Name of domain column in URI table *\/$/;"	v
-uri_fixup	modules/uri/uri_mod.c	/^static int uri_fixup(void** param, int param_no)$/;"	f	file:
-uri_format	modules/mangler/contact_ops.h	/^struct uri_format$/;"	s
-uri_hooks	parser/parse_param.h	/^struct uri_hooks {$/;"	s
-uri_param_1	modules/uri/checks.c	/^int uri_param_1(struct sip_msg* _msg, char* _param, char* _str2)$/;"	f
-uri_param_2	modules/uri/checks.c	/^int uri_param_2(struct sip_msg* _msg, char* _param, char* _value)$/;"	f
-uri_table	modules/uri_db/uridb_mod.c	/^str uri_table             = {URI_TABLE, URI_TABLE_LEN};               \/* Name of URI table *\/$/;"	v
-uri_trans	modules/tm/sip_msg.c	/^static void uri_trans(char *new_buf, char *org_buf, struct sip_uri *uri)$/;"	f	file:
-uri_type	cfg.y	/^uri_type:	URI			{$$=URI_O;}$/;"	l
-uri_uriuser_col	modules/uri_db/uridb_mod.c	/^str uri_uriuser_col       = {URI_USER_COL, URI_USER_COL_LEN};         \/* Name of uri_user column in URI table *\/$/;"	v
-uri_user_col	modules/uri_db/uridb_mod.c	/^str uri_user_col          = {USER_COL, USER_COL_LEN};                 \/* Name of username column in URI table *\/$/;"	v
-uridb_db_bind	modules/uri_db/checks.c	/^int uridb_db_bind(char* db_url)$/;"	f
-uridb_db_close	modules/uri_db/checks.c	/^void uridb_db_close()$/;"	f
-uridb_db_init	modules/uri_db/checks.c	/^int uridb_db_init(char* db_url)$/;"	f
-uridb_db_ver	modules/uri_db/checks.c	/^int uridb_db_ver(char* db_url, str* name)$/;"	f
-uridb_dbf	modules/uri_db/checks.c	/^static db_func_t uridb_dbf;$/;"	v	file:
-urlLength	modules/cpl/jcpli.h	/^	int urlLength;$/;"	m	struct:_Location
-usage	mem/vq_malloc.h	/^	unsigned long usage[ MAX_BUCKET +1];$/;"	m	struct:vqm_block
-usage	modules/postgres/serpgctl	/^usage() {$/;"	f
-usage	profile/launch.sh	/^function usage()$/;"	f
-usage	scripts/filter_log.sh	/^usage()$/;"	f
-usage	scripts/sc	/^usage() {$/;"	f
-usage	scripts/sc_unixsock	/^usage() {$/;"	f
-usage	scripts/ser_mysql.sh	/^usage() {$/;"	f
-usage	scripts/serconf.sh	/^function usage()$/;"	f
-usage	scripts/serstats	/^usage() {$/;"	f
-use_bsearch	modules/pa/pa_mod.c	/^int use_bsearch = 0;$/;"	v
-use_contact	modules/sms/sms.c	/^int    use_contact     = 0;$/;"	v
-use_contact	modules/sms/sms_funcs.c	/^int use_contact;$/;"	v
-use_db	modules/pa/pa_mod.c	/^int use_db = 0;$/;"	v
-use_domain	modules/auth_db/authdb_mod.c	/^int use_domain       = 0;    \/* Use also domain when looking up a table row *\/$/;"	v
-use_domain	modules/auth_diameter/auth_diameter.c	/^int use_domain = 0;$/;"	v
-use_domain	modules/auth_diameter/auth_diameter.h	/^int use_domain;$/;"	v
-use_domain	modules/avp_db/avp_db.c	/^static int use_domain        = 0;$/;"	v	file:
-use_domain	modules/avpops/avpops.c	/^static int  use_domain     = 0;  \/* if domain should be use for avp matching *\/$/;"	v	file:
-use_domain	modules/group/group_mod.c	/^int use_domain    = 0;$/;"	v
-use_domain	modules/group_radius/grouprad_mod.c	/^int use_domain = 0;  \/* By default we use domain *\/$/;"	v
-use_domain	modules/registrar/reg_mod.c	/^int use_domain = 0;$/;"	v
-use_domain	modules/speeddial/speeddial.c	/^int   use_domain       = 0;$/;"	v
-use_domain	modules/uri_db/uridb_mod.c	/^int use_domain = 0;        \/* Should does_uri_exist honor the domain part ? *\/$/;"	v
-use_domain	modules/usrloc/ul_mod.c	/^int use_domain      = 0;              \/* Whether usrloc should use domain part of aor *\/$/;"	v
-use_domain	modules/usrloc/usrloc.h	/^	int use_domain;$/;"	m	struct:usrloc_api
-use_location_package	modules/pa/pa_mod.c	/^int use_location_package = 0;$/;"	v
-use_place_table	modules/pa/pa_mod.c	/^int use_place_table = 0;$/;"	v
-use_table	db/db.h	/^	db_use_table_f   use_table;    \/* Specify table name *\/$/;"	m	struct:db_func
-use_table	modules/mysql/db_con.c	/^int use_table(db_con_t* _h, const char* _t)$/;"	f
-use_table	modules/postgres/db_con.c	/^int use_table(db_con_t* _h, const char* _t)$/;"	f
-use_uri_table	modules/uri_db/uridb_mod.c	/^int use_uri_table = 0;     \/* Should uri table be used *\/$/;"	v
-used	mem/f_malloc.h	/^	unsigned long used; \/* alloc'ed size*\/$/;"	m	struct:fm_block
-used	mem/q_malloc.h	/^	unsigned long used; \/* alloc'ed size*\/$/;"	m	struct:qm_block
-used	modules/jabber/xode.h	/^    int size, used;$/;"	m	struct:xode_pool_heap
-user	main.c	/^char* user=0;$/;"	v
-user	modules/cpl-c/cpl_run.h	/^	str user;              \/* user *\/$/;"	m	struct:cpl_interpreter
-user	modules/pdt/doc/web/request.php	/^$user="root";$/;"	v
-user	parser/digest/digest_parser.h	/^	str user;         \/* username part only *\/$/;"	m	struct:username
-user	parser/msg_parser.h	/^	str user;     \/* Username *\/$/;"	m	struct:sip_uri
-user	test/p_uri.c	/^	str user;     \/* Username *\/$/;"	m	struct:sip_uri	file:
-user2uid	main.c	/^static int user2uid(int* uid, int* gid, char* user)$/;"	f	file:
-userLocation	modules/mediaproxy/mediaproxy.c	/^static usrloc_api_t userLocation;$/;"	v	file:
-user_CASE	parser/case_user.h	46;"	d
-user_CASE	parser/digest/param_parser.c	92;"	d	file:
-user_agent	modules/cpl-c/cpl_run.h	/^	str *user_agent;$/;"	m	struct:cpl_interpreter
-user_agent	modules/usrloc/ucontact.h	/^	str user_agent;		\/* User-Agent header field *\/$/;"	m	struct:ucontact
-user_agent	parser/msg_parser.h	/^	struct hdr_field* user_agent;$/;"	m	struct:sip_msg
-user_agent_col	modules/usrloc/ul_mod.c	/^str user_agent_col  = {USER_AGENT_COL, sizeof(USER_AGENT_COL) - 1}; \/* Name of column containing user agent string *\/$/;"	v
-user_avps	modules/tm/h_table.h	/^	struct usr_avp *user_avps;$/;"	m	struct:cell
-user_col	modules/usrloc/ul_mod.c	/^str user_col        = {USER_COL, sizeof(USER_COL) - 1};             \/* Name of column containing usernames *\/$/;"	v
-user_column	modules/auth_db/authdb_mod.c	/^str user_column      = {USER_COL, USER_COL_LEN};$/;"	v
-user_column	modules/group/group_mod.c	/^str user_column   = {USER_COL, USER_COL_LEN};$/;"	v
-user_column	modules/speeddial/speeddial.c	/^char* user_column      = "username";$/;"	v
-user_param	parser/msg_parser.h	/^	str user_param;$/;"	m	struct:sip_uri
-user_param	test/p_uri.c	/^	str user_param;$/;"	m	struct:sip_uri	file:
-user_param_val	parser/msg_parser.h	/^	str user_param_val;$/;"	m	struct:sip_uri
-user_param_val	test/p_uri.c	/^	str user_param_val;$/;"	m	struct:sip_uri	file:
-userdatalength	modules/sms/sms_funcs.h	/^	int  userdatalength;$/;"	m	struct:incame_sms
-userid	modules/jabber/xjab_presence.h	/^	str userid;$/;"	m	struct:_xj_pres_cell
-username	modules/mangler/contact_ops.h	/^	str username;$/;"	m	struct:uri_format
-username	modules/mysql/my_id.h	/^	str username;  \/* Username, case sensitive *\/$/;"	m	struct:my_id
-username	parser/digest/digest_parser.h	/^	struct username username;   \/* Username *\/$/;"	m	struct:dig_cred
-username	parser/digest/digest_parser.h	/^struct username {$/;"	s
-username_col	modules/avpops/avpops_db.h	/^	char *username_col;$/;"	m	struct:db_scheme
-username_column	modules/avp_db/avp_db.c	/^static char* username_column = "username";$/;"	v	file:
-users	modules/pa/pdomain.h	/^	int users;                  \/* Number of registered presentities *\/$/;"	m	struct:pdomain
-users	modules/pa/presentity.h	/^	resource_list_t *users;$/;"	m	struct:location_package
-users	modules/usrloc/udomain.h	/^	int users;                     \/* Number of registered users *\/$/;"	m	struct:udomain
-useruri_buf	modules/speeddial/sdlookup.c	/^char useruri_buf[MAX_USERURI_SIZE];$/;"	v
-usr_avp	usr_avp.h	/^struct usr_avp {$/;"	s
-usrloc	modules/postgres/serpgctl	/^usrloc() {$/;"	f
-usrloc	scripts/sc	/^usrloc() {$/;"	f
-usrloc	scripts/sc_unixsock	/^usrloc() {$/;"	f
-usrloc_api	modules/usrloc/usrloc.h	/^typedef struct usrloc_api {$/;"	s
-usrloc_api_t	modules/usrloc/usrloc.h	/^} usrloc_api_t;$/;"	t
-ut_h	ut.h	44;"	d
-uuid_col	modules/avpops/avpops_db.h	/^	char *uuid_col;$/;"	m	struct:db_scheme
-uuid_column	modules/avp_db/avp_db.c	/^static char* uuid_column     = "uuid";$/;"	v	file:
-uval	cfg.tab.c	/^	unsigned long uval;$/;"	m	union:YYSTYPE	file:
-uval	cfg.tab.h	/^	unsigned long uval;$/;"	m	union:YYSTYPE
-uwrite	modules/mediaproxy/mediaproxy.c	/^uwrite(int fd, const void *buf, size_t count)$/;"	f	file:
-v	modules/acc/dict.h	/^	int v;$/;"	m	struct:attr
-v	modules/acc/dict.h	/^	int v;$/;"	m	struct:val
-vIA1	parser/obsolete/strs.h	60;"	d
-vIA2	parser/obsolete/strs.h	69;"	d
-vIa1	parser/obsolete/strs.h	59;"	d
-vIa2	parser/obsolete/strs.h	68;"	d
-val	db/db_val.h	/^	} val;                            \/* union of all possible types *\/$/;"	m
-val	lock_ops.h	/^		int val;                      \/* value for SETVAL *\/$/;"	m	union:semun
-val	modules/acc/dict.h	/^struct val {$/;"	s
-val	modules/avpops/avpops_impl.h	/^	int_str val;    \/* values int or str *\/$/;"	m	struct:fis_param
-val	modules/exec/exec_hf.h	/^	str val;$/;"	m	struct:attrval
-val	parser/parse_expires.h	/^	int val;             \/* Parsed value *\/$/;"	m	struct:exp_body
-val	test/locking/locking_test.c	/^		int val;                    \/* value for SETVAL *\/$/;"	m	union:semun	file:
-val	usr_avp.c	/^	int  val;$/;"	m	struct:str_int_data	file:
-val	usr_avp.c	/^	str  val;$/;"	m	struct:str_str_data	file:
-val2str	modules/mysql/val.c	/^int val2str(MYSQL* _c, db_val_t* _v, char* _s, int* _len)$/;"	f
-val2str	modules/postgres/db_val.c	/^int val2str(db_val_t* _v, char* _s, int* _len)$/;"	f
-val_column	modules/avp_db/avp_db.c	/^static char* val_column      = "value";$/;"	v	file:
-valid	parser/parse_expires.h	/^	unsigned char valid; \/* Was parsing successful ? *\/$/;"	m	struct:exp_body
-valid_to	modules/acc/acc.c	/^static inline struct hdr_field *valid_to( struct cell *t, $/;"	f	file:
-vals	modules/acc/acc_mod.c	/^struct val vals[V_MAX];$/;"	v
-vals	modules/auth_radius/authrad_mod.c	/^struct val vals[V_MAX];$/;"	v
-vals	modules/avp_radius/avp_radius.c	/^struct val vals[V_MAX];$/;"	v
-vals	modules/group_radius/grouprad_mod.c	/^struct val vals[V_MAX];$/;"	v
-vals	modules/uri_radius/urirad_mod.c	/^struct val vals[V_MAX];$/;"	v
-vals_cmp	modules/avpops/avpops_db.c	/^static db_val_t   vals_cmp[3]; \/* statement as in "select" and "delete" *\/$/;"	v	file:
-value	lump_struct.h	/^		char * value; \/* used for ADD *\/$/;"	m	union:lump::<anonymous>
-value	modules/permissions/rule.h	/^	char	value[EXPRESSION_LENGTH+1];$/;"	m	struct:expression_struct
-value	modules/tm/dlg.h	/^	unsigned int value;    \/* Sequence value *\/$/;"	m	struct:dlg_seq
-value	parser/parse_to.h	/^	str value;             \/* Parameter value *\/$/;"	m	struct:to_param
-value	parser/parse_via.h	/^	str value;              \/* Value of the parameter *\/$/;"	m	struct:via_param
-value_col	modules/avpops/avpops_db.h	/^	char *value_col;$/;"	m	struct:db_scheme
-value_common_cases	parser/parse_uri.c	201;"	d	file:
-value_common_cases	test/p_uri.c	183;"	d	file:
-value_switch	parser/parse_uri.c	255;"	d	file:
-value_switch	test/p_uri.c	237;"	d	file:
-value_switch_big	parser/parse_uri.c	267;"	d	file:
-value_switch_big	test/p_uri.c	249;"	d	file:
-values	db/db_row.h	/^	db_val_t* values;  \/* Columns in the row *\/$/;"	m	struct:db_row
-var_type	modules/exec/exec_hf.h	/^	enum wrapper_type var_type;$/;"	m	struct:hf_wrapper
-varchar	modules/pa/pa.sql	/^	r_uri        varchar(128) NOT NULL,$/;"	F
-varchar	modules/pa/pa.sql	/^	username varchar(64) not null primary key,$/;"	F
-varchar	modules/speeddial/doc/speeddial.sql	/^  username varchar(64) NOT NULL default '',$/;"	F
-vendorID	modules/acc/diam_dict.h	9;"	d
-vendorID	modules/auth_diameter/defs.h	4;"	d
-vendorId	modules/acc/diam_message.h	/^	AAAVendorId vendorId;$/;"	m	struct:avp
-vendorId	modules/auth_diameter/diameter_msg.h	/^	AAAVendorId vendorId;$/;"	m	struct:avp
-verify	modules/jabber/tree234.c	/^void verify(void) {$/;"	f
-verify_fmt	modules/acc/acc_mod.c	/^static int verify_fmt(char *fmt) {$/;"	f	file:
-version	main.c	/^static char* version=SER_FULL_VERSION;$/;"	v	file:
-version	parser/parse_fline.h	/^			str version;      \/* SIP version *\/$/;"	m	struct:msg_start::<anonymous>::<anonymous>
-version	parser/parse_via.h	/^	str version;   $/;"	m	struct:via_body
-version	test/dns_query.c	/^static char* version="dns_query 0.1";$/;"	v	file:
-version	test/gethostbyaddr.c	/^static char* version="gethostbyaddr 0.1";$/;"	v	file:
-version	test/gethostbyname.c	/^static char* version="gethostbyname 0.1";$/;"	v	file:
-version	test/ifls.c	/^static char* version="ifls 0.1";$/;"	v	file:
-version	test/locking/locking_test.c	/^static char *version="locking_test 0.1-"$/;"	v	file:
-version	test/re_test.c	/^static char *version="re_test 0.1";$/;"	v	file:
-version	test/resolver_test.c	/^static char *version="resolver_test 0.1";$/;"	v	file:
-version	test/udp_flood.c	/^static char *version="udp_flood 0.1";$/;"	v	file:
-version	test/udp_flood_disc.c	/^static char *version="udp_flood_disc 0.1";$/;"	v	file:
-version	test/udp_test_proxy.c	/^static char *version="udp_test_proxy 0.1";$/;"	v	file:
-version_cmd	unixsock_server.c	/^static int version_cmd(str* msg)$/;"	f	file:
-version_control	sr_module.c	/^static inline int version_control(void *handle, char *path)$/;"	f	file:
-version_h	version.h	32;"	d
-viA1	parser/obsolete/strs.h	58;"	d
-viA2	parser/obsolete/strs.h	67;"	d
-via1	parser/msg_parser.h	/^	struct via_body* via1;         \/* The first via *\/$/;"	m	struct:sip_msg
-via1	parser/obsolete/strs.h	31;"	d
-via1_CASE	parser/case_via.h	40;"	d
-via1_matching	modules/tm/t_lookup.c	/^int via1_matching=1;$/;"	v
-via2	parser/msg_parser.h	/^	struct via_body* via2;         \/* The second via *\/$/;"	m	struct:sip_msg
-via2	parser/obsolete/strs.h	66;"	d
-via2_CASE	parser/case_via.h	45;"	d
-via_1918	modules/nathelper/nathelper.c	/^via_1918(struct sip_msg* msg)$/;"	f	file:
-via_body	parser/parse_via.h	/^struct via_body { $/;"	s
-via_body_cloner	modules/tm/sip_msg.c	/^inline struct via_body* via_body_cloner( char* new_buf,$/;"	f
-via_builder	msg_translator.c	/^char* via_builder( unsigned int *len, $/;"	f
-via_cnt	parser/msg_parser.c	/^int via_cnt;$/;"	v
-via_len	ut.h	90;"	d
-via_matching	modules/tm/t_lookup.c	/^static inline int via_matching( struct via_body *inv_via, $/;"	f	file:
-via_param	parser/parse_via.h	/^struct via_param {$/;"	s
-vqm_block	mem/vq_malloc.h	/^struct vqm_block{$/;"	s
-vqm_debug_frag	mem/vq_malloc.c	/^void vqm_debug_frag(struct vqm_block* qm, struct vqm_frag* f)$/;"	f
-vqm_detach_free	mem/vq_malloc.c	/^static inline void vqm_detach_free( struct vqm_block* qm,$/;"	f	file:
-vqm_frag	mem/vq_malloc.h	/^struct vqm_frag {$/;"	s
-vqm_frag_end	mem/vq_malloc.h	/^struct vqm_frag_end{$/;"	s
-vqm_free	mem/vq_malloc.c	/^void vqm_free(struct vqm_block* qm, void* p, char* file, char* func, $/;"	f
-vqm_malloc	mem/vq_malloc.c	/^void* vqm_malloc(struct vqm_block* qm, unsigned int size, $/;"	f
-vqm_malloc_init	mem/vq_malloc.c	/^struct vqm_block* vqm_malloc_init(char* address, unsigned int size)$/;"	f
-vqm_status	mem/vq_malloc.c	/^void vqm_status(struct vqm_block* qm)$/;"	f
-vsnprintf	modules/jabber/xode.h	77;"	d
-w_acc_db_request	modules/acc/acc_mod.c	/^static int w_acc_db_request(struct sip_msg *rq, char *comment, char *table)$/;"	f	file:
-w_acc_diam_request	modules/acc/acc_mod.c	/^static int w_acc_diam_request(struct sip_msg *rq, char *comment, $/;"	f	file:
-w_acc_log_request	modules/acc/acc_mod.c	/^static int w_acc_log_request(struct sip_msg *rq, char *comment, char *foo)$/;"	f	file:
-w_acc_rad_request	modules/acc/acc_mod.c	/^static int w_acc_rad_request(struct sip_msg *rq, char *comment, $/;"	f	file:
-w_calculate_hooks	modules/tm/dlg.c	/^int w_calculate_hooks(dlg_t* _d)$/;"	f
-w_check_avps	modules/avpops/avpops.c	/^static int w_check_avps(struct sip_msg* msg, char* param, char *check)$/;"	f	file:
-w_dbdelete_avps	modules/avpops/avpops.c	/^static int w_dbdelete_avps(struct sip_msg* msg, char* source, char* param)$/;"	f	file:
-w_dbload_avps	modules/avpops/avpops.c	/^static int w_dbload_avps(struct sip_msg* msg, char* source, char* param)$/;"	f	file:
-w_dbstore_avps	modules/avpops/avpops.c	/^static int w_dbstore_avps(struct sip_msg* msg, char* source, char* param)$/;"	f	file:
-w_delete_avps	modules/avpops/avpops.c	/^static int w_delete_avps(struct sip_msg* msg, char* param, char* foo)$/;"	f	file:
-w_ds_select_dst	modules/dispatcher/dispatcher.c	/^static int w_ds_select_dst(struct sip_msg* msg, char* set, char* alg)$/;"	f	file:
-w_exec_dset	modules/exec/exec_mod.c	/^inline static int w_exec_dset(struct sip_msg* msg, char* cmd, char* foo)$/;"	f	file:
-w_exec_msg	modules/exec/exec_mod.c	/^inline static int w_exec_msg(struct sip_msg* msg, char* cmd, char* foo)$/;"	f	file:
-w_print_avps	modules/avpops/avpops.c	/^static int w_print_avps(struct sip_msg* msg, char* foo, char *bar)$/;"	f	file:
-w_process_maxfwd_header	modules/maxfwd/maxfwd.c	/^static int w_process_maxfwd_header(struct sip_msg* msg, char* str1,char* str2)$/;"	f	file:
-w_process_register	modules/cpl-c/cpl.c	/^static int w_process_register(struct sip_msg* msg, char* str, char* str2)$/;"	f	file:
-w_process_register_norpl	modules/cpl-c/cpl.c	/^static int w_process_register_norpl(struct sip_msg* msg, char* str,char* str2)$/;"	f	file:
-w_pushto_avps	modules/avpops/avpops.c	/^static int w_pushto_avps(struct sip_msg* msg, char* destination, char *param)$/;"	f	file:
-w_sl_reply_error	modules/sl/sl.c	/^static int w_sl_reply_error( struct sip_msg* msg, char* str, char* str2)$/;"	f	file:
-w_sl_send_reply	modules/sl/sl.c	/^static int w_sl_send_reply(struct sip_msg* msg, char* str, char* str2)$/;"	f	file:
-w_sms_send_msg	modules/sms/sms.c	/^static int w_sms_send_msg(struct sip_msg *msg, char *foo, char *bar)$/;"	f	file:
-w_sms_send_msg_to_net	modules/sms/sms.c	/^static int w_sms_send_msg_to_net(struct sip_msg *msg, char *net_nr, char *foo)$/;"	f	file:
-w_t_check	modules/tm/tm.c	/^inline static int w_t_check(struct sip_msg* msg, char* str, char* str2)$/;"	f	file:
-w_t_forward_nonack	modules/tm/tm.c	/^inline static int w_t_forward_nonack( struct sip_msg* msg, char* proxy,$/;"	f	file:
-w_t_forward_nonack_tcp	modules/tm/tm.c	/^inline static int w_t_forward_nonack_tcp( struct sip_msg* msg, char* proxy,$/;"	f	file:
-w_t_forward_nonack_tls	modules/tm/tm.c	/^inline static int w_t_forward_nonack_tls( struct sip_msg* msg, char* proxy,$/;"	f	file:
-w_t_forward_nonack_udp	modules/tm/tm.c	/^inline static int w_t_forward_nonack_udp( struct sip_msg* msg, char* proxy,$/;"	f	file:
-w_t_forward_nonack_uri	modules/tm/tm.c	/^inline static int w_t_forward_nonack_uri(struct sip_msg* msg, char *foo,$/;"	f	file:
-w_t_newtran	modules/tm/tm.c	/^inline static int w_t_newtran( struct sip_msg* p_msg, char* foo, char* bar ) $/;"	f	file:
-w_t_on_negative	modules/tm/tm.c	/^inline static int w_t_on_negative( struct sip_msg* msg, char *go_to, char *foo)$/;"	f	file:
-w_t_on_reply	modules/tm/tm.c	/^inline static int w_t_on_reply( struct sip_msg* msg, char *go_to, char *foo )$/;"	f	file:
-w_t_relay	modules/tm/tm.c	/^inline static int w_t_relay( struct sip_msg  *p_msg , $/;"	f	file:
-w_t_relay_to_tcp	modules/tm/tm.c	/^inline static int w_t_relay_to_tcp( struct sip_msg  *p_msg , $/;"	f	file:
-w_t_relay_to_tls	modules/tm/tm.c	/^inline static int w_t_relay_to_tls( struct sip_msg  *p_msg , $/;"	f	file:
-w_t_relay_to_udp	modules/tm/tm.c	/^inline static int w_t_relay_to_udp( struct sip_msg  *p_msg , $/;"	f	file:
-w_t_release	modules/tm/tm.c	/^inline static int w_t_release(struct sip_msg* msg, char* str, char* str2)$/;"	f	file:
-w_t_replicate	modules/tm/tm.c	/^inline static int w_t_replicate( struct sip_msg  *p_msg , $/;"	f	file:
-w_t_replicate_tcp	modules/tm/tm.c	/^inline static int w_t_replicate_tcp( struct sip_msg  *p_msg , $/;"	f	file:
-w_t_replicate_tls	modules/tm/tm.c	/^inline static int w_t_replicate_tls( struct sip_msg  *p_msg , $/;"	f	file:
-w_t_replicate_udp	modules/tm/tm.c	/^inline static int w_t_replicate_udp( struct sip_msg  *p_msg , $/;"	f	file:
-w_t_reply	modules/tm/tm.c	/^inline static int w_t_reply(struct sip_msg* msg, char* str, char* str2)$/;"	f	file:
-w_t_retransmit_reply	modules/tm/tm.c	/^inline static int w_t_retransmit_reply( struct sip_msg* p_msg, char* foo, char* bar)$/;"	f	file:
-w_t_unref	modules/tm/tm.c	/^static int w_t_unref( struct sip_msg *foo, void *bar)$/;"	f	file:
-w_write_avps	modules/avpops/avpops.c	/^static int w_write_avps(struct sip_msg* msg, char* source, char* param)$/;"	f	file:
-wait_handler	modules/tm/timer.c	/^inline static void wait_handler( struct timer_link *wait_tl )$/;"	f	file:
-wait_prog	modules/ext/my_exec.h	/^inline int wait_prog()$/;"	f
-wait_tl	modules/tm/h_table.h	/^	struct timer_link wait_tl;$/;"	m	struct:cell
-warn	cfg.tab.c	/^static void warn(char* s)$/;"	f	file:
-warning_builder	msg_translator.c	/^static char * warning_builder( struct sip_msg *msg, unsigned int *returned_len)$/;"	f	file:
-watcher	modules/pa/watcher.h	/^typedef struct watcher {$/;"	s
-watcher_assign_statement_id	modules/pa/watcher.c	/^static int watcher_assign_statement_id(presentity_t *presentity, watcher_t *watcher)$/;"	f	file:
-watcher_event	modules/pa/watcher.h	/^typedef enum watcher_event {$/;"	g
-watcher_event_from_string	modules/pa/watcher.c	/^watcher_event_t watcher_event_from_string(str *wename) $/;"	f
-watcher_event_names	modules/pa/watcher.c	/^static str watcher_event_names[] = {$/;"	v	file:
-watcher_event_t	modules/pa/watcher.h	/^} watcher_event_t;$/;"	t
-watcher_status	modules/pa/watcher.h	/^typedef enum watcher_status {$/;"	g
-watcher_status_from_string	modules/pa/watcher.c	/^watcher_status_t watcher_status_from_string(str *wsname) $/;"	f
-watcher_status_names	modules/pa/watcher.c	/^static str watcher_status_names[] = {$/;"	v	file:
-watcher_status_t	modules/pa/watcher.h	/^} watcher_status_t;$/;"	t
-watcher_t	modules/pa/watcher.h	/^} watcher_t;$/;"	t
-watcherinfo	modules/pa/pa.sql	/^create table watcherinfo ($/;"	t
-watcherinfo_table	modules/pa/pa_mod.c	/^char *watcherinfo_table = "watcherinfo";$/;"	v
-watchers	modules/pa/presentity.h	/^	watcher_t* watchers;     \/* List of watchers *\/$/;"	m	struct:presentity
-watchers	modules/usrloc/urecord.h	/^	struct notify_cb* watchers;         \/* List of watchers *\/$/;"	m	struct:urecord
-wb_timer	modules/usrloc/urecord.c	/^static inline int wb_timer(urecord_t* _r)$/;"	f	file:
-web_contact	examples/web_im/click_to_dial.php	/^$web_contact="sip:daemon at iptel.org";$/;"	v
-web_contact	examples/web_im/send_im.php	/^$web_contact="sip:daemon at iptel.org";$/;"	v
-weight	resolve.h	/^	unsigned short weight;$/;"	m	struct:srv_rdata
-wflags	modules/pa/watcher.h	/^typedef enum wflags {$/;"	g
-wflags_t	modules/pa/watcher.h	/^} wflags_t;$/;"	t
-which_cancel	modules/tm/t_cancel.c	/^void which_cancel( struct cell *t, branch_bm_t *cancel_bm )$/;"	f
-which_cmd	unixsock_server.c	/^static int which_cmd(str* msg)$/;"	f	file:
-which_fifo_cmd	fifo_server.c	/^static int which_fifo_cmd(FILE *stream, char *response_file )$/;"	f	file:
-whole	parser/digest/digest_parser.h	/^	str whole;        \/* The whole username parameter value *\/$/;"	m	struct:username
-wide_int	modules/jabber/xsnprintf.c	/^typedef WIDE_INT wide_int;$/;"	t	file:
-winfo_add_watcher	modules/pa/watcher.c	/^int winfo_add_watcher(str* _b, int _l, watcher_t *watcher)$/;"	f
-winfo_end_resource	modules/pa/watcher.c	/^int winfo_end_resource(str *_b, int _l)$/;"	f
-winfo_start_resource	modules/pa/watcher.c	/^int winfo_start_resource(str* _b, int _l, str* _uri, watcher_t *watcher)$/;"	f
-winfo_watchers	modules/pa/presentity.h	/^	watcher_t* winfo_watchers;  \/* Watchers subscribed to winfo *\/$/;"	m	struct:presentity
-wkst	modules/cpl-c/cpl_time.h	/^	int wkst;$/;"	m	struct:_tmrec
-workers	modules/jabber/xjab_worker.h	/^	xj_worker	workers; \/\/ the list of workers$/;"	m	struct:_xj_wlist
-working_dir	main.c	/^char* working_dir = 0;$/;"	v
-wpipe	modules/jabber/xjab_worker.h	/^	int wpipe;			\/\/ communication pipe - write$/;"	m	struct:_xj_worker
-wrapper_type	modules/exec/exec_hf.h	/^enum wrapper_type { W_HF=1, W_AV };$/;"	g
-write_cpl_cmd	modules/cpl-c/cpl_nonsig.h	/^static inline void write_cpl_cmd(unsigned int code, str *s1, str *s2, str *s3)$/;"	f
-write_lock	tcp_conn.h	/^	gen_lock_t write_lock;$/;"	m	struct:tcp_connection
-write_log	modules/cpl-c/cpl_nonsig.c	/^static inline void write_log( struct cpl_cmd *cmd)$/;"	f	file:
-write_to_db	modules/cpl-c/cpl_db.c	/^int write_to_db(char *usr, str *xml, str *bin)$/;"	f
-write_to_fifo	modules/tm/t_fifo.c	/^static int inline write_to_fifo(char *fifo, int cnt )$/;"	f	file:
-write_to_file	modules/cpl-c/cpl_loader.c	/^void write_to_file( char *file, str *txt, int n )$/;"	f
-write_to_unixsock	modules/tm/t_fifo.c	/^static int write_to_unixsock(char* sockname, int cnt)$/;"	f	file:
-wt_timer	modules/usrloc/urecord.c	/^static inline int wt_timer(urecord_t* _r)$/;"	f	file:
-www_CASE	parser/case_www.h	64;"	d
-www_authorize	modules/auth_db/authorize.c	/^int www_authorize(struct sip_msg* _m, char* _realm, char* _table)$/;"	f
-www_challenge	modules/auth/challenge.c	/^int www_challenge(struct sip_msg* _msg, char* _realm, char* _qop)$/;"	f
-x	modules/pa/presentity.h	/^	double x;$/;"	m	struct:location
-xTYPE	parser/obsolete/strs.h	309;"	d
-xTYPe	parser/obsolete/strs.h	308;"	d
-xTYpE	parser/obsolete/strs.h	307;"	d
-xTYpe	parser/obsolete/strs.h	306;"	d
-xTyPE	parser/obsolete/strs.h	305;"	d
-xTyPe	parser/obsolete/strs.h	304;"	d
-xTypE	parser/obsolete/strs.h	303;"	d
-xType	parser/obsolete/strs.h	302;"	d
-xdbg	modules/xlog/xlog.c	/^static int xdbg(struct sip_msg* msg, char* frm, char* str2)$/;"	f	file:
-xdbg_fixup	modules/xlog/xlog.c	/^static int xdbg_fixup(void** param, int param_no)$/;"	f	file:
-xj_address_translation	modules/jabber/xjab_worker.c	/^int xj_address_translation(str *src, str *dst, xj_jalias als, int flag)$/;"	f
-xj_exit_jconf	modules/jabber/jabber.c	/^static int xj_exit_jconf(struct sip_msg *msg, char* foo1, char * foo2)$/;"	f	file:
-xj_extract_aor	modules/jabber/xjab_base.c	/^int xj_extract_aor(str* u, int t)$/;"	f
-xj_get_hash	modules/jabber/xjab_base.c	/^int xj_get_hash(str *x, str *y)$/;"	f
-xj_go_offline	modules/jabber/jabber.c	/^static int xj_go_offline(struct sip_msg *msg, char* foo1, char * foo2)$/;"	f	file:
-xj_go_online	modules/jabber/jabber.c	/^static int xj_go_online(struct sip_msg *msg, char* foo1, char * foo2)$/;"	f	file:
-xj_jalias	modules/jabber/xjab_worker.h	/^} t_xj_jalias, *xj_jalias;$/;"	t
-xj_jcon	modules/jabber/xjab_jcon.h	/^} t_xj_jcon, *xj_jcon;$/;"	t
-xj_jcon_check_jconf	modules/jabber/xjab_jcon.c	/^xj_jconf xj_jcon_check_jconf(xj_jcon jbc, char* id)$/;"	f
-xj_jcon_connect	modules/jabber/xjab_jcon.c	/^int xj_jcon_connect(xj_jcon jbc)$/;"	f
-xj_jcon_del_jconf	modules/jabber/xjab_jcon.c	/^int  xj_jcon_del_jconf(xj_jcon jbc, str *sid, char dl, int flag)$/;"	f
-xj_jcon_disconnect	modules/jabber/xjab_jcon.c	/^int xj_jcon_disconnect(xj_jcon jbc)$/;"	f
-xj_jcon_free	modules/jabber/xjab_jcon.c	/^int xj_jcon_free(xj_jcon jbc)$/;"	f
-xj_jcon_get_jconf	modules/jabber/xjab_jcon.c	/^xj_jconf  xj_jcon_get_jconf(xj_jcon jbc, str* sid, char dl)$/;"	f
-xj_jcon_get_juid	modules/jabber/xjab_jcon.c	/^int  xj_jcon_get_juid(xj_jcon jbc)$/;"	f
-xj_jcon_get_roster	modules/jabber/xjab_jcon.c	/^int xj_jcon_get_roster(xj_jcon jbc)$/;"	f
-xj_jcon_init	modules/jabber/xjab_jcon.c	/^xj_jcon xj_jcon_init(char *hostname, int port)$/;"	f
-xj_jcon_is_ready	modules/jabber/xjab_jcon.c	/^int xj_jcon_is_ready(xj_jcon jbc, char *to, int tol, char dl)$/;"	f
-xj_jcon_jconf_presence	modules/jabber/xjab_jcon.c	/^int xj_jcon_jconf_presence(xj_jcon jbc, xj_jconf jcf, char* type, $/;"	f
-xj_jcon_pool	modules/jabber/xjab_util.h	/^} t_xj_jcon_pool, *xj_jcon_pool;$/;"	t
-xj_jcon_pool_add	modules/jabber/xjab_util.c	/^int xj_jcon_pool_add(xj_jcon_pool jcp, xj_jcon jc)$/;"	f
-xj_jcon_pool_add_jmsg	modules/jabber/xjab_util.c	/^int xj_jcon_pool_add_jmsg(xj_jcon_pool jcp, xj_sipmsg _jsm, xj_jcon _ojc)$/;"	f
-xj_jcon_pool_del	modules/jabber/xjab_util.c	/^int xj_jcon_pool_del(xj_jcon_pool jcp, xj_jkey jkey)$/;"	f
-xj_jcon_pool_del_jmsg	modules/jabber/xjab_util.c	/^int xj_jcon_pool_del_jmsg(xj_jcon_pool jcp, int idx)$/;"	f
-xj_jcon_pool_free	modules/jabber/xjab_util.c	/^void xj_jcon_pool_free(xj_jcon_pool jcp)$/;"	f
-xj_jcon_pool_get	modules/jabber/xjab_util.c	/^xj_jcon xj_jcon_pool_get(xj_jcon_pool jcp, xj_jkey jkey)$/;"	f
-xj_jcon_pool_init	modules/jabber/xjab_util.c	/^xj_jcon_pool xj_jcon_pool_init(int size, int jlen, int ch)$/;"	f
-xj_jcon_recv_msg	modules/jabber/xjab_jcon.c	/^int xj_jcon_recv_msg(xj_jcon jbc, char *from, char *msg)$/;"	f
-xj_jcon_send_msg	modules/jabber/xjab_jcon.c	/^int xj_jcon_send_msg(xj_jcon jbc, char *to, int tol, char *msg, $/;"	f
-xj_jcon_send_presence	modules/jabber/xjab_jcon.c	/^int xj_jcon_send_presence(xj_jcon jbc, char *sto, char *type, char *status,$/;"	f
-xj_jcon_send_subscribe	modules/jabber/xjab_jcon.c	/^int xj_jcon_send_subscribe(xj_jcon jbc, char *to, char *from, char *type)$/;"	f
-xj_jcon_set_attrs	modules/jabber/xjab_jcon.c	/^int xj_jcon_set_attrs(xj_jcon jbc, xj_jkey jkey, int cache_time, $/;"	f
-xj_jcon_set_juid	modules/jabber/xjab_jcon.c	/^void xj_jcon_set_juid(xj_jcon jbc, int _juid)$/;"	f
-xj_jcon_set_roster	modules/jabber/xjab_jcon.c	/^int xj_jcon_set_roster(xj_jcon jbc, char* jid, char *type)$/;"	f
-xj_jcon_update	modules/jabber/xjab_jcon.c	/^int xj_jcon_update(xj_jcon jbc, int cache_time)$/;"	f
-xj_jcon_user_auth	modules/jabber/xjab_jcon.c	/^int xj_jcon_user_auth(xj_jcon jbc, char *username, char *passwd,$/;"	f
-xj_jconf	modules/jabber/xjab_jconf.h	/^} t_xj_jconf, *xj_jconf;$/;"	t
-xj_jconf_check_addr	modules/jabber/xjab_jconf.c	/^int xj_jconf_check_addr(str *addr, char dl)$/;"	f
-xj_jconf_cmp	modules/jabber/xjab_jconf.c	/^int xj_jconf_cmp(void *a, void *b)$/;"	f
-xj_jconf_free	modules/jabber/xjab_jconf.c	/^int xj_jconf_free(xj_jconf jcf)$/;"	f
-xj_jconf_init_jab	modules/jabber/xjab_jconf.c	/^int xj_jconf_init_jab(xj_jconf jcf)$/;"	f
-xj_jconf_init_sip	modules/jabber/xjab_jconf.c	/^int xj_jconf_init_sip(xj_jconf jcf, str *sid, char dl)$/;"	f
-xj_jconf_new	modules/jabber/xjab_jconf.c	/^xj_jconf xj_jconf_new(str *u)$/;"	f
-xj_jconf_set_status	modules/jabber/xjab_jconf.c	/^int xj_jconf_set_status(xj_jconf jcf, int s)$/;"	f
-xj_jkey	modules/jabber/xjab_base.h	/^} t_xj_jkey, *xj_jkey;$/;"	t
-xj_jkey_cmp	modules/jabber/xjab_base.c	/^int xj_jkey_cmp(void *x, void *y)$/;"	f
-xj_jkey_free_p	modules/jabber/xjab_base.c	/^void xj_jkey_free_p(void *p)$/;"	f
-xj_jmsg_queue	modules/jabber/xjab_util.h	/^} t_xj_jmsg_queue, *xj_jmsg_queue;$/;"	t
-xj_join_jconf	modules/jabber/jabber.c	/^static int xj_join_jconf(struct sip_msg *msg, char* foo1, char * foo2)$/;"	f	file:
-xj_manage_jab	modules/jabber/xjab_worker.c	/^int xj_manage_jab(char *buf, int len, int *pos, xj_jalias als, xj_jcon jbc)$/;"	f
-xj_pres_cell	modules/jabber/xjab_presence.h	/^} t_xj_pres_cell, *xj_pres_cell;$/;"	t
-xj_pres_cell_free	modules/jabber/xjab_presence.c	/^void xj_pres_cell_free(xj_pres_cell prc)$/;"	f
-xj_pres_cell_free_all	modules/jabber/xjab_presence.c	/^void xj_pres_cell_free_all(xj_pres_cell prc)$/;"	f
-xj_pres_cell_init	modules/jabber/xjab_presence.c	/^int xj_pres_cell_init(xj_pres_cell prc, str* uid, pa_callback_f f, void* p)$/;"	f
-xj_pres_cell_new	modules/jabber/xjab_presence.c	/^xj_pres_cell xj_pres_cell_new()$/;"	f
-xj_pres_cell_update	modules/jabber/xjab_presence.c	/^int xj_pres_cell_update(xj_pres_cell prc, pa_callback_f f, void *p)$/;"	f
-xj_pres_list	modules/jabber/xjab_presence.h	/^} t_xj_pres_list, *xj_pres_list;$/;"	t
-xj_pres_list_add	modules/jabber/xjab_presence.c	/^xj_pres_cell xj_pres_list_add(xj_pres_list prl, xj_pres_cell prc)$/;"	f
-xj_pres_list_check	modules/jabber/xjab_presence.c	/^xj_pres_cell xj_pres_list_check(xj_pres_list prl, str* uid)$/;"	f
-xj_pres_list_del	modules/jabber/xjab_presence.c	/^int xj_pres_list_del(xj_pres_list prl, str *uid)$/;"	f
-xj_pres_list_free	modules/jabber/xjab_presence.c	/^void xj_pres_list_free(xj_pres_list prl)$/;"	f
-xj_pres_list_init	modules/jabber/xjab_presence.c	/^xj_pres_list xj_pres_list_init()$/;"	f
-xj_pres_list_notifyall	modules/jabber/xjab_presence.c	/^void xj_pres_list_notifyall(xj_pres_list prl, int s)$/;"	f
-xj_register_watcher	modules/jabber/jabber.c	/^void xj_register_watcher(str *from, str *to, void *cbf, void *pp)$/;"	f
-xj_send_message	modules/jabber/jabber.c	/^static int xj_send_message(struct sip_msg *msg, char* foo1, char * foo2)$/;"	f	file:
-xj_send_sip_msg	modules/jabber/xjab_worker.c	/^int xj_send_sip_msg(str *proxy, str *to, str *from, str *msg, int *cbp)$/;"	f
-xj_send_sip_msgz	modules/jabber/xjab_worker.c	/^int xj_send_sip_msgz(str *proxy, str *to, str *from, char *msg, int *cbp)$/;"	f
-xj_sig_handler	modules/jabber/xjab_worker.c	/^void xj_sig_handler(int s) $/;"	f
-xj_sipmsg	modules/jabber/xjab_base.h	/^} t_xj_sipmsg, *xj_sipmsg;$/;"	t
-xj_sipmsg_free	modules/jabber/xjab_base.c	/^void xj_sipmsg_free(xj_sipmsg jsmsg)$/;"	f
-xj_tuac_callback	modules/jabber/xjab_worker.c	/^void xj_tuac_callback( struct cell *t, int type, struct tmcb_params *ps)$/;"	f
-xj_unregister_watcher	modules/jabber/jabber.c	/^void xj_unregister_watcher(str *from, str *to, void *cbf, void *pp)$/;"	f
-xj_wlist	modules/jabber/xjab_worker.h	/^} t_xj_wlist, *xj_wlist;$/;"	t
-xj_wlist_check	modules/jabber/xjab_wlist.c	/^int xj_wlist_check(xj_wlist jwl, xj_jkey jkey, xj_jkey *p)$/;"	f
-xj_wlist_check_aliases	modules/jabber/xjab_wlist.c	/^int  xj_wlist_check_aliases(xj_wlist jwl, str *addr)$/;"	f
-xj_wlist_clean_jobs	modules/jabber/xjab_worker.c	/^int xj_wlist_clean_jobs(xj_wlist jwl, int idx, int fl)$/;"	f
-xj_wlist_del	modules/jabber/xjab_wlist.c	/^void xj_wlist_del(xj_wlist jwl, xj_jkey jkey, int _pid)$/;"	f
-xj_wlist_free	modules/jabber/xjab_wlist.c	/^void xj_wlist_free(xj_wlist jwl)$/;"	f
-xj_wlist_get	modules/jabber/xjab_wlist.c	/^int xj_wlist_get(xj_wlist jwl, xj_jkey jkey, xj_jkey *p)$/;"	f
-xj_wlist_init	modules/jabber/xjab_wlist.c	/^xj_wlist xj_wlist_init(int **pipes, int size, int max, int cache_time,$/;"	f
-xj_wlist_set_aliases	modules/jabber/xjab_wlist.c	/^int  xj_wlist_set_aliases(xj_wlist jwl, char *als, char *jd, char *pa)$/;"	f
-xj_wlist_set_flag	modules/jabber/xjab_wlist.c	/^int xj_wlist_set_flag(xj_wlist jwl, xj_jkey jkey, int fl)$/;"	f
-xj_wlist_set_pid	modules/jabber/xjab_wlist.c	/^int xj_wlist_set_pid(xj_wlist jwl, int pid, int idx)$/;"	f
-xj_worker	modules/jabber/xjab_worker.h	/^} t_xj_worker, *xj_worker;$/;"	t
-xj_worker_check_jcons	modules/jabber/xjab_worker.c	/^void xj_worker_check_jcons(xj_wlist jwl, xj_jcon_pool jcp, int ltime, fd_set *pset)$/;"	f
-xj_worker_check_qmsg	modules/jabber/xjab_worker.c	/^void xj_worker_check_qmsg(xj_wlist jwl, xj_jcon_pool jcp)$/;"	f
-xj_worker_check_watcher	modules/jabber/xjab_worker.c	/^void xj_worker_check_watcher(xj_wlist jwl, xj_jcon_pool jcp,$/;"	f
-xj_worker_process	modules/jabber/xjab_worker.c	/^int xj_worker_process(xj_wlist jwl, char* jaddress, int jport, int rank,$/;"	f
-xjab_binds	modules/jabber/xjab_load.h	/^struct xjab_binds {$/;"	s
-xjab_check_workers	modules/jabber/jabber.c	/^void xjab_check_workers(int mpid)$/;"	f
-xjab_connections	modules/jabber/jabber.c	/^int xjab_connections(ih_req_p _irp, void *_p, char *_bb, int *_bl, $/;"	f
-xjab_manage_sipmsg	modules/jabber/jabber.c	/^int xjab_manage_sipmsg(struct sip_msg *msg, int type)$/;"	f
-xjab_mod_info	modules/jabber/jabber.c	/^int xjab_mod_info(ih_req_p _irp, void *_p, char *_bb, int *_bl, $/;"	f
-xl_elog_free_all	modules/xlog/xl_lib.c	/^int xl_elog_free_all(xl_elog_p log)$/;"	f
-xl_elog_p	modules/xlog/xl_lib.h	/^} xl_elog_t, *xl_elog_p;$/;"	t
-xl_elog_t	modules/xlog/xl_lib.h	/^} xl_elog_t, *xl_elog_p;$/;"	t
-xl_get_callid	modules/xlog/xl_lib.c	/^static int xl_get_callid(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_contact	modules/xlog/xl_lib.c	/^static int xl_get_contact(struct sip_msg* msg, str* res, str *hp, int hi)$/;"	f	file:
-xl_get_cseq	modules/xlog/xl_lib.c	/^static int xl_get_cseq(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_flags	modules/xlog/xl_lib.c	/^static int xl_get_flags(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_from	modules/xlog/xl_lib.c	/^static int xl_get_from(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_from_tag	modules/xlog/xl_lib.c	/^static int xl_get_from_tag(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_header	modules/xlog/xl_lib.c	/^static int xl_get_header(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_method	modules/xlog/xl_lib.c	/^static int xl_get_method(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_msg_buf	modules/xlog/xl_lib.c	/^static int xl_get_msg_buf(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_msg_len	modules/xlog/xl_lib.c	/^static int xl_get_msg_len(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_msgid	modules/xlog/xl_lib.c	/^static int xl_get_msgid(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_null	modules/xlog/xl_lib.c	/^static int xl_get_null(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_percent	modules/xlog/xl_lib.c	/^static int xl_get_percent(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_pid	modules/xlog/xl_lib.c	/^static int xl_get_pid(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_reason	modules/xlog/xl_lib.c	/^static int xl_get_reason(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_ruri	modules/xlog/xl_lib.c	/^static int xl_get_ruri(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_srcip	modules/xlog/xl_lib.c	/^static int xl_get_srcip(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_status	modules/xlog/xl_lib.c	/^static int xl_get_status(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_timef	modules/xlog/xl_lib.c	/^static int xl_get_timef(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_times	modules/xlog/xl_lib.c	/^static int xl_get_times(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_to	modules/xlog/xl_lib.c	/^static int xl_get_to(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_get_to_tag	modules/xlog/xl_lib.c	/^static int xl_get_to_tag(struct sip_msg* msg, str* res, str *hp, int hi)$/;"	f	file:
-xl_get_useragent	modules/xlog/xl_lib.c	/^static int xl_get_useragent(struct sip_msg *msg, str *res, str *hp, int hi)$/;"	f	file:
-xl_parse_format	modules/xlog/xl_lib.c	/^int xl_parse_format(char *s, xl_elog_p *el)$/;"	f
-xl_print_log	modules/xlog/xl_lib.c	/^int xl_print_log(struct sip_msg* msg, xl_elog_p log, char *buf, int *len)$/;"	f
-xlate_pointers	parser/parse_rr.c	/^static inline void xlate_pointers(rr_t* _orig, rr_t* _r)$/;"	f	file:
-xlog	modules/xlog/xlog.c	/^static int xlog(struct sip_msg* msg, char* lev, char* frm)$/;"	f	file:
-xlog_fixup	modules/xlog/xlog.c	/^static int xlog_fixup(void** param, int param_no)$/;"	f	file:
-xmlDocGetNodeByName	modules/pa/pidf.c	/^xmlNodePtr xmlDocGetNodeByName(xmlDocPtr doc, const char *name, const char *ns)$/;"	f
-xmlDocGetNodeContentByName	modules/pa/pidf.c	/^char *xmlDocGetNodeContentByName(xmlDocPtr doc, const char *name, const char *ns)$/;"	f
-xmlDocMapByName	modules/pa/pidf.c	/^void xmlDocMapByName(xmlDocPtr doc, const char *name, const char *ns,$/;"	f
-xmlNodeGetAttrByName	modules/pa/pidf.c	/^xmlAttrPtr xmlNodeGetAttrByName(xmlNodePtr node, const char *name)$/;"	f
-xmlNodeGetAttrContentByName	modules/pa/pidf.c	/^char *xmlNodeGetAttrContentByName(xmlNodePtr node, const char *name)$/;"	f
-xmlNodeGetChildByName	modules/pa/pidf.c	/^xmlNodePtr xmlNodeGetChildByName(xmlNodePtr node, const char *name)$/;"	f
-xmlNodeGetNodeByName	modules/pa/pidf.c	/^xmlNodePtr xmlNodeGetNodeByName(xmlNodePtr node, const char *name, const char *ns)$/;"	f
-xmlNodeGetNodeContentByName	modules/pa/pidf.c	/^char *xmlNodeGetNodeContentByName(xmlNodePtr root, const char *name, const char *ns)$/;"	f
-xmlNodeMapByName	modules/pa/pidf.c	/^void xmlNodeMapByName(xmlNodePtr node, const char *name, const char *ns, $/;"	f
-xode	modules/jabber/xode.h	/^} _xode, *xode;$/;"	t
-xode_cmp	modules/jabber/xode.c	/^int xode_cmp(xode a, xode b)$/;"	f
-xode_dup	modules/jabber/xode.c	/^xode xode_dup(xode x)$/;"	f
-xode_dup_frompool	modules/jabber/xode.c	/^xode xode_dup_frompool(xode_pool p, xode x)$/;"	f
-xode_free	modules/jabber/xode.c	/^void xode_free(xode node)$/;"	f
-xode_from_file	modules/jabber/xode_from.c	/^xode xode_from_file(char *file)$/;"	f
-xode_from_str	modules/jabber/xode_from.c	/^xode xode_from_str(char *str, int len)$/;"	f
-xode_from_strx	modules/jabber/xode_from.c	/^xode xode_from_strx(char *str, int len, int *err, int *pos)$/;"	f
-xode_get_attrib	modules/jabber/xode.c	/^char* xode_get_attrib(xode owner, const char* name)$/;"	f
-xode_get_data	modules/jabber/xode.c	/^char* xode_get_data(xode node)$/;"	f
-xode_get_datasz	modules/jabber/xode.c	/^int xode_get_datasz(xode node)$/;"	f
-xode_get_firstattrib	modules/jabber/xode.c	/^xode xode_get_firstattrib(xode parent)$/;"	f
-xode_get_firstchild	modules/jabber/xode.c	/^xode xode_get_firstchild(xode parent)$/;"	f
-xode_get_lastchild	modules/jabber/xode.c	/^xode xode_get_lastchild(xode parent)$/;"	f
-xode_get_name	modules/jabber/xode.c	/^char* xode_get_name(xode node)$/;"	f
-xode_get_nextsibling	modules/jabber/xode.c	/^xode xode_get_nextsibling(xode sibling)$/;"	f
-xode_get_parent	modules/jabber/xode.c	/^xode xode_get_parent(xode node)$/;"	f
-xode_get_pool	modules/jabber/xode.c	/^xode_pool xode_get_pool(xode node)$/;"	f
-xode_get_prevsibling	modules/jabber/xode.c	/^xode xode_get_prevsibling(xode sibling)$/;"	f
-xode_get_tag	modules/jabber/xode.c	/^xode xode_get_tag(xode parent, const char* name)$/;"	f
-xode_get_tagdata	modules/jabber/xode.c	/^char *xode_get_tagdata(xode parent, const char *name)$/;"	f
-xode_get_type	modules/jabber/xode.c	/^int xode_get_type(xode node)$/;"	f
-xode_get_vattrib	modules/jabber/xode.c	/^void* xode_get_vattrib(xode owner, const char* name)$/;"	f
-xode_has_attribs	modules/jabber/xode.c	/^int xode_has_attribs(xode node)$/;"	f
-xode_has_children	modules/jabber/xode.c	/^int xode_has_children(xode node)$/;"	f
-xode_hide	modules/jabber/xode.c	/^void xode_hide(xode child)$/;"	f
-xode_hide_attrib	modules/jabber/xode.c	/^void xode_hide_attrib(xode parent, const char *name)$/;"	f
-xode_insert_cdata	modules/jabber/xode.c	/^xode xode_insert_cdata(xode parent, const char* CDATA, unsigned int size)$/;"	f
-xode_insert_node	modules/jabber/xode.c	/^void xode_insert_node(xode parent, xode node)$/;"	f
-xode_insert_tag	modules/jabber/xode.c	/^xode xode_insert_tag(xode parent, const char* name)$/;"	f
-xode_insert_tagnode	modules/jabber/xode.c	/^xode xode_insert_tagnode(xode parent, xode node)$/;"	f
-xode_new	modules/jabber/xode.c	/^xode xode_new(const char* name)$/;"	f
-xode_new_frompool	modules/jabber/xode.c	/^xode xode_new_frompool(xode_pool p, const char* name)$/;"	f
-xode_new_tag	modules/jabber/xode.c	/^xode xode_new_tag(const char* name)$/;"	f
-xode_pool	modules/jabber/xode.h	/^} _xode_pool, *xode_pool;$/;"	t
-xode_pool_cleaner	modules/jabber/xode.h	/^typedef void (*xode_pool_cleaner)(void *arg);$/;"	t
-xode_pool_cleanup	modules/jabber/xpool.c	/^void xode_pool_cleanup(xode_pool p, xode_pool_cleaner f, void *arg)$/;"	f
-xode_pool_free	modules/jabber/xpool.c	/^struct xode_pool_free$/;"	s	file:
-xode_pool_free	modules/jabber/xpool.c	/^void xode_pool_free(xode_pool p)$/;"	f
-xode_pool_heap	modules/jabber/xode.h	/^struct xode_pool_heap$/;"	s
-xode_pool_heap	modules/jabber/xpool.c	/^xode_pool xode_pool_heap(const int bytes)$/;"	f
-xode_pool_malloc	modules/jabber/xpool.c	/^void *xode_pool_malloc(xode_pool p, int size)$/;"	f
-xode_pool_malloco	modules/jabber/xpool.c	/^void *xode_pool_malloco(xode_pool p, int size)$/;"	f
-xode_pool_mallocx	modules/jabber/xpool.c	/^void *xode_pool_mallocx(xode_pool p, int size, char c)$/;"	f
-xode_pool_new	modules/jabber/xpool.c	/^xode_pool xode_pool_new(void)$/;"	f
-xode_pool_size	modules/jabber/xpool.c	/^int xode_pool_size(xode_pool p)$/;"	f
-xode_pool_strdup	modules/jabber/xpool.c	/^char *xode_pool_strdup(xode_pool p, const char *src)$/;"	f
-xode_pool_strdupx	modules/jabber/xpool.c	/^char *xode_pool_strdupx(xode_pool p, const char *src)$/;"	f
-xode_pool_struct	modules/jabber/xode.h	/^typedef struct xode_pool_struct$/;"	s
-xode_put_attrib	modules/jabber/xode.c	/^void xode_put_attrib(xode owner, const char* name, const char* value)$/;"	f
-xode_put_vattrib	modules/jabber/xode.c	/^void xode_put_vattrib(xode owner, const char* name, void *value)$/;"	f
-xode_spool	modules/jabber/xode.h	/^} *xode_spool;$/;"	t
-xode_spool_add	modules/jabber/xode_str.c	/^void xode_spool_add(xode_spool s, char *str)$/;"	f
-xode_spool_free	modules/jabber/xode_str.c	/^void xode_spool_free(xode_spool s)$/;"	f
-xode_spool_getlen	modules/jabber/xode_str.c	/^int xode_spool_getlen(const xode_spool s)$/;"	f
-xode_spool_getpool	modules/jabber/xode_str.c	/^xode_pool xode_spool_getpool(const xode_spool s)$/;"	f
-xode_spool_new	modules/jabber/xode_str.c	/^xode_spool xode_spool_new(void)$/;"	f
-xode_spool_newfrompool	modules/jabber/xode_str.c	/^xode_spool xode_spool_newfrompool(xode_pool p)$/;"	f
-xode_spool_node	modules/jabber/xode.h	/^struct xode_spool_node$/;"	s
-xode_spool_str	modules/jabber/xode_str.c	/^char *xode_spool_str(xode_pool p, ...)$/;"	f
-xode_spool_struct	modules/jabber/xode.h	/^typedef struct xode_spool_struct$/;"	s
-xode_spool_tostr	modules/jabber/xode_str.c	/^char *xode_spool_tostr(xode_spool s)$/;"	f
-xode_spooler	modules/jabber/xode_str.c	/^void xode_spooler(xode_spool s, ...)$/;"	f
-xode_stream	modules/jabber/xode.h	/^} *xode_stream, _xode_stream;$/;"	t
-xode_stream_eat	modules/jabber/xstream.c	/^int xode_stream_eat(xode_stream xs, char *buff, int len)$/;"	f
-xode_stream_new	modules/jabber/xstream.c	/^xode_stream xode_stream_new(xode_pool p, xode_stream_onNode f, void *arg)$/;"	f
-xode_stream_onNode	modules/jabber/xode.h	/^typedef void (*xode_stream_onNode)(int type, xode x, void *arg); \/* xstream event handler *\/$/;"	t
-xode_stream_struct	modules/jabber/xode.h	/^typedef struct xode_stream_struct$/;"	s
-xode_strescape	modules/jabber/xode_str.c	/^char *xode_strescape(xode_pool p, char *buf)$/;"	f
-xode_struct	modules/jabber/xode.h	/^typedef struct xode_struct$/;"	s
-xode_strunescape	modules/jabber/xode_str.c	/^char *xode_strunescape(xode_pool p, char *buf)$/;"	f
-xode_to_file	modules/jabber/xode_from.c	/^int xode_to_file(char *file, xode node)$/;"	f
-xode_to_prettystr	modules/jabber/xode.c	/^xode_to_prettystr( xode x )$/;"	f
-xode_to_str	modules/jabber/xode.c	/^char *xode_to_str(xode node)$/;"	f
-xode_wrap	modules/jabber/xode.c	/^xode xode_wrap(xode x,const char *wrapper)$/;"	f
-xpath_get_node	modules/pa/pidf.c	/^xmlNodePtr xpath_get_node(xmlDocPtr doc, char *xpath)$/;"	f
-xpath_map	modules/pa/pidf.c	/^void xpath_map(xmlDocPtr doc, char *xpath, void (*f)(xmlNodePtr, void *), void *data)$/;"	f
-xpidf_add_address	modules/pa/xpidf.c	/^int xpidf_add_address(str* _b, int _l, str* _addr, xpidf_status_t _st)$/;"	f
-xpidf_add_presentity	modules/pa/xpidf.c	/^int xpidf_add_presentity(str* _b, int _l, str* _uri)$/;"	f
-xpidf_status	modules/pa/xpidf.h	/^typedef enum xpidf_status {$/;"	g
-xpidf_status_t	modules/pa/xpidf.h	/^} xpidf_status_t;$/;"	t
-xtYPE	parser/obsolete/strs.h	301;"	d
-xtYPe	parser/obsolete/strs.h	300;"	d
-xtYpE	parser/obsolete/strs.h	299;"	d
-xtYpe	parser/obsolete/strs.h	298;"	d
-xtyPE	parser/obsolete/strs.h	297;"	d
-xtyPe	parser/obsolete/strs.h	296;"	d
-xtypE	parser/obsolete/strs.h	295;"	d
-xtype	parser/obsolete/strs.h	294;"	d
-xxx	modules/cpl-c/cpl_time.h	/^	int *xxx;$/;"	m	struct:_tr_byxxx
-y	modules/pa/presentity.h	/^	double y;$/;"	m	struct:location
-yahoo	modules/jabber/doc/xjab.sql	/^CREATE TABLE yahoo($/;"	t
-yahoo_id	modules/jabber/doc/xjab.sql	/^	yahoo_id VARCHAR(128) NOT NULL,$/;"	F
-yday	modules/cpl-c/cpl_time.h	/^	int yday;$/;"	m	struct:_ac_maxval
-ywday	modules/cpl-c/cpl_time.h	/^	int ywday;$/;"	m	struct:_ac_maxval
-ywday	modules/cpl-c/cpl_time.h	/^	int ywday;$/;"	m	struct:_ac_tm
-yweek	modules/cpl-c/cpl_time.h	/^	int yweek;$/;"	m	struct:_ac_maxval
-yweek	modules/cpl-c/cpl_time.h	/^	int yweek;$/;"	m	struct:_ac_tm
-yy_accept	lex.yy.c	/^static yyconst flex_int16_t yy_accept[1032] =$/;"	v	file:
-yy_at_bol	lex.yy.c	/^	int yy_at_bol;$/;"	m	struct:yy_buffer_state	file:
-yy_base	lex.yy.c	/^static yyconst flex_int16_t yy_base[1126] =$/;"	v	file:
-yy_bs_column	lex.yy.c	/^    int yy_bs_column; \/**< The column count. *\/$/;"	m	struct:yy_buffer_state	file:
-yy_bs_lineno	lex.yy.c	/^    int yy_bs_lineno; \/**< The line count. *\/$/;"	m	struct:yy_buffer_state	file:
-yy_buf_pos	lex.yy.c	/^	char *yy_buf_pos;		\/* current position in input buffer *\/$/;"	m	struct:yy_buffer_state	file:
-yy_buf_size	lex.yy.c	/^	yy_size_t yy_buf_size;$/;"	m	struct:yy_buffer_state	file:
-yy_buffer_stack	lex.yy.c	/^static YY_BUFFER_STATE * yy_buffer_stack = 0; \/**< Stack as an array. *\/$/;"	v	file:
-yy_buffer_stack_max	lex.yy.c	/^static size_t yy_buffer_stack_max = 0; \/**< capacity of stack. *\/$/;"	v	file:
-yy_buffer_stack_top	lex.yy.c	/^static size_t yy_buffer_stack_top = 0; \/**< index of top of stack. *\/$/;"	v	file:
-yy_buffer_state	lex.yy.c	/^struct yy_buffer_state$/;"	s	file:
-yy_buffer_status	lex.yy.c	/^	int yy_buffer_status;$/;"	m	struct:yy_buffer_state	file:
-yy_c_buf_p	lex.yy.c	/^static char *yy_c_buf_p = (char *) 0;$/;"	v	file:
-yy_ch_buf	lex.yy.c	/^	char *yy_ch_buf;		\/* input buffer *\/$/;"	m	struct:yy_buffer_state	file:
-yy_chk	lex.yy.c	/^static yyconst flex_int16_t yy_chk[1474] =$/;"	v	file:
-yy_create_buffer	lex.yy.c	/^    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )$/;"	f
-yy_def	lex.yy.c	/^static yyconst flex_int16_t yy_def[1126] =$/;"	v	file:
-yy_delete_buffer	lex.yy.c	/^    void yy_delete_buffer (YY_BUFFER_STATE  b )$/;"	f
-yy_did_buffer_switch_on_eof	lex.yy.c	/^static int yy_did_buffer_switch_on_eof;$/;"	v	file:
-yy_ec	lex.yy.c	/^static yyconst flex_int32_t yy_ec[256] =$/;"	v	file:
-yy_fatal_error	lex.yy.c	/^static void yy_fatal_error (yyconst char* msg )$/;"	f	file:
-yy_fill_buffer	lex.yy.c	/^	int yy_fill_buffer;$/;"	m	struct:yy_buffer_state	file:
-yy_flex_debug	lex.yy.c	/^int yy_flex_debug = 0;$/;"	v
-yy_flex_strlen	lex.yy.c	/^static int yy_flex_strlen (yyconst char * s )$/;"	f	file:
-yy_flex_strncpy	lex.yy.c	/^static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )$/;"	f	file:
-yy_flush_buffer	lex.yy.c	/^    void yy_flush_buffer (YY_BUFFER_STATE  b )$/;"	f
-yy_get_next_buffer	lex.yy.c	/^static int yy_get_next_buffer (void)$/;"	f	file:
-yy_get_previous_state	lex.yy.c	/^    static yy_state_type yy_get_previous_state (void)$/;"	f	file:
-yy_hold_char	lex.yy.c	/^static char yy_hold_char;$/;"	v	file:
-yy_init	lex.yy.c	/^static int yy_init = 1;		\/* whether we need to initialize *\/$/;"	v	file:
-yy_init_buffer	lex.yy.c	/^    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )$/;"	f	file:
-yy_input_file	lex.yy.c	/^	FILE *yy_input_file;$/;"	m	struct:yy_buffer_state	file:
-yy_is_interactive	lex.yy.c	/^	int yy_is_interactive;$/;"	m	struct:yy_buffer_state	file:
-yy_is_our_buffer	lex.yy.c	/^	int yy_is_our_buffer;$/;"	m	struct:yy_buffer_state	file:
-yy_last_accepting_cpos	lex.yy.c	/^static char *yy_last_accepting_cpos;$/;"	v	file:
-yy_last_accepting_state	lex.yy.c	/^static yy_state_type yy_last_accepting_state;$/;"	v	file:
-yy_load_buffer_state	lex.yy.c	/^static void yy_load_buffer_state  (void)$/;"	f	file:
-yy_meta	lex.yy.c	/^static yyconst flex_int32_t yy_meta[74] =$/;"	v	file:
-yy_more_flag	lex.yy.c	/^static int yy_more_flag = 0;$/;"	v	file:
-yy_more_len	lex.yy.c	/^static int yy_more_len = 0;$/;"	v	file:
-yy_n_chars	lex.yy.c	/^	int yy_n_chars;$/;"	m	struct:yy_buffer_state	file:
-yy_n_chars	lex.yy.c	/^static int yy_n_chars;		\/* number of characters read into yy_ch_buf *\/$/;"	v	file:
-yy_new_buffer	lex.yy.c	300;"	d	file:
-yy_new_buffer	lex.yy.c	3374;"	d	file:
-yy_nxt	lex.yy.c	/^	flex_int32_t yy_nxt;$/;"	m	struct:yy_trans_info	file:
-yy_nxt	lex.yy.c	/^static yyconst flex_int16_t yy_nxt[1474] =$/;"	v	file:
-yy_reduce_print	cfg.tab.c	/^yy_reduce_print (yyrule)$/;"	f	file:
-yy_scan_buffer	lex.yy.c	/^YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )$/;"	f
-yy_scan_bytes	lex.yy.c	/^YY_BUFFER_STATE yy_scan_bytes  (yyconst char * bytes, int  len )$/;"	f
-yy_scan_string	lex.yy.c	/^YY_BUFFER_STATE yy_scan_string (yyconst char * yy_str )$/;"	f
-yy_set_bol	lex.yy.c	312;"	d	file:
-yy_set_bol	lex.yy.c	3373;"	d	file:
-yy_set_interactive	lex.yy.c	302;"	d	file:
-yy_set_interactive	lex.yy.c	3375;"	d	file:
-yy_size_t	lex.yy.c	/^typedef unsigned int yy_size_t;$/;"	t	file:
-yy_stack_print	cfg.tab.c	/^yy_stack_print (bottom, top)$/;"	f	file:
-yy_start	lex.yy.c	/^static int yy_start = 0;	\/* start state number *\/$/;"	v	file:
-yy_state_type	lex.yy.c	/^typedef int yy_state_type;$/;"	t	file:
-yy_switch_to_buffer	lex.yy.c	/^    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )$/;"	f
-yy_trans_info	lex.yy.c	/^struct yy_trans_info$/;"	s	file:
-yy_try_NUL_trans	lex.yy.c	/^    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )$/;"	f	file:
-yy_verify	lex.yy.c	/^	flex_int32_t yy_verify;$/;"	m	struct:yy_trans_info	file:
-yyalloc	cfg.tab.c	/^union yyalloc$/;"	u	file:
-yyalloc	lex.yy.c	/^void *yyalloc (yy_size_t  size )$/;"	f
-yychar	cfg.tab.c	/^int yychar;$/;"	v
-yycheck	cfg.tab.c	/^static const short int yycheck[] =$/;"	v	file:
-yyclearin	cfg.tab.c	1553;"	d	file:
-yyconst	lex.yy.c	96;"	d	file:
-yyconst	lex.yy.c	98;"	d	file:
-yydebug	cfg.tab.c	/^int yydebug;$/;"	v
-yydefact	cfg.tab.c	/^static const unsigned short int yydefact[] =$/;"	v	file:
-yydefgoto	cfg.tab.c	/^static const short int yydefgoto[] =$/;"	v	file:
-yydestruct	cfg.tab.c	/^yydestruct (yymsg, yytype, yyvaluep)$/;"	f	file:
-yyensure_buffer_stack	lex.yy.c	/^static void yyensure_buffer_stack (void)$/;"	f	file:
-yyerrok	cfg.tab.c	1552;"	d	file:
-yyerror	cfg.tab.c	/^static void yyerror(char* s)$/;"	f	file:
-yyfree	lex.yy.c	/^void yyfree (void * ptr )$/;"	f
-yyget_debug	lex.yy.c	/^int yyget_debug  (void)$/;"	f
-yyget_in	lex.yy.c	/^FILE *yyget_in  (void)$/;"	f
-yyget_leng	lex.yy.c	/^int yyget_leng  (void)$/;"	f
-yyget_lineno	lex.yy.c	/^int yyget_lineno  (void)$/;"	f
-yyget_out	lex.yy.c	/^FILE *yyget_out  (void)$/;"	f
-yyget_text	lex.yy.c	/^char *yyget_text  (void)$/;"	f
-yyin	lex.yy.c	/^FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;$/;"	v
-yyinput	lex.yy.c	/^    static int yyinput (void)$/;"	f	file:
-yyleng	lex.yy.c	/^int yyleng;$/;"	v
-yyless	lex.yy.c	153;"	d	file:
-yyless	lex.yy.c	3210;"	d	file:
-yyless	lex.yy.c	3211;"	d	file:
-yylex_destroy	lex.yy.c	/^int yylex_destroy  (void)$/;"	f
-yylineno	lex.yy.c	/^int yylineno = 1;$/;"	v
-yylval	cfg.tab.c	/^YYSTYPE yylval;$/;"	v
-yymore	lex.yy.c	1126;"	d	file:
-yynerrs	cfg.tab.c	/^int yynerrs;$/;"	v
-yyout	lex.yy.c	/^FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;$/;"	v
-yypact	cfg.tab.c	/^static const short int yypact[] =$/;"	v	file:
-yypgoto	cfg.tab.c	/^static const short int yypgoto[] =$/;"	v	file:
-yypop_buffer_state	lex.yy.c	/^void yypop_buffer_state (void)$/;"	f
-yyprhs	cfg.tab.c	/^static const unsigned short int yyprhs[] =$/;"	v	file:
-yypush_buffer_state	lex.yy.c	/^void yypush_buffer_state (YY_BUFFER_STATE new_buffer )$/;"	f
-yyr1	cfg.tab.c	/^static const unsigned char yyr1[] =$/;"	v	file:
-yyr2	cfg.tab.c	/^static const unsigned char yyr2[] =$/;"	v	file:
-yyrealloc	lex.yy.c	/^void *yyrealloc  (void * ptr, yy_size_t  size )$/;"	f
-yyrestart	lex.yy.c	/^    void yyrestart  (FILE * input_file )$/;"	f
-yyrhs	cfg.tab.c	/^static const short int yyrhs[] =$/;"	v	file:
-yyrline	cfg.tab.c	/^static const unsigned short int yyrline[] =$/;"	v	file:
-yyset_debug	lex.yy.c	/^void yyset_debug (int  bdebug )$/;"	f
-yyset_in	lex.yy.c	/^void yyset_in (FILE *  in_str )$/;"	f
-yyset_lineno	lex.yy.c	/^void yyset_lineno (int  line_number )$/;"	f
-yyset_out	lex.yy.c	/^void yyset_out (FILE *  out_str )$/;"	f
-yysigned_char	cfg.tab.c	/^   typedef short int yysigned_char;$/;"	t	file:
-yysigned_char	cfg.tab.c	/^   typedef signed char yysigned_char;$/;"	t	file:
-yyss	cfg.tab.c	/^  short int yyss;$/;"	m	union:yyalloc	file:
-yystos	cfg.tab.c	/^static const unsigned char yystos[] =$/;"	v	file:
-yystpcpy	cfg.tab.c	/^yystpcpy (char *yydest, const char *yysrc)$/;"	f	file:
-yystpcpy	cfg.tab.c	1780;"	d	file:
-yystrlen	cfg.tab.c	/^yystrlen (const char *yystr)$/;"	f	file:
-yystrlen	cfg.tab.c	1757;"	d	file:
-yystype	cfg.tab.c	430;"	d	file:
-yystype	cfg.tab.h	336;"	d
-yysymprint	cfg.tab.c	/^yysymprint (yyoutput, yytype, yyvaluep)$/;"	f	file:
-yytable	cfg.tab.c	/^static const short int yytable[] =$/;"	v	file:
-yyterminate	lex.yy.c	1340;"	d	file:
-yytext	lex.yy.c	/^char *yytext;$/;"	v
-yytext_ptr	lex.yy.c	3376;"	d	file:
-yytext_ptr	lex.yy.c	337;"	d	file:
-yytname	cfg.tab.c	/^static const char *const yytname[] =$/;"	v	file:
-yytokentype	cfg.tab.c	/^   enum yytokentype {$/;"	g	file:
-yytokentype	cfg.tab.h	/^   enum yytokentype {$/;"	g
-yytoknum	cfg.tab.c	/^static const unsigned short int yytoknum[] =$/;"	v	file:
-yytranslate	cfg.tab.c	/^static const unsigned char yytranslate[] =$/;"	v	file:
-yyunput	lex.yy.c	/^    static void yyunput (int c, register char * yy_bp )$/;"	f	file:
-yyvs	cfg.tab.c	/^  YYSTYPE yyvs;$/;"	m	union:yyalloc	file:

Deleted: ser/trunk/tags.h
===================================================================
--- ser/trunk/tags.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tags.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,93 +0,0 @@
-/*
- * $Id: tags.h,v 1.7 2004/08/24 08:45:10 janakj Exp $
- *
- * - utility for generating to-tags
- *   in SER, to-tags consist of two parts: a fixed part
- *   which is bound to server instance and variable part
- *   which is bound to request -- that helps to recognize,
- *   who generated the to-tag in loops through the same
- *   server -- in such cases, fixed part is constant, but
- *   the variable part varies because it depends on 
- *   via
- *   
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2003-02-18  changed TOTAG_LEN into TOTAG_VALUE_LEN, to solve
- *               redefinition conflict with tm/t_msgbuilder.h (andrei)
- */
-
-
-#ifndef _TAGS_H
-#define _TAGS_H
-
-#include "parser/msg_parser.h"
-#include "globals.h"
-#include "crc.h"
-#include "str.h"
-#include "socket_info.h"
-
-#define TOTAG_VALUE_LEN (MD5_LEN+CRC16_LEN+1)
-
-/* generate variable part of to-tag for a request;
- * it will have length of CRC16_LEN, sufficiently
- * long buffer must be passed to the function */
-static inline void calc_crc_suffix( struct sip_msg *msg, char *tag_suffix)
-{
-	int ss_nr;
-	str suffix_source[3];
-
-	ss_nr=2;
-	if (msg->via1==0) return; /* no via, bad message */
-	suffix_source[0]=msg->via1->host;
-	suffix_source[1]=msg->via1->port_str;
-	if (msg->via1->branch)
-		suffix_source[ss_nr++]=msg->via1->branch->value;
-        crcitt_string_array( tag_suffix, suffix_source, ss_nr );
-}
-
-static void inline init_tags( char *tag, char **suffix, 
-		char *signature, char separator )
-{
-	str src[3];
-	struct socket_info* si;
-	
-	si=get_first_socket();
-	src[0].s=signature; src[0].len=strlen(signature);
-	/* if we are not listening on anything we shouldn't be here */
-	src[1].s=si?si->address_str.s:"";
-	src[1].len=si?si->address_str.len:0;
-	src[2].s=si?si->port_no_str.s:"";
-	src[2].len=si?si->port_no_str.len:0;
-
-	MDStringArray( tag, src, 3 );
-
-	tag[MD5_LEN]=separator;
-	*suffix=tag+MD5_LEN+1;
-}
-
-
-#endif

Deleted: ser/trunk/tcp_conn.h
===================================================================
--- ser/trunk/tcp_conn.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tcp_conn.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,197 +0,0 @@
-/*
- * $Id: tcp_conn.h,v 1.22 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- *
- *
- * History:
- * --------
- *  2003-01-29  tcp buffer size ++-ed to allow for 0-terminator
- *  2003-06-30  added tcp_connection flags & state (andrei) 
- *  2003-10-27  tcp port aliases support added (andrei)
- */
-
-
-
-#ifndef _tcp_conn_h
-#define _tcp_conn_h
-
-#include "ip_addr.h"
-#include "locking.h"
-
-
-#define TCP_CON_MAX_ALIASES 4 /* maximum number of port aliases */
-
-#define TCP_BUF_SIZE 65535
-#define TCP_CON_TIMEOUT 120 /* in  seconds */
-#define TCP_CON_SEND_TIMEOUT 120 /* timeout after a send */
-#define DEFAULT_TCP_SEND_TIMEOUT 10 /* if a send can't write for more then 10s,
-									   timeout */
-#define DEFAULT_TCP_CONNECT_TIMEOUT 10 /* if a connect doesn't complete in this
-										  time, timeout */
-#define TCP_CHILD_TIMEOUT 5 /* after 5 seconds, the child "returns" 
-							 the connection to the tcp master process */
-#define TCP_MAIN_SELECT_TIMEOUT 5 /* how often "tcp main" checks for timeout*/
-#define TCP_CHILD_SELECT_TIMEOUT 2 /* the same as above but for children */
-
-
-/* tcp connection flags */
-#define F_CONN_NON_BLOCKING 1
-
-
-enum tcp_req_errors {	TCP_REQ_INIT, TCP_REQ_OK, TCP_READ_ERROR,
-						TCP_REQ_OVERRUN, TCP_REQ_BAD_LEN };
-enum tcp_req_states {	H_SKIP_EMPTY, H_SKIP, H_LF, H_LFCR,  H_BODY, H_STARTWS,
-		H_CONT_LEN1, H_CONT_LEN2, H_CONT_LEN3, H_CONT_LEN4, H_CONT_LEN5,
-		H_CONT_LEN6, H_CONT_LEN7, H_CONT_LEN8, H_CONT_LEN9, H_CONT_LEN10,
-		H_CONT_LEN11, H_CONT_LEN12, H_CONT_LEN13, H_L_COLON, 
-		H_CONT_LEN_BODY, H_CONT_LEN_BODY_PARSE 
-	};
-
-enum tcp_conn_states { S_CONN_ERROR=-2, S_CONN_BAD=-1, S_CONN_OK=0, 
-						S_CONN_INIT, S_CONN_EOF, 
-						S_CONN_ACCEPT, S_CONN_CONNECT };
-
-
-/* fd communication commands */
-enum conn_cmds { CONN_DESTROY=-3, CONN_ERROR=-2, CONN_EOF=-1, CONN_RELEASE, 
-					CONN_GET_FD, CONN_NEW };
-/* CONN_RELEASE, EOF, ERROR, DESTROY can be used by "reader" processes
- * CONN_GET_FD, NEW, ERROR only by writers */
-
-struct tcp_req{
-	struct tcp_req* next;
-	/* sockaddr ? */
-	char buf[TCP_BUF_SIZE+1]; /* bytes read so far (+0-terminator)*/
-	char* start; /* where the message starts, after all the empty lines are
-					skipped*/
-	char* pos; /* current position in buf */
-	char* parsed; /* last parsed position */
-	char* body; /* body position */
-	int content_len;
-	int has_content_len; /* 1 if content_length was parsed ok*/
-	int complete; /* 1 if one req has been fully read, 0 otherwise*/
-	int bytes_to_go; /* how many bytes we have still to read from the body*/
-	enum tcp_req_errors error;
-	enum tcp_req_states state;
-};
-
-
-
-struct tcp_connection;
-
-/* tcp port alias structure */
-struct tcp_conn_alias{
-	struct tcp_connection* parent;
-	struct tcp_conn_alias* next;
-	struct tcp_conn_alias* prev;
-	unsigned short port; /* alias port */
-	unsigned short hash; /* hash index in the address hash */
-};
-
-
-
-struct tcp_connection{
-	int s; /*socket, used by "tcp main" */
-	int fd; /* used only by "children", don't modify it! private data! */
-	gen_lock_t write_lock;
-	int id; /* id (unique!) used to retrieve a specific connection when
-	           reply-ing*/
-	struct receive_info rcv; /* src & dst ip, ports, proto a.s.o*/
-	struct tcp_req req; /* request data */
-	volatile int refcnt;
-	enum sip_protos type; /* PROTO_TCP or a protocol over it, e.g. TLS */
-	int flags; /* connection related flags */
-	enum tcp_conn_states state; /* connection state */
-	void* extra_data; /* extra data associated to the connection, 0 for tcp*/
-	int timeout; /* connection timeout, after this it will be removed*/
-	unsigned id_hash; /* hash index in the id_hash */
-	int aliases; /* aliases number, at least 1 */
-	struct tcp_conn_alias con_aliases[TCP_CON_MAX_ALIASES];
-	struct tcp_connection* id_next; /* next, prev in id hash table */
-	struct tcp_connection* id_prev;
-	struct tcp_connection* c_next; /* child next prev (use locally) */
-	struct tcp_connection* c_prev;
-};
-
-
-
-
-
-
-#define init_tcp_req( r) \
-	do{ \
-		memset( (r), 0, sizeof(struct tcp_req)); \
-		(r)->parsed=(r)->pos=(r)->start=(r)->buf; \
-		(r)->error=TCP_REQ_OK;\
-		(r)->state=H_SKIP_EMPTY; \
-	}while(0)
-
-
-/* add a tcpconn to a list*/
-/* list head, new element, next member, prev member */
-#define tcpconn_listadd(head, c, next, prev) \
-	do{ \
-		/* add it at the begining of the list*/ \
-		(c)->next=(head); \
-		(c)->prev=0; \
-		if ((head)) (head)->prev=(c); \
-		(head)=(c); \
-	} while(0)
-
-
-/* remove a tcpconn from a list*/
-#define tcpconn_listrm(head, c, next, prev) \
-	do{ \
-		if ((head)==(c)) (head)=(c)->next; \
-		if ((c)->next) (c)->next->prev=(c)->prev; \
-		if ((c)->prev) (c)->prev->next=(c)->next; \
-	}while(0)
-
-
-#define TCPCONN_LOCK lock_get(tcpconn_lock);
-#define TCPCONN_UNLOCK lock_release(tcpconn_lock);
-
-#define TCP_ALIAS_HASH_SIZE 1024
-#define TCP_ID_HASH_SIZE 1024
-
-static inline unsigned tcp_addr_hash(struct ip_addr* ip, unsigned short port)
-{
-	if(ip->len==4) return (ip->u.addr32[0]^port)&(TCP_ALIAS_HASH_SIZE-1);
-	else if (ip->len==16) 
-			return (ip->u.addr32[0]^ip->u.addr32[1]^ip->u.addr32[2]^
-					ip->u.addr32[3]^port) & (TCP_ALIAS_HASH_SIZE-1);
-	else{
-		LOG(L_CRIT, "tcp_addr_hash: BUG: bad len %d for an ip address\n",
-				ip->len);
-		return 0;
-	}
-}
-
-#define tcp_id_hash(id) (id&(TCP_ID_HASH_SIZE-1))
-
-
-#endif
-
-

Deleted: ser/trunk/tcp_init.h
===================================================================
--- ser/trunk/tcp_init.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tcp_init.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,40 +0,0 @@
-/*
- * $Id: tcp_init.h,v 1.3 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-#ifndef tcp_init_h
-#define tcp_init_h
-#include "ip_addr.h"
-
-int init_tcp();
-void destroy_tcp();
-int tcp_init(struct socket_info* sock_info);
-int tcp_init_children();
-void tcp_main_loop();
-void tcp_receive_loop(int unix_sock);
-
-
-#endif

Deleted: ser/trunk/tcp_main.c
===================================================================
--- ser/trunk/tcp_main.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tcp_main.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,1449 +0,0 @@
-/*
- * $Id: tcp_main.c,v 1.58.2.2 2005/06/16 10:30:07 andrei Exp $
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- *  2002-11-29  created by andrei
- *  2002-12-11  added tcp_send (andrei)
- *  2003-01-20  locking fixes, hashtables (andrei)
- *  2003-02-20  s/lock_t/gen_lock_t/ to avoid a conflict on solaris (andrei)
- *  2003-02-25  Nagle is disabled if -DDISABLE_NAGLE (andrei)
- *  2003-03-29  SO_REUSEADDR before calling bind to allow
- *              server restart, Nagle set on the (hopefuly) 
- *              correct socket (jiri)
- *  2003-03-31  always try to find the corresponding tcp listen socket for
- *               a temp. socket and store in in *->bind_address: added
- *               find_tcp_si, modified tcpconn_connect (andrei)
- *  2003-04-14  set sockopts to TOS low delay (andrei)
- *  2003-06-30  moved tcp new connect checking & handling to
- *               handle_new_connect (andrei)
- *  2003-07-09  tls_close called before closing the tcp connection (andrei)
- *  2003-10-24  converted to the new socket_info lists (andrei)
- *  2003-10-27  tcp port aliases support added (andrei)
- *  2003-11-04  always lock before manipulating refcnt; sendchild
- *              does not inc refcnt by itself anymore (andrei)
- *  2003-11-07  different unix sockets are used for fd passing
- *              to/from readers/writers (andrei)
- *  2003-11-17  handle_new_connect & tcp_connect will close the 
- *              new socket if tcpconn_new return 0 (e.g. out of mem) (andrei)
- *  2003-11-28  tcp_blocking_write & tcp_blocking_connect added (andrei)
- *  2004-11-08  dropped find_tcp_si and replaced with find_si (andrei)
- */
-
-
-#ifdef USE_TCP
-
-
-#ifndef SHM_MEM
-#error "shared memory support needed (add -DSHM_MEM to Makefile.defs)"
-#endif
-
-
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/select.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <netinet/tcp.h>
-#include <sys/uio.h>  /* writev*/
-#include <netdb.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-
-#include <errno.h>
-#include <string.h>
-
-
-
-#include "ip_addr.h"
-#include "pass_fd.h"
-#include "tcp_conn.h"
-#include "globals.h"
-#include "pt.h"
-#include "locking.h"
-#include "mem/mem.h"
-#include "mem/shm_mem.h"
-#include "timer.h"
-#include "sr_module.h"
-#include "tcp_server.h"
-#include "tcp_init.h"
-#include "tsend.h"
-#ifdef USE_TLS
-#include "tls/tls_server.h"
-#endif
-
-
-
-
-#define local_malloc pkg_malloc
-#define local_free   pkg_free
-
-#define MAX_TCP_CHILDREN 100
-
-struct tcp_child{
-	pid_t pid;
-	int proc_no; /* ser proc_no, for debugging */
-	int unix_sock; /* unix "read child" sock fd */
-	int busy;
-	int n_reqs; /* number of requests serviced so far */
-};
-
-
-int tcp_accept_aliases=0; /* by default don't accept aliases */
-int tcp_connect_timeout=DEFAULT_TCP_CONNECT_TIMEOUT;
-int tcp_send_timeout=DEFAULT_TCP_SEND_TIMEOUT;
-
-/* connection hash table (after ip&port) , includes also aliases */
-struct tcp_conn_alias** tcpconn_aliases_hash=0;
-/* connection hash table (after connection id) */
-struct tcp_connection** tcpconn_id_hash=0;
-gen_lock_t* tcpconn_lock=0;
-
-struct tcp_child tcp_children[MAX_TCP_CHILDREN];
-static int* connection_id=0; /*  unique for each connection, used for 
-								quickly finding the corresponding connection
-								for a reply */
-int unix_tcp_sock;
-
-int tcp_proto_no=-1; /* tcp protocol number as returned by getprotobyname */
-
-
-
-/* set all socket/fd options:  disable nagle, tos lowdelay, non-blocking
- * return -1 on error */
-static int init_sock_opt(int s)
-{
-	int flags;
-	int optval;
-	
-#ifdef DISABLE_NAGLE
-	flags=1;
-	if ( (tcp_proto_no!=-1) && (setsockopt(s, tcp_proto_no , TCP_NODELAY,
-					&flags, sizeof(flags))<0) ){
-		LOG(L_WARN, "WARNING: init_sock_opt: could not disable Nagle: %s\n",
-				strerror(errno));
-	}
-#endif
-	/* tos*/
-	optval=IPTOS_LOWDELAY;
-	if (setsockopt(s, IPPROTO_IP, IP_TOS, (void*)&optval,sizeof(optval)) ==-1){
-		LOG(L_WARN, "WARNING: init_sock_opt: setsockopt tos: %s\n",
-				strerror(errno));
-		/* continue since this is not critical */
-	}
-	/* non-blocking */
-	flags=fcntl(s, F_GETFL);
-	if (flags==-1){
-		LOG(L_ERR, "ERROR: init_sock_opt: fnctl failed: (%d) %s\n",
-				errno, strerror(errno));
-		goto error;
-	}
-	if (fcntl(s, F_SETFL, flags|O_NONBLOCK)==-1){
-		LOG(L_ERR, "ERROR: init_sock_opt: fcntl: set non-blocking failed:"
-				" (%d) %s\n", errno, strerror(errno));
-		goto error;
-	}
-	return 0;
-error:
-	return -1;
-}
-
-
-
-static int tcp_blocking_connect(int fd, const struct sockaddr *servaddr,
-								socklen_t addrlen)
-{
-	int n;
-	fd_set sel_set;
-	struct timeval timeout;
-	int ticks;
-	int err;
-	unsigned int err_len;
-	
-again:
-	n=connect(fd, servaddr, addrlen);
-	if (n==-1){
-		if (errno==EINTR) goto again;
-		if (errno!=EINPROGRESS && errno!=EALREADY){
-			LOG(L_ERR, "ERROR: tcp_blocking_connect: (%d) %s\n",
-					errno, strerror(errno));
-			goto error;
-		}
-	}else goto end;
-	
-	while(1){
-		FD_ZERO(&sel_set);
-		FD_SET(fd, &sel_set);
-		timeout.tv_sec=tcp_connect_timeout;
-		timeout.tv_usec=0;
-		ticks=get_ticks();
-		n=select(fd+1, 0, &sel_set, 0, &timeout);
-		if (n<0){
-			if (errno==EINTR) continue;
-			LOG(L_ERR, "ERROR: tcp_blocking_connect: select failed: (%d) %s\n",
-					errno, strerror(errno));
-			goto error;
-		}else if (n==0){
-			/* timeout */
-			if (get_ticks()-ticks>=tcp_connect_timeout){
-				LOG(L_ERR, "ERROR: tcp_blocking_connect: timeout (%d)\n",
-						tcp_connect_timeout);
-				goto error;
-			}
-			continue;
-		}
-		if (FD_ISSET(fd, &sel_set)){
-			err_len=sizeof(err);
-			getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len);
-			if (err==0) goto end;
-			if (err!=EINPROGRESS && err!=EALREADY){
-				LOG(L_ERR, "ERROR: tcp_blocking_connect: SO_ERROR (%d) %s\n",
-						err, strerror(err));
-				goto error;
-			}
-		}
-	}
-error:
-	return -1;
-end:
-	return 0;
-}
-
-
-
-#if 0
-/* blocking write even on non-blocking sockets 
- * if TCP_TIMEOUT will return with error */
-static int tcp_blocking_write(struct tcp_connection* c, int fd, char* buf,
-								unsigned int len)
-{
-	int n;
-	fd_set sel_set;
-	struct timeval timeout;
-	int ticks;
-	int initial_len;
-	
-	initial_len=len;
-again:
-	
-	n=send(fd, buf, len,
-#ifdef HAVE_MSG_NOSIGNAL
-			MSG_NOSIGNAL
-#else
-			0
-#endif
-		);
-	if (n<0){
-		if (errno==EINTR)	goto again;
-		else if (errno!=EAGAIN && errno!=EWOULDBLOCK){
-			LOG(L_ERR, "tcp_blocking_write: failed to send: (%d) %s\n",
-					errno, strerror(errno));
-			goto error;
-		}
-	}else if (n<len){
-		/* partial write */
-		buf+=n;
-		len-=n;
-	}else{
-		/* success: full write */
-		goto end;
-	}
-	while(1){
-		FD_ZERO(&sel_set);
-		FD_SET(fd, &sel_set);
-		timeout.tv_sec=tcp_send_timeout;
-		timeout.tv_usec=0;
-		ticks=get_ticks();
-		n=select(fd+1, 0, &sel_set, 0, &timeout);
-		if (n<0){
-			if (errno==EINTR) continue; /* signal, ignore */
-			LOG(L_ERR, "ERROR: tcp_blocking_write: select failed: "
-					" (%d) %s\n", errno, strerror(errno));
-			goto error;
-		}else if (n==0){
-			/* timeout */
-			if (get_ticks()-ticks>=tcp_send_timeout){
-				LOG(L_ERR, "ERROR: tcp_blocking_write: send timeout (%d)\n",
-						tcp_send_timeout);
-				goto error;
-			}
-			continue;
-		}
-		if (FD_ISSET(fd, &sel_set)){
-			/* we can write again */
-			goto again;
-		}
-	}
-error:
-		return -1;
-end:
-		return initial_len;
-}
-#endif
-
-
-
-struct tcp_connection* tcpconn_new(int sock, union sockaddr_union* su,
-									struct socket_info* ba, int type, 
-									int state)
-{
-	struct tcp_connection *c;
-	
-	c=(struct tcp_connection*)shm_malloc(sizeof(struct tcp_connection));
-	if (c==0){
-		LOG(L_ERR, "ERROR: tcpconn_new: mem. allocation failure\n");
-		goto error;
-	}
-	memset(c, 0, sizeof(struct tcp_connection)); /* zero init */
-	c->s=sock;
-	c->fd=-1; /* not initialized */
-	if (lock_init(&c->write_lock)==0){
-		LOG(L_ERR, "ERROR: tcpconn_new: init lock failed\n");
-		goto error;
-	}
-	
-	c->rcv.src_su=*su;
-	
-	c->refcnt=0;
-	su2ip_addr(&c->rcv.src_ip, su);
-	c->rcv.src_port=su_getport(su);
-	c->rcv.bind_address=ba;
-	if (ba){
-		c->rcv.dst_ip=ba->address;
-		c->rcv.dst_port=ba->port_no;
-	}
-	print_ip("tcpconn_new: new tcp connection: ", &c->rcv.src_ip, "\n");
-	DBG(     "tcpconn_new: on port %d, type %d\n", c->rcv.src_port, type);
-	init_tcp_req(&c->req);
-	c->id=(*connection_id)++;
-	c->rcv.proto_reserved1=0; /* this will be filled before receive_message*/
-	c->rcv.proto_reserved2=0;
-	c->state=state;
-	c->extra_data=0;
-#ifdef USE_TLS
-	if (type==PROTO_TLS){
-		if (tls_tcpconn_init(c, sock)==-1) goto error;
-	}else
-#endif /* USE_TLS*/
-	{
-		c->type=PROTO_TCP;
-		c->rcv.proto=PROTO_TCP;
-		c->flags=0;
-		c->timeout=get_ticks()+TCP_CON_TIMEOUT;
-	}
-			
-		
-	return c;
-	
-error:
-	if (c) shm_free(c);
-	return 0;
-}
-
-
-
-struct tcp_connection* tcpconn_connect(union sockaddr_union* server, int type)
-{
-	int s;
-	struct socket_info* si;
-	union sockaddr_union my_name;
-	socklen_t my_name_len;
-	struct tcp_connection* con;
-	struct ip_addr ip;
-
-	s=socket(AF2PF(server->s.sa_family), SOCK_STREAM, 0);
-	if (s==-1){
-		LOG(L_ERR, "ERROR: tcpconn_connect: socket: (%d) %s\n",
-				errno, strerror(errno));
-		goto error;
-	}
-	if (init_sock_opt(s)<0){
-		LOG(L_ERR, "ERROR: tcpconn_connect: init_sock_opt failed\n");
-		goto error;
-	}
-	if (tcp_blocking_connect(s, &server->s, sockaddru_len(*server))<0){
-		LOG(L_ERR, "ERROR: tcpconn_connect: tcp_blocking_connect failed\n");
-		goto error;
-	}
-	my_name_len=sizeof(my_name);
-	if (getsockname(s, &my_name.s, &my_name_len)!=0){
-		LOG(L_ERR, "ERROR: tcp_connect: getsockname failed: %s(%d)\n",
-				strerror(errno), errno);
-		si=0; /* try to go on */
-	}
-	su2ip_addr(&ip, &my_name);
-#ifdef USE_TLS
-	if (type==PROTO_TLS)
-		si=find_si(&ip, 0, PROTO_TLS);
-	else
-#endif
-		si=find_si(&ip, 0, PROTO_TCP);
-
-	if (si==0){
-		LOG(L_ERR, "ERROR: tcp_connect: could not find corresponding"
-				" listening socket, using default...\n");
-		if (server->s.sa_family==AF_INET) si=sendipv4_tcp;
-#ifdef USE_IPV6
-		else si=sendipv6_tcp;
-#endif
-	}
-	con=tcpconn_new(s, server, si, type, S_CONN_CONNECT);
-	if (con==0){
-		LOG(L_ERR, "ERROR: tcp_connect: tcpconn_new failed, closing the "
-				 " socket\n");
-		goto error;
-	}
-	return con;
-	/*FIXME: set sock idx! */
-error:
-	if (s!=-1) close(s); /* close the opened socket */
-	return 0;
-}
-
-
-
-struct tcp_connection*  tcpconn_add(struct tcp_connection *c)
-{
-	unsigned hash;
-
-	if (c){
-		TCPCONN_LOCK;
-		/* add it at the begining of the list*/
-		hash=tcp_id_hash(c->id);
-		c->id_hash=hash;
-		tcpconn_listadd(tcpconn_id_hash[hash], c, id_next, id_prev);
-		
-		hash=tcp_addr_hash(&c->rcv.src_ip, c->rcv.src_port);
-		/* set the first alias */
-		c->con_aliases[0].port=c->rcv.src_port;
-		c->con_aliases[0].hash=hash;
-		c->con_aliases[0].parent=c;
-		tcpconn_listadd(tcpconn_aliases_hash[hash], &c->con_aliases[0],
-						next, prev);
-		c->aliases++;
-		TCPCONN_UNLOCK;
-		DBG("tcpconn_add: hashes: %d, %d\n", hash, c->id_hash);
-		return c;
-	}else{
-		LOG(L_CRIT, "tcpconn_add: BUG: null connection pointer\n");
-		return 0;
-	}
-}
-
-
-/* unsafe tcpconn_rm version (nolocks) */
-void _tcpconn_rm(struct tcp_connection* c)
-{
-	int r;
-	tcpconn_listrm(tcpconn_id_hash[c->id_hash], c, id_next, id_prev);
-	/* remove all the aliases */
-	for (r=0; r<c->aliases; r++)
-		tcpconn_listrm(tcpconn_aliases_hash[c->con_aliases[r].hash], 
-						&c->con_aliases[r], next, prev);
-	lock_destroy(&c->write_lock);
-#ifdef USE_TLS
-	if (c->type==PROTO_TLS) tls_tcpconn_clean(c);
-#endif
-	shm_free(c);
-}
-
-
-
-void tcpconn_rm(struct tcp_connection* c)
-{
-	int r;
-	TCPCONN_LOCK;
-	tcpconn_listrm(tcpconn_id_hash[c->id_hash], c, id_next, id_prev);
-	/* remove all the aliases */
-	for (r=0; r<c->aliases; r++)
-		tcpconn_listrm(tcpconn_aliases_hash[c->con_aliases[r].hash], 
-						&c->con_aliases[r], next, prev);
-	TCPCONN_UNLOCK;
-	lock_destroy(&c->write_lock);
-#ifdef USE_TLS
-	if ((c->type==PROTO_TLS)&&(c->extra_data)) tls_tcpconn_clean(c);
-#endif
-	shm_free(c);
-}
-
-
-/* finds a connection, if id=0 uses the ip addr & port (host byte order)
- * WARNING: unprotected (locks) use tcpconn_get unless you really
- * know what you are doing */
-struct tcp_connection* _tcpconn_find(int id, struct ip_addr* ip, int port)
-{
-
-	struct tcp_connection *c;
-	struct tcp_conn_alias* a;
-	unsigned hash;
-	
-#ifdef EXTRA_DEBUG
-	DBG("tcpconn_find: %d  port %d\n",id, port);
-	if (ip) print_ip("tcpconn_find: ip ", ip, "\n");
-#endif
-	if (id){
-		hash=tcp_id_hash(id);
-		for (c=tcpconn_id_hash[hash]; c; c=c->id_next){
-#ifdef EXTRA_DEBUG
-			DBG("c=%p, c->id=%d, port=%d\n",c, c->id, c->rcv.src_port);
-			print_ip("ip=", &c->rcv.src_ip, "\n");
-#endif
-			if ((id==c->id)&&(c->state!=S_CONN_BAD)) return c;
-		}
-	}else if (ip){
-		hash=tcp_addr_hash(ip, port);
-		for (a=tcpconn_aliases_hash[hash]; a; a=a->next){
-#ifdef EXTRA_DEBUG
-			DBG("a=%p, c=%p, c->id=%d, alias port= %d port=%d\n", a, a->parent,
-					a->parent->id, a->port, a->parent->rcv.src_port);
-			print_ip("ip=",&a->parent->rcv.src_ip,"\n");
-#endif
-			if ( (a->parent->state!=S_CONN_BAD) && (port==a->port) &&
-					(ip_addr_cmp(ip, &a->parent->rcv.src_ip)) )
-				return a->parent;
-		}
-	}
-	return 0;
-}
-
-
-
-/* _tcpconn_find with locks and timeout */
-struct tcp_connection* tcpconn_get(int id, struct ip_addr* ip, int port,
-									int timeout)
-{
-	struct tcp_connection* c;
-	TCPCONN_LOCK;
-	c=_tcpconn_find(id, ip, port);
-	if (c){ 
-			c->refcnt++;
-			c->timeout=get_ticks()+timeout;
-	}
-	TCPCONN_UNLOCK;
-	return c;
-}
-
-
-
-/* add port as an alias for the "id" connection
- * returns 0 on success,-1 on failure */
-int tcpconn_add_alias(int id, int port, int proto)
-{
-	struct tcp_connection* c;
-	unsigned hash;
-	struct tcp_conn_alias* a;
-	
-	a=0;
-	/* fix the port */
-	port=port?port:((proto==PROTO_TLS)?SIPS_PORT:SIP_PORT);
-	TCPCONN_LOCK;
-	/* check if alias already exists */
-	c=_tcpconn_find(id, 0, 0);
-	if (c){
-		hash=tcp_addr_hash(&c->rcv.src_ip, port);
-		/* search the aliases for an already existing one */
-		for (a=tcpconn_aliases_hash[hash]; a; a=a->next){
-			if ( (a->parent->state!=S_CONN_BAD) && (port==a->port) &&
-					(ip_addr_cmp(&c->rcv.src_ip, &a->parent->rcv.src_ip)) ){
-				/* found */
-				if (a->parent!=c) goto error_sec;
-				else goto ok;
-			}
-		}
-		if (c->aliases>=TCP_CON_MAX_ALIASES) goto error_aliases;
-		c->con_aliases[c->aliases].parent=c;
-		c->con_aliases[c->aliases].port=port;
-		c->con_aliases[c->aliases].hash=hash;
-		tcpconn_listadd(tcpconn_aliases_hash[hash], 
-								&c->con_aliases[c->aliases], next, prev);
-		c->aliases++;
-	}else goto error_not_found;
-ok:
-	TCPCONN_UNLOCK;
-#ifdef EXTRA_DEBUG
-	if (a) DBG("tcpconn_add_alias: alias already present\n");
-	else   DBG("tcpconn_add_alias: alias port %d for hash %d, id %d\n",
-			port, hash, c->id);
-#endif
-	return 0;
-error_aliases:
-	TCPCONN_UNLOCK;
-	LOG(L_ERR, "ERROR: tcpconn_add_alias: too many aliases for connection %p"
-				" (%d)\n", c, c->id);
-	return -1;
-error_not_found:
-	TCPCONN_UNLOCK;
-	LOG(L_ERR, "ERROR: tcpconn_add_alias: no connection found for id %d\n",id);
-	return -1;
-error_sec:
-	TCPCONN_UNLOCK;
-	LOG(L_ERR, "ERROR: tcpconn_add_alias: possible port hijack attempt\n");
-	LOG(L_ERR, "ERROR: tcpconn_add_alias: alias already present and points"
-			" to another connection (%d : %d and %d : %d)\n",
-			a->parent->id,  port, c->id, port);
-	return -1;
-}
-
-
-
-void tcpconn_ref(struct tcp_connection* c)
-{
-	TCPCONN_LOCK;
-	c->refcnt++; /* FIXME: atomic_dec */
-	TCPCONN_UNLOCK;
-}
-
-
-
-void tcpconn_put(struct tcp_connection* c)
-{
-	TCPCONN_LOCK;
-	c->refcnt--; /* FIXME: atomic_dec */
-	TCPCONN_UNLOCK;
-}
-
-
-
-/* finds a tcpconn & sends on it */
-int tcp_send(int type, char* buf, unsigned len, union sockaddr_union* to,
-				int id)
-{
-	struct tcp_connection *c;
-	struct tcp_connection *tmp;
-	struct ip_addr ip;
-	int port;
-	int fd;
-	long response[2];
-	int n;
-	
-	port=0;
-	if (to){
-		su2ip_addr(&ip, to);
-		port=su_getport(to);
-		c=tcpconn_get(id, &ip, port, TCP_CON_SEND_TIMEOUT); 
-	}else if (id){
-		c=tcpconn_get(id, 0, 0, TCP_CON_SEND_TIMEOUT);
-	}else{
-		LOG(L_CRIT, "BUG: tcp_send called with null id & to\n");
-		return -1;
-	}
-	
-	if (id){
-		if (c==0) {
-			if (to){
-				/* try again w/o id */
-				c=tcpconn_get(0, &ip, port, TCP_CON_SEND_TIMEOUT);
-				goto no_id;
-			}else{
-				LOG(L_ERR, "ERROR: tcp_send: id %d not found, dropping\n",
-						id);
-				return -1;
-			}
-		}else goto get_fd;
-	}
-no_id:
-		if (c==0){
-			DBG("tcp_send: no open tcp connection found, opening new one\n");
-			/* create tcp connection */
-			if ((c=tcpconn_connect(to, type))==0){
-				LOG(L_ERR, "ERROR: tcp_send: connect failed\n");
-				return -1;
-			}
-			c->refcnt++; /* safe to do it w/o locking, it's not yet
-							available to the rest of the world */
-			fd=c->s;
-			
-			/* send the new tcpconn to "tcp main" */
-			response[0]=(long)c;
-			response[1]=CONN_NEW;
-			n=send_all(unix_tcp_sock, response, sizeof(response));
-			if (n<=0){
-				LOG(L_ERR, "BUG: tcp_send: failed write: %s (%d)\n",
-						strerror(errno), errno);
-				n=-1;
-				goto end;
-			}	
-			n=send_fd(unix_tcp_sock, &c, sizeof(c), c->s);
-			if (n<=0){
-				LOG(L_ERR, "BUG: tcp_send: failed send_fd: %s (%d)\n",
-						strerror(errno), errno);
-				n=-1;
-				goto end;
-			}
-			goto send_it;
-		}
-get_fd:
-			/* todo: see if this is not the same process holding
-			 *  c  and if so send directly on c->fd */
-			DBG("tcp_send: tcp connection found (%p), acquiring fd\n", c);
-			/* get the fd */
-			response[0]=(long)c;
-			response[1]=CONN_GET_FD;
-			n=send_all(unix_tcp_sock, response, sizeof(response));
-			if (n<=0){
-				LOG(L_ERR, "BUG: tcp_send: failed to get fd(write):%s (%d)\n",
-						strerror(errno), errno);
-				n=-1;
-				goto release_c;
-			}
-			DBG("tcp_send, c= %p, n=%d\n", c, n);
-			tmp=c;
-			n=receive_fd(unix_tcp_sock, &c, sizeof(c), &fd);
-			if (n<=0){
-				LOG(L_ERR, "BUG: tcp_send: failed to get fd(receive_fd):"
-							" %s (%d)\n", strerror(errno), errno);
-				n=-1;
-				goto release_c;
-			}
-			if (c!=tmp){
-				LOG(L_CRIT, "BUG: tcp_send: get_fd: got different connection:"
-						"  %p (id= %d, refcnt=%d state=%d != "
-						"  %p (id= %d, refcnt=%d state=%d (n=%d)\n",
-						  c,   c->id,   c->refcnt,   c->state,
-						  tmp, tmp->id, tmp->refcnt, tmp->state, n
-				   );
-				n=-1; /* fail */
-				goto end;
-			}
-			DBG("tcp_send: after receive_fd: c= %p n=%d fd=%d\n",c, n, fd);
-		
-	
-	
-send_it:
-	DBG("tcp_send: sending...\n");
-	lock_get(&c->write_lock);
-#ifdef USE_TLS
-	if (c->type==PROTO_TLS)
-		n=tls_blocking_write(c, fd, buf, len);
-	else
-#endif
-		/* n=tcp_blocking_write(c, fd, buf, len); */
-		n=tsend_stream(fd, buf, len, tcp_send_timeout*1000); 
-	lock_release(&c->write_lock);
-	DBG("tcp_send: after write: c= %p n=%d fd=%d\n",c, n, fd);
-	DBG("tcp_send: buf=\n%.*s\n", (int)len, buf);
-	if (n<0){
-		LOG(L_ERR, "ERROR: tcp_send: failed to send\n");
-		/* error on the connection , mark it as bad and set 0 timeout */
-		c->state=S_CONN_BAD;
-		c->timeout=0;
-		/* tell "main" it should drop this (optional it will t/o anyway?)*/
-		response[0]=(long)c;
-		response[1]=CONN_ERROR;
-		n=send_all(unix_tcp_sock, response, sizeof(response));
-		/* CONN_ERROR will auto-dec refcnt => we must not call tcpconn_put !!*/
-		if (n<=0){
-			LOG(L_ERR, "BUG: tcp_send: error return failed (write):%s (%d)\n",
-					strerror(errno), errno);
-			n=-1;
-		}
-		close(fd);
-		return n; /* error return, no tcpconn_put */
-	}
-end:
-	close(fd);
-release_c:
-	tcpconn_put(c); /* release c (lock; dec refcnt; unlock) */
-	return n;
-}
-
-
-
-/* very inefficient for now - FIXME*/
-void tcpconn_timeout(fd_set* set)
-{
-	struct tcp_connection *c, *next;
-	int ticks;
-	unsigned h;
-	int fd;
-	
-	
-	ticks=get_ticks();
-	TCPCONN_LOCK; /* fixme: we can lock only on delete IMO */
-	for(h=0; h<TCP_ID_HASH_SIZE; h++){
-		c=tcpconn_id_hash[h];
-		while(c){
-			next=c->id_next;
-			if ((c->refcnt==0) && (ticks>c->timeout)) {
-				DBG("tcpconn_timeout: timeout for hash=%d - %p (%d > %d)\n",
-						h, c, ticks, c->timeout);
-				fd=c->s;
-#ifdef USE_TLS
-				if (c->type==PROTO_TLS)
-					tls_close(c, fd);
-#endif
-				_tcpconn_rm(c);
-				if (fd>0) {
-					FD_CLR(fd, set);
-					close(fd);
-				}
-			}
-			c=next;
-		}
-	}
-	TCPCONN_UNLOCK;
-}
-
-
-
-int tcp_init(struct socket_info* sock_info)
-{
-	union sockaddr_union* addr;
-	int optval;
-#ifdef DISABLE_NAGLE
-	int flag;
-	struct protoent* pe;
-
-	if (tcp_proto_no==-1){ /* if not already set */
-		pe=getprotobyname("tcp");
-		if (pe==0){
-			LOG(L_ERR, "ERROR: tcp_init: could not get TCP protocol number\n");
-			tcp_proto_no=-1;
-		}else{
-			tcp_proto_no=pe->p_proto;
-		}
-	}
-#endif
-	
-	addr=&sock_info->su;
-	/* sock_info->proto=PROTO_TCP; */
-	if (init_su(addr, &sock_info->address, sock_info->port_no)<0){
-		LOG(L_ERR, "ERROR: tcp_init: could no init sockaddr_union\n");
-		goto error;
-	}
-	sock_info->socket=socket(AF2PF(addr->s.sa_family), SOCK_STREAM, 0);
-	if (sock_info->socket==-1){
-		LOG(L_ERR, "ERROR: tcp_init: socket: %s\n", strerror(errno));
-		goto error;
-	}
-#ifdef DISABLE_NAGLE
-	flag=1;
-	if ( (tcp_proto_no!=-1) &&
-		 (setsockopt(sock_info->socket, tcp_proto_no , TCP_NODELAY,
-					 &flag, sizeof(flag))<0) ){
-		LOG(L_ERR, "ERROR: tcp_init: could not disable Nagle: %s\n",
-				strerror(errno));
-	}
-#endif
-
-
-#if  !defined(TCP_DONT_REUSEADDR) 
-	/* Stevens, "Network Programming", Section 7.5, "Generic Socket
-     * Options": "...server started,..a child continues..on existing
-	 * connection..listening server is restarted...call to bind fails
-	 * ... ALL TCP servers should specify the SO_REUSEADDRE option 
-	 * to allow the server to be restarted in this situation
-	 *
-	 * Indeed, without this option, the server can't restart.
-	 *   -jiri
-	 */
-	optval=1;
-	if (setsockopt(sock_info->socket, SOL_SOCKET, SO_REUSEADDR,
-				(void*)&optval, sizeof(optval))==-1) {
-		LOG(L_ERR, "ERROR: tcp_init: setsockopt %s\n",
-			strerror(errno));
-		goto error;
-	}
-#endif
-	/* tos */
-	optval=IPTOS_LOWDELAY;
-	if (setsockopt(sock_info->socket, IPPROTO_IP, IP_TOS, (void*)&optval, 
-				sizeof(optval)) ==-1){
-		LOG(L_WARN, "WARNING: tcp_init: setsockopt tos: %s\n", strerror(errno));
-		/* continue since this is not critical */
-	}
-	if (bind(sock_info->socket, &addr->s, sockaddru_len(*addr))==-1){
-		LOG(L_ERR, "ERROR: tcp_init: bind(%x, %p, %d) on %s: %s\n",
-				sock_info->socket, &addr->s, 
-				(unsigned)sockaddru_len(*addr),
-				sock_info->address_str.s,
-				strerror(errno));
-		goto error;
-	}
-	if (listen(sock_info->socket, 10)==-1){
-		LOG(L_ERR, "ERROR: tcp_init: listen(%x, %p, %d) on %s: %s\n",
-				sock_info->socket, &addr->s, 
-				(unsigned)sockaddru_len(*addr),
-				sock_info->address_str.s,
-				strerror(errno));
-		goto error;
-	}
-	
-	return 0;
-error:
-	if (sock_info->socket!=-1){
-		close(sock_info->socket);
-		sock_info->socket=-1;
-	}
-	return -1;
-}
-
-
-
-static int send2child(struct tcp_connection* tcpconn)
-{
-	int i;
-	int min_busy;
-	int idx;
-	
-	min_busy=tcp_children[0].busy;
-	idx=0;
-	for (i=0; i<tcp_children_no; i++){
-		if (!tcp_children[i].busy){
-			idx=i;
-			min_busy=0;
-			break;
-		}else if (min_busy>tcp_children[i].busy){
-			min_busy=tcp_children[i].busy;
-			idx=i;
-		}
-	}
-	
-	tcp_children[idx].busy++;
-	tcp_children[idx].n_reqs++;
-	if (min_busy){
-		DBG("WARNING: send2child: no free tcp receiver, "
-				" connection passed to the least busy one (%d)\n",
-				min_busy);
-	}
-	DBG("send2child: to tcp child %d %d(%d), %p\n", idx, 
-					tcp_children[idx].proc_no,
-					tcp_children[idx].pid, tcpconn);
-	if (send_fd(tcp_children[idx].unix_sock, &tcpconn, sizeof(tcpconn),
-			tcpconn->s)<=0){
-		LOG(L_ERR, "ERROR: send2child: send_fd failed\n");
-		return -1;
-	}
-	
-	return 0;
-}
-
-
-/* handle a new connection, called internally by tcp_main_loop */
-static inline void handle_new_connect(struct socket_info* si,
-										fd_set* sel_set, int* n)
-{
-	union sockaddr_union su;
-	struct tcp_connection* tcpconn;
-	socklen_t su_len;
-	int new_sock;
-	
-	if ((FD_ISSET(si->socket, sel_set))){
-		/* got a connection on r */
-		su_len=sizeof(su);
-		new_sock=accept(si->socket, &(su.s), &su_len);
-		(*n)--;
-		if (new_sock==-1){
-			LOG(L_ERR,  "WARNING: tcp_main_loop: error while accepting"
-					" connection(%d): %s\n", errno, strerror(errno));
-			return;
-		}
-		if (init_sock_opt(new_sock)<0){
-			LOG(L_ERR, "ERROR: tcp_main_loop: init_sock_opt failed\n");
-			close(new_sock);
-			return;
-		}
-		
-		/* add socket to list */
-		tcpconn=tcpconn_new(new_sock, &su, si, si->proto, S_CONN_ACCEPT);
-		if (tcpconn){
-			tcpconn->refcnt++; /* safe, not yet available to the
-								  outside world */
-			tcpconn_add(tcpconn);
-			DBG("tcp_main_loop: new connection: %p %d\n",
-				tcpconn, tcpconn->s);
-			/* pass it to a child */
-			if(send2child(tcpconn)<0){
-				LOG(L_ERR,"ERROR: tcp_main_loop: no children "
-						"available\n");
-				TCPCONN_LOCK;
-				tcpconn->refcnt--;
-				if (tcpconn->refcnt==0){
-					close(tcpconn->s);
-					_tcpconn_rm(tcpconn);
-				}else tcpconn->timeout=0; /* force expire */
-				TCPCONN_UNLOCK;
-			}
-		}else{ /*tcpconn==0 */
-			LOG(L_ERR, "ERROR: tcp_main_loop: tcpconn_new failed, "
-					"closing socket\n");
-			close(new_sock);
-		}
-	}
-}
-
-
-/* used internally by tcp_main_loop() */
-static void tcpconn_destroy(struct tcp_connection* tcpconn)
-{
-	int fd;
-
-	TCPCONN_LOCK; /*avoid races w/ tcp_send*/
-	tcpconn->refcnt--;
-	if (tcpconn->refcnt==0){ 
-		DBG("tcp_main_loop: destroying connection\n");
-		fd=tcpconn->s;
-#ifdef USE_TLS
-		/*FIXME: lock ->writelock ? */
-		if (tcpconn->type==PROTO_TLS)
-			tls_close(tcpconn, fd);
-#endif
-		_tcpconn_rm(tcpconn);
-		close(fd);
-	}else{
-		/* force timeout */
-		tcpconn->timeout=0;
-		tcpconn->state=S_CONN_BAD;
-		DBG("tcp_main_loop: delaying ...\n");
-		
-	}
-	TCPCONN_UNLOCK;
-}
-
-
-void tcp_main_loop()
-{
-	int r;
-	int n;
-	fd_set master_set;
-	fd_set sel_set;
-	int maxfd;
-	struct tcp_connection* tcpconn;
-	unsigned h;
-	long response[2];
-	int cmd;
-	int bytes;
-	struct timeval timeout;
-	int fd;
-	struct socket_info* si;
-
-	/*init */
-	maxfd=0;
-	FD_ZERO(&master_set);
-	/* set all the listen addresses */
-	for (si=tcp_listen; si; si=si->next){
-		if ((si->proto==PROTO_TCP) &&(si->socket!=-1)){
-			FD_SET(si->socket, &master_set);
-			if (si->socket>maxfd) maxfd=si->socket;
-		}else{
-			LOG(L_CRIT, "BUG: tcp_main_loop: non tcp address in tcp_listen\n");
-		}
-	}
-#ifdef USE_TLS
-	if (!tls_disable){
-		for (si=tls_listen; si; si=si->next){
-			if ((si->proto==PROTO_TLS) && (si->socket!=-1)){
-				FD_SET(si->socket, &master_set);
-				if (si->socket>maxfd) maxfd=si->socket;
-			}else{
-				LOG(L_CRIT, "BUG: tcp_main_loop: non tls address"
-						" in tls_listen\n");
-			}
-		}
-	}
-#endif
-	/* set all the unix sockets used for child comm */
-	for (r=1; r<process_no; r++){
-		if (pt[r].unix_sock>0){ /* we can't have 0, we never close it!*/
-			FD_SET(pt[r].unix_sock, &master_set);
-			if (pt[r].unix_sock>maxfd) maxfd=pt[r].unix_sock;
-		}
-	}
-	for (r=0; r<tcp_children_no; r++){
-		if (tcp_children[r].unix_sock>0){ /* we can't have 0, 
-											 we never close it!*/
-			FD_SET(tcp_children[r].unix_sock, &master_set);
-			if (tcp_children[r].unix_sock>maxfd)
-				maxfd=tcp_children[r].unix_sock;
-		}
-	}
-	
-	
-	/* main loop*/
-	
-	while(1){
-		sel_set=master_set;
-		timeout.tv_sec=TCP_MAIN_SELECT_TIMEOUT;
-		timeout.tv_usec=0;
-		n=select(maxfd+1, &sel_set, 0 ,0 , &timeout);
-		if (n<0){
-			if (errno==EINTR) continue; /* just a signal */
-			/* errors */
-			LOG(L_ERR, "ERROR: tcp_main_loop: select:(%d) %s\n", errno,
-					strerror(errno));
-			n=0;
-		}
-		
-		for (si=tcp_listen; si && n; si=si->next)
-			handle_new_connect(si, &sel_set, &n);
-#ifdef USE_TLS
-			if (!tls_disable)
-				for (si=tls_listen; si && n; si=si->next)
-					handle_new_connect(si, &sel_set, &n);
-#endif
-		
-		/* check all the read fds (from the tcpconn_addr_hash ) */
-		for (h=0; h<TCP_ID_HASH_SIZE; h++){
-			for(tcpconn=tcpconn_id_hash[h]; tcpconn && n; 
-					tcpconn=tcpconn->id_next){
-				/* FIXME: is refcnt==0 really necessary? */
-				if ((tcpconn->refcnt==0)&&(FD_ISSET(tcpconn->s, &sel_set))){
-					/* new data available */
-					n--;
-					/* pass it to child, so remove it from select list */
-					DBG("tcp_main_loop: data available on %p [h:%d] %d\n",
-							tcpconn, h, tcpconn->s);
-					FD_CLR(tcpconn->s, &master_set);
-					tcpconn_ref(tcpconn); /* refcnt ++ */
-					if (send2child(tcpconn)<0){
-						LOG(L_ERR,"ERROR: tcp_main_loop: no "
-									"children available\n");
-						TCPCONN_LOCK;
-						tcpconn->refcnt--;
-						if (tcpconn->refcnt==0){
-							fd=tcpconn->s;
-							_tcpconn_rm(tcpconn);
-							close(fd);
-						}else tcpconn->timeout=0; /* force expire*/
-						TCPCONN_UNLOCK;
-					}
-				}
-			}
-		}
-		/* check unix sockets & listen | destroy connections */
-		/* tcp_children readers first */
-		for (r=0; r<tcp_children_no && n; r++){
-			if ( (tcp_children[r].unix_sock>0) && 
-					FD_ISSET(tcp_children[r].unix_sock, &sel_set)){
-				/* (we can't have a fd==0, 0 is never closed )*/
-				n--;
-				/* read until sizeof(response)
-				 * (this is a SOCK_STREAM so read is not atomic */
-				bytes=recv_all(tcp_children[r].unix_sock, response,
-								sizeof(response));
-				if (bytes==0){
-					/* EOF -> bad, child has died */
-					DBG("DBG: tcp_main_loop: dead tcp child %d"
-							" (shutting down?)\n", r);
-					/* don't listen on it any more */
-					FD_CLR(tcp_children[r].unix_sock, &master_set);
-					/*exit(-1);*/
-					continue; /* skip this and try the next one */
-				}else if (bytes<0){
-					LOG(L_CRIT, "ERROR: tcp_main_loop: read from tcp child %d "
-							"%s\n", r, strerror(errno));
-					/* try to ignore ? */
-					continue; /* skip this and try the next one */
-				}
-					
-				DBG("tcp_main_loop: reader response= %lx, %ld from %d \n",
-						response[0], response[1], r);
-				cmd=response[1];
-				tcpconn=(struct tcp_connection*)response[0];
-				switch(cmd){
-					case CONN_RELEASE:
-						tcp_children[r].busy--;
-						if (tcpconn){
-								if (tcpconn->state==S_CONN_BAD){ 
-									tcpconn_destroy(tcpconn);
-									break;
-								}
-								FD_SET(tcpconn->s, &master_set);
-								if (maxfd<tcpconn->s) maxfd=tcpconn->s;
-								/* update the timeout*/
-								tcpconn->timeout=get_ticks()+TCP_CON_TIMEOUT;
-								tcpconn_put(tcpconn);
-								DBG("tcp_main_loop: CONN_RELEASE  %p"
-										" refcnt= %d\n", 
-										tcpconn, tcpconn->refcnt);
-						}
-						break;
-					case CONN_ERROR:
-					case CONN_DESTROY:
-					case CONN_EOF:
-						/* WARNING: this will auto-dec. refcnt! */
-						tcp_children[r].busy--;
-						if (tcpconn){
-							if (tcpconn->s!=-1)
-								FD_CLR(tcpconn->s, &master_set);
-							tcpconn_destroy(tcpconn);
-						}
-						break;
-					default:
-							LOG(L_CRIT, "BUG: tcp_main_loop:  unknown cmd %d"
-										" from tcp reader %d\n",
-									cmd, r);
-				}
-			}
-		}
-		/* check "send" unix sockets & listen | destroy connections */
-		/* start from 1, the "main" process does not transmit anything*/
-		for (r=1; r<process_no && n; r++){
-			if ( (pt[r].unix_sock>0) && FD_ISSET(pt[r].unix_sock, &sel_set)){
-				/* (we can't have a fd==0, 0 is never closed )*/
-				n--;
-				/* read until sizeof(response)
-				 * (this is a SOCK_STREAM so read is not atomic */
-				bytes=recv_all(pt[r].unix_sock, response, sizeof(response));
-				if (bytes==0){
-					/* EOF -> bad, child has died */
-					DBG("DBG: tcp_main_loop: dead child %d"
-							" (shutting down?)\n", r);
-					/* don't listen on it any more */
-					FD_CLR(pt[r].unix_sock, &master_set);
-					/*exit(-1);*/
-					continue; /* skip this and try the next one */
-				}else if (bytes<0){
-					LOG(L_CRIT, "ERROR: tcp_main_loop: read from child:  %s\n",
-							strerror(errno));
-					/* try to ignore ? */
-					continue; /* skip this and try the next one */
-				}
-					
-				DBG("tcp_main_loop: read response= %lx, %ld from %d (%d)\n",
-						response[0], response[1], r, pt[r].pid);
-				cmd=response[1];
-				tcpconn=(struct tcp_connection*)response[0];
-				switch(cmd){
-					case CONN_ERROR:
-						if (tcpconn){
-							if (tcpconn->s!=-1)
-								FD_CLR(tcpconn->s, &master_set);
-							tcpconn_destroy(tcpconn);
-						}
-						break;
-					case CONN_GET_FD:
-						/* send the requested FD  */
-						/* WARNING: take care of setting refcnt properly to
-						 * avoid race condition */
-						if (tcpconn){
-							if (send_fd(pt[r].unix_sock, &tcpconn,
-										sizeof(tcpconn), tcpconn->s)<=0){
-								LOG(L_ERR, "ERROR: tcp_main_loop:"
-										"send_fd failed\n");
-							}
-						}else{
-							LOG(L_CRIT, "BUG: tcp_main_loop: null pointer\n");
-						}
-						break;
-					case CONN_NEW:
-						/* update the fd in the requested tcpconn*/
-						/* WARNING: take care of setting refcnt properly to
-						 * avoid race condition */
-						if (tcpconn){
-							bytes=receive_fd(pt[r].unix_sock, &tcpconn,
-									sizeof(tcpconn), &tcpconn->s);
-								if (bytes<(int)sizeof(tcpconn)){
-									if (bytes<0){
-										LOG(L_CRIT, "BUG: tcp_main_loop:"
-												" CONN_NEW: receive_fd "
-												"failed\n");
-									}else{
-										LOG(L_CRIT, "BUG: tcp_main_loop:"
-												" CONN_NEW: to few bytes "
-												"received (%d)\n", bytes );
-									}
-									break; /* try to ignore */
-								}
-							/* add tcpconn to the list*/
-							tcpconn_add(tcpconn);
-							FD_SET(tcpconn->s, &master_set);
-							if (maxfd<tcpconn->s) maxfd=tcpconn->s;
-							/* update the timeout*/
-							tcpconn->timeout=get_ticks()+TCP_CON_TIMEOUT;
-						}else{
-							LOG(L_CRIT, "BUG: tcp_main_loop: null pointer\n");
-						}
-						break;
-					default:
-							LOG(L_CRIT, "BUG: tcp_main_loop: unknown cmd %d\n",
-									cmd);
-				}
-			}
-		} /* for */
-		
-		/* remove old connections */
-		tcpconn_timeout(&master_set);
-	
-	}
-}
-
-
-
-int init_tcp()
-{
-	/* init lock */
-	tcpconn_lock=lock_alloc();
-	if (tcpconn_lock==0){
-		LOG(L_CRIT, "ERROR: init_tcp: could not alloc lock\n");
-		goto error;
-	}
-	if (lock_init(tcpconn_lock)==0){
-		LOG(L_CRIT, "ERROR: init_tcp: could not init lock\n");
-		lock_dealloc((void*)tcpconn_lock);
-		tcpconn_lock=0;
-		goto error;
-	}
-	/* init globals */
-	connection_id=(int*)shm_malloc(sizeof(int));
-	if (connection_id==0){
-		LOG(L_CRIT, "ERROR: init_tcp: could not alloc globals\n");
-		lock_destroy(tcpconn_lock);
-		lock_dealloc((void*)tcpconn_lock);
-		tcpconn_lock=0;
-		goto error;
-	}
-	*connection_id=1;
-	/* alloc hashtables*/
-	tcpconn_aliases_hash=(struct tcp_conn_alias**)
-			shm_malloc(TCP_ALIAS_HASH_SIZE* sizeof(struct tcp_conn_alias*));
-	if (tcpconn_aliases_hash==0){
-		LOG(L_CRIT, "ERROR: init_tcp: could not alloc address hashtable\n");
-		shm_free(connection_id);
-		connection_id=0;
-		lock_destroy(tcpconn_lock);
-		lock_dealloc((void*)tcpconn_lock);
-		tcpconn_lock=0;
-		goto error;
-	}
-	
-	tcpconn_id_hash=(struct tcp_connection**)shm_malloc(TCP_ID_HASH_SIZE*
-								sizeof(struct tcp_connection*));
-	if (tcpconn_id_hash==0){
-		LOG(L_CRIT, "ERROR: init_tcp: could not alloc id hashtable\n");
-		shm_free(connection_id);
-		connection_id=0;
-		shm_free(tcpconn_aliases_hash);
-		tcpconn_aliases_hash=0;
-		lock_destroy(tcpconn_lock);
-		lock_dealloc((void*)tcpconn_lock);
-		tcpconn_lock=0;
-		goto error;
-	}
-	/* init hashtables*/
-	memset((void*)tcpconn_aliases_hash, 0, 
-			TCP_ALIAS_HASH_SIZE * sizeof(struct tcp_conn_alias*));
-	memset((void*)tcpconn_id_hash, 0, 
-			TCP_ID_HASH_SIZE * sizeof(struct tcp_connection*));
-	return 0;
-error:
-		return -1;
-}
-
-
-
-/* cleanup before exit */
-void destroy_tcp()
-{
-	if (tcpconn_lock){
-		lock_destroy(tcpconn_lock);
-		lock_dealloc((void*)tcpconn_lock);
-		tcpconn_lock=0;
-	}
-	if(tcpconn_aliases_hash){
-		shm_free(tcpconn_aliases_hash);
-		tcpconn_aliases_hash=0;
-	}
-	if(tcpconn_id_hash){
-		shm_free(tcpconn_id_hash);
-		tcpconn_id_hash=0;
-	}
-	
-	if(connection_id){
-		shm_free(connection_id);
-		connection_id=0;
-	}
-}
-
-
-
-/* starts the tcp processes */
-int tcp_init_children()
-{
-	int r;
-	int sockfd[2];
-	int reader_fd[2]; /* for comm. with the tcp children read  */
-	pid_t pid;
-	
-	
-	/* create the tcp sock_info structures */
-	/* copy the sockets --moved to main_loop*/
-	
-	/* fork children & create the socket pairs*/
-	for(r=0; r<tcp_children_no; r++){
-		if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){
-			LOG(L_ERR, "ERROR: tcp_main: socketpair failed: %s\n",
-					strerror(errno));
-			goto error;
-		}
-		if (socketpair(AF_UNIX, SOCK_STREAM, 0, reader_fd)<0){
-			LOG(L_ERR, "ERROR: tcp_main: socketpair failed: %s\n",
-					strerror(errno));
-			goto error;
-		}
-		
-		process_no++;
-		pid=fork();
-		if (pid<0){
-			LOG(L_ERR, "ERROR: tcp_main: fork failed: %s\n",
-					strerror(errno));
-			goto error;
-		}else if (pid>0){
-			/* parent */
-			close(sockfd[1]);
-			close(reader_fd[1]);
-			tcp_children[r].pid=pid;
-			tcp_children[r].proc_no=process_no;
-			tcp_children[r].busy=0;
-			tcp_children[r].n_reqs=0;
-			tcp_children[r].unix_sock=reader_fd[0];
-			pt[process_no].pid=pid;
-			pt[process_no].unix_sock=sockfd[0];
-			pt[process_no].idx=r;
-			strncpy(pt[process_no].desc, "tcp receiver", MAX_PT_DESC);
-		}else{
-			/* child */
-			close(sockfd[0]);
-			unix_tcp_sock=sockfd[1];
-			bind_address=0; /* force a SEGFAULT if someone uses a non-init.
-							   bind address on tcp */
-			if (init_child(r+children_no+1) < 0) {
-				LOG(L_ERR, "init_children failed\n");
-				goto error;
-			}
-			tcp_receive_loop(reader_fd[1]);
-		}
-	}
-	return 0;
-error:
-	return -1;
-}
-
-#endif

Deleted: ser/trunk/tcp_read.c
===================================================================
--- ser/trunk/tcp_read.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tcp_read.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,694 +0,0 @@
-/*
- * $Id: tcp_read.c,v 1.27 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-/*
- * History:
- * --------
- * 2002-12-??  created by andrei.
- * 2003-02-10  zero term before calling receive_msg & undo afterward (andrei)
- * 2003-05-13  l: (short form of Content-Length) is now recognized (andrei)
- * 2003-07-01  tcp_read & friends take no a single tcp_connection 
- *              parameter & they set c->state to S_CONN_EOF on eof (andrei)
- * 2003-07-04  fixed tcp EOF handling (possible infinite loop) (andrei)
- */
-
-#ifdef USE_TCP
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-
-
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/select.h>
-#include <sys/socket.h>
-
-#include <unistd.h>
-#include <stdlib.h> /* for abort() */
-
-
-#include "dprint.h"
-#include "tcp_conn.h"
-#include "pass_fd.h"
-#include "globals.h"
-#include "receive.h"
-#include "timer.h"
-#include "ut.h"
-#ifdef USE_TLS
-#include "tls/tls_server.h"
-#endif
-
-
-
-/* reads next available bytes
- * return number of bytes read, 0 on EOF or -1 on error,
- * on EOF it also sets c->state to S_CONN_EOF
- * (to distinguish from reads that would block which could return 0)
- * sets also r->error */
-int tcp_read(struct tcp_connection *c)
-{
-	int bytes_free, bytes_read;
-	struct tcp_req *r;
-	int fd;
-
-	r=&c->req;
-	fd=c->fd;
-	bytes_free=TCP_BUF_SIZE- (int)(r->pos - r->buf);
-	
-	if (bytes_free==0){
-		LOG(L_ERR, "ERROR: tcp_read: buffer overrun, dropping\n");
-		r->error=TCP_REQ_OVERRUN;
-		return -1;
-	}
-again:
-	bytes_read=read(fd, r->pos, bytes_free);
-
-	if(bytes_read==-1){
-		if (errno == EWOULDBLOCK || errno == EAGAIN){
-			return 0; /* nothing has been read */
-		}else if (errno == EINTR) goto again;
-		else{
-			LOG(L_ERR, "ERROR: tcp_read: error reading: %s\n",strerror(errno));
-			r->error=TCP_READ_ERROR;
-			return -1;
-		}
-	}else if (bytes_read==0){
-		c->state=S_CONN_EOF;
-		DBG("tcp_read: EOF on %p, FD %d\n", c, fd);
-	}
-#ifdef EXTRA_DEBUG
-	DBG("tcp_read: read %d bytes:\n%.*s\n", bytes_read, bytes_read, r->pos);
-#endif
-	r->pos+=bytes_read;
-	return bytes_read;
-}
-
-
-
-/* reads all headers (until double crlf), & parses the content-length header
- * (WARNING: inefficient, tries to reuse receive_msg but will go through
- * the headers twice [once here looking for Content-Length and for the end
- * of the headers and once in receive_msg]; a more speed efficient version will
- * result in either major code duplication or major changes to the receive code)
- * returns number of bytes read & sets r->state & r->body
- * when either r->body!=0 or r->state==H_BODY =>
- * all headers have been read. It should be called in a while loop.
- * returns < 0 if error or 0 if EOF */
-int tcp_read_headers(struct tcp_connection *c)
-{
-	int bytes, remaining;
-	char *p;
-	struct tcp_req* r;
-	
-	#define crlf_default_skip_case \
-					case '\n': \
-						r->state=H_LF; \
-						break; \
-					default: \
-						r->state=H_SKIP
-	
-	#define content_len_beg_case \
-					case ' ': \
-					case '\t': \
-						if (!r->has_content_len) r->state=H_STARTWS; \
-						else r->state=H_SKIP; \
-							/* not interested if we already found one */ \
-						break; \
-					case 'C': \
-					case 'c': \
-						if(!r->has_content_len) r->state=H_CONT_LEN1; \
-						else r->state=H_SKIP; \
-						break; \
-					case 'l': \
-					case 'L': \
-						/* short form for Content-Length */ \
-						if (!r->has_content_len) r->state=H_L_COLON; \
-						else r->state=H_SKIP; \
-						break
-						
-	#define change_state(upper, lower, newstate)\
-					switch(*p){ \
-						case upper: \
-						case lower: \
-							r->state=(newstate); break; \
-						crlf_default_skip_case; \
-					}
-	
-	#define change_state_case(state0, upper, lower, newstate)\
-					case state0: \
-							  change_state(upper, lower, newstate); \
-							  p++; \
-							  break
-
-
-	r=&c->req;
-	/* if we still have some unparsed part, parse it first, don't do the read*/
-	if (r->parsed<r->pos){
-		bytes=0;
-	}else{
-#ifdef USE_TLS
-		if (c->type==PROTO_TLS)
-			bytes=tls_read(c);
-		else
-#endif
-			bytes=tcp_read(c);
-		if (bytes<=0) return bytes;
-	}
-	p=r->parsed;
-	
-	while(p<r->pos && r->error==TCP_REQ_OK){
-		switch((unsigned char)r->state){
-			case H_BODY: /* read the body*/
-				remaining=r->pos-p;
-				if (remaining>r->bytes_to_go) remaining=r->bytes_to_go;
-				r->bytes_to_go-=remaining;
-				p+=remaining;
-				if (r->bytes_to_go==0){
-					r->complete=1;
-					goto skip;
-				}
-				break;
-				
-			case H_SKIP:
-				/* find lf, we are in this state if we are not interested
-				 * in anything till end of line*/
-				p=q_memchr(p, '\n', r->pos-p);
-				if (p){
-					p++;
-					r->state=H_LF;
-				}else{
-					p=r->pos;
-				}
-				break;
-				
-			case H_LF:
-				/* terminate on LF CR LF or LF LF */
-				switch (*p){
-					case '\r':
-						r->state=H_LFCR;
-						break;
-					case '\n':
-						/* found LF LF */
-						r->state=H_BODY;
-						if (r->has_content_len){
-							r->body=p+1;
-							r->bytes_to_go=r->content_len;
-							if (r->bytes_to_go==0){
-								r->complete=1;
-								p++;
-								goto skip;
-							}
-						}else{
-							DBG("tcp_read_headers: ERROR: no clen, p=%X\n",
-									*p);
-							r->error=TCP_REQ_BAD_LEN;
-						}
-						break;
-					content_len_beg_case;
-					default: 
-						r->state=H_SKIP;
-				}
-				p++;
-				break;
-			case H_LFCR:
-				if (*p=='\n'){
-					/* found LF CR LF */
-					r->state=H_BODY;
-					if (r->has_content_len){
-						r->body=p+1;
-						r->bytes_to_go=r->content_len;
-						if (r->bytes_to_go==0){
-							r->complete=1;
-							p++;
-							goto skip;
-						}
-					}else{
-						DBG("tcp_read_headers: ERROR: no clen, p=%X\n",
-									*p);
-						r->error=TCP_REQ_BAD_LEN;
-					}
-				}else r->state=H_SKIP;
-				p++;
-				break;
-				
-			case H_STARTWS:
-				switch (*p){
-					content_len_beg_case;
-					crlf_default_skip_case;
-				}
-				p++;
-				break;
-			case H_SKIP_EMPTY:
-				switch (*p){
-					case '\n':
-					case '\r':
-					case ' ':
-					case '\t':
-						/* skip empty lines */
-						break;
-					case 'C': 
-					case 'c': 
-						r->state=H_CONT_LEN1; 
-						r->start=p;
-						break;
-					case 'l':
-					case 'L':
-						/* short form for Content-Length */
-						r->state=H_L_COLON;
-						r->start=p;
-						break;
-					default:
-						r->state=H_SKIP;
-						r->start=p;
-				};
-				p++;
-				break;
-			change_state_case(H_CONT_LEN1,  'O', 'o', H_CONT_LEN2);
-			change_state_case(H_CONT_LEN2,  'N', 'n', H_CONT_LEN3);
-			change_state_case(H_CONT_LEN3,  'T', 't', H_CONT_LEN4);
-			change_state_case(H_CONT_LEN4,  'E', 'e', H_CONT_LEN5);
-			change_state_case(H_CONT_LEN5,  'N', 'n', H_CONT_LEN6);
-			change_state_case(H_CONT_LEN6,  'T', 't', H_CONT_LEN7);
-			change_state_case(H_CONT_LEN7,  '-', '_', H_CONT_LEN8);
-			change_state_case(H_CONT_LEN8,  'L', 'l', H_CONT_LEN9);
-			change_state_case(H_CONT_LEN9,  'E', 'e', H_CONT_LEN10);
-			change_state_case(H_CONT_LEN10, 'N', 'n', H_CONT_LEN11);
-			change_state_case(H_CONT_LEN11, 'G', 'g', H_CONT_LEN12);
-			change_state_case(H_CONT_LEN12, 'T', 't', H_CONT_LEN13);
-			change_state_case(H_CONT_LEN13, 'H', 'h', H_L_COLON);
-			
-			case H_L_COLON:
-				switch(*p){
-					case ' ':
-					case '\t':
-						break; /* skip space */
-					case ':':
-						r->state=H_CONT_LEN_BODY;
-						break;
-					crlf_default_skip_case;
-				};
-				p++;
-				break;
-			
-			case  H_CONT_LEN_BODY:
-				switch(*p){
-					case ' ':
-					case '\t':
-						break; /* eat space */
-					case '0':
-					case '1':
-					case '2':
-					case '3':
-					case '4':
-					case '5':
-					case '6':
-					case '7':
-					case '8':
-					case '9':
-						r->state=H_CONT_LEN_BODY_PARSE;
-						r->content_len=(*p-'0');
-						break;
-					/*FIXME: content length on different lines ! */
-					crlf_default_skip_case;
-				}
-				p++;
-				break;
-				
-			case H_CONT_LEN_BODY_PARSE:
-				switch(*p){
-					case '0':
-					case '1':
-					case '2':
-					case '3':
-					case '4':
-					case '5':
-					case '6':
-					case '7':
-					case '8':
-					case '9':
-						r->content_len=r->content_len*10+(*p-'0');
-						break;
-					case '\r':
-					case ' ':
-					case '\t': /* FIXME: check if line contains only WS */
-						r->state=H_SKIP;
-						r->has_content_len=1;
-						break;
-					case '\n':
-						/* end of line, parse successful */
-						r->state=H_LF;
-						r->has_content_len=1;
-						break;
-					default:
-						LOG(L_ERR, "ERROR: tcp_read_headers: bad "
-								"Content-Length header value, unexpected "
-								"char %c in state %d\n", *p, r->state);
-						r->state=H_SKIP; /* try to find another?*/
-				}
-				p++;
-				break;
-			
-			default:
-				LOG(L_CRIT, "BUG: tcp_read_headers: unexpected state %d\n",
-						r->state);
-				abort();
-		}
-	}
-skip:
-	r->parsed=p;
-	return bytes;
-}
-
-
-
-int tcp_read_req(struct tcp_connection* con)
-{
-	int bytes;
-	int resp;
-	long size;
-	struct tcp_req* req;
-	int s;
-	char c;
-		
-		resp=CONN_RELEASE;
-		s=con->fd;
-		req=&con->req;
-#ifdef USE_TLS
-		if (con->type==PROTO_TLS){
-			if (tls_fix_read_conn(con)!=0){
-				resp=CONN_ERROR;
-				goto end_req;
-			}
-			if(con->state!=S_CONN_OK) goto end_req; /* not enough data */
-		}
-#endif
-
-again:
-		if(req->error==TCP_REQ_OK){
-			bytes=tcp_read_headers(con);
-#ifdef EXTRA_DEBUG
-						/* if timeout state=0; goto end__req; */
-			DBG("read= %d bytes, parsed=%d, state=%d, error=%d\n",
-					bytes, (int)(req->parsed-req->start), req->state,
-					req->error );
-			DBG("tcp_read_req: last char=%X, parsed msg=\n%.*s\n",
-					*(req->parsed-1), (int)(req->parsed-req->start),
-					req->start);
-#endif
-			if (bytes==-1){
-				LOG(L_ERR, "ERROR: tcp_read_req: error reading \n");
-				resp=CONN_ERROR;
-				goto end_req;
-			}
-			/* eof check:
-			 * is EOF if eof on fd and req.  not complete yet,
-			 * if req. is complete we might have a second unparsed
-			 * request after it, so postpone release_with_eof
-			 */
-			if ((con->state==S_CONN_EOF) && (req->complete==0)) {
-				DBG( "tcp_read_req: EOF\n");
-				resp=CONN_EOF;
-				goto end_req;
-			}
-		
-		}
-		if (req->error!=TCP_REQ_OK){
-			LOG(L_ERR,"ERROR: tcp_read_req: bad request, state=%d, error=%d "
-					  "buf:\n%.*s\nparsed:\n%.*s\n", req->state, req->error,
-					  (int)(req->pos-req->buf), req->buf,
-					  (int)(req->parsed-req->start), req->start);
-			DBG("- received from: port %d\n", con->rcv.src_port);
-			print_ip("- received from: ip ",&con->rcv.src_ip, "\n");
-			resp=CONN_ERROR;
-			goto end_req;
-		}
-		if (req->complete){
-#ifdef EXTRA_DEBUG
-			DBG("tcp_read_req: end of header part\n");
-			DBG("- received from: port %d\n", con->rcv.src_port);
-			print_ip("- received from: ip ", &con->rcv.src_ip, "\n");
-			DBG("tcp_read_req: headers:\n%.*s.\n",
-					(int)(req->body-req->start), req->start);
-#endif
-			if (req->has_content_len){
-				DBG("tcp_read_req: content-length= %d\n", req->content_len);
-#ifdef EXTRA_DEBUG
-				DBG("tcp_read_req: body:\n%.*s\n", req->content_len,req->body);
-#endif
-			}else{
-				req->error=TCP_REQ_BAD_LEN;
-				LOG(L_ERR, "ERROR: tcp_read_req: content length not present or"
-						" unparsable\n");
-				resp=CONN_ERROR;
-				goto end_req;
-			}
-			/* if we are here everything is nice and ok*/
-			resp=CONN_RELEASE;
-#ifdef EXTRA_DEBUG
-			DBG("calling receive_msg(%p, %d, )\n",
-					req->start, (int)(req->parsed-req->start));
-#endif
-			/* rcv.bind_address should always be !=0 */
-			bind_address=con->rcv.bind_address;
-			/* just for debugging use sendipv4 as receiving socket  FIXME*/
-			/*
-			if (con->rcv.dst_ip.af==AF_INET6){
-				bind_address=sendipv6_tcp;
-			}else{
-				bind_address=sendipv4_tcp;
-			}
-			*/
-			con->rcv.proto_reserved1=con->id; /* copy the id */
-			c=*req->parsed; /* ugly hack: zero term the msg & save the
-							   previous char, req->parsed should be ok
-							   because we always alloc BUF_SIZE+1 */
-			*req->parsed=0;
-			if (receive_msg(req->start, req->parsed-req->start, &con->rcv)<0){
-				*req->parsed=c;
-				resp=CONN_ERROR;
-				goto end_req;
-			}
-			*req->parsed=c;
-			
-			/* prepare for next request */
-			size=req->pos-req->parsed;
-			if (size) memmove(req->buf, req->parsed, size);
-#ifdef EXTRA_DEBUG
-			DBG("tcp_read_req: preparing for new request, kept %ld bytes\n",
-					size);
-#endif
-			req->pos=req->buf+size;
-			req->parsed=req->buf;
-			req->start=req->buf;
-			req->body=0;
-			req->error=TCP_REQ_OK;
-			req->state=H_SKIP_EMPTY;
-			req->complete=req->content_len=req->has_content_len=0;
-			req->bytes_to_go=0;
-			/* if we still have some unparsed bytes, try to  parse them too*/
-			if (size) goto again;
-			else if (con->state==S_CONN_EOF){
-				DBG( "tcp_read_req: EOF after reading complete request\n");
-				resp=CONN_EOF;
-			}
-			
-		}
-		
-		
-	end_req:
-		
-		return resp;
-}
-
-
-
-void release_tcpconn(struct tcp_connection* c, long state, int unix_sock)
-{
-	long response[2];
-	
-		DBG( "releasing con %p, state %ld, fd=%d, id=%d\n",
-				c, state, c->fd, c->id);
-		DBG(" extra_data %p\n", c->extra_data);
-		/* release req & signal the parent */
-		if (c->fd!=-1) close(c->fd);
-		/* errno==EINTR, EWOULDBLOCK a.s.o todo */
-		response[0]=(long)c;
-		response[1]=state;
-		if (send_all(unix_sock, response, sizeof(response))<=0)
-			LOG(L_ERR, "ERROR: release_tcpconn: send_all failed\n");
-}
-
-
-
-void tcp_receive_loop(int unix_sock)
-{
-	struct tcp_connection* list; /* list with connections in use */
-	struct tcp_connection* con;
-	struct tcp_connection* c_next;
-	int n;
-	int nfds;
-	int s;
-	long resp;
-	fd_set master_set;
-	fd_set sel_set;
-	int maxfd;
-	struct timeval timeout;
-	int ticks;
-	
-	
-	/* init */
-	list=con=0;
-	FD_ZERO(&master_set);
-	FD_SET(unix_sock, &master_set);
-	maxfd=unix_sock;
-	
-	/* listen on the unix socket for the fd */
-	for(;;){
-			timeout.tv_sec=TCP_CHILD_SELECT_TIMEOUT;
-			timeout.tv_usec=0;
-			sel_set=master_set;
-			nfds=select(maxfd+1, &sel_set, 0 , 0 , &timeout);
-#ifdef EXTRA_DEBUG
-			for (n=0; n<maxfd; n++){
-				if (FD_ISSET(n, &sel_set)) 
-					DBG("tcp receive: FD %d is set\n", n);
-			}
-#endif
-			if (nfds<0){
-				if (errno==EINTR) continue; /* just a signal */
-				/* errors */
-				LOG(L_ERR, "ERROR: tcp_receive_loop: select:(%d) %s\n", errno,
-					strerror(errno));
-				continue;
-			}
-			if (FD_ISSET(unix_sock, &sel_set)){
-				nfds--;
-				/* a new conn from "main" */
-				n=receive_fd(unix_sock, &con, sizeof(con), &s);
-				if (n<0){
-					if (errno == EWOULDBLOCK || errno == EAGAIN ||
-							errno == EINTR){
-						goto skip;
-					}else{
-						LOG(L_CRIT,"BUG: tcp_receive_loop: read_fd: %s\n",
-							strerror(errno));
-						abort(); /* big error*/
-					}
-				}
-				DBG("received n=%d con=%p, fd=%d\n", n, con, s);
-				if (n==0){
-					LOG(L_ERR, "WARNING: tcp_receive_loop: 0 bytes read\n");
-					goto skip;
-				}
-				if (con==0){
-					LOG(L_CRIT, "BUG: tcp_receive_loop: null pointer\n");
-					goto skip;
-				}
-				con->fd=s;
-				if (s==-1) {
-					LOG(L_ERR, "ERROR: tcp_receive_loop: read_fd:"
-									"no fd read\n");
-					resp=CONN_ERROR;
-					con->state=S_CONN_BAD;
-					release_tcpconn(con, resp, unix_sock);
-					goto skip;
-				}
-				con->timeout=get_ticks()+TCP_CHILD_TIMEOUT;
-				FD_SET(s, &master_set);
-				if (maxfd<s) maxfd=s;
-				if (con==list){
-					LOG(L_CRIT, "BUG: tcp_receive_loop: duplicate"
-							" connection received: %p, id %d, fd %d, refcnt %d"
-							" state %d (n=%d)\n", con, con->id, con->fd,
-							con->refcnt, con->state, n);
-					resp=CONN_ERROR;
-					release_tcpconn(con, resp, unix_sock);
-					goto skip; /* try to recover */
-				}
-				tcpconn_listadd(list, con, c_next, c_prev);
-			}
-skip:
-			ticks=get_ticks();
-			for (con=list; con ; con=c_next){
-				c_next=con->c_next; /* safe for removing*/
-#ifdef EXTRA_DEBUG
-				DBG("tcp receive: list fd=%d, id=%d, timeout=%d, refcnt=%d\n",
-						con->fd, con->id, con->timeout, con->refcnt);
-#endif
-				if (con->state<0){
-					/* S_CONN_BAD or S_CONN_ERROR, remove it */
-					resp=CONN_ERROR;
-					FD_CLR(con->fd, &master_set);
-					tcpconn_listrm(list, con, c_next, c_prev);
-					con->state=S_CONN_BAD;
-					release_tcpconn(con, resp, unix_sock);
-					continue;
-				}
-				if (nfds && FD_ISSET(con->fd, &sel_set)){
-#ifdef EXTRA_DEBUG
-					DBG("tcp receive: match, fd:isset\n");
-#endif
-					nfds--;
-					resp=tcp_read_req(con);
-					
-					if (resp<0){
-						FD_CLR(con->fd, &master_set);
-						tcpconn_listrm(list, con, c_next, c_prev);
-						con->state=S_CONN_BAD;
-						release_tcpconn(con, resp, unix_sock);
-					}else{
-						/* update timeout */
-						con->timeout=ticks+TCP_CHILD_TIMEOUT;
-					}
-				}else{
-					/* timeout */
-					if (con->timeout<=ticks){
-						/* expired, return to "tcp main" */
-						DBG("tcp_receive_loop: %p expired (%d, %d)\n",
-								con, con->timeout, ticks);
-						resp=CONN_RELEASE;
-						FD_CLR(con->fd, &master_set);
-						tcpconn_listrm(list, con, c_next, c_prev);
-						release_tcpconn(con, resp, unix_sock);
-					}
-				}
-			}
-		
-	}
-}
-
-
-#if 0
-int main(int argv, char** argc )
-{
-	printf("starting tests\n");
-	tcp_receive_loop();
-}
-
-#endif
-
-#endif

Deleted: ser/trunk/tcp_server.h
===================================================================
--- ser/trunk/tcp_server.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tcp_server.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,48 +0,0 @@
-/*
- * $Id: tcp_server.h,v 1.5 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-#ifndef tcp_server_h
-#define tcp_server_h
-
-
-
-/* "public" functions*/
-
-struct tcp_connection* tcpconn_get(int id, struct ip_addr* ip, int port, 
-									int timeout);
-void tcpconn_put(struct tcp_connection* c);
-int tcp_send(int type, char* buf, unsigned len, union sockaddr_union* to,
-			int id);
-
-int tcpconn_add_alias(int id, int port, int proto);
-
-
-
-
-
-#endif

Deleted: ser/trunk/timer.c
===================================================================
--- ser/trunk/timer.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/timer.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,165 +0,0 @@
-/*
- * $Id: timer.c,v 1.12 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-/* History:
- * --------
- *  2003-03-19  replaced all the mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-03-29  cleaning pkg_mallocs introduced (jiri)
- */
-
-
-#include "timer.h"
-#include "dprint.h"
-#include "error.h"
-#include "config.h"
-#include "mem/mem.h"
-#ifdef SHM_MEM
-#include "mem/shm_mem.h"
-#endif
-
-#include <stdlib.h>
-
-
-struct sr_timer* timer_list=0;
-
-static int* jiffies=0;
-static int timer_id=0;
-
-
-
-/* ret 0 on success, <0 on error*/
-int init_timer()
-{
-#ifdef SHM_MEM
-	jiffies=shm_malloc(sizeof(int));
-#else
-	/* in this case get_ticks won't work! */
-	LOG(L_INFO, "WARNING: no shared memory support compiled in"
-				" get_ticks won't work\n");
-	jiffies=pkg_malloc(sizeof(int));
-#endif
-	if (jiffies==0){
-		LOG(L_CRIT, "ERROR: init_timer: could not init jiffies\n");
-		return E_OUT_OF_MEM;
-	}
-	*jiffies=0;
-	return 0;
-}
-
-
-
-void destroy_timer()
-{
-	struct sr_timer* t, *foo;
-
-	if (jiffies){
-#ifdef SHM_MEM
-		shm_free(jiffies); jiffies=0;
-#else
-		pkg_free(jiffies); jiffies=0;
-#endif
-	}
-
-	t=timer_list;
-	while(t) {
-		foo=t->next;
-		pkg_free(t);
-		t=foo;
-	}
-}
-
-
-
-/*register a periodic timer;
- * ret: <0 on error
- * Hint: if you need it in a module, register it from mod_init or it 
- * won't work otherwise*/
-int register_timer(timer_function f, void* param, unsigned int interval)
-{
-	struct sr_timer* t;
-
-	t=pkg_malloc(sizeof(struct sr_timer));
-	if (t==0){
-		LOG(L_ERR, "ERROR: register_timer: out of memory\n");
-		goto error;
-	}
-	t->id=timer_id++;
-	t->timer_f=f;
-	t->t_param=param;
-	t->interval=interval;
-	t->expires=*jiffies+interval;
-	/* insert it into the list*/
-	t->next=timer_list;
-	timer_list=t;
-	return t->id;
-
-error:
-	return E_OUT_OF_MEM;
-}
-
-
-
-void timer_ticker()
-{
-	struct sr_timer* t;
-	unsigned int prev_jiffies;
-	
-	prev_jiffies=*jiffies;
-	*jiffies+=TIMER_TICK;
-	/* test for overflow (if tick= 1s =>overflow in 136 years)*/
-	if (*jiffies<prev_jiffies){ 
-		/*force expire & update every timer, a little buggy but it 
-		 * happens once in 136 years :) */
-		for(t=timer_list;t;t=t->next){
-			t->expires=*jiffies+t->interval;
-			t->timer_f(*jiffies, t->t_param);
-		}
-		return;
-	}
-	
-	for (t=timer_list;t; t=t->next){
-		if (*jiffies>=t->expires){
-			t->expires=*jiffies+t->interval;
-			t->timer_f(*jiffies, t->t_param);
-		}
-	}
-}
-
-
-
-unsigned int get_ticks()
-{
-	if (jiffies==0){
-		LOG(L_CRIT, "BUG: get_ticks: jiffies not initialized\n");
-		return 0;
-	}
-#ifndef SHM_MEM
-	LOG(L_CRIT, "WARNING: get_ticks: no shared memory support compiled in"
-			", returning 0 (probably wrong)");
-	return 0;
-#endif
-	return *jiffies;
-}

Deleted: ser/trunk/timer.h
===================================================================
--- ser/trunk/timer.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/timer.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,64 +0,0 @@
-/*
- * $Id: timer.h,v 1.6 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * timer related functions
- *
- * 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 at 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
- */
-
-
-
-#ifndef timer_h
-#define timer_h
-
-typedef void (timer_function)(unsigned int ticks, void* param);
-
-
-struct sr_timer{
-	int id;
-	timer_function* timer_f;
-	void* t_param;
-	unsigned int interval;
-	
-	unsigned int expires;
-	
-	struct sr_timer* next;
-};
-
-
-
-extern struct sr_timer* timer_list;
-
-
-
-int init_timer();
-void destroy_timer();
-/*register a periodic timer;
- * ret: <0 on error*/
-int register_timer(timer_function f, void* param, unsigned int interval);
-unsigned int get_ticks();
-void timer_ticker();
-
-#endif

Deleted: ser/trunk/trim.h
===================================================================
--- ser/trunk/trim.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/trim.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,103 +0,0 @@
-/* 
- * $Id: trim.h,v 1.6 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-#ifndef TRIM_H
-#define TRIM_H
-
-#include "str.h"
-
-
-/*
- * This switch-case statement is used in
- * trim_leading and trim_trailing. You can
- * define characters that should be skipped 
- * here.
- */
-#define TRIM_SWITCH(c) switch(c) {     \
-                       case ' ':       \
-                       case '\t':      \
-                       case '\r':      \
-                       case '\n':      \
-                               break;  \
-                                       \
-                       default:        \
-                               return; \
-                       }
-
-
-/*
- * Remove any leading whitechars, like spaces,
- * horizontal tabs, carriage returns and line
- * feeds
- *
- * WARNING: String descriptor structure will be
- *          modified ! Make a copy otherwise you
- *          might be unable to free _s->s for
- *          example !
- *
- */
-static inline void trim_leading(str* _s)
-{
-	for(; _s->len > 0; _s->len--, _s->s++) {
-		TRIM_SWITCH(*(_s->s));
-	}
-}
-
-
-/*
- * Remove any trailing white char, like spaces,
- * horizontal tabs, carriage returns and line feeds
- *
- * WARNING: String descriptor structure will be
- *          modified ! Make a copy otherwise you
- *          might be unable to free _s->s for
- *          example !
- */
-static inline void trim_trailing(str* _s)
-{
-	for(; _s->len > 0; _s->len--) {
-		TRIM_SWITCH(_s->s[_s->len - 1]);
-	}
-}
-
-
-/*
- * Do trim_leading and trim_trailing
- *
- * WARNING: String structure will be modified !
- *          Make a copy otherwise you might be
- *          unable to free _s->s for example !
- */
-static inline void trim(str* _s)
-{
-	trim_leading(_s);
-	trim_trailing(_s);
-}
-
-
-#endif /* TRIM_H */

Deleted: ser/trunk/tsend.c
===================================================================
--- ser/trunk/tsend.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tsend.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,170 +0,0 @@
-/*
- * $Id: tsend.c,v 1.4 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-/*
- * send with timeout for stream and datagram sockets
- * 
- * History:
- * --------
- *  2004-02-26  created by andrei
- *  2003-03-03  switched to heavy macro use, added tsend_dgram_ev (andrei) 
- */
-
-#include <string.h>
-#include <errno.h>
-#include <sys/poll.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-
-#include "dprint.h"
-
-/* the functions below are very similar => some generic macros */
-#define TSEND_INIT \
-	int n; \
-	struct pollfd pf; \
-	pf.fd=fd; \
-	pf.events=POLLOUT
-
-#define TSEND_POLL(f_name) \
-poll_loop: \
-	while(1){ \
-		n=poll(&pf, 1, timeout); \
-		if (n<0){ \
-			if (errno==EINTR) continue; /* signal, ignore */ \
-			LOG(L_ERR, "ERROR: " f_name ": poll failed: %s [%d]\n", \
-					strerror(errno), errno); \
-			goto error; \
-		}else if (n==0){ \
-			/* timeout */ \
-			LOG(L_ERR, "ERROR: " f_name ": send timeout (%d)\n", timeout); \
-			goto error; \
-		} \
-		if (pf.revents&POLLOUT){ \
-			/* we can write again */ \
-			goto again; \
-		}else if (pf.revents&(POLLERR|POLLHUP|POLLNVAL)){ \
-			LOG(L_ERR, "ERROR: " f_name ": bad poll flags %x\n", \
-					pf.revents); \
-			goto error; \
-		} \
-		/* if POLLIN or POLLPRI or other non-harmful events happened,    \
-		 * continue ( although poll should never signal them since we're  \
-		 * not interested in them => we should never reach this point) */ \
-	} 
-
-
-#define TSEND_ERR_CHECK(f_name)\
-	if (n<0){ \
-		if (errno==EINTR) goto again; \
-		else if (errno!=EAGAIN && errno!=EWOULDBLOCK){ \
-			LOG(L_ERR, "ERROR: " f_name ": failed to send: (%d) %s\n", \
-					errno, strerror(errno)); \
-			goto error; \
-		}else goto poll_loop; \
-	}
-	
-
-
-/* sends on fd (which must be O_NONBLOCK); if it cannot send any data
- * in timeout milliseconds it will return ERROR
- * returns: -1 on error, or number of bytes written
- *  (if less than len => couldn't send all)
- *  bugs: signals will reset the timer
- */
-int tsend_stream(int fd, char* buf, unsigned int len, int timeout)
-{
-	int written;
-	TSEND_INIT;
-	
-	written=0;
-again:
-	n=send(fd, buf, len,
-#ifdef HAVE_MSG_NOSIGNAL
-			MSG_NOSIGNAL
-#else
-			0
-#endif
-		);
-	TSEND_ERR_CHECK("tsend_stream");
-	written+=n; 
-	if (n<len){ 
-		/* partial write */ 
-		buf+=n; 
-		len-=n; 
-	}else{ 
-		/* successful full write */ 
-		return written;
-	}
-	TSEND_POLL("tsend_stream");
-error:
-	return -1;
-}
-
-
-
-/* sends on dgram fd (which must be O_NONBLOCK); if it cannot send any data
- * in timeout milliseconds it will return ERROR
- * returns: -1 on error, or number of bytes written
- *  (if less than len => couldn't send all)
- *  bugs: signals will reset the timer
- */
-int tsend_dgram(int fd, char* buf, unsigned int len, 
-				const struct sockaddr* to, socklen_t tolen, int timeout)
-{
-	TSEND_INIT;
-again:
-	n=sendto(fd, buf, len, 0, to, tolen);
-	TSEND_ERR_CHECK("tsend_dgram");
-	/* we don't care about partial writes: they shouldn't happen on 
-	 * a datagram socket */
-	return n;
-	TSEND_POLL("tsend_datagram");
-error:
-	return -1;
-}
-
-	
-/* sends on connected datagram fd (which must be O_NONBLOCK); 
- * if it cannot send any data in timeout milliseconds it will return ERROR
- * returns: -1 on error, or number of bytes written
- *  (if less than len => couldn't send all)
- *  bugs: signals will reset the timer
- */
-
-int tsend_dgram_ev(int fd, const struct iovec* v, int count, int timeout)
-{
-	TSEND_INIT;
-again:
-	n=writev(fd, v, count);
-	TSEND_ERR_CHECK("tsend_datagram_ev");
-	return n;
-	TSEND_POLL("tsend_datagram_ev");
-error:
-	return -1;
-}
-

Deleted: ser/trunk/tsend.h
===================================================================
--- ser/trunk/tsend.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/tsend.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,46 +0,0 @@
-/*
- * $Id: tsend.h,v 1.3 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-/*
- *  History:
- * --------
- *  2004-02-26  created by andrei
- */
-
-#ifndef __tsend_h
-#define __tsend_h
-
-
-int tsend_stream(int fd, char* buf, unsigned int len, int timeout);
-int tsend_dgram(int fd, char* buf, unsigned int len, 
-				const struct sockaddr* to, socklen_t tolen, int timeout);
-int tsend_dgram_ev(int fd, const struct iovec* v, int count, int timeout);
-
-
-
-#endif
-
-

Deleted: ser/trunk/types.h
===================================================================
--- ser/trunk/types.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/types.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,35 +0,0 @@
-/*
- * $Id: types.h,v 1.3 2004/08/24 08:45:10 janakj Exp $
- *
- *
- * 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 at 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
- */
-
-
-#ifndef _TYPES_H_
-#define _TYPES_H_
-
-typedef unsigned int process_bm_t;
-
-#endif

Deleted: ser/trunk/udp_server.c
===================================================================
--- ser/trunk/udp_server.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/udp_server.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,524 +0,0 @@
-/*
- * $Id: udp_server.c,v 1.70.2.1 2005/07/26 14:45:46 andrei Exp $
- *
- * 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 at 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
- *
- * History
- * --------
- *  2003-01-28  packet zero-termination moved to receive_msg (jiri)
- *  2003-02-10  undoed the above changes (andrei)
- *  2003-03-19  replaced all the mallocs/frees w/ pkg_malloc/pkg_free (andrei)
- *  2003-04-14  set sockopts to TOS low delay (andrei)
- *  2004-05-03  applied multicast support patch from janakj
- *              added set multicast ttl support (andrei)
- *  2004-07-05  udp_rcv_loop: drop packets with 0 src port + error msg.
- *              cleanups (andrei)
- *  2005-07-26  multicast fixes backported: multicast ttl & loop are set
- *              for all the sockets; ipv4 ttl & loop expect a char* (andrei)
- */
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <errno.h>
-#include <arpa/inet.h>
-#ifdef __linux__
-	#include <linux/types.h>
-	#include <linux/errqueue.h>
-#endif
-
-
-#include "udp_server.h"
-#include "globals.h"
-#include "config.h"
-#include "dprint.h"
-#include "receive.h"
-#include "mem/mem.h"
-#include "ip_addr.h"
-
-
-#ifdef DBG_MSG_QA
-/* message quality assurance -- frequently, bugs in ser have
-   been indicated by zero characters or long whitespaces
-   in generated messages; this debugging option aborts if
-   any such message is sighted
-*/
-static int dbg_msg_qa(char *buf, int len)
-{
-#define _DBG_WS_LEN 3
-#define _DBG_WS "   "
-
-	char *scan;
-	int my_len;
-	int space_cnt;
-	enum { QA_ANY, QA_SPACE, QA_EOL1 } state;
-
-
-	/* is there a zero character in there ? */	
-	if (memchr(buf, 0, len)) {
-		LOG(L_CRIT, "BUG: message with 0 in it\n");
-		return 0;
-	}
-
-	my_len=len;
-	scan=buf;
-	state=QA_ANY;
-	space_cnt=0;
-
-	while(my_len) {
-		switch(*scan) {
-			case ' ':	if (state==QA_SPACE) {
-							space_cnt++;
-							if (space_cnt==4) {
-								LOG(L_CRIT, "BUG(probably): DBG_MSG_QA: "
-									"too many spaces\n");
-								return 0;
-							}
-						} else space_cnt=0;
-						state=QA_SPACE; 
-						break;
-
-			case '\r':	/* ignore */
-						space_cnt=0;
-						break;
-
-			case '\n': /* don't proceed to body on EoH */
-						if (state==QA_EOL1) goto qa_passed;
-						space_cnt=0;
-						state=QA_EOL1;
-						break;
-
-			default:	space_cnt=0;
-						state=QA_ANY;
-						break;
-		}
-		scan++;
-		my_len--;
-	}
-
-
-qa_passed:
-	return 1;
-}
-
-#endif
-
-
-int probe_max_receive_buffer( int udp_sock )
-{
-	int optval;
-	int ioptval;
-	unsigned int ioptvallen;
-	int foptval;
-	unsigned int foptvallen;
-	int voptval;
-	unsigned int voptvallen;
-	int phase=0;
-
-	/* jku: try to increase buffer size as much as we can */
-	ioptvallen=sizeof(ioptval);
-	if (getsockopt( udp_sock, SOL_SOCKET, SO_RCVBUF, (void*) &ioptval,
-		    &ioptvallen) == -1 )
-	{
-		LOG(L_ERR, "ERROR: udp_init: getsockopt: %s\n", strerror(errno));
-		return -1;
-	}
-	if ( ioptval==0 ) 
-	{
-		LOG(L_DBG, "DEBUG: udp_init: SO_RCVBUF initially set to 0; resetting to %d\n",
-			BUFFER_INCREMENT );
-		ioptval=BUFFER_INCREMENT;
-	} else LOG(L_INFO, "INFO: udp_init: SO_RCVBUF is initially %d\n", ioptval );
-	for (optval=ioptval; ;  ) {
-		/* increase size; double in initial phase, add linearly later */
-		if (phase==0) optval <<= 1; else optval+=BUFFER_INCREMENT;
-		if (optval > maxbuffer){
-			if (phase==1) break; 
-			else { phase=1; optval >>=1; continue; }
-		}
-		LOG(L_DBG, "DEBUG: udp_init: trying SO_RCVBUF: %d\n", optval );
-		if (setsockopt( udp_sock, SOL_SOCKET, SO_RCVBUF,
-			(void*)&optval, sizeof(optval)) ==-1){
-			/* Solaris returns -1 if asked size too big; Linux ignores */
-			LOG(L_DBG, "DEBUG: udp_init: SOL_SOCKET failed"
-					" for %d, phase %d: %s\n", optval, phase, strerror(errno));
-			/* if setting buffer size failed and still in the aggressive
-			   phase, try less aggressively; otherwise give up 
-			*/
-			if (phase==0) { phase=1; optval >>=1 ; continue; } 
-			else break;
-		} 
-		/* verify if change has taken effect */
-		/* Linux note -- otherwise I would never know that; funny thing: Linux
-		   doubles size for which we asked in setsockopt
-		*/
-		voptvallen=sizeof(voptval);
-		if (getsockopt( udp_sock, SOL_SOCKET, SO_RCVBUF, (void*) &voptval,
-		    &voptvallen) == -1 )
-		{
-			LOG(L_ERR, "ERROR: udp_init: getsockopt: %s\n", strerror(errno));
-			return -1;
-		} else {
-			LOG(L_DBG, "DEBUG: setting SO_RCVBUF; set=%d,verify=%d\n", 
-				optval, voptval);
-			if (voptval<optval) {
-				LOG(L_DBG, "DEBUG: setting SO_RCVBUF has no effect\n");
-				/* if setting buffer size failed and still in the aggressive
-				phase, try less aggressively; otherwise give up 
-				*/
-				if (phase==0) { phase=1; optval >>=1 ; continue; } 
-				else break;
-			} 
-		}
-	
-	} /* for ... */
-	foptvallen=sizeof(foptval);
-	if (getsockopt( udp_sock, SOL_SOCKET, SO_RCVBUF, (void*) &foptval,
-		    &foptvallen) == -1 )
-	{
-		LOG(L_ERR, "ERROR: udp_init: getsockopt: %s\n", strerror(errno));
-		return -1;
-	}
-	LOG(L_INFO, "INFO: udp_init: SO_RCVBUF is finally %d\n", foptval );
-
-	return 0;
-
-	/* EoJKU */
-}
-
-
-#ifdef USE_MCAST
-
-/*
- * Setup multicast receiver
- */
-static int setup_mcast_rcvr(int sock, union sockaddr_union* addr)
-{
-	struct ip_mreq mreq;
-#ifdef USE_IPV6
-	struct ipv6_mreq mreq6;
-#endif /* USE_IPV6 */
-	
-	if (addr->s.sa_family==AF_INET){
-		memcpy(&mreq.imr_multiaddr, &addr->sin.sin_addr, 
-		       sizeof(struct in_addr));
-		mreq.imr_interface.s_addr = htonl(INADDR_ANY);
-		
-		if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP,&mreq,
-			       sizeof(mreq))==-1){
-			LOG(L_ERR, "ERROR: setup_mcast_rcvr: setsockopt: %s\n",
-			    strerror(errno));
-			return -1;
-		}
-#ifdef USE_IPV6
-	} else if (addr->s.sa_family==AF_INET6){
-		memcpy(&mreq6.ipv6mr_multiaddr, &addr->sin6.sin6_addr, 
-		       sizeof(struct in6_addr));
-		mreq6.ipv6mr_interface = 0;
-#ifdef __OS_linux
-		if (setsockopt(sock, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq6,
-#else
-		if (setsockopt(sock, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq6,
-#endif
-			       sizeof(mreq6))==-1){
-			LOG(L_ERR, "ERROR: setup_mcast_rcvr: setsockopt:%s\n",
-			    strerror(errno));
-			return -1;
-		}
-		
-#endif /* USE_IPV6 */
-	} else {
-		LOG(L_ERR, "ERROR: setup_mcast_rcvr: Unsupported protocol family\n");
-		return -1;
-	}
-	return 0;
-}
-
-#endif /* USE_MCAST */
-
-
-int udp_init(struct socket_info* sock_info)
-{
-	union sockaddr_union* addr;
-	int optval;
-#ifdef USE_MCAST
-	unsigned char m_ttl, m_loop;
-#endif
-	addr=&sock_info->su;
-/*
-	addr=(union sockaddr_union*)pkg_malloc(sizeof(union sockaddr_union));
-	if (addr==0){
-		LOG(L_ERR, "ERROR: udp_init: out of memory\n");
-		goto error;
-	}
-*/
-	sock_info->proto=PROTO_UDP;
-	if (init_su(addr, &sock_info->address, sock_info->port_no)<0){
-		LOG(L_ERR, "ERROR: udp_init: could not init sockaddr_union\n");
-		goto error;
-	}
-	
-	sock_info->socket = socket(AF2PF(addr->s.sa_family), SOCK_DGRAM, 0);
-	if (sock_info->socket==-1){
-		LOG(L_ERR, "ERROR: udp_init: socket: %s\n", strerror(errno));
-		goto error;
-	}
-	/* set sock opts? */
-	optval=1;
-	if (setsockopt(sock_info->socket, SOL_SOCKET, SO_REUSEADDR ,
-					(void*)&optval, sizeof(optval)) ==-1){
-		LOG(L_ERR, "ERROR: udp_init: setsockopt: %s\n", strerror(errno));
-		goto error;
-	}
-	/* tos */
-	optval=IPTOS_LOWDELAY;
-	if (setsockopt(sock_info->socket, IPPROTO_IP, IP_TOS, (void*)&optval, 
-			sizeof(optval)) ==-1){
-		LOG(L_WARN, "WARNING: udp_init: setsockopt tos: %s\n", strerror(errno));
-		/* continue since this is not critical */
-	}
-#if defined (__linux__) && defined(UDP_ERRORS)
-	optval=1;
-	/* enable error receiving on unconnected sockets */
-	if(setsockopt(sock_info->socket, SOL_IP, IP_RECVERR,
-					(void*)&optval, sizeof(optval)) ==-1){
-		LOG(L_ERR, "ERROR: udp_init: setsockopt: %s\n", strerror(errno));
-		goto error;
-	}
-#endif
-
-#ifdef USE_MCAST
-	if ((sock_info->flags & SI_IS_MCAST) 
-	    && (setup_mcast_rcvr(sock_info->socket, addr)<0)){
-			goto error;
-	}
-	/* set the multicast options */
-	if (addr->s.sa_family==AF_INET){
-		m_loop=mcast_loopback;
-		if (setsockopt(sock_info->socket, IPPROTO_IP, IP_MULTICAST_LOOP, 
-						&m_loop, sizeof(m_loop))==-1){
-			LOG(L_WARN, "WARNING: udp_init: setsockopt(IP_MULTICAST_LOOP):"
-						" %s\n", strerror(errno));
-			/* it's only a warning because we might get this error if the
-			  network interface doesn't support multicasting -- andrei */
-		}
-		if (mcast_ttl>=0){
-			m_ttl=mcast_ttl;
-			if (setsockopt(sock_info->socket, IPPROTO_IP, IP_MULTICAST_TTL,
-						&m_ttl, sizeof(m_ttl))==-1){
-				LOG(L_WARN, "WARNING: udp_init: setsockopt (IP_MULTICAST_TTL):"
-						" %s\n", strerror(errno));
-			}
-		}
-#ifdef USE_IPV6
-	} else if (addr->s.sa_family==AF_INET6){
-		if (setsockopt(sock_info->socket, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, 
-						&mcast_loopback, sizeof(mcast_loopback))==-1){
-			LOG(L_WARN, "WARNING: udp_init: setsockopt (IPV6_MULTICAST_LOOP):"
-					" %s\n", strerror(errno));
-		}
-		if (mcast_ttl>=0){
-			if (setsockopt(sock_info->socket, IPPROTO_IP, IPV6_MULTICAST_HOPS,
-							&mcast_ttl, sizeof(mcast_ttl))==-1){
-				LOG(L_WARN, "WARNING: udp_init: setssckopt "
-						"(IPV6_MULTICAST_HOPS): %s\n", strerror(errno));
-			}
-		}
-#endif /* USE_IPV6*/
-	} else {
-		LOG(L_ERR, "ERROR: udp_init: Unsupported protocol family %d\n",
-					addr->s.sa_family);
-		goto error;
-	}
-#endif /* USE_MCAST */
-
-	if ( probe_max_receive_buffer(sock_info->socket)==-1) goto error;
-	
-	if (bind(sock_info->socket,  &addr->s, sockaddru_len(*addr))==-1){
-		LOG(L_ERR, "ERROR: udp_init: bind(%x, %p, %d) on %s: %s\n",
-				sock_info->socket, &addr->s, 
-				(unsigned)sockaddru_len(*addr),
-				sock_info->address_str.s,
-				strerror(errno));
-	#ifdef USE_IPV6
-		if (addr->s.sa_family==AF_INET6)
-			LOG(L_ERR, "ERROR: udp_init: might be caused by using a link "
-					" local address, try site local or global\n");
-	#endif
-		goto error;
-	}
-
-/*	pkg_free(addr);*/
-	return 0;
-
-error:
-/*	if (addr) pkg_free(addr);*/
-	return -1;
-}
-
-
-
-int udp_rcv_loop()
-{
-	unsigned len;
-#ifdef DYN_BUF
-	char* buf;
-#else
-	static char buf [BUF_SIZE+1];
-#endif
-	char *tmp;
-	union sockaddr_union* from;
-	unsigned int fromlen;
-	struct receive_info ri;
-
-
-	from=(union sockaddr_union*) pkg_malloc(sizeof(union sockaddr_union));
-	if (from==0){
-		LOG(L_ERR, "ERROR: udp_rcv_loop: out of memory\n");
-		goto error;
-	}
-	memset(from, 0 , sizeof(union sockaddr_union));
-	ri.bind_address=bind_address; /* this will not change, we do it only once*/
-	ri.dst_port=bind_address->port_no;
-	ri.dst_ip=bind_address->address;
-	ri.proto=PROTO_UDP;
-	ri.proto_reserved1=ri.proto_reserved2=0;
-	for(;;){
-#ifdef DYN_BUF
-		buf=pkg_malloc(BUF_SIZE+1);
-		if (buf==0){
-			LOG(L_ERR, "ERROR: udp_rcv_loop: could not allocate receive"
-					 " buffer\n");
-			goto error;
-		}
-#endif
-		fromlen=sockaddru_len(bind_address->su);
-		len=recvfrom(bind_address->socket, buf, BUF_SIZE, 0, &from->s,
-											&fromlen);
-		if (len==-1){
-			if (errno==EAGAIN){
-				DBG("udp_rcv_loop: packet with bad checksum received\n");
-				continue;
-			}
-			LOG(L_ERR, "ERROR: udp_rcv_loop:recvfrom:[%d] %s\n",
-						errno, strerror(errno));
-			if ((errno==EINTR)||(errno==EWOULDBLOCK)|| (errno==ECONNREFUSED))
-				continue; /* goto skip;*/
-			else goto error;
-		}
-		/* we must 0-term the messages, receive_msg expects it */
-		buf[len]=0; /* no need to save the previous char */
-
-		ri.src_su=*from;
-		su2ip_addr(&ri.src_ip, from);
-		ri.src_port=su_getport(from);
-
-#ifndef NO_ZERO_CHECKS
-		if (len<MIN_UDP_PACKET) {
-			tmp=ip_addr2a(&ri.src_ip);
-			DBG("udp_rcv_loop: probing packet received from %s %d\n",
-					tmp, htons(ri.src_port));
-			continue;
-		}
-		if (buf[len-1]==0) {
-			tmp=ip_addr2a(&ri.src_ip);
-			LOG(L_WARN, "WARNING: udp_rcv_loop: "
-					"upstream bug - 0-terminated packet from %s %d\n",
-					tmp, htons(ri.src_port));
-			len--;
-		}
-#endif
-#ifdef DBG_MSG_QA
-		if (!dbg_msg_qa(buf, len)) {
-			LOG(L_WARN, "WARNING: an incoming message didn't pass test,"
-						"  drop it: %.*s\n", len, buf );
-			continue;
-		}
-#endif
-		if (ri.src_port==0){
-			tmp=ip_addr2a(&ri.src_ip);
-			LOG(L_INFO, "udp_rcv_loop: dropping 0 port packet from %s\n", tmp);
-			continue;
-		}
-		
-		
-		/* receive_msg must free buf too!*/
-		receive_msg(buf, len, &ri);
-		
-	/* skip: do other stuff */
-		
-	}
-	/*
-	if (from) pkg_free(from);
-	return 0;
-	*/
-	
-error:
-	if (from) pkg_free(from);
-	return -1;
-}
-
-
-
-
-/* which socket to use? main socket or new one? */
-int udp_send(struct socket_info *source, char *buf, unsigned len,
-										union sockaddr_union*  to)
-{
-
-	int n;
-	int tolen;
-
-#ifdef DBG_MSG_QA
-	/* aborts on error, does nothing otherwise */
-	if (!dbg_msg_qa( buf, len )) {
-		LOG(L_ERR, "ERROR: udp_send: dbg_msg_qa failed\n");
-		abort();
-	}
-#endif
-
-	tolen=sockaddru_len(*to);
-again:
-	n=sendto(source->socket, buf, len, 0, &to->s, tolen);
-#ifdef XL_DEBUG
-	LOG(L_INFO, "INFO: send status: %d\n", n);
-#endif
-	if (n==-1){
-		LOG(L_ERR, "ERROR: udp_send: sendto(sock,%p,%d,0,%p,%d): %s(%d)\n",
-				buf,len,to,tolen,
-				strerror(errno),errno);
-		if (errno==EINTR) goto again;
-		if (errno==EINVAL) {
-			LOG(L_CRIT,"CRITICAL: invalid sendtoparameters\n"
-			"one possible reason is the server is bound to localhost and\n"
-			"attempts to send to the net\n");
-		}
-	}
-	return n;
-}

Deleted: ser/trunk/udp_server.h
===================================================================
--- ser/trunk/udp_server.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/udp_server.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,46 +0,0 @@
-/*
- * $Id: udp_server.h,v 1.10 2004/08/24 08:45:10 janakj Exp $
- *
- * 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 at 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
- */
-
-
-#ifndef udp_server_h
-#define udp_server_h
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include "ip_addr.h"
-
-#define MAX_RECV_BUFFER_SIZE	256*1024
-#define BUFFER_INCREMENT	2048
-
-
-int udp_init(struct socket_info* si);
-int udp_send(struct socket_info* source,char *buf, unsigned len,
-				union sockaddr_union*  to);
-int udp_rcv_loop();
-
-
-#endif

Deleted: ser/trunk/unixsock_server.c
===================================================================
--- ser/trunk/unixsock_server.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/unixsock_server.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,1029 +0,0 @@
-/*
- * $Id: unixsock_server.c,v 1.17 2004/12/03 19:09:31 andrei Exp $
- *
- * UNIX Domain Socket Server
- *
- * Copyright (C) 2001-2004 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 at 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
- */
-/* History:
- *              created by janakj
- *  2004-03-03  added tcp init code (andrei)
- *  2004-04-29  added chmod(sock_perm) & chown(sock_user,sock_group)  (andrei)
- */
-
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <time.h>
-#include <fcntl.h>
-#include "config.h"
-#include "ut.h"
-#include "globals.h"
-#include "trim.h"
-#include "pt.h"
-#include "sr_module.h"
-#include "mem/mem.h"
-#include "fifo_server.h" /* CMD_SEPARATOR */
-#include "unixsock_server.h"
-#include "tsend.h"
-
-
-/* AF_LOCAL is not defined on solaris */
-#if !defined(AF_LOCAL)
-#define AF_LOCAL AF_UNIX
-#endif
-#if !defined(PF_LOCAL)
-#define PF_LOCAL PF_UNIX
-#endif
-
-
-/* solaris doesn't have SUN_LEN */
-#ifndef SUN_LEN
-#define SUN_LEN(sa)	 ( strlen((sa)->sun_path) + \
-					 (size_t)(((struct sockaddr_un*)0)->sun_path) )
-#endif
-
-
-#define UNIXSOCK_BUF_SIZE BUF_SIZE
-
-char* unixsock_name = 0;
-int unixsock_children = 1;
-int unixsock_tx_timeout = 2000; /* Timeout for sending replies in milliseconds */
-
-
-static int rx_sock, tx_sock;
-static struct unixsock_cmd* cmd_list = 0;
-static char reply_buf[UNIXSOCK_BUF_SIZE];
-static str reply_pos;
-static struct sockaddr_un reply_addr;
-static unsigned int reply_addr_len;
-
-static time_t up_since;
-static char up_since_ctime[MAX_CTIME_LEN];
-
-
-#define PRINT_CMD "print"     /* Diagnostic command */
-#define VERSION_CMD "version" /* Print the version of the server */
-#define UPTIME_CMD "uptime"   /* Print server's uptime */
-#define WHICH_CMD "which"     /* Print available FIFO commands */
-#define PS_CMD "ps"           /* Print server's process table */
-#define ARG_CMD "arg"         /* Print server's command line arguments */
-#define PWD_CMD "pwd"         /* Get the current working directory */
-#define KILL_CMD "kill"       /* Kill the server */
-
-
-/* 
- * Diagnostic and hello-world command 
- */
-static int print_cmd(str* msg)
-{
-	str line;
-	int ret;
-
-	ret = 0;
-
-	if (unixsock_read_line(&line, msg) < 0) {
-		unixsock_reply_asciiz("500 Error while reading text\n");
-		ret = -1;
-		goto end;
-	}
-
-	if (unixsock_reply_printf("200 OK\n%.*s\n", line.len, ZSW(line.s)) < 0) {
-		unixsock_reply_reset();
-		unixsock_reply_asciiz("500 Error while sending reply\n");
-		ret = -1;
-	}
-
- end:
-	if (unixsock_reply_send() < 0) ret = -1;
-	return ret;
-}
-
-
-/*
- * Print the version of the server
- */
-static int version_cmd(str* msg)
-{
-	int ret;
-
-	ret = 0;
-	if (unixsock_reply_asciiz("200 OK\n" SERVER_HDR CRLF) < 0) ret = -1;
-	if (unixsock_reply_send() < 0) ret = -1;
-	return ret;
-}
-
-
-static int uptime_cmd(str* msg)
-{
-	time_t now;
-	int ret;
-
-	time(&now);
-	ret = 0;
-	
-	if (unixsock_reply_printf("200 OK\nNow: %sUp Since: %sUp time: %.0f [sec]\n",
-				  ctime(&now), up_since_ctime, difftime(now, up_since)) < 0) {
-		unixsock_reply_reset();
-		unixsock_reply_asciiz("500 Error while printing reply\n");
-		ret = -1;
-	}
-	
-	if (unixsock_reply_send() < 0) {
-		ret = -1;
-	}
-	
-	return ret;
-}
-
-
-static int which_cmd(str* msg)
-{
-	struct unixsock_cmd* c;
-	int ret;
-
-	ret = 0;
-	unixsock_reply_asciiz("200 OK\n");
-
-	for(c = cmd_list; c; c = c->next) {
-		if (unixsock_reply_printf("%s\n", c->name) < 0) {
-			unixsock_reply_reset();
-			unixsock_reply_asciiz("500 Error while creating reply\n");
-			ret = -1;
-			break;
-		}
-	}
-	
-	if (unixsock_reply_send() < 0) {
-		ret = -1;
-	}
-	return ret;
-}
-
-
-static int ps_cmd(str* msg)
-{
-	int p, ret;
-
-	ret = 0;
-	unixsock_reply_asciiz("200 OK\n");
-	for (p = 0; p < process_count(); p++) {
-		if (unixsock_reply_printf("%d\t%d\t%s\n", p, pt[p].pid, pt[p].desc) < 0) {
-			unixsock_reply_reset();
-			unixsock_reply_asciiz("500 Error while printing reply\n");
-			ret = -1;
-			break;
-		}
-	}
-	
-	if (unixsock_reply_send() < 0) {
-		ret = -1;
-	}
-	return ret;
-}
-
-
-static int pwd_cmd(str* msg)
-{
-	char *cwd_buf;
-	int max_len, ret;
-
-	max_len = pathmax();
-	cwd_buf = pkg_malloc(max_len);
-	ret = 0;
-	if (!cwd_buf) {
-		LOG(L_ERR, "pwd_cmd: No memory left\n");
-		unixsock_reply_asciiz("500 No Memory Left\n");
-		ret = -1;
-	}
-
-	if (getcwd(cwd_buf, max_len)) {
-		if (unixsock_reply_printf("200 OK\n%s\n", cwd_buf) < 0) {
-			unixsock_reply_reset();
-			unixsock_reply_asciiz("500 Error while sending reply\n");
-			ret = -1;
-		}
-	} else {
-		unixsock_reply_asciiz("500 getcwd Failed\n");
-		ret = -1;
-	}
-
-	pkg_free(cwd_buf);
-	if (unixsock_reply_send() < 0) {
-		ret = -1;
-	}
-	return ret;
-}
-
-
-static int arg_cmd(str* msg)
-{
-	int p, ret;
-
-	ret = 0;
-	unixsock_reply_asciiz("200 OK\n");
-	for (p = 0; p < my_argc; p++) {
-		if (unixsock_reply_printf("%s\n", my_argv[p]) < 0) {
-			unixsock_reply_reset();
-			unixsock_reply_asciiz("500 Could not create reply\n");
-			ret = -1;
-			break;
-		}
-	}
-			
-	if (unixsock_reply_send() < 0) {
-		ret = -1;
-	}
-	return ret;
-}
-
-
-static int kill_cmd(str* msg)
-{
-	unixsock_reply_asciiz("200 Killing now\n");
-	unixsock_reply_send();
-	kill(0, SIGTERM);
-	return 0;
-}
-
-
-static int register_core_commands(void)
-{
-	if (unixsock_register_cmd(PRINT_CMD, print_cmd) < 0) {
-		return -1;
-	}
-
-	if (unixsock_register_cmd(VERSION_CMD, version_cmd) < 0) {
-		return -1;
-	}
-
-	if (unixsock_register_cmd(UPTIME_CMD, uptime_cmd) < 0) {
-		return -1;
-	}
-
-	if (unixsock_register_cmd(WHICH_CMD, which_cmd) < 0) {
-		return -1;
-	}
-
-	if (unixsock_register_cmd(PS_CMD, ps_cmd) < 0) {
-		return -1;
-	}
-
-	if (unixsock_register_cmd(PWD_CMD, pwd_cmd) < 0) {
-		return -1;
-	}
-
-	if (unixsock_register_cmd(ARG_CMD, arg_cmd) < 0) {
-		return -1;
-	}
-
-	if (unixsock_register_cmd(KILL_CMD, kill_cmd) < 0) {
-		return -1;
-	}
-	return 0;
-}
-
-
-/*
- * Create and bind local socket
- */
-int init_unixsock_socket(void)
-{
-	struct sockaddr_un addr;
-	int len, flags;
-
-	if (unixsock_name == 0) {
-		DBG("init_unixsock_socket: No unix domain socket"
-		    " will be opened\n");
-		return 1;
-	}
-
-	len = strlen(unixsock_name);
-	if (len == 0) {
-		DBG("init_unixsock_socket: Unix domain socket server disabled\n");
-		return 1;
-	} else if (len > 107) {
-		LOG(L_ERR, "ERROR: init_unixsock_socket: Socket name too long\n");
-		return -1;
-	}
-
-	DBG("init_unixsock_socket: Initializing Unix domain socket server @ %s\n", 
-	    unixsock_name);
-
-	if (unlink(unixsock_name) == -1) {
-		if (errno != ENOENT) {
-			LOG(L_ERR, "ERROR: init_unixsock_socket: Error while unlinking "
-			    "old socket (%s): %s\n", unixsock_name, strerror(errno));
-			return -1;
-		}
-	}
-
-	rx_sock = socket(PF_LOCAL, SOCK_DGRAM, 0);
-	if (rx_sock == -1) {
-		LOG(L_ERR, "ERROR: init_unixsock_socket: Cannot create RX "
-				"socket: %s\n", strerror(errno));
-		return -1;
-	}
-
-	memset(&addr, 0, sizeof(addr));
-	addr.sun_family = PF_LOCAL;
-	memcpy(addr.sun_path, unixsock_name, len);
-
-	if (bind(rx_sock, (struct sockaddr*)&addr, SUN_LEN(&addr)) == -1) {
-		LOG(L_ERR, "ERROR: init_unixsock_socket: bind: %s\n", strerror(errno));
-		goto err_rx;
-	}
-	/* try to change the permissions */
-	if (sock_mode){ /* sock_mode==0 doesn't make sense, nobody can read/write*/
-		if (chmod(unixsock_name, sock_mode)<0){
-			LOG(L_ERR, "ERROR: init_unixsock_socket: failed to change the"
-					" permissions for %s to %04o: %s[%d]\n",
-					unixsock_name, sock_mode, strerror(errno), errno);
-			goto err_rx;
-		}
-	}
-	/* try to change the ownership */
-	if ((sock_uid!=-1) || (sock_gid!=-1)){
-		if (chown(unixsock_name, sock_uid, sock_gid)<0){
-			LOG(L_ERR, "ERROR: init_unixsock_socket: failed to change the"
-					" owner/group for %s  to %d.%d; %s[%d]\n",
-					unixsock_name, sock_uid, sock_gid, strerror(errno), errno);
-			goto err_rx;
-		}
-	}
-
-	tx_sock = socket(PF_LOCAL, SOCK_DGRAM, 0);
-	if (tx_sock == -1) {
-		LOG(L_ERR, "ERROR: init_unixsock_socket: Cannot create TX socket:"
-				" %s\n", strerror(errno));
-		goto err_rx;
-	}
-
-	     /* Turn non-blocking mode on */
-	flags = fcntl(tx_sock, F_GETFL);
-	if (flags == -1){
-		LOG(L_ERR, "ERROR: init_unixsock_socket: fcntl failed: %s\n",
-		    strerror(errno));
-		goto err_both;
-	}
-		
-	if (fcntl(tx_sock, F_SETFL, flags | O_NONBLOCK) == -1) {
-		LOG(L_ERR, "ERROR: init_unixsock_socket: fcntl: "
-				"set non-blocking failed: %s\n", strerror(errno));
-		goto err_both;
-	}
-	
-	return 1;
- err_both:
-	close(tx_sock);
- err_rx:
-	close(rx_sock);
-	return -1;
-}
-
-
-static struct unixsock_cmd* lookup_cmd(str* cmd)
-{
-	struct unixsock_cmd* c;
-
-	for(c = cmd_list; c; c = c->next) {
-		if ((cmd->len == c->name.len) &&
-		    (strncasecmp(c->name.s, cmd->s, cmd->len) == 0)) {
-			return c;
-		}
-	}
-	return 0;
-}
-
-
-static int parse_cmd(str* res, str* buffer)
-{
-	char* cmd_end;
-
-	if (!res || !buffer) {
-		LOG(L_ERR, "parse_cmd: Invalid parameter value\n");
-		return -1;
-	}
-
-	if (buffer->len < 3) {
-		LOG(L_ERR, "parse_cmd: Message too short\n");
-		return -1;
-	}
-
-	if (buffer->s[0] != CMD_SEPARATOR) {
-		LOG(L_ERR, "parse_cmd: Command must start with %c\n", 
-		    CMD_SEPARATOR);
-		return -1;
-	}
-	
-	cmd_end = q_memchr(buffer->s + 1, CMD_SEPARATOR, buffer->len - 1);
-	if (!cmd_end) {
-		LOG(L_ERR, "parse_cmd: Closing '%c' missing\n", CMD_SEPARATOR);
-		return -1;
-	}
-
-	res->s = buffer->s + 1;
-	res->len = cmd_end - res->s;
-	return 0;
-} 
-
-
-static void skip_line(str* buffer)
-{
-	if (!buffer) return;
-
-	     /* Find \n */
-	while (buffer->len && (buffer->s[0] != '\n')) {
-		buffer->s++;
-		buffer->len--;
-	}
-
-	if (buffer->len) {
-		buffer->s++;
-		buffer->len--;
-	}
-
-	     /* Skip CR following LF */
-	while (buffer->len && (buffer->s[0] == '\r')) {
-		buffer->s++;
-		buffer->len--;
-	}
-}
-
-
-static void unix_server_loop(void)
-{
-	int ret;
-	str cmd, buffer;
-	static char buf[UNIXSOCK_BUF_SIZE];
-	struct unixsock_cmd* c;
-
-	
-	while(1) {
-		reply_addr_len = sizeof(reply_addr);
-		ret = recvfrom(rx_sock, buf, UNIXSOCK_BUF_SIZE, 0, 
-			       (struct sockaddr*)&reply_addr, &reply_addr_len);
-		if (ret == -1) {
-			LOG(L_ERR, "unix_server_loop: recvfrom: (%d) %s\n", 
-			    errno, strerror(errno));
-			if ((errno == EINTR) || 
-			    (errno == EAGAIN) || 
-			    (errno == EWOULDBLOCK) || 
-			    (errno == ECONNREFUSED)) {
-				DBG("unix_server_loop: Got %d (%s), going on\n",
-				    errno, strerror(errno));
-				continue;
-			}
-			LOG(L_CRIT, "BUG: unix_server_loop: unexpected recvfrom error\n");
-			continue;
-		}
-
-		buffer.s = buf;
-		buffer.len = ret;
-		unixsock_reply_reset();
-
-		if (parse_cmd(&cmd, &buffer) < 0) {
-			unixsock_reply_asciiz("400 First line malformed\n");
-			unixsock_reply_send();
-			continue;
-		}
-
-		buffer.s = cmd.s + cmd.len + 1;
-		buffer.len -= cmd.len + 1 + 1;
-		skip_line(&buffer); /* Skip the reply filename */
-
-		c = lookup_cmd(&cmd);
-		if (c == 0) {
-			LOG(L_ERR, "unix_server_loop: Could not find "
-			    "command '%.*s'\n", cmd.len, ZSW(cmd.s));
-			unixsock_reply_printf("500 Command %.*s not found\n", cmd.len, ZSW(cmd.s));
-			unixsock_reply_send();
-			continue;
-		}
-
-		ret = c->f(&buffer);
-		if (ret < 0) {
-			LOG(L_ERR, "unix_server_loop: Command '%.*s' failed with "
-			    "return value %d\n", cmd.len, ZSW(cmd.s), ret);
-			     /* Note that we do not send reply here, the 
-			      * function is supposed to do so, it knows the 
-			      * reason of the failure better than us
-			      */
-		}
-	}
-}
-
-
-static int get_uptime(void)
-{
-	char* t;
-
-	time(&up_since);
-	t = ctime(&up_since);
-	if (strlen(t) + 1 >= MAX_CTIME_LEN) {
-		LOG(L_ERR, "get_uptime: Too long date %d\n", (int)strlen(t));
-		return -1;
-	}
-	memcpy(up_since_ctime, t, strlen(t) + 1);
-	return 0;
-}
-
-
-/*
- * Spawn listeners
- */
-int init_unixsock_children(void)
-{
-	int i;
-	pid_t pid;
-#ifdef USE_TCP
-	int sockfd[2];
-#endif
-
-	if (!unixsock_name || *unixsock_name == '\0') {
-		return 1;
-	}
-
-	if (get_uptime() < 0) {
-		return -1;
-	}
-	
-        if (register_core_commands() < 0) {
-		close(rx_sock);
-		close(tx_sock);
-		return -1;
-	}
-
-	for(i = 0; i < unixsock_children; i++) {
-		process_no++;
-#ifdef USE_TCP
-		if(!tcp_disable){
- 			if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){
-				LOG(L_ERR, "ERROR: init_unixsock_server: socketpair"
-						" failed: %s\n", strerror(errno));
-				return -1;
-			}
-		}
-#endif
-		pid = fork();
-		if (pid < 0) {
-			LOG(L_ERR, "init_unixsock_server: Unable to fork: %s\n",
-			    strerror(errno));
-			close(rx_sock);
-			close(tx_sock);
-			return -1;
-		} else if (pid == 0) { /* child */
-#ifdef USE_TCP
-			if (!tcp_disable){
-				close(sockfd[0]);
-				unix_tcp_sock=sockfd[1];
-			}
-#endif
-			if (init_child(PROC_UNIXSOCK) < 0) {
-				LOG(L_ERR, "init_unixsock_server: Error in "
-				    "init_child\n");
-				close(rx_sock);
-				close(tx_sock);
-				return -1;
-			}
-
-			unix_server_loop(); /* Never returns */
-		}
-
-		     /* Parent */
-		pt[process_no].pid = pid;
-		strncpy(pt[process_no].desc, "unix domain socket server", 
-			MAX_PT_DESC);
-#ifdef USE_TCP
-		if (!tcp_disable){
-			close(sockfd[1]);
-			pt[process_no].unix_sock=sockfd[0];
-			pt[process_no].idx=-1; /* this is not a "tcp"
-									  process*/
-		}
-#endif
-
-	}
-
-	DBG("init_unixsock_server: Unix domain socket server successfully initialized @ %s\n",
-	    unixsock_name);
-	return 1;
-}
-
-
-/*
- * Clean up
- */
-void close_unixsock_server(void)
-{
-	struct unixsock_cmd* c;
-	close(rx_sock);
-	close(tx_sock);
-
-	while(cmd_list) {
-		c = cmd_list;
-		cmd_list = cmd_list->next;
-		pkg_free(c);
-	}
-}
-
-
-/*
- * Register a new command
- */
-int unixsock_register_cmd(char* command, unixsock_f* f)
-{
-	str cmd;
-	struct unixsock_cmd* new_cmd;
-
-	cmd.s = command;
-	cmd.len = strlen(command);
-
-	if (lookup_cmd(&cmd)) {
-		LOG(L_ERR, "unixsock_register_cmd: Function already exists\n");
-		return -1;
-	}
-
-	new_cmd = pkg_malloc(sizeof(struct unixsock_cmd));
-	if (new_cmd == 0) {
-		LOG(L_ERR, "register_unixsock_cmd: Out of mem\n");
-		return -1;
-	}
-
-	new_cmd->name = cmd;
-	new_cmd->f = f;
-
-	new_cmd->next = cmd_list;
-	cmd_list = new_cmd;
-	
-	DBG("unixsock_register_cmd: New command (%.*s) registered\n", 
-	    cmd.len, ZSW(cmd.s));
-	return 1;
-}
-
-
-int unixsock_add_to_reply(const char* buf, size_t len)
-{
-	if (reply_pos.len < len) {
-		LOG(L_ERR, "unixsock_add_to_reply: Buffer too small\n");
-		return -1;
-	}
-
-	memcpy(reply_pos.s, buf, len);
-	reply_pos.s += len;
-	reply_pos.len -= len;
-	return 0;
-}
-
-
-/*
- * Send a reply
- */
-ssize_t unixsock_reply_send(void)
-{
-	return tsend_dgram(tx_sock, 
-			   reply_buf, reply_pos.s - reply_buf,
-			   (struct sockaddr*)&reply_addr, reply_addr_len, 
-			   unixsock_tx_timeout);
-}
-
-
-/*
- * Send a reply
- */
-ssize_t unixsock_reply_sendto(struct sockaddr_un* to)
-{
-	if (!to) {
-		LOG(L_ERR, "unixsock_reply_sendto: Invalid parameter value\n");
-		return -1;
-	}
-
-	return tsend_dgram(tx_sock, 
-			   reply_buf, reply_pos.s - reply_buf, 
-			   (struct sockaddr*)to, SUN_LEN(to), 
-			   unixsock_tx_timeout);
-}
-
-
-/*
- * Read a line, the result will be stored in line
- * parameter, the data is not copied, it's just
- * a pointer to an existing buffer
- */
-int unixsock_read_line(str* line, str* source)
-{
-	if (!line || !source) {
-		LOG(L_ERR, "unixsock_read_line: Invalid parameter value\n");
-		return -1;
-	}
-
-	*line = *source;
-	skip_line(source);
-	line->len = source->s - line->s;
-	trim_trailing(line);
-	if (line->len) {
-		return 0;
-	} else {
-		return 1;
-	}
-}
-
-
-/*
- * Read body until the closing .CRLF, no CRLF recovery
- * is done so no additional buffer is necessary, body will
- * point to an existing buffer
- */
-int unixsock_read_body(str* body, str* source)
-{
-	int i, state, last_dot;
-
-	enum states {
-		ST_BEGIN,
-		ST_CRLF,
-		ST_DATA,
-		ST_NEWLINE
-	};
-
-	if (!body || !source) {
-		LOG(L_ERR, "unixsock_read_body: Invalid parameter value\n");
-		return -1;
-	}
-
-	if (source->len < 2) {
-		LOG(L_ERR, "unixsock_read_body: Not enough input data "
-		    "(malformed message ?)\n");
-		return -1;
-	}
-
-	state = ST_BEGIN;
-	body->s = source->s;
-	last_dot = 0;
-	for(i = 0; i < source->len; i++) {
-		switch(state) {
-		case ST_BEGIN:
-			if (source->s[i] == '.') {
-				last_dot = i;
-				state = ST_CRLF;
-			} else if (source->s[i] == '\n') {
-				state = ST_NEWLINE;
-			} else {
-				state = ST_DATA;
-			}
-			break;
-			
-		case ST_CRLF:
-			if (source->s[i] == '\n') {
-				body->len = last_dot;
-				source->s += i + 1;
-				source->len -= i + 1;
-				return 0;
-			} else if (source->s[i] != '\r') {
-				state = ST_DATA;
-			}
-			break;
-
-		case ST_DATA:
-			if (source->s[i] == '\n') {
-				state = ST_NEWLINE;
-			}
-			break;
-
-		case ST_NEWLINE:
-			if (source->s[i] == '.') {
-				last_dot = i;
-				state = ST_CRLF;
-			}
-			break;
-		}
-	}
-
-	LOG(L_ERR, "unixsock_read_body: Could not find the end of the body\n");
-	return -1;
-}
-
-
-/*
- * Read a set of lines, the functions performs CRLF recovery,
- * therefore lineset must point to an additional buffer
- * to which the data will be copied. Initial lineset->len contains
- * the size of the buffer
- */
-int unixsock_read_lineset(str* lineset, str* source)
-{
-	int i, state, len;
-
-	enum states {
-		ST_BEGIN,
-		ST_CRLF,
-		ST_DATA,
-		ST_NEWLINE
-	};
-
-	if (!lineset || !source) {
-		LOG(L_ERR, "unixsock_read_lineset: Invalid parameter value\n");
-		return -1;
-	}
-
-	if (!lineset->s || !lineset->len) {
-		LOG(L_ERR, "unixsock_read_lineset: Buffer too small\n");
-		return -1;
-	}
-
-	if (source->len < 2) {
-		LOG(L_ERR, "unixsock_read_lineset: Not enough input "
-		    "data (malformed message ?)\n");
-		return -1;
-	}                 
-
-	state = ST_BEGIN;
-	len = 0;
-	for(i = 0; i < source->len; i++) {
-		if (source->s[i] == '\r') {
-			     /* Filter out CR */
-			continue;
-		}
-
-		switch(state) {
-		case ST_BEGIN:
-			if (source->s[i] == '.') {
-				state = ST_CRLF;
-			} else if (source->s[i] == '\n') {
-				if (len + 2 > lineset->len) goto buf_err;
-				lineset->s[len++] = '\r';
-				lineset->s[len++] = '\n';
-				state = ST_NEWLINE;
-			} else {
-				if (len + 1 > lineset->len) goto buf_err;
-				lineset->s[len++] = source->s[i];
-			}
-			break;
-			
-		case ST_CRLF:
-			if (source->s[i] == '\n') {
-				lineset->len = len;
-				source->s += i + 1;
-				source->len -= i + 1;
-				return 0;
-			} else {
-				if (len + 2 > lineset->len) goto buf_err;
-				lineset->s[len++] = '.';
-				lineset->s[len++] = source->s[i];
-				state = ST_DATA;
-			}
-			break;
-
-		case ST_DATA:
-			if (source->s[i] == '\n') {
-				if (len + 2 > lineset->len) goto buf_err;
-				lineset->s[len++] = '\r';
-				lineset->s[len++] = '\n';
-				state = ST_NEWLINE;
-			} else {
-				if (len + 1 > lineset->len) goto buf_err;
-				lineset->s[len++] = source->s[i];
-			}
-			break;
-
-		case ST_NEWLINE:
-			if (source->s[i] == '.') {
-				state = ST_CRLF;
-			} else {
-				if (len + 1 > lineset->len) goto buf_err;
-				lineset->s[len++] = source->s[i];
-				state = ST_DATA;
-			}
-			break;
-		}
-	}
-
-	LOG(L_ERR, "unixsock_read_body: Could not find the end of the body\n");
-	return -1;
-
- buf_err:
-	LOG(L_ERR, "unixsock_read_lineset: Buffer too small\n");
-	return -1;
-}
-
-
-/*
- * Reset the reply buffer -- start to write
- * at the beginning
- */
-void unixsock_reply_reset(void)
-{
-	reply_pos.s = reply_buf;
-	reply_pos.len = UNIXSOCK_BUF_SIZE;
-}
-
-
-/*
- * Add ASCIIZ to the reply buffer
- */
-int unixsock_reply_asciiz(char* str)
-{
-	int len;
-	
-	if (!str) {
-		LOG(L_ERR, "unixsock_reply_asciiz: Invalid parameter value\n");
-		return -1;
-	}
-
-	len = strlen(str);
-
-	if (reply_pos.len < len) {
-		LOG(L_ERR, "unixsock_reply_asciiz: Buffer too small\n");
-		return -1;
-	}
-
-	memcpy(reply_pos.s, str, len);
-	reply_pos.s += len;
-	reply_pos.len -= len;
-	return 0;
-}
-
-
-/*
- * Add a string represented by str structure
- * to the reply buffer
- */
-int unixsock_reply_str(str* s)
-{
-	if (!s) {
-		LOG(L_ERR, "unixsock_reply_str: Invalid parameter value\n");
-		return -1;
-	}
-
-	if (reply_pos.len < s->len) {
-		LOG(L_ERR, "unixsock_reply_str: Buffer too small\n");
-		return -1;
-	}
-	
-	memcpy(reply_pos.s, s->s, s->len);
-	reply_pos.s += s->len;
-	reply_pos.len -= s->len;
-	return 0;
-}
-
-
-/*
- * Printf-like reply function
- */
-int unixsock_reply_printf(char* fmt, ...)
-{
-	va_list ap;
-	int ret;
-
-	if (!fmt) {
-		LOG(L_ERR, "unixsock_reply_printf: Invalid parameter value\n");
-		return -1;
-	}
-
-	va_start(ap, fmt);
-	ret = vsnprintf(reply_pos.s, reply_pos.len, fmt, ap);
-	if ((ret < 0) || (ret >= reply_pos.len)) {
-		LOG(L_ERR, "unixsock_reply_printf: Buffer too small\n");
-		va_end(ap);
-		return -1;
-	}
-
-	va_end(ap);
-	reply_pos.s += ret;
-	reply_pos.len -= ret;
-	return 0;
-}
-
-
-/*
- * Return the address of the sender
- */
-struct sockaddr_un* unixsock_sender_addr(void)
-{
-	return &reply_addr;
-}

Deleted: ser/trunk/unixsock_server.h
===================================================================
--- ser/trunk/unixsock_server.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/unixsock_server.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,143 +0,0 @@
-/*
- * $Id: unixsock_server.h,v 1.8 2004/09/12 17:26:59 andrei Exp $
- *
- * UNIX Domain Socket Server
- *
- * Copyright (C) 2001-2004 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 at 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
- */
-
-#ifndef _UNIXSOCK_SERVER_H
-#define _UNIXSOCK_SERVER_H
-
-
-#include <sys/types.h>
-#include <sys/un.h>
-#include <unistd.h>
-#include "str.h"
-
-
-typedef int (unixsock_f)(str* msg);
-
-
-struct unixsock_cmd {
-	str name;                   /* The name of the function */
-	unixsock_f* f;              /* Function to be called */
-	struct unixsock_cmd* next;  /* Next element in the linked list */
-};
-
-
-/*
- * Initialize Unix domain socket server
- */
-int init_unixsock_socket(void);
-
-
-/*
- * Initialize Unix domain socket server
- */
-int init_unixsock_children(void);
-
-
-/*
- * Clean up
- */
-void close_unixsock_server(void);
-
-
-/*
- * Register a new command
- */
-int unixsock_register_cmd(char* name, unixsock_f* f);
-
-
-/*
- * Reset the reply buffer -- start to write
- * at the beginning
- */
-void unixsock_reply_reset(void);
-
-
-/*
- * Add ASCIIZ to the reply buffer
- */
-int unixsock_reply_asciiz(char* str);
-
-
-/*
- * Add a string represented by str structure
- * to the reply buffer
- */
-int unixsock_reply_str(str* s);
-
-
-/*
- * Printf-like reply function
- */
-int unixsock_reply_printf(char* fmt, ...);
-
-
-/*
- * Send the reply
- */
-ssize_t unixsock_reply_send(void);
-
-
-/*
- * Send the reply to the given destination
- */
-ssize_t unixsock_reply_sendto(struct sockaddr_un* to);
-
-
-/*
- * Read a line, the result will be stored in line
- * parameter, the data is not copied, it's just
- * a pointer to an existing buffer
- */
-int unixsock_read_line(str* line, str* source);
-
-
-/*
- * Read body until the closing .CRLF, no CRLF recovery
- * is done so no additional buffer is necessary, body will
- * point to an existing buffer
- */
-int unixsock_read_body(str* body, str* source);
-
-
-/*
- * Read a set of lines, the functions performs CRLF recovery,
- * therefore lineset must point to an additional buffer
- * to which the data will be copied. Initial lineset->len contains
- * the size of the buffer
- */
-int unixsock_read_lineset(str* lineset, str* source);
-
-
-/*
- * Return the address of the sender
- */
-struct sockaddr_un* unixsock_sender_addr(void);
-
-
-#endif /* _UNIXSOCK_SERVER_H */

Deleted: ser/trunk/usr_avp.c
===================================================================
--- ser/trunk/usr_avp.c	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/usr_avp.c	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,637 +0,0 @@
-/*
- * $Id: usr_avp.c,v 1.15.2.1 2005/06/01 09:30:22 bogdan Exp $
- *
- * 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 at 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
- *
- * History:
- * ---------
- *  2004-07-21  created (bogdan)
- *  2004-10-09  interface more flexible - more function available (bogdan)
- *  2004-11-07  AVP string values are kept 0 terminated (bogdan)
- *  2004-11-14  global aliases support added
- */
-
-
-#include <assert.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "sr_module.h"
-#include "dprint.h"
-#include "str.h"
-#include "ut.h"
-#include "mem/shm_mem.h"
-#include "mem/mem.h"
-#include "usr_avp.h"
-
-
-/* usr_avp data bodies */
-struct str_int_data {
-	str  name;
-	int  val;
-};
-
-struct str_str_data {
-	str  name;
-	str  val;
-};
-
-/* avp aliases structs*/
-struct avp_spec {
-	int type;
-	int_str name;
-};
-
-struct avp_galias {
-	str alias;
-	struct avp_spec  avp;
-	struct avp_galias *next;
-};
-
-static struct avp_galias *galiases = 0;
-static struct usr_avp *global_avps = 0;
-static struct usr_avp **crt_avps  = &global_avps;
-
-
-
-inline static unsigned short compute_ID( str *name )
-{
-	char *p;
-	unsigned short id;
-
-	id=0;
-	for( p=name->s+name->len-1 ; p>=name->s ; p-- )
-		id ^= *p;
-	return id;
-}
-
-
-int add_avp(unsigned short flags, int_str name, int_str val)
-{
-	struct usr_avp *avp;
-	str *s;
-	struct str_int_data *sid;
-	struct str_str_data *ssd;
-	int len;
-
-	assert( crt_avps!=0 );
-
-	if ( name.s==0 ) {
-		LOG(L_ERR,"ERROR:avp:add_avp: 0 ID or NULL NAME AVP!");
-		goto error;
-	}
-
-	/* compute the required mem size */
-	len = sizeof(struct usr_avp);
-	if (flags&AVP_NAME_STR) {
-		if ( name.s->s==0 || name.s->len==0) {
-			LOG(L_ERR,"ERROR:avp:add_avp: EMPTY NAME AVP!");
-			goto error;
-		}
-		if (flags&AVP_VAL_STR)
-			len += sizeof(struct str_str_data)-sizeof(void*) + name.s->len
-				+ (val.s->len+1);
-		else
-			len += sizeof(struct str_int_data)-sizeof(void*) + name.s->len;
-	} else if (flags&AVP_VAL_STR)
-			len += sizeof(str)-sizeof(void*) + (val.s->len+1);
-
-	avp = (struct usr_avp*)shm_malloc( len );
-	if (avp==0) {
-		LOG(L_ERR,"ERROR:avp:add_avp: no more shm mem\n");
-		goto error;
-	}
-
-	avp->flags = flags;
-	avp->id = (flags&AVP_NAME_STR)? compute_ID(name.s) : name.n ;
-
-	avp->next = *crt_avps;
-	*crt_avps = avp;
-
-	switch ( flags&(AVP_NAME_STR|AVP_VAL_STR) )
-	{
-		case 0:
-			/* avp type ID, int value */
-			avp->data = (void*)(long)val.n;
-			break;
-		case AVP_NAME_STR:
-			/* avp type str, int value */
-			sid = (struct str_int_data*)&(avp->data);
-			sid->val = val.n;
-			sid->name.len =name.s->len;
-			sid->name.s = (char*)sid + sizeof(struct str_int_data);
-			memcpy( sid->name.s , name.s->s, name.s->len);
-			break;
-		case AVP_VAL_STR:
-			/* avp type ID, str value */
-			s = (str*)&(avp->data);
-			s->len = val.s->len;
-			s->s = (char*)s + sizeof(str);
-			memcpy( s->s, val.s->s , s->len);
-			s->s[s->len] = 0;
-			break;
-		case AVP_NAME_STR|AVP_VAL_STR:
-			/* avp type str, str value */
-			ssd = (struct str_str_data*)&(avp->data);
-			ssd->name.len = name.s->len;
-			ssd->name.s = (char*)ssd + sizeof(struct str_str_data);
-			memcpy( ssd->name.s , name.s->s, name.s->len);
-			ssd->val.len = val.s->len;
-			ssd->val.s = ssd->name.s + ssd->name.len;
-			memcpy( ssd->val.s , val.s->s, val.s->len);
-			ssd->val.s[ssd->val.len] = 0;
-			break;
-	}
-
-	return 0;
-error:
-	return -1;
-}
-
-
-/* get value functions */
-
-inline str* get_avp_name(struct usr_avp *avp)
-{
-	switch ( avp->flags&(AVP_NAME_STR|AVP_VAL_STR) )
-	{
-		case 0:
-			/* avp type ID, int value */
-		case AVP_VAL_STR:
-			/* avp type ID, str value */
-			return 0;
-		case AVP_NAME_STR:
-			/* avp type str, int value */
-			return &((struct str_int_data*)&avp->data)->name;
-		case AVP_NAME_STR|AVP_VAL_STR:
-			/* avp type str, str value */
-			return &((struct str_str_data*)&avp->data)->name;
-	}
-
-	LOG(L_ERR,"BUG:avp:get_avp_name: unknown avp type (name&val) %d\n",
-		avp->flags&(AVP_NAME_STR|AVP_VAL_STR));
-	return 0;
-}
-
-
-inline void get_avp_val(struct usr_avp *avp, int_str *val)
-{
-	if (avp==0 || val==0)
-		return;
-
-	switch ( avp->flags&(AVP_NAME_STR|AVP_VAL_STR) ) {
-		case 0:
-			/* avp type ID, int value */
-			val->n = (long)(avp->data);
-			break;
-		case AVP_NAME_STR:
-			/* avp type str, int value */
-			val->n = ((struct str_int_data*)(&avp->data))->val;
-			break;
-		case AVP_VAL_STR:
-			/* avp type ID, str value */
-			val->s = (str*)(&avp->data);
-			break;
-		case AVP_NAME_STR|AVP_VAL_STR:
-			/* avp type str, str value */
-			val->s = &(((struct str_str_data*)(&avp->data))->val);
-			break;
-	}
-}
-
-
-struct usr_avp** get_avp_list( )
-{
-	assert( crt_avps!=0 );
-	return crt_avps;
-}
-
-
-
-
-/* search functions */
-
-inline static struct usr_avp *internal_search_ID_avp( struct usr_avp *avp,
-												unsigned short id)
-{
-	for( ; avp ; avp=avp->next ) {
-		if ( id==avp->id && (avp->flags&AVP_NAME_STR)==0  ) {
-			return avp;
-		}
-	}
-	return 0;
-}
-
-
-
-inline static struct usr_avp *internal_search_name_avp( struct usr_avp *avp,
-												unsigned short id, str *name)
-{
-	str * avp_name;
-
-	for( ; avp ; avp=avp->next )
-		if ( id==avp->id && avp->flags&AVP_NAME_STR &&
-		(avp_name=get_avp_name(avp))!=0 && avp_name->len==name->len
-		 && !strncasecmp( avp_name->s, name->s, name->len) ) {
-			return avp;
-		}
-	return 0;
-}
-
-
-
-struct usr_avp *search_first_avp( unsigned short name_type,
-										int_str name, int_str *val)
-{
-	struct usr_avp *avp;
-
-	assert( crt_avps!=0 );
-	
-	if (*crt_avps==0)
-		return 0;
-
-	if ( name.s==0) {
-		LOG(L_ERR,"ERROR:avp:search_first_avp: 0 ID or NULL NAME AVP!");
-		return 0;
-	}
-
-	/* search for the AVP by ID (&name) */
-	if (name_type&AVP_NAME_STR) {
-		if ( name.s->s==0 || name.s->len==0) {
-			LOG(L_ERR,"ERROR:avp:search_first_avp: EMPTY NAME AVP!");
-			return 0;
-		}
-		avp = internal_search_name_avp(*crt_avps,compute_ID(name.s),name.s);
-	} else {
-		avp = internal_search_ID_avp( *crt_avps, name.n );
-	}
-
-	/* get the value - if required */
-	if (avp && val)
-		get_avp_val(avp, val);
-
-	return avp;
-}
-
-
-
-struct usr_avp *search_next_avp( struct usr_avp *avp,  int_str *val )
-{
-	if (avp==0 || avp->next==0)
-		return 0;
-
-	if (avp->flags&AVP_NAME_STR)
-		avp = internal_search_name_avp( avp->next, avp->id, get_avp_name(avp));
-	else
-		avp = internal_search_ID_avp( avp->next, avp->id );
-
-	if (avp && val)
-		get_avp_val(avp, val);
-
-	return avp;
-}
-
-
-
-
-/********* free functions ********/
-
-void destroy_avp( struct usr_avp *avp_del)
-{
-	struct usr_avp *avp;
-	struct usr_avp *avp_prev;
-
-	for( avp_prev=0,avp=*crt_avps ; avp ; avp_prev=avp,avp=avp->next ) {
-		if (avp==avp_del) {
-			if (avp_prev)
-				avp_prev->next=avp->next;
-			else
-				*crt_avps = avp->next;
-			shm_free(avp);
-			return;
-		}
-	}
-}
-
-
-void destroy_avp_list_unsafe( struct usr_avp **list )
-{
-	struct usr_avp *avp, *foo;
-
-	avp = *list;
-	while( avp ) {
-		foo = avp;
-		avp = avp->next;
-		shm_free_unsafe( foo );
-	}
-	*list = 0;
-}
-
-
-inline void destroy_avp_list( struct usr_avp **list )
-{
-	struct usr_avp *avp, *foo;
-
-	DBG("DEBUG:destroy_avp_list: destroying list %p\n", *list);
-	avp = *list;
-	while( avp ) {
-		foo = avp;
-		avp = avp->next;
-		shm_free( foo );
-	}
-	*list = 0;
-}
-
-
-void reset_avps( )
-{
-	assert( crt_avps!=0 );
-	
-	if ( crt_avps!=&global_avps) {
-		crt_avps = &global_avps;
-	}
-	destroy_avp_list( crt_avps );
-}
-
-
-struct usr_avp** set_avp_list( struct usr_avp **list )
-{
-	struct usr_avp **foo;
-	
-	assert( crt_avps!=0 );
-
-	foo = crt_avps;
-	crt_avps = list;
-	return foo;
-}
-
-
-
-
-/********* global aliases functions ********/
-
-static inline int check_avp_galias(str *alias, int type, int_str avp_name)
-{
-	struct avp_galias *ga;
-
-	type &= AVP_NAME_STR;
-
-	for( ga=galiases ; ga ; ga=ga->next ) {
-		/* check for duplicated alias names */
-		if ( alias->len==ga->alias.len &&
-		(strncasecmp( alias->s, ga->alias.s, alias->len)==0) )
-			return -1;
-		/*check for duplicated avp names */
-		if (type==ga->avp.type) {
-			if (type&AVP_NAME_STR){
-				if (avp_name.s->len==ga->avp.name.s->len &&
-				(strncasecmp(avp_name.s->s, ga->avp.name.s->s,
-							 					avp_name.s->len)==0) )
-					return -1;
-			} else {
-				if (avp_name.n==ga->avp.name.n)
-					return -1;
-			}
-		}
-	}
-	return 0;
-}
-
-
-int add_avp_galias(str *alias, int type, int_str avp_name)
-{
-	struct avp_galias *ga;
-
-	if ((type&AVP_NAME_STR && (!avp_name.s || !avp_name.s->s ||
-								!avp_name.s->len)) ||!alias || !alias->s ||
-		!alias->len ){
-		LOG(L_ERR, "ERROR:add_avp_galias: null params received\n");
-		goto error;
-	}
-
-	if (check_avp_galias(alias,type,avp_name)!=0) {
-		LOG(L_ERR, "ERROR:add_avp_galias: duplicate alias/avp entry\n");
-		goto error;
-	}
-
-	ga = (struct avp_galias*)pkg_malloc( sizeof(struct avp_galias) );
-	if (ga==0) {
-		LOG(L_ERR, "ERROR:add_avp_galias: no more pkg memory\n");
-		goto error;
-	}
-
-	ga->alias.s = (char*)pkg_malloc( alias->len+1 );
-	if (ga->alias.s==0) {
-		LOG(L_ERR, "ERROR:add_avp_galias: no more pkg memory\n");
-		goto error1;
-	}
-	memcpy( ga->alias.s, alias->s, alias->len);
-	ga->alias.len = alias->len;
-
-	ga->avp.type = type&AVP_NAME_STR;
-
-	if (type&AVP_NAME_STR) {
-		ga->avp.name.s = (str*)pkg_malloc( sizeof(str)+avp_name.s->len+1 );
-		if (ga->avp.name.s==0) {
-			LOG(L_ERR, "ERROR:add_avp_galias: no more pkg memory\n");
-			goto error2;
-		}
-		ga->avp.name.s->s = ((char*)ga->avp.name.s)+sizeof(str);
-		ga->avp.name.s->len = avp_name.s->len;
-		memcpy( ga->avp.name.s->s, avp_name.s->s, avp_name.s->len);
-		ga->avp.name.s->s[avp_name.s->len] = 0;
-		DBG("DEBUG:add_avp_galias: registering <%s> for avp name <%s>\n",
-			ga->alias.s, ga->avp.name.s->s);
-	} else {
-		ga->avp.name.n = avp_name.n;
-		DBG("DEBUG:add_avp_galias: registering <%s> for avp id <%d>\n",
-			ga->alias.s, ga->avp.name.n);
-	}
-
-	ga->next = galiases;
-	galiases = ga;
-
-	return 0;
-error2:
-	pkg_free(ga->alias.s);
-error1:
-	pkg_free(ga);
-error:
-	return -1;
-}
-
-
-int lookup_avp_galias(str *alias, int *type, int_str *avp_name)
-{
-	struct avp_galias *ga;
-
-	for( ga=galiases ; ga ; ga=ga->next )
-		if (alias->len==ga->alias.len &&
-		(strncasecmp( alias->s, ga->alias.s, alias->len)==0) ) {
-			*type = ga->avp.type;
-			*avp_name = ga->avp.name;
-			return 0;
-		}
-
-	return -1;
-}
-
-
-/* parsing functions */
-
-int parse_avp_name( str *name, int *type, int_str *avp_name)
-{
-	unsigned int id;
-	char c;
-
-	if (name==0 || name->s==0 || name->len==0)
-		goto error;
-
-	if (name->len>=2 && name->s[1]==':') {
-		c = name->s[0];
-		name->s += 2;
-		name->len -= 2;
-		if (name->len==0)
-			goto error;
-		switch (c) {
-			case 's': case 'S':
-				*type = AVP_NAME_STR;
-				avp_name->s = name;
-				break;
-			case 'i': case 'I':
-				*type = 0;
-				if (str2int( name, &id)!=0) {
-					LOG(L_ERR, "ERROR:parse_avp_name: invalid ID "
-						"<%.*s> - not a number\n", name->len, name->s);
-					goto error;
-				}
-				avp_name->n = (int)id;
-				break;
-			default:
-				LOG(L_ERR, "ERROR:parse_avp_name: unsupported type "
-					"[%c]\n", c);
-				goto error;
-		}
-	} else {
-		/*default is string name*/
-		*type = AVP_NAME_STR;
-		avp_name->s = name;
-	}
-
-	return 0;
-error:
-	return -1;
-}
-
-
-int parse_avp_spec( str *name, int *type, int_str *avp_name)
-{
-	str alias;
-
-	if (name==0 || name->s==0 || name->len==0)
-		return -1;
-
-	if (name->s[0]==GALIAS_CHAR_MARKER) {
-		/* it's an avp alias */
-		if (name->len==1) {
-			LOG(L_ERR,"ERROR:parse_avp_spec: empty alias\n");
-			return -1;
-		}
-		alias.s = name->s+1;
-		alias.len = name->len-1;
-		return lookup_avp_galias( &alias, type, avp_name);
-	} else {
-		return parse_avp_name( name, type, avp_name);
-	}
-}
-
-
-int add_avp_galias_str(char *alias_definition)
-{
-	int_str avp_name;
-	char *s;
-	str  name;
-	str  alias;
-	int  type;
-
-	s = alias_definition;
-	while(*s && isspace((int)*s))
-		s++;
-
-	while (*s) {
-		/* parse alias name */
-		alias.s = s;
-		while(*s && *s!=';' && !isspace((int)*s) && *s!='=')
-			s++;
-		if (alias.s==s || *s==0 || *s==';')
-			goto parse_error;
-		alias.len = s-alias.s;
-		while(*s && isspace((int)*s))
-			s++;
-		/* equal sign */
-		if (*s!='=')
-			goto parse_error;
-		s++;
-		while(*s && isspace((int)*s))
-			s++;
-		/* avp name */
-		name.s = s;
-		while(*s && *s!=';' && !isspace((int)*s))
-			s++;
-		if (name.s==s)
-			goto parse_error;
-		name.len = s-name.s;
-		while(*s && isspace((int)*s))
-			s++;
-		/* check end */
-		if (*s!=0 && *s!=';')
-			goto parse_error;
-		if (*s==';') {
-			for( s++ ; *s && isspace((int)*s) ; s++ );
-			if (*s==0)
-				goto parse_error;
-		}
-
-		if (parse_avp_name( &name, &type, &avp_name)!=0) {
-			LOG(L_ERR, "ERROR:add_avp_galias_str: <%.*s> not a valid AVP "
-				"name\n", name.len, name.s);
-			goto error;
-		}
-
-		if (add_avp_galias( &alias, type, avp_name)!=0) {
-			LOG(L_ERR, "ERROR:add_avp_galias_str: add global alias failed\n");
-			goto error;
-		}
-	} /*end while*/
-
-	return 0;
-parse_error:
-	LOG(L_ERR, "ERROR:add_avp_galias_str: parse error in <%s> around "
-		"pos %ld\n", alias_definition, (long)(s-alias_definition));
-error:
-	return -1;
-}
-
-

Deleted: ser/trunk/usr_avp.h
===================================================================
--- ser/trunk/usr_avp.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/usr_avp.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,86 +0,0 @@
-/*
- * $Id: usr_avp.h,v 1.7 2004/11/17 00:37:16 andrei Exp $
- *
- * 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 at 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
- *
- * History:
- * ---------
- *  2004-07-21  created (bogdan)
- *  2004-11-14  global aliases support added
- */
-
-#ifndef _SER_URS_AVP_H_
-#define _SER_URS_AVP_H_
-
-
-#include "str.h"
-
-typedef union {
-	int  n;
-	str *s;
-} int_str;
-
-
-struct usr_avp {
-	unsigned short id;
-	unsigned short flags;
-	struct usr_avp *next;
-	void *data;
-};
-
-
-#define AVP_NAME_STR     (1<<0)
-#define AVP_VAL_STR      (1<<1)
-
-#define GALIAS_CHAR_MARKER  '$'
-
-/* add functions */
-int add_avp( unsigned short flags, int_str name, int_str val);
-
-/* search functions */
-struct usr_avp *search_first_avp( unsigned short name_type, int_str name,
-															int_str *val );
-struct usr_avp *search_next_avp( struct usr_avp *avp, int_str *val  );
-
-/* free functions */
-void reset_avps( );
-void destroy_avp( struct usr_avp *avp);
-void destroy_avp_list( struct usr_avp **list );
-void destroy_avp_list_unsafe( struct usr_avp **list );
-
-/* get func */
-void get_avp_val(struct usr_avp *avp, int_str *val );
-str* get_avp_name(struct usr_avp *avp);
-struct usr_avp** set_avp_list( struct usr_avp **list );
-struct usr_avp** get_avp_list( );
-
-/* global alias functions (manipulation and parsing)*/
-int add_avp_galias_str(char *alias_definition);
-int lookup_avp_galias(str *alias, int *type, int_str *avp_name);
-int add_avp_galias(str *alias, int type, int_str avp_name);
-int parse_avp_name( str *name, int *type, int_str *avp_name);
-int parse_avp_spec( str *name, int *type, int_str *avp_name);
-
-#endif
-

Deleted: ser/trunk/ut.h
===================================================================
--- ser/trunk/ut.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/ut.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,401 +0,0 @@
-/*
- *$Id: ut.h,v 1.32.2.2 2005/11/29 19:39:45 andrei Exp $
- *
- * - various general purpose functions
- *
- * 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 at 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
- *
- * History
- * ------
- * 2003-01-18 un_escape function introduced for convenience of code needing
- *            the complex&slow feature of unescaping
- * 2003-01-28 scratchpad removed (jiri)
- * 2003-01-29 pathmax added (jiri)
- * 2003-02-13 strlower added (janakj)
- * 2003-02-28 scratchpad compatibility abandoned (jiri)
- * 2003-03-30 str2int and str2float added (janakj)
- * 2003-04-26 ZSW (jiri)
- * 2004-03-08 updated int2str (64 bits, INT2STR_MAX_LEN used) (andrei)
- */
-
-
-#ifndef ut_h
-#define ut_h
-
-#include "comp_defs.h"
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <limits.h>
-#include <unistd.h>
-#include <ctype.h>
-
-#include "config.h"
-#include "dprint.h"
-#include "str.h"
-
-
-struct sip_msg;
-
-/* zero-string wrapper */
-#define ZSW(_c) ((_c)?(_c):"")
-
-/* returns string beginning and length without insignificant chars */
-#define trim_len( _len, _begin, _mystr ) \
-	do{ 	static char _c; \
-		(_len)=(_mystr).len; \
-		while ((_len) && ((_c=(_mystr).s[(_len)-1])==0 || _c=='\r' || \
-					_c=='\n' || _c==' ' || _c=='\t' )) \
-			(_len)--; \
-		(_begin)=(_mystr).s; \
-		while ((_len) && ((_c=*(_begin))==' ' || _c=='\t')) { \
-			(_len)--;\
-			(_begin)++; \
-		} \
-	}while(0)
-
-#define trim_r( _mystr ) \
-	do{	static char _c; \
-		while( ((_mystr).len) && ( ((_c=(_mystr).s[(_mystr).len-1]))==0 ||\
-									_c=='\r' || _c=='\n' ) \
-				) \
-			(_mystr).len--; \
-	}while(0)
-
-
-#define  translate_pointer( _new_buf , _org_buf , _p) \
-	( (_p)?(_new_buf + (_p-_org_buf)):(0) )
-
-#define via_len(_via) \
-	((_via)->bsize-((_via)->name.s-\
-		((_via)->hdr.s+(_via)->hdr.len)))
-
-
-/* char to hex conversion table */
-static char fourbits2char[16] = { '0', '1', '2', '3', '4', '5',
-	'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
-
-
-/* converts a str to an u. short, returns the u. short and sets *err on
- * error and if err!=null
-  */
-static inline unsigned short str2s(char* s, unsigned int len,
-									int *err)
-{
-	unsigned short ret;
-	int i;
-	unsigned char *limit;
-	unsigned char *init;
-	unsigned char* str;
-
-	/*init*/
-	str=(unsigned char*)s;
-	ret=i=0;
-	limit=str+len;
-	init=str;
-
-	for(;str<limit ;str++){
-		if ( (*str <= '9' ) && (*str >= '0') ){
-				ret=ret*10+*str-'0';
-				i++;
-				if (i>5) goto error_digits;
-		}else{
-				//error unknown char
-				goto error_char;
-		}
-	}
-	if (err) *err=0;
-	return ret;
-
-error_digits:
-	DBG("str2s: ERROR: too many letters in [%.*s]\n", (int)len, init);
-	if (err) *err=1;
-	return 0;
-error_char:
-	DBG("str2s: ERROR: unexpected char %c in %.*s\n", *str, (int)len, init);
-	if (err) *err=1;
-	return 0;
-}
-
-
-
-static inline int btostr( char *p,  unsigned char val)
-{
-	unsigned int a,b,i =0;
-
-	if ( (a=val/100)!=0 )
-		*(p+(i++)) = a+'0';         /*first digit*/
-	if ( (b=val%100/10)!=0 || a)
-		*(p+(i++)) = b+'0';        /*second digit*/
-	*(p+(i++)) = '0'+val%10;              /*third digit*/
-
-	return i;
-}
-
-
-#define INT2STR_MAX_LEN  (19+1+1) /* 2^64~= 16*10^18 => 19+1 digits + \0 */
-
-/* returns a pointer to a static buffer containing l in asciiz & sets len */
-static inline char* int2str(unsigned long l, int* len)
-{
-	static char r[INT2STR_MAX_LEN];
-	int i;
-	
-	i=INT2STR_MAX_LEN-2;
-	r[INT2STR_MAX_LEN-1]=0; /* null terminate */
-	do{
-		r[i]=l%10+'0';
-		i--;
-		l/=10;
-	}while(l && (i>=0));
-	if (l && (i<0)){
-		LOG(L_CRIT, "BUG: int2str: overflow\n");
-	}
-	if (len) *len=(INT2STR_MAX_LEN-2)-i;
-	return &r[i+1];
-}
-
-
-
-/* faster memchr version */
-static inline char* q_memchr(char* p, int c, unsigned int size)
-{
-	char* end;
-
-	end=p+size;
-	for(;p<end;p++){
-		if (*p==(unsigned char)c) return p;
-	}
-	return 0;
-}
-	
-
-/* returns -1 on error, 1! on success (consistent with int2reverse_hex) */
-inline static int reverse_hex2int( char *c, int len, unsigned int* res)
-{
-	char *pc;
-	char mychar;
-
-	*res=0;
-	for (pc=c+len-1; len>0; pc--, len--) {
-		*res <<= 4 ;
-		mychar=*pc;
-		if ( mychar >='0' && mychar <='9') *res+=mychar -'0';
-		else if (mychar >='a' && mychar <='f') *res+=mychar -'a'+10;
-		else if (mychar  >='A' && mychar <='F') *res+=mychar -'A'+10;
-		else return -1;
-	}
-	return 1;
-}
-
-inline static int int2reverse_hex( char **c, int *size, unsigned int nr )
-{
-	unsigned short digit;
-
-	if (*size && nr==0) {
-		**c = '0';
-		(*c)++;
-		(*size)--;
-		return 1;
-	}
-
-	while (*size && nr ) {
-		digit = nr & 0xf ;
-		**c= digit >= 10 ? digit + 'a' - 10 : digit + '0';
-		nr >>= 4;
-		(*c)++;
-		(*size)--;
-	}
-	return nr ? -1 /* number not processed; too little space */ : 1;
-}
-
-/* double output length assumed ; does NOT zero-terminate */
-inline static int string2hex( 
-	/* input */ unsigned char *str, int len,
-	/* output */ char *hex )
-{
-	int orig_len;
-
-	if (len==0) {
-		*hex='0';
-		return 1;
-	}
-
-	orig_len=len;
-	while ( len ) {
-
-		*hex=fourbits2char[(*str) >> 4];
-		hex++;
-		*hex=fourbits2char[(*str) & 0xf];
-		hex++;
-		len--;
-		str++;
-
-	}
-	return orig_len-len;
-}
-
-/* portable sleep in microseconds (no interrupt handling now) */
-
-inline static void sleep_us( unsigned int nusecs )
-{
-	struct timeval tval;
-	tval.tv_sec =nusecs/1000000;
-	tval.tv_usec=nusecs%1000000;
-	select(0, NULL, NULL, NULL, &tval );
-}
-
-
-/* portable determination of max_path */
-inline static int pathmax()
-{
-#ifdef PATH_MAX
-	static int pathmax=PATH_MAX;
-#else
-	static int pathmax=0;
-#endif
-	if (pathmax==0) { /* init */
-		pathmax=pathconf("/", _PC_PATH_MAX);
-		pathmax=(pathmax<=0)?PATH_MAX_GUESS:pathmax+1;
-	}
-	return pathmax;
-}
-
-inline static int hex2int(char hex_digit)
-{
-	if (hex_digit>='0' && hex_digit<='9')
-		return hex_digit-'0';
-	if (hex_digit>='a' && hex_digit<='f')
-		return hex_digit-'a'+10;
-	if (hex_digit>='A' && hex_digit<='F')
-		return hex_digit-'A'+10;
-	/* no valid hex digit ... */
-	LOG(L_ERR, "ERROR: hex2int: '%c' is no hex char\n", hex_digit );
-	return -1;
-}
-
-/* Un-escape URI user  -- it takes a pointer to original user
-   str, as well as the new, unescaped one, which MUST have
-   an allocated buffer linked to the 'str' structure ;
-   (the buffer can be allocated with the same length as
-   the original string -- the output string is always
-   shorter (if escaped characters occur) or same-long
-   as the original one).
-
-   only printable characters are permitted
-
-	<0 is returned on an unescaping error, length of the
-	unescaped string otherwise
-*/
-inline static int un_escape(str *user, str *new_user ) 
-{
- 	int i, j, value;
-	int hi, lo;
-
-	if( new_user==0 || new_user->s==0) {
-		LOG(L_CRIT, "BUG: un_escape: called with invalid param\n");
-		return -1;
-	}
-
-	new_user->len = 0;
-	j = 0;
-
-	for (i = 0; i < user->len; i++) {
-		if (user->s[i] == '%') {
-			if (i + 2 >= user->len) {
-				LOG(L_ERR, "ERROR: un_escape: escape sequence too short in"
-					" '%.*s' @ %d\n",
-					user->len, user->s, i );
-				goto error;
-			}
-			hi=hex2int(user->s[i + 1]);
-			if (hi<0) {
-				LOG(L_ERR, "ERROR: un_escape: non-hex high digit in an escape sequence in"
-					" '%.*s' @ %d\n",
-					user->len, user->s, i+1 );
-				goto error;
-			}
-			lo=hex2int(user->s[i + 2]);
-			if (lo<0) {
-				LOG(L_ERR, "ERROR: non-hex low digit in an escape sequence in "
-					"'%.*s' @ %d\n",
-					user->len, user->s, i+2 );
-				goto error;
-			}
-			value=(hi<<4)+lo;
-			if (value < 32 || value > 126) {
-				LOG(L_ERR, "ERROR: non-ASCII escaped character in '%.*s' @ %d\n",
-					user->len, user->s, i );
-				goto error;
-			}
-			new_user->s[j] = value;
-			i+=2; /* consume the two hex digits, for cycle will move to the next char */
-		} else {
-			new_user->s[j] = user->s[i];
-		}
-        j++; /* good -- we translated another character */
-	}
-	new_user->len = j;
-	return j;
-
-error:
-	new_user->len = j;
-	return -1;
-} 
-
-
-/*
- * Convert a string to lower case
- */
-static inline void strlower(str* _s)
-{
-	int i;
-
-	for(i = 0; i < _s->len; i++) {
-		_s->s[i] = tolower(_s->s[i]);
-	}
-}
-
-
-/*
- * Convert a str into integer
- */
-static inline int str2int(str* _s, unsigned int* _r)
-{
-	int i;
-	
-	*_r = 0;
-	for(i = 0; i < _s->len; i++) {
-		if ((_s->s[i] >= '0') && (_s->s[i] <= '9')) {
-			*_r *= 10;
-			*_r += _s->s[i] - '0';
-		} else {
-			return -1;
-		}
-	}
-	
-	return 0;
-}
-
-#endif

Deleted: ser/trunk/version.h
===================================================================
--- ser/trunk/version.h	2006-02-26 17:34:34 UTC (rev 1350)
+++ ser/trunk/version.h	2006-02-26 17:43:32 UTC (rev 1351)
@@ -1,200 +0,0 @@
-/*
- * $Id: version.h,v 1.2 2004/09/28 18:10:08 andrei Exp $
- *
- * version and compile flags macros 
- *
- *
- * Copyright (C) 2004 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 at 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
- */
-
-#ifndef version_h
-#define version_h
-
-#define SER_FULL_VERSION  NAME " " VERSION " (" ARCH "/" OS ")" 
-
-
-#ifdef STATS
-#define STATS_STR  "STATS: On"
-#else
-#define STATS_STR  "STATS: Off"
-#endif
-
-#ifdef USE_IPV6
-#define USE_IPV6_STR ", USE_IPV6"
-#else
-#define USE_IPV6_STR ""
-#endif
-
-#ifdef USE_TCP
-#define USE_TCP_STR ", USE_TCP"
-#else
-#define USE_TCP_STR ""
-#endif
-
-#ifdef USE_TLS
-#define USE_TLS_STR ", USE_TLS"
-#else 
-#define USE_TLS_STR ""
-#endif
-
-
-#ifdef DISABLE_NAGLE
-#define DISABLE_NAGLE_STR ", DISABLE_NAGLE"
-#else
-#define DISABLE_NAGLE_STR ""
-#endif
-
-#ifdef USE_MCAST
-#define USE_MCAST_STR ", USE_MCAST"
-#else
-#define USE_MCAST_STR ""
-#endif
-
-
-#ifdef NO_DEBUG
-#define NO_DEBUG_STR ", NO_DEBUG"
-#else
-#define NO_DEBUG_STR ""
-#endif
-
-#ifdef NO_LOG
-#define NO_LOG_STR ", NO_LOG"
-#else
-#define NO_LOG_STR ""
-#endif
-
-#ifdef EXTRA_DEBUG
-#define EXTRA_DEBUG_STR ", EXTRA_DEBUG"
-#else
-#define EXTRA_DEBUG_STR ""
-#endif
-
-#ifdef DNS_IP_HACK
-#define DNS_IP_HACK_STR ", DNS_IP_HACK"
-#else
-#define DNS_IP_HACK_STR ""
-#endif
-
-#ifdef SHM_MEM
-#define SHM_MEM_STR ", SHM_MEM"
-#else
-#define SHM_MEM_STR ""
-#endif
-
-#ifdef SHM_MMAP
-#define SHM_MMAP_STR ", SHM_MMAP"
-#else
-#define SHM_MMAP_STR ""
-#endif
-
-#ifdef PKG_MALLOC
-#define PKG_MALLOC_STR ", PKG_MALLOC"
-#else
-#define PKG_MALLOC_STR ""
-#endif
-
-#ifdef VQ_MALLOC
-#define VQ_MALLOC_STR ", VQ_MALLOC"
-#else
-#define VQ_MALLOC_STR ""
-#endif
-
-#ifdef F_MALLOC
-#define F_MALLOC_STR ", F_MALLOC"
-#else
-#define F_MALLOC_STR ""
-#endif
-
-#ifdef USE_SHM_MEM
-#define USE_SHM_MEM_STR ", USE_SHM_MEM"
-#else
-#define USE_SHM_MEM_STR ""
-#endif
-
-#ifdef DBG_QM_MALLOC
-#define DBG_QM_MALLOC_STR ", DBG_QM_MALLOC"
-#else
-#define DBG_QM_MALLOC_STR ""
-#endif
-
-#ifdef DBG_F_MALLOC
-#define DBG_F_MALLOC_STR ", DBG_F_MALLOC"
-#else
-#define DBG_F_MALLOC_STR ""
-#endif
-
-#ifdef DEBUG_DMALLOC
-#define DEBUG_DMALLOC_STR ", DEBUG_DMALLOC"
-#else
-#define DEBUG_DMALLOC_STR ""
-#endif
-
-#ifdef FAST_LOCK
-#ifdef BUSY_WAIT
-#define FAST_LOCK_STR ", FAST_LOCK-BUSY_WAIT"
-#elif defined (ADAPTIVE_WAIT)
-#define FAST_LOCK_STR ", FAST_LOCK-ADAPTIVE_WAIT"
-#else
-#define FAST_LOCK_STR ", FAST_LOCK"
-#endif
-#else
-#define FAST_LOCK_STR ""
-#endif
-
-#ifdef USE_PTHREAD_MUTEX
-#define USE_PTHREAD_MUTEX_STR ", USE_PTHREAD_MUTEX"
-#else
-#define USE_PTHREAD_MUTEX_STR ""
-#endif
-
-#ifdef USE_POSIX_SEM
-#define USE_POSIX_SEM_STR ", USE_POSIX_SEM"
-#else
-#define USE_POSIX_SEM_STR ""
-#endif
-
-#ifdef USE_SYSV_SEM
-#define USE_SYSV_SEM_STR ", USE_SYSV_SEM"
-#else
-#define USE_SYSV_SEM_STR ""
-#endif
-
-
-#ifdef NOSMP
-#define NOSMP_STR "-NOSMP"
-#else
-#define NOSMP_STR ""
-#endif
-
-
-#define SER_COMPILE_FLAGS \
-	STATS_STR EXTRA_DEBUG_STR USE_IPV6_STR USE_TCP_STR USE_TLS_STR \
-	DISABLE_NAGLE_STR USE_MCAST_STR NO_DEBUG_STR NO_LOG_STR DNS_IP_HACK_STR \
-	SHM_MEM_STR SHM_MMAP_STR PKG_MALLOC_STR VQ_MALLOC_STR F_MALLOC_STR \
-	USE_SHM_MEM_STR DBG_QM_MALLOC_STR DBG_F_MALLOC_STR DEBUG_DMALLOC_STR \
-	FAST_LOCK_STR NOSMP_STR USE_PTHREAD_MUTEX_STR USE_POSIX_SEM_STR \
-	USE_SYSV_SEM_STR
-
-
-#endif




More information about the Pkg-voip-commits mailing list