- * Stream between stdio and TLS socket
- */
-static int stream(int fd, tls_socket_t *tls)
-{
- while (TRUE)
- {
- fd_set set;
- chunk_t data;
-
- FD_ZERO(&set);
- FD_SET(fd, &set);
- FD_SET(0, &set);
-
- if (select(fd + 1, &set, NULL, NULL, NULL) == -1)
- {
- return 1;
- }
- if (FD_ISSET(fd, &set))
- {
- if (!tls->read(tls, &data))
- {
- return 0;
- }
- if (data.len)
- {
- ignore_result(write(1, data.ptr, data.len));
- free(data.ptr);
- }
- }
- if (FD_ISSET(0, &set))
- {
- char buf[1024];
- ssize_t len;
-
- len = read(0, buf, sizeof(buf));
- if (len == 0)
- {
- return 0;
- }
- if (len > 0)
- {
- if (!tls->write(tls, chunk_create(buf, len)))
- {
- DBG1(DBG_TLS, "TLS write error");
- return 1;
- }
- }
- }
- }
-}
-
-/**