Difference between revisions of "Unit Transport"
Line 832: | Line 832: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
<pre style="border: 0; padding-bottom:0px;">function In6AddrToString(const AAddress:TIn6Addr):String;</pre> | <pre style="border: 0; padding-bottom:0px;">function In6AddrToString(const AAddress:TIn6Addr):String;</pre> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert an In6Addr to a String</div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 844: | Line 844: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
<pre style="border: 0; padding-bottom:0px;">function StringToIn6Addr(const AAddress:String):TIn6Addr;</pre> | <pre style="border: 0; padding-bottom:0px;">function StringToIn6Addr(const AAddress:String):TIn6Addr;</pre> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a String to an In6Addr</div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Line 857: | Line 857: | ||
<pre style="border: 0; padding-bottom:0px;">function In6AddrIsEqual(const AAddress1,AAddress2:TIn6Addr):Boolean;</pre> | <pre style="border: 0; padding-bottom:0px;">function In6AddrIsEqual(const AAddress1,AAddress2:TIn6Addr):Boolean;</pre> | ||
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check the supplied addresses to see if they are the same</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check the supplied addresses to see if they are the same</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function In6AddrIsNone(const AAddress:TIn6Addr):Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check the supplied address to see if it is IN6ADDR_NONE</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" |
Latest revision as of 05:06, 5 March 2025
Return to Unit Reference
Contents
[hide]Description
Ultibo Network Transport Interface unit
Notes:
Includes all global transport definitions plus base class for Network transports.
Currently supported transports are IP, ARP, RARP, IPX and IP6.
All HostToNetwork swaps occur at the level where they are appropriate (ie the level of their header).
Bindings is provided to support Transports (such as IP) which can provide multiple addresses on a single adapter. It is not used by the Protocol or Winsock layer and is only used by the transport where appropriate. In such cases the ConfigType in the Adapter object is not used and the Binding is used instead.
Constants
*_TYPE_*
*_HOST_*
*_ROUTE_*
*_ADDRESS_*
TTL_*
SHUTDOWN_*
SELECT_*
SS_*
IP_*
IP6_*
Type definitions
Transport statistics
IPv4 nameservers
PIPNameservers = ^TIPNameservers;
TIPNameservers = array[0..MAX_NAME_SERVERS - 1] of TInAddr;
IPv6 nameservers
PIP6Nameservers = ^TIP6Nameservers;
TIP6Nameservers = array[0..MAX_NAME_SERVERS - 1] of TIn6Addr;
Transport callback
TTransportCallback = function(ATransport:TNetworkTransport):Boolean of object;
|
Monitor callback
TMonitorCallback = function(AMonitor:TNetworkMonitor):Boolean of object;
|
Authenticator callback
TAuthenticatorCallback = function(AAuthenticator:TNetworkAuthenticator):Boolean of object;
|
Transport packet handler
TTransportPacketHandler = function(AHandle:THandle; ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean of object;
|
Transport control handler
TTransportControlHandler = function(AHandle:THandle; ASource,ADest:Pointer; AProtocol,ACommand,ACode:Word; AAddress,AData:Pointer; ASize:Integer):Boolean of object;
|
Transport filter handler
TTransportFilterHandler = function(AHandle:THandle; ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean of object;
|
Transport configuration handler
TTransportConfigHandler = function(AHandle:THandle; AAdapter:TTransportAdapter; ACommand:Word):Boolean of object;
|
Class definitions
Transport specific classes
TTransportManager = class(TObject)
|
TTransportBuffer = class(TObject)
|
TTransportBufferEx = class(TObject)
|
TTransportAdapter = class(TListObject)
|
TTransportBinding = class(TListObject)
|
TTransportProtocol = class(TListObject)
|
TTransportFilter = class(TListObject)
|
TTransportConfig = class(TListObject)
|
TNetworkTransport = class(TListObject)
|
TMonitorAdapter = class(TListObject)
|
TNetworkMonitor = class(TListObject)
|
TAuthenticatorAdapter = class(TListObject)
|
TNetworkAuthenticator = class(TListObject)
|
TTransportSocket = class(TListObject)
|
TSocketList = class(TObject)
|
TSocketState = class(TObject)
|
TSocketBuffer = class(TObject)
|
TSocketOptions = class(TObject)
|
TTransportState = class(TObject)
|
TTransportOptions = class(TObject)
|
THostEntry = class(TListObject)
|
TRouteEntry = class(TListObject)
|
TAddressEntry = class(TListObject)
|
TNetworkEntry = class(TListObject)
|
TServEntry = class(TListObject)
|
TProtoEntry = class(TListObject)
|
Public variables
Transport specific variables
TransportManager:TTransportManager;
|
Function declarations
Initialization functions
Transport functions
function InAddrToHost(const AAddress:TInAddr):TInAddr; inline;
function InAddrToNetwork(const AAddress:TInAddr):TInAddr; inline;
function InAddrToString(const AAddress:TInAddr):String;
function StringToInAddr(const AAddress:String):TInAddr;
function InAddrIsEqual(const AAddress1,AAddress2:TInAddr):Boolean;
function InAddrIsNone(const AAddress:TInAddr):Boolean;
function InAddrIsDefault(const AAddress:TInAddr):Boolean;
function InAddrIsLoopback(const AAddress:TInAddr):Boolean;
function InAddrIsBroadcast(const AAddress:TInAddr):Boolean;
function InAddrIsMulticast(const AAddress:TInAddr):Boolean;
function In6AddrToString(const AAddress:TIn6Addr):String;
function StringToIn6Addr(const AAddress:String):TIn6Addr;
function In6AddrIsEqual(const AAddress1,AAddress2:TIn6Addr):Boolean;
function In6AddrIsNone(const AAddress:TIn6Addr):Boolean;
function In6AddrIsDefault(const AAddress:TIn6Addr):Boolean;
function In6AddrIsLoopback(const AAddress:TIn6Addr):Boolean;
function In6AddrIsLinkLocal(const AAddress:TIn6Addr):Boolean;
function In6AddrIsSiteLocal(const AAddress:TIn6Addr):Boolean;
function In6AddrIsV4Mapped(const AAddress:TIn6Addr):Boolean;
function In6AddrIsV4Compatible(const AAddress:TIn6Addr):Boolean;
function In6AddrIsMulticast(const AAddress:TIn6Addr):Boolean;
function In6AddrIsMulticastNodeLocal(const AAddress:TIn6Addr):Boolean;
function In6AddrIsMulticastLinkLocal(const AAddress:TIn6Addr):Boolean;
function In6AddrIsMulticastSiteLocal(const AAddress:TIn6Addr):Boolean;
function In6AddrIsMulticastOrgLocal(const AAddress:TIn6Addr):Boolean;
function In6AddrIsMulticastGlobal(const AAddress:TIn6Addr):Boolean;
function GetChecksum(ABuffer:Pointer; AOffset,ALength:Word):Word;
function GetChecksum2(APseudo,ABuffer:Pointer; APseudoLength,ABufferOffset,ABufferLength:Word):Word;
function GetChecksum3(APseudo,AHeader,AData:Pointer; APseudoLength,AHeaderLength,ADataOffset,ADataLength:Word):Word;
function GetChecksum4(APseudo,AHeader,AOptions,AData:Pointer; APseudoLength,AHeaderLength,AOptionsLength,ADataOffset,ADataLength:Word):Word;
Transport helper functions
Return to Unit Reference