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

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

37 #include "../ncbi_ansi_ext.h" 38 #include "../ncbi_assert.h" 39 #include "../ncbi_servicep.h" 46  char

* server_name_buf,

47  size_t

server_name_buflen,

48  const char

*

const

skip_servers[],

55

0

, server_name_buf, server_name_buflen,

62

errstr ? errstr :

"Unknown error"

, errmsg_buflen - 1);

70  static const char

* s_StatusStr[] = {

73  "Service name not found in LB"

,

74  "No matching LB DNS entry found"

,

75  "Service currently down/unavailable" 77  size_t i

= (size_t) status;

78  return i

>

sizeof

(s_StatusStr)/

sizeof

(s_StatusStr[0]) ? 0 : s_StatusStr[

i

];

82 static int s_IsSkipHost

(

unsigned int

host,

unsigned int

skip_host)

84  return

skip_host == host

94  if

(*a_skip == *n_skip) {

95  size_t count

= *a_skip + 10;

98

? realloc((

void

*)(*skip),

count

*

sizeof

(*temp))

105  if

(*a_skip != *n_skip)

106

(*skip)[(*n_skip)++] =

info

;

115  const char

*

const

skip_servers[],

117  char

* server_name_buf,

118  size_t

server_name_buflen,

121  static const char kPrefix

[] =

"DB_IP__"

;

122  size_t len

,

n

, a_skip, n_skip;

126  unsigned short

x_port;

136  if

(server_name_buf) {

137  assert

(server_name_buflen);

138

server_name_buf[0] =

'\0'

;

142

memset(conn_point, 0,

sizeof

(*conn_point));

143  if

(!lb_name || !*lb_name) {

149  if

(strchr(lb_name,

'.'

)) {

162  for

(

n

= 0; !

failed

&& skip_servers[

n

];

n

++) {

163  const char

* server = skip_servers[

n

];

164  if

(!(

len

= strlen(server))) {

169

c = strstr(server +

sizeof

(

kPrefix

)-1,

"__"

);

171  size_t i

= (size_t)(c - server) - (

sizeof

(

kPrefix

)-1);

174  char

* s = temp +

i

;

176  memmove

(s, s + 1, strlen(s + 1) + 1);

201

x_host = temp->

host

;

206

x_port = temp->

port

;

207

}

else if

(!resolved) {

214  s_AddSkip

(&skip, &a_skip, &n_skip, x_host

227

}

else if

(server != skip_servers[

n

]) {

230  info

->port = x_port;

231  if

(server != skip_servers[

n

])

232  free

((

void

*) server);

240

x_host = preference->

host

;

241

x_port = preference->

port

;

242  if

((x_pref = preference->

pref

) < 0.0)

244  else if

(x_pref >= 100.0)

255

x_host, x_port, x_pref, net_info,

262

x_host, x_port, x_pref, net_info,

273  for

(

n

= 0;

n

< n_skip;

n

++) {

274  if

(x_host == skip[

n

]->host) {

280  if

(!

failed

&& skip_servers) {

281  for

(

n

= 0; (c = skip_servers[

n

]) != 0;

n

++) {

288

}

else if

(conn_point != &cp) {

293  if

(!

failed

&& server_name_buf)

294  strncpy0

(server_name_buf, lb_name, server_name_buflen - 1);

304  if

((s = strchr(

buf

,

':'

)) != 0)

305  memmove

(s + 1, s, strlen(s) + 1);

306  for

(

n

= 0;

n

<

len

;

n

++) {

307  if

(

buf

[

n

] ==

'.'

||

buf

[

n

] ==

':'

)

311  strncpy0

(server_name_buf,

buf

, server_name_buflen - 1);

313

}

else if

(

info

->host) {

317  strncpy0

(server_name_buf, c, server_name_buflen - 1);

330  for

(

n

= 0;

n

< n_skip;

n

++)

331  free

((

void

*) skip[

n

]);

333  free

((

void

*) skip);

338  return failed

? 0 : (server_name_buf ? server_name_buf : lb_name);

SSERV_Info * SERV_CreateStandaloneInfo(unsigned int host, unsigned short port)

SSERV_InfoCPtr SERV_GetNextInfo(SERV_ITER iter)

Same as "SERV_GetNextInfoEx(., 0)" – i.e.

void SERV_Close(SERV_ITER iter)

Deallocate the iterator.

SSERV_Info * SERV_CreateDnsInfo(unsigned int host)

SERV_ITER SERV_Open(const char *service, TSERV_Type types, unsigned int preferred_host, const SConnNetInfo *net_info)

Same as "SERV_OpenEx(., ., ., ., 0, 0)" – i.e.

#define SERV_LOCALHOST

Special values for the "preferred_host" parameter.

@ fSERV_ReverseDns

LB-DNS translation.

@ fSERV_Promiscuous

Evrthng and the kitchen sink.

const char * SOCK_StringToHostPort(const char *str, unsigned int *host, unsigned short *port)

Read (skipping leading blanks) "[host][:port]" from a string stopping at either EOL or a blank charac...

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

unsigned int SOCK_GetLoopbackAddress(void)

Get IPv4 loopback address.

unsigned int SOCK_gethostbyname(const char *hostname)

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

unsigned int SOCK_GetLocalHostAddress(ESwitch reget)

Same as SOCK_GetLocalHostAddress6() only strictly for IPv4.

#define NCBI_TIME_INFINITE

SConnNetInfo * ConnNetInfo_Create(const char *service)

void ConnNetInfo_Destroy(SConnNetInfo *net_info)

SSERV_Info * SERV_GetInfoP(const char *service, TSERV_Type types, unsigned int preferred_host, unsigned short preferred_port, double preference, const SConnNetInfo *net_info, SSERV_InfoCPtr skip[], size_t n_skip, int external, const char *arg, const char *val, HOST_INFO *hinfo)

char * strncpy0(char *s1, const char *s2, size_t n)

Copy not more than "n" characters from string "s2" into "s1", and return the result,...

static void s_AddSkip(SSERV_InfoCPtr **skip, size_t *a_skip, size_t *n_skip, SSERV_Info *info)

const char * DBLB_GetServerName(const char *lb_name, char *server_name_buf, size_t server_name_buflen, const char *const skip_servers[], char *errmsg_buf, size_t errmsg_buflen)

const char * DBLB_StatusStr(EDBLB_Status status)

const char * DBLB_GetServer(const char *lb_name, TDBLB_Flags flags, const SDBLB_Preference *preference, const char *const skip_servers[], SDBLB_ConnPoint *conn_point, char *server_name_buf, size_t server_name_buflen, EDBLB_Status *result)

static int s_IsSkipHost(unsigned int host, unsigned int skip_host)

@ fDBLB_AllowFallbackToStandby

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

const char * SERV_NameOfInfo(const SSERV_Info *info)


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