when writing scripts like this
listen=tcp:192.168.1.100:8080
tcp_connection_lifetime=1200
tcp_no_new_conn_bflag=6
...
the variable tcp_no_new_conn_bflag will be not correctly set to number 6. This
is because in cfg.y,
| TCP_NO_NEW_CONN_BFLAG EQUAL NUMBER {
#ifdef USE_TCP
fix_flag_name(&tmp, $3);
tcp_no_new_conn_bflag =
get_flag_id_by_name(FLAG_TYPE_BRANCH, tmp);
if (!flag_in_range(
(flag_t)tcp_no_new_conn_bflag ) )
yyerror("invalid TCP no_new_conn Branch
Flag");
flag_idx2mask( &tcp_no_new_conn_bflag );
the number flag will be converted to string by macro "fix_flag_name". The macro
“fix_flag_name” was defined as
#define fix_flag_name(_s, _flag) \
do { \
if (!*_s && _flag > 0) { \
LM_WARN("Integer flags are now deprecated! " \
"Use unique quoted strings!\n"); \
*_s = int2str(_flag, NULL); \
} \
} while (0)
in flags.h. It is executed only when tmp is pointing to a null string. But the
global variable tmp is used to store listening IP address in cfg.y
listen_id: ip { tmp=ip_addr2a($1);
So please use a new variable for converting number to string.
---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/issues/229_______________________________________________
Devel mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel