Oberon || Library || Module Index || Search Engine || Definition || Module
CONST nbytes = 16; TYPE Address = ARRAY nbytes OF CHAR; TYPE PortNumber = IPv4Addresses.PortNumber; TYPE SocketAddress = RECORD (Objects.ObjectRec) host: Address; portnum: PortNumber; END;
CONST addrlen = 32; (* size of struct sockaddr_in6 in <sys/socket.h> *) TYPE SysAddress = ARRAY addrlen OF BYTE;
CONST invalidInputChar = 0; CONST multipleDoubleColons = 1; CONST unexpectedEOF = 2; CONST valueOutOfRange = 3; CONST tripleColon = 4; CONST errors = 5; TYPE ErrorCode = SHORTINT; (* invalidInputChar... *) TYPE ErrorEvent = POINTER TO ErrorEventRec; TYPE ErrorEventRec = RECORD (Events.EventRec) errorcode: ErrorCode; pos: Streams.Count; END; VAR errormsg: ARRAY errors OF Events.Message; VAR error: Events.EventType;
PROCEDURE GetPort(address: SocketAddress) : INTEGER; PROCEDURE SetPort(VAR address: SocketAddress; portnum: INTEGER); PROCEDURE IsAnyAddr(address: Address) : BOOLEAN; PROCEDURE SetAnyAddr(VAR address: Address);
PROCEDURE ConvertToSys(address: SocketAddress; VAR sysaddr: SysAddress); PROCEDURE ConvertFromSys(sysaddr: SysAddress; VAR address: SocketAddress);
PROCEDURE ReadText(s: Streams.Stream; VAR ipaddr: Address) : BOOLEAN; PROCEDURE WriteText(s: Streams.Stream; ipaddr: Address); PROCEDURE CreateAddress(VAR ipaddr: Address; text: ARRAY OF CHAR);
SysAddress represents IPv6 addresses in an internal form which can be passed to the operations of SysSockets. ConvertToSys and ConvertFromSys allow IPv6 addresses to be converted to and from the internal form.
IPv6 addresses in a textual representation that conforms to RFC 1884, section 2.2, paragraphs 1 and 2 (but not 3) can be read by ReadText. WriteText prints ipaddr in the compressed notation to s. CreateAddress allows to create an IPv6 address directly from a string that is accepted by ReadText.
CreateAddress asserts that text is accepted by ReadText.
Oberon || Library || Module Index || Search Engine || Definition || Module