× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: QTVOPNVT API
  • From: "Simon Coulter" <shc@xxxxxxxxxxxxxxxxx>
  • Date: Wed, 02 Aug 00 13:09:54 +1000


Hello Ken,

Since I was the one warning about the 4-byte alignment error I guess I should 
answer ...

Parameter 11 is a variable length structure.  

The first 4-bytes indicate the count of records that follow (since there are 7 
possible 
key values -- at VRM440 -- this field should be a number between 1 and 7 
inclusive).

Each record has a 4-byte key, a 4-byte length, and the data.  The key point is 
that the 
data is variable length.  The API documentation shows the length could be up to 
10-bytes 
long if it is a name (e.g., user profile, device, etc.) or up to 20-bytes long 
if it is 
the network address.  Conceivably, there could be other keys added in the 
future which 
may require different data lengths.  So if you are passing in the profile name 
the 
structure looks like:

        count BIN(4)  ==> set to 1
        key BIN(4)  ==> set to 1
        len BIN(4)  ==> set to 8
        prf CHAR(8)  ==> set to FREDNURK

In hex: 00000001 00000001 00000008 C6D9C5C4 D5E4D9D2

If passing the profile, password, and device name, the structure looks like:

        count BIN(4)  ==> set to 3
        key BIN(4)  ==> set to 1
        len BIN(4)  ==> set to 8
        prf CHAR(8)  ==> set to FREDNURK
        key BIN(4)  ==> set to 2
        len BIN(4)  ==> set to 6
        pwd CHAR(6)  ==> set to XYZ123
        key BIN(4)  ==> set to 6
        len BIN(4)  ==> set to 10
        dev CHAR(10)  ==> set to QPADEV0001

In hex: 00000003 00000001 00000008 C6D9C5C4 D5E4D9D2 00000002 00000006 E7E8E9F1 
F2F30000
00060000 000AD8D7 C1C4C5E5 F0F0F0F1

Note how the numeric values are NOT aligned on a 4-byte boundary?

If the data values change then the length, and therefore the actual positions 
of the 
data, will also change.  Because you can pass each key structure in any order 
and can 
omit keys you can't use a fixed data structure but there is no reason why you 
can't 
allocate a chunk of space and use fixed-length based structures to map it 
accordingly.  
You will need to move the basing pointer up by the actual amount of data rather 
than the 
DS length.

I can't show you my code for this 'cause I don't own it but the above 
description does 
work.  You will have to spend a little time with debug ensuring the structure 
is built 
correctly.

Regards,
Simon Coulter.

«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
«» FlyByNight Software         AS/400 Technical Specialists       «»
«» Eclipse the competition - run your business on an IBM AS/400.  «»
«»                                                                «»
«» Phone: +61 3 9419 0175      Mobile: +61 0411 091 400           «»
«» Fax:   +61 3 9419 0175      mailto: shc@flybynight.com.au      «»
«»                                                                «»
«» Windoze should not be open at Warp speed.                      «»
«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.