|
On Aug 22, 2025, at 6:27 PM, Vern Hamberg via RPG400-L <rpg400-l@xxxxxxxxxxxxxxxxxx> wrote:
Nice summary, Daniel, very helpful. I'd forgot the details!
For the hexadecimally-challenged -
So one could take each byte into base 10 and separate them with periods - as your example has it -
0x0A56032A
0A = 10
56 = 86
03 = 3
2A = 42
Hence, 10.86.3.42
I believe I can envision a nifty little RPG subprocedure that could handle this, maybe use an array of uns(3)'s? - but the C version is there, so why bother?
*Regards*
*Vern Hamberg*
IBM Champion 2025 <cid:part1.kTVASdc4.5D1OLEEm@centurylink.net> CAAC (COMMON Americas Advisory Council) IBM Influencer 2023
On 8/22/2025 2:44 PM, Daniel Gross wrote:
Hi Jay,--
this is the IP address in "native" or "binary" - not in the usual "readable" 4-decimal-bytes-separated-by-dots form.
Lets think of an IP address like:
192.168.123.1
That would be 0xC0A87B01 in hex format.
And that would be 3232267009 in decimal.
That's how IP addresses are internally stored. The dotted notation is only for us humans.
Subneting, routing, firewalls - all use these internal forms.
Your address 173409066 would read as 0x0A56032A in hex or 10.86.3.42 in readable (dotted) form.
HTH
Daniel
Am 22.08.2025 um 21:00 schrieb Jay Vaughn<jeffersonvaughn@xxxxxxxxx>:
Charles...
It made a difference for sure but I question if that is really the IP
address...
Here is my DS (with new embedded DS for ip address you pointed out)
dcl-ds ds_connect qualified;
lenConnDsc int(10);
dcl-ds ds_ip4AddressClient;
sin_len int(3);
sin_family int(3);
sin_port uns(5);
sin_addr uns(10);
filler char(12);
end-ds;
clientPWValidated char(1);
workstationType char(14);
sslConnection char(1);
…
EVAL ds_connectDS_CONNECT.LENCONNDSC = 132
DS_CONNECT.DS_IP4ADDRESSCLIENT.SIN_LEN = 16
DS_CONNECT.DS_IP4ADDRESSCLIENT.SIN_FAMILY = 2
DS_CONNECT.DS_IP4ADDRESSCLIENT.SIN_PORT = 56406
DS_CONNECT.DS_IP4ADDRESSCLIENT.SIN_ADDR = 173409066
DS_CONNECT.DS_IP4ADDRESSCLIENT.FILLER = ' '
DS_CONNECT.CLIENTPWVALIDATED = '0'
DS_CONNECT.WORKSTATIONTYPE = 'IBM-3477-FC '
DS_CONNECT.SSLCONNECTION = '1'
DS_CONNECT.IP4ADDRESSSERVER = '███\█À██ '
DS_CONNECT.CLIENTAUTHLEVEL = '0'
DS_CONNECT.RESERVED01 = ' '
DS_CONNECT.CLIENTCERTVALID = 0
DS_CONNECT.OFFSETCLIENTCERT = 1362
DS_CONNECT.CLIENTCERTLEN = 0
DS_CONNECT.DS_IP6ADDRESSCLIENT.SIN_LEN = 28
DS_CONNECT.DS_IP6ADDRESSCLIENT.SIN_FAMILY = 24
What else?
thanks
Jay
On Fri, Aug 22, 2025 at 2:23 PM Jay Vaughn<jeffersonvaughn@xxxxxxxxx>--
wrote:
That’s totally helpful Charles.
Yes I’m overlooking the fact that up address is actually another DS!
Let me address that.
Thank you!
On Aug 22, 2025, at 1:28 PM, Charles Wilt<charles.wilt@xxxxxxxxx> wrote:https://www.ibm.com/docs/en/i/7.4.0?topic=program-init0100-format-connection-description-information
Well, I'd say you're doing something wrong... :p
Show the DS definition and how it's being loaded...
A quick glance at the docs,
and I see that the IP address field is actually another DS...however
Name
Size
Description
sin_len CHAR(1) Size of the sockaddr_in structure
sin_family CHAR(1) Protocol family IP (Version 4) is hex 02
sin_port CHAR(2) 16-bit unsigned port number
sin_addr CHAR(16) 4-byte unsigned
An RPG DS would be
dcl-ds ipAddr;
len int(3);
family int(3);
port uint(5);
addr uint(10);
*n char(12)
end-ds;
Little confused about the sin_addr being defined as char(16) yet the
description is "4-byte unsigned"..
I'm assuming that there's 12 bytes of filler...which looks to be the case
from what you posted...
HTH,
Charles
On Fri, Aug 22, 2025 at 10:57 AM Jay Vaughn<jeffersonvaughn@xxxxxxxxx>
wrote:
has anyone worked with this exit point before.
My exit pgm is coded and my parms are coming in correctly aligned
luck.some of the data is non legible and look like the following...
12:54 PM (0 minutes ago)
to me
EVAL ds_connectDS_CONNECT.LENCONNDSC = 132
DS_CONNECT.IP4ADDRESSCLIENT = '██ÉC█Õ█P '
DS_CONNECT.CLIENTPWVALIDATED = '0'
DS_CONNECT.WORKSTATIONTYPE = 'IBM-3477-FC '
DS_CONNECT.SSLCONNECTION = '1'
DS_CONNECT.IP4ADDRESSSERVER = '███\█À██ '
DS_CONNECT.CLIENTAUTHLEVEL = '0'
DS_CONNECT.RESERVED01 = ' '
DS_CONNECT.CLIENTCERTVALID = 0
DS_CONNECT.OFFSETCLIENTCERT = 1362
DS_CONNECT.CLIENTCERTLEN = 0
DS_CONNECT.IP6ADDRESSCLIENT = '██ÉC ███Õ█P '
DS_CONNECT.IP6ADDRESSSERVER = '███\ ███À██ '
I have tried ccsid(*utf8) for the first ip4 address variable but no
related
Any idea why these are not coming through legible?
tia
Jay
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email:RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:https://lists.midrange.com/mailman/listinfo/rpg400-l
or email:RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
athttps://archive.midrange.com/rpg400-l.
Please contactsupport@xxxxxxxxxxxxxxxxxxxx for any subscription
related questions.questions.--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email:RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:https://lists.midrange.com/mailman/listinfo/rpg400-l
or email:RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
athttps://archive.midrange.com/rpg400-l.
Please contactsupport@xxxxxxxxxxxxxxxxxxxx for any subscription
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email:RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:https://lists.midrange.com/mailman/listinfo/rpg400-l
or email:RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
athttps://archive.midrange.com/rpg400-l.
Please contactsupport@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.