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__lbdns_8c_source.html below:

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

38 #define NCBI_USE_ERRCODE_X Connect_LBSM 52 #include <arpa/inet.h> 54 # define BIND_8_COMPAT 1 56 #include <arpa/nameser.h> 57 #include <netinet/in.h> 61 #define SizeOf(a) (sizeof(a) / sizeof((a)[0])) 65 #define max(a, b) ((a) > (b) ? (a) : (b)) 67 #define SERVNSD_TXT_RR_PORT_LEN (sizeof(SERVNSD_TXT_RR_PORT)-1) 69 #define LBDNS_INITIAL_ALLOC 32 74 #define REG_CONN_LBDNS_DOMAIN DEF_CONN_REG_SECTION "_"

"LBDNS_DOMAIN"

76 #define REG_CONN_LBDNS_DEBUG DEF_CONN_REG_SECTION "_"

"LBDNS_DEBUG"

78 #define REG_CONN_LBDNS_HOST DEF_CONN_REG_SECTION "_"

"LBDNS_HOST"

80 #define REG_CONN_LBDNS_PORT DEF_CONN_REG_SECTION "_"

"LBDNS_PORT"

83 #if defined(HAVE_SOCKLEN_T) || defined(_SOCKLEN_T) 163

sprintf(

buf

,

"TYPE(%hu)"

, (

unsigned short

) atype);

178

sprintf(

buf

,

"CLASS(%hu)"

, (

unsigned short

) aclass);

201

sprintf(

buf

,

"RCODE(%hu)"

, rcode);

222

sprintf(

buf

,

"OPCODE(%hu)"

, opcode);

230 #ifdef NETDB_INTERNAL 232  return "Internal error"

;

234 #ifdef HOST_NOT_FOUND 236  return "Host not found"

;

240  return "Server failure"

;

244  return "Unrecoverable error"

;

247 # if !defined(NO_DATA) || NO_DATA != NO_ADDRESS 249  return "No address record found"

;

254  return "No data of requested type"

;

259  return

hstrerror(err);

267  size_t len

= strlen(ptr);

274

ptr += sprintf(ptr,

", AA"

);

276

ptr += sprintf(ptr,

", TC"

);

278

ptr += sprintf(ptr,

", RD"

);

280

ptr += sprintf(ptr,

", RA"

);

282

ptr += sprintf(ptr,

", Z?"

);

284

ptr += sprintf(ptr,

", AD"

);

286

ptr += sprintf(ptr,

", CD"

);

287

sprintf(ptr,

", %s"

,

x_RcodeStr

(hdr->rcode, rcode));

296

(

"DNS %s (ID=%hu, 0x%04hX):\n" 298  "\tQD: %hu, AN: %hu, NS: %hu, AR: %hu"

,

299

hdr->qr ?

"REPLY"

:

"QUERY"

,

301

ntohs(((

const unsigned short

*) hdr)[1]),

307 static void x_DumpRR

(

const

ns_rr* rr,

const char

* part,

unsigned short n

)

309  char

clbuf[40], tybuf[40], ttlbuf[40], szbuf[40];

311

sprintf(ttlbuf,

" %lu"

, (

unsigned long

) ns_rr_ttl(*rr));

312

sprintf(szbuf,

" (%u)"

, ns_rr_rdlen(*rr));

314

*ttlbuf = *szbuf =

'\0'

;

316

(

"%s%s %2hu: %s%s %s %s%s"

,

318

part ?

" RR"

:

" "

,

n

,

319

ns_rr_name(*rr), ttlbuf,

321  x_TypeStr

(ns_rr_type(*rr), tybuf), szbuf));

325 static int unpack_rr

(

const unsigned char

*

msg

,

const unsigned char

* eom,

326  const unsigned char

* ptr, ns_rr* rr,

int

qd,

329  const char

* what = qd ?

"QD"

:

"RR"

;

332

memset(rr, 0,

sizeof

(*rr));

333  if

((

len

= dn_expand(

msg

, eom, ptr, rr->name,

sizeof

(rr->name))) <= 0) {

334  CORE_LOGF_X

(32, level, (

"DNS %s cannot expand name"

, what));

338  size

= qd ? NS_QFIXEDSZ : NS_RRFIXEDSZ;

339  if

(ptr +

size

> eom) {

340  CORE_LOGF_X

(33, level, (

"DNS %s overrun"

, what));

343  assert

(NS_QFIXEDSZ == NS_INT16SZ*2);

344  assert

(NS_RRFIXEDSZ == NS_INT16SZ*2 + NS_INT32SZ + NS_INT16SZ);

345

NS_GET16(rr->type, ptr);

346

NS_GET16(rr->rr_class, ptr);

349

NS_GET32(rr->ttl, ptr);

350

NS_GET16(rr->rdlength, ptr);

353

(

"DNS RR %s RDATA empty"

,

355

}

else if

(ptr + rr->rdlength > eom) {

357

(

"DNS RR %s RDATA overrun"

,

361  size

+= rr->rdlength;

368 static int skip_rr

(

const unsigned char

* ptr,

const unsigned char

* eom,

371  const char

* what = qd ?

"QD"

:

"RR"

;

374  if

((

len

= dn_skipname(ptr, eom)) <= 0) {

379  size

= qd ? NS_QFIXEDSZ : NS_RRFIXEDSZ;

380  if

(ptr +

size

> eom) {

385  unsigned short

rdlen;

386

ptr += NS_INT16SZ*2 + NS_INT32SZ;

387

NS_GET16(rdlen, ptr);

388  if

(ptr + rdlen > eom) {

399  const unsigned char

* eom)

401  static const char

* kPart[] = { 0

,

"AN"

,

"NS"

,

"AR"

};

402  const unsigned char

* ptr =

msg

+ NS_HFIXEDSZ;

403  const

HEADER* hdr = (

const

HEADER*)

msg

;

407  assert

(

sizeof

(*hdr) == NS_HFIXEDSZ);

408  count

[0] = ntohs(hdr->qdcount);

409  count

[1] = ntohs(hdr->ancount);

410  count

[2] = ntohs(hdr->nscount);

411  count

[3] = ntohs(hdr->arcount);

417  unsigned short

c = 0;

440

(

"LBDNS cannot create entry for \"%s\""

, iter->

name

));

447  for

(

n

= 0;

n

<

data

->n_cand; ++

n

) {

452

(

"LBDNS ignoring duplicate entry: \"%s\" %s"

, name,

453

infostr ? infostr :

"<NULL>"

));

460  if

(

data

->n_cand ==

data

->a_cand) {

461  n

=

data

->a_cand << 1;

463

+ (

n

- 1) *

sizeof

(

data

->cand));

466

(

"LBDNS cannot add entry for \"%s\""

, iter->

name

));

478

(

"LBDNS adding \"%s\" @%p %s"

, name,

info

,

479

infostr ? infostr :

"NULL"

));

497  for

(

n

= 0;

n

<

data

->n_cand; ++

n

) {

500  char buf

[INET6_ADDRSTRLEN];

510

x_info->

host

= (

unsigned int

)(-1);

513

}

else if

(

host

&&

info

->host == (

unsigned int

)(-1)) {

522

(

"LBDNS cannot re-update entry \"%s\" @%p with host" 526  if

(x_info !=

info

) {

529

}

else if

(

data

->debug) {

532

(

"LBDNS updating entry \"%s\" @%p with host \"%s\": %s"

,

539

(

"LBDNS multiple entries updated with host \"%s\":" 540  " %s"

, fqdn,

buf

));

554  for

(

n

= 0;

n

<

data

->n_cand; ++

n

) {

561

(

"LBDNS updating entry \"%s\" @%p with port: %hu"

,

572

memset(

info

, 0,

sizeof

(*

info

));

585  double

tens = floor(rate / 10.0);

586  return

(tens + (rate - tens * 10.0 < 10.0 ? 1.0 : 0.0)) * 10.0;

596

__attribute__((packed))

603  const unsigned char

* eom,

const char

* fqdn,

604  unsigned short

rdlen,

const unsigned char

* rdata)

606  const unsigned char

* start = rdata;

607  char

target[NS_MAXDNAME];

612  if

(rdlen <=

sizeof

(srv)) {

614

(

"DNS SRV RR RDATA too short: %hu"

, rdlen));

617

memset(&srv, 0,

sizeof

(srv));

619

NS_GET16(srv.

weight

, rdata);

620

NS_GET16(srv.

port

, rdata);

621  if

((rv = dn_expand(

msg

, eom, rdata, target,

sizeof

(target))) <= 0) {

625  if

(&rdata[rv] > &start[rdlen]) {

631

(

"DNS SRV RR %s -> %s:%hu %hu %hu"

, fqdn,

632

*target ? target :

"."

,

635  if

(&rdata[rv] != &start[rdlen]) {

636  assert

(&rdata[rv] < &start[rdlen]);

638

(

"DNS SRV RR %lu/%hu byte(s) remain unparsed"

,

639

(

unsigned long

)(&start[rdlen] - &rdata[rv]), rdlen));

641  if

(!target[0] || (target[0] ==

'.'

&& !target[1])) {

646

}

else if

(!srv.

port

) {

661  unsigned short

rdlen,

const unsigned char

* rdata)

663  unsigned int len

= 0;

664  while

(

len

< rdlen) {

666  unsigned short

slen = *rdata++;

667  if

((

len

+= 1 + slen) > rdlen) {

676  unsigned short port

;

680

(

"DNS TXT RR %s: \"%.*s\""

, fqdn,

681

(

int

) slen, (

const char

*) rdata));

685

memcpy(

buf

, rdata, slen);

688  if

(sscanf(

buf

,

"%hu%n"

, &

port

, &

n

) > 0 &&

n

== (

int

) slen &&

port

)

698  unsigned short

rdlen,

const unsigned char

* rdata)

701  char buf

[INET6_ADDRSTRLEN];

707  assert

(

sizeof

(ipv4) == NS_INADDRSZ);

708  assert

(

sizeof

(ipv6) == NS_IN6ADDRSZ);

709  if

(rtype == ns_t_a && NS_INADDRSZ <= rdlen) {

710

memcpy(&ipv4, rdata,

sizeof

(ipv4));

713

(

"DNS A RR %s @ %s"

, fqdn,

714

inet_ntop(AF_INET, &ipv4,

717  if

(!ipv4 || ipv4 == (

unsigned int

)(-1)) {

720

(

"DNS A RR bad IPv4 ignored: %s"

,

buf

));

725

}

else if

(rtype == ns_t_aaaa && NS_IN6ADDRSZ <= rdlen) {

726

memcpy(&ipv6, rdata,

sizeof

(ipv6));

729

(

"DNS AAAA RR %s @ %s"

, fqdn,

730

inet_ntop(AF_INET6, &ipv6,

737

(

"DNS AAAA RR bad IPv6 ignored: %s"

,

buf

));

743

(

"DNS %s RR RDATA bad size: %hu"

,

749

(

"DNS %s RR %u/%hu byte(s) remain unparsed"

,

752  if

(qtype == ns_t_srv)

755

x_info.time += iter->

time

;

759

x_info.host = (

unsigned int

)(-1);

765  const unsigned char

*

msg

,

766  const unsigned char

* eom,

768  unsigned short

rdlen,

769  const unsigned char

* rdata)

771  char

cname[NS_MAXDNAME];

774  if

((rv = dn_expand(

msg

, eom, rdata, cname,

sizeof

(cname))) <= 0) {

778  if

(rv > (

int

) rdlen) {

784

(

"DNS CNAME RR %s -> %s"

,

787  if

(rv != (

int

) rdlen) {

788  assert

(rv < (

int

) rdlen);

790

(

"DNS CNAME RR %d/%hu byte(s) remain unparsed"

,

791

(

int

) rdlen - rv, rdlen));

795

(

"DNS CNAME RR cannot store cname \"%s\" for \"%s\""

,

805  size_t

lena = strlen(

a

);

806  size_t

lenb = strlen(

b

);

807  if

(lena &&

a

[lena - 1] ==

'.'

)

809  if

(lenb &&

b

[lenb - 1] ==

'.'

)

811  return

lena == lenb &&

strncasecmp

(

a

,

b

, lena) == 0 ? 1

: 0

;

817  const char

* fqdn, ns_type

type

,

818  const unsigned char

*

msg

,

819  const unsigned char

* eom,

820  const unsigned char

* ptr,

821  unsigned short count

[3])

826  const char

* cname = 0;

831  for

(

n

= 0;

n

< 3; ++

n

) {

833  for

(c = 0; c <

count

[

n

]; ++c) {

835  int

skip =

n

&& ((

n

& 1)

||

type

!= ns_t_srv

);

844  if

(ns_rr_class(rr) != ns_c_in || !ns_rr_rdlen(rr))

846  if

(!

n

&&

type

== ns_t_srv &&

847

ns_rr_type(rr) != ns_t_srv && ns_rr_type(rr) != ns_t_cname) {

852

(

"DNS reply AN %u \"%s\" mismatch FQDN \"%s\""

,

853

c + 1, ns_rr_name(rr), fqdn));

856  if

(ns_rr_type(rr) == ns_t_cname) {

860

ns_rr_rdlen(rr), ns_rr_rdata(rr));

869

(

"DNS CNAME RR misplaced @A%c %u"

,

870  "RN"

[!

n

], c + 1));

874  if

(!

n

&&

type

== ns_t_srv) {

876  assert

(ns_rr_type(rr) == ns_t_srv);

878

ns_rr_name(rr), ns_rr_rdlen(rr), ns_rr_rdata(rr));

880  if

(rv < 0 && data->

n_cand

) {

882  "DNS SRV RR blank target misplaced"

);

888  if

(!

n

&&

type

!= ns_t_srv && ns_rr_type(rr) == ns_t_txt) {

891

ns_rr_name(rr), ns_rr_rdlen(rr), ns_rr_rdata(rr));

894  if

(ns_rr_type(rr) != ns_t_a && ns_rr_type(rr) != ns_t_aaaa)

897

||

type

== ns_t_srv

);

899

ns_rr_name(rr), ns_rr_rdlen(rr), ns_rr_rdata(rr));

907  free

((

void

*) cname);

908  assert

(ptr && ptr <= eom);

909  return done

? ptr : 0

;

915  const unsigned char

*

msg

,

916  const unsigned char

* eom,

917  unsigned short count

[3])

919  const

HEADER* hdr = (

const

HEADER*)

msg

;

920  const unsigned char

* ptr;

928

(

"DNS reply indicates an error: %s"

,

934

(

"DNS reply is a query, not a reply"

));

937  if

(hdr->opcode != ns_o_query) {

939

(

"DNS reply has unexpected opcode: %s"

,

943  if

((

count

[0] = ntohs(hdr->qdcount)) != 1) {

945

(

"DNS reply has bad number of questions: %hu"

,

949  if

(!(

count

[0] = ntohs(hdr->ancount))) {

953

ptr =

msg

+ NS_HFIXEDSZ;

961  if

(ns_rr_class(qd) != ns_c_in) {

963

(

"DNS reply for unsupported class: %s"

,

967  if

(ns_rr_type(qd) != ns_t_any) {

969

(

"DNS reply for unmatching type: %s vs. ANY queried"

,

975

(

"DNS reply for unmatching name: \"%s\" vs. \"%s\" queried"

,

976

ns_rr_name(qd), fqdn));

985  count

[1] = ntohs(hdr->nscount);

986  count

[2] = ntohs(hdr->arcount);

992  const unsigned char

*

msg

,

993  const unsigned char

* eom)

997  const unsigned char

* ptr;

998  const

HEADER* hdr = (

const

HEADER*)

msg

;

1000  if

(hdr->rcode || !(hdr->qr & hdr->aa) || hdr->opcode != ns_o_query)

1002  if

(ntohs(hdr->qdcount) != 1 || hdr->ancount || !hdr->nscount)

1005

ptr =

msg

+ NS_HFIXEDSZ;

1008  if

(ns_rr_class(rr) != ns_c_in || ns_rr_type(rr) !=

type

)

1015  if

(!

same_domain

(ns_rr_name(rr), strchr(fqdn,

'.'

) + 1))

1017  return

ns_rr_class(rr) != ns_c_in || ns_rr_type(rr) != ns_t_soa

1023  const char

* prefix,

1035  if

(

type

== ns_t_srv) {

1037

zone =

"._tcp.lb."

;

1045  if

(pfxlen + xlen +

domlen

> NS_MAXCDNAME)

1047

memcpy(ptr, prefix, pfxlen);

1049

memcpy(ptr, zone, zlen);

1055  assert

(ptr - fqdn <= NS_MAXCDNAME);

1063  size_t len

= strlen(iter->

name

);

1064  const unsigned char

* ptr, *eom;

1065  char

fqdn[NS_MAXCDNAME + 1];

1066  unsigned short count

[3];

1067  unsigned char msg

[2048];

1068  int

rv, err, x_error;

1069  const char

* errstr;

1075  if

(!

data

->check) {

1076  if

(

type

!= ns_t_srv

1083

(

"LBDNS FQDN for \"%s\" %s in \"%s\": Name too long"

,

1089

h_errno = errno = 0;

1090

memset(

msg

, 0, NS_HFIXEDSZ);

1091

rv = res_query(fqdn, ns_c_in, ns_t_any,

msg

,

sizeof

(

msg

));

1100

#

if

defined(NO_ADDRESS) && NO_ADDRESS != NO_DATA

1101

|| err == NO_ADDRESS

1109  if

(!errstr || !*errstr) {

1110

sprintf(errbuf,

"Error %d"

, err);

1113

err = nodata ? 1 : -1;

1115  CORE_TRACEF

((

"LBDNS reply \"%s\": %d byte(s)"

, fqdn, rv));

1116  if

(rv < NS_HFIXEDSZ) {

1118

(

"DNS reply for \"%s\" too short: %d"

, fqdn, rv));

1121  if

(rv >= (

int

)

sizeof

(

msg

)) {

1123

(

"DNS reply overflow: %d"

, rv));

1124

rv = (

int

)

sizeof

(

msg

);

1131  if

(

data

->debug && rv)

1137

(

"DNS lookup failure \"%s\": %s"

, fqdn, errstr));

1140  assert

(NS_HFIXEDSZ <= (

size_t

)(eom -

msg

));

1152

(

"DNS reply %lu/%d byte(s) remain unparsed"

,

1153

(

unsigned long

)(eom - ptr), rv));

1164  CORE_TRACEF

((

"LBDNS finalizing result-set for \"%s\""

, iter->

name

));

1165  while

(n < data->

n_cand

) {

1167  const char

* drop = 0

;

1174  if

((ptr = (

char

*) strchr(name,

'.'

)) != 0)

1179  info

->u.dns.name = 1

;

1181

}

else for

(s = 0; s <

data

->n_cand; ++s) {

1185

drop =

"duplicate"

;

1191

*((

char

*) name) =

'\0'

;

1193  for

(s = 0; s < iter->

n_skip

; ++s) {

1210  if

(s >= iter->

n_skip

) {

1211  data

->cand[

n

++].status =

info

->rate;

1218

drop =

"incomplete"

;

1223  if

(n < --data->

n_cand

) {

1225

(

data

->n_cand -

n

) *

sizeof

(

data

->cand));

1236

? iter->

name

:

""

))) {

1238

(

"LBDNS cannot create dummy entry for \"%s\""

,

1241  data

->cand[0].status = 0.0;

1242  if

(

data

->debug) {

1245

(

"LBDNS adding dummy entry \"%s\" @%p %s"

,

1247  data

->cand[0].info,

1248

infostr ? infostr :

"<NULL>"

));

1255  CORE_TRACEF

((

"LBDNS made ready result-set for \"%s\": %lu"

,

1256

iter->

name

, (

unsigned long

)

data

->n_cand));

1269

rv ?

"located"

:

"unknown"

));

1281  struct

sockaddr_in ns_save;

1282  int

ns_count, ns_retry, rv;

1289  static void

*

s_Init

= 0

;

1290  struct

sockaddr_in ns_addr;

1293

memset(&ns_addr, 0,

sizeof

(ns_addr));

1295

ns_addr.sin_len =

sizeof

(ns_addr);

1297

ns_addr.sin_family = AF_INET;

1298

ns_addr.sin_addr.s_addr =

data

->host;

1299

ns_addr.sin_port = htons(

data

->port);

1303

ns_retry =

r

->retry;

1304

ns_options =

r

->options;

1305

ns_count =

r

->nscount;

1306

ns_save =

r

->nsaddr;

1308  r

->options |= RES_IGNTC;

1310 #ifdef RES_USE_EDNS0 1317  r

->options |= RES_USE_EDNS0;

1322  r

->options |= RES_DEBUG;

1324  r

->nsaddr = ns_addr;

1333  r

->options = ns_options;

1334  r

->nsaddr = ns_save;

1335  r

->nscount = ns_count;

1336  r

->retry = ns_retry;

1340  if

(!

data

->n_cand)

1352

(

unsigned long

)

data

->n_cand,

data

->empty ?

", EOF"

:

""

));

1354  if

(!

data

->n_cand) {

1357  if

(

data

->empty) {

1364  info

->rate =

data

->cand[0].status;

1367  data

->n_cand *

sizeof

(

data

->cand));

1372  CORE_TRACEF

((

"LBDNS getnextinfo(\"%s\"): \"%s\" @%p"

, iter->

name

,

1382

(

unsigned long

)

data

->n_cand));

1384  if

(

data

->n_cand) {

1386  for

(

n

= 0;

n

<

data

->n_cand; ++

n

) {

1414  if

((p = getenv(

"LOCALDOMAIN"

)) != 0) {

1415  size_t n

= strlen(p);

1416  if

(1 <

n

&&

n

< domainsize)

1425 #if defined(NCBI_OS_CYGWIN) || defined(NCBI_OS_IRIX) 1426  if

(getdomainname(

domain

, domainsize) == 0

1434

&& (p = strchr(

domain

,

'.'

)) != 0 && p[1]) {

1442 #define isdash(s) ((s) == '-' || (s) == '_') 1446  int

dot = *

domain

==

'.'

? 1

: 0

;

1453  for

( ; *ptr; ++ptr) {

1455  if

(dot || (alpha &&

isdash

(ptr[-1])))

1463  if

(

isdigit

((

unsigned char

)(*ptr)))

1480

}

else if

(

isdash

(ptr[-1]))

1482  return

1 <

len

&&

len

<= NS_MAXCDNAME ? 1

: 0

;

1522  unsigned long port

;

1538  size_t len

= strlen(iter->

name

);

1547

(

"[%s] Argument affinity lookup not supported by LBDNS:" 1548  " %s%s%s%s%s"

, iter->

name

, iter->

arg

, &

"="

[!iter->

val

],

1549

&

"\""

[!iter->

val

], iter->

val

? iter->

val

:

""

,

1550

&

"\""

[!iter->

val

]));

1555

*

sizeof

(

data

->cand)))) {

1557  "LBDNS failed to create private data structure"

);

1562  val

,

sizeof

(

val

), 0));

1564

(0,

"CONN_LBDNS_CHECK"

,

1565  val

,

sizeof

(

val

), 0));

1570  val

,

sizeof

(

val

), 0)) {

1572  "LBDNS cannot obtain domain name from registry"

);

1579  "LBDNS cannot figure out system domain name"

);

1590

(

"LBDNS failed to store domain name \"%s\""

,

domain

));

1593  data

->domlen = strlen(

data

->domain);

1598  val

,

sizeof

(

val

), 0)) {

1603  else if

(!

isdigit

((

unsigned char

)(*

val

)))

1608  port

= strtoul(

val

, &end, 0);

1609  if

(errno || *end ||

port

> 0xFFFF)

1612  port

= NS_DEFAULTPORT;

1616  val

,

sizeof

(

val

), 0)) {

1627

(

"LBDNS using server @ %s"

,

val

));

1629  data

->port = (

unsigned

short)

port

;

1633

(

"LBDNS using domain = \"%s\""

,

data

->domain));

1659  static void

*

volatile

s_Once = 0

;

std::ofstream out("events_result.xml")

main entry point for tests

static const struct type types[]

#define SERV_MAXIMAL_RATE

#define SERV_DEFAULT_ALGO

char * SERV_WriteInfo(const SSERV_Info *info)

unsigned short TSERV_TypeOnly

Server type only, w/o specials.

int SERV_EqualInfo(const SSERV_Info *info1, const SSERV_Info *info2)

@ fSERV_Stateless

Stateless servers only.

size_t SOCK_HostPortToString(unsigned int host, unsigned short port, char *buf, size_t bufsize)

Print numeric string "host:port" into a buffer provided, not to exceed 'bufsize' bytes (including the...

const char * SOCK_gethostbyaddr(unsigned int addr, char *buf, size_t buflen)

Same as SOCK_gethostbyaddrEx(,,<current API data logging>)

unsigned int SOCK_gethostbyname(const char *hostname)

Same as SOCK_gethostbynameEx(,<current API data logging>)

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

Convert IP address to a string in dotted notation.

ELOG_Level

Log severity level.

int ConnNetInfo_Boolean(const char *str)

unsigned int

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

if(yy_accept[yy_current_state])

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

#define LBSM_DEFAULT_RATE

#define SERVNSD_TXT_RR_PORT

#define LBSM_DEFAULT_TIME

const char * ConnNetInfo_GetValueInternal(const char *service, const char *param, char *value, size_t value_size, const char *def_value)

int NcbiIsEmptyIPv6(const TNCBI_IPv6Addr *addr)

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

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...

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...

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...

static int dns_srv(SERV_ITER iter, const unsigned char *msg, const unsigned char *eom, const char *fqdn, unsigned short rdlen, const unsigned char *rdata)

static const unsigned char * x_VerifyReply(const char *fqdn, const unsigned char *msg, const unsigned char *eom, unsigned short count[3])

static const char * x_RcodeStr(unsigned short rcode, char *buf)

static const char * s_SysGetDomainName(char *domain, size_t domainsize)

static const char * x_ClassStr(ns_class aclass, char *buf)

static int x_UpdateHost(SERV_ITER iter, const char *fqdn, const TNCBI_IPv6Addr *addr)

static const SSERV_VTable kLbdnsOp

static int x_AddInfo(SERV_ITER iter, SSERV_Info *info)

#define LBDNS_INITIAL_ALLOC

static int unpack_rr(const unsigned char *msg, const unsigned char *eom, const unsigned char *ptr, ns_rr *rr, int qd, ELOG_Level level)

static const unsigned char * x_DumpMsg(const unsigned char *msg, const unsigned char *eom)

static void s_Close(SERV_ITER)

static int x_Resolve(SERV_ITER iter)

static const char * strherror(int err)

static int x_ResolveType(SERV_ITER iter, ns_type type)

static const char * x_OpcodeStr(unsigned short opcode, char *buf)

#define REG_CONN_LBDNS_DEBUG

#define SERVNSD_TXT_RR_PORT_LEN

static const unsigned char * x_ProcessReply(SERV_ITER iter, const struct SLBDNS_Data *data, const char *fqdn, ns_type type, const unsigned char *msg, const unsigned char *eom, const unsigned char *ptr, unsigned short count[3])

#define REG_CONN_LBDNS_PORT

static double x_RoundUp(double rate)

static const char * x_FlagsStr(const HEADER *hdr, char *buf)

static void s_Reset(SERV_ITER)

const SSERV_VTable * SERV_LBDNS_Open(SERV_ITER iter, SSERV_Info **info)

static const char * x_TypeStr(ns_type atype, char *buf)

#define REG_CONN_LBDNS_DOMAIN

static const char * x_CopyDomain(const char *domain)

static int x_NoDataReply(const char *fqdn, ns_type type, const unsigned char *msg, const unsigned char *eom)

static const char * dns_cname(unsigned int debug, const unsigned char *msg, const unsigned char *eom, const char *fqdn, unsigned short rdlen, const unsigned char *rdata)

static void x_UpdatePort(SERV_ITER iter, unsigned short port)

static const char * x_FormFQDN(char fqdn[NS_MAXCDNAME+1], const char *prefix, size_t pfxlen, ns_type type, const char *domain, size_t domlen)

static int s_Resolve(SERV_ITER iter)

static void x_Finalize(SERV_ITER iter)

#define REG_CONN_LBDNS_HOST

static void x_DumpRR(const ns_rr *rr, const char *part, unsigned short n)

static void x_BlankInfo(SSERV_Info *info, ESERV_Type type)

static SSERV_Info * s_GetNextInfo(SERV_ITER, HOST_INFO *)

static void x_DumpHdr(const HEADER *hdr, const unsigned short count[4])

static int x_CheckDomain(const char *domain)

static int same_domain(const char *a, const char *b)

static int skip_rr(const unsigned char *ptr, const unsigned char *eom, int qd)

static void dns_txt(SERV_ITER iter, const char *fqdn, unsigned short rdlen, const unsigned char *rdata)

static int dns_a(SERV_ITER iter, ns_type qtype, ns_type rtype, const char *fqdn, unsigned short rdlen, const unsigned char *rdata)

#define CORE_Once(once)

Return non-zero (true) if "*once" had a value of NULL, and set the value to non-NULL regardless (best...

#define CORE_LOG_ERRNO_X(subcode, level, error, message)

#define CORE_LOGF_X(subcode, level, fmt_args)

#define CORE_LOGF_ERRNO_X(subcode, level, error, fmt_args)

#define CORE_TRACEF(fmt_args)

#define CORE_TRACE(message)

#define CORE_LOGF(level, fmt_args)

#define CORE_LOG_X(subcode, level, message)

SSERV_Info * SERV_CopyInfoEx(const SSERV_Info *orig, const char *name)

const char * SERV_NameOfInfo(const SSERV_Info *info)

double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)

static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)

CCompressionStreamProcessor * s_Init(EInitType type, CCompressStream::EMethod method, ICompression::TFlags flags, ICompression::ELevel level)

voidp calloc(uInt items, uInt size)


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