diff --git a/.hgtags b/.hgtags index 07a3bed..db56876 100644 --- a/.hgtags +++ b/.hgtags @@ -24,3 +24,10 @@ cf6fc9696904fd1735523a70a4f59b5ad6a3f2d5 4.0.0 84ef9a50bccaf7fcd1aef1b3a5d0cd6336fdac4c 4.0.0 84ef9a50bccaf7fcd1aef1b3a5d0cd6336fdac4c 4.0.0 c6df866bf6ca8f9385c91dd74b65fea34bab58ca 4.0.0 +c6df866bf6ca8f9385c91dd74b65fea34bab58ca 4.0.0 +873428fb5c69e02b3c036112a12623dcd81914ca 4.0.0 +873428fb5c69e02b3c036112a12623dcd81914ca 4.0.0 +9b26817264fe1d44b6cb2076ac0ba13cd09d63d1 4.0.0 +9b26817264fe1d44b6cb2076ac0ba13cd09d63d1 4.0.0 +f9d4bcb4bd1d37c1c9046a89d2dd5c53842f5386 4.0.0 +46bd8146413cd5e201d6cc04fbf8574083be3d3a 4.0.1 diff --git a/pvtoolsSrc/pvlist.cpp b/pvtoolsSrc/pvlist.cpp index 52ceb87..cfdf2db 100644 --- a/pvtoolsSrc/pvlist.cpp +++ b/pvtoolsSrc/pvlist.cpp @@ -152,7 +152,9 @@ void processSearchResponse(osiSockAddr const & responseFrom, ByteBuffer & receiv if (serverAddress.ia.sin_addr.s_addr == INADDR_ANY) serverAddress.ia.sin_addr = responseFrom.ia.sin_addr; - serverAddress.ia.sin_port = htons(receiveBuffer.getShort()); + // NOTE: htons might be a macro (e.g. vxWorks) + int16 port = receiveBuffer.getShort(); + serverAddress.ia.sin_port = htons(port); string protocol = /*SerializeHelper::*/deserializeString(&receiveBuffer); @@ -283,7 +285,7 @@ bool discoverServers(double timeOut) sendBuffer.putByte(PVA_VERSION); sendBuffer.putByte((EPICS_BYTE_ORDER == EPICS_ENDIAN_BIG) ? 0x80 : 0x00); // data + 7-bit endianess sendBuffer.putByte((int8_t)3); // search - sendBuffer.putInt(4+1+3+16+2+1); // "zero" payload + sendBuffer.putInt(4+1+3+16+2+1+2); // "zero" payload sendBuffer.putInt(0); // sequenceId sendBuffer.putByte((int8_t)0x81); // reply required // TODO unicast vs multicast; for now we mark ourselves as unicast diff --git a/src/pva/pvaVersion.h b/src/pva/pvaVersion.h index 1a2fa3a..62d3d9e 100644 --- a/src/pva/pvaVersion.h +++ b/src/pva/pvaVersion.h @@ -26,8 +26,8 @@ // TODO to be generated, etc. #define EPICS_PVA_MAJOR_VERSION 4 #define EPICS_PVA_MINOR_VERSION 0 -#define EPICS_PVA_MAINTENANCE_VERSION 0 -#define EPICS_PVA_DEVELOPMENT_FLAG 1 +#define EPICS_PVA_MAINTENANCE_VERSION 1 +#define EPICS_PVA_DEVELOPMENT_FLAG 0 namespace epics { namespace pvAccess { diff --git a/src/remoteClient/clientContextImpl.cpp b/src/remoteClient/clientContextImpl.cpp index 70a19f4..34356fa 100644 --- a/src/remoteClient/clientContextImpl.cpp +++ b/src/remoteClient/clientContextImpl.cpp @@ -2749,7 +2749,9 @@ namespace epics { if (serverAddress.ia.sin_addr.s_addr == INADDR_ANY) serverAddress.ia.sin_addr = responseFrom->ia.sin_addr; - serverAddress.ia.sin_port = htons(payloadBuffer->getShort()); + // NOTE: htons might be a macro (e.g. vxWorks) + int16 port = payloadBuffer->getShort(); + serverAddress.ia.sin_port = htons(port); /*string protocol =*/ SerializeHelper::deserializeString(payloadBuffer, transport.get()); @@ -2812,7 +2814,9 @@ namespace epics { if (serverAddress.ia.sin_addr.s_addr == INADDR_ANY) serverAddress.ia.sin_addr = responseFrom->ia.sin_addr; - serverAddress.ia.sin_port = htons(payloadBuffer->getShort()); + // NOTE: htons might be a macro (e.g. vxWorks) + int16 port = payloadBuffer->getShort(); + serverAddress.ia.sin_port = htons(port); string protocol = SerializeHelper::deserializeString(payloadBuffer, transport.get()); diff --git a/src/server/responseHandlers.cpp b/src/server/responseHandlers.cpp index 82863c5..bf7b251 100644 --- a/src/server/responseHandlers.cpp +++ b/src/server/responseHandlers.cpp @@ -236,7 +236,9 @@ void ServerSearchHandler::handleResponse(osiSockAddr* responseFrom, if (responseAddress.ia.sin_addr.s_addr == INADDR_ANY) responseAddress.ia.sin_addr = responseFrom->ia.sin_addr; - responseAddress.ia.sin_port = htons(payloadBuffer->getShort()); + // NOTE: htons might be a macro (e.g. vxWorks) + int16 port = payloadBuffer->getShort(); + responseAddress.ia.sin_port = htons(port); size_t protocolsCount = SerializeHelper::readSize(payloadBuffer, transport.get()); bool allowed = (protocolsCount == 0);