Mercurial > dropbear
diff netio.c @ 1739:13d834efc376 fuzz
merge from main
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Thu, 15 Oct 2020 19:55:15 +0800 |
parents | 58f7ca8ebc82 |
children | 97ad26e397a5 |
line wrap: on
line diff
--- a/netio.c Wed Feb 28 22:11:39 2018 +0800 +++ b/netio.c Thu Oct 15 19:55:15 2020 +0800 @@ -224,7 +224,6 @@ void set_connect_fds(fd_set *writefd) { m_list_elem *iter; - TRACE(("enter set_connect_fds")) iter = ses.conn_pending.first; while (iter) { m_list_elem *next_iter = iter->next; @@ -245,12 +244,10 @@ } iter = next_iter; } - TRACE(("leave set_connect_fds")) } void handle_connect_fds(const fd_set *writefd) { m_list_elem *iter; - TRACE(("enter handle_connect_fds")) for (iter = ses.conn_pending.first; iter; iter = iter->next) { int val; socklen_t vallen = sizeof(val); @@ -284,7 +281,6 @@ return; } } - TRACE(("leave handle_connect_fds - end iter")) } void connect_set_writequeue(struct dropbear_progress_connection *c, struct Queue *writequeue) { @@ -297,19 +293,25 @@ int len; buffer *writebuf; - #ifndef IOV_MAX - #define IOV_MAX UIO_MAXIOV +#ifndef IOV_MAX + #if defined(__CYGWIN__) && !defined(UIO_MAXIOV) + #define IOV_MAX 1024 + #elif defined(__sgi) + #define IOV_MAX 512 + #else + #define IOV_MAX UIO_MAXIOV #endif +#endif *iov_count = MIN(MIN(queue->count, IOV_MAX), *iov_count); for (l = queue->head, i = 0; i < *iov_count; l = l->link, i++) { writebuf = (buffer*)l->item; - len = writebuf->len - 1 - writebuf->pos; + len = writebuf->len - writebuf->pos; dropbear_assert(len > 0); - TRACE2(("write_packet writev #%d type %d len %d/%d", i, writebuf->data[writebuf->len-1], - len, writebuf->len-1)) + TRACE2(("write_packet writev #%d len %d/%d", i, + len, writebuf->len)) iov[i].iov_base = buf_getptr(writebuf, len); iov[i].iov_len = len; } @@ -320,7 +322,7 @@ int len; while (written > 0) { writebuf = (buffer*)examine(queue); - len = writebuf->len - 1 - writebuf->pos; + len = writebuf->len - writebuf->pos; if (len > written) { /* partial buffer write */ buf_incrpos(writebuf, written); @@ -398,9 +400,9 @@ } /* linux specific, sets QoS class. see tc-prio(8) */ rc = setsockopt(sock, SOL_SOCKET, SO_PRIORITY, (void*) &so_prio_val, sizeof(so_prio_val)); - if (rc < 0 && errno != ENOTSOCK) - dropbear_log(LOG_WARNING, "Couldn't set SO_PRIORITY (%s)", - strerror(errno)); + if (rc < 0 && errno != ENOTSOCK) { + TRACE(("Couldn't set SO_PRIORITY (%s)", strerror(errno))) + } #endif }