aboutsummaryrefslogtreecommitdiff
path: root/databases/freetds-devel/files/exp-patch-src::tds::read.c
diff options
context:
space:
mode:
Diffstat (limited to 'databases/freetds-devel/files/exp-patch-src::tds::read.c')
-rw-r--r--databases/freetds-devel/files/exp-patch-src::tds::read.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/databases/freetds-devel/files/exp-patch-src::tds::read.c b/databases/freetds-devel/files/exp-patch-src::tds::read.c
new file mode 100644
index 000000000000..8797a6a4e3a6
--- /dev/null
+++ b/databases/freetds-devel/files/exp-patch-src::tds::read.c
@@ -0,0 +1,16 @@
+--- src/tds/read.c.orig Thu Jan 15 17:04:28 2004
++++ src/tds/read.c Thu Jan 15 17:04:35 2004
+@@ -164,6 +164,13 @@
+ buflen -= len;
+ got += len;
+ }
++
++ /* When we get a timeout on select(), return 0. Don't return -1, because
++ * that would lead to a disconnect
++ * OTOH, do not let this pass to prevent an infinite loop when there is
++ * no data on the wire */
++ if (retcode == 0)
++ return 0;
+
+ OK_TIMEOUT:
+ now = time(NULL);