[Nice] [nice/master] Port test to use NiceCandidate

Olivier Crete olivier.crete at collabora.co.uk
Wed Nov 5 14:01:10 PST 2008


darcs-hash:20080426004621-3e2dc-1866ce52eb9ba0e2fb3c5560034e289d6b024e3e.gz
---
 agent/agent.c         |   25 ++++++--------
 agent/agent.h         |   12 -------
 agent/test-fallback.c |   26 ++++++---------
 agent/test-fullmode.c |   84 +++++++++++++++++++++----------------------------
 agent/test-restart.c  |   32 +++++++++----------
 5 files changed, 73 insertions(+), 106 deletions(-)

diff --git a/agent/agent.c b/agent/agent.c
index 249a394..bb87bfa 100644
--- a/agent/agent.c
+++ b/agent/agent.c
@@ -885,7 +885,7 @@ static gboolean priv_add_remote_candidate (
   guint component_id,
   NiceCandidateType type,
   const NiceAddress *addr,
-  const NiceAddress *related_addr,
+  const NiceAddress *base_addr,
   NiceCandidateTransport transport,
   guint32 priority,
   const gchar *username,
@@ -906,8 +906,8 @@ static gboolean priv_add_remote_candidate (
     g_debug("Update existing remote candidate %p.", candidate);
     /* case 1: an existing candidate, update the attributes */
     candidate->type = type;
-    if (related_addr)
-      candidate->base_addr = *related_addr;
+    if (base_addr)
+      candidate->base_addr = *base_addr;
     candidate->priority = priority;
     if (foundation)
       strncpy(candidate->foundation, foundation, NICE_CANDIDATE_MAX_FOUNDATION);
@@ -944,8 +944,8 @@ static gboolean priv_add_remote_candidate (
 	}
 #endif
 	
-	if (related_addr)
-	  candidate->base_addr = *related_addr;
+	if (base_addr)
+	  candidate->base_addr = *base_addr;
 	
 	candidate->transport = transport;
 	candidate->priority = priority;
@@ -1119,7 +1119,7 @@ nice_agent_add_remote_candidate (
  *  @agent: a NiceAgent
  *  @stream_id: the ID of the stream the candidate is for
  *  @component_id: the ID of the component the candidate is for
- *  @candidates: a list of NiceCandidateDesc items describing the candidates
+ *  @candidates: a list of NiceCandidate items describing the candidates
  *
  * Sets the remote candidates for a component of a stream. Replaces
  * any existing remote candidates.
@@ -1143,18 +1143,18 @@ nice_agent_set_remote_candidates (NiceAgent *agent, guint stream_id, guint compo
   g_mutex_lock (agent->mutex);
 
  for (i = candidates; i && added >= 0; i = i->next) {
-   NiceCandidateDesc *d = (NiceCandidateDesc*) i->data;
+   NiceCandidate *d = (NiceCandidate*) i->data;
    gboolean res = 
      priv_add_remote_candidate (agent,
 				stream_id,
 				component_id,
 				d->type,
-				d->addr,
-				d->related_addr,
+				&d->addr,
+				&d->base_addr,
 				d->transport,
 				d->priority,
-				NULL,
-				NULL,
+                                d->username,
+				d->password,
 				d->foundation);
    if (res)
      ++added;
@@ -1591,9 +1591,6 @@ nice_agent_get_remote_candidates (
       goto done;
     }
 
-  /* XXX: should we expose NiceCandidate to the client, or should
-   *      we instead return a list of NiceCandidateDesc's? */
-
   ret = g_slist_copy (component->remote_candidates);
 
  done:
diff --git a/agent/agent.h b/agent/agent.h
index 8b160df..852a19c 100644
--- a/agent/agent.h
+++ b/agent/agent.h
@@ -104,18 +104,6 @@ typedef enum
   NICE_COMPATIBILITY_LAST = NICE_COMPATIBILITY_MSN
 } NiceCompatibility;
 
-typedef struct _NiceCandidateDesc NiceCandidateDesc;
-
-struct _NiceCandidateDesc {
-  gchar *foundation;          /**< 1*32ice-char (NICE_CANDIDATE_MAX_FOUNDATION-1) */
-  guint component_id;         /**< value between 1 and 256, inclusive */
-  NiceCandidateTransport transport;
-  guint32 priority;           /**< value between 1 and (2**31 - 1), inclusive */
-  NiceAddress *addr;
-  NiceCandidateType type;
-  NiceAddress *related_addr;  /**< optional */
-};
-
 typedef struct _NiceAgent NiceAgent;
 
 typedef void (*NiceAgentRecvFunc) (
diff --git a/agent/test-fallback.c b/agent/test-fallback.c
index 1b2018a..da7e3df 100644
--- a/agent/test-fallback.c
+++ b/agent/test-fallback.c
@@ -199,20 +199,16 @@ static void priv_get_local_addr (NiceAgent *agent, guint stream_id, guint compon
 static int run_fallback_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *baseaddr)
 {
   NiceAddress laddr, raddr, laddr_rtcp, raddr_rtcp;   
-  NiceCandidateDesc cdes = {       /* candidate description (no ports) */
-    (gchar *)"1",                  /* foundation */
-    0,                             /* component-id; filled later */
-    NICE_CANDIDATE_TRANSPORT_UDP,  /* transport */
-    100000,  /* priority */
-    NULL,    /* address */
-    NICE_CANDIDATE_TYPE_HOST, /* type */ 
-    baseaddr /* base-address */
-  };
+  NiceCandidate cdes;
   GSList *cands;
   guint ls_id, rs_id;
 
-  /* XXX: dear compiler, these are for you: */
-  (void)baseaddr;
+  memset (&cdes, 0, sizeof(NiceCandidate));
+  cdes.priority = 100000;
+  strcpy (cdes.foundation, "1");
+  cdes.type = NICE_CANDIDATE_TYPE_HOST;
+  cdes.transport = NICE_CANDIDATE_TRANSPORT_UDP;
+  cdes.base_addr = *baseaddr;
 
   /* step: initialize variables modified by the callbacks */
   global_components_ready = 0;
@@ -278,14 +274,14 @@ static int run_fallback_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress
 
   cands = g_slist_append (NULL, &cdes);
   cdes.component_id = NICE_COMPONENT_TYPE_RTP;
-  cdes.addr = &raddr;
+  cdes.addr = raddr;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTP, cands);
-  cdes.addr = &laddr;  
+  cdes.addr = laddr;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTP, cands);
   cdes.component_id = NICE_COMPONENT_TYPE_RTCP;
-  cdes.addr = &raddr_rtcp;
+  cdes.addr = raddr_rtcp;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTCP, cands);
-  cdes.addr = &laddr_rtcp;  
+  cdes.addr = laddr_rtcp;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTCP, cands);
 
   /* step: fall back to non-ICE mode on both sides */
diff --git a/agent/test-fullmode.c b/agent/test-fullmode.c
index e4e7241..672f278 100644
--- a/agent/test-fullmode.c
+++ b/agent/test-fullmode.c
@@ -198,21 +198,27 @@ static void priv_get_local_addr (NiceAgent *agent, guint stream_id, guint compon
   g_slist_free (cands);
 }
 
+
+
+static void init_candidate (NiceCandidate *cand)
+{
+  memset (cand, 0, sizeof(NiceCandidate));
+
+  cand->priority = 10000;
+  strcpy (cand->foundation, "1");
+  cand->type = NICE_CANDIDATE_TYPE_HOST;
+  cand->transport = NICE_CANDIDATE_TRANSPORT_UDP;
+}
+
 static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *baseaddr, guint ready, guint failed)
 {
   NiceAddress laddr, raddr, laddr_rtcp, raddr_rtcp;   
-  NiceCandidateDesc cdes = {       /* candidate description (no ports) */
-    (gchar *)"1",                  /* foundation */
-    0,                             /* component-id; filled later */
-    NICE_CANDIDATE_TRANSPORT_UDP,  /* transport */
-    100000,  /* priority */
-    NULL,    /* address */
-    NICE_CANDIDATE_TYPE_HOST, /* type */ 
-    NULL     /* base-address */
-  };
+  NiceCandidate cdes;
   GSList *cands;
   guint ls_id, rs_id;
 
+  init_candidate (&cdes);
+
   /* XXX: dear compiler, this is for you */
   (void)baseaddr;
 
@@ -287,14 +293,14 @@ static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *bas
 					 ls_id, ufrag, password);
   }
   cdes.component_id = NICE_COMPONENT_TYPE_RTP;
-  cdes.addr = &raddr;
+  cdes.addr = raddr;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTP, cands);
-  cdes.addr = &laddr;
+  cdes.addr = laddr;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTP, cands);
   cdes.component_id = NICE_COMPONENT_TYPE_RTCP;
-  cdes.addr = &raddr_rtcp;
+  cdes.addr = raddr_rtcp;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTCP, cands);
-  cdes.addr = &laddr_rtcp;
+  cdes.addr = laddr_rtcp;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTCP, cands);
 
   g_slist_free (cands);
@@ -333,18 +339,12 @@ static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *bas
 static int run_full_test_delayed_answer (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *baseaddr, guint ready, guint failed)
 {
   NiceAddress laddr, raddr, laddr_rtcp, raddr_rtcp;   
-  NiceCandidateDesc cdes = {       /* candidate description (no ports) */
-    (gchar *)"1",                  /* foundation */
-    0,                             /* component-id; filled later */
-    NICE_CANDIDATE_TRANSPORT_UDP,  /* transport */
-    100000,  /* priority */
-    NULL,    /* address */
-    NICE_CANDIDATE_TYPE_HOST, /* type */ 
-    NULL     /* base-address */
-  };
+  NiceCandidate cdes;
   GSList *cands;
   guint ls_id, rs_id;
 
+  init_candidate (&cdes);
+
   /* XXX: dear compiler, this is for you */
   (void)baseaddr;
 
@@ -418,10 +418,10 @@ static int run_full_test_delayed_answer (NiceAgent *lagent, NiceAgent *ragent, N
   /* step: set remote candidates for agent R (answering party) */
   cands = g_slist_append (NULL, &cdes);
   cdes.component_id = NICE_COMPONENT_TYPE_RTP;
-  cdes.addr = &laddr;  
+  cdes.addr = laddr;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTP, cands);
   cdes.component_id = NICE_COMPONENT_TYPE_RTCP;
-  cdes.addr = &laddr_rtcp;  
+  cdes.addr = laddr_rtcp;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTCP, cands);
 
   g_debug ("test-fullmode: Set properties, next running mainloop until first check is received...");
@@ -445,10 +445,10 @@ static int run_full_test_delayed_answer (NiceAgent *lagent, NiceAgent *ragent, N
 
   /* step: pass remove candidates to agent L (offering party) */
   cdes.component_id = NICE_COMPONENT_TYPE_RTP;
-  cdes.addr = &raddr;
+  cdes.addr = raddr;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTP, cands);
   cdes.component_id = NICE_COMPONENT_TYPE_RTCP;
-  cdes.addr = &raddr_rtcp;
+  cdes.addr = raddr_rtcp;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTCP, cands);
 
   g_debug ("test-fullmode: Running mainloop until connectivity checks succeeed.");
@@ -478,18 +478,12 @@ static int run_full_test_delayed_answer (NiceAgent *lagent, NiceAgent *ragent, N
 static int run_full_test_wrong_password (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *baseaddr)
 {
   NiceAddress laddr, raddr;   
-  NiceCandidateDesc cdes = {       /* candidate description (no ports) */
-    (gchar *)"1",                  /* foundation */
-    NICE_COMPONENT_TYPE_RTP,
-    NICE_CANDIDATE_TRANSPORT_UDP,  /* transport */
-    100000,  /* priority */
-    NULL,    /* address */
-    NICE_CANDIDATE_TYPE_HOST, /* type */ 
-    NULL     /* base-address */
-  };
+  NiceCandidate cdes;
   GSList *cands, *i;
   guint ls_id, rs_id;
 
+  init_candidate (&cdes);
+
   /* XXX: dear compiler, this is for you */
   (void)baseaddr;
 
@@ -565,9 +559,9 @@ static int run_full_test_wrong_password (NiceAgent *lagent, NiceAgent *ragent, N
       nice_agent_set_remote_credentials (lagent,
 					 ls_id, ufrag, "wrong2");
   }
-  cdes.addr = &raddr;
+  cdes.addr = raddr;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTP, cands);
-  cdes.addr = &laddr;  
+  cdes.addr = laddr;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTP, cands);
   g_slist_free (cands);
 
@@ -594,18 +588,12 @@ static int run_full_test_wrong_password (NiceAgent *lagent, NiceAgent *ragent, N
 static int run_full_test_control_conflict (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *baseaddr, gboolean role)
 {
   NiceAddress laddr, raddr;   
-  NiceCandidateDesc cdes = {       /* candidate description (no ports) */
-    (gchar *)"1",                  /* foundation */
-    NICE_COMPONENT_TYPE_RTP,
-    NICE_CANDIDATE_TRANSPORT_UDP,  /* transport */
-    100000,  /* priority */
-    NULL,    /* address */
-    NICE_CANDIDATE_TYPE_HOST, /* type */ 
-    NULL     /* base-address */
-  };
+  NiceCandidate cdes;
   GSList *cands, *i;
   guint ls_id, rs_id;
 
+  init_candidate (&cdes);
+
   /* XXX: dear compiler, this is for you */
   (void)baseaddr;
 
@@ -680,9 +668,9 @@ static int run_full_test_control_conflict (NiceAgent *lagent, NiceAgent *ragent,
       nice_agent_set_remote_credentials (lagent,
 					 ls_id, ufrag, password);
   }
-  cdes.addr = &raddr;
+  cdes.addr = raddr;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTP, cands);
-  cdes.addr = &laddr;  
+  cdes.addr = laddr;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTP, cands);
   g_slist_free (cands);
 
diff --git a/agent/test-restart.c b/agent/test-restart.c
index acb801e..2d90fa4 100644
--- a/agent/test-restart.c
+++ b/agent/test-restart.c
@@ -195,15 +195,7 @@ static void priv_get_local_addr (NiceAgent *agent, guint stream_id, guint compon
 static int run_restart_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *baseaddr)
 {
   NiceAddress laddr, raddr, laddr_rtcp, raddr_rtcp;   
-  NiceCandidateDesc cdes = {       /* candidate description (no ports) */
-    (gchar *)"1",                  /* foundation */
-    0,                             /* component-id; filled later */
-    NICE_CANDIDATE_TRANSPORT_UDP,  /* transport */
-    100000,  /* priority */
-    NULL,    /* address */
-    NICE_CANDIDATE_TYPE_HOST, /* type */ 
-    NULL     /* base-address */
-  };
+  NiceCandidate cdes;
   GSList *cands;
   guint ls_id, rs_id;
   guint64 tie_breaker;
@@ -211,6 +203,12 @@ static int run_restart_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *
   /* XXX: dear compiler, these are for you: */
   (void)baseaddr;
 
+  memset (&cdes, 0, sizeof(NiceCandidate));
+  cdes.priority = 10000;
+  strcpy (cdes.foundation, "1");
+  cdes.type = NICE_CANDIDATE_TYPE_HOST;
+  cdes.transport = NICE_CANDIDATE_TRANSPORT_UDP;
+
   /* step: initialize variables modified by the callbacks */
   global_components_ready = 0;
   global_components_ready_exit = 4;
@@ -284,14 +282,14 @@ static int run_restart_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *
 					 ls_id, ufrag, password);
   }
   cdes.component_id = NICE_COMPONENT_TYPE_RTP;
-  cdes.addr = &raddr;
+  cdes.addr = raddr;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTP, cands);
-  cdes.addr = &laddr;  
+  cdes.addr = laddr;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTP, cands);
   cdes.component_id = NICE_COMPONENT_TYPE_RTCP;
-  cdes.addr = &raddr_rtcp;
+  cdes.addr = raddr_rtcp;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTCP, cands);
-  cdes.addr = &laddr_rtcp;  
+  cdes.addr = laddr_rtcp;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTCP, cands);
 
   g_debug ("test-restart: Set properties, next running mainloop until connectivity checks succeed...");
@@ -347,14 +345,14 @@ static int run_restart_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *
 
   /* step: exchange remote candidates */
   cdes.component_id = NICE_COMPONENT_TYPE_RTP;
-  cdes.addr = &raddr;
+  cdes.addr = raddr;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTP, cands);
-  cdes.addr = &laddr;  
+  cdes.addr = laddr;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTP, cands);
   cdes.component_id = NICE_COMPONENT_TYPE_RTCP;
-  cdes.addr = &raddr_rtcp;
+  cdes.addr = raddr_rtcp;
   nice_agent_set_remote_candidates (lagent, ls_id, NICE_COMPONENT_TYPE_RTCP, cands);
-  cdes.addr = &laddr_rtcp;  
+  cdes.addr = laddr_rtcp;
   nice_agent_set_remote_candidates (ragent, rs_id, NICE_COMPONENT_TYPE_RTCP, cands);
 
   g_main_loop_run (global_mainloop);
-- 
1.5.6.5




More information about the Nice mailing list