mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-06-02 19:40:08 +00:00
Fri Mar 7 11:47:06 EST 2008 Pekka.Pessi@nokia.com
* tport: allow using TPTAG_LOG() and TPTAG_DUMP() with tport_set_params(). git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7824 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
1073925bb4
commit
222fcbddb7
@ -532,7 +532,6 @@ tport_t *tport_tcreate(tp_stack_t *stack,
|
|||||||
ta_start(ta, tag, value);
|
ta_start(ta, tag, value);
|
||||||
|
|
||||||
tport_set_params(mr->mr_master, ta_tags(ta));
|
tport_set_params(mr->mr_master, ta_tags(ta));
|
||||||
tport_open_log(mr, ta_args(ta));
|
|
||||||
|
|
||||||
#if HAVE_SOFIA_STUN
|
#if HAVE_SOFIA_STUN
|
||||||
tport_init_stun_server(mr, ta_args(ta));
|
tport_init_stun_server(mr, ta_args(ta));
|
||||||
@ -1233,7 +1232,7 @@ int tport_set_params(tport_t *self,
|
|||||||
tag_type_t tag, tag_value_t value, ...)
|
tag_type_t tag, tag_value_t value, ...)
|
||||||
{
|
{
|
||||||
ta_list ta;
|
ta_list ta;
|
||||||
int n;
|
int n, m = 0;
|
||||||
tport_params_t tpp[1], *tpp0;
|
tport_params_t tpp[1], *tpp0;
|
||||||
|
|
||||||
usize_t mtu;
|
usize_t mtu;
|
||||||
@ -1272,10 +1271,13 @@ int tport_set_params(tport_t *self,
|
|||||||
TPTAG_TOS_REF(tpp->tpp_tos),
|
TPTAG_TOS_REF(tpp->tpp_tos),
|
||||||
TAG_END());
|
TAG_END());
|
||||||
|
|
||||||
|
if (self == (tport_t *)self->tp_master)
|
||||||
|
m = tport_open_log(self->tp_master, ta_args(ta));
|
||||||
|
|
||||||
ta_end(ta);
|
ta_end(ta);
|
||||||
|
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
return 0;
|
return m;
|
||||||
|
|
||||||
if (tpp->tpp_idle > 0 && tpp->tpp_idle < 100)
|
if (tpp->tpp_idle > 0 && tpp->tpp_idle < 100)
|
||||||
tpp->tpp_idle = 100;
|
tpp->tpp_idle = 100;
|
||||||
@ -1314,7 +1316,7 @@ int tport_set_params(tport_t *self,
|
|||||||
if (tport_is_secondary(self))
|
if (tport_is_secondary(self))
|
||||||
tport_set_secondary_timer(self);
|
tport_set_secondary_timer(self);
|
||||||
|
|
||||||
return n;
|
return n + m;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern tport_vtable_t const tport_udp_vtable;
|
extern tport_vtable_t const tport_udp_vtable;
|
||||||
@ -4260,6 +4262,7 @@ tport_t *tport_next(tport_t const *self)
|
|||||||
return NULL;
|
return NULL;
|
||||||
else if (tport_is_master(self))
|
else if (tport_is_master(self))
|
||||||
return ((tport_master_t *)self)->mr_primaries->pri_primary;
|
return ((tport_master_t *)self)->mr_primaries->pri_primary;
|
||||||
|
|
||||||
else if (tport_is_primary(self))
|
else if (tport_is_primary(self))
|
||||||
return ((tport_primary_t *)self)->pri_next->pri_primary;
|
return ((tport_primary_t *)self)->pri_next->pri_primary;
|
||||||
else
|
else
|
||||||
|
@ -283,9 +283,9 @@ struct tport_master {
|
|||||||
|
|
||||||
/**< Timer reclaiming unused connections and compartment */
|
/**< Timer reclaiming unused connections and compartment */
|
||||||
su_timer_t *mr_timer;
|
su_timer_t *mr_timer;
|
||||||
/** File to dump received and sent data */
|
/** FILE to dump received and sent data */
|
||||||
FILE *mr_dump_file;
|
FILE *mr_dump_file;
|
||||||
|
char *mr_dump; /**< Filename for dumping received/sent data */
|
||||||
tport_primary_t *mr_primaries; /**< List of primary contacts */
|
tport_primary_t *mr_primaries; /**< List of primary contacts */
|
||||||
|
|
||||||
tport_params_t mr_params[1];
|
tport_params_t mr_params[1];
|
||||||
@ -453,7 +453,7 @@ int tport_recv_error_report(tport_t *self);
|
|||||||
void tport_error_report(tport_t *self, int errcode,
|
void tport_error_report(tport_t *self, int errcode,
|
||||||
su_sockaddr_t const *addr);
|
su_sockaddr_t const *addr);
|
||||||
|
|
||||||
void tport_open_log(tport_master_t *mr, tagi_t *tags);
|
int tport_open_log(tport_master_t *mr, tagi_t *tags);
|
||||||
void tport_log_msg(tport_t *tp, msg_t *msg, char const *what,
|
void tport_log_msg(tport_t *tp, msg_t *msg, char const *what,
|
||||||
char const *via, su_time_t now);
|
char const *via, su_time_t now);
|
||||||
void tport_dump_iovec(tport_t const *self, msg_t *msg,
|
void tport_dump_iovec(tport_t const *self, msg_t *msg,
|
||||||
|
@ -94,30 +94,43 @@ su_log_t tport_log[] = {
|
|||||||
|
|
||||||
|
|
||||||
/** Initialize logging. */
|
/** Initialize logging. */
|
||||||
void tport_open_log(tport_master_t *mr, tagi_t *tags)
|
int tport_open_log(tport_master_t *mr, tagi_t *tags)
|
||||||
{
|
{
|
||||||
char const *log = NULL;
|
int log_msg = mr->mr_log != 0;
|
||||||
int log_msg = 0;
|
char const *dump = NULL;
|
||||||
|
int n;
|
||||||
|
|
||||||
tl_gets(tags, TPTAG_LOG_REF(log_msg), TAG_END());
|
n = tl_gets(tags,
|
||||||
|
TPTAG_LOG_REF(log_msg),
|
||||||
|
TPTAG_DUMP_REF(dump),
|
||||||
|
TAG_END());
|
||||||
|
|
||||||
if (getenv("MSG_STREAM_LOG") != NULL || getenv("TPORT_LOG") != NULL)
|
if (getenv("MSG_STREAM_LOG") != NULL || getenv("TPORT_LOG") != NULL)
|
||||||
log_msg = 1;
|
log_msg = 1;
|
||||||
|
|
||||||
mr->mr_log = log_msg ? MSG_DO_EXTRACT_COPY : 0;
|
mr->mr_log = log_msg ? MSG_DO_EXTRACT_COPY : 0;
|
||||||
|
|
||||||
tl_gets(tags, TPTAG_DUMP_REF(log), TAG_END());
|
|
||||||
|
|
||||||
if (getenv("MSG_DUMP"))
|
if (getenv("MSG_DUMP"))
|
||||||
log = getenv("MSG_DUMP");
|
dump = getenv("MSG_DUMP");
|
||||||
if (getenv("TPORT_DUMP"))
|
if (getenv("TPORT_DUMP"))
|
||||||
log = getenv("TPORT_DUMP");
|
dump = getenv("TPORT_DUMP");
|
||||||
|
|
||||||
if (log) {
|
if (dump) {
|
||||||
time_t now;
|
time_t now;
|
||||||
|
char *dumpname;
|
||||||
|
|
||||||
if (strcmp(log, "-"))
|
if (mr->mr_dump && strcmp(dump, mr->mr_dump) == 0)
|
||||||
mr->mr_dump_file = fopen(log, "ab"); /* XXX */
|
return n;
|
||||||
|
dumpname = su_strdup(mr->mr_home, dump);
|
||||||
|
if (dumpname == NULL)
|
||||||
|
return n;
|
||||||
|
su_free(mr->mr_home, mr->mr_dump);
|
||||||
|
mr->mr_dump = dumpname;
|
||||||
|
|
||||||
|
if (mr->mr_dump_file && mr->mr_dump_file != stdout)
|
||||||
|
fclose(mr->mr_dump_file), mr->mr_dump_file = NULL;
|
||||||
|
|
||||||
|
if (strcmp(dumpname, "-"))
|
||||||
|
mr->mr_dump_file = fopen(dumpname, "ab"); /* XXX */
|
||||||
else
|
else
|
||||||
mr->mr_dump_file = stdout;
|
mr->mr_dump_file = stdout;
|
||||||
|
|
||||||
@ -126,6 +139,8 @@ void tport_open_log(tport_master_t *mr, tagi_t *tags)
|
|||||||
fprintf(mr->mr_dump_file, "dump started at %s\n\n", ctime(&now));
|
fprintf(mr->mr_dump_file, "dump started at %s\n\n", ctime(&now));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Create log stamp */
|
/** Create log stamp */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user