- SV subscriber: fixed bug in function SVReceiver_enableDestAddrCheck

pull/147/head
Michael Zillgith 7 years ago
parent 9881d248ec
commit 472514cc63

@ -121,7 +121,7 @@ SVReceiver_disableDestAddrCheck(SVReceiver self)
void void
SVReceiver_enableDestAddrCheck(SVReceiver self) SVReceiver_enableDestAddrCheck(SVReceiver self)
{ {
self->checkDestAddr = false; self->checkDestAddr = true;
} }
void void
@ -446,7 +446,7 @@ parseSVMessage(SVReceiver self, int numbytes)
if (numbytes < 22) return; if (numbytes < 22) return;
/* Ethernet source address */ /* Ethernet source address */
uint8_t* srcAddr = buffer; uint8_t* dstAddr = buffer;
/* skip ethernet addresses */ /* skip ethernet addresses */
bufPos = 12; bufPos = 12;
@ -509,13 +509,13 @@ parseSVMessage(SVReceiver self, int numbytes)
if (subscriber->appId == appId) { if (subscriber->appId == appId) {
if (self->checkDestAddr) { if (self->checkDestAddr) {
if (memcmp(srcAddr, subscriber->ethAddr, 6) == 0) { if (memcmp(dstAddr, subscriber->ethAddr, 6) == 0) {
subscriberFound = true; subscriberFound = true;
break; break;
} }
else else
if (DEBUG_SV_SUBSCRIBER) if (DEBUG_SV_SUBSCRIBER)
printf("SV_SUBSCRIBER: Checking ethernet src address failed!\n"); printf("SV_SUBSCRIBER: Checking ethernet dest address failed!\n");
} }
else { else {
subscriberFound = true; subscriberFound = true;
@ -537,7 +537,7 @@ parseSVMessage(SVReceiver self, int numbytes)
parseSVPayload(self, subscriber, buffer + bufPos, apduLength); parseSVPayload(self, subscriber, buffer + bufPos, apduLength);
else { else {
if (DEBUG_SV_SUBSCRIBER) if (DEBUG_SV_SUBSCRIBER)
printf("SV_SUBSCRIBER: SV message ignored due to unknown APPID value\n"); printf("SV_SUBSCRIBER: SV message ignored due to unknown APPID value or dest address mismatch\n");
} }
} }

@ -247,9 +247,13 @@ bool
SVReceiver_tick(SVReceiver self); SVReceiver_tick(SVReceiver self);
/* /*
* Subscriber * \brief Create a new SV subscriber instance
*
* \param ethAddr optional destination address (NULL to not specify the destination address)
* \param appID the APP-ID to identify matching SV messages
*
* \return the new subscriber instance
*/ */
SVSubscriber SVSubscriber
SVSubscriber_create(const uint8_t* ethAddr, uint16_t appID); SVSubscriber_create(const uint8_t* ethAddr, uint16_t appID);
@ -263,7 +267,6 @@ SVSubscriber_create(const uint8_t* ethAddr, uint16_t appID);
* \param self The subscriber object * \param self The subscriber object
* \param listener the callback function to install * \param listener the callback function to install
* \param a user provided parameter that is provided to the callback function * \param a user provided parameter that is provided to the callback function
*
*/ */
void void
SVSubscriber_setListener(SVSubscriber self, SVUpdateListener listener, void* parameter); SVSubscriber_setListener(SVSubscriber self, SVUpdateListener listener, void* parameter);

Loading…
Cancel
Save