|
@@ -11,7 +11,7 @@
|
11
|
11
|
|
12
|
12
|
enum
|
13
|
13
|
{
|
14
|
|
- kLocalNetFl = 0x01,
|
|
14
|
+ kLocalNetFl = 0x01,
|
15
|
15
|
kSockAddrNetFl = 0x02
|
16
|
16
|
};
|
17
|
17
|
|
|
@@ -191,6 +191,7 @@ cmRtNetRC_t _cmRtNetReleaseNode( cmRtNet_t* p, cmRtNetNode_t* np )
|
191
|
191
|
|
192
|
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
|
195
|
cmRtNetNode_t* np;
|
195
|
196
|
|
196
|
197
|
if( label == NULL )
|
|
@@ -216,12 +217,20 @@ cmRtNetRC_t _cmRtNetCreateNode( cmRtNet_t* p, const cmChar_t* label, const cmCha
|
216
|
217
|
p->localNode = np;
|
217
|
218
|
|
218
|
219
|
if( saddr != NULL )
|
219
|
|
- {
|
220
|
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
|
236
|
cmRtNetEnd_t* _cmRtNetFindNodeEnd(cmRtNetNode_t* np, const cmChar_t* endPtLabel )
|
|
@@ -296,6 +305,7 @@ cmRtNetRC_t _cmRtNetSendSyncMsg( cmRtNet_t* p, cmRtNetNode_t* np, cmRtNetSelId_t
|
296
|
305
|
{
|
297
|
306
|
cmRtNetSyncMsg_t m;
|
298
|
307
|
cmRtNetRC_t rc = kOkNetRC;
|
|
308
|
+ cmUdpRC_t udpRC = kOkUdpRC;
|
299
|
309
|
|
300
|
310
|
m.hdr.rtSubIdx = cmInvalidIdx;
|
301
|
311
|
m.hdr.selId = kNetSyncSelRtId;
|
|
@@ -315,12 +325,12 @@ cmRtNetRC_t _cmRtNetSendSyncMsg( cmRtNet_t* p, cmRtNetNode_t* np, cmRtNetSelId_t
|
315
|
325
|
cmRtNetNodeState_t orgState = np->state;
|
316
|
326
|
np->state = nextStId;
|
317
|
327
|
|
|
328
|
+
|
318
|
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
|
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
|
335
|
// check for send errors
|
326
|
336
|
if( udpRC != kOkUdpRC )
|