Loading...
Searching...
No Matches
connectbyname.h File Reference
#include <getdns/getdns.h>
#include <ldns/ldns.h>
Include dependency graph for connectbyname.h:

Go to the source code of this file.

Classes

struct  cbn_error
struct  cbnp_resolver
struct  cbn_policy
struct  cbn_context

Macros

#define SET_ERROR_GENERIC(errp, error_status)
#define SET_ERROR_CALLBACK(errp, callback_type)
#define SET_ERROR_GETDNS(errp, msgstr, r)
#define SET_ERROR_GETDNS_REPSTATUS(errp, msgstr, r)
#define SET_ERROR_A_AAAA_TIMEOUT(errp)
#define SET_ERROR_LDNS(errp, msgstr)
#define SET_ERROR_LDNS_RESULT(errp, msgstr, r)
#define SET_ERROR_SSL(errp, msgstr)
#define SET_ERROR_TLSA_MISMATCH(errp)
#define SET_ERROR_DANE_TIMEOUT(errp)
#define SET_ERROR_PKIX_DID_NOT_VALIDATE(errp)
#define CBNPR_MAX_ADDRS   3
#define CBN_UNENCRYPTED   (1 << 0)
#define CBN_UNAUTHENTICATED_ENCRYPTION   (1 << 1)
#define CBN_AUTHENTICATED_ENCRYPTION   (1 << 2)
#define CBN_PKIX_AUTH_REQUIRED   (1 << 3)
#define CBN_DANE_AUTH_REQUIRED   (1 << 4)
#define CBN_DEFAULT_DISALLOW_OTHER_TRANSPORTS   (1 << 5)
#define CBN_ALLOW_DO53   (1 << 8)
#define CBN_DISALLOW_DO53   (1 << 9)
#define CBN_ALLOW_DOT   (1 << 10)
#define CBN_DISALLOW_DOT   (1 << 11)
#define CBN_ALLOW_DOH2   (1 << 12)
#define CBN_DISALLOW_DOH2   (1 << 13)
#define CBN_ALLOW_DOH3   (1 << 14)
#define CBN_DISALLOW_DOH3   (1 << 15)
#define CBN_ALLOW_DOQ   (1 << 16)
#define CBN_DISALLOW_DOQ   (1 << 17)
#define MAX_RESOLVERS   10

Typedefs

typedef void(* cbn_callback_T) (struct bufferevent *bev, void *ref)
typedef void(* cbn_callback_error_T) (struct cbn_error *error, void *ref)

Enumerations

enum  cbn_status {
  CBN_OK , CBN_BAD_PORT , CBN_BAD_PORT_NAME , CBN_GETDNS_ERROR ,
  CBN_GETDNS_REPSTATUS , CBN_A_AAAA_TIMEOUT , CBN_HOSTNAME_TOO_LONG , CBN_ERROR_CALLBACK ,
  CBN_LDNS_ERROR , CBN_LDNS_RESULT , CBN_SSL_ERROR , CBN_TLSA_MISMATCH ,
  CBN_DANE_TIMEOUT , CBN_PKIX_DID_NOT_VALIDATE
}

Functions

struct cbn_policy * cbn_policy_init2 (struct cbn_policy *policy, const char *name, unsigned int settings)
int cbn_policy_add_resolver (struct cbn_policy *policy, struct cbnp_resolver *resolver)
int cbn_init (struct cbn_context *cbn_ctx, struct event_base *event_base)
int cbn_init2 (struct cbn_context *cbn_ctx, struct cbn_policy *policy, char *name, int flags, struct event_base *event_base)
void cbn_clean (struct cbn_context *cbn_ctx)
int connectbyname (struct cbn_context *cbn_ctx, const char *hostname, const char *servname, int *fdp)
int connectbyname_asyn (struct cbn_context *cbn_ctx, const char *hostname, const char *servname, cbn_callback_T user_cb, cbn_callback_error_T error_cb, void *user_ref, void **refp)
void connectbyname_free (void *ref)

Detailed Description

This is the interface to connectbyname

Macro Definition Documentation

◆ SET_ERROR_A_AAAA_TIMEOUT

#define SET_ERROR_A_AAAA_TIMEOUT ( errp)
Value:
SET_ERROR_GENERIC(errp, CBN_A_AAAA_TIMEOUT)

◆ SET_ERROR_CALLBACK

#define SET_ERROR_CALLBACK ( errp,
callback_type )
Value:
SET_ERROR_GENERIC(errp, CBN_ERROR_CALLBACK), \
(errp)->u.callback_type= callback_type

◆ SET_ERROR_DANE_TIMEOUT

#define SET_ERROR_DANE_TIMEOUT ( errp)
Value:
SET_ERROR_GENERIC(errp, CBN_DANE_TIMEOUT)

◆ SET_ERROR_GENERIC

#define SET_ERROR_GENERIC ( errp,
error_status )
Value:
(errp)->status= error_status, \
(errp)->file= __FILE__, \
(errp)->line= __LINE__, \
(errp)->func= __func__

◆ SET_ERROR_GETDNS

#define SET_ERROR_GETDNS ( errp,
msgstr,
r )
Value:
SET_ERROR_GENERIC(errp, CBN_GETDNS_ERROR), \
(errp)->msg= msgstr, \
(errp)->u.getdns_result= r

◆ SET_ERROR_GETDNS_REPSTATUS

#define SET_ERROR_GETDNS_REPSTATUS ( errp,
msgstr,
r )
Value:
SET_ERROR_GENERIC(errp, CBN_GETDNS_REPSTATUS), \
(errp)->msg= msgstr, \
(errp)->u.getdns_repstatus= r

◆ SET_ERROR_LDNS

#define SET_ERROR_LDNS ( errp,
msgstr )
Value:
SET_ERROR_GENERIC(errp, CBN_LDNS_ERROR), \
(errp)->msg= msgstr

◆ SET_ERROR_LDNS_RESULT

#define SET_ERROR_LDNS_RESULT ( errp,
msgstr,
r )
Value:
SET_ERROR_GENERIC(errp, CBN_LDNS_RESULT), \
(errp)->msg= msgstr, \
(errp)->u.ldns_status= r

◆ SET_ERROR_PKIX_DID_NOT_VALIDATE

#define SET_ERROR_PKIX_DID_NOT_VALIDATE ( errp)
Value:
SET_ERROR_GENERIC(errp, CBN_PKIX_DID_NOT_VALIDATE)

◆ SET_ERROR_SSL

#define SET_ERROR_SSL ( errp,
msgstr )
Value:
SET_ERROR_GENERIC(errp, CBN_SSL_ERROR), \
(errp)->msg= msgstr

◆ SET_ERROR_TLSA_MISMATCH

#define SET_ERROR_TLSA_MISMATCH ( errp)
Value:
SET_ERROR_GENERIC(errp, CBN_TLSA_MISMATCH)

Function Documentation

◆ cbn_clean()

void cbn_clean ( struct cbn_context * cbn_ctx)

Clean up connectbyname context

Parameters
cbn_ctxcontext to clean up
Returns
returns enum cbn_status

◆ cbn_init()

int cbn_init ( struct cbn_context * cbn_ctx,
struct event_base * event_base )

Initialize a connectbyname context

Parameters
cbn_ctxcontext to initialize
event_baseevent base to use for asynchronous I/O
Returns
returns enum cbn_status

◆ cbn_init2()

int cbn_init2 ( struct cbn_context * cbn_ctx,
struct cbn_policy * policy,
char * name,
int flags,
struct event_base * event_base )

Initialize a connectbyname context

Parameters
cbn_ctxcontext to initialize
policypolicy for this context
name
flags
event_baseevent base to use for asynchronous I/O
Returns
returns enum cbn_status

◆ cbn_policy_add_resolver()

int cbn_policy_add_resolver ( struct cbn_policy * policy,
struct cbnp_resolver * resolver )

Add a DNS resolver policy to a connectbyname policy

Parameters
policyconnectbyname policy
resolverresolver policy
Returns
returns enum cbn_status

◆ cbn_policy_init2()

struct cbn_policy * cbn_policy_init2 ( struct cbn_policy * policy,
const char * name,
unsigned int settings )

Initializes the cbn_policy

Parameters
policyThe policy to initialize, already allocated or on the stack.
nameThe name from which to determine what policy setting to inherit.
settingsA bitwise-orred value witth settings for the individual settings. Missing values will be interpreted as inherit.
Returns
The initialized cbn_policy or NULL on error. Error will occur only when memory could not be allocated.

◆ connectbyname()

int connectbyname ( struct cbn_context * cbn_ctx,
const char * hostname,
const char * servname,
int * fdp )

Synchronous connectbyname call

Parameters
cbn_ctxConfiguration context
hostnameDNS name to connect to
servnameName of service (port) to connect to
fdpResult filedescriptor
Returns
returns enum cbn_status

◆ connectbyname_asyn()

int connectbyname_asyn ( struct cbn_context * cbn_ctx,
const char * hostname,
const char * servname,
cbn_callback_T user_cb,
cbn_callback_error_T error_cb,
void * user_ref,
void ** refp )

Asynchronous connectbyname call

Parameters
cbn_ctxConfiguration context
hostnameDNS name to connect to
servnameName of service (port) to connect to
user_cbCallback function on success
error_cbCallback function on error
user_refUser reference for callback
refpLibrary reference to this call
Returns
returns enum cbn_status

◆ connectbyname_free()

void connectbyname_free ( void * ref)

Free the state associated with a call to connectbyname_asyn

Parameters
refReference returned by connectbyname_asyn
Returns
returns enum cbn_status