GNUnet  0.17.5
gnunet-service-gns.h File Reference

GNU Name System (main service) More...

#include "gnunet_identity_service.h"
Include dependency graph for gnunet-service-gns.h:
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_IDENTITY_PublicKey *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_IDENTITY_PublicKey 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 179 of file gnunet-service-gns.c.

181 {
182  if ('\0' == *tld_str)
183  return GNUNET_NO;
184  for (struct GNS_TopLevelDomain *tld = tld_head;
185  NULL != tld;
186  tld = tld->next)
187  {
188  if (0 == strcasecmp (tld_str,
189  tld->tld))
190  {
191  *pkey = tld->pkey;
192  return GNUNET_YES;
193  }
194  }
195  if (GNUNET_OK ==
196  GNUNET_GNSRECORD_zkey_to_pkey (tld_str + 1,
197  pkey))
198  return GNUNET_YES; /* TLD string *was* the public key */
199  return GNUNET_NO;
200 }
static char * pkey
Public key of the zone to look in, in ASCII.
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_IDENTITY_PublicKey *pkey)
Convert an absolute domain name to the respective public key.
Definition: gnunet_common.h:99
Definition: gnunet_common.h:98
Representation of a TLD, mapping the respective TLD string (e.g.
struct GNS_TopLevelDomain * next
Kept in a DLL, as there are unlikely enough of these to warrant a hash map.

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

Referenced by handle_dns_request().

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 211 of file gnunet-service-gns.c.

212 {
213  const char *tld;
215  tld = strrchr (name,
216  (unsigned char) '.');
217  if (NULL == tld)
218  tld = name;
219  else
220  tld++; /* skip the '.' */
221  return tld;
222 }
const char * name

References name, and GNS_TopLevelDomain::tld.

Referenced by handle_dns_request(), handle_gns_redirect_result(), and recursive_gns2dns_resolution().

Here is the caller graph for this function: