From: Alan T. DeKok Date: Thu, 22 Jun 2017 14:17:51 +0000 (-0400) Subject: hoist default_message_size to allow it to be changed dynamically X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e7cc943f057657dea744e298dc2c3529690645eb;p=thirdparty%2Ffreeradius-server.git hoist default_message_size to allow it to be changed dynamically --- diff --git a/src/lib/io/listen.h b/src/lib/io/listen.h index fd8ff2ad25b..bcba50cb3e2 100644 --- a/src/lib/io/listen.h +++ b/src/lib/io/listen.h @@ -30,6 +30,8 @@ struct fr_listen { fr_app_t const *app; void const *app_instance; + size_t default_message_size; //!< copied from app_io, but may be changed + fr_io_decode_t decode; //!< Function to decode packet to request (worker) fr_io_encode_t encode; //!< Function to encode request to packet (worker) }; diff --git a/src/lib/io/network.c b/src/lib/io/network.c index d9b075a055f..45f1b1e6d96 100644 --- a/src/lib/io/network.c +++ b/src/lib/io/network.c @@ -321,9 +321,9 @@ static void fr_network_read(UNUSED fr_event_list_t *el, int sockfd, UNUSED int f fr_log(nr->log, L_DBG, "network read"); if (!s->cd) { - cd = (fr_channel_data_t *) fr_message_reserve(s->ms, s->listen->app_io->default_message_size); + cd = (fr_channel_data_t *) fr_message_reserve(s->ms, s->listen->default_message_size); if (!cd) { - fr_log(nr->log, L_ERR, "Failed allocating message size %zd!", s->listen->app_io->default_message_size); + fr_log(nr->log, L_ERR, "Failed allocating message size %zd!", s->listen->default_message_size); /* * @todo - handle errors via transport callback @@ -477,7 +477,7 @@ static void fr_network_socket_callback(void *ctx, void const *data, size_t data_ */ s->ms = fr_message_set_create(s, MIN_MESSAGES, sizeof(fr_channel_data_t), - s->listen->app_io->default_message_size * MIN_MESSAGES); + s->listen->default_message_size * MIN_MESSAGES); if (!s->ms) { fr_log(nr->log, L_ERR, "Failed creating message buffers for network IO."); diff --git a/src/modules/proto_radius/proto_radius.c b/src/modules/proto_radius/proto_radius.c index 9b8ced39fd1..43bc6edcef6 100644 --- a/src/modules/proto_radius/proto_radius.c +++ b/src/modules/proto_radius/proto_radius.c @@ -260,6 +260,7 @@ static int mod_open(void *instance, fr_schedule_t *sc, CONF_SECTION *conf) listen->app = &proto_radius; listen->app_instance = instance; + listen->default_message_size = listen->app_io->default_message_size; listen->encode = mod_encode; listen->decode = mod_decode;