summaryrefslogtreecommitdiff
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-11-30 19:34:47 +0000
committerRussell Bryant <russell@russellbryant.com>2007-11-30 19:34:47 +0000
commitfac74808203c697677a87d34ccc409a3fe203a95 (patch)
tree7a9b4cd5fcd7c6762668e03902ccc2b5f07e8343 /channels/chan_iax2.c
parent45f98e541997648441c9c33175ddb7ef48f96ab2 (diff)
Merged revisions 90348 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r90348 | russell | 2007-11-30 13:26:04 -0600 (Fri, 30 Nov 2007) | 8 lines Change the behavior of ao2_link(). Previously, in inherited a reference. Now, it automatically increases the reference count to reflect the reference that is now held by the container. This was done to be more consistent with ao2_unlink(), which automatically releases the reference held by the container. It also makes it so it is no longer possible for a pointer to be invalid after ao2_link() returns. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90351 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r--channels/chan_iax2.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 60e52370f..66ee8ff74 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -3014,7 +3014,7 @@ static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in
if (peer->expire == -1)
peer_unref(peer);
}
- ao2_link(peers, peer_ref(peer));
+ ao2_link(peers, peer);
if (ast_test_flag(peer, IAX_DYNAMIC))
reg_source_db(peer);
} else {
@@ -3069,7 +3069,7 @@ static struct iax2_user *realtime_user(const char *username)
if (ast_test_flag((&globalflags), IAX_RTCACHEFRIENDS)) {
ast_set_flag(user, IAX_RTCACHEFRIENDS);
- ao2_link(users, user_ref(user));
+ ao2_link(users, user);
} else {
ast_set_flag(user, IAX_TEMPONLY);
}
@@ -10695,14 +10695,14 @@ static int set_config(char *config_file, int reload)
user = build_user(cat, gen, ast_variable_browse(ucfg, cat), 0);
if (user) {
ao2_link(users, user);
- user = NULL;
+ user = user_unref(user);
}
peer = build_peer(cat, gen, ast_variable_browse(ucfg, cat), 0);
if (peer) {
if (ast_test_flag(peer, IAX_DYNAMIC))
reg_source_db(peer);
ao2_link(peers, peer);
- peer = NULL;
+ peer = peer_unref(peer);
}
}
if (ast_true(registeriax) || (!registeriax && genregisteriax)) {
@@ -10739,7 +10739,7 @@ static int set_config(char *config_file, int reload)
user = build_user(cat, ast_variable_browse(cfg, cat), NULL, 0);
if (user) {
ao2_link(users, user);
- user = NULL;
+ user = user_unref(user);
}
}
if (!strcasecmp(utype, "peer") || !strcasecmp(utype, "friend")) {
@@ -10748,7 +10748,7 @@ static int set_config(char *config_file, int reload)
if (ast_test_flag(peer, IAX_DYNAMIC))
reg_source_db(peer);
ao2_link(peers, peer);
- peer = NULL;
+ peer = peer_unref(peer);
}
} else if (strcasecmp(utype, "user")) {
ast_log(LOG_WARNING, "Unknown type '%s' for '%s' in %s\n", utype, cat, config_file);