diff --git a/src/sinkSender.c b/src/sinkSender.c index 1bf78e3..9fa631b 100644 --- a/src/sinkSender.c +++ b/src/sinkSender.c @@ -5,6 +5,7 @@ #include #include #include +#include #include "sinkSender.h" #include "logging.h" @@ -87,7 +88,20 @@ void sinkSenderPut(uint32_t seconds, uint32_t frequency) { if (hptr->h_addrtype == AF_INET) { uint8_t *sinkAddr = hptr->h_addr_list[0]; logmsg(LOG_DEBUG, "sink addr: %d.%d.%d.%d", sinkAddr[0], sinkAddr[1], sinkAddr[2], sinkAddr[3]); - + + int sockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (sockfd != -1) { + struct sockaddr_in servaddr; + memset(servaddr, 0, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_port = htons(sinkPort); + memcpy(servaddr.sin_addr.s_addr, sinkAddr, 4); + + ssize_t res = sendto(sockfd, minuteBuffer.b, sizeof(minuteBuffer.b), 0, servaddr, sizeof(servaddr)); + logmsg(LOG_DEBUG, "%d octets sent", res); + } else { + logmsg(LOG_ERR, "unable to get socket: %s", strerror(errno)); + } } else { logmsg(LOG_ERR, "unknown address type: %d", hptr->h_addrtype); }