diff options
Diffstat (limited to 'channels/chan_multicast_rtp.c')
-rw-r--r-- | channels/chan_multicast_rtp.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/channels/chan_multicast_rtp.c b/channels/chan_multicast_rtp.c index 24c073215..f385d4467 100644 --- a/channels/chan_multicast_rtp.c +++ b/channels/chan_multicast_rtp.c @@ -111,7 +111,8 @@ static struct ast_channel *multicast_rtp_request(const char *type, format_t form { char *tmp = ast_strdupa(data), *multicast_type = tmp, *destination, *control; struct ast_rtp_instance *instance; - struct sockaddr_in control_address = { .sin_family = AF_INET, }, destination_address = { .sin_family = AF_INET, }; + struct ast_sockaddr control_address; + struct ast_sockaddr destination_address; struct ast_channel *chan; format_t fmt = ast_best_codec(format); @@ -125,13 +126,15 @@ static struct ast_channel *multicast_rtp_request(const char *type, format_t form } *destination++ = '\0'; - if (ast_parse_arg(destination, PARSE_INADDR | PARSE_PORT_REQUIRE, &destination_address)) { + if (!ast_sockaddr_parse(&destination_address, destination, + PARSE_PORT_REQUIRE)) { goto failure; } if ((control = strchr(destination, '/'))) { *control++ = '\0'; - if (ast_parse_arg(control, PARSE_INADDR | PARSE_PORT_REQUIRE, &control_address)) { + if (!ast_sockaddr_parse(&control_address, control, + PARSE_PORT_REQUIRE)) { goto failure; } } |