2016-10-27 01:14:07 +00:00
|
|
|
#ifndef __CONFIG_H__
|
|
|
|
#define __CONFIG_H__
|
|
|
|
|
|
|
|
#include "datastore.h"
|
2016-10-27 18:11:34 +00:00
|
|
|
#include "identity.h"
|
2016-10-27 01:14:07 +00:00
|
|
|
|
2016-10-31 16:13:42 +00:00
|
|
|
struct RepoConfig {
|
2016-10-27 18:11:34 +00:00
|
|
|
struct Identity identity;
|
|
|
|
struct Datastore datastore;
|
2016-10-27 01:14:07 +00:00
|
|
|
//struct address* addresses;
|
|
|
|
//struct mount* mounts;
|
|
|
|
//struct discovery discovery;
|
|
|
|
//struct ipns ipns;
|
|
|
|
//struct bootstrap* peer_addresses;
|
|
|
|
//struct tour tour;
|
|
|
|
//struct gateway gateway;
|
|
|
|
//struct supernode_routing supernode_client_config;
|
|
|
|
//struct api api;
|
|
|
|
//struct swarm swarm;
|
|
|
|
//struct reprovider reprovider;
|
|
|
|
};
|
|
|
|
|
2016-10-27 18:11:34 +00:00
|
|
|
/**
|
|
|
|
* provide the full path of the config file, given the directory.
|
|
|
|
* NOTE: This allocates memory for result. Make sure to clean up after yourself.
|
|
|
|
* @param path the path to the config file (without the actual file name)
|
|
|
|
* @param result the full filename including the path
|
|
|
|
* @returns true(1) on success, false(0) otherwise
|
|
|
|
*/
|
|
|
|
int config_get_file_name(char* path, char* result);
|
|
|
|
|
|
|
|
/***
|
|
|
|
* Returns the path "extension" relative to the configuration root.
|
|
|
|
* If an empty string is provided for config_root, the default root
|
|
|
|
* is used.
|
|
|
|
* @param config_root the path to the root of the configuration
|
|
|
|
* @param extension the extension to add to the path
|
|
|
|
* @param result the result of config_root with extension appended
|
|
|
|
* @param max_len the max length of the result
|
|
|
|
* @returns true(1) if everything went okay, false(0) otherwise
|
|
|
|
*/
|
|
|
|
int config_path(char* config_root, char* extension, char* result, int max_len);
|
|
|
|
|
2016-10-31 16:13:42 +00:00
|
|
|
/***
|
|
|
|
* create a configuration based on the passed in parameters
|
|
|
|
* @param config the configuration struct
|
|
|
|
* @param num_bits_for_keypair number of bits for the key pair
|
|
|
|
* @returns true(1) on success, otherwise 0
|
|
|
|
*/
|
|
|
|
int repo_config_init(struct RepoConfig* config, unsigned int num_bits_for_keypair);
|
|
|
|
|
2016-10-27 01:14:07 +00:00
|
|
|
#endif
|