-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));
break;
if(buf[0] == '^')
sptps_send_record(&s, SPTPS_HANDSHAKE, NULL, 0);
break;
if(buf[0] == '^')
sptps_send_record(&s, SPTPS_HANDSHAKE, NULL, 0);
if(!sptps_send_record(&s, buf[0] == '!' ? 1 : 0, buf, buf[0] == '\n' ? 0 : buf[0] == '*' ? sizeof buf : len))
return 1;
}
if(!sptps_send_record(&s, buf[0] == '!' ? 1 : 0, buf, buf[0] == '\n' ? 0 : buf[0] == '*' ? sizeof buf : len))
return 1;
}
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);