/* * lw12.c * Copyright (C) 2017 jpk * * Distributed under terms of the MIT license. */ #include #include #include #include #include #include "lw12.h" int lw12_connect(int *sockfd, struct sockaddr_in *addr, uint16_t port, char *hostname) { if ((*sockfd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) { perror("socket"); exit(EXIT_FAILURE); } memset((char *)addr, 0, sizeof(struct sockaddr_in)); addr->sin_family = AF_INET; addr->sin_port = htons(port); inet_aton(hostname, &addr->sin_addr); return *sockfd; } int lw12_sendcmd(int sockfd, struct sockaddr_in *addr, char *cmd) { const socklen_t slen = sizeof(struct sockaddr_in); if (sendto(sockfd, cmd, LW12_CMD_LENGTH, 0, (const struct sockaddr *)addr, slen) == -1) { perror("sendto"); close(sockfd); exit(EXIT_FAILURE); } return 0; }