Skip to content
Snippets Groups Projects
Commit 238f1bf1 authored by Marek Vavrusa's avatar Marek Vavrusa
Browse files

Implemented both text and hexstring based NSID identifier.

refs #1547
parent df07e85d
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,8 @@ system { ...@@ -21,6 +21,8 @@ system {
version "0.1"; version "0.1";
# Server identifier # Server identifier
# Use string format "text"
# Or hexstring 0x01ab00
nsid "myserver0"; nsid "myserver0";
# Working directory of the server # Working directory of the server
......
...@@ -286,7 +286,8 @@ system: ...@@ -286,7 +286,8 @@ system:
SYSTEM '{' SYSTEM '{'
| system VERSION TEXT ';' { new_config->version = $3.t; } | system VERSION TEXT ';' { new_config->version = $3.t; }
| system IDENTITY TEXT ';' { new_config->identity = $3.t; } | system IDENTITY TEXT ';' { new_config->identity = $3.t; }
| system NSID TEXT ';' { new_config->nsid = $3.t; } | system NSID HEXSTR ';' { new_config->nsid = $3.t; new_config->nsid_len = $3.l; }
| system NSID TEXT ';' { new_config->nsid = $3.t; new_config->nsid_len = strlen(new_config->nsid); }
| system STORAGE TEXT ';' { new_config->storage = $3.t; } | system STORAGE TEXT ';' { new_config->storage = $3.t; }
| system KEY TSIG_ALGO_NAME TEXT ';' { | system KEY TSIG_ALGO_NAME TEXT ';' {
fprintf(stderr, "warning: Config option 'system.key' is deprecated " fprintf(stderr, "warning: Config option 'system.key' is deprecated "
......
...@@ -156,6 +156,7 @@ typedef struct conf_t { ...@@ -156,6 +156,7 @@ typedef struct conf_t {
char *storage; /*!< Persistent storage path for databases and such. */ char *storage; /*!< Persistent storage path for databases and such. */
char *pidfile; /*!< PID file path. */ char *pidfile; /*!< PID file path. */
char *nsid; /*!< Server's NSID. */ char *nsid; /*!< Server's NSID. */
size_t nsid_len;/*!< Server's NSID length. */
int workers; /*!< Number of workers per interface. */ int workers; /*!< Number of workers per interface. */
int uid; /*!< Specified user id. */ int uid; /*!< Specified user id. */
int gid; /*!< Specified group id. */ int gid; /*!< Specified group id. */
......
...@@ -2356,7 +2356,7 @@ int zones_ns_conf_hook(const struct conf_t *conf, void *data) ...@@ -2356,7 +2356,7 @@ int zones_ns_conf_hook(const struct conf_t *conf, void *data)
dbg_zones_verb("zones: reconfiguring name server.\n"); dbg_zones_verb("zones: reconfiguring name server.\n");
/* Set NSID. */ /* Set NSID. */
knot_ns_set_nsid(ns, conf->nsid); knot_ns_set_nsid(ns, conf->nsid, conf->nsid_len);
knot_zonedb_t *old_db = 0; knot_zonedb_t *old_db = 0;
......
...@@ -2631,7 +2631,7 @@ knot_nameserver_t *knot_ns_create() ...@@ -2631,7 +2631,7 @@ knot_nameserver_t *knot_ns_create()
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
void knot_ns_set_nsid(knot_nameserver_t *nameserver, const char *nsid) void knot_ns_set_nsid(knot_nameserver_t *nameserver, const char *nsid, size_t len)
{ {
if (nameserver == NULL) { if (nameserver == NULL) {
dbg_ns("NS: set_nsid: nameserver=NULL.\n"); dbg_ns("NS: set_nsid: nameserver=NULL.\n");
...@@ -2644,7 +2644,7 @@ void knot_ns_set_nsid(knot_nameserver_t *nameserver, const char *nsid) ...@@ -2644,7 +2644,7 @@ void knot_ns_set_nsid(knot_nameserver_t *nameserver, const char *nsid)
} }
int ret = knot_edns_add_option(nameserver->opt_rr, EDNS_OPTION_NSID, int ret = knot_edns_add_option(nameserver->opt_rr, EDNS_OPTION_NSID,
strlen(nsid), (const uint8_t *)nsid); len, (const uint8_t *)nsid);
if (ret != KNOT_EOK) { if (ret != KNOT_EOK) {
dbg_ns("NS: set_nsid: could not add EDNS option.\n"); dbg_ns("NS: set_nsid: could not add EDNS option.\n");
return; return;
......
...@@ -177,7 +177,8 @@ typedef enum knot_ns_xfr_type_t { ...@@ -177,7 +177,8 @@ typedef enum knot_ns_xfr_type_t {
*/ */
knot_nameserver_t *knot_ns_create(); knot_nameserver_t *knot_ns_create();
void knot_ns_set_nsid(knot_nameserver_t *nameserver, const char *nsid); /*! \todo Document me. */
void knot_ns_set_nsid(knot_nameserver_t *nameserver, const char *nsid, size_t len);
/*! /*!
* \brief Parses the given query into the response structure and recognizes * \brief Parses the given query into the response structure and recognizes
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment