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 -- [email protected]
To unsubscribe send an email to [email protected]