get rid of unused packet_type in encrypted write queue

This commit is contained in:
Matt Johnston 2018-03-04 14:57:18 +08:00
parent 625b38d7af
commit 7f15910541
4 changed files with 10 additions and 17 deletions

View File

@ -346,7 +346,7 @@ void session_cleanup() {
void send_session_identification() { void send_session_identification() {
buffer *writebuf = buf_new(strlen(LOCAL_IDENT "\r\n") + 1); buffer *writebuf = buf_new(strlen(LOCAL_IDENT "\r\n") + 1);
buf_putbytes(writebuf, (const unsigned char *) LOCAL_IDENT "\r\n", strlen(LOCAL_IDENT "\r\n")); buf_putbytes(writebuf, (const unsigned char *) LOCAL_IDENT "\r\n", strlen(LOCAL_IDENT "\r\n"));
writebuf_enqueue(writebuf, 0); writebuf_enqueue(writebuf);
} }
static void read_session_identification() { static void read_session_identification() {

View File

@ -306,10 +306,10 @@ void packet_queue_to_iovec(const struct Queue *queue, struct iovec *iov, unsigne
for (l = queue->head, i = 0; i < *iov_count; l = l->link, i++) for (l = queue->head, i = 0; i < *iov_count; l = l->link, i++)
{ {
writebuf = (buffer*)l->item; writebuf = (buffer*)l->item;
len = writebuf->len - 1 - writebuf->pos; len = writebuf->len - writebuf->pos;
dropbear_assert(len > 0); dropbear_assert(len > 0);
TRACE2(("write_packet writev #%d type %d len %d/%d", i, writebuf->data[writebuf->len-1], TRACE2(("write_packet writev #%d len %d/%d", i,
len, writebuf->len-1)) len, writebuf->len))
iov[i].iov_base = buf_getptr(writebuf, len); iov[i].iov_base = buf_getptr(writebuf, len);
iov[i].iov_len = len; iov[i].iov_len = len;
} }
@ -320,7 +320,7 @@ void packet_queue_consume(struct Queue *queue, ssize_t written) {
int len; int len;
while (written > 0) { while (written > 0) {
writebuf = (buffer*)examine(queue); writebuf = (buffer*)examine(queue);
len = writebuf->len - 1 - writebuf->pos; len = writebuf->len - writebuf->pos;
if (len > written) { if (len > written) {
/* partial buffer write */ /* partial buffer write */
buf_incrpos(writebuf, written); buf_incrpos(writebuf, written);

View File

@ -65,7 +65,6 @@ void write_packet() {
#else #else
int len; int len;
buffer* writebuf; buffer* writebuf;
int packet_type;
#endif #endif
TRACE2(("enter write_packet")) TRACE2(("enter write_packet"))
@ -113,10 +112,7 @@ void write_packet() {
/* The last byte of the buffer is not to be transmitted, but is /* The last byte of the buffer is not to be transmitted, but is
* a cleartext packet_type indicator */ * a cleartext packet_type indicator */
packet_type = writebuf->data[writebuf->len-1]; len = writebuf->len - writebuf->pos;
len = writebuf->len - 1 - writebuf->pos;
TRACE2(("write_packet type %d len %d/%d", packet_type,
len, writebuf->len-1))
dropbear_assert(len > 0); dropbear_assert(len > 0);
/* Try to write as much as possible */ /* Try to write as much as possible */
written = write(ses.sock_out, buf_getptr(writebuf, len), len); written = write(ses.sock_out, buf_getptr(writebuf, len), len);
@ -604,7 +600,7 @@ void encrypt_packet() {
/* Update counts */ /* Update counts */
ses.kexstate.datatrans += writebuf->len; ses.kexstate.datatrans += writebuf->len;
writebuf_enqueue(writebuf, packet_type); writebuf_enqueue(writebuf);
/* Update counts */ /* Update counts */
ses.transseq++; ses.transseq++;
@ -624,14 +620,11 @@ void encrypt_packet() {
TRACE2(("leave encrypt_packet()")) TRACE2(("leave encrypt_packet()"))
} }
void writebuf_enqueue(buffer * writebuf, unsigned char packet_type) { void writebuf_enqueue(buffer * writebuf) {
/* The last byte of the buffer stores the cleartext packet_type. It is not
* transmitted but is used for transmit timeout purposes */
buf_putbyte(writebuf, packet_type);
/* enqueue the packet for sending. It will get freed after transmission. */ /* enqueue the packet for sending. It will get freed after transmission. */
buf_setpos(writebuf, 0); buf_setpos(writebuf, 0);
enqueue(&ses.writequeue, (void*)writebuf); enqueue(&ses.writequeue, (void*)writebuf);
ses.writequeue_len += writebuf->len-1; ses.writequeue_len += writebuf->len;
} }

View File

@ -35,7 +35,7 @@ void read_packet(void);
void decrypt_packet(void); void decrypt_packet(void);
void encrypt_packet(void); void encrypt_packet(void);
void writebuf_enqueue(buffer * writebuf, unsigned char packet_type); void writebuf_enqueue(buffer * writebuf);
void process_packet(void); void process_packet(void);