[ODBC] Re: Connection failure with invalid connection option "gsslib" for09.06.0410 - Mailing list pgsql-odbc

From Inoue, Hiroshi
Subject [ODBC] Re: Connection failure with invalid connection option "gsslib" for09.06.0410
Date
Msg-id 98342535-532d-3073-376e-38329a81a494@dream.email.ne.jp
Whole thread Raw
In response to [ODBC] Connection failure with invalid connection option "gsslib" for 09.06.0410  (Michael Paquier <michael.paquier@gmail.com>)
Responses Re: [ODBC] Re: Connection failure with invalid connection option"gsslib" for 09.06.0410  ("Inoue, Hiroshi" <h-inoue@dream.email.ne.jp>)
List pgsql-odbc
Hi Michael,

On 2017/08/21 10:01, Michael Paquier wrote:
> Hi all,
>
> When updating the ODBC driver from 09.06.0310 to 09.06.0410 (Yes I
> lagged behind one release!), I have noticed a failure when connecting
> to a Postgres instance on Windows:
> cmd=c:/python27/python check_odbc.py --dsn uninst_std_noimpact_srm
> --user test_odbc --pwd passw0rd --port 5444
> stdout=Connecting odbc :
> DSN=uninst_std_noimpact_srm;Uid=test_odbc;Pwd={passw0rd};
>
> stderr=Traceback (most recent call last):
>    File "check_odbc.py", line 111, in main
>      check_odbc_connection(conn_str)
>    File "check_odbc.py", line 15, in check_odbc_connection
>      cnxn = pyodbc.connect(conn_str)
> Error: ('08001', '[08001] invalid connection option "gsslib"\n (101)
> (SQLDriverConnect)')

Unfortunately I can't reproduce it here with dns-less connections.
What is in uninst_std_noimpact_srm?

regards,
Hiroshi Inoue

>
> check_odbc.py is a simple wrapper on top of pyodbc that attempts a
> connection to Postgres on Windows, making sure that the DNS defined is
> working correctly. There is nothing fancy in it.
>
> The difference between a failure and a success is only the update of
> the ODBC driver, so I'd like to think that it is its fault here ;)
>
> Looking at the code, I think that this diff in dlg_specific.c, coming
> from commit 3bad6c8e is at fault:
> @@ -790,64 +806,34 @@ copyCommonAttributes(ConnInfo *ci, const char
> *attribute, const char *value)
>   }
> [...]
> -void
> -getDSNdefaults(ConnInfo *ci)
> +static void
> +getCiDefaults(ConnInfo *ci)
> [...]
> -   if (ci->gssauth_use_gssapi < 0)
> -       ci->gssauth_use_gssapi = DEFAULT_GSSAUTHUSEGSSAPI;
> [...]
> +   ci->gssauth_use_gssapi = DEFAULT_GSSAUTHUSEGSSAPI;
>
> This is a problem, because Postgres' libpq may not be compiled with
> GSS support, which is the case of my builds, and the existence of the
> connection parameter gsslib depends on if Postgres is compiled with
> GSS or not. I think also that this is the only problem, the other
> libpq parameter whose existence is defined based on compilation is
> krbsrvname, and odbc does not handle it. I have only seen this problem
> on Windows, because my Linux builds have GSS support, but I have no
> doubt that the problem could be seen there as well.
>
> Inoue-san, unfortunately I think that your commit is a fault here.
> Thanks,



pgsql-odbc by date:

Previous
From: Michael Paquier
Date:
Subject: [ODBC] Connection failure with invalid connection option "gsslib" for 09.06.0410
Next
From: "Asif Shaikh"
Date:
Subject: Re: [ODBC] Postgre driver(9.06.04.00) connected to Amazon redshift, isreturning wrong count in SQLRowCount