X-Git-Url: http://www.lcore.org/git/lcore.git/blobdiff_plain/954f0e552e0d08f00fe962dd3bc9c1a324841aa2..9763940f8849e5c807566157829a1e6d2c9172ee:/binipstuff.pas diff --git a/binipstuff.pas b/binipstuff.pas index 94a0c03..d622029 100644 --- a/binipstuff.pas +++ b/binipstuff.pas @@ -4,27 +4,28 @@ ----------------------------------------------------------------------------- } unit binipstuff; +{$ifdef fpc} +{$mode delphi} +{$endif} + interface {$include lcoreconfig.inc} uses -{$ifndef win32} +{$ifndef mswindows} sockets, {$endif} pgtypes; -{$ifdef fpc} - {$mode delphi} -{$endif} -{$ifdef cpu386}{$define i386}{$endif} -{$ifdef i386}{$define ENDIAN_LITTLE}{$endif} + +{$include pgtypes.inc} {$include uint32.inc} const hexchars:array[0..15] of ansichar='0123456789abcdef'; - {$ifdef win32} + {$ifdef mswindows} AF_INET=2; AF_INET6=23; {$else} @@ -38,7 +39,7 @@ const type {$ifdef ipv6} - {$ifdef win32} + {$ifdef mswindows} {$define want_Tin6_addr} {$endif} {$ifdef ver1_0} @@ -69,7 +70,7 @@ type {$endif} end; - {$ifdef win32} + {$ifdef mswindows} TInetSockAddr = packed Record family:Word; port :Word; @@ -333,7 +334,7 @@ written by beware - implementation does not depend on other ipv6 code such as the tin6_addr type, the parameter can also be untyped. -- it is host endian neutral - binary format is aways network order +- it is host endian neutral - binary format is always network order - it supports compression of zeroes - it supports ::ffff:192.168.12.34 style addresses - they are made to do the Right Thing, more efficient implementations are possible @@ -384,6 +385,13 @@ begin end; end; end; + + {run length at least 2 0 words} + if (runlength = 1) then begin + runlength := 0; + runbegin := 0; + end; + result := ''; for a := 0 to runbegin-1 do begin if (a <> 0) then result := result + ':';