Forgot to mention that those patches also slightly change install target,
so that it doesn't rewrite old (and probably customised) version if it
exists.
-Maxim
On Wed, Jan 08, 2003 at 11:08:35PM +0200, Maxim Sobolev wrote:
OOPS, forgot to attach the patch. Doing it now.
-Maxim
On Wed, Jan 08, 2003 at 11:02:29PM +0200, Maxim Sobolev wrote:
> Folks,
>
> Attached please find several patches for ser 0.8.10. They do the following:
>
> 1. Removes hardcoded `/usr/local' from Makefiles and replaces it with
> LOCALBASE variable setable in the top Makefile.defs. This should make
> life of packagers easier.
>
> 2. Allows to override PREFIX variable with something else from environment.
>
> 3. Adds support for FreeBSD doc/man directories layout.
>
> 4. Adds some missed -I's into radius modules.
>
> 5. Fixes radius modules to use the same symbolic avp names as in dictionary.
>
> 6. Adds support for recording source port in msg structure and adds it
> in "Noisy feedback". This should be extremely useful for debugging
various
> SIP&NAT scenarios and later could be re-used to implement `rport' support
> described in my previous message.
>
> It would be nice to have those patches integrated into the next release.
>
> Thanks!
>
> -Maxim
> _______________________________________________
> Serusers mailing list
> serusers(a)lists.iptel.org
>
http://lists.iptel.org/mailman/listinfo/serusers
--- modules/jabber/Makefile.orig Mon Nov 11 23:34:53
2002
+++ modules/jabber/Makefile Wed Jan 8 22:39:46 2003
@@ -8,7 +8,7 @@
auto_gen=
NAME=jabber.so
# expat.h location
-DEFS+=-I/usr/local/include
-LIBS=-L/usr/local/lib -lexpat
+DEFS+=-I$(LOCALBASE)/include
+LIBS=-L$(LOCALBASE)/lib -lexpat
include ../../Makefile.modules
--- modules/mysql/Makefile.orig Tue Nov 12 14:32:17 2002
+++ modules/mysql/Makefile Wed Jan 8 22:39:46 2003
@@ -5,11 +5,12 @@
auto_gen=
NAME=mysql.so
# mysql.h locations (freebsd,openbsd solaris)
-DEFS +=-I/usr/local/include -I/usr/local/mysql/include \
+DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/include/mysql \
+ -I$(LOCALBASE)/mysql/include
# libmysqlclient locations on RH/Suse, Solaris /OpenBSD, FreeBSD
# (Debian does the right thing and puts it in /usr/lib)
-LIBS=-L/usr/lib/mysql -L /usr/local/lib -L/usr/local/lib/mysql \
- -L/usr/local/mysql/lib/mysql/ \
+LIBS=-L/usr/lib/mysql -L$(LOCALBASE)/lib -L$(LOCALBASE)/lib/mysql \
+ -L$(LOCALBASE)/mysql/lib/mysql/ \
-lmysqlclient -lz
include ../../Makefile.modules
--- modules/radius_acc/Makefile.orig Thu Aug 8 20:28:55 2002
+++ modules/radius_acc/Makefile Wed Jan 8 22:39:46 2003
@@ -6,7 +6,8 @@
auto_gen=
NAME=radius_acc.so
-LIBS=-L/usr/local/lib -lradiusclient
+DEFS += -I$(LOCALBASE)/include
+LIBS=-L$(LOCALBASE)/lib -lradiusclient
include ../../Makefile.modules
--- modules/radius_acc/acc.c.orig Thu Sep 19 15:23:54 2002
+++ modules/radius_acc/acc.c Wed Jan 8 22:39:46 2003
@@ -285,9 +285,9 @@
else
tmp = cleanbody(rq->first_line.u.request.uri);
- if (rc_avpair_add(&send, PW_SIP_TRANSLATED_REQ_URI,
+ if (rc_avpair_add(&send, PW_SIP_TRANSLATED_REQUEST_URI,
tmp, 0) == NULL) {
- DBG("radius_log_reply(): ERROR:PW_SIP_TRANSLATED_REQ_URI \n");
+ DBG("radius_log_reply(): ERROR:PW_SIP_TRANSLATED_REQUEST_URI \n");
return(ERROR_RC);
}
@@ -585,9 +585,9 @@
tmp = cleanbody(msg->first_line.u.request.uri);
tmp = cleanbody(msg->new_uri);
- if (rc_avpair_add(&send, PW_SIP_TRANSLATED_REQ_URI,
+ if (rc_avpair_add(&send, PW_SIP_TRANSLATED_REQUEST_URI,
tmp, 0) == NULL) {
- DBG("radius_log_ack(): ERROR:PW_SIP_TRANSLATED_REQ_URI \n");
+ DBG("radius_log_ack(): ERROR:PW_SIP_TRANSLATED_REQUEST_URI \n");
return(ERROR_RC);
}
@@ -901,9 +901,9 @@
else
tmp = cleanbody(rq->first_line.u.request.uri);
- if (rc_avpair_add(&send, PW_SIP_TRANSLATED_REQ_URI,
+ if (rc_avpair_add(&send, PW_SIP_TRANSLATED_REQUEST_URI,
tmp, 0) == NULL) {
- DBG("rad_acc_request(): ERROR:PW_SIP_TRANSLATED_REQ_URI \n");
+ DBG("rad_acc_request(): ERROR:PW_SIP_TRANSLATED_REQUEST_URI \n");
return(ERROR_RC);
}
--- modules/radius_auth/Makefile.orig Tue Sep 3 17:08:41 2002
+++ modules/radius_auth/Makefile Wed Jan 8 22:39:46 2003
@@ -7,6 +7,7 @@
auto_gen=
NAME=radius_auth.so
-LIBS=-L/usr/local/lib -lradiusclient
+DEFS += -I$(LOCALBASE)/include
+LIBS=-L$(LOCALBASE)/lib -lradiusclient
include ../../Makefile.modules
--- modules/radius_auth/digest.c.orig Thu Sep 19 15:23:54 2002
+++ modules/radius_auth/digest.c Wed Jan 8 22:39:46 2003
@@ -75,11 +75,11 @@
cleanbody(cred->realm), 0) == NULL)
return (ERROR_RC);
- if (rc_avpair_add(&send, PW_SIP_NONCE,
+ if (rc_avpair_add(&send, PW_SIP_USER_NONCE,
cleanbody(cred->nonce), 0) == NULL)
return (ERROR_RC);
- if (rc_avpair_add(&send, PW_SIP_NONCE_COUNT,
+ if (rc_avpair_add(&send, PW_SIP_USER_NONCE_COUNT,
cleanbody(cred->nc), 0) == NULL)
return (ERROR_RC);
--- modules/snmp/Makefile.orig Thu Aug 29 23:13:52 2002
+++ modules/snmp/Makefile Wed Jan 8 22:39:46 2003
@@ -13,5 +13,5 @@
# The way it should be:
# CFLAGS += `net-snmp-config --cflags`
#
-CFLAGS += -I/usr/local/include
+CFLAGS += -I$(LOCALBASE)/include
LIBS+=`net-snmp-config --agent-libs`
--- parser/msg_parser.h.orig Wed Oct 23 18:12:20 2002
+++ parser/msg_parser.h Wed Jan 8 22:39:46 2003
@@ -118,7 +118,9 @@
char* unparsed; /* here we stopped parsing*/
struct ip_addr src_ip;
+ unsigned short src_port_no;
struct ip_addr dst_ip;
+ unsigned short dst_port_no;
char* orig; /* original message copy */
char* buf; /* scratch pad, holds a modfied message,
--- Makefile.orig Tue Nov 12 14:31:25 2002
+++ Makefile Wed Jan 8 22:48:09 2003
@@ -158,8 +158,12 @@
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
- chmod 644 $(cfg-prefix)/$(cfg-dir)ser.cfg
+ < etc/ser.cfg > $(cfg-prefix)/$(cfg-dir)ser.cfg.default
+ chmod 644 $(cfg-prefix)/$(cfg-dir)ser.cfg.default
+ if [ ! -e $(cfg-prefix)/$(cfg-dir)ser.cfg ]; then \
+ cp -p $(cfg-prefix)/$(cfg-dir)ser.cfg.default \
+ $(cfg-prefix)/$(cfg-dir)ser.cfg; \
+ fi
# $(INSTALL-CFG) etc/ser.cfg $(cfg-prefix)/$(cfg-dir)
install-bin: $(bin-prefix)/$(bin-dir) utils/gen_ha1/gen_ha1
--- Makefile.defs.orig Tue Nov 12 19:21:28 2002
+++ Makefile.defs Wed Jan 8 22:39:45 2003
@@ -16,7 +16,8 @@
-e s/armv4l/arm/)
# install location
-PREFIX = /usr/local
+PREFIX ?= /usr/local
+LOCALBASE ?= /usr/local
prefix = $(PREFIX)
# install path is $(basedir) $(prefix)
# example:
@@ -40,9 +41,14 @@
doc-dir = share/doc/ser/
man-dir = share/man/
else
+ifeq ($(OS), freebsd)
+ doc-dir = share/doc/ser/
+ man-dir = man/
+else
doc-dir=doc/ser/
man-dir=man/
endif
+endif
ut-prefix = bin/
# target dirs for various stuff
cfg-target = $(prefix)/$(cfg-dir)
--- ip_addr.h.orig Mon Nov 4 19:05:32 2002
+++ ip_addr.h Wed Jan 8 22:39:46 2003
@@ -201,6 +201,21 @@
}
}
+static inline unsigned int su2port_no(union sockaddr_union* su)
+{
+ switch(su->s.sa_family){
+ case AF_INET:
+ return su->sin.sin_port;
+#ifdef USE_IPV6
+ case AF_INET6:
+ return su->sin6.sin6_port;
+#endif
+ default:
+ LOG(L_CRIT,"su2port_no: BUG: unknown address family %d\n",
+ su->s.sa_family);
+ }
+ return 0;
+}
/* ip_addr2su -> the same as init_su*/
#define ip_addr2su init_su
--- msg_translator.c.orig Mon Oct 21 22:21:50 2002
+++ msg_translator.c Wed Jan 8 22:39:46 2003
@@ -145,9 +145,10 @@
else
foo=&(msg->first_line.u.request.uri);
print_len=snprintf(buf+fix_len, MAX_WARNING_LEN-fix_len,
- "pid=%d req_src_ip=%s in_uri=%.*s out_uri=%.*s via_cnt%c=%d\"",
+ "pid=%d req_src_ip=%s req_src_port=%d in_uri=%.*s out_uri=%.*s
via_cnt%c=%d\"",
my_pid(),
ip_addr2a(&msg->src_ip),
+ msg->src_port_no,
msg->first_line.u.request.uri.len, msg->first_line.u.request.uri.s,
foo->len, foo->s,
msg->parsed_flag & HDR_EOH ? '=' : '>', /* should be = */
--- receive.c.orig Thu Oct 3 23:06:10 2002
+++ receive.c Wed Jan 8 22:39:46 2003
@@ -77,6 +77,7 @@
useful as most of the work is done with scrath-pad; -jiri */
buf[len]=0;
su2ip_addr(&msg->src_ip, src_su);
+ msg->src_port_no=su2port_no(src_su);
msg->dst_ip=bind_address->address; /* won't work if listening on 0.0.0.0 */
msg->id=msg_no;
/* make a copy of the message */