// Setup connection to daemon
int sd = socket(AF_UNIX, SOCK_STREAM, 0);
if (sd < 0) {
printf("Socket failed: %s\n", strerror(errno));
return;
}
struct sockaddr_un serveraddr;
memset(&serveraddr, 0, sizeof(serveraddr));
serveraddr.sun_family = AF_UNIX;
strcpy(serveraddr.sun_path, SOCKET_PATH);
int res;
do {
res = connect(sd, (struct sockaddr*)&serveraddr, sizeof(serveraddr));
} while (-1 == res && EINTR == errno);
if (res < 0) {
printf("Connect failed: %s\n", strerror(errno));
close(sd);
return;
}
// ...
// Send request
do {
res = write(sd, &input, sizeof(input));
} while (-1 == res && EINTR == errno);
if (-1 == res){
printf("Send request failed: %s\n", strerror(errno));
close(sd);
return;
}
// ...