fred-mod-eppd-2.11.0
Data Structures | Defines | Typedefs | Enumerations | Functions
epp_common.h File Reference

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

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  queue_item_t
 Definition of 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_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_domain_upd_dnssec
 DNSSEC extension used for updates. More...
struct  epp_ext_enum
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...

Defines

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

Typedefs

typedef struct queue_item_t qitem
 Queue item type.

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_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  domain_ext_type { EPP_EXT_ENUMVAL }
 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 {
  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_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_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
}
 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).
void epplog (epp_context *epp_ctx, epp_loglevel level, const char *fmt,...)
 Write a log message to eppd log file.
void * epp_malloc (void *pool, unsigned size)
 Allocate memory from memory pool.
void * epp_calloc (void *pool, unsigned size)
 Allocate memory from memory pool and prezero it.
char * epp_strdup (void *pool, const char *str)
 Duplicate string from argument, the memory will be allocated from memory pool.
char * epp_strcat (void *pool, const char *str1, const char *str2)
 Concatenate two strings in arguments, the memory will be allocated from memory pool.
char * epp_sprintf (void *pool, const char *fmt,...)
 Print formatted string.

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 types for now only a copy of current enum_action.

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

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

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

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.

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.

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.

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.


Function Documentation

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