]> granicus.if.org Git - pgbouncer/commitdiff
max_packet_size - new variable.
authorMarko Kreen <markokr@gmail.com>
Wed, 18 Jul 2012 18:11:30 +0000 (21:11 +0300)
committerMarko Kreen <markokr@gmail.com>
Wed, 18 Jul 2012 18:11:30 +0000 (21:11 +0300)
Helps to detect network or application problems.

doc/config.txt
include/bouncer.h
src/main.c
src/proto.c

index 7d3053ab8e261837348fd04a38a0d0c32abfe8dd..077f1d64709a1410690bed3c52d79a5d3b0af88a 100644 (file)
@@ -420,6 +420,13 @@ large.
 
 Default: 2048
 
+==== max_packet_size ====
+
+Maximum size for Postgres packets that PgBouncer allows through.  One packet
+is either one query or one resultset row.  Full resultset can be larger.
+
+Default: 2147483647
+
 ==== listen_backlog ====
 
 Backlog argument for listen(2).  Determines how many new unanswered connection
index 5858beb6cb5afe985a1fa18b88c8ebca61acbb9f..687126a146873b3841cac84cfd7e39c503f5dd0f 100644 (file)
@@ -385,6 +385,8 @@ extern int cf_pause_mode;
 extern int cf_shutdown;
 extern int cf_reboot;
 
+extern unsigned int cf_max_packet_size;
+
 extern int cf_sbuf_loopcnt;
 extern int cf_tcp_keepalive;
 extern int cf_tcp_keepcnt;
index 1fe7fe1479a4d39b1c7a0f8f7ec2591d7a081a52..cd8037766b2d17c67e162ff6fe8aaf3fa6470593 100644 (file)
@@ -100,6 +100,7 @@ int cf_server_round_robin;
 int cf_disable_pqexec;
 usec_t cf_dns_max_ttl;
 usec_t cf_dns_zone_check_period;
+unsigned int cf_max_packet_size;
 
 char *cf_ignore_startup_params;
 
@@ -208,6 +209,7 @@ CF_ABS("disable_pqexec", CF_INT, cf_disable_pqexec, CF_NO_RELOAD, "0"),
 CF_ABS("dns_max_ttl", CF_TIME_USEC, cf_dns_max_ttl, 0, "15"),
 CF_ABS("dns_zone_check_period", CF_TIME_USEC, cf_dns_zone_check_period, 0, "0"),
 
+CF_ABS("max_packet_size", CF_UINT, cf_max_packet_size, 0, "2147483647"),
 CF_ABS("pkt_buf", CF_INT, cf_sbuf_len, CF_NO_RELOAD, "2048"),
 CF_ABS("sbuf_loopcnt", CF_INT, cf_sbuf_loopcnt, 0, "5"),
 CF_ABS("tcp_defer_accept", DEFER_OPS, cf_tcp_defer_accept, 0, NULL),
index f1850f7132620ae02c2e597fa134c09d5cf759a3..f7939982da92788ea4945df5becb85c5119620c5 100644 (file)
@@ -87,7 +87,7 @@ bool get_header(struct MBuf *data, PktHdr *pkt)
        }
 
        /* don't believe nonsense */
-       if (len < got || len >= 0x80000000)
+       if (len < got || len > cf_max_packet_size)
                return false;
 
        /* store pkt info */