-static bool send_data(void *handle, const char *data, size_t len) {
+static bool send_data(void *handle, uint8_t type, const char *data, size_t len) {
- fprintf(stderr, "Sending %zu bytes of data:\n%s\n", len, hex);
+ fprintf(stderr, "Sending %d bytes of data:\n%s\n", (int)len, hex);
const int *sock = handle;
if(send(*sock, data, len, 0) != len)
return false;
const int *sock = handle;
if(send(*sock, data, len, 0) != len)
return false;
struct addrinfo *ai, hint;
memset(&hint, 0, sizeof hint);
struct addrinfo *ai, hint;
memset(&hint, 0, sizeof hint);
- struct pollfd fds[2];
- fds[0].fd = 0;
- fds[0].events = POLLIN;
- fds[1].fd = sock;
- fds[1].events = POLLIN;
- if(poll(fds, 2, -1) < 0)
+ fd_set fds;
+ FD_ZERO(&fds);
+#ifndef HAVE_MINGW
+ FD_SET(0, &fds);
+#endif
+ FD_SET(sock, &fds);
+ if(select(sock + 1, &fds, NULL, NULL, NULL) <= 0)
ssize_t len = read(0, buf, sizeof buf);
if(len < 0) {
fprintf(stderr, "Could not read from stdin: %s\n", strerror(errno));
ssize_t len = read(0, buf, sizeof buf);
if(len < 0) {
fprintf(stderr, "Could not read from stdin: %s\n", strerror(errno));
ssize_t len = recv(sock, buf, sizeof buf, 0);
if(len < 0) {
fprintf(stderr, "Could not read from socket: %s\n", strerror(errno));
ssize_t len = recv(sock, buf, sizeof buf, 0);
if(len < 0) {
fprintf(stderr, "Could not read from socket: %s\n", strerror(errno));
- fprintf(stderr, "Received %zd bytes of data:\n%s\n", len, hex);
+ fprintf(stderr, "Received %d bytes of data:\n%s\n", (int)len, hex);