瀏覽代碼

cmRtNet.c: More changes to cmRtNetTest().

master
kpl 11 年之前
父節點
當前提交
81b753e2ad
共有 1 個文件被更改,包括 18 次插入8 次删除
  1. 18
    8
      cmRtNet.c

+ 18
- 8
cmRtNet.c 查看文件

11
 
11
 
12
 enum
12
 enum
13
 {
13
 {
14
-  kLocalNetFl = 0x01,
14
+  kLocalNetFl    = 0x01,
15
   kSockAddrNetFl = 0x02
15
   kSockAddrNetFl = 0x02
16
 };
16
 };
17
 
17
 
191
 
191
 
192
 cmRtNetRC_t _cmRtNetCreateNode( cmRtNet_t* p, const cmChar_t* label, const cmChar_t* addr, cmUdpPort_t port, const struct sockaddr_in* saddr )
192
 cmRtNetRC_t _cmRtNetCreateNode( cmRtNet_t* p, const cmChar_t* label, const cmChar_t* addr, cmUdpPort_t port, const struct sockaddr_in* saddr )
193
 {
193
 {
194
+  cmRtNetRC_t rc = kOkNetRC;
194
   cmRtNetNode_t* np;
195
   cmRtNetNode_t* np;
195
 
196
 
196
   if( label == NULL )
197
   if( label == NULL )
216
     p->localNode = np;
217
     p->localNode = np;
217
 
218
 
218
   if( saddr != NULL )
219
   if( saddr != NULL )
219
-  {
220
     np->sockaddr = *saddr;
220
     np->sockaddr = *saddr;
221
-    np->flags = cmSetFlag(np->flags,kSockAddrNetFl);
221
+  else
222
+  {
223
+    if( cmUdpInitAddr(p->udpH, np->addr, np->port, &np->sockaddr ) != kOkUdpRC )
224
+    {
225
+      rc = cmErrMsg(&p->err,kUdpPortFailNetRC,"IP::port to socket address conversion failed.");
226
+      goto errLabel;
227
+    }
222
   }
228
   }
223
 
229
 
224
-  return kOkNetRC;
230
+  np->flags = cmSetFlag(np->flags,kSockAddrNetFl);
231
+
232
+ errLabel:
233
+  return rc;
225
 }
234
 }
226
 
235
 
227
 cmRtNetEnd_t* _cmRtNetFindNodeEnd(cmRtNetNode_t* np, const cmChar_t* endPtLabel )
236
 cmRtNetEnd_t* _cmRtNetFindNodeEnd(cmRtNetNode_t* np, const cmChar_t* endPtLabel )
296
 {
305
 {
297
   cmRtNetSyncMsg_t m;
306
   cmRtNetSyncMsg_t m;
298
   cmRtNetRC_t      rc = kOkNetRC;
307
   cmRtNetRC_t      rc = kOkNetRC;
308
+  cmUdpRC_t        udpRC = kOkUdpRC;
299
 
309
 
300
   m.hdr.rtSubIdx = cmInvalidIdx;
310
   m.hdr.rtSubIdx = cmInvalidIdx;
301
   m.hdr.selId    = kNetSyncSelRtId;
311
   m.hdr.selId    = kNetSyncSelRtId;
315
   cmRtNetNodeState_t orgState = np->state;
325
   cmRtNetNodeState_t orgState = np->state;
316
   np->state = nextStId;
326
   np->state = nextStId;
317
 
327
 
328
+  
318
   // send the msg
329
   // send the msg
319
-  cmUdpRC_t udpRC;
320
-  if( cmIsFlag(np->flags,kSockAddrNetFl) )
321
-    udpRC = cmUdpSendTo(p->udpH, buf, n, &np->sockaddr );
322
-  else
330
+  if( cmIsFlag(np->flags,kSockAddrNetFl) == false )
323
     udpRC = cmUdpSend2(p->udpH, buf, n, np->addr, np->port );
331
     udpRC = cmUdpSend2(p->udpH, buf, n, np->addr, np->port );
332
+  else
333
+    udpRC = cmUdpSendTo(p->udpH, buf, n, &np->sockaddr );
324
 
334
 
325
   // check for send errors
335
   // check for send errors
326
   if( udpRC != kOkUdpRC )
336
   if( udpRC != kOkUdpRC )

Loading…
取消
儲存