fred-mod-eppd-2.20.2
epp_parser.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2006-2018 CZ.NIC, z. s. p. o.
3  *
4  * This file is part of FRED.
5  *
6  * FRED is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * FRED is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with FRED. If not, see <https://www.gnu.org/licenses/>.
18  */
24 #ifndef EPP_PARSER_H
25 #define EPP_PARSER_H
26 
33 typedef enum {
43  /*
44  * when following status values are returned, connection is closed
45  */
56 
62 typedef enum {
63  EPP_RED_UNKNOWN_CMD,
64  EPP_RED_LOGIN,
65  EPP_RED_LOGOUT,
66  EPP_RED_CHECK,
67  EPP_RED_INFO,
68  EPP_RED_POLL,
69  EPP_RED_TRANSFER,
70  EPP_RED_CREATE,
71  EPP_RED_DELETE,
72  EPP_RED_RENEW,
73  EPP_RED_UPDATE,
74  EPP_RED_EXTCMD,
75  EPP_RED_HELLO
77 
85 void *epp_parser_init(const char *url_schema);
86 
93 void epp_parser_init_cleanup(void *schema);
94 
109  epp_context *epp_ctx, int loggedin, void *schema, const char *request, unsigned bytes,
110  epp_command_data **cdata, const eppd_server_xml_conf *xml_schema, epp_red_command_type *cmd_type);
111 
117 void epp_parser_request_cleanup(void *cdata_arg);
118 
119 
120 #endif /* EPP_PARSER_H */
parse_login
static void parse_login(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP login command.
Definition: epp_parser.c:637
epps_create_contact::discl
epp_discl discl
Disclose information section.
Definition: epp_common.h:738
epps_poll_req
Poll request parameters.
Definition: epp_common.h:650
epp_ns::name
char * name
fqdn of nameserver.
Definition: epp_common.h:422
epps_transfer::id
char * id
Id of transfered object.
Definition: epp_common.h:859
epps_create_domain::period
int period
Registration period in months.
Definition: epp_common.h:755
NS_EXTRAADDR
#define NS_EXTRAADDR
Our custom namespace used for extra contact address extension.
Definition: epp_xmlcommon.h:47
XERR_LIBXML
#define XERR_LIBXML
Error in function from libxml library.
Definition: epp_parser.c:71
parse_renew
static void parse_renew(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP renew command.
Definition: epp_parser.c:1621
parse_boolean
int parse_boolean(char *str)
Parse a boolean value entered either as a number or as a string (true/false)
Definition: epp_parser.c:384
epp_ext_item
Definition: epp_common.h:500
epps_create_keyset::id
char * id
Id of wanted keyset (input).
Definition: epp_common.h:777
epps_list
Parameters of obsolete command 'list' and getResults command.
Definition: epp_common.h:884
epps_update_domain::extensions
qhead extensions
List of domain extensions.
Definition: epp_common.h:830
epp_postalInfo::sp
char * sp
State or province.
Definition: epp_common.h:364
parser_status
parser_status
EPP parser status values.
Definition: epp_parser.h:33
epp_parser_request_cleanup
void epp_parser_request_cleanup(void *cdata_arg)
This will cleanup xpath context and parsed document tree.
Definition: epp_parser.c:587
epps_info_domain::name
char * name
FQDN of wanted domain (input).
Definition: epp_common.h:592
epps_update_contact::notify_email
char * notify_email
Notification email.
Definition: epp_common.h:815
epps_update_domain::rem_admin
qhead rem_admin
Admin contacts to be removed.
Definition: epp_common.h:825
epps_info_contact::id
char * id
Id of wanted contact (input).
Definition: epp_common.h:566
epps_create_domain::admin
qhead admin
Admin contact for domain.
Definition: epp_common.h:752
parse_create_keyset
static void parse_create_keyset(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP create-keyset command.
Definition: epp_parser.c:1365
epps_check::ids
qhead ids
IDs of checked objects.
Definition: epp_common.h:559
ident_ICO
@ ident_ICO
ICO.
Definition: epp_common.h:442
XERR_CONSTR
#define XERR_CONSTR
Constraints given by caller were not fulfilled.
Definition: epp_parser.c:73
parse_extension
static parser_status parse_extension(void *pool, epp_command_data *cdata, xmlXPathContextPtr xpathCtx)
Generic parser of EPP extension section.
Definition: epp_parser.c:3185
epp_postalInfo::name
char * name
Name.
Definition: epp_common.h:360
parse_ext_extraaddr_create
static void parse_ext_extraaddr_create(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of extraaddr extension in context of create contact command.
Definition: epp_parser.c:2795
epps_transfer::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:860
epps_renew
Renew domain parameters.
Definition: epp_common.h:791
parse_delete
static void parse_delete(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP delete command.
Definition: epp_parser.c:1539
epp_red_command_type
epp_red_command_type
Enumeration of all implemented EPP commands as defined in rfc.
Definition: epp_parser.h:62
NS_NSSET
#define NS_NSSET
Our custom namespace used for nsset object.
Definition: epp_xmlcommon.h:39
epps_update_contact::voice
char * voice
Telephone number.
Definition: epp_common.h:806
epp_command_data::errors
qhead errors
List of validation errors or errors from central repository.
Definition: epp_common.h:923
epps_renew::extensions
qhead extensions
List of domain extensions.
Definition: epp_common.h:797
epps_info_contact
Info contact parameters.
Definition: epp_common.h:564
epps_sendAuthInfo::id
char * id
Handle of object.
Definition: epp_common.h:866
epps_create_contact::vat
char * vat
VAT tax ID.
Definition: epp_common.h:739
parse_check
static void parse_check(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP check command.
Definition: epp_parser.c:705
epp_parser_init
void * epp_parser_init(const char *url_schema)
This routine initializes libxml's parser, hash table for command recognition and parses xml schema,...
Definition: epp_parser.c:532
parse_sendAuthInfo
static void parse_sendAuthInfo(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of command sendAuthInfo.
Definition: epp_parser.c:2461
epps_login::exturi
qhead exturi
currently not used
Definition: epp_common.h:552
epps_update_contact::vat
char * vat
VAT tax ID.
Definition: epp_common.h:812
epps_update_contact::email
char * email
Email address.
Definition: epp_common.h:808
epp_parser_init_cleanup
void epp_parser_init_cleanup(void *schema)
This will cleanup command hash table, libxml's parser and release parsed xml schema.
Definition: epp_parser.c:580
parse_update_keyset
static void parse_update_keyset(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP update-keyset command.
Definition: epp_parser.c:2021
epp_ext_item::ext_mailing_addr
epp_ext_mailingAddr ext_mailing_addr
Extensions for mailing contact addresses.
Definition: epp_common.h:506
epps_create_nsset
Create nsset parameters.
Definition: epp_common.h:764
TEXT_CONTENT
#define TEXT_CONTENT(_xpathObj, _i)
Get text content of an element.
Definition: epp_parser.c:101
epps_update_nsset::rem_tech
qhead rem_tech
Technical contacts to be removed.
Definition: epp_common.h:838
XERR_OK
#define XERR_OK
OK status.
Definition: epp_parser.c:70
cmd_hash_insert
static char cmd_hash_insert(const char *key, epp_command_type type)
Function inserts command in hash table.
Definition: epp_parser.c:461
xpath_count
static int xpath_count(xmlXPathContextPtr ctx, const char *expr, int *xerr)
Sometimes we want to know how many elements satisfying xpath expression are there or just to know if ...
Definition: epp_parser.c:191
eppd_server_xml_conf
Configuration of entities enabled in xml schemas.
Definition: epp_common.h:408
epps_update_domain::rem_tmpcontact
qhead rem_tmpcontact
Temporary contact used for migration.
Definition: epp_common.h:826
epps_login::lang
unsigned lang
Language.
Definition: epp_common.h:553
epp_ns
Nameserver has a name and possibly more than one ip address.
Definition: epp_common.h:420
epps_update_nsset
Update nsset parameters.
Definition: epp_common.h:834
epps_login::newPW
char * newPW
New password.
Definition: epp_common.h:550
VAL_EINTERNAL
@ VAL_EINTERNAL
Internal error (malloc failed).
Definition: epp_xmlcommon.h:74
epp_error::reason
char * reason
Human readable reason of error.
Definition: epp_common.h:221
parse_ext_extraaddr_update
static void parse_ext_extraaddr_update(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of extraaddr extension in context of update contact command.
Definition: epp_parser.c:2870
epps_update_domain::keyset
char * keyset
Keyset of domain.
Definition: epp_common.h:828
epp_strdup
char * epp_strdup(void *pool, const char *str)
Duplicate string from argument, the memory will be allocated from memory pool.
Definition: mod_eppd.c:404
epps_create_domain::registrant
char * registrant
Registrant of domain.
Definition: epp_common.h:751
epps_update_contact::discl
epp_discl discl
Disclose information section.
Definition: epp_common.h:811
epps_poll_ack::msgid
char * msgid
ID of acknoledged message.
Definition: epp_common.h:724
epps_create_contact
Create contact parameters.
Definition: epp_common.h:730
epps_renew::curExDate
char * curExDate
Current expiration date.
Definition: epp_common.h:794
epps_update_contact::discl_update
unsigned char discl_update
Use disclose information section.
Definition: epp_common.h:810
PARSER_CMD_LOGOUT
@ PARSER_CMD_LOGOUT
Logout command.
Definition: epp_parser.h:35
epps_login::clID
char * clID
Client ID.
Definition: epp_common.h:548
epp_mailingAddr::City
char * City
city
Definition: epp_common.h:474
ident_BIRTHDAY
@ ident_BIRTHDAY
Date of birth.
Definition: epp_common.h:443
read_epp_dnskey
int read_epp_dnskey(void *pool, xmlXPathContextPtr xpathCtx, epp_dnskey *key)
Read DNSKEY information from xml into epp_dnskey structure.
Definition: epp_parser.c:1440
epps_create_contact::voice
char * voice
Telephone number.
Definition: epp_common.h:734
ident_UNKNOWN
@ ident_UNKNOWN
Unknown value can also mean undefined.
Definition: epp_common.h:438
epps_create_domain::keyset
char * keyset
Keyset for domain.
Definition: epp_common.h:754
epps_info
All Info functions, which accept single key on input and count on output (domainsByNsset,...
Definition: epp_common.h:894
epps_login::pw
char * pw
Password.
Definition: epp_common.h:549
get_attr
static char * get_attr(xmlNodePtr node, const char *name)
This function returns specified attribute value of given node.
Definition: epp_parser.c:119
epp_postalInfo::org
char * org
Organization.
Definition: epp_common.h:361
parse_update_domain
static void parse_update_domain(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP update-domain command.
Definition: epp_parser.c:1680
epps_update_contact
Update contact parameters.
Definition: epp_common.h:802
epps_renew::name
char * name
Name of renewed domain.
Definition: epp_common.h:793
parse_create_domain
static void parse_create_domain(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP create-domain command.
Definition: epp_parser.c:986
epps_create_domain::name
char * name
FQDN of wanted domain (input).
Definition: epp_common.h:750
epps_update_keyset::id
char * id
Id of wanted keyset (input).
Definition: epp_common.h:848
epps_update_domain::nsset
char * nsset
Nsset of domain.
Definition: epp_common.h:827
parse_info
static void parse_info(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP info command + list command.
Definition: epp_parser.c:787
PARSER_CMD_LOGIN
@ PARSER_CMD_LOGIN
Login command.
Definition: epp_parser.h:34
epps_update_keyset::add_tech
qhead add_tech
Technical contacts to be added.
Definition: epp_common.h:849
epp_parser_init
void * epp_parser_init(const char *url_schema)
This routine initializes libxml's parser, hash table for command recognition and parses xml schema,...
Definition: epp_parser.c:532
epps_update_contact::identtype
epp_identType identtype
Type of unique ident.
Definition: epp_common.h:814
epps_login::objuri
qhead objuri
currently not used
Definition: epp_common.h:551
parse_update_contact
static void parse_update_contact(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP update-contact command.
Definition: epp_parser.c:1758
parse_ext_enumval_update
static void parse_ext_enumval_update(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of enumval extension in context of update domain command.
Definition: epp_parser.c:2690
epps_create_nsset::tech
qhead tech
List of technical contacts for nsset.
Definition: epp_common.h:769
epps_update_nsset::add_ns
qhead add_ns
Nameservers to be added.
Definition: epp_common.h:839
epps_info_nsset::id
char * id
Id of wanted nsset (input).
Definition: epp_common.h:615
epp_context
EPP context is a group of variables used often together.
Definition: epp_common.h:45
epp_dnskey::public_key
char * public_key
base64 encoded public key
Definition: epp_common.h:432
epp_calloc
void * epp_calloc(void *pool, unsigned size)
Allocate memory from memory pool and prezero it.
Definition: mod_eppd.c:386
epps_update_nsset::add_tech
qhead add_tech
Technical contacts to be added.
Definition: epp_common.h:837
parse_create
static void parse_create(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP create command.
Definition: epp_parser.c:1475
NS_DOMAIN
#define NS_DOMAIN
Our custom namespace used for domain object.
Definition: epp_xmlcommon.h:37
epps_update_contact::pi
epp_postalInfo * pi
Postal info.
Definition: epp_common.h:805
NS_KEYSET
#define NS_KEYSET
Our custom namespace used for keyset object.
Definition: epp_xmlcommon.h:41
epp_dnskey::alg
unsigned char alg
algorithm type
Definition: epp_common.h:431
epps_test
Test parameters.
Definition: epp_common.h:876
PARSER_NOT_COMMAND
@ PARSER_NOT_COMMAND
Request is not a command nor hello frame.
Definition: epp_parser.h:46
parse_update_nsset
static void parse_update_nsset(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP update-nsset command.
Definition: epp_parser.c:2173
epp_command_data::xml_schema
eppd_server_xml_conf xml_schema
Entities enabled in xml schemas.
Definition: epp_common.h:930
epp_command_data::clTRID
char * clTRID
client's TRID
Definition: epp_common.h:911
epp_command_data::data
void * data
Command data (Input + output parameters for all possible epp commands).
Definition: epp_common.h:935
xpath_get1
static char * xpath_get1(void *pool, xmlXPathContextPtr ctx, const char *expr, int req, int *xerr)
A content of element described by xpath expression is returned.
Definition: epp_parser.c:224
epp_parser_request_cleanup
void epp_parser_request_cleanup(void *cdata_arg)
This will cleanup xpath context and parsed document tree.
Definition: epp_parser.c:587
epp_ext_item::extType
epp_ext_type extType
Identifier of extension.
Definition: epp_common.h:502
parse_create_contact
static void parse_create_contact(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP create-contact command.
Definition: epp_parser.c:1081
epp_errorspec
epp_errorspec
In case that central repository finds out that some parameter is bad, there has to be way how to prop...
Definition: epp_common.h:157
epps_create_domain
Create domain parameters.
Definition: epp_common.h:748
epps_update_domain::registrant
char * registrant
Registrant of domain.
Definition: epp_common.h:823
epp_dnskey::flags
unsigned short flags
key properties.
Definition: epp_common.h:429
cmd_hash_item_t::key
char * key
Hash key (command name).
Definition: epp_parser.c:417
NS_ENUMVAL
#define NS_ENUMVAL
Our custom namespace used for enum validation extension.
Definition: epp_xmlcommon.h:45
epps_create_contact::email
char * email
Email address.
Definition: epp_common.h:736
epp_mailingAddr::Street2
char * Street2
street - line #2
Definition: epp_common.h:472
get_cmd_hash
static unsigned char get_cmd_hash(const char *key)
Function for hashing of command name.
Definition: epp_parser.c:441
epp_command_type
epp_command_type
Enumeration of codes of all EPP commands this module is able to handle.
Definition: epp_common.h:62
VAL_NOT_VALID
@ VAL_NOT_VALID
Document does not validate.
Definition: epp_xmlcommon.h:72
epps_update_keyset::rem_tech
qhead rem_tech
Technical contacts to be removed.
Definition: epp_common.h:850
epps_login
Login parameters.
Definition: epp_common.h:546
parse_create_nsset
static void parse_create_nsset(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP create-nsset command.
Definition: epp_parser.c:1292
epps_create_nsset::level
int level
Report level.
Definition: epp_common.h:771
epps_update_nsset::level
int level
Report level.
Definition: epp_common.h:842
epps_create_domain::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:757
PARSER_HELLO
@ PARSER_HELLO
Request is not command but <hello> frame this indicates that greeting should be generated.
Definition: epp_parser.h:42
epps_update_contact::id
char * id
Id of wanted contact (input).
Definition: epp_common.h:804
epps_poll_ack
Poll acknoledge parameters.
Definition: epp_common.h:722
epps_update_keyset::rem_dnskey
qhead rem_dnskey
DNSKEYs to be removed.
Definition: epp_common.h:852
epps_update_nsset::id
char * id
Id of wanted nsset (input).
Definition: epp_common.h:836
epps_update_keyset
Update keyset parameters.
Definition: epp_common.h:846
epps_create_keyset::keys
qhead keys
List of DNS Key records.
Definition: epp_common.h:779
epps_create_nsset::ns
qhead ns
List of nameservers.
Definition: epp_common.h:768
epp_identType
epp_identType
Type of identification number used in contact object.
Definition: epp_common.h:436
epps_info_domain
Info domain parameters.
Definition: epp_common.h:590
epp_mailingAddr::Street1
char * Street1
street - line #1
Definition: epp_common.h:471
valid_status
valid_status
Enumaration of statuses returned by validator.
Definition: epp_xmlcommon.h:70
epps_test::names
qhead names
Fqdns of domains to be tested with nsset.
Definition: epp_common.h:879
cmd_hash_item_t::val
epp_command_type val
Hash value (command type).
Definition: epp_parser.c:418
epp_error::spec
epp_errorspec spec
Specification of surrounding XML tags.
Definition: epp_common.h:212
epps_update_domain
Update domain parameters.
Definition: epp_common.h:820
XERR_ALLOC
#define XERR_ALLOC
Memory allocation failed.
Definition: epp_parser.c:72
epps_create_domain::extensions
qhead extensions
List of domain extensions.
Definition: epp_common.h:758
epp_context::pool
void * pool
Pool for allocations.
Definition: epp_common.h:47
HASH_SIZE_CMD
#define HASH_SIZE_CMD
Size of hash table used for hashing command names.
Definition: epp_parser.c:57
epp_mailingAddr::StateOrProvince
char * StateOrProvince
state or province
Definition: epp_common.h:475
epp_controlled_privacy_data_mask
Definition: epp_common.h:392
epps_create_contact::identtype
epp_identType identtype
Type of unique ident.
Definition: epp_common.h:741
epps_info::handle
char * handle
Search key.
Definition: epp_common.h:896
ident_PASSPORT
@ ident_PASSPORT
Number of passport.
Definition: epp_common.h:440
epps_create_contact::fax
char * fax
Fax number.
Definition: epp_common.h:735
parse_ext_enumval_create
static void parse_ext_enumval_create(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of enumval extension in context of create domain command.
Definition: epp_parser.c:2637
epps_create_nsset::id
char * id
Id of wanted nsset (input).
Definition: epp_common.h:766
epp_parser_init_cleanup
void epp_parser_init_cleanup(void *schema)
This will cleanup command hash table, libxml's parser and release parsed xml schema.
Definition: epp_parser.c:580
epps_renew::unit
epp_timeunit unit
Registration period's unit.
Definition: epp_common.h:796
epps_delete
Delete parameters.
Definition: epp_common.h:785
epp_parser.h
epps_update_domain::name
char * name
FQDN of wanted domain (input).
Definition: epp_common.h:822
epps_create_domain::unit
epp_timeunit unit
Registration period's unit.
Definition: epp_common.h:756
epps_create_contact::extensions
qhead extensions
List of extensions.
Definition: epp_common.h:744
epps_info_keyset::id
char * id
Id of wanted keyset (input).
Definition: epp_common.h:634
epps_renew::period
int period
Renew period.
Definition: epp_common.h:795
epp_xmlcommon.h
epps_test::id
char * id
ID of tested nsset.
Definition: epp_common.h:878
epps_update_domain::add_admin
qhead add_admin
Admin contacts to be added.
Definition: epp_common.h:824
xpath_get_attr
static char * xpath_get_attr(void *pool, xmlXPathContextPtr ctx, const char *expr, const char *attr, int req, int *xerr)
A value of attribute of node described by xpath expression is returned.
Definition: epp_parser.c:335
cmd_hash_item_t
Item of command hash table used for fast command recognition.
Definition: epp_parser.c:414
cmd_hash_lookup
static epp_command_type cmd_hash_lookup(const char *key)
This routine does traditional lookup on hash table containing commands.
Definition: epp_parser.c:493
epps_create_keyset
Create keyset parameters.
Definition: epp_common.h:775
epps_update_nsset::rem_ns
qhead rem_ns
Nameservers to be removed.
Definition: epp_common.h:840
epp_dnskey
DNS Key record - http://rfc-ref.org/RFC-TEXTS/4034/chapter2.html.
Definition: epp_common.h:427
epps_update_nsset::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:841
epp_parse_command
parser_status epp_parse_command(epp_context *epp_ctx, int loggedin, void *schema, const char *request, unsigned bytes, epp_command_data **cdata_arg, const eppd_server_xml_conf *xml_schema, epp_red_command_type *cmd_type)
This is the main workhorse of parser component.
Definition: epp_parser.c:3378
epp_postalInfo::pc
char * pc
Postal code.
Definition: epp_common.h:365
epps_update_contact::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:809
epp_postalInfo::city
char * city
City.
Definition: epp_common.h:363
hash_cmd
static cmd_hash_item * hash_cmd[HASH_SIZE_CMD]
Hash table of epp commands used for fast command lookup.
Definition: epp_parser.c:427
epps_sendAuthInfo
SendAuthInfo parameters.
Definition: epp_common.h:864
epps_create_keyset::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:778
PARSER_ESCHEMA
@ PARSER_ESCHEMA
Error when parsing xml schema.
Definition: epp_parser.h:48
epp_ns::addr
qhead addr
List of ip addresses.
Definition: epp_common.h:423
epps_test::level
int level
Level of tests (-1 if not overriden).
Definition: epp_common.h:880
VAL_ESCHEMA
@ VAL_ESCHEMA
Error when loading or parsing schema.
Definition: epp_xmlcommon.h:73
epps_update_keyset::add_dnskey
qhead add_dnskey
DNSKEYs to be added.
Definition: epp_common.h:851
cmd_hash_item_t::next
cmd_hash_item * next
Next item in hash table.
Definition: epp_parser.c:416
epp_malloc
void * epp_malloc(void *pool, unsigned size)
Allocate memory from memory pool.
epps_create_contact::id
char * id
Id of wanted contact (input).
Definition: epp_common.h:732
epp_mailingAddr::Street3
char * Street3
street - line #3
Definition: epp_common.h:473
ident_OP
@ ident_OP
Number of ID card.
Definition: epp_common.h:439
PARSER_CMD_OTHER
@ PARSER_CMD_OTHER
A command other than login and logout.
Definition: epp_parser.h:36
epps_info_keyset
Info keyset parameters.
Definition: epp_common.h:632
epp_postalInfo::cc
char * cc
Country code.
Definition: epp_common.h:366
epps_create_keyset::tech
qhead tech
List of technical contacts for keyset.
Definition: epp_common.h:780
epp_error::value
char * value
Client provided input which caused the error.
Definition: epp_common.h:206
epps_update_keyset::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:853
epps_update_contact::fax
char * fax
Fax number.
Definition: epp_common.h:807
qhead
Queue structure used on countless places throughout the program.
Definition: epp_common.h:309
epp_command_data::rc
int rc
EPP return code defined in standard.
Definition: epp_common.h:913
NS_CONTACT
#define NS_CONTACT
Our custom namespace used for contact object.
Definition: epp_xmlcommon.h:35
epp_ext_item::ext_enum
epp_ext_enum ext_enum
Extensions for ENUM.
Definition: epp_common.h:505
parse_poll
static void parse_poll(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP poll command.
Definition: epp_parser.c:925
epp_error
The struct represents one epp error in ExtValue element.
Definition: epp_common.h:203
epp_command_data::xml_in
char * xml_in
XML as it is received from client.
Definition: epp_common.h:915
ident_MPSV
@ ident_MPSV
Number assigned by "ministry of work and ...".
Definition: epp_common.h:441
parse_command
static parser_status parse_command(void *pool, int loggedin, epp_command_data *cdata, epp_red_command_type *cmd, xmlXPathContextPtr xpathCtx)
Generic parser of EPP command section.
Definition: epp_parser.c:2991
PARSER_EINTERNAL
@ PARSER_EINTERNAL
Internal parser error (e.g.
Definition: epp_parser.h:54
NS_EPP
#define NS_EPP
Standard EPP xml namespace.
Definition: epp_xmlcommon.h:33
parse_ext_enumval_renew
static void parse_ext_enumval_renew(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of enumval extension in context of renew domain command.
Definition: epp_parser.c:2743
epps_check
Check contact, domain and nsset parameters.
Definition: epp_common.h:557
validate_doc
valid_status validate_doc(void *pool, xmlSchemaPtr schema, xmlDocPtr doc, qhead *err_list)
Function for validating xml document.
Definition: epp_xmlcommon.c:136
epp_command_data::parsed_doc
void * parsed_doc
Parsed XML document tree.
Definition: epp_common.h:918
epps_create_domain::nsset
char * nsset
Nsset of domain.
Definition: epp_common.h:753
CHK_XERR
#define CHK_XERR(_var, _label)
Macro checks given variable for an error, if the variable has error status, a flow of a program is re...
Definition: epp_parser.c:79
epps_creditInfo
CreditInfo parameters.
Definition: epp_common.h:870
epp_ext_enum::publish
int publish
Flag determining if this domain can be published in the ENUM dictionary.
Definition: epp_common.h:465
epps_update_contact::ident
char * ident
Contact's unique ident.
Definition: epp_common.h:813
epps_create_nsset::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:767
RESET_XERR
#define RESET_XERR(_var)
Macro checks given variable for an error, if the variable has error status, a flow of a program is re...
Definition: epp_parser.c:87
epps_update_contact::extensions
qhead extensions
List of extensions.
Definition: epp_common.h:816
epp_mailingAddr::CountryCode
char * CountryCode
country code - 2 char ISO country code
Definition: epp_common.h:477
xpath_getn
static void xpath_getn(void *pool, qhead *list, xmlXPathContextPtr ctx, const char *expr, int *xerr)
List is filled by content of elements described by xpath expression (There may be more elements match...
Definition: epp_parser.c:278
xpath_chroot
static xmlNodePtr xpath_chroot(xmlXPathContextPtr ctx, const char *expr, int index, int *xerr)
Function changes relative root of xpath context to node described by xpath expression.
Definition: epp_parser.c:156
parse_transfer
static void parse_transfer(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP transfer command.
Definition: epp_parser.c:2348
cmd_hash_clean
static void cmd_hash_clean(void)
Function releases all items in command hash table.
Definition: epp_parser.c:513
PARSER_NOT_VALID
@ PARSER_NOT_VALID
Request does not validate.
Definition: epp_parser.h:37
epp_parse_command
parser_status epp_parse_command(epp_context *epp_ctx, int loggedin, void *schema, const char *request, unsigned bytes, epp_command_data **cdata, const eppd_server_xml_conf *xml_schema, epp_red_command_type *cmd_type)
This is the main workhorse of parser component.
Definition: epp_parser.c:3378
epp_command_data
This structure is central to the concept of the whole module.
Definition: epp_common.h:909
epps_create_contact::pi
epp_postalInfo pi
Postal info.
Definition: epp_common.h:733
epp_postalInfo::streets
qhead streets
3x street.
Definition: epp_common.h:362
new_error_item
static int new_error_item(void *pool, qhead *errors, epp_errorspec errspec)
Create and enqueue new error item of specified type.
Definition: epp_parser.c:613
epp_ext_enum::ext_enumval
char * ext_enumval
Domain validation.
Definition: epp_common.h:464
NS_FRED
#define NS_FRED
Our custom namespace used for extensions definition.
Definition: epp_xmlcommon.h:43
parse_infoKey
static void parse_infoKey(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata, const char *key)
Parametrized parser of commands domainsByNsset, domainsByContact, nssetsByContact and nssetsByNs.
Definition: epp_parser.c:2551
parse_update
static void parse_update(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of EPP update command.
Definition: epp_parser.c:2279
epps_create_contact::ident
char * ident
Contact's unique ident.
Definition: epp_common.h:740
epps_create_contact::notify_email
char * notify_email
Notification email.
Definition: epp_common.h:742
XML_IN_ENC
#define XML_IN_ENC
Encoding for input xml in epp_command_data structure.
Definition: epp_parser.c:63
epps_info_nsset
Info nsset parameters.
Definition: epp_common.h:613
parse_test
static void parse_test(void *pool, xmlXPathContextPtr xpathCtx, epp_command_data *cdata)
Parser of command test.
Definition: epp_parser.c:2582
epp_command_data::type
epp_command_type type
Identification of epp command.
Definition: epp_common.h:929
string2identtype
static epp_identType string2identtype(const char *str)
Routine converts string to ident type.
Definition: epp_parser.c:1048
epps_transfer
Transfer parameters.
Definition: epp_common.h:857
epp_common.h
PARSER_NOT_XML
@ PARSER_NOT_XML
Request is not xml.
Definition: epp_parser.h:47
epp_dnskey::protocol
unsigned char protocol
= 3
Definition: epp_common.h:430
epp_command_data::xpath_ctx
void * xpath_ctx
XPath context.
Definition: epp_common.h:919
q_add
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).
Definition: epp_common.c:31
epps_create_contact::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:737
epp_ext_item::ext
union epp_ext_item::@1 ext
Extension.
epps_update_domain::authInfo
char * authInfo
Authorization information.
Definition: epp_common.h:829
epp_mailingAddr::PostalCode
char * PostalCode
postal code
Definition: epp_common.h:476