[comp.protocols.tcp-ip] How multiple OOB are hold/mark in socket with only one so_oobmark?

TAYBENGH@NUSDISCS.BITNET (02/28/91)

Hi netlanders,
        After reading thru the implementation of socket and TCP/IP from
the book The Design and Implementation of the 4.3BSD OS (published by
Addison-Wesley), I am puzzled of implementing OOB in the socket. Inside
the book (pg 335) the authors describe that multiple OOB messages can be
hold in a protocol if the user specify the SO_OOBINLINE option to force the
OOB data to be placed in the normal receive queue. However, according to the
data structure of socket, so_oobmark is used to mark the offset of the LAST
OOB message from the beginning of the receive queue. My question is:
        How can a so_oobmark to mark different OOB messages? Or does it
means that although many OOB messages can be hold in the receive queue,
only ONE of them can be received using so_oobmark? If so, what is the purpose
of holding multiple messages if we can not differentiate in-band and the
rest OOB data?
        Thanks in advance.

- Beng Hang
  Dept of Information Systems and Computer Science
  National University of Singapore