45 Commits

Author SHA1 Message Date
Matthew Blewitt
3eb73751f5 Expand test to check for expected and unexpected errors 2018-05-04 12:20:42 -05:00
Matthew Blewitt
7dd3b50e41 Add guard to test to not check errors for empty error messages 2018-05-04 12:20:42 -05:00
Matthew Blewitt
5d32be4a90 Handle SSL negotiation errors more robustly
This commit adds some finer grained detail to handling the postmaster's
response to SSL negotiation packets, by accounting for the possibility
of an 'E' byte being sent back, and emitting an appropriate error.

In the naive case, the postmaster will respond with either 'S' (proceed
with an SSL connection) or 'N' (SSL is not supported). However, the
current if statement doesn't account for an 'E' byte being returned
by the postmaster, where an error is encountered (perhaps unable to
fork due to being out of memory).

By adding this case, we can prevent confusing error messages when SSL is
enforced and the postmaster returns an error after successful SSL
connections.

This also brings the connection handling further in line with
libpq, where 'E' is handled similarly as of this commit:

a49fbaaf8d

Given that there are no longer pre-7.0 databases out in the wild, I
believe this is a safe change to make, and should not break backwards
compatibility (unless matching on error message content).

* Replace if statement with switch, to catch 'S', 'E' and 'N' bytes
  returned by the postmaster
* Return an Error for non 'S' or 'N' cases
* Expand and restructure unit tests for SSL negotiation packets
2018-05-04 12:20:42 -05:00
Vratislav Kalenda
0902d145f4 fix: end stream connection 2018-05-04 12:19:53 -05:00
Pasi Eronen
9825e7c733 Use Buffer.from instead of deprecated Buffer constructor 2018-01-05 13:40:25 -06:00
Pasi Eronen
4cf67b23d4 Ignore socket hangup when ending connection also with ssl (#1344). 2018-01-05 13:40:25 -06:00
Brian C
8798e50ad3 Re-enable eslint with standard format (#1367)
* Work on converting lib to standard

* Finish updating lib

* Finish linting lib

* Format test files

* Add .eslintrc with standard format

* Supply full path to eslint bin

* Move lint command to package.json

* Add eslint as dev dependency
2017-07-15 12:05:58 -05:00
Brian M. Carlson
0f1f8626cf Add use strict to every file 2017-06-18 16:48:14 -05:00
Charmander
934ca3af16 Remove fallbacks for unsupported Node versions (#1304)
* Remove unsupported Node versions 0.10 and 0.12 from CI

* Replace deprecated Buffer constructor with .from/.alloc

* Remove Promise polyfill

* Make use of Object.assign

* Remove checks for versions of Node earlier than 4

* Remove Buffer#indexOf fallback for Node 0.10
2017-06-07 22:45:32 -05:00
Brian Carlson
80d136a531 Add test & documentation for replicationStart message 2017-04-24 13:33:38 -05:00
Charmander
48a9738a0b Run inbound parser tests (#1182)
They were disabled by 4cdd7a116bab03c6096ab1af8f0f522b04993768 without comment; it seems that this might have been unintentional?

In any case, they should probably be enabled, updated, or removed.
2016-12-13 07:36:13 -06:00
Brian C
0aa62f2854 Make tcp-keepalive configurable (#1058) 2016-06-21 21:38:10 -05:00
Konstantin Petryaev
ad65c7b1bc Fix of pool leaking by TCP-keepalive (#918)
* fix of bug with pool leaking by TCP keep-alives

* add test for check setKeepAlive on connect

* fix mistake with var

* fix mistake with var
2016-06-21 14:49:41 -05:00
Eugene Ware
4662d41972 bind Buffer variables as binary values 2013-09-19 01:50:42 +10:00
Brian Carlson
4cdd7a116b Compile result parsing for a 60% speed increase
Tested against a 1000 row result set.  Need to test against
smaller result sets & figure out a way to make this backwards compatible if possible
2013-08-07 15:33:57 -05:00
rpedela
539d3bae54 Move string escaping tests to proper locations. 2013-07-15 09:13:48 -05:00
rpedela
b5e89b2b9a Add native and JS tests for escapeLiteral and escapeIdentifier. 2013-07-15 09:13:48 -05:00
brianc
6e3cc794c3 ignore socket hangup. fixes #314 2013-03-29 09:38:49 -05:00
swilly
49bff032aa fix tests 2013-03-06 12:00:17 -05:00
Arkady Emelyanov
4c254e8edf force utf-8 encoding on connect 2013-01-29 20:19:38 -06:00
brianc
fa80b4e3fa make data conversion the same between native & javascript 2012-07-11 22:47:02 -05:00
brianc
afe4382c63 change assert.length to assert.lengthIs 2011-10-10 19:21:06 -05:00
brianc
67a2290f30 emit error object from memory stream 2011-09-21 14:34:02 -05:00
brianc
d9fbe9e878 remove require.paths use 2011-08-29 02:35:08 -05:00
Brian Carlson
bab0382ce7 fixed spelling 2011-04-20 22:31:04 -05:00
Brian Carlson
7d05daaf2c removed some globals from tests 2011-02-23 19:50:43 -06:00
Brian Carlson
e61ec5dfed unit test for portal suspended 2010-11-14 17:44:36 -06:00
brianc
0c777fafec fix for strang \0 buffer encoding issue in node v0.3.0 2010-11-01 22:11:40 -04:00
brianc
75da13a4b9 removed id from connection messages (simplify API) 2010-10-31 17:30:35 -05:00
brianc
6eea7b3c4f added unit test for connection propagating stream errors 2010-10-31 14:49:49 -05:00
brianc
f63659cbc5 parsing noData message 2010-10-29 00:02:08 -05:00
brianc
104727fd87 simple prepared statements working! 2010-10-28 00:50:45 -05:00
brianc
c848a5ad92 added support for describe command 2010-10-28 00:27:08 -05:00
brianc
d927e7e3f5 changed Connection#startupMessage to Connection#startup 2010-10-24 21:28:10 -05:00
brianc
e89aa9c84c changed Connection#passwordMessage to Connection#password 2010-10-24 21:26:18 -05:00
brianc
ec4078d508 renamed 'notificationResponse' to 'notification' for consistency 2010-10-24 14:45:07 -05:00
brianc
ee4a65b923 support for 'notice' messages 2010-10-24 14:43:25 -05:00
brianc
bcfbb535b8 full support for bind and execute 2010-10-24 13:46:50 -05:00
brianc
c176489348 add type IDs to parse command 2010-10-24 00:18:48 -05:00
brianc
09d8e5d1e7 renamed 'message' to 'payload' 2010-10-23 22:45:03 -05:00
brianc
16352f9156 parsing notificationResponse messages 2010-10-23 22:31:43 -05:00
brianc
ed909cbc66 connection now handles ending 2010-10-23 19:28:57 -05:00
brianc
3662e6f4af clear password using connection 2010-10-23 19:02:13 -05:00
brianc
b687581d0e test for parsing password request messages 2010-10-23 18:52:01 -05:00
brianc
697a967865 directory structure tweaking 2010-10-23 18:20:29 -05:00