} else {
size_t at = 0;
while(at < strlen(text)) {
- ssize_t r = write(res->fd, text+at, strlen(text)-at);
+ ssize_t r = send(res->fd, text+at, strlen(text)-at, 0);
if(r == -1) {
if(errno == EAGAIN || errno == EINTR)
continue;
- log_err("could not write: %s", strerror(errno));
+#ifndef USE_WINSOCK
+ log_err("could not send: %s", strerror(errno));
+#else
+ log_err("could not send: %s", wsa_strerror(WSAGetLastError()));
+#endif
return 0;
}
at += r;
}
} else {
while(1) {
- ssize_t rr = read(res->fd, buf+len, 1);
+ ssize_t rr = recv(res->fd, buf+len, 1, 0);
if(rr <= 0) {
if(rr == 0) {
buf[len] = 0;
}
if(errno == EINTR || errno == EAGAIN)
continue;
- log_err("could not read: %s", strerror(errno));
+#ifndef USE_WINSOCK
+ log_err("could not recv: %s", strerror(errno));
+#else
+ log_err("could not recv: %s", wsa_strerror(WSAGetLastError()));
+#endif
return 0;
}
break;
}
} else {
while(1) {
- ssize_t rr = read(res->fd, magic, sizeof(magic)-1);
+ ssize_t rr = recv(res->fd, magic, sizeof(magic)-1, 0);
if(rr <= 0) {
if(rr == 0) return;
if(errno == EINTR || errno == EAGAIN)
continue;
- log_err("could not read: %s", strerror(errno));
+#ifndef USE_WINSOCK
+ log_err("could not recv: %s", strerror(errno));
+#else
+ log_err("could not recv: %s", wsa_strerror(WSAGetLastError()));
+#endif
return;
}
r = (int)rr;
}
buf[r] = 0;
} else {
- ssize_t rr = read(fd, buf, len-1);
+ ssize_t rr = recv(fd, buf, len-1, 0);
if(rr <= 0) {
if(rr == 0) {
/* EOF */
return 0;
}
- fatal_exit("could not read: %s", strerror(errno));
+#ifndef USE_WINSOCK
+ fatal_exit("could not recv: %s", strerror(errno));
+#else
+ fatal_exit("could not recv: %s", wsa_strerror(WSAGetLastError()));
+#endif
}
buf[rr] = 0;
}
if(SSL_write(ssl, buf, (int)len) <= 0)
ssl_err("could not SSL_write");
} else {
- if(write(fd, buf, len) < (ssize_t)len)
- fatal_exit("could not write: %s", strerror(errno));
+ if(send(fd, buf, len, 0) < (ssize_t)len) {
+#ifndef USE_WINSOCK
+ fatal_exit("could not send: %s", strerror(errno));
+#else
+ fatal_exit("could not send: %s", wsa_strerror(WSAGetLastError()));
+#endif
+ }
}
}