|
The XMIT-Appliction mentioned in .0 replaces our old VMS
XMIT-Appliction. The x25 transmission in VMS was:
1) split up the message in
n times QIO-IO$_WRITEVBLK mit IO$M_MORE function modifier
and segment size 16383 Bytes
2) send the rest of the message without IO$M_MORE
e.g. a message of size 40000 bytes was transmitted by
QIO ( .... QIO-IO$_WRITEVBLK + IO$M_MORE , ... 16383 ...);
QIO ( .... QIO-IO$_WRITEVBLK + IO$M_MORE , ... 16383 ...);
QIO ( .... QIO-IO$_WRITEVBLK , ... 7234 ...);
How to port this logic to the unix x25 api ?
|
| In automatic mode the X.25 software autoatically sets the M-bt to
preserve message boundaries. In "manual" mode the application must take
control of setting the M-bit.
In automatic mode the application must set the socket send buffer size
large enough (I think the default is 4kbytes). Unfortunately you must
know something of the internals to do this.
Given you description of your application, I think the easiest way to
fix the problem is to setup the X.25 call in "manual" mode, then find
out the transmit packet size for the call (there is a x25 library call
that will return this information). Then issue send calls with the M
bit set for every full packet and the M-bit clear on the last packet
worth. Note that UNIX is fussy: the M-bit can ONLY be set for a full
packet (which is why you need to find out the packet size for the
call). This is different from VMS.
|