#include <ctype.h>
#include <unistd.h>
#include <stdint.h>
+#include <fcntl.h>
#include <libubox/ustream.h>
#include <libubox/ustream-ssl.h>
memset(&uh->uc.remote_addr, 0, sizeof(uh->uc.remote_addr));
- fd = usock_inet(USOCK_TCP | USOCK_NONBLOCK, uh->uc.url->host, port, &uh->uc.remote_addr);
+ fd = usock_inet(USOCK_TCP, uh->uc.url->host, port, &uh->uc.remote_addr);
if (fd < 0)
return -1;
+ fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK);
ustream_fd_init(&uh->ufd, fd);
sl = sizeof(uh->uc.local_addr);
{
struct uclient_http *uh = container_of(us, struct uclient_http, ufd.stream);
+ if (uh->ufd.stream.write_error) {
+ uclient_http_error(uh, UCLIENT_ERROR_CONNECT);
+ return;
+ }
uclient_notify_eof(uh);
}