post 0.1.3
added some missing files, minor doc updates
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
0.1.4
|
||||
=====
|
||||
-
|
||||
|
||||
0.1.3
|
||||
=====
|
||||
- 11-Sep-2002: - Fixed a error in the autoconf/automake part of the project.
|
||||
|
||||
@@ -19,6 +19,6 @@
|
||||
#
|
||||
|
||||
|
||||
SUBDIRS = src doc
|
||||
SUBDIRS = src doc scripts
|
||||
|
||||
EXTRA_DIST = scripts TODO RELNOTES
|
||||
EXTRA_DIST = TODO RELNOTES
|
||||
|
||||
377
Makefile.in
377
Makefile.in
@@ -1,377 +0,0 @@
|
||||
# Makefile.in generated automatically by automake 1.4a from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
#
|
||||
# Copyright (C) 2002 Thomas Ries <tries@gmx.net>
|
||||
#
|
||||
# This file is part of Siproxd.
|
||||
#
|
||||
# Siproxd 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.
|
||||
#
|
||||
# Siproxd 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 Siproxd; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
bindir = @bindir@
|
||||
sbindir = @sbindir@
|
||||
libexecdir = @libexecdir@
|
||||
datadir = @datadir@
|
||||
sysconfdir = @sysconfdir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
localstatedir = @localstatedir@
|
||||
libdir = @libdir@
|
||||
infodir = @infodir@
|
||||
mandir = @mandir@
|
||||
includedir = @includedir@
|
||||
oldincludedir = /usr/include
|
||||
|
||||
DESTDIR =
|
||||
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
|
||||
top_builddir = .
|
||||
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_FLAG =
|
||||
transform = @program_transform_name@
|
||||
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
LN_S = @LN_S@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
SUBDIRS = src doc
|
||||
|
||||
EXTRA_DIST = scripts TODO RELNOTES
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \
|
||||
Makefile.am Makefile.in NEWS TODO aclocal.m4 config.h.in configure \
|
||||
configure.in
|
||||
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
$(ACLOCAL_M4): configure.in
|
||||
cd $(srcdir) && $(ACLOCAL)
|
||||
|
||||
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
|
||||
config.h: stamp-h
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h; \
|
||||
$(MAKE) stamp-h; \
|
||||
else :; fi
|
||||
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
|
||||
$(SHELL) ./config.status
|
||||
@echo timestamp > stamp-h 2> /dev/null
|
||||
$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
|
||||
@if test ! -f $@; then \
|
||||
rm -f $(srcdir)/stamp-h.in; \
|
||||
$(MAKE) $(srcdir)/stamp-h.in; \
|
||||
else :; fi
|
||||
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
|
||||
|
||||
mostlyclean-hdr:
|
||||
|
||||
clean-hdr:
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h
|
||||
|
||||
maintainer-clean-hdr:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
all-recursive install-data-recursive install-exec-recursive \
|
||||
installdirs-recursive install-recursive uninstall-recursive \
|
||||
check-recursive installcheck-recursive info-recursive dvi-recursive:
|
||||
@set fnord $(MAKEFLAGS); amf=$$2; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@set fnord $(MAKEFLAGS); amf=$$2; \
|
||||
dot_seen=no; \
|
||||
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
rev="$$subdir $$rev"; \
|
||||
test "$$subdir" = "." && dot_seen=yes; \
|
||||
done; \
|
||||
test "$$dot_seen" = "no" && rev=". $$rev"; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
here=`pwd` && cd $(srcdir) \
|
||||
&& mkid -f$$here/ID $$unique $(LISP)
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
|
||||
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
|
||||
|
||||
mostlyclean-tags:
|
||||
|
||||
clean-tags:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID
|
||||
|
||||
maintainer-clean-tags:
|
||||
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
-rm -rf $(distdir)
|
||||
GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
|
||||
mkdir $(distdir)/=build
|
||||
mkdir $(distdir)/=inst
|
||||
dc_install_base=`cd $(distdir)/=inst && pwd`; \
|
||||
cd $(distdir)/=build \
|
||||
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist
|
||||
-rm -rf $(distdir)
|
||||
@banner="$(distdir).tar.gz is ready for distribution"; \
|
||||
dashes=`echo "$$banner" | sed s/./=/g`; \
|
||||
echo "$$dashes"; \
|
||||
echo "$$banner"; \
|
||||
echo "$$dashes"
|
||||
dist: distdir
|
||||
-chmod -R a+r $(distdir)
|
||||
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
|
||||
-rm -rf $(distdir)
|
||||
dist-all: distdir
|
||||
-chmod -R a+r $(distdir)
|
||||
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
|
||||
-rm -rf $(distdir)
|
||||
distdir: $(DISTFILES)
|
||||
-rm -rf $(distdir)
|
||||
mkdir $(distdir)
|
||||
-chmod 777 $(distdir)
|
||||
here=`cd $(top_builddir) && pwd`; \
|
||||
top_distdir=`cd $(distdir) && pwd`; \
|
||||
distdir=`cd $(distdir) && pwd`; \
|
||||
cd $(top_srcdir) \
|
||||
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
|
||||
@for file in $(DISTFILES); do \
|
||||
d=$(srcdir); \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||
fi; \
|
||||
done
|
||||
for subdir in $(SUBDIRS); do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d $(distdir)/$$subdir \
|
||||
|| mkdir $(distdir)/$$subdir \
|
||||
|| exit 1; \
|
||||
chmod 777 $(distdir)/$$subdir; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
info-am:
|
||||
info: info-recursive
|
||||
dvi-am:
|
||||
dvi: dvi-recursive
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
installcheck-am:
|
||||
installcheck: installcheck-recursive
|
||||
all-recursive-am: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
install-exec-am:
|
||||
install-exec: install-exec-recursive
|
||||
|
||||
install-data-am:
|
||||
install-data: install-data-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
install: install-recursive
|
||||
uninstall-am:
|
||||
uninstall: uninstall-recursive
|
||||
all-am: Makefile config.h
|
||||
all-redirect: all-recursive-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
|
||||
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||
|
||||
maintainer-clean-generic:
|
||||
mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
|
||||
|
||||
clean: clean-recursive
|
||||
|
||||
distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f config.status
|
||||
|
||||
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
|
||||
maintainer-clean-generic distclean-am
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f config.status
|
||||
|
||||
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
|
||||
install-data-recursive uninstall-data-recursive install-exec-recursive \
|
||||
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
|
||||
all-recursive check-recursive installcheck-recursive info-recursive \
|
||||
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
|
||||
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
|
||||
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
|
||||
dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
|
||||
install-exec-am install-exec install-data-am install-data install-am \
|
||||
install uninstall-am uninstall all-redirect all-am all installdirs-am \
|
||||
installdirs mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
100
RELNOTES
Normal file
100
RELNOTES
Normal file
@@ -0,0 +1,100 @@
|
||||
Release Notes for siproxd-0.1.4
|
||||
===============================
|
||||
-
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.4.tar.gz:
|
||||
|
||||
GnuPG signature for siproxd-0.1.4.tar.gz archive:
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.1.3
|
||||
===============================
|
||||
- Bugfixes in the SIP proxy part
|
||||
- Performance imporvement in RTP proxy part
|
||||
- some documentation updates
|
||||
- include ./scripts subdirectory in the distribution,
|
||||
was an error in the autoconf/automake setup
|
||||
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.3.tar.gz: 82405c104267ad48c2d3421580625972
|
||||
|
||||
GnuPG signature for siproxd-0.1.3.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj1/eUwACgkQPOYHDi42pIq0agCgn46GkmeoOpTWnVJoQSl+5oTl
|
||||
b1cAn331fJVdvaVyRJz0AVjUnD7v+fx6
|
||||
=Sm6d
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.1.2
|
||||
===============================
|
||||
- New: experimental proxying incomming RTP data streams
|
||||
(please send me feedback if you try it out)
|
||||
- optimizations in DNS resolving
|
||||
- fix in client registration concept (Contact Header)
|
||||
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.2.tar.gz: 622762081dfb8e6b4b521b4e4e9ae568
|
||||
|
||||
GnuPG signature for siproxd-0.1.2.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj16c+gACgkQPOYHDi42pIrgwwCfe66NjapoeyG6By8/cvRlMjiJ
|
||||
YAoAoLsJBZTimXDISVqMsxK4NmjdKevF
|
||||
=Yc5X
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.1.1
|
||||
===============================
|
||||
- configurable using a config file
|
||||
- can run as daemon in background
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.1.tar.gz: d0b7b691801f4138c271a8ebae5b7a24
|
||||
|
||||
GnuPG signature for siproxd-0.1.1.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
iEYEABECAAYFAj1pUuMACgkQPOYHDi42pIpkwgCeOheMIeE9EmmPONsXpKMNshMc
|
||||
0YAAnic4Tzj709IuYEtTdwIcPildot6g
|
||||
=Wa6O
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.1.0
|
||||
===============================
|
||||
- This is the first published release.
|
||||
Be warned, this (and all the other) documentantation is far from
|
||||
complete. This is just a *very* preliminary pre-alpha release. Don't
|
||||
expect anything!
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.0.tar.gz: 53288af6ec8c0a92e52226df1a89fc98
|
||||
|
||||
GnuPG signature for siproxd-0.1.0.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
iEYEABECAAYFAj1nzOsACgkQPOYHDi42pIpruACffBef8M3EkvIOIzu+Ds8bxGCs
|
||||
S5gAoMWLl9GVFmGzPTG2X0BK850eIfWc
|
||||
=OGXj
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
GnuPG Public Key is available on wwwkeys.pgp.net
|
||||
pub 1024D/87BCDC94 2000-03-19 Thomas Ries (tries@gmx.net)
|
||||
Key fingerprint = 13D1 19F5 77D0 4CEC 8D3F A24E 09FC C18A 87BC DC94
|
||||
@@ -15,7 +15,7 @@ dnl ******************************************************************
|
||||
dnl
|
||||
SPD_MAJOR_VERSION=0
|
||||
SPD_MINOR_VERSION=1
|
||||
SPD_MICRO_VERSION=3
|
||||
SPD_MICRO_VERSION=4
|
||||
SPD_VERSION=$SPD_MAJOR_VERSION.$SPD_MINOR_VERSION.$SPD_MICRO_VERSION
|
||||
|
||||
dnl *********************************************************************
|
||||
@@ -58,4 +58,5 @@ AC_CHECK_FUNCS(strncpy strchr strstr sprintf vfprintf fgets sscanf)
|
||||
AC_OUTPUT(Makefile \
|
||||
src/Makefile \
|
||||
doc/Makefile \
|
||||
scripts/Makefile \
|
||||
)
|
||||
|
||||
195
doc/Makefile.in
195
doc/Makefile.in
@@ -1,195 +0,0 @@
|
||||
# Makefile.in generated automatically by automake 1.4a from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
#
|
||||
# Copyright (C) 2002 Thomas Ries <tries@gmx.net>
|
||||
#
|
||||
# This file is part of Siproxd.
|
||||
#
|
||||
# Siproxd 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.
|
||||
#
|
||||
# Siproxd 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 Siproxd; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
bindir = @bindir@
|
||||
sbindir = @sbindir@
|
||||
libexecdir = @libexecdir@
|
||||
datadir = @datadir@
|
||||
sysconfdir = @sysconfdir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
localstatedir = @localstatedir@
|
||||
libdir = @libdir@
|
||||
infodir = @infodir@
|
||||
mandir = @mandir@
|
||||
includedir = @includedir@
|
||||
oldincludedir = /usr/include
|
||||
|
||||
DESTDIR =
|
||||
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
|
||||
top_builddir = ..
|
||||
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_FLAG =
|
||||
transform = @program_transform_name@
|
||||
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
LN_S = @LN_S@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
EXTRA_DIST = siproxd.conf.example
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
|
||||
CONFIG_HEADER = ../config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
DIST_COMMON = Makefile.am Makefile.in
|
||||
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
|
||||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||
|
||||
subdir = doc
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
here=`cd $(top_builddir) && pwd`; \
|
||||
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||
distdir=`cd $(distdir) && pwd`; \
|
||||
cd $(top_srcdir) \
|
||||
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu doc/Makefile
|
||||
@for file in $(DISTFILES); do \
|
||||
d=$(srcdir); \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||
fi; \
|
||||
done
|
||||
info-am:
|
||||
info: info-am
|
||||
dvi-am:
|
||||
dvi: dvi-am
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
installcheck-am:
|
||||
installcheck: installcheck-am
|
||||
install-exec-am:
|
||||
install-exec: install-exec-am
|
||||
|
||||
install-data-am:
|
||||
install-data: install-data-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
install: install-am
|
||||
uninstall-am:
|
||||
uninstall: uninstall-am
|
||||
all-am: Makefile
|
||||
all-redirect: all-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
|
||||
installdirs:
|
||||
|
||||
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||
|
||||
maintainer-clean-generic:
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
clean: clean-am
|
||||
|
||||
distclean-am: distclean-generic clean-am
|
||||
|
||||
distclean: distclean-am
|
||||
|
||||
maintainer-clean-am: maintainer-clean-generic distclean-am
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
|
||||
.PHONY: tags distdir info-am info dvi-am dvi check check-am \
|
||||
installcheck-am installcheck install-exec-am install-exec \
|
||||
install-data-am install-data install-am install uninstall-am uninstall \
|
||||
all-redirect all-am all installdirs mostlyclean-generic \
|
||||
distclean-generic clean-generic maintainer-clean-generic clean \
|
||||
mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
0
scripts/Makefile.am
Normal file
0
scripts/Makefile.am
Normal file
357
src/Makefile.in
357
src/Makefile.in
@@ -1,357 +0,0 @@
|
||||
# Makefile.in generated automatically by automake 1.4a from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
#
|
||||
# Copyright (C) 2002 Thomas Ries <tries@gmx.net>
|
||||
#
|
||||
# This file is part of Siproxd.
|
||||
#
|
||||
# Siproxd 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.
|
||||
#
|
||||
# Siproxd 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 Siproxd; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
bindir = @bindir@
|
||||
sbindir = @sbindir@
|
||||
libexecdir = @libexecdir@
|
||||
datadir = @datadir@
|
||||
sysconfdir = @sysconfdir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
localstatedir = @localstatedir@
|
||||
libdir = @libdir@
|
||||
infodir = @infodir@
|
||||
mandir = @mandir@
|
||||
includedir = @includedir@
|
||||
oldincludedir = /usr/include
|
||||
|
||||
DESTDIR =
|
||||
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
|
||||
top_builddir = ..
|
||||
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_FLAG =
|
||||
transform = @program_transform_name@
|
||||
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
LN_S = @LN_S@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
CFLAGS = @CFLAGS@ -Wall -DBUILDSTR=\"`cat .buildno`\" -D_GNU_SOURCE
|
||||
|
||||
bin_PROGRAMS = siproxd
|
||||
siproxd_SOURCES = siproxd.c proxy.c register.c sock.c utils.c log.c readconf.c rtpproxy.c
|
||||
|
||||
|
||||
noinst_HEADERS = log.h siproxd.h
|
||||
|
||||
EXTRA_DIST = .buildno
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
|
||||
CONFIG_HEADER = ../config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
|
||||
|
||||
DEFS = @DEFS@ -I. -I$(srcdir) -I..
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBS = @LIBS@
|
||||
siproxd_OBJECTS = siproxd.o proxy.o register.o sock.o utils.o log.o \
|
||||
readconf.o rtpproxy.o
|
||||
siproxd_LDADD = $(LDADD)
|
||||
siproxd_DEPENDENCIES =
|
||||
siproxd_LDFLAGS =
|
||||
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
HEADERS = $(noinst_HEADERS)
|
||||
|
||||
DIST_COMMON = Makefile.am Makefile.in
|
||||
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
DEP_FILES = .deps/log.P .deps/proxy.P .deps/readconf.P .deps/register.P \
|
||||
.deps/rtpproxy.P .deps/siproxd.P .deps/sock.P .deps/utils.P
|
||||
SOURCES = $(siproxd_SOURCES)
|
||||
OBJECTS = $(siproxd_OBJECTS)
|
||||
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .S .c .o .s
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
|
||||
mostlyclean-binPROGRAMS:
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
||||
|
||||
distclean-binPROGRAMS:
|
||||
|
||||
maintainer-clean-binPROGRAMS:
|
||||
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
echo " $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
|
||||
$(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
|
||||
done
|
||||
|
||||
.s.o:
|
||||
$(COMPILE) -c $<
|
||||
|
||||
.S.o:
|
||||
$(COMPILE) -c $<
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.o core *.core
|
||||
|
||||
clean-compile:
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
maintainer-clean-compile:
|
||||
|
||||
siproxd: $(siproxd_OBJECTS) $(siproxd_DEPENDENCIES)
|
||||
@rm -f siproxd
|
||||
$(LINK) $(siproxd_LDFLAGS) $(siproxd_OBJECTS) $(siproxd_LDADD) $(LIBS)
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
here=`pwd` && cd $(srcdir) \
|
||||
&& mkid -f$$here/ID $$unique $(LISP)
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|
||||
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|
||||
|
||||
mostlyclean-tags:
|
||||
|
||||
clean-tags:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID
|
||||
|
||||
maintainer-clean-tags:
|
||||
|
||||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||
|
||||
subdir = src
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
here=`cd $(top_builddir) && pwd`; \
|
||||
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||
distdir=`cd $(distdir) && pwd`; \
|
||||
cd $(top_srcdir) \
|
||||
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile
|
||||
@for file in $(DISTFILES); do \
|
||||
d=$(srcdir); \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
|
||||
|
||||
-include $(DEP_FILES)
|
||||
|
||||
mostlyclean-depend:
|
||||
|
||||
clean-depend:
|
||||
|
||||
distclean-depend:
|
||||
-rm -rf .deps
|
||||
|
||||
maintainer-clean-depend:
|
||||
|
||||
%.o: %.c
|
||||
@echo '$(COMPILE) -c $<'; \
|
||||
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
|
||||
@-cp .deps/$(*F).pp .deps/$(*F).P; \
|
||||
tr ' ' '\012' < .deps/$(*F).pp \
|
||||
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
|
||||
>> .deps/$(*F).P; \
|
||||
rm .deps/$(*F).pp
|
||||
|
||||
%.lo: %.c
|
||||
@echo '$(LTCOMPILE) -c $<'; \
|
||||
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
|
||||
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
|
||||
< .deps/$(*F).pp > .deps/$(*F).P; \
|
||||
tr ' ' '\012' < .deps/$(*F).pp \
|
||||
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
|
||||
>> .deps/$(*F).P; \
|
||||
rm -f .deps/$(*F).pp
|
||||
info-am:
|
||||
info: info-am
|
||||
dvi-am:
|
||||
dvi: dvi-am
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
installcheck-am:
|
||||
installcheck: installcheck-am
|
||||
install-exec-am: install-binPROGRAMS
|
||||
install-exec: install-exec-am
|
||||
|
||||
install-data-am:
|
||||
install-data: install-data-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
install: install-am
|
||||
uninstall-am: uninstall-binPROGRAMS
|
||||
uninstall: uninstall-am
|
||||
all-am: Makefile $(PROGRAMS) $(HEADERS)
|
||||
all-redirect: all-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||
|
||||
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||
|
||||
maintainer-clean-generic:
|
||||
mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
|
||||
mostlyclean-tags mostlyclean-depend mostlyclean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \
|
||||
clean-generic mostlyclean-am
|
||||
|
||||
clean: clean-am
|
||||
|
||||
distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \
|
||||
distclean-depend distclean-generic clean-am
|
||||
|
||||
distclean: distclean-am
|
||||
|
||||
maintainer-clean-am: maintainer-clean-binPROGRAMS \
|
||||
maintainer-clean-compile maintainer-clean-tags \
|
||||
maintainer-clean-depend maintainer-clean-generic \
|
||||
distclean-am
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
|
||||
.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
|
||||
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
|
||||
mostlyclean-compile distclean-compile clean-compile \
|
||||
maintainer-clean-compile tags mostlyclean-tags distclean-tags \
|
||||
clean-tags maintainer-clean-tags distdir mostlyclean-depend \
|
||||
distclean-depend clean-depend maintainer-clean-depend info-am info \
|
||||
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
|
||||
install-exec install-data-am install-data install-am install \
|
||||
uninstall-am uninstall all-redirect all-am all installdirs \
|
||||
mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
#
|
||||
# count BUILDs - each time increment by one and define the
|
||||
# C macro BUILDNO. bing it to a file everybody includes (log.h)
|
||||
#
|
||||
log.h: increment_build
|
||||
|
||||
increment_build:
|
||||
@echo "incrementing BUILD number"
|
||||
@if [ -f .buildno ]; then \
|
||||
bld=`cat .buildno`; \
|
||||
bld=`expr $${bld} + 1`; \
|
||||
else \
|
||||
bld=1; \
|
||||
fi; \
|
||||
echo "$${bld}" >.buildno;
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
451
src/rtpproxy.c
Normal file
451
src/rtpproxy.c
Normal file
@@ -0,0 +1,451 @@
|
||||
/*
|
||||
Copyright (C) 2002 Thomas Ries <tries@gmx.net>
|
||||
|
||||
This file is part of Siproxd.
|
||||
|
||||
Siproxd 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.
|
||||
|
||||
Siproxd 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 Siproxd; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <signal.h>
|
||||
|
||||
#include <osip/smsg.h>
|
||||
|
||||
#include "siproxd.h"
|
||||
#include "log.h"
|
||||
|
||||
/* configuration storage */
|
||||
extern struct siproxd_config configuration;
|
||||
|
||||
/* use a 'recursive mutex' for synchronizing */
|
||||
pthread_mutex_t rtp_proxytable_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
|
||||
|
||||
/*
|
||||
* table to remember all active rtp proxy streams
|
||||
*/
|
||||
#define CALLID_SIZE 32
|
||||
struct {
|
||||
int sock;
|
||||
char callid_number[CALLID_SIZE];
|
||||
char callid_host[CALLID_SIZE];
|
||||
struct in_addr outbound_ipaddr;
|
||||
int outboundport;
|
||||
struct in_addr inbound_client_ipaddr;
|
||||
int inbound_client_port;
|
||||
time_t timestamp;
|
||||
} rtp_proxytable[RTPPROXY_SIZE];
|
||||
|
||||
|
||||
/* thread id of RTP proxy */
|
||||
pthread_t rtpproxy_tid;
|
||||
|
||||
/* master fd_set */
|
||||
fd_set master_fdset;
|
||||
int master_fd_max;
|
||||
|
||||
/* forward declarations */
|
||||
void *rtpproxy_main(void *i);
|
||||
int rtp_recreate_fdset(void);
|
||||
void sighdl_alm(int sig) {/* do nothing, just wake up from select() */};
|
||||
|
||||
/*
|
||||
* initialize and create rtp_proxy thread
|
||||
*/
|
||||
int rtpproxy_init( void ) {
|
||||
int sts;
|
||||
int arg=7;
|
||||
struct sigaction sigact;
|
||||
|
||||
/* clean proxy table */
|
||||
memset (rtp_proxytable, 0, sizeof(rtp_proxytable));
|
||||
|
||||
/* initialize fd set for RTP proxy thread */
|
||||
FD_ZERO(&master_fdset); /* start with an empty fdset */
|
||||
master_fd_max=-1;
|
||||
|
||||
/* install signal handler for SIGALRM - used to wake up
|
||||
the rtpproxy thread from select() hibernation */
|
||||
sigact.sa_handler = sighdl_alm;
|
||||
sigemptyset(&sigact.sa_mask);
|
||||
sigact.sa_flags=0;
|
||||
sigaction(SIGALRM, &sigact, NULL);
|
||||
|
||||
DEBUGC(DBCLASS_RTP,"create thread");
|
||||
sts=pthread_create(&rtpproxy_tid, NULL, rtpproxy_main, (void *)&arg);
|
||||
DEBUGC(DBCLASS_RTP,"created, sts=%i", sts);
|
||||
|
||||
#if 0 /* don't detach */
|
||||
sts=pthread_detach(rtpproxy_tid);
|
||||
DEBUGC(DBCLASS_RTP,"detached, sts=%i", sts);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* main() of rtpproxy
|
||||
*/
|
||||
void *rtpproxy_main(void *arg) {
|
||||
struct timeval tv;
|
||||
fd_set fdset;
|
||||
int fd_max;
|
||||
time_t t, last_t=0;
|
||||
int i, count;
|
||||
int num_fd;
|
||||
static int rtp_socket=0;
|
||||
call_id_t callid;
|
||||
char rtp_buff[RTP_BUFFER_SIZE];
|
||||
|
||||
memcpy(&fdset, &master_fdset, sizeof(fdset));
|
||||
fd_max=master_fd_max;
|
||||
|
||||
/* test */
|
||||
for (;;) {
|
||||
|
||||
tv.tv_sec = 5;
|
||||
tv.tv_usec = 0;
|
||||
|
||||
num_fd=select(fd_max+1, &fdset, NULL, NULL, &tv);
|
||||
time(&t);
|
||||
|
||||
if (configuration.rtp_proxy_enable) {
|
||||
|
||||
/*
|
||||
* LOCK the MUTEX
|
||||
*/
|
||||
pthread_mutex_lock(&rtp_proxytable_mutex);
|
||||
|
||||
|
||||
/* check for data available and send to destination */
|
||||
for (i=0;(i<RTPPROXY_SIZE) && (num_fd>0);i++) {
|
||||
if ( (rtp_proxytable[i].sock != 0) &&
|
||||
FD_ISSET(rtp_proxytable[i].sock, &fdset) ) {
|
||||
/* yup, have some data to send */
|
||||
|
||||
/* don't... it is a mess on the screen...
|
||||
DEBUGC(DBCLASS_RTP,"got data on sock=%i",rtp_proxytable[i].sock);
|
||||
*/
|
||||
|
||||
/* read from sock rtp_proxytable[i].sock*/
|
||||
count=read(rtp_proxytable[i].sock, rtp_buff, RTP_BUFFER_SIZE);
|
||||
|
||||
/* write to dest via socket rtp_inbound*/
|
||||
sipsock_send_udp(&rtp_socket,
|
||||
rtp_proxytable[i].inbound_client_ipaddr,
|
||||
rtp_proxytable[i].inbound_client_port,
|
||||
rtp_buff, count, 0); /* don't dump it */
|
||||
/* update timestamp of last usage */
|
||||
rtp_proxytable[i].timestamp=t;
|
||||
|
||||
num_fd--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* age and clean rtp_proxytable */
|
||||
if (t > (last_t+configuration.rtp_timeout) ) {
|
||||
last_t = t;
|
||||
for (i=0;i<RTPPROXY_SIZE; i++) {
|
||||
if ( (rtp_proxytable[i].sock != 0) &&
|
||||
(rtp_proxytable[i].timestamp+configuration.rtp_timeout)<t) {
|
||||
/* time one has expired, clean it up */
|
||||
callid.number=rtp_proxytable[i].callid_number;
|
||||
callid.host=rtp_proxytable[i].callid_host;
|
||||
DEBUGC(DBCLASS_RTP,"RTP stream %s@%s (idx=%i) has expired",
|
||||
callid.number, callid.host, i);
|
||||
rtp_stop_fwd(&callid);
|
||||
}
|
||||
}
|
||||
} /* if (t>...) */
|
||||
|
||||
/* copy master FD set */
|
||||
memcpy(&fdset, &master_fdset, sizeof(fdset));
|
||||
fd_max=master_fd_max;
|
||||
|
||||
/*
|
||||
* UNLOCK the MUTEX
|
||||
*/
|
||||
pthread_mutex_unlock(&rtp_proxytable_mutex);
|
||||
|
||||
} /* rtp proxy enabled? */
|
||||
} /* for(;;) */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* helper routines to control the RTP proxy thread
|
||||
*/
|
||||
|
||||
/*
|
||||
* start an rtp stream on the proxy
|
||||
*/
|
||||
int rtp_start_fwd (call_id_t *callid,
|
||||
struct in_addr outbound_ipaddr, int *outboundport,
|
||||
struct in_addr lcl_client_ipaddr, int lcl_clientport) {
|
||||
int i, j;
|
||||
int sock, port;
|
||||
int freeidx;
|
||||
int sts=0;
|
||||
|
||||
if (configuration.rtp_proxy_enable == 0) return 0;
|
||||
|
||||
if (callid == NULL) {
|
||||
ERROR("rtp_start_fwd: callid is NULL!");
|
||||
return 1;
|
||||
}
|
||||
|
||||
DEBUGC(DBCLASS_RTP,"starting RTP proxy stream for: %s@%s",
|
||||
callid->number, callid->host);
|
||||
|
||||
/* lock mutex */
|
||||
#define return is_forbidden_in_this_code_section
|
||||
pthread_mutex_lock(&rtp_proxytable_mutex);
|
||||
/*
|
||||
* !! We now have a locked MUTEX! It is forbidden to return() from
|
||||
* !! here up to the end of this funtion where the MUTEX is
|
||||
* !! unlocked again.
|
||||
* !! Per design, a mutex is locked (for one purpose) at *exactly one*
|
||||
* !! place in the code and unlocked also at *exactly one* place.
|
||||
* !! this minimizes the risk of deadlocks.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* figure out, if this is an request to start an RTP proxy stream
|
||||
* that is already existing (identified by SIP Call-ID)
|
||||
* This can be due to UDP repetitions of the INVITE request...
|
||||
*/
|
||||
for (j=0; j<RTPPROXY_SIZE; j++) {
|
||||
if((strcmp(rtp_proxytable[j].callid_number, callid->number)==0) &&
|
||||
(strcmp(rtp_proxytable[j].callid_host, callid->host)==0) ) {
|
||||
/* return the already known port number */
|
||||
DEBUGC(DBCLASS_RTP,"RTP stream already active (port=%i)",
|
||||
rtp_proxytable[j].outboundport);
|
||||
*outboundport=rtp_proxytable[j].outboundport;
|
||||
sts = 0;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* TODO: randomize the port allocation - start at a random offset to
|
||||
search in the allowed port range (so some modulo stuff w/
|
||||
random start offset
|
||||
- for i=x to (p1-p0)+x; p=p0+mod(x,p1-p0) */
|
||||
|
||||
/* find a local outbound port number to use and bind to it*/
|
||||
sock=0;
|
||||
port=0;
|
||||
for (i=configuration.rtp_port_low; i<=configuration.rtp_port_high; i++) {
|
||||
for (j=0; j<RTPPROXY_SIZE; j++) {
|
||||
/* outbound port already in use */
|
||||
if ((memcmp(&rtp_proxytable[j].outbound_ipaddr,
|
||||
&outbound_ipaddr, sizeof(struct in_addr))== 0) &&
|
||||
(rtp_proxytable[j].outboundport == i) ) {
|
||||
|
||||
/* if the rtp proxy stream is already active (this must then
|
||||
be a repetition of an SIP UDP INVITE packet) just pass back
|
||||
the used port number an do nothing more */
|
||||
if((strcmp(rtp_proxytable[j].callid_number, callid->number)==0) &&
|
||||
(strcmp(rtp_proxytable[j].callid_host, callid->host)==0) ) {
|
||||
/* return the already known port number */
|
||||
DEBUGC(DBCLASS_RTP,"RTP stream already active (port=%i)",
|
||||
rtp_proxytable[j].outboundport);
|
||||
*outboundport=rtp_proxytable[j].outboundport;
|
||||
sts = 0;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* port is available, try to allocate */
|
||||
if (j == RTPPROXY_SIZE) {
|
||||
port=i;
|
||||
sock=sockbind(outbound_ipaddr, port);
|
||||
/* if success break, else try further on */
|
||||
if (sock) break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* find first free slot in rtp_proxytable */
|
||||
freeidx=-1;
|
||||
for (j=0; j<RTPPROXY_SIZE; j++) {
|
||||
if (rtp_proxytable[j].sock==0) {
|
||||
freeidx=j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DEBUGC(DBCLASS_RTP,"rtp_start_fwd: port=%i, sock=%i freeidx=%i",
|
||||
port, sock, freeidx);
|
||||
|
||||
/* found an unused port? No -> RTP port pool fully allocated */
|
||||
if (port == 0) {
|
||||
ERROR("rtp_start_fwd: no RTP port available. Check rtp_port_* config!");
|
||||
sts = 1;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* could bind to desired port? */
|
||||
if (sock == 0) {
|
||||
ERROR("rtp_start_fwd: unable to allocate outbound port!");
|
||||
sts = 1;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* rtp_proxytable port pool full? */
|
||||
if (freeidx == -1) {
|
||||
ERROR("rtp_start_fwd: rtp_proxytable is full!");
|
||||
sts = 1;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* write entry into rtp_proxytable slot (freeidx) */
|
||||
rtp_proxytable[freeidx].sock=sock;
|
||||
strcpy(rtp_proxytable[freeidx].callid_number, callid->number);
|
||||
strcpy(rtp_proxytable[freeidx].callid_host, callid->host);
|
||||
memcpy(&rtp_proxytable[freeidx].outbound_ipaddr,
|
||||
&outbound_ipaddr, sizeof(struct in_addr));
|
||||
rtp_proxytable[freeidx].outboundport=port;
|
||||
memcpy(&rtp_proxytable[freeidx].inbound_client_ipaddr,
|
||||
&lcl_client_ipaddr, sizeof(struct in_addr));
|
||||
rtp_proxytable[freeidx].inbound_client_port=lcl_clientport;
|
||||
time(&rtp_proxytable[freeidx].timestamp);
|
||||
|
||||
*outboundport=port;
|
||||
|
||||
/* prepare FD set for next select operation */
|
||||
rtp_recreate_fdset();
|
||||
|
||||
/* wakeup/signal rtp_proxythread from select() hibernation */
|
||||
if (!pthread_equal(rtpproxy_tid, pthread_self()))
|
||||
pthread_kill(rtpproxy_tid, SIGALRM);
|
||||
|
||||
unlock_and_exit:
|
||||
/* unlock mutex */
|
||||
pthread_mutex_unlock(&rtp_proxytable_mutex);
|
||||
#undef return
|
||||
|
||||
return sts;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* stop a rtp stream on the proxy
|
||||
*/
|
||||
int rtp_stop_fwd (call_id_t *callid) {
|
||||
int i;
|
||||
int sts=0;
|
||||
|
||||
if (configuration.rtp_proxy_enable == 0) return 0;
|
||||
|
||||
if (callid == NULL) {
|
||||
ERROR("rtp_stop_fwd: callid is NULL!");
|
||||
return 1;
|
||||
}
|
||||
|
||||
DEBUGC(DBCLASS_RTP,"stopping RTP proxy stream for: %s@%s",
|
||||
callid->number, callid->host);
|
||||
|
||||
/* lock mutex */
|
||||
#define return is_forbidden_in_this_code_section
|
||||
pthread_mutex_lock(&rtp_proxytable_mutex);
|
||||
/*
|
||||
* !! We now have a locked MUTEX! It is forbidden to return() from
|
||||
* !! here up to the end of this funtion where the MUTEX is
|
||||
* !! unlocked again.
|
||||
* !! Per design, a mutex is locked (for one purpose) at *exactly one*
|
||||
* !! place in the code and unlocked also at *exactly one* place.
|
||||
* !! this minimizes the risk of deadlocks.
|
||||
*/
|
||||
|
||||
/* find the proper entry in rtp_proxytable */
|
||||
for (i=0; i<RTPPROXY_SIZE; i++) {
|
||||
if((strcmp(rtp_proxytable[i].callid_number, callid->number)==0) &&
|
||||
(strcmp(rtp_proxytable[i].callid_host, callid->host)==0) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* did not find an active stream... */
|
||||
if (i>= RTPPROXY_SIZE) {
|
||||
DEBUGC(DBCLASS_RTP,"rtp_stop_fwd: can't find active stream for %s@%s",
|
||||
callid->number, callid->host);
|
||||
sts = 1;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
|
||||
/* close socket */
|
||||
close(rtp_proxytable[i].sock);
|
||||
|
||||
/* clean slot in rtp_proxytable */
|
||||
memset(&rtp_proxytable[i], 0, sizeof(rtp_proxytable[0]));
|
||||
|
||||
/* prepare FD set for next select operation */
|
||||
rtp_recreate_fdset();
|
||||
|
||||
/* wakeup/signal rtp_proxythread from select() hibernation */
|
||||
if (!pthread_equal(rtpproxy_tid, pthread_self()))
|
||||
pthread_kill(rtpproxy_tid, SIGALRM);
|
||||
|
||||
unlock_and_exit:
|
||||
/* unlock mutex */
|
||||
pthread_mutex_unlock(&rtp_proxytable_mutex);
|
||||
#undef return
|
||||
|
||||
return sts;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* some sockets have been newly created or removed -
|
||||
* recreate the FD set for next select operation
|
||||
*/
|
||||
int rtp_recreate_fdset(void) {
|
||||
int i;
|
||||
|
||||
FD_ZERO(&master_fdset);
|
||||
master_fd_max=0;
|
||||
for (i=0;i<RTPPROXY_SIZE;i++) {
|
||||
if (rtp_proxytable[i].sock != 0) {
|
||||
FD_SET(rtp_proxytable[i].sock, &master_fdset);
|
||||
if (rtp_proxytable[i].sock > master_fd_max) {
|
||||
master_fd_max=rtp_proxytable[i].sock;
|
||||
}
|
||||
}
|
||||
} /* for i */
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user