Commit 0fdd03c4 authored by Philip Withnall's avatar Philip Withnall

agent: Add missing preconditions to public API

Makes things a little bit safer to abuse.
parent 6a5ae86a
...@@ -2357,6 +2357,9 @@ nice_agent_add_stream ( ...@@ -2357,6 +2357,9 @@ nice_agent_add_stream (
guint ret = 0; guint ret = 0;
guint i; guint i;
g_return_val_if_fail (NICE_IS_AGENT (agent), 0);
g_return_val_if_fail (n_components >= 1, 0);
agent_lock(); agent_lock();
stream = stream_new (n_components, agent); stream = stream_new (n_components, agent);
...@@ -2397,6 +2400,9 @@ nice_agent_set_relay_info(NiceAgent *agent, ...@@ -2397,6 +2400,9 @@ nice_agent_set_relay_info(NiceAgent *agent,
gboolean ret = TRUE; gboolean ret = TRUE;
TurnServer *turn; TurnServer *turn;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id >= 1, FALSE);
g_return_val_if_fail (component_id >= 1, FALSE);
g_return_val_if_fail (server_ip, FALSE); g_return_val_if_fail (server_ip, FALSE);
g_return_val_if_fail (server_port, FALSE); g_return_val_if_fail (server_port, FALSE);
g_return_val_if_fail (username, FALSE); g_return_val_if_fail (username, FALSE);
...@@ -2611,6 +2617,9 @@ nice_agent_gather_candidates ( ...@@ -2611,6 +2617,9 @@ nice_agent_gather_candidates (
GSList *local_addresses = NULL; GSList *local_addresses = NULL;
gboolean ret = TRUE; gboolean ret = TRUE;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id >= 1, FALSE);
agent_lock(); agent_lock();
stream = agent_find_stream (agent, stream_id); stream = agent_find_stream (agent, stream_id);
...@@ -2931,6 +2940,9 @@ nice_agent_remove_stream ( ...@@ -2931,6 +2940,9 @@ nice_agent_remove_stream (
Stream *stream; Stream *stream;
g_return_if_fail (NICE_IS_AGENT (agent));
g_return_if_fail (stream_id >= 1);
agent_lock(); agent_lock();
stream = agent_find_stream (agent, stream_id); stream = agent_find_stream (agent, stream_id);
...@@ -2971,6 +2983,10 @@ nice_agent_set_port_range (NiceAgent *agent, guint stream_id, guint component_id ...@@ -2971,6 +2983,10 @@ nice_agent_set_port_range (NiceAgent *agent, guint stream_id, guint component_id
Stream *stream; Stream *stream;
Component *component; Component *component;
g_return_if_fail (NICE_IS_AGENT (agent));
g_return_if_fail (stream_id >= 1);
g_return_if_fail (component_id >= 1);
agent_lock(); agent_lock();
if (agent_find_component (agent, stream_id, component_id, &stream, if (agent_find_component (agent, stream_id, component_id, &stream,
...@@ -2991,6 +3007,9 @@ nice_agent_add_local_address (NiceAgent *agent, NiceAddress *addr) ...@@ -2991,6 +3007,9 @@ nice_agent_add_local_address (NiceAgent *agent, NiceAddress *addr)
{ {
NiceAddress *dupaddr; NiceAddress *dupaddr;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (addr != NULL, FALSE);
agent_lock(); agent_lock();
dupaddr = nice_address_dup (addr); dupaddr = nice_address_dup (addr);
...@@ -3120,6 +3139,9 @@ nice_agent_set_remote_credentials ( ...@@ -3120,6 +3139,9 @@ nice_agent_set_remote_credentials (
Stream *stream; Stream *stream;
gboolean ret = FALSE; gboolean ret = FALSE;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id >= 1, FALSE);
agent_lock(); agent_lock();
stream = agent_find_stream (agent, stream_id); stream = agent_find_stream (agent, stream_id);
...@@ -3148,6 +3170,9 @@ nice_agent_get_local_credentials ( ...@@ -3148,6 +3170,9 @@ nice_agent_get_local_credentials (
Stream *stream; Stream *stream;
gboolean ret = TRUE; gboolean ret = TRUE;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id >= 1, FALSE);
agent_lock(); agent_lock();
stream = agent_find_stream (agent, stream_id); stream = agent_find_stream (agent, stream_id);
...@@ -3216,6 +3241,10 @@ nice_agent_set_remote_candidates (NiceAgent *agent, guint stream_id, guint compo ...@@ -3216,6 +3241,10 @@ nice_agent_set_remote_candidates (NiceAgent *agent, guint stream_id, guint compo
Stream *stream; Stream *stream;
Component *component; Component *component;
g_return_val_if_fail (NICE_IS_AGENT (agent), 0);
g_return_val_if_fail (stream_id >= 1, 0);
g_return_val_if_fail (component_id >= 1, 0);
nice_debug ("Agent %p: set_remote_candidates %d %d", agent, stream_id, component_id); nice_debug ("Agent %p: set_remote_candidates %d %d", agent, stream_id, component_id);
agent_lock(); agent_lock();
...@@ -4171,6 +4200,13 @@ nice_agent_recv (NiceAgent *agent, guint stream_id, guint component_id, ...@@ -4171,6 +4200,13 @@ nice_agent_recv (NiceAgent *agent, guint stream_id, guint component_id,
GInputVector local_bufs = { buf, buf_len }; GInputVector local_bufs = { buf, buf_len };
NiceInputMessage local_messages = { &local_bufs, 1, NULL, 0 }; NiceInputMessage local_messages = { &local_bufs, 1, NULL, 0 };
g_return_val_if_fail (NICE_IS_AGENT (agent), -1);
g_return_val_if_fail (stream_id >= 1, -1);
g_return_val_if_fail (component_id >= 1, -1);
g_return_val_if_fail (buf != NULL || buf_len == 0, -1);
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), -1);
g_return_val_if_fail (error == NULL || *error == NULL, -1);
if (buf_len > G_MAXSSIZE) { if (buf_len > G_MAXSSIZE) {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
"The buffer length can't exceed G_MAXSSIZE: %" G_GSSIZE_FORMAT, "The buffer length can't exceed G_MAXSSIZE: %" G_GSSIZE_FORMAT,
...@@ -4205,6 +4241,13 @@ nice_agent_recv_nonblocking (NiceAgent *agent, guint stream_id, ...@@ -4205,6 +4241,13 @@ nice_agent_recv_nonblocking (NiceAgent *agent, guint stream_id,
GInputVector local_bufs = { buf, buf_len }; GInputVector local_bufs = { buf, buf_len };
NiceInputMessage local_messages = { &local_bufs, 1, NULL, 0 }; NiceInputMessage local_messages = { &local_bufs, 1, NULL, 0 };
g_return_val_if_fail (NICE_IS_AGENT (agent), -1);
g_return_val_if_fail (stream_id >= 1, -1);
g_return_val_if_fail (component_id >= 1, -1);
g_return_val_if_fail (buf != NULL || buf_len == 0, -1);
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), -1);
g_return_val_if_fail (error == NULL || *error == NULL, -1);
if (buf_len > G_MAXSSIZE) { if (buf_len > G_MAXSSIZE) {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
"The buffer length can't exceed G_MAXSSIZE: %" G_GSSIZE_FORMAT, "The buffer length can't exceed G_MAXSSIZE: %" G_GSSIZE_FORMAT,
...@@ -4488,6 +4531,10 @@ nice_agent_get_local_candidates ( ...@@ -4488,6 +4531,10 @@ nice_agent_get_local_candidates (
GSList * ret = NULL; GSList * ret = NULL;
GSList * item = NULL; GSList * item = NULL;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (stream_id >= 1, NULL);
g_return_val_if_fail (component_id >= 1, NULL);
agent_lock(); agent_lock();
if (!agent_find_component (agent, stream_id, component_id, NULL, &component)) { if (!agent_find_component (agent, stream_id, component_id, NULL, &component)) {
...@@ -4512,6 +4559,10 @@ nice_agent_get_remote_candidates ( ...@@ -4512,6 +4559,10 @@ nice_agent_get_remote_candidates (
Component *component; Component *component;
GSList *ret = NULL, *item = NULL; GSList *ret = NULL, *item = NULL;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (stream_id >= 1, NULL);
g_return_val_if_fail (component_id >= 1, NULL);
agent_lock(); agent_lock();
if (!agent_find_component (agent, stream_id, component_id, NULL, &component)) if (!agent_find_component (agent, stream_id, component_id, NULL, &component))
{ {
...@@ -4881,6 +4932,10 @@ nice_agent_attach_recv ( ...@@ -4881,6 +4932,10 @@ nice_agent_attach_recv (
Stream *stream = NULL; Stream *stream = NULL;
gboolean ret = FALSE; gboolean ret = FALSE;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id >= 1, FALSE);
g_return_val_if_fail (component_id >= 1, FALSE);
agent_lock(); agent_lock();
/* attach candidates */ /* attach candidates */
...@@ -4930,6 +4985,12 @@ nice_agent_set_selected_pair ( ...@@ -4930,6 +4985,12 @@ nice_agent_set_selected_pair (
CandidatePair pair; CandidatePair pair;
gboolean ret = FALSE; gboolean ret = FALSE;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id >= 1, FALSE);
g_return_val_if_fail (component_id >= 1, FALSE);
g_return_val_if_fail (lfoundation, FALSE);
g_return_val_if_fail (rfoundation, FALSE);
agent_lock(); agent_lock();
/* step: check that params specify an existing pair */ /* step: check that params specify an existing pair */
...@@ -4975,6 +5036,12 @@ nice_agent_get_selected_pair (NiceAgent *agent, guint stream_id, ...@@ -4975,6 +5036,12 @@ nice_agent_get_selected_pair (NiceAgent *agent, guint stream_id,
Stream *stream; Stream *stream;
gboolean ret = FALSE; gboolean ret = FALSE;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id >= 1, FALSE);
g_return_val_if_fail (component_id >= 1, FALSE);
g_return_val_if_fail (local != NULL, FALSE);
g_return_val_if_fail (remote != NULL, FALSE);
agent_lock(); agent_lock();
/* step: check that params specify an existing pair */ /* step: check that params specify an existing pair */
...@@ -5003,6 +5070,10 @@ nice_agent_get_selected_socket (NiceAgent *agent, guint stream_id, ...@@ -5003,6 +5070,10 @@ nice_agent_get_selected_socket (NiceAgent *agent, guint stream_id,
NiceSocket *nice_socket; NiceSocket *nice_socket;
GSocket *g_socket = NULL; GSocket *g_socket = NULL;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (stream_id >= 1, NULL);
g_return_val_if_fail (component_id >= 1, NULL);
agent_lock(); agent_lock();
/* Reliable streams are pseudotcp or MUST use RFC 4571 framing */ /* Reliable streams are pseudotcp or MUST use RFC 4571 framing */
...@@ -5086,11 +5157,6 @@ nice_agent_set_selected_remote_candidate ( ...@@ -5086,11 +5157,6 @@ nice_agent_set_selected_remote_candidate (
g_return_val_if_fail (component_id != 0, FALSE); g_return_val_if_fail (component_id != 0, FALSE);
g_return_val_if_fail (candidate != NULL, FALSE); g_return_val_if_fail (candidate != NULL, FALSE);
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id != 0, FALSE);
g_return_val_if_fail (component_id != 0, FALSE);
g_return_val_if_fail (candidate != NULL, FALSE);
agent_lock(); agent_lock();
/* step: check if the component exists*/ /* step: check if the component exists*/
...@@ -5166,6 +5232,9 @@ nice_agent_set_stream_tos (NiceAgent *agent, ...@@ -5166,6 +5232,9 @@ nice_agent_set_stream_tos (NiceAgent *agent,
GSList *i, *j; GSList *i, *j;
Stream *stream; Stream *stream;
g_return_if_fail (NICE_IS_AGENT (agent));
g_return_if_fail (stream_id >= 1);
agent_lock(); agent_lock();
stream = agent_find_stream (agent, stream_id); stream = agent_find_stream (agent, stream_id);
...@@ -5190,6 +5259,8 @@ nice_agent_set_stream_tos (NiceAgent *agent, ...@@ -5190,6 +5259,8 @@ nice_agent_set_stream_tos (NiceAgent *agent,
NICEAPI_EXPORT void NICEAPI_EXPORT void
nice_agent_set_software (NiceAgent *agent, const gchar *software) nice_agent_set_software (NiceAgent *agent, const gchar *software)
{ {
g_return_if_fail (NICE_IS_AGENT (agent));
agent_lock(); agent_lock();
g_free (agent->software_attribute); g_free (agent->software_attribute);
...@@ -5210,6 +5281,9 @@ nice_agent_set_stream_name (NiceAgent *agent, guint stream_id, ...@@ -5210,6 +5281,9 @@ nice_agent_set_stream_name (NiceAgent *agent, guint stream_id,
GSList *i; GSList *i;
gboolean ret = FALSE; gboolean ret = FALSE;
g_return_val_if_fail (NICE_IS_AGENT (agent), FALSE);
g_return_val_if_fail (stream_id >= 1, FALSE);
agent_lock(); agent_lock();
if (name != NULL) { if (name != NULL) {
...@@ -5244,6 +5318,9 @@ nice_agent_get_stream_name (NiceAgent *agent, guint stream_id) ...@@ -5244,6 +5318,9 @@ nice_agent_get_stream_name (NiceAgent *agent, guint stream_id)
Stream *stream; Stream *stream;
gchar *name = NULL; gchar *name = NULL;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (stream_id >= 1, NULL);
agent_lock(); agent_lock();
stream = agent_find_stream (agent, stream_id); stream = agent_find_stream (agent, stream_id);
...@@ -5310,6 +5387,10 @@ nice_agent_get_default_local_candidate (NiceAgent *agent, ...@@ -5310,6 +5387,10 @@ nice_agent_get_default_local_candidate (NiceAgent *agent,
Component *component = NULL; Component *component = NULL;
NiceCandidate *default_candidate = NULL; NiceCandidate *default_candidate = NULL;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (stream_id >= 1, NULL);
g_return_val_if_fail (component_id >= 1, NULL);
agent_lock (); agent_lock ();
/* step: check if the component exists*/ /* step: check if the component exists*/
...@@ -5464,6 +5545,8 @@ nice_agent_generate_local_sdp (NiceAgent *agent) ...@@ -5464,6 +5545,8 @@ nice_agent_generate_local_sdp (NiceAgent *agent)
GString * sdp = g_string_new (NULL); GString * sdp = g_string_new (NULL);
GSList *i; GSList *i;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
agent_lock(); agent_lock();
for (i = agent->streams; i; i = i->next) { for (i = agent->streams; i; i = i->next) {
...@@ -5485,6 +5568,9 @@ nice_agent_generate_local_stream_sdp (NiceAgent *agent, guint stream_id, ...@@ -5485,6 +5568,9 @@ nice_agent_generate_local_stream_sdp (NiceAgent *agent, guint stream_id,
gchar *ret = NULL; gchar *ret = NULL;
Stream *stream; Stream *stream;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (stream_id >= 1, NULL);
agent_lock(); agent_lock();
stream = agent_find_stream (agent, stream_id); stream = agent_find_stream (agent, stream_id);
...@@ -5507,7 +5593,8 @@ nice_agent_generate_local_candidate_sdp (NiceAgent *agent, ...@@ -5507,7 +5593,8 @@ nice_agent_generate_local_candidate_sdp (NiceAgent *agent,
{ {
GString *sdp = NULL; GString *sdp = NULL;
g_return_val_if_fail(candidate, NULL); g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (candidate != NULL, NULL);
agent_lock(); agent_lock();
...@@ -5528,6 +5615,9 @@ nice_agent_parse_remote_sdp (NiceAgent *agent, const gchar *sdp) ...@@ -5528,6 +5615,9 @@ nice_agent_parse_remote_sdp (NiceAgent *agent, const gchar *sdp)
gint i; gint i;
gint ret = 0; gint ret = 0;
g_return_val_if_fail (NICE_IS_AGENT (agent), -1);
g_return_val_if_fail (sdp != NULL, -1);
agent_lock(); agent_lock();
for (l = agent->streams; l; l = l->next) { for (l = agent->streams; l; l = l->next) {
...@@ -5622,6 +5712,10 @@ nice_agent_parse_remote_stream_sdp (NiceAgent *agent, guint stream_id, ...@@ -5622,6 +5712,10 @@ nice_agent_parse_remote_stream_sdp (NiceAgent *agent, guint stream_id,
GSList *candidates = NULL; GSList *candidates = NULL;
gint i; gint i;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (stream_id >= 1, NULL);
g_return_val_if_fail (sdp != NULL, NULL);
agent_lock(); agent_lock();
stream = agent_find_stream (agent, stream_id); stream = agent_find_stream (agent, stream_id);
...@@ -5679,6 +5773,10 @@ nice_agent_parse_remote_candidate_sdp (NiceAgent *agent, guint stream_id, ...@@ -5679,6 +5773,10 @@ nice_agent_parse_remote_candidate_sdp (NiceAgent *agent, guint stream_id,
NiceCandidateTransport ctransport; NiceCandidateTransport ctransport;
guint i; guint i;
g_return_val_if_fail (NICE_IS_AGENT (agent), NULL);
g_return_val_if_fail (stream_id >= 1, NULL);
g_return_val_if_fail (sdp != NULL, NULL);
if (!g_str_has_prefix (sdp, "a=candidate:")) if (!g_str_has_prefix (sdp, "a=candidate:"))
goto done; goto done;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment