Changeset: 5723762a433b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5723762a433b
Modified Files:
        clients/odbc/winsetup/banner.bmp
        clients/odbc/winsetup/resource.h
        clients/odbc/winsetup/setup.c
        clients/odbc/winsetup/setup.rc
Branch: Aug2024
Log Message:

Extend ODBC Data Source Setup program with fields to specify Client Information.
Changed layout of the fields in the dialog to two columns to limit the height 
of the dialog and making it wider.


diffs (truncated from 451 to 300 lines):

diff --git a/clients/odbc/winsetup/banner.bmp b/clients/odbc/winsetup/banner.bmp
index 
55ca8c7c1dfb2244e729d3f8aeb829e9aa753669..128fe2edf3ab2fbfb791c4933a7b5772a6513385
GIT binary patch
literal 129654
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
wCK&qy>D&%VODMWy7ytkO00000000000000000000000000000006Y)>4>oTy6#xJL

diff --git a/clients/odbc/winsetup/resource.h b/clients/odbc/winsetup/resource.h
--- a/clients/odbc/winsetup/resource.h
+++ b/clients/odbc/winsetup/resource.h
@@ -40,8 +40,13 @@
 #define IDC_EDIT_TIMEZONE               2026
 #define IDC_EDIT_LOGFILE                2027
 
-#define IDC_BUTTON_TEST                 2031
-#define IDC_BUTTON_HELP                 2032
+// Client Info settings
+#define IDC_EDIT_CLIENTINFO             2031
+#define IDC_EDIT_APPLICNAME             2032
+#define IDC_EDIT_CLIENTREMARK           2033
+
+#define IDC_BUTTON_TEST                 2041
+#define IDC_BUTTON_HELP                 2042
 
 // Next default values for new objects
 //
diff --git a/clients/odbc/winsetup/setup.c b/clients/odbc/winsetup/setup.c
--- a/clients/odbc/winsetup/setup.c
+++ b/clients/odbc/winsetup/setup.c
@@ -91,6 +91,13 @@ struct data {
        char *host;
        char *port;             /* positive integer */
        char *database;
+       // TLS settings
+       char *use_tls;          /* only on or off allowed */
+       char *servercert;
+       char *servercerthash;
+       char *clientkey;
+       char *clientcert;
+       // Advanced settings
        char *schema;
        char *logintimeout;     /* empty, 0 or positive integer (millisecs) */
        char *replytimeout;     /* empty, 0 or positive integer (millisecs)  */
@@ -98,12 +105,10 @@ struct data {
        char *autocommit;       /* only on or off allowed */
        char *timezone;         /* empty, 0 or signed integer (minutes) */
        char *logfile;
-       // TLS settings
-       char *use_tls;          /* only on or off allowed */
-       char *servercert;
-       char *servercerthash;
-       char *clientkey;
-       char *clientcert;
+       // Client info
+       char *clientinfo;               /* only on or off allowed */
+       char *applicationname;
+       char *clientremark;
 
        HWND parent;
        WORD request;
@@ -153,6 +158,7 @@ TestConnection(HWND hwndDlg, struct data
                }
                // Only when use_tls is "on", add TLS parameters
                if (datap->use_tls && strcmp(datap->use_tls, "on") == 0) {
+                       pos += snprintf(inStr + pos, strSize - pos, "TLS=on;");
                        if (datap->servercert && strlen(datap->servercert) > 0) 
{
                                pos += snprintf(inStr + pos, strSize - pos, 
"CERT=%s;", datap->servercert);
                        }
@@ -179,9 +185,9 @@ TestConnection(HWND hwndDlg, struct data
                if (datap->replysize && strlen(datap->replysize) > 0) {
                        pos += snprintf(inStr + pos, strSize - pos, 
"REPLYSIZE=%s;", datap->replysize);
                }
-               // in ODBC autocommit is on by default. Only when set to off, 
add it to the connection string.
+               // in ODBC autocommit is on by specification. Only when set to 
off, add it to the connection string.
                if (datap->autocommit && strcmp(datap->autocommit, "off") == 0) 
{
-                       pos += snprintf(inStr + pos, strSize - pos, 
"AUTOCOMMIT=%s;", datap->autocommit);
+                       pos += snprintf(inStr + pos, strSize - pos, 
"AUTOCOMMIT=off;");
                }
                if (datap->timezone && strlen(datap->timezone) > 0) {
                        pos += snprintf(inStr + pos, strSize - pos, 
"TIMEZONE=%s;", datap->timezone);
@@ -191,27 +197,21 @@ TestConnection(HWND hwndDlg, struct data
                }
                // test the constructed connection string
                ret = SQLDriverConnect(dbc, hwndDlg, (SQLCHAR *) inStr, 
SQL_NTS, (SQLCHAR *) outStr, strSize, &outLen, SQL_DRIVER_NOPROMPT);
-               switch (ret) {
-                       case SQL_SUCCESS:
-                       case SQL_SUCCESS_WITH_INFO:
-                               MessageBox(hwndDlg, "Connection successful", 
boxtitle, MB_OK);
-                               ret = SQLDisconnect(dbc);
-                               break;
-                       case SQL_ERROR:
-                       default:
-                       {
-                               SQLCHAR state[6];
-                               SQLINTEGER errnr;
-                               SQLCHAR msg[2560];
-                               SQLSMALLINT msglen;
-                               char buf[2600 + strSize + strSize];
-                               // get Error msg
-                               ret = SQLGetDiagRec(SQL_HANDLE_DBC, dbc, 1, 
state, &errnr, msg, sizeof(msg), &msglen);
-                               sprintf(buf, "Connection failed!\n\nError 
message: %s\n\nSQLstate %s, Errnr %d\n\nConnectString used: %s\n\nReturned 
ConnectString: %s",
-                                               (char *) msg, (char *) state, 
(int) errnr, inStr, outStr);
-                               MessageBox(hwndDlg, buf, boxtitle, 
MB_ICONERROR);
-                               break;
-                       }
+               if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) {
+                       MessageBox(hwndDlg, "Connection successful", boxtitle, 
MB_OK);
+                       ret = SQLDisconnect(dbc);
+               } else {
+                       SQLCHAR state[6];
+                       SQLINTEGER errnr;
+                       SQLCHAR msg[2560];
+                       SQLSMALLINT msglen;
+                       char buf[2600 + strSize + strSize];
+
+                       // get Error msg
+                       ret = SQLGetDiagRec(SQL_HANDLE_DBC, dbc, 1, state, 
&errnr, msg, sizeof(msg), &msglen);
+                       sprintf(buf, "Connection failed!\n\nError message: 
%s\n\nSQLstate %s, Errnr %d\n\nConnectString used: %s\n\nReturned 
ConnectString: %s",
+                                       (char *) msg, (char *) state, (int) 
errnr, inStr, outStr);
+                       MessageBox(hwndDlg, buf, boxtitle, MB_ICONERROR);
                }
                ret = SQLFreeHandle(SQL_HANDLE_DBC, dbc);
 #undef strSize
@@ -280,6 +280,10 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
                SetDlgItemText(hwndDlg, IDC_EDIT_AUTOCOMMIT, datap->autocommit 
? datap->autocommit : "on");
                SetDlgItemText(hwndDlg, IDC_EDIT_TIMEZONE, datap->timezone ? 
datap->timezone : "");
                SetDlgItemText(hwndDlg, IDC_EDIT_LOGFILE, datap->logfile ? 
datap->logfile : "");
+               // Client Info
+               SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTINFO, datap->clientinfo 
? datap->clientinfo : "off");
+               SetDlgItemText(hwndDlg, IDC_EDIT_APPLICNAME, 
datap->applicationname ? datap->applicationname : "");
+               SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTREMARK, 
datap->clientremark ? datap->clientremark : "");
                if (datap->request == ODBC_ADD_DSN && datap->dsn && *datap->dsn)
                        EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_DSN), FALSE);
                return TRUE;
@@ -300,7 +304,7 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
                        }
                        /* fall through */
                case IDC_BUTTON_TEST:
-                       /* validate entered string values */
+                       /* validate entered string values for on/off fields */
                        GetDlgItemText(hwndDlg, IDC_EDIT_AUTOCOMMIT, buf, 
sizeof(buf));
                        if (strcmp("on", buf) != 0 && strcmp("off", buf) != 0) {
                                MessageBox(hwndDlg, "Autocommit must be set to 
on or off. Default is on.", NULL, MB_ICONERROR);
@@ -311,6 +315,11 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
                                MessageBox(hwndDlg, "TLS Encrypt must be set to 
on or off. Default is off.", NULL, MB_ICONERROR);
                                return TRUE;
                        }
+                       GetDlgItemText(hwndDlg, IDC_EDIT_CLIENTINFO, buf, 
sizeof(buf));
+                       if (strcmp("on", buf) != 0 && strcmp("off", buf) != 0) {
+                               MessageBox(hwndDlg, "Client Info must be set to 
on or off. Default is off.", NULL, MB_ICONERROR);
+                               return TRUE;
+                       }
 
                        GetDlgItemText(hwndDlg, IDC_EDIT_DESC, buf, 
sizeof(buf));
                        if (datap->desc)
@@ -386,6 +395,19 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
                        if (datap->logfile)
                                free(datap->logfile);
                        datap->logfile = strdup(buf);
+                       GetDlgItemText(hwndDlg, IDC_EDIT_CLIENTINFO, buf, 
sizeof(buf));
+                       if (datap->clientinfo)
+                               free(datap->clientinfo);
+                       datap->clientinfo = strdup(buf);
+                       GetDlgItemText(hwndDlg, IDC_EDIT_APPLICNAME, buf, 
sizeof(buf));
+                       if (datap->applicationname)
+                               free(datap->applicationname);
+                       datap->applicationname = strdup(buf);
+                       GetDlgItemText(hwndDlg, IDC_EDIT_CLIENTREMARK, buf, 
sizeof(buf));
+                       if (datap->clientremark)
+                               free(datap->clientremark);
+                       datap->clientremark = strdup(buf);
+
 
                        if (LOWORD(wParam) == IDC_BUTTON_TEST) {
                                TestConnection(hwndDlg, datap);
@@ -438,6 +460,12 @@ ConfigDSN(HWND parent, WORD request, LPC
        data.host = NULL;
        data.port = NULL;
        data.database = NULL;
+       // TLS settings
+       data.use_tls = NULL;
+       data.servercert = NULL;
+       data.servercerthash = NULL;
+       data.clientkey = NULL;
+       data.clientcert = NULL;
        // Advanced settings
        data.logfile = NULL;
        data.schema = NULL;
@@ -447,12 +475,10 @@ ConfigDSN(HWND parent, WORD request, LPC
        data.autocommit = NULL;
        data.timezone = NULL;
        data.logfile = NULL;
-       // TLS settings
-       data.use_tls = NULL;
-       data.servercert = NULL;
-       data.servercerthash = NULL;
-       data.clientkey = NULL;
-       data.clientcert = NULL;
+       // Client Info
+       data.clientinfo = NULL;
+       data.applicationname = NULL;
+       data.clientremark = NULL;
 
        data.parent = parent;
        data.request = request;
@@ -504,6 +530,12 @@ ConfigDSN(HWND parent, WORD request, LPC
                        data.timezone = strdup(value);
                else if (strncasecmp("LogFile=", attributes, value - 
attributes) == 0)
                        data.logfile = strdup(value);
+               else if (strncasecmp("ClientInfo=", attributes, value - 
attributes) == 0)
+                       data.clientinfo = strdup(value);
+               else if (strncasecmp("ApplicationName=", attributes, value - 
attributes) == 0)
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to