bstring get_token_from_config_file() { bstring config_file = locate_config_file(); dictionary *config; struct stat statbuf; int rc = stat((char *) config_file->data, &statbuf); if (rc < 0 || statbuf.st_size == 0) { bdestroy(config_file); return 0; } else { config = iniparser_load(bdata(config_file)); } char *token = iniparser_getstring(config, "authentication:token", 0); bdestroy(config_file); bstring ret = 0; if (token) { ret = bfromcstr(token); } iniparser_freedict(config); return ret; }
void update_config(char *token, char *username) { bstring file = locate_config_file(); bstring tmp = bstrcpy(file); bcatcstr(tmp, ".tmp_XXXXXX"); int fd = mkstemp((char *) tmp->data); if (fd < 0) { perror("mkstemp"); exit(1); } FILE *fp = fdopen(fd, "w"); if (fp == 0) { perror("fdopen"); exit(1); } dictionary *config; struct stat statbuf; int rc = stat((char *) file->data, &statbuf); if (rc < 0 || statbuf.st_size == 0) { /* create a new empty dictionary */ config = dictionary_new(0); dictionary_set(config, "authentication", 0); } else { config = iniparser_load(bdata(file)); } iniparser_set(config, "authentication:token", token); if (username) iniparser_set(config, "authentication:user_id", username); iniparser_dump_ini(config, fp); iniparser_freedict(config); fclose(fp); if (rename(bdata(tmp), bdata(file)) < 0) { fprintf(stderr, "Error rename %s to %s: %s\n", bdata(tmp), bdata(file), strerror(errno)); exit(1); } bdestroy(tmp); bdestroy(file); }
int main(int argc, char **argv) { int err, publish; hip_hit hit; struct sockaddr_storage addr; struct sockaddr_in *addr4 = (struct sockaddr_in*)&addr; /* * Load hip.conf configuration file * user may have provided path using command line, or search defaults */ memset(HCNF, 0, sizeof(HCNF)); if ((locate_config_file(HCNF.conf_filename, sizeof(HCNF.conf_filename), HIP_CONF_FILENAME) < 0) || (read_conf_file(HCNF.conf_filename) < 0)) { log_(ERR, "Problem with configuration file, using defaults.\n"); } else { log_(NORM, "Using configuration file:\t%s\n", HCNF.conf_filename); } memset(&addr, 0, sizeof(addr)); addr4->sin_family = AF_INET; addr4->sin_addr.s_addr = inet_addr("192.168.1.2"); hex_to_bin("7BE901B3AF2679C8C580619535641713", hit, HIT_SIZE); printf("Doing XML RPC put 1...\n"); err = hip_dht_publish(&hit, (struct sockaddr*)&addr); printf("return value = %d\n", err); addr4->sin_addr.s_addr = inet_addr("192.168.2.7"); printf("Doing XML RPC put 2...\n"); err = hip_dht_publish(&hit, (struct sockaddr*)&addr); printf("return value = %d\n", err); memset(&addr, 0, sizeof(addr)); addr4->sin_family = AF_INET; printf("addr is at: %p\n", &addr); printf("Doing XML RPC get...\n"); err = hip_dht_lookup_address(&hit, (struct sockaddr*)&addr); printf("return value = %d\n", err); printf("Address = %s\n", logaddr((struct sockaddr*)&addr)); return(0); }
static int load_weights_from_config (struct mlp *mlp, const char *file) { char *weightfile; if ((weightfile = locate_config_file (file, CONFIG_READ | CONFIG_LOCAL | CONFIG_GLOBAL)) == NULL) { ERROR ("unable to open MLP %s, no weights loaded\n", file); return -1; } if (mlp_load_weights (mlp, weightfile) == -1) { ERROR ("invalid MLP file %s\n", file); free (weightfile); return -1; } free (weightfile); return 0; }