GNUnet  0.10.x
gnunet-service-gns.h File Reference

GNU Name System (main service) More...

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

Go to the source code of this file.


int GNS_find_tld (const char *tld_str, struct GNUNET_CRYPTO_EcdsaPublicKey *pkey)
 Find GNS zone belonging to TLD tld. More...
const char * GNS_get_tld (const char *name)
 Obtain the TLD of the given name. More...

Detailed Description

GNU Name System (main service)

Martin Schanzenbach
Christian Grothoff

Definition in file gnunet-service-gns.h.

Function Documentation

◆ GNS_find_tld()

int GNS_find_tld ( const char *  tld_str,
struct GNUNET_CRYPTO_EcdsaPublicKey pkey 

Find GNS zone belonging to TLD tld.

tld_strtop-level domain to look up
[out]pkeypublic key to set
GNUNET_YES if tld was found GNUNET_NO if not

Definition at line 176 of file gnunet-service-gns.c.

References GNUNET_GNSRECORD_zkey_to_pkey(), GNUNET_NO, GNUNET_OK, GNUNET_YES, and GNS_TopLevelDomain::tld.

Referenced by handle_dns_request().

178 {
179  if ('\0' == *tld_str)
180  return GNUNET_NO;
181  for (struct GNS_TopLevelDomain *tld = tld_head;
182  NULL != tld;
183  tld = tld->next)
184  {
185  if (0 == strcasecmp(tld_str,
186  tld->tld))
187  {
188  *pkey = tld->pkey;
189  return GNUNET_YES;
190  }
191  }
192  if (GNUNET_OK ==
193  GNUNET_GNSRECORD_zkey_to_pkey(tld_str + 1,
194  pkey))
195  return GNUNET_YES; /* TLD string *was* the public key */
196  return GNUNET_NO;
197 }
static struct GNS_TopLevelDomain * tld_head
Head of DLL of TLDs we map to GNS zones.
int GNUNET_GNSRECORD_zkey_to_pkey(const char *zkey, struct GNUNET_CRYPTO_EcdsaPublicKey *pkey)
Convert an absolute domain name to the respective public key.
#define GNUNET_NO
Definition: gnunet_common.h:78
#define GNUNET_OK
Named constants for return values.
Definition: gnunet_common.h:75
Representation of a TLD, mapping the respective TLD string (i.e.
char * tld
Top-level domain as a string, including leading ".".
#define GNUNET_YES
Definition: gnunet_common.h:77
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GNS_get_tld()

const char* GNS_get_tld ( const char *  name)

Obtain the TLD of the given name.

namea name
the part of name after the last ".", or name if name does not contain a "."

Definition at line 208 of file gnunet-service-gns.c.

References name, and GNS_TopLevelDomain::tld.

Referenced by handle_dns_request(), and recursive_gns2dns_resolution().

209 {
210  const char *tld;
212  tld = strrchr(name,
213  (unsigned char)'.');
214  if (NULL == tld)
215  tld = name;
216  else
217  tld++; /* skip the '.' */
218  return tld;
219 }
const char * name
char * tld
Top-level domain as a string, including leading ".".
Here is the caller graph for this function: