Some changes at namesys/pb

This commit is contained in:
Jose Marcial Vieira Bisneto 2016-12-20 21:08:51 -03:00
parent a60300d160
commit 41b7579f21
2 changed files with 34 additions and 6 deletions

View file

@ -1,14 +1,19 @@
#ifndef IPNS_NAMESYS_PB_H #ifndef IPNS_NAMESYS_PB_H
#define IPNS_NAMESYS_PB_H #define IPNS_NAMESYS_PB_H
#include <stdint.h>
typedef int IpnsEntry_ValidityType; typedef int32_t IpnsEntry_ValidityType;
struct ipns_entry { struct ipns_entry {
// TODO char *value;
struct routingResolver *cache; char *signature;
struct stime *eol; int32_t *validityType;
char *validity;
uint64_t *sequence;
uint64_t *ttl;
struct routingResolver *cache; // cache and eol should be the last items.
struct timespec *eol;
}; };
struct namesys_pb { struct namesys_pb {
// TODO // TODO
struct ipns_entry *IpnsEntry; struct ipns_entry *IpnsEntry;
@ -23,8 +28,9 @@
}; };
int IpnsEntry_ValidityType_value (char *s); int IpnsEntry_ValidityType_value (char *s);
struct ipns_entry* ipfs_namesys_pb_new_ipns_entry ();
char* ipfs_namesys_pb_get_validity (struct ipns_entry*); char* ipfs_namesys_pb_get_validity (struct ipns_entry*);
char* ipfs_ipns_entry_data_for_sig(struct ipns_entry*); char* ipns_entry_data_for_sig(struct ipns_entry*);
char* ipfs_ipns_entry_get_signature(struct ipns_entry*); char* ipfs_ipns_entry_get_signature(struct ipns_entry*);
int ipfs_namesys_pb_get_value (char**, struct ipns_entry*); int ipfs_namesys_pb_get_value (char**, struct ipns_entry*);
IpnsEntry_ValidityType ipfs_namesys_pb_get_validity_type (struct ipns_entry*); IpnsEntry_ValidityType ipfs_namesys_pb_get_validity_type (struct ipns_entry*);

View file

@ -1,4 +1,5 @@
#include <string.h> #include <string.h>
#include "ipfs/namesys/routing.h"
#include "ipfs/namesys/pb.h" #include "ipfs/namesys/pb.h"
int IpnsEntry_ValidityType_value (char *s) int IpnsEntry_ValidityType_value (char *s)
@ -17,3 +18,24 @@ int IpnsEntry_ValidityType_value (char *s)
return -1; // not found. return -1; // not found.
} }
struct ipns_entry* ipfs_namesys_pb_new_ipns_entry ()
{
return calloc(1, sizeof (struct ipns_entry));
}
void ipfs_namesys_ipnsentry_reset (struct ipns_entry *m)
{
if (m) {
// ipns_entry is an struct of pointers,
// so we can access as an array of pointers.
char **a = (char **)m;
int i, l = (sizeof (struct ipns_entry) / sizeof (void*)) - 2; // avoid last 2 pointers, cache and eol.
for (i = 0 ; i < l ; i++) {
if (a[i]) {
free (a[i]); // free allocated pointers,
a[i] = NULL; // and mark as free.
}
}
}
}