Hi Brad,
I have library G4MS on our system - I am sure I used it once before with
your help to test something.
I have downloaded a temporary key and applied and REGCHECK reports all is
good.
I am just not proficient at geturi.
Looking in Postman formatted for HTTP we have this
PUT
/bwitmasbu/SampleFile.txt?st=2024-10-01T00:22:54Z&si=FileUploads&spr=https&sv=2022-11-02&sr=c&sig=FhFz%2FW1evPlFrqm%2BDrxp3BUQAmS4iw%3D
HTTP/1.1
Host: bwitmasbu.blob.core.windows.net
Content-Type: text/plain
x-ms-blob-type: ••••••
Content-Length: 22
"<file contents here>"
Our test file is in the IFS '/backup/gen001'
I would like to use 32k chunks
Any chance you could advise how I would use the geturi command with that ?
Thanks
Don
Don Brown
Senior Consultant
[1]OneTeam IT Pty Ltd
P: 1300 088 400
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Brad
Stone
Sent: Thursday, 16 January 2025 11:35 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: HTTPAPIR4 gsk_secure_soc_write rc=406 issue
If you're referring to the size of data for sending each chunk, that can
be set manually.
On Wed, Jan 15, 2025 at 11:41 PM Don Brown via MIDRANGE-L <
midrange-l@xxxxxxxxxxxxxxxxxx> wrote:
> Hi Brad,
>
> Just curious.
>
> Does geturi have a fixed chunk size or variable ?
>
> Thanks
> Don
>
>
>
> Don Brown
>
> Senior Consultant
>
> [1]OneTeam IT Pty Ltd
> P: 1300 088 400
>
> -----Original Message-----
> From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf
> Of Brad
> Stone
> Sent: Thursday, 16 January 2025 10:49 AM
> To: Midrange Systems Technical Discussion <
> midrange-l@xxxxxxxxxxxxxxxxxx>
> Subject: Re: HTTPAPIR4 gsk_secure_soc_write rc=406 issue
>
> That normally means the connection was severed on one end or the other.
> I'm sure Scott will chime in, but if you wanted to test it with GETURI
> you're welcome to download and get a temp key to try it to see if
> it does
> the same thing.
>
> Or, if you can change the chunk size to something bigger in
> HTTPAPI, maybe
> the other side is timing out with the smaller chunks? I think I default
> chunks to 32k in GETURI (old limit from a long time ago).
>
> I've seen the error before, but normally it's an issue on the
> server side
> where it just decided to "hang up" on the connection.
>
> On Wed, Jan 15, 2025 at 3:43 PM Don Brown via MIDRANGE-L <
> midrange-l@xxxxxxxxxxxxxxxxxx> wrote:
>
> > We are using HTTPAPIR4 to upload a backup file to Azure.
> >
> > We have enabled large file support and successfully uploaded files
> > that are 3-5 GB
> >
> > But a larger file is failing with the error (GSKit) I/O: Broken pipe.
> >
> > To eliminate the size of the debug file being an issue we turned off
> > debug in HTTPAPIR4 but still process did not complete.
> >
> > We turned on high level logging and below is a snipet from the log
> > that shows the error. Our testing shows that the issue does not occur
> > at exactly the same place in the file and we have not been able to
> > determine the cause.
> >
> > From the log we can see the process chugging on happily writing chunks
> > of length 8192 until the 406 error then ends due to the error.
> >
> > The entire debug log is way too big to include in full.
> >
> > I am hoping someone can point us in the right direction to understand
> > this error and how we can resolve it.
> >
> > Thanks
> > Don
> >
> > 2025-01-15-14.40.00.860000: sendraw2(): comm_blockWrite returned 8192
> > 2025-01-15-14.40.00.860000: sendraw2(): data sent=481976320, chunk
> > size=8192, calling Callback to get data...
> > 2025-01-15-14.40.00.860000: sendraw2(): data sent=481976320, chunk
> > len=8192, timeout=60, calling comm_BlockWrite...
> > 2025-01-15-14.40.00.860000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.40.00.860000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=502, len=0
> > 2025-01-15-14.40.00.860000: CommSSL_BlockWrite(): before select socket
> > fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.40.00.860000: CommSSL_BlockWrite(): before select:
> > select fd=3, readset=*NULL, writeset=000000080000000000000000000000
> > 2025-01-15-14.40.00.874000: CommSSL_BlockWrite(): after select socket
> > fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.40.00.874000: CommSSL_BlockWrite(): after select: select
> > fd=3, readset=*NULL, writeset=0000000800000000000000000000000
> > 2025-01-15-14.40.00.874000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.40.00.875000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=0, len=8192
> > @@@@@@@@@@@@@@@@@@@@@@@ðôñù@÷÷ø@ôóù@@@ððñððñððñððñððñððñÁ ððððððöùõ
> > Öòðððò@âãÅ×ÈÅÕ@ÆÅÙÙÉÅ@@@@@@@@@@@@@@@@@@@@@@@@@@õð@ÒÅÁãâ@âãÙÅÅã@
> >
> > @@@@@@@@@@@@ÙÉÃÈÓÁÕÄâ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ØÓÄ@@@@@@@@@@@@@@@
> > @@@@@@@@@@@@@@@@@@@@@@ôð÷÷óó÷õ@óð÷ñ@@@@@@ðôðñ@ððð@ñóõ@@@@@@@@@
> >
> > 2025-01-15-14.40.00.875000: sendraw2(): comm_blockWrite returned 8192
> > 2025-01-15-14.40.00.875000: sendraw2(): data sent=481984512, chunk
> > size=8192, calling Callback to get data...
> > 2025-01-15-14.40.00.875000: sendraw2(): data sent=481984512, chunk
> > len=8192, timeout=60, calling comm_BlockWrite...
> > 2025-01-15-14.40.00.875000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.40.00.875000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=0, len=8192 ðððððñððððððððñÁ ððððððöùõ
> > Öòðõðõ@ÁÂÄäÓ@ÔÁÕÁÆ@ÂäÒâÈ@@@@@@@@@@@@@@@@@@@@@@@øù@æÉÕâÓÖæ@âãÙÅÅã@@@@@@
> > @@@@@@@@@@@@@@@@@ÄÁÙÙÁ@@@@@@@@@@@@
> > @@@@@@@@@@@ØÓÄ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ôññõ@@@@@@@@@@@@@@@
> > ðôð÷@ùñù@ò÷ô@@@@@@@@@@@@@@@@@@ððððððððóððððððððóÁ
> > ððððððöùõ Ö
> >
> > 2025-01-15-14.40.00.875000: sendraw2(): comm_blockWrite returned 8192
> > 2025-01-15-14.40.00.875000: sendraw2(): data sent=481992704, chunk
> > size=8192, calling Callback to get data...
> > 2025-01-15-14.40.00.875000: sendraw2(): data sent=481992704, chunk
> > len=8192, timeout=60, calling comm_BlockWrite...
> > 2025-01-15-14.40.00.875000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.40.00.876000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=406, len=0
> > 2025-01-15-14.40.00.876000: (GSKit) I/O: Broken pipe.
> > 2025-01-15-14.40.00.876000: ssl_error(406): (GSKit) I/O: Broken pipe.
> > 2025-01-15-14.40.00.876000: SetError() #55: CommSSL_BlockWrite: send:
> > (GSKit) I/O: Broken pipe.
> > 2025-01-15-14.40.00.876000: sendraw2(): comm_blockWrite returned -1
> > 2025-01-15-14.40.00.876000: http_close(): entered ************End of
> > Data********************
> >
> > ************Beginning of data************** HTTPAPI Ver 1.42 released
> > 2020-10-12 NTLM Ver 1.4.0 released 2014-12-22
> > OS/400 Ver V7R4M0
> >
> > 2025-01-15-14.31.29.577000: New iconv() objects set, PostRem=819.
> > PostLoc=0. ProtRem=819. ProtLoc=0
> > 2025-01-15-14.31.29.577000: http_persist_open(): entered
> > 2025-01-15-14.31.29.579000: http_long_ParseURL(): entered
> > 2025-01-15-14.31.29.579000: DNS resolver retrans: 2
> > 2025-01-15-14.31.29.579000: DNS resolver retry : 2
> > 2025-01-15-14.31.29.579000: DNS resolver options: x'00000136'
> > 2025-01-15-14.31.29.579000: DNS default domain: **********************
> > 2025-01-15-14.31.29.579000: DNS server found: 8.8.8.8
> > 2025-01-15-14.31.29.601000: https_init(): entered
> > 2025-01-15-14.31.29.601000: QSSLPCL = *OPSYS
> > 2025-01-15-14.31.29.601000: SSL version 2 support disabled
> > 2025-01-15-14.31.29.601000: SSL version 3 support disabled
> > 2025-01-15-14.31.29.601000: Old interface to TLS version 1.0 support
> > enabled
> > 2025-01-15-14.31.29.601000: TLS version 1.0 support enabled
> > 2025-01-15-14.31.29.601000: TLS version 1.0 support enabled
> > 2025-01-15-14.31.29.601000: TLS version 1.1 support enabled
> > 2025-01-15-14.31.29.601000: TLS version 1.2 support enabled
> > 2025-01-15-14.31.29.601000: initializing GSK environment
> > 2025-01-15-14.31.29.704000: GSK Environment now available
> > 2025-01-15-14.31.29.704000:
> > ----------------------------------------------------------------------
> > ---------------
> > 2025-01-15-14.31.29.704000: Dump of local-side certificate
> information:
> > 2025-01-15-14.31.29.704000:
> > ----------------------------------------------------------------------
> > ---------------
> > 2025-01-15-14.31.29.704000: Nagle's algorithm (TCP_NODELAY) disabled.
> > 2025-01-15-14.31.29.724000: SNI hostname set to:
> > bwitmasbu.blob.core.windows.net
> > 2025-01-15-14.31.29.765000:
> > ----------------------------------------------------------------------
> > ---------------
> > 2025-01-15-14.31.29.765000: Dump of server-side certificate
> information:
> > 2025-01-15-14.31.29.765000:
> > ----------------------------------------------------------------------
> > ---------------
> > 2025-01-15-14.31.29.765000: Cert Validation Code = 0
> > 2025-01-15-14.31.29.781000: -----BEGIN CERTIFICATE-----
> > 2025-01-15-14.31.29.782000: -----END CERTIFICATE----- Serial Number:
> > 33:00:BE:F5:4D:E1:54:38:54:17:5C:9A:A6:00:00:00:BE:F5:4D
> > Common Name: *.blob.core.windows.net
> > Country: US
> > State/Province: WA
> > Locality: Redmond
> > Org Unit: Microsoft Corporation
> > Issuer CN: Microsoft Azure RSA TLS Issuing CA 07 Issuer Country: US
> > Issuer Org: Microsoft Corporation
> > Version: 3
> > not before: 20241029055028
> > Unknown Field: 05:50:28 29-10-2024
> > not after: 20250427055028
> > Unknown Field: 05:50:28 27-04-2025
> > pub key alg: 1.2.840.113549.1.1.1
> > pub key alg: 1.2.840.113549.1.1.1
> > signature algorithm: 1.2.840.113549.1.1.12 Unknown Field:
> > 0382010F003082010A0282010100B Unknown Field: 2048 Unknown Field:
> > 8921195EBF800F0CE57E90D9F18AB Unknown Field: 1.2.840.113549.2.5
> > Unknown Field: 5A26298A7B4AED818DA511F4F3523 Unknown Field:
> > 45469BCB102BFA06BCF1D0930C4E4 Unknown Field: 5 Unknown Field:
> > *.z50.blob.storage.azure.net Unknown Field:
> > *.z49.blob.storage.azure.net Unknown Field:
> > *.z48.blob.storage.azure.net .....
> > Unknown Field: *.z2.blob.storage.azure.net Unknown Field:
> > *.z1.blob.storage.azure.net Unknown Field: *.blob.storage.azure.net
> > Unknown Field: *.syd27prdstr03a.store.core.windows.net
> > Unknown Field: *.blob.core.windows.net Unknown Field: 0 Unknown
> Field:
> > 1.3.6.1.5.5.7.3.1 Unknown Field: 1.3.6.1.5.5.7.3.2 Unknown Field:
> > 2.23.140.1.2.2 Unknown Field: 1.3.6.1.4.1.311.76.509.1.1 Unknown
> > Field:
> >
> [2]
>
[2]
http://www.microsoft.com/pkiops/crl/Microsoft%20Azure%20RSA%20TLS%20Is
> > suing%20CA%2007.crl Unknown Field: [3]
> [3]
http://oneocsp.microsoft.com/ocsp
> > Unknown Field:
> >
> [4]
>
[4]
http://www.microsoft.com/pkiops/certs/Microsoft%20Azure%20RSA%20TLS%20
> > Issuing%20CA%2007%20-%20xsign.crt
> >
> > 2025-01-15-14.31.29.784000: SetError() #49: SSL_protocol: Unknown
> > protocol
> > 5000
> > 2025-01-15-14.31.29.784000: Protocol Used:
> > 2025-01-15-14.31.29.784000: Protocol Used:
> > 2
> > 2025-01-15-14.31.29.784000: http_persist_req2(PUT) entered.
> > 2
> > 2025-01-15-14.31.29.784000: http_long_ParseURL(): entered
> > 2
> > 2025-01-15-14.31.29.784000: http_long_ParseURL(): entered
> > 2
> > 2025-01-15-14.31.29.784000: do_oper2(PUT): entered
> > 2
> > 2025-01-15-14.31.29.784000: There are 0 cookies in the cache
> > 2
> > 2025-01-15-14.31.29.784000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0 2
> > 2025-01-15-14.31.29.784000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=0, len=285 P
> > PUT
> > /bwitmasbu/LIB_DATA_20250115?SI=FileUploads&SIG=FhFz%2FW1evPlFrqm%2BDr
> > xp3BUQAF9810h1HU2M5YmS4iw%3D&SPR=https&SR=c&ST=2024-10-01TH
> > Host: bwitmasbu.blob.core.windows.net
> > U
> > User-Agent: http-api/1.43
> > C
> > Content-Type: text/xml
> > C
> > Content-Length: 83833602209
> >
> > 2
> > 2025-01-15-14.31.29.785000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0 2
> > 2025-01-15-14.31.29.785000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=0, len=26 x
> > x-ms-blob-type:BlockBlob
> >
> > 2
> > 2025-01-15-14.31.29.785000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.31.29.785000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=0, len=2
> >
> >
> > 2025-01-15-14.31.29.785000: sendraw2(): entered
> > 2025-01-15-14.31.29.785000: sendraw2(): data sent=0, chunk size=8192,
> > calling Callback to get data...
> > 2025-01-15-14.31.29.785000: sendraw2(): data sent=0, chunk len=8192,
> > timeout=60, calling comm_BlockWrite...
> > 2025-01-15-14.31.29.785000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.31.29.785000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=0, len=8192
> >
>
>
ÇÅÕððññðåÖÓñÇÅÕððñð@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\åÙãòõöÒ@@
> > B@ ß@ ß@
> > ðð
> > ` ò ó
> > PÄÕ 0 PÄÕ 0P PÄÕ 0 ãÕ
> > 2025-01-15-14.31.29.785000: sendraw2(): comm_blockWrite returned 8192
> > 2025-01-15-14.31.29.785000: sendraw2(): data sent=8192, chunk
> > size=8192, calling Callback to get data...
> > 2025-01-15-14.31.29.785000: sendraw2(): data sent=8192, chunk
> > len=8192, timeout=60, calling comm_BlockWrite...
> > 2025-01-15-14.31.29.785000: CommSSL_BlockWrite():
> > gsk_secure_soc_write socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.31.29.786000: CommSSL_BlockWrite():
> > gsk_secure_soc_write rc=0, len=8192
> >
> > We do see some intermittent rc=502 like this in the log
> > 2025-01-15-14.31.30.066000: sendraw2(): comm_blockWrite returned 8192
> > 2025-01-15-14.31.30.066000: sendraw2(): data sent=548864, chunk
> > size=8192, calling Callback to get data...
> > 2025-01-15-14.31.30.066000: sendraw2(): data sent=548864, chunk
> > len=8192, timeout=60, calling comm_BlockWrite...
> > 2025-01-15-14.31.30.066000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.31.30.066000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=502, len=0
> > 2025-01-15-14.31.30.066000: CommSSL_BlockWrite(): before select socket
> > fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.31.30.066000: CommSSL_BlockWrite(): before select:
> > select fd=3, readset=*NULL, writeset=000000080000000000000000000000
> > 2025-01-15-14.31.30.080000: CommSSL_BlockWrite(): after select socket
> > fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.31.30.080000: CommSSL_BlockWrite(): after select: select
> > fd=3, readset=*NULL, writeset=0000000800000000000000000000000
> > 2025-01-15-14.31.30.080000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > socket fd=3, flags=00000084, blocking=0
> > 2025-01-15-14.31.30.080000: CommSSL_BlockWrite(): gsk_secure_soc_write
> > rc=0, len=8192
> >
> > Brisbane - Sydney - Melbourne
> >
> >
> > Don Brown
> >
> > Senior Consultant
> >
> >
> >
> >
> > P: 1300 088 400
> >
> >
> >
> >
> > DISCLAIMER. Before opening any attachments, check them for viruses and
> > defects. This email and its attachments may contain confidential
> > information. If you are not the intended recipient, please do not
> > read, distribute or copy this email or its attachments but notify
> > sender and delete it. Any views expressed in this email are those of
> > the individual sender
> > --
> > This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
> > list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To
> > subscribe, unsubscribe, or change list options,
> > visit: [5][5]
https://lists.midrange.com/mailman/listinfo/midrange-l
> > or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
> > Before posting, please take a moment to review the archives at
> > [6][6]
https://archive.midrange.com/midrange-l.
> >
> > Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
> > related questions.
> >
> >
> --
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
> list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To
> subscribe,
> unsubscribe, or change list options,
> visit: [7][7]
https://lists.midrange.com/mailman/listinfo/midrange-l
> or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
> Before posting, please take a moment to review the archives at
> [8][8]
https://archive.midrange.com/midrange-l.
>
> Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
> related
> questions.
>
> --
> Message protected by MailGuard: e-mail anti-virus, anti-spam and content
> filtering.
> [9][9]
https://www.mailguard.com.au
>
> References
>
> Visible links
> 1. [10]
https://www.oneteamit.com.au/
> 2.
>
[11]
http://www.microsoft.com/pkiops/crl/Microsoft%20Azure%20RSA%20TLS%20Is
> 3. [12]
http://oneocsp.microsoft.com/ocsp
> 4.
>
[13]
http://www.microsoft.com/pkiops/certs/Microsoft%20Azure%20RSA%20TLS%20
> 5. [14]
https://lists.midrange.com/mailman/listinfo/midrange-l
> 6. [15]
https://archive.midrange.com/midrange-l.
> 7. [16]
https://lists.midrange.com/mailman/listinfo/midrange-l
> 8. [17]
https://archive.midrange.com/midrange-l.
> 9. [18]
https://www.mailguard.com.au/
> --
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
> list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To
> subscribe, unsubscribe, or change list options,
> visit: [19]
https://lists.midrange.com/mailman/listinfo/midrange-l
> or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
> Before posting, please take a moment to review the archives at
> [20]
https://archive.midrange.com/midrange-l.
>
> Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
> related questions.
>
>
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: [21]
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
[22]
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.
--
Message protected by MailGuard: e-mail anti-virus, anti-spam and content
filtering.
[23]
https://www.mailguard.com.au
References
Visible links
1.
https://www.oneteamit.com.au/
2.
http://www.microsoft.com/pkiops/crl/Microsoft%20Azure%20RSA%20TLS%20Is
3.
http://oneocsp.microsoft.com/ocsp
4.
http://www.microsoft.com/pkiops/certs/Microsoft%20Azure%20RSA%20TLS%20
5.
https://lists.midrange.com/mailman/listinfo/midrange-l
6.
https://archive.midrange.com/midrange-l.
7.
https://lists.midrange.com/mailman/listinfo/midrange-l
8.
https://archive.midrange.com/midrange-l.
9.
https://www.mailguard.com.au/
10.
https://www.oneteamit.com.au/
11.
http://www.microsoft.com/pkiops/crl/Microsoft%20Azure%20RSA%20TLS%20Is
12.
http://oneocsp.microsoft.com/ocsp
13.
http://www.microsoft.com/pkiops/certs/Microsoft%20Azure%20RSA%20TLS%20
14.
https://lists.midrange.com/mailman/listinfo/midrange-l
15.
https://archive.midrange.com/midrange-l.
16.
https://lists.midrange.com/mailman/listinfo/midrange-l
17.
https://archive.midrange.com/midrange-l.
18.
https://www.mailguard.com.au/
19.
https://lists.midrange.com/mailman/listinfo/midrange-l
20.
https://archive.midrange.com/midrange-l.
21.
https://lists.midrange.com/mailman/listinfo/midrange-l
22.
https://archive.midrange.com/midrange-l.
23.
https://www.mailguard.com.au/
As an Amazon Associate we earn from qualifying purchases.