From 2fa303f5b82146807336a5bdb0cbf108a7d9b56f Mon Sep 17 00:00:00 2001 From: mwinkel-dev <122583770+mwinkel-dev@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:37:07 -0700 Subject: [PATCH 1/6] Fix: mdsconnect of IDL API now always updates !MDS_SOCKET --- idl/mdsconnect.pro | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/idl/mdsconnect.pro b/idl/mdsconnect.pro index dd4bcbe236..8cc34eecf8 100644 --- a/idl/mdsconnect.pro +++ b/idl/mdsconnect.pro @@ -111,6 +111,7 @@ pro Mds$SendArg,sock,n,idx,arg return end +; This procedure is likely obsolete pro mds$connect,host,status=status,quiet=quiet,port=port on_error,2 mds$disconnect,/quiet @@ -141,14 +142,12 @@ pro mds$disconnect,status=status,quiet=quiet return end - +; This procedure is likely obsolete pro connect,host,_EXTRA=e mds$connect,host,_EXTRA=e return end -;*/ - pro mdsconnect,host,status=status,quiet=quiet,port=port,socket=socket forward_function mds_keyword_set @@ -163,9 +162,8 @@ pro mdsconnect,host,status=status,quiet=quiet,port=port,socket=socket sockmin=sockmin() if (sock ge sockmin) then begin status = 1 - if not mds_keyword_set(socket=socket) then $ - !MDS_SOCKET = sock $ - else $ + !MDS_SOCKET = sock + if mds_keyword_set(socket=socket) then $ socket = sock endif else begin if not keyword_set(quiet) then message,'Error connecting to '+host,/IOERROR From 68a8a34b4ca5a116fb98266b0c9addd3b8a78f4b Mon Sep 17 00:00:00 2001 From: mwinkel-dev <122583770+mwinkel-dev@users.noreply.github.com> Date: Tue, 16 Dec 2025 17:37:05 -0700 Subject: [PATCH 2/6] Fix: create !MDS_SOCKET if it doesn't exist --- idl/mdsconnect.pro | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/idl/mdsconnect.pro b/idl/mdsconnect.pro index 8cc34eecf8..9557ecc599 100644 --- a/idl/mdsconnect.pro +++ b/idl/mdsconnect.pro @@ -162,7 +162,12 @@ pro mdsconnect,host,status=status,quiet=quiet,port=port,socket=socket sockmin=sockmin() if (sock ge sockmin) then begin status = 1 - !MDS_SOCKET = sock + defsysv, '!MDS_SOCKET', exists=conn + if not conn then begin + defsysv, !MDS_SOCKET, sock + endif else begin + !MDS_SOCKET = sock + endelse if mds_keyword_set(socket=socket) then $ socket = sock endif else begin From 155103ba618c40a27732d00c1661106338ea1fe5 Mon Sep 17 00:00:00 2001 From: mwinkel-dev <122583770+mwinkel-dev@users.noreply.github.com> Date: Tue, 16 Dec 2025 17:57:50 -0700 Subject: [PATCH 3/6] FIx: correct typo regarding !MDS_SOCKET --- idl/mdsconnect.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/idl/mdsconnect.pro b/idl/mdsconnect.pro index 9557ecc599..49c07ce5e5 100644 --- a/idl/mdsconnect.pro +++ b/idl/mdsconnect.pro @@ -164,7 +164,7 @@ pro mdsconnect,host,status=status,quiet=quiet,port=port,socket=socket status = 1 defsysv, '!MDS_SOCKET', exists=conn if not conn then begin - defsysv, !MDS_SOCKET, sock + defsysv, '!MDS_SOCKET', sock endif else begin !MDS_SOCKET = sock endelse From 5e2a4e5651a933cd3d4c544f6967892e1a869d6a Mon Sep 17 00:00:00 2001 From: mwinkel-dev <122583770+mwinkel-dev@users.noreply.github.com> Date: Tue, 16 Dec 2025 18:17:57 -0700 Subject: [PATCH 4/6] Fix: change from Long to Int so IDL tests pass --- idl/mdsconnect.pro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/idl/mdsconnect.pro b/idl/mdsconnect.pro index 49c07ce5e5..7500544eb4 100644 --- a/idl/mdsconnect.pro +++ b/idl/mdsconnect.pro @@ -164,9 +164,9 @@ pro mdsconnect,host,status=status,quiet=quiet,port=port,socket=socket status = 1 defsysv, '!MDS_SOCKET', exists=conn if not conn then begin - defsysv, '!MDS_SOCKET', sock + defsysv, '!MDS_SOCKET', fix(sock) endif else begin - !MDS_SOCKET = sock + !MDS_SOCKET = fix(sock) endelse if mds_keyword_set(socket=socket) then $ socket = sock From bc211e6992fc0c4787ce620c6dc47796cb60cd9e Mon Sep 17 00:00:00 2001 From: mwinkel-dev <122583770+mwinkel-dev@users.noreply.github.com> Date: Fri, 19 Dec 2025 12:08:17 -0700 Subject: [PATCH 5/6] Fix: the MdsConnect procedure now accpets an optional database keyword --- idl/mdsconnect.pro | 18 +++++++++++------- idl/mdssql.pro | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/idl/mdsconnect.pro b/idl/mdsconnect.pro index 7500544eb4..1dc25be240 100644 --- a/idl/mdsconnect.pro +++ b/idl/mdsconnect.pro @@ -149,7 +149,8 @@ return end -pro mdsconnect,host,status=status,quiet=quiet,port=port,socket=socket +; This procedure is used to connect to MDSplus archive servers and to database servers +pro mdsconnect,host,status=status,quiet=quiet,port=port,socket=socket,database=database forward_function mds_keyword_set on_error,2 if (not mds_keyword_set(socket=socket)) then $ @@ -162,12 +163,15 @@ pro mdsconnect,host,status=status,quiet=quiet,port=port,socket=socket sockmin=sockmin() if (sock ge sockmin) then begin status = 1 - defsysv, '!MDS_SOCKET', exists=conn - if not conn then begin - defsysv, '!MDS_SOCKET', fix(sock) - endif else begin - !MDS_SOCKET = fix(sock) - endelse + ; The !MDS_SOCKET only tracks connections to MDSplus archive servers. See MDSDbConnect for database connections. + if not keyword_set(database) then begin + defsysv, '!MDS_SOCKET', exists=conn + if not conn then begin + defsysv, '!MDS_SOCKET', fix(sock) + endif else begin + !MDS_SOCKET = fix(sock) + endelse + endif if mds_keyword_set(socket=socket) then $ socket = sock endif else begin diff --git a/idl/mdssql.pro b/idl/mdssql.pro index be7b76c488..ec21d550e5 100644 --- a/idl/mdssql.pro +++ b/idl/mdssql.pro @@ -70,7 +70,7 @@ pro MDSDbConnect, host endif if (host ne "" and host ne "local") then begin socket=-1 - MdsConnect, host, socket=socket + MdsConnect, host, socket=socket, /database !MDSDB_SOCKET = socket !MDSDB_HOST=host endif From cb78208f684bb10db463dce393dae7017299cc76 Mon Sep 17 00:00:00 2001 From: mwinkel-dev <122583770+mwinkel-dev@users.noreply.github.com> Date: Fri, 19 Dec 2025 12:40:17 -0700 Subject: [PATCH 6/6] Fix: add the /database keyword to second MDSDbConnect procedure --- idl/set_database.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/idl/set_database.pro b/idl/set_database.pro index ee4a16c41f..c04d2ca5a4 100644 --- a/idl/set_database.pro +++ b/idl/set_database.pro @@ -425,7 +425,7 @@ pro MDSDbConnect, host endif if (host ne "" and host ne "local") then begin socket=-1 - MdsConnect, host, socket=socket + MdsConnect, host, socket=socket, /database !MDSDB_SOCKET = socket !MDSDB_HOST=host endif