removed hardcoded ip information
This commit is contained in:
parent
14a7dd885b
commit
531d8c45e8
@ -136,7 +136,8 @@ void ActionHelper::prepareExecution(MessageQueueId_t commandedBy, size_t offset,
|
|||||||
|
|
||||||
CommandMessage message;
|
CommandMessage message;
|
||||||
|
|
||||||
TmMessage::setCommand(&message, replyStoreId, dataAddress);
|
ipcStore->deleteData(dataAddress);
|
||||||
|
TmMessage::setCommand(&message, replyStoreId, store_address_t());
|
||||||
|
|
||||||
queueToUse->sendMessage(information.reportingQueue, &message);
|
queueToUse->sendMessage(information.reportingQueue, &message);
|
||||||
|
|
||||||
|
@ -13,11 +13,15 @@
|
|||||||
#include "FsfwProtocolHeader.h"
|
#include "FsfwProtocolHeader.h"
|
||||||
#include "TmMessage.h"
|
#include "TmMessage.h"
|
||||||
|
|
||||||
UdpTmTcBridgeNew::UdpTmTcBridgeNew(object_id_t objectId, object_id_t tmStoreId,
|
UdpTmTcBridgeNew::UdpTmTcBridgeNew(object_id_t objectId, uint16_t listeningPort,
|
||||||
object_id_t tcStoreId)
|
const sockaddr *defaultDestination_in,
|
||||||
: SystemObject(objectId), defaultDestination(nullptr), defaultDestinationLen(0) {
|
socklen_t defaultDestinationLen)
|
||||||
|
: SystemObject(objectId),
|
||||||
|
listeningPort(listeningPort),
|
||||||
|
defaultDestinationLen(defaultDestinationLen) {
|
||||||
messageQueue =
|
messageQueue =
|
||||||
QueueFactory::instance()->createMessageQueue(50, MessageQueueMessage::MAX_MESSAGE_SIZE);
|
QueueFactory::instance()->createMessageQueue(50, MessageQueueMessage::MAX_MESSAGE_SIZE);
|
||||||
|
memcpy(&this->defaultDestination, defaultDestination_in, defaultDestinationLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
UdpTmTcBridgeNew::~UdpTmTcBridgeNew() {}
|
UdpTmTcBridgeNew::~UdpTmTcBridgeNew() {}
|
||||||
@ -58,7 +62,7 @@ ReturnValue_t UdpTmTcBridgeNew::initialize() {
|
|||||||
memset(&serverAddr, 0, sizeof(serverAddr));
|
memset(&serverAddr, 0, sizeof(serverAddr));
|
||||||
|
|
||||||
serverAddr.sin6_family = AF_INET6;
|
serverAddr.sin6_family = AF_INET6;
|
||||||
serverAddr.sin6_port = htons(6667);
|
serverAddr.sin6_port = htons(listeningPort);
|
||||||
serverAddr.sin6_addr = IN6ADDR_ANY_INIT;
|
serverAddr.sin6_addr = IN6ADDR_ANY_INIT;
|
||||||
|
|
||||||
retval = bind(serverSocket, (struct sockaddr *)&serverAddr, sizeof(serverAddr));
|
retval = bind(serverSocket, (struct sockaddr *)&serverAddr, sizeof(serverAddr));
|
||||||
@ -131,10 +135,6 @@ void UdpTmTcBridgeNew::handleTC() {
|
|||||||
ssize_t receivedLen = recvfrom(serverSocket, applicationData, peekLen, 0,
|
ssize_t receivedLen = recvfrom(serverSocket, applicationData, peekLen, 0,
|
||||||
(struct sockaddr *)(bufferPointer + 1), &senderlen);
|
(struct sockaddr *)(bufferPointer + 1), &senderlen);
|
||||||
|
|
||||||
printf("type %i, port %i, senderlen %i, sizeof4 %li, sizeof6 %li\n", sender.ss_family,
|
|
||||||
ntohs(((sockaddr_in *)&sender)->sin_port), senderlen, sizeof(sockaddr_in),
|
|
||||||
sizeof(sockaddr_in6));
|
|
||||||
|
|
||||||
if (receivedLen == -1) {
|
if (receivedLen == -1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -202,7 +202,7 @@ void UdpTmTcBridgeNew::handleTM() {
|
|||||||
size_t tcDataSize;
|
size_t tcDataSize;
|
||||||
result = IPCStore->getData(tc, &tcData, &tcDataSize);
|
result = IPCStore->getData(tc, &tcData, &tcDataSize);
|
||||||
if (result != returnvalue::OK) {
|
if (result != returnvalue::OK) {
|
||||||
receiver = defaultDestination;
|
receiver = (const sockaddr *)&defaultDestination;
|
||||||
receiverLen = defaultDestinationLen;
|
receiverLen = defaultDestinationLen;
|
||||||
} else {
|
} else {
|
||||||
if (*tcData != IP6) {
|
if (*tcData != IP6) {
|
||||||
@ -218,6 +218,9 @@ void UdpTmTcBridgeNew::handleTM() {
|
|||||||
result = IPCStore->getData(tm, &tmData, &tmDataSize);
|
result = IPCStore->getData(tm, &tmData, &tmDataSize);
|
||||||
if (result != returnvalue::OK) {
|
if (result != returnvalue::OK) {
|
||||||
// nothing to send
|
// nothing to send
|
||||||
|
if (tc != store_address_t()) {
|
||||||
|
IPCStore->deleteData(tc);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,4 +229,8 @@ void UdpTmTcBridgeNew::handleTM() {
|
|||||||
if (res == -1) {
|
if (res == -1) {
|
||||||
sif::error << "UdpTmTcBridge::handleTM: sendto failed with " << errno << std::endl;
|
sif::error << "UdpTmTcBridge::handleTM: sendto failed with " << errno << std::endl;
|
||||||
}
|
}
|
||||||
|
IPCStore->deleteData(tm);
|
||||||
|
if (tc != store_address_t()) {
|
||||||
|
IPCStore->deleteData(tc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,8 @@ class UdpTmTcBridgeNew : public SystemObject,
|
|||||||
enum PerformOperationCode { BOTH = 0, TM, TC };
|
enum PerformOperationCode { BOTH = 0, TM, TC };
|
||||||
|
|
||||||
static const size_t MINIMAL_LENGTH = 4 + 2; // ObjectId, interface, function
|
static const size_t MINIMAL_LENGTH = 4 + 2; // ObjectId, interface, function
|
||||||
UdpTmTcBridgeNew(object_id_t objectId, object_id_t tmStoreId, object_id_t tcStoreId);
|
UdpTmTcBridgeNew(object_id_t objectId, uint16_t listeningPort, const sockaddr* defaultDestination,
|
||||||
|
socklen_t defaultDestinationLen);
|
||||||
virtual ~UdpTmTcBridgeNew();
|
virtual ~UdpTmTcBridgeNew();
|
||||||
|
|
||||||
ReturnValue_t initialize() override;
|
ReturnValue_t initialize() override;
|
||||||
@ -24,11 +25,12 @@ class UdpTmTcBridgeNew : public SystemObject,
|
|||||||
MessageQueueId_t getReportReceptionQueue() const override;
|
MessageQueueId_t getReportReceptionQueue() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
uint16_t listeningPort;
|
||||||
MessageQueueIF* messageQueue;
|
MessageQueueIF* messageQueue;
|
||||||
int serverSocket;
|
int serverSocket;
|
||||||
StorageManagerIF* IPCStore;
|
StorageManagerIF* IPCStore;
|
||||||
|
|
||||||
const sockaddr* const defaultDestination;
|
sockaddr_storage defaultDestination;
|
||||||
const socklen_t defaultDestinationLen;
|
const socklen_t defaultDestinationLen;
|
||||||
|
|
||||||
void handleTC();
|
void handleTC();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user