mirror of
https://github.com/tmate-io/tmate.git
synced 2025-06-25 20:11:34 +02:00
Be less strict over msgpack message size
This commit is contained in:
parent
02694d2a96
commit
71d31e60e6
@ -108,13 +108,14 @@ void tmate_sync_layout(void)
|
|||||||
|
|
||||||
/* TODO add a buffer for pty_data ? */
|
/* TODO add a buffer for pty_data ? */
|
||||||
|
|
||||||
|
#define TMATE_MAX_PTY_SIZE (16*1024)
|
||||||
|
|
||||||
void tmate_pty_data(struct window_pane *wp, const char *buf, size_t len)
|
void tmate_pty_data(struct window_pane *wp, const char *buf, size_t len)
|
||||||
{
|
{
|
||||||
size_t max_write, to_write;
|
size_t to_write;
|
||||||
|
|
||||||
max_write = TMATE_MAX_MESSAGE_SIZE - 16;
|
|
||||||
while (len > 0) {
|
while (len > 0) {
|
||||||
to_write = len < max_write ? len : max_write;
|
to_write = len < TMATE_MAX_PTY_SIZE ? len : TMATE_MAX_PTY_SIZE;
|
||||||
|
|
||||||
pack(array, 3);
|
pack(array, 3);
|
||||||
pack(int, TMATE_OUT_PTY_DATA);
|
pack(int, TMATE_OUT_PTY_DATA);
|
||||||
|
@ -178,10 +178,12 @@ void unpack_array(struct tmate_unpacker *uk, struct tmate_unpacker *nested)
|
|||||||
uk->argc--;
|
uk->argc--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define UNPACKER_RESERVE_SIZE 1024
|
||||||
|
|
||||||
void tmate_decoder_init(struct tmate_decoder *decoder, tmate_decoder_reader *reader,
|
void tmate_decoder_init(struct tmate_decoder *decoder, tmate_decoder_reader *reader,
|
||||||
void *userdata)
|
void *userdata)
|
||||||
{
|
{
|
||||||
if (!msgpack_unpacker_init(&decoder->unpacker, TMATE_MAX_MESSAGE_SIZE))
|
if (!msgpack_unpacker_init(&decoder->unpacker, UNPACKER_RESERVE_SIZE))
|
||||||
tmate_fatal("Cannot initialize the unpacker");
|
tmate_fatal("Cannot initialize the unpacker");
|
||||||
decoder->reader = reader;
|
decoder->reader = reader;
|
||||||
decoder->userdata = userdata;
|
decoder->userdata = userdata;
|
||||||
@ -196,9 +198,7 @@ void tmate_decoder_destroy(struct tmate_decoder *decoder)
|
|||||||
void tmate_decoder_get_buffer(struct tmate_decoder *decoder,
|
void tmate_decoder_get_buffer(struct tmate_decoder *decoder,
|
||||||
char **buf, size_t *len)
|
char **buf, size_t *len)
|
||||||
{
|
{
|
||||||
ssize_t current_size = msgpack_unpacker_message_size(&decoder->unpacker);
|
if (!msgpack_unpacker_reserve_buffer(&decoder->unpacker, UNPACKER_RESERVE_SIZE))
|
||||||
if (!msgpack_unpacker_reserve_buffer(&decoder->unpacker,
|
|
||||||
TMATE_MAX_MESSAGE_SIZE - current_size))
|
|
||||||
tmate_fatal("cannot expand decoder buffer");
|
tmate_fatal("cannot expand decoder buffer");
|
||||||
|
|
||||||
*buf = msgpack_unpacker_buffer(&decoder->unpacker);
|
*buf = msgpack_unpacker_buffer(&decoder->unpacker);
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
#ifndef TMATE_PROTOCOL_H
|
#ifndef TMATE_PROTOCOL_H
|
||||||
#define TMATE_PROTOCOL_H
|
#define TMATE_PROTOCOL_H
|
||||||
|
|
||||||
#define TMATE_MAX_MESSAGE_SIZE (16*1024)
|
|
||||||
|
|
||||||
enum tmate_control_out_msg_types {
|
enum tmate_control_out_msg_types {
|
||||||
TMATE_CTL_AUTH,
|
TMATE_CTL_AUTH,
|
||||||
TMATE_CTL_DEAMON_OUT_MSG,
|
TMATE_CTL_DEAMON_OUT_MSG,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user