#include "main.h" int main(void) { const int fd = socket(PF_INET, SOCK_STREAM, 0); struct sockaddr_in addr = { 0 }; addr.sin_family = AF_INET; addr.sin_port = htons((short) PORT); // connect to local machine at specified port char addrstr[NI_MAXHOST + NI_MAXSERV + 1]; snprintf(addrstr, sizeof(addrstr), "127.0.0.1:%d", PORT); // parse into address inet_pton(AF_INET, addrstr, &addr.sin_addr); // connect to server if (connect(fd, (struct sockaddr*) &addr, sizeof(addr))) { perror("failed to connect"); return -1; } char hostname[HOST_NAME_MAX]; int res = gethostname(hostname, HOST_NAME_MAX); if (res != 0) { perror("ERROR: failed to get hostname"); return -1; } /* { "TYPE": 1, "HOSTNAME": "%S", "DATA": { } } */ Jim jim = {.pp = 4}; jim_object_begin(&jim); jim_member_key(&jim, "TYPE"); jim_integer(&jim, 0); jim_member_key(&jim, "REQUEST"); jim_integer(&jim, 0); jim_member_key(&jim, "HOSTNAME"); jim_string(&jim, hostname); jim_object_end(&jim); printf("%s\n", jim.sink); send(fd, jim.sink, jim.sink_count, 0); for (;;) { sleep(INTERVAL); } close(fd); return 0; }