fred-mod-eppd-2.20.1
Data Structures | Macros | Typedefs | Enumerations | Functions
epp_common.h File Reference

The most important structures, function definitions and routine declarations are found in this file. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  epp_context
 EPP context is a group of variables used often together. More...
 
struct  epp_error
 The struct represents one epp error in ExtValue element. More...
 
struct  qitem
 Queue item type. More...
 
struct  qhead
 Queue structure used on countless places throughout the program. More...
 
struct  epp_status
 Structure for holding status' names and values. More...
 
struct  epp_postalInfo
 Structure gathers postal info about contact. More...
 
struct  epp_discl
 Disclose information of contact. More...
 
struct  epp_controlled_privacy_data_mask
 
struct  eppd_server_xml_conf
 Configuration of entities enabled in xml schemas. More...
 
struct  epp_ns
 Nameserver has a name and possibly more than one ip address. More...
 
struct  epp_dnskey
 DNS Key record - http://rfc-ref.org/RFC-TEXTS/4034/chapter2.html. More...
 
struct  epp_avail
 Structure holding answer to EPP check command. More...
 
struct  epp_zonecredit
 Structure holding answer to EPP creditInfo command. More...
 
struct  epp_ext_enum
 
struct  epp_mailingAddr
 
struct  epp_ext_mailingAddr_remove
 
struct  epp_ext_mailingAddr
 
struct  epp_ext_item
 
struct  epp_testResult
 Structure containing result of one technical test. More...
 
struct  epps_login
 Login parameters. More...
 
struct  epps_check
 Check contact, domain and nsset parameters. More...
 
struct  epps_info_contact
 Info contact parameters. More...
 
struct  epps_info_domain
 Info domain parameters. More...
 
struct  epps_info_nsset
 Info nsset parameters. More...
 
struct  epps_info_keyset
 Info keyset parameters. More...
 
struct  epps_poll_req
 Poll request parameters. More...
 
struct  epps_poll_ack
 Poll acknoledge parameters. More...
 
struct  epps_create_contact
 Create contact parameters. More...
 
struct  epps_create_domain
 Create domain parameters. More...
 
struct  epps_create_nsset
 Create nsset parameters. More...
 
struct  epps_create_keyset
 Create keyset parameters. More...
 
struct  epps_delete
 Delete parameters. More...
 
struct  epps_renew
 Renew domain parameters. More...
 
struct  epps_update_contact
 Update contact parameters. More...
 
struct  epps_update_domain
 Update domain parameters. More...
 
struct  epps_update_nsset
 Update nsset parameters. More...
 
struct  epps_update_keyset
 Update keyset parameters. More...
 
struct  epps_transfer
 Transfer parameters. More...
 
struct  epps_sendAuthInfo
 SendAuthInfo parameters. More...
 
struct  epps_creditInfo
 CreditInfo parameters. More...
 
struct  epps_test
 Test parameters. More...
 
struct  epps_list
 Parameters of obsolete command 'list' and getResults command. More...
 
struct  epps_info
 All Info functions, which accept single key on input and count on output (domainsByNsset, domainsByContact, nssetsByContact, nssetsByNs). More...
 
struct  epp_command_data
 This structure is central to the concept of the whole module. More...
 

Macros

#define q_length(_qhead)   ((_qhead).count)
 Get length of a queue. More...
 
#define q_next(_qhead)   ((_qhead)->cur = ((_qhead)->cur) ? (_qhead)->cur->next : NULL)
 Shift to next item in a queue. More...
 
#define q_content(_qhead)   ((_qhead)->cur->content)
 Get content of current item. More...
 
#define q_reset(_qhead)   ((_qhead)->cur = (_qhead)->body)
 Reset current item to the first one. More...
 
#define q_foreach(_qhead)   for ((_qhead)->cur = (_qhead)->body; (_qhead)->cur != NULL; (_qhead)->cur = (_qhead)->cur->next)
 Iterate through items in a list. More...
 

Typedefs

typedef struct qitem qitem
 Queue item type.
 
typedef epp_mailingAddr epp_ext_mailingAddr_set
 
typedef epp_mailingAddr epp_ext_mailingAddr_info
 

Enumerations

enum  epp_loglevel {
  EPP_FATAL = 1, EPP_ERROR, EPP_WARNING, EPP_INFO,
  EPP_DEBUG
}
 Log levels used for logging to eppd log file. More...
 
enum  epp_DataCollectionPolicyAccess { dcpa_all, dcpa_none }
 
enum  epp_command_type {
  EPP_UNKNOWN_CMD = 0, EPP_DUMMY, EPP_LOGIN, EPP_LOGOUT,
  EPP_CHECK_CONTACT, EPP_CHECK_DOMAIN, EPP_CHECK_NSSET, EPP_CHECK_KEYSET,
  EPP_INFO_CONTACT, EPP_INFO_DOMAIN, EPP_INFO_NSSET, EPP_INFO_KEYSET,
  EPP_LIST_CONTACT, EPP_LIST_DOMAIN, EPP_LIST_NSSET, EPP_LIST_KEYSET,
  EPP_POLL_REQ, EPP_POLL_ACK, EPP_CREATE_CONTACT, EPP_CREATE_DOMAIN,
  EPP_CREATE_NSSET, EPP_CREATE_KEYSET, EPP_DELETE_CONTACT, EPP_DELETE_DOMAIN,
  EPP_DELETE_NSSET, EPP_DELETE_KEYSET, EPP_UPDATE_CONTACT, EPP_UPDATE_DOMAIN,
  EPP_UPDATE_NSSET, EPP_UPDATE_KEYSET, EPP_TRANSFER_CONTACT, EPP_TRANSFER_DOMAIN,
  EPP_TRANSFER_NSSET, EPP_TRANSFER_KEYSET, EPP_RENEW_DOMAIN, EPP_SENDAUTHINFO_CONTACT,
  EPP_SENDAUTHINFO_DOMAIN, EPP_SENDAUTHINFO_NSSET, EPP_SENDAUTHINFO_KEYSET, EPP_TEST_NSSET,
  EPP_CREDITINFO, EPP_INFO_LIST_CONTACTS, EPP_INFO_LIST_DOMAINS, EPP_INFO_LIST_NSSETS,
  EPP_INFO_LIST_KEYSETS, EPP_INFO_DOMAINS_BY_NSSET, EPP_INFO_DOMAINS_BY_KEYSET, EPP_INFO_DOMAINS_BY_CONTACT,
  EPP_INFO_NSSETS_BY_CONTACT, EPP_INFO_NSSETS_BY_NS, EPP_INFO_KEYSETS_BY_CONTACT, EPP_INFO_GET_RESULTS
}
 Enumeration of codes of all EPP commands this module is able to handle. More...
 
enum  epp_ext_type { EPP_EXT_ENUMVAL, EPP_EXT_MAILING_ADDR }
 Enumeration of implemented extensions.
 
enum  epp_object_type {
  EPP_UNKNOWN_OBJ = 0, EPP_CONTACT, EPP_DOMAIN, EPP_NSSET,
  EPP_KEYSET
}
 Enumeration of EPP objects which this server operates on.
 
enum  epp_lang { LANG_EN = 0, LANG_CS }
 definition of languages (english is default)
 
enum  epp_errorspec {
  errspec_poll_msgID = 0, errspec_contact_handle, errspec_contact_cc, errspec_nsset_handle,
  errspec_nsset_tech, errspec_nsset_dns_name, errspec_nsset_dns_addr, errspec_nsset_dns_name_add,
  errspec_nsset_dns_name_rem, errspec_nsset_tech_add, errspec_nsset_tech_rem, errspec_keyset_handle,
  errspec_keyset_tech, errspec_keyset_dnskey, errspec_keyset_dnskey_add, errspec_keyset_dnskey_rem,
  errspec_keyset_tech_add, errspec_keyset_tech_rem, errspec_registrar_author, errspec_domain_fqdn,
  errspec_domain_registrant, errspec_domain_nsset, errspec_domain_keyset, errspec_domain_period,
  errspec_domain_admin, errspec_domain_tmpcontact, errspec_domain_ext_valDate, errspec_domain_ext_valDate_missing,
  errspec_domain_curExpDate, errspec_domain_admin_add, errspec_domain_admin_rem, errspec_not_valid,
  errspec_poll_msgID_missing, errspec_contact_identtype_missing, errspec_transfer_op
}
 In case that central repository finds out that some parameter is bad, there has to be way how to propagate this information back to client. More...
 
enum  epp_action_type {
  incorrect_epp_action_type = 0, ClientLogin = 100, ClientLogout = 101, ClientGreeting = 105,
  PollAcknowledgement = 120, PollResponse = 121, ContactCheck = 200, ContactInfo = 201,
  ContactDelete = 202, ContactUpdate = 203, ContactCreate = 204, ContactTransfer = 205,
  NSsetCheck = 400, NSsetInfo = 401, NSsetDelete = 402, NSsetUpdate = 403,
  NSsetCreate = 404, NSsetTransfer = 405, DomainCheck = 500, DomainInfo = 501,
  DomainDelete = 502, DomainUpdate = 503, DomainCreate = 504, DomainTransfer = 505,
  DomainRenew = 506, DomainTrade = 507, KeysetCheck = 600, KeysetInfo = 601,
  KeysetDelete = 602, KeysetUpdate = 603, KeysetCreate = 604, KeysetTransfer = 605,
  UnknownAction = 1000, ListContact = 1002, ListNSset = 1004, ListDomain = 1005,
  ListKeySet = 1006, ClientCredit = 1010, nssetTest = 1012, ContactSendAuthInfo = 1101,
  NSSetSendAuthInfo = 1102, DomainSendAuthInfo = 1103, KeySetSendAuthInfo = 1106, InfoListContacts = 1200,
  InfoListDomains = 1201, InfoListNssets = 1202, InfoListKeysets = 1203, InfoDomainsByNsset = 1204,
  InfoDomainsByKeyset = 1205, InfoDomainsByContact = 1206, InfoNssetsByContact = 1207, InfoNssetsByNs = 1208,
  InfoKeysetsByContact = 1209, InfoGetResults = 1210
}
 EPP action types for now only a copy of current enum_action. More...
 
enum  epp_PrivacyPolicy { public_data, private_data, unused_privacy_policy }
 
enum  epp_identType {
  ident_UNKNOWN, ident_OP, ident_PASSPORT, ident_MPSV,
  ident_ICO, ident_BIRTHDAY
}
 Type of identification number used in contact object. More...
 
enum  epp_timeunit { TIMEUNIT_MONTH, TIMEUNIT_YEAR }
 
enum  epp_mailingAddrCommand { mailing_addr_info, mailing_addr_set, mailing_addr_remove }
 
enum  epp_pollType {
  pt_transfer_contact, pt_delete_contact, pt_transfer_nsset, pt_delete_nsset,
  pt_transfer_keyset, pt_delete_keyset, pt_techcheck, pt_transfer_domain,
  pt_impexpiration, pt_expiration, pt_impvalidation, pt_validation,
  pt_outzone, pt_delete_domain, pt_lowcredit, pt_request_fee_info,
  pt_update_contact, pt_update_domain, pt_update_nsset, pt_update_keyset
}
 Type of poll message. More...
 

Functions

int q_add (void *pool, qhead *head, void *data)
 Add new item to a queue (the item will be enqueued at the end of queue). More...
 
void epplog (epp_context *epp_ctx, epp_loglevel level, const char *fmt,...)
 Write a log message to eppd log file. More...
 
void * epp_malloc (void *pool, unsigned size)
 Allocate memory from memory pool. More...
 
void * epp_calloc (void *pool, unsigned size)
 Allocate memory from memory pool and prezero it. More...
 
char * epp_strdup (void *pool, const char *str)
 Duplicate string from argument, the memory will be allocated from memory pool. More...
 
char * epp_strcat (void *pool, const char *str1, const char *str2)
 Concatenate two strings in arguments, the memory will be allocated from memory pool. More...
 
char * epp_sprintf (void *pool, const char *fmt,...)
 Print formatted string. More...
 

Detailed Description

The most important structures, function definitions and routine declarations are found in this file.

Since they are used by all components of mod_eppd, they are most important and should be read first when trying to understand to the module's code.

Enumeration Type Documentation

◆ epp_action_type

EPP action types for now only a copy of current enum_action.

TODO out of date - now in database. here it should contain only EPP actions

◆ epp_command_type

Enumeration of codes of all EPP commands this module is able to handle.

The object specific commands are written as EPP_{command}_{object}.

◆ epp_errorspec

In case that central repository finds out that some parameter is bad, there has to be way how to propagate this information back to client.

The standard requires that client provided value has to be surrounded with xml tags, of which the central repository is not aware. Therefore exact specification of errors is needed.

◆ epp_identType

Type of identification number used in contact object.

Enumerator
ident_UNKNOWN 

Unknown value can also mean undefined.

ident_OP 

Number of ID card.

ident_PASSPORT 

Number of passport.

ident_MPSV 

Number assigned by "ministry of work and ...".

ident_ICO 

ICO.

ident_BIRTHDAY 

Date of birth.

◆ epp_loglevel

Log levels used for logging to eppd log file.

Enumerator
EPP_FATAL 

Error, the module is not in operational state.

EPP_ERROR 

Error caused usually by client, module is operational.

EPP_WARNING 

Errors which are not serious but should be logged.

EPP_INFO 

This is the default log level.

EPP_DEBUG 

Contents of requests and responses are logged.

◆ epp_pollType

Type of poll message.

Enumerator
pt_transfer_contact 

Contact was transferred.

pt_delete_contact 

Contact was deleted because not used.

pt_transfer_nsset 

Nsset was transferred.

pt_delete_nsset 

Nsset was deleted because not used.

pt_transfer_keyset 

KeySet was transferred.

pt_delete_keyset 

KeySet was deleted because not used.

pt_techcheck 

Technical check results.

pt_transfer_domain 

Domain was transferred.

pt_impexpiration 

Domain will expire in near future.

pt_expiration 

Domain expired.

pt_impvalidation 

Domain validation will expire soon.

pt_validation 

Domain validation expired.

pt_outzone 

Domain was outaged from zone.

pt_delete_domain 

Domain was deleted.

pt_lowcredit 

Credit of registrator is low.

pt_request_fee_info 

Requests price/count info.

pt_update_contact 

Contact changed.

pt_update_domain 

Domain changed.

pt_update_nsset 

NSSet changed.

pt_update_keyset 

KeySet changed.

Function Documentation

◆ epplog()

void epplog ( epp_context epp_ctx,
epp_loglevel  level,
const char *  fmt,
  ... 
)

Write a log message to eppd log file.

Parameters
epp_ctxEPP context structure (connection, pool and session id).
levelLog level.
fmtPrintf-style format string.

References epp_context::conn, EPP_DEBUG, EPP_ERROR, EPP_FATAL, EPP_INFO, EPP_WARNING, eppd_module, and epp_context::pool.

Referenced by call_login(), epp_call_CloseSession(), epp_call_cmd(), epp_call_dummy(), epp_call_hello(), epp_call_login(), epp_call_logout(), epp_process_connection(), epp_read_request(), gen_response(), get_corba_service(), handle_exception(), and unwrap_str_req().