A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/ncbi__ipv6_8c_source.html below:

NCBI C++ ToolKit: src/connect/ncbi_ipv6.c Source File

60

memcpy(&word, &

addr

->octet[10],

sizeof

(word));

63  if

(word != 0x0000 || !compat)

66

memcpy(&temp, &

addr

->octet[12],

sizeof

(temp));

79

memcpy(&word, &

addr

->octet[10],

sizeof

(word));

80  if

(word != 0x0000 && word != 0xFFFF)

82

memcpy(&temp, &

addr

->octet[12],

sizeof

(temp));

102  static const size_t size

=

sizeof

(ipv4);

104  return

(

unsigned int

)(-1L)

;

112

memcpy( &ipv4, &

addr

->octet[4],

size

);

115

memcpy( &ipv4, &

addr

->octet[5],

size

- 1);

116

memcpy((

char

*) &ipv4 +

size

- 1, &

addr

->octet[9], 1);

119

memcpy( &ipv4, &

addr

->octet[6],

size

- 2);

120

memcpy((

char

*) &ipv4 +

size

- 2, &

addr

->octet[9], 2);

123

memcpy( &ipv4, &

addr

->octet[7],

size

- 3);

124

memcpy((

char

*) &ipv4 +

size

- 3, &

addr

->octet[9], 3);

127

memcpy( &ipv4, &

addr

->octet[9],

size

);

130

memcpy( &ipv4, &

addr

->octet[12],

size

);

133

ipv4 = (

unsigned int

)(-1L)

;

142  unsigned int

ipv4,

size_t

pfxlen)

144  static const size_t size

=

sizeof

(ipv4);

149

memset(

addr

, 0,

sizeof

(*

addr

));

150

memset(

addr

->octet + (5 << 1),

'\xFF'

,

sizeof

(

unsigned short

));

155

memcpy(&

addr

->octet[4], &ipv4,

size

);

158

memcpy(&

addr

->octet[5], &ipv4,

size

- 1);

159

memcpy(&

addr

->octet[9], (

char

*) &ipv4 +

size

- 1, 1);

162

memcpy(&

addr

->octet[6], &ipv4,

size

- 2);

163

memcpy(&

addr

->octet[9], (

char

*) &ipv4 +

size

- 2, 2);

166

memcpy(&

addr

->octet[7], &ipv4,

size

- 3);

167

memcpy(&

addr

->octet[9], (

char

*) &ipv4 +

size

- 3, 3);

170

memcpy(&

addr

->octet[9], &ipv4,

size

);

173

memcpy(&

addr

->octet[12], &ipv4,

size

);

188  const char

*

str

,

size_t len

)

194  unsigned char

*ptr = (

unsigned char

*) &

tmp

;

197  for

(

n

= 0;

n

<

len

; ++

n

) {

199  if

(

'0'

<= c && c <=

'9'

) {

201  if

(was_digit && !*ptr)

203  val

= (

unsigned int

)(*ptr * 10 + (c -

'0'

));

206

*ptr = (

unsigned

char)

val

;

212

}

else if

(c ==

'.'

) {

213  if

(!was_digit || octets >= 4)

230  char tmp

[

sizeof

(

"255.255.255.255"

)];

231  unsigned char

* ptr = (

unsigned char

*) src;

233

= (size_t) sprintf(

tmp

,

"%u.%u.%u.%u"

, ptr[0], ptr[1], ptr[2], ptr[3]);

240  const char

*

str

,

size_t len

)

246

} token[

sizeof

(

addr

->octet) /

sizeof

(word) + 1];

247  size_t

maxt =

sizeof

(token) /

sizeof

(token[0]) - 1,

t

,

n

;

254  if

(

len

< 2 || (

str

[

n

= 0] ==

':'

&&

str

[++

n

] !=

':'

))

258

token[

t

= 0].ptr =

str

+

n

;

261  if

(

n

==

len

||

str

[

n

] ==

':'

) {

262

token[

t

].len = (size_t)(&

str

[

n

] - token[

t

].ptr);

263  if

(token[

t

].

len

) {

279

token[

t

].ptr =

str

+

n

;

283

token[

t

].len = (size_t)(&

str

[

n

] - token[

t

].ptr);

284  if

(token[

t

].

len

) {

285  if

(

str

[

n

] ==

'.'

) {

286  if

(

t

<= maxt -

sizeof

(

ip

) /

sizeof

(word)) {

291  if

(end && *end !=

':' 292

&&

t

<= (maxt -=

sizeof

(

ip

) /

sizeof

(word))) {

293

token[

t

].len = (size_t)(end - token[

t

].ptr);

306

}

while

(

n

<=

len

);

309  if

(

t

< maxt && !gap)

313  for

(

n

= 0;

n

<

t

; ++

n

) {

315  if

(*token[

n

].ptr !=

':'

) {

320  val

= strtol(token[

n

].ptr, &end, 16);

321  if

(errno ||

val

^ (

val

& 0xFFFF))

323  assert

(end == token[

n

].ptr + token[

n

].

len

- (*end ==

':'

));

324  if

(*end ==

':'

&&

n

==

t

- !ipv4)

327

memcpy(dst, &word,

sizeof

(word));

328

dst +=

sizeof

(word);

330

gap = (maxt -

t

) *

sizeof

(word) +

sizeof

(word);

336

memcpy(dst, &

ip

,

sizeof

(

ip

));

341  return

token[

t

- 1].ptr + token[

t

- 1].len;

346  const char

*

str

,

size_t len

)

356  for

(

n

= 0;

n

<

len

; ++

n

) {

365  const char

*

str

,

size_t len

)

370

memset(

addr

, 0,

sizeof

(*

addr

));

375  for

(

n

= 0;

n

<

len

; ++

n

) {

387  char

ipv4[

sizeof

(

"255.255.255.255"

)];

388  size_t i

,

n

, pos,

len

, zpos, zlen;

394  n

=

sizeof

(

addr

->octet) -

sizeof

(

ip

);

395

memcpy(&

ip

,

addr

->octet +

n

,

sizeof

(

ip

));

399  n

=

sizeof

(

addr

->octet) /

sizeof

(word);

403

pos =

i

= zpos = zlen = 0;

406

memcpy(&word, &

addr

->octet[

i

*

sizeof

(word)],

sizeof

(word));

426  if

(zlen && zpos ==

i

) {

435

memcpy(&word, &

addr

->octet[

i

*

sizeof

(word)],

sizeof

(word));

436

ptr += sprintf(ptr, &

":%x"

[!

i

],

447  n

= (size_t)(ptr - ipv6);

450

memcpy(

buf

, ipv6,

n

);

452

memcpy(

buf

, ipv4,

i

);

509  char tmp

[

sizeof

(

addr

->octet)*4 + 16

], *dst =

tmp

;

511  const unsigned char

* src;

521

src =

addr

->octet +

sizeof

(

addr

->octet) - 1;

524  for

(

n

= 0;

n

<

sizeof

(

unsigned int

); ++

n

) {

525  size_t

off = (size_t)sprintf(dst,

"%d."

, *src--);

531  for

(

n

= 0;

n

<

sizeof

(

addr

->octet); ++

n

) {

532  size_t

off = (size_t)sprintf(dst,

"%x.%x."

, *src & 0xF, *src >> 4);

551  const char

*

str

,

size_t len

)

556  unsigned char

* ptr = (

unsigned char

*) &temp +

sizeof

(temp);

558  if

(

len

< 7

|| 15

<

len

)

560  for

(

n

= 0;

n

<

sizeof

(temp); ++

n

) {

565

d = strtol(

str

, &e, 10);

566  if

(errno ||

str

== e || e -

str

> 3 || *e !=

'.' 568

|| sprintf(s,

"%u"

, (

unsigned int

) d) != (

int

)(e -

str

)) {

572

*--ptr = (

unsigned

char) d;

582  const char

*

str

,

size_t len

)

584  static const char

xdigits[] =

"0123456789abcdef"

;

590  if

(

len

!= 4 *

sizeof

(

addr

->octet) - 1)

592

dst = temp.octet +

sizeof

(temp.octet) - 1;

593  for

(

n

= 0;

n

< 2 *

sizeof

(

addr

->octet); ++

n

) {

594  const char

* ptr = strchr(xdigits,

tolower

((

unsigned char

)(*

str

++)));

597  if

(!ptr || *

str

++ !=

'.'

)

599  val

= (

unsigned

char)(ptr - xdigits);

618  const char

*

str

,

size_t len

,

628

memset(

addr

, 0,

sizeof

(*

addr

));

634  for

(

n

= 0;

n

<

len

; ++

n

) {

640  for

(

n

= 0;

n

<

len

; ++

n

) {

648  size_t

dns =

str

[--

n

] ==

'.'

? 1

: 0

;

679  const char

*

str

,

size_t len

)

688  const char

*

str

,

size_t len

)

697  const char

*

str

,

size_t len

)

711  if

(!base || !

addr

)

714  if

(bits > (

sizeof

(base->

octet

) << 3))

717  for

(

n

= 0;

n

<

sizeof

(

addr

->octet); ++

n

) {

721

}

else if

(8 > bits) {

722  mask

= (

unsigned

char)(~0

U

<< (8 - bits));

725  mask

= (

unsigned

char)(~0

U

);

742  for

(

n

= 0;

n

<

sizeof

(

addr

->octet); ++

n

) {

744  addr

->octet[

n

] = 0;

745

}

else if

(8 > bits) {

746  unsigned char mask

= (

unsigned

char)(~0

U

<< (8 - bits));

752  if

(

addr

->octet[

n

])

768  if

(bits <

sizeof

(

addr

->octet) * 8)

769

bits =

sizeof

(

addr

->octet) * 8 - bits;

772  for

(

n

= 0;

n

<

sizeof

(

addr

->octet); ++

n

) {

774  if

(

addr

->octet[

n

])

776

}

else if

(8 > bits) {

777  unsigned char mask

= (

unsigned

char)(~0

U

<< (8 - bits));

783  addr

->octet[

n

] = 0;

ncbi::TMaskedQueryRegions mask

static const char * str(char *buf, int n)

#define SOCK_NetToHostLong

#define SOCK_NetToHostShort

unsigned short SOCK_HostToNetShort(unsigned short value)

See man for the BSDisms, htonl() and htons().

int SOCK_ntoa(unsigned int addr, char *buf, size_t bufsize)

Convert IP address to a string in dotted notation.

unsigned int

A callback function used to compare two keys in a database.

const struct ncbi::grid::netcache::search::fields::SIZE size

int NcbiIsEmptyIPv6(const TNCBI_IPv6Addr *addr)

Return non-zero if the address is empty (either as NULL or IPv6 or IPv4); return zero otherwise.

const char * NcbiStringToIPv6(TNCBI_IPv6Addr *addr, const char *str, size_t len)

Convert into an IPv6 address, the first "len" (or "strlen(str)" if "len" is 0) bytes of "str" from a ...

const char * NcbiDNSIPToAddr(TNCBI_IPv6Addr *addr, const char *str, size_t len)

Convert into an IPv6 address, the first "len" (or "strlen(str)" if "len" is 0) bytes of "str",...

unsigned int TNcbiIP_Form

static char * x_IPv6ToString(char *buf, size_t bufsize, const TNCBI_IPv6Addr *addr)

static char * x_IPv4ToString(char *buf, size_t bufsize, const void *src)

unsigned int NcbiIPv6ToIPv4(const TNCBI_IPv6Addr *addr, size_t pfxlen)

Extract and return a network byte order IPv4 embedded address from an IPv6 address,...

char * NcbiAddrToString(char *buf, size_t bufsize, const TNCBI_IPv6Addr *addr)

Convert an IPv6 address into either a full-quad text IPv4 (for IPv4-mapped IPv6 addresses) or a hex c...

static const char * x_DNSToIPv6(TNCBI_IPv6Addr *addr, const char *str, size_t len)

static int x_NcbiIsIPv4(const TNCBI_IPv6Addr *addr, int compat)

int NcbiIPv6Suffix(TNCBI_IPv6Addr *addr, unsigned int bits)

Retain last "bits" in a given "addr", resetting all remaining bits to 0.

TNCBI_IPv6Addr * NcbiIPv4ToIPv6(TNCBI_IPv6Addr *addr, unsigned int ipv4, size_t pfxlen)

Embed a passed network byte order IPv4 address into an IPv6 address using the specified prefix length...

char * NcbiIPv6ToString(char *buf, size_t bufsize, const TNCBI_IPv6Addr *addr)

Convert an IPv6 address into a hex colon-separated text form and store the result in the "buf" of siz...

int NcbiIsIPv4(const TNCBI_IPv6Addr *addr)

Return non-zero(true) if the address is a true IPv4 address (a mapped IPv4 address),...

static const char * x_DNSToIPv4(unsigned int *addr, const char *str, size_t len)

const char * NcbiStringToIPv4(unsigned int *addr, const char *str, size_t len)

Convert into a network byte order IPv4 address, the first "len" (or "strlen(str)" if "len" is 0) byte...

int NcbiIsIPv4Ex(const TNCBI_IPv6Addr *addr, int compat)

Return non-zero(true) if the address is either a mapped IPv4 address or (optionally) an IPv4-compatib...

static const struct SIPDNSsfx kIPv6DNS

char * NcbiIPv4ToString(char *buf, size_t bufsize, unsigned int addr)

Convert a network byte order IPv4 into a full-quad text form and store the result in the "buf" of siz...

int NcbiIPv6Subnet(TNCBI_IPv6Addr *addr, unsigned int bits)

Retain first "bits" in a given "addr", resetting all remaining bits to 0.

const char * NcbiStringToAddr(TNCBI_IPv6Addr *addr, const char *str, size_t len)

Convert into an IPv6 address, the first "len" (or "strlen(str)" if "len" is 0) bytes of "str",...

static const char * x_StringToIPv4(unsigned int *dst, const char *str, size_t len)

int NcbiIsInIPv6Network(const TNCBI_IPv6Addr *base, unsigned int bits, const TNCBI_IPv6Addr *addr)

Return non-zero(true) if "addr" belongs to the network specified as CIDR "base/bits"; return a zero(f...

const char * NcbiAddrToDNS(char *buf, size_t bufsize, const TNCBI_IPv6Addr *addr)

Convert an IPv6 address into either .in-addr.arpa domain (for IPv4-mapped IPv6 addresses) or ....

static const char * x_StringToIPv6(TNCBI_IPv6Addr *addr, const char *str, size_t len)

static const struct SIPDNSsfx kIPv4DNS

const char * NcbiIPToAddr(TNCBI_IPv6Addr *addr, const char *str, size_t len)

Convert into an IPv6 address, the first "len" (or "strlen(str)" if "len" is 0) bytes of "str" from ei...

static const char * s_StringToAddr(TNCBI_IPv6Addr *addr, const char *str, size_t len, TNcbiIP_Form how)

#define CORE_DEBUG_ARG(arg)

static PCRE2_SIZE bufsize


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4