diff options
-rw-r--r-- | channels/chan_console.c | 2 | ||||
-rw-r--r-- | channels/chan_sip.c | 11 | ||||
-rw-r--r-- | channels/chan_skinny.c | 6 | ||||
-rw-r--r-- | main/bridge.c | 2 | ||||
-rw-r--r-- | main/manager_system.c | 9 | ||||
-rw-r--r-- | main/stdtime/localtime.c | 46 | ||||
-rw-r--r-- | main/translate.c | 5 | ||||
-rw-r--r-- | main/utils.c | 2 | ||||
-rw-r--r-- | main/xmldoc.c | 6 | ||||
-rw-r--r-- | res/res_config_ldap.c | 4 | ||||
-rw-r--r-- | res/res_rtp_asterisk.c | 4 |
11 files changed, 38 insertions, 59 deletions
diff --git a/channels/chan_console.c b/channels/chan_console.c index 02d68870b..d7a72138d 100644 --- a/channels/chan_console.c +++ b/channels/chan_console.c @@ -1235,7 +1235,7 @@ static char *cli_console_active(struct ast_cli_entry *e, int cmd, struct ast_cli return CLI_SUCCESS; } - if (!(pvt = find_pvt(a->argv[e->args - 1]))) { + if (!(pvt = find_pvt(a->argv[e->args]))) { ast_cli(a->fd, "Could not find a device called '%s'.\n", a->argv[e->args]); return CLI_FAILURE; } diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 522e9d1d6..e6e82db46 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -23168,6 +23168,8 @@ static void change_redirecting_information(struct sip_pvt *p, struct sip_request redirecting->from.number.valid = 1; ast_free(redirecting->from.number.str); redirecting->from.number.str = redirecting_from_number; + } else { + ast_free(redirecting_from_number); } if (!ast_strlen_zero(redirecting_from_name)) { ast_debug(3, "Got redirecting from name %s\n", redirecting_from_name); @@ -23175,6 +23177,8 @@ static void change_redirecting_information(struct sip_pvt *p, struct sip_request redirecting->from.name.valid = 1; ast_free(redirecting->from.name.str); redirecting->from.name.str = redirecting_from_name; + } else { + ast_free(redirecting_from_name); } if (!ast_strlen_zero(p->cid_tag)) { ast_free(redirecting->from.tag); @@ -23188,13 +23192,17 @@ static void change_redirecting_information(struct sip_pvt *p, struct sip_request redirecting->to.number.valid = 1; ast_free(redirecting->to.number.str); redirecting->to.number.str = redirecting_to_number; + } else { + ast_free(redirecting_to_number); } if (!ast_strlen_zero(redirecting_to_name)) { - ast_debug(3, "Got redirecting to name %s\n", redirecting_from_number); + ast_debug(3, "Got redirecting to name %s\n", redirecting_to_name); update_redirecting->to.name = 1; redirecting->to.name.valid = 1; ast_free(redirecting->to.name.str); redirecting->to.name.str = redirecting_to_name; + } else { + ast_free(redirecting_to_name); } redirecting->reason.code = reason; ast_free(redirecting->reason.str); @@ -24223,6 +24231,7 @@ static void handle_response_subscribe(struct sip_pvt *p, int resp, const char *r ast_cc_monitor_failed(monitor_instance->core_id, monitor_instance->device_name, "Received error response to our SUBSCRIBE"); + ao2_ref(monitor_instance, -1); } return; } diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index ccf6a9464..97634bcbc 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -4756,15 +4756,19 @@ static void start_rtp(struct skinny_subchannel *sub) { struct skinny_line *l = sub->line; struct skinny_device *d = l->device; +#if 0 int hasvideo = 0; +#endif struct ast_sockaddr bindaddr_tmp; skinny_locksub(sub); SKINNY_DEBUG(DEBUG_AUDIO, 3, "Sub %u - Starting RTP\n", sub->callid); ast_sockaddr_from_sin(&bindaddr_tmp, &bindaddr); sub->rtp = ast_rtp_instance_new("asterisk", sched, &bindaddr_tmp, NULL); +#if 0 if (hasvideo) sub->vrtp = ast_rtp_instance_new("asterisk", sched, &bindaddr_tmp, NULL); +#endif if (sub->rtp) { ast_rtp_instance_set_prop(sub->rtp, AST_RTP_PROPERTY_RTCP, 1); @@ -4778,11 +4782,13 @@ static void start_rtp(struct skinny_subchannel *sub) ast_channel_set_fd(sub->owner, 0, ast_rtp_instance_fd(sub->rtp, 0)); ast_channel_set_fd(sub->owner, 1, ast_rtp_instance_fd(sub->rtp, 1)); } +#if 0 if (hasvideo && sub->vrtp && sub->owner) { ast_rtp_instance_set_channel_id(sub->vrtp, ast_channel_uniqueid(sub->owner)); ast_channel_set_fd(sub->owner, 2, ast_rtp_instance_fd(sub->vrtp, 0)); ast_channel_set_fd(sub->owner, 3, ast_rtp_instance_fd(sub->vrtp, 1)); } +#endif if (sub->rtp) { ast_rtp_instance_set_qos(sub->rtp, qos.tos_audio, qos.cos_audio, "Skinny RTP"); ast_rtp_instance_set_prop(sub->rtp, AST_RTP_PROPERTY_NAT, l->nat); diff --git a/main/bridge.c b/main/bridge.c index f689b297f..5e065fb35 100644 --- a/main/bridge.c +++ b/main/bridge.c @@ -2495,6 +2495,8 @@ int ast_bridge_add_channel(struct ast_bridge *bridge, struct ast_channel *chan, RAII_VAR(struct ast_bridge *, chan_bridge, NULL, ao2_cleanup); RAII_VAR(struct ast_channel *, yanked_chan, NULL, ao2_cleanup); + ast_moh_stop(chan); + ast_channel_lock(chan); chan_bridge = ast_channel_get_bridge(chan); ast_channel_unlock(chan); diff --git a/main/manager_system.c b/main/manager_system.c index b852c52e6..7a4896a68 100644 --- a/main/manager_system.c +++ b/main/manager_system.c @@ -44,7 +44,6 @@ static void manager_system_shutdown(void) int manager_system_init(void) { - int ret = 0; struct stasis_topic *manager_topic; struct stasis_topic *system_topic; struct stasis_message_router *message_router; @@ -69,13 +68,5 @@ int manager_system_init(void) ast_register_cleanup(manager_system_shutdown); - /* If somehow we failed to add any routes, just shut down the whole - * thing and fail it. - */ - if (ret) { - manager_system_shutdown(); - return -1; - } - return 0; } diff --git a/main/stdtime/localtime.c b/main/stdtime/localtime.c index 5b5526e6f..64840e826 100644 --- a/main/stdtime/localtime.c +++ b/main/stdtime/localtime.c @@ -1508,16 +1508,14 @@ static int tzparse(const char *name, struct state *sp, const int lastditch) } } else { long theirstdoffset; - long theirdstoffset; long theiroffset; - int isdst; int i; int j; if (*name != '\0') return -1; /* - ** Initial values of theirstdoffset and theirdstoffset. + ** Initial values of theirstdoffset. */ theirstdoffset = 0; for (i = 0; i < sp->timecnt; ++i) { @@ -1528,19 +1526,6 @@ static int tzparse(const char *name, struct state *sp, const int lastditch) break; } } - theirdstoffset = 0; - for (i = 0; i < sp->timecnt; ++i) { - j = sp->types[i]; - if (sp->ttis[j].tt_isdst) { - theirdstoffset = - -sp->ttis[j].tt_gmtoff; - break; - } - } - /* - ** Initially we're assumed to be in standard time. - */ - isdst = FALSE; theiroffset = theirstdoffset; /* ** Now juggle transition times and types @@ -1552,32 +1537,13 @@ static int tzparse(const char *name, struct state *sp, const int lastditch) if (sp->ttis[j].tt_ttisgmt) { /* No adjustment to transition time */ } else { - /* - ** If summer time is in effect, and the - ** transition time was not specified as - ** standard time, add the summer time - ** offset to the transition time; - ** otherwise, add the standard time - ** offset to the transition time. - */ - /* - ** Transitions from DST to DDST - ** will effectively disappear since - ** POSIX provides for only one DST - ** offset. - */ - if (isdst && !sp->ttis[j].tt_ttisstd) { - sp->ats[i] += dstoffset - - theirdstoffset; - } else { - sp->ats[i] += stdoffset - - theirstdoffset; - } + /* Add the standard time offset to the transition time. */ + sp->ats[i] += stdoffset - theirstdoffset; } theiroffset = -sp->ttis[j].tt_gmtoff; - if (sp->ttis[j].tt_isdst) - theirdstoffset = theiroffset; - else theirstdoffset = theiroffset; + if (!sp->ttis[j].tt_isdst) { + theirstdoffset = theiroffset; + } } /* ** Finally, fill in ttis. diff --git a/main/translate.c b/main/translate.c index 4ffe27c33..0721f07b0 100644 --- a/main/translate.c +++ b/main/translate.c @@ -499,6 +499,7 @@ struct ast_trans_pvt *ast_translator_build_path(struct ast_format *dst, struct a ast_log(LOG_WARNING, "No translator path from %s to %s\n", ast_format_get_name(src), ast_format_get_name(dst)); AST_RWLIST_UNLOCK(&translators); + ast_translator_free_path(head); return NULL; } if ((t->dst_codec.sample_rate == ast_format_get_sample_rate(dst)) && (t->dst_codec.type == ast_format_get_type(dst))) { @@ -507,9 +508,7 @@ struct ast_trans_pvt *ast_translator_build_path(struct ast_format *dst, struct a if (!(cur = newpvt(t, explicit_dst))) { ast_log(LOG_WARNING, "Failed to build translator step from %s to %s\n", ast_format_get_name(src), ast_format_get_name(dst)); - if (head) { - ast_translator_free_path(head); - } + ast_translator_free_path(head); AST_RWLIST_UNLOCK(&translators); return NULL; } diff --git a/main/utils.c b/main/utils.c index 0b8dc7aeb..b4ecffd7e 100644 --- a/main/utils.c +++ b/main/utils.c @@ -2664,7 +2664,7 @@ void ast_set_default_eid(struct ast_eid *eid) unsigned char full_mac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; s = socket(AF_INET, SOCK_STREAM, 0); - if (s <= 0) { + if (s < 0) { ast_log(LOG_WARNING, "Unable to open socket for seeding global EID. " "You will have to set it manually.\n"); return; diff --git a/main/xmldoc.c b/main/xmldoc.c index da753cd15..5addb23b4 100644 --- a/main/xmldoc.c +++ b/main/xmldoc.c @@ -1413,7 +1413,7 @@ static int xmldoc_parse_example(struct ast_xml_node *fixnode, struct ast_str **b static int xmldoc_parse_specialtags(struct ast_xml_node *fixnode, const char *tabs, const char *posttabs, struct ast_str **buffer) { struct ast_xml_node *node = fixnode; - int ret = 0, i, count = 0; + int ret = 0, i; if (!node || !ast_xml_node_get_children(node)) { return ret; @@ -1440,8 +1440,8 @@ static int xmldoc_parse_specialtags(struct ast_xml_node *fixnode, const char *ta /* parse <para> elements inside special tags. */ for (node = ast_xml_node_get_children(node); node; node = ast_xml_node_get_next(node)) { /* first <para> just print it without tabs at the begining. */ - if ((xmldoc_parse_para(node, (!count ? "" : tabs), posttabs, buffer) == 2) - || (xmldoc_parse_info(node, (!count ? "": tabs), posttabs, buffer) == 2)) { + if ((xmldoc_parse_para(node, "", posttabs, buffer) == 2) + || (xmldoc_parse_info(node, "", posttabs, buffer) == 2)) { ret = 2; } } diff --git a/res/res_config_ldap.c b/res/res_config_ldap.c index a21aa31a8..c03b84967 100644 --- a/res/res_config_ldap.c +++ b/res/res_config_ldap.c @@ -311,8 +311,10 @@ static struct ast_variable *realtime_ldap_entry_to_var(struct ldap_table_config BerElement *ber = NULL; struct ast_variable *var = NULL; struct ast_variable *prev = NULL; +#if 0 int is_delimited = 0; int i = 0; +#endif char *ldap_attribute_name; struct berval *value; int pos = 0; @@ -340,6 +342,7 @@ static struct ast_variable *realtime_ldap_entry_to_var(struct ldap_table_config ast_debug(2, "md5: %s\n", valptr); } if (valptr) { +#if 0 /* ok, so looping through all delimited values except the last one (not, last character is not delimited...) */ if (is_delimited) { i = 0; @@ -360,6 +363,7 @@ static struct ast_variable *realtime_ldap_entry_to_var(struct ldap_table_config i++; } } +#endif /* for the last delimited value or if the value is not delimited: */ if (prev) { prev->next = ast_variable_new(attribute_name, &valptr[pos], table_config->table_name); diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index 230d147be..263dbff18 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -3247,7 +3247,9 @@ static int ast_rtp_destroy(struct ast_rtp_instance *instance) * entry at this point since it holds a reference to the * RTP instance while it's active. */ - close(rtp->rtcp->s); + if (rtp->rtcp->s > -1 && rtp->s != rtp->rtcp->s) { + close(rtp->rtcp->s); + } ast_free(rtp->rtcp->local_addr_str); ast_free(rtp->rtcp); } |