GNUnet  0.10.x
Functions | Variables
list-keys.c File Reference
#include "platform.h"
#include "gnunet_util_lib.h"
#include "gnunet_testing_lib.h"
Include dependency graph for list-keys.c:

Go to the source code of this file.

Functions

static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *config)
 Main run function. More...
 
int main (int argc, char *argv[])
 

Variables

static unsigned int nkeys
 
static unsigned int nskip
 
static int result
 

Function Documentation

◆ run()

static void run ( void *  cls,
char *const *  args,
const char *  cfgfile,
const struct GNUNET_CONFIGURATION_Handle config 
)
static

Main run function.

Parameters
clsNULL
argsarguments passed to GNUNET_PROGRAM_run
cfgfilethe path to configuration file
cfgthe configuration file handle

Definition at line 18 of file list-keys.c.

References _, data, removetrailingwhitespace::f, GNUNET_break, GNUNET_CRYPTO_eddsa_key_get_public(), GNUNET_DISK_file_close(), GNUNET_DISK_file_map(), GNUNET_DISK_file_open(), GNUNET_DISK_file_size(), GNUNET_DISK_file_unmap(), GNUNET_DISK_MAP_TYPE_READ, GNUNET_DISK_OPEN_READ, GNUNET_DISK_PERM_NONE, GNUNET_i2s_full(), GNUNET_memcpy, GNUNET_OK, GNUNET_TESTING_HOSTKEYFILESIZE, GNUNET_YES, map, nkeys, nskip, GNUNET_PeerIdentity::public_key, and result.

Referenced by main().

22 {
23  char *idfile;
24  struct GNUNET_DISK_FileHandle *f;
25  void *data;
26  struct GNUNET_DISK_MapHandle *map;
28  struct GNUNET_PeerIdentity id;
29  unsigned int cnt;
30  uint64_t fsize;
31  unsigned int nmax;
32 
33  if ((NULL == args) || (NULL == args[0]))
34  {
35  fprintf(stderr, "Need the hostkey file\n");
36  return;
37  }
38  idfile = args[0];
39  if (GNUNET_OK !=
41  {
42  GNUNET_break(0);
43  return;
44  }
45  if (0 != (fsize % GNUNET_TESTING_HOSTKEYFILESIZE))
46  {
47  fprintf(stderr, _("Incorrect hostkey file format: %s\n"), idfile);
48  return;
49  }
50  f = GNUNET_DISK_file_open(idfile,
53  if (NULL == f)
54  {
55  GNUNET_break(0);
56  return;
57  }
58  data = GNUNET_DISK_file_map(f, &map, GNUNET_DISK_MAP_TYPE_READ, fsize);
59  if (NULL == data)
60  {
61  GNUNET_break(0);
63  return;
64  }
65  nmax = fsize / GNUNET_TESTING_HOSTKEYFILESIZE;
66  for (cnt = nskip; cnt < (nskip + nkeys); cnt++)
67  {
68  if (nskip + cnt >= nmax)
69  {
70  printf("Max keys %u reached\n", nmax);
71  break;
72  }
74  data + (cnt * GNUNET_TESTING_HOSTKEYFILESIZE),
75  GNUNET_TESTING_HOSTKEYFILESIZE);
77  printf("Key %u: %s\n", cnt, GNUNET_i2s_full(&id));
78  }
79  result = GNUNET_OK;
82 }
Open the file for reading.
int GNUNET_DISK_file_close(struct GNUNET_DISK_FileHandle *h)
Close an open file.
Definition: disk.c:1339
static char * pkey
Public key of the zone to look in, in ASCII.
static int result
Definition: list-keys.c:7
void * GNUNET_DISK_file_map(const struct GNUNET_DISK_FileHandle *h, struct GNUNET_DISK_MapHandle **m, enum GNUNET_DISK_MapType access, size_t len)
Map a file into memory.
Definition: disk.c:1433
Nobody is allowed to do anything to the file.
#define GNUNET_memcpy(dst, src, n)
Call memcpy() but check for n being 0 first.
const char * GNUNET_i2s_full(const struct GNUNET_PeerIdentity *pid)
Convert a peer identity to a string (for printing debug messages).
static struct GNUNET_IDENTITY_Handle * id
Handle to identity service.
#define GNUNET_OK
Named constants for return values.
Definition: gnunet_common.h:75
#define GNUNET_TESTING_HOSTKEYFILESIZE
Size of each hostkey in the hostkey file (in BYTES).
#define GNUNET_break(cond)
Use this for internal assertion violations that are not fatal (can be handled) but should not occur...
static struct GNUNET_CONTAINER_MultiPeerMap * map
Handle to the map used to store old latency values for peers.
#define _(String)
GNU gettext support macro.
Definition: platform.h:181
static unsigned int nskip
Definition: list-keys.c:6
Read-only memory map.
static unsigned int nkeys
Definition: list-keys.c:5
int GNUNET_DISK_file_unmap(struct GNUNET_DISK_MapHandle *h)
Unmap a file.
Definition: disk.c:1469
int GNUNET_DISK_file_size(const char *filename, uint64_t *size, int include_symbolic_links, int single_file_mode)
Get the size of the file (or directory) of the given file (in bytes).
Definition: disk.c:254
void GNUNET_CRYPTO_eddsa_key_get_public(const struct GNUNET_CRYPTO_EddsaPrivateKey *priv, struct GNUNET_CRYPTO_EddsaPublicKey *pub)
Extract the public key for the given private key.
Definition: crypto_ecc.c:272
Private ECC key encoded for transmission.
The identity of the host (wraps the signing key of the peer).
#define GNUNET_YES
Definition: gnunet_common.h:77
uint32_t data
The data value.
struct GNUNET_DISK_FileHandle * GNUNET_DISK_file_open(const char *fn, enum GNUNET_DISK_OpenFlags flags, enum GNUNET_DISK_AccessPermissions perm)
Open a file.
Definition: disk.c:1262
Handle used to access files (and pipes).
Handle for a memory-mapping operation.
Definition: disk.c:1406
struct GNUNET_CRYPTO_EddsaPublicKey public_key
Here is the call graph for this function:
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 86 of file list-keys.c.

References gettext_noop, GNUNET_GETOPT_OPTION_END, GNUNET_GETOPT_option_uint(), GNUNET_OK, GNUNET_PROGRAM_run(), GNUNET_SYSERR, nkeys, result, ret, and run().

87 {
90  "num-keys",
91  "COUNT",
92  gettext_noop("list COUNT number of keys"),
93  &nkeys),
95  int ret;
96 
98  nkeys = 10;
99  ret =
100  GNUNET_PROGRAM_run(argc,
101  argv,
102  "list-keys",
103  "Lists the peer IDs corresponding to the given keys file\n",
104  option,
105  &run,
106  NULL);
107  if (GNUNET_OK != ret)
108  return 1;
109  if (GNUNET_SYSERR == result)
110  return 1;
111  return 0;
112 }
static int result
Definition: list-keys.c:7
#define GNUNET_OK
Named constants for return values.
Definition: gnunet_common.h:75
Definition of a command line option.
static int ret
Final status code.
Definition: gnunet-arm.c:89
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_OPTION_END
Definition: 002.c:13
static void run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *config)
Main run function.
Definition: list-keys.c:18
static char * option
Name of the option.
Definition: gnunet-config.c:38
static unsigned int nkeys
Definition: list-keys.c:5
#define GNUNET_SYSERR
Definition: gnunet_common.h:76
int GNUNET_PROGRAM_run(int argc, char *const *argv, const char *binaryName, const char *binaryHelp, const struct GNUNET_GETOPT_CommandLineOption *options, GNUNET_PROGRAM_Main task, void *task_cls)
Run a standard GNUnet command startup sequence (initialize loggers and configuration, parse options).
Definition: program.c:367
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_uint(char shortName, const char *name, const char *argumentHelp, const char *description, unsigned int *val)
Allow user to specify an unsigned int.
#define gettext_noop(String)
Definition: gettext.h:69
Here is the call graph for this function:

Variable Documentation

◆ nkeys

unsigned int nkeys
static

Definition at line 5 of file list-keys.c.

Referenced by main(), and run().

◆ nskip

unsigned int nskip
static

Definition at line 6 of file list-keys.c.

Referenced by run().

◆ result

int result
static

Definition at line 7 of file list-keys.c.

Referenced by main(), and run().