mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-22 13:25:04 +00:00
Start of work.
This commit is contained in:
parent
de917a07d2
commit
0d86568346
4 changed files with 86 additions and 3 deletions
73
snac.c
73
snac.c
|
@ -1,3 +1,4 @@
|
||||||
|
/* snac - A simple, minimalistic ActivityPub instance */
|
||||||
/* copyright (c) 2022 grunfink - MIT license */
|
/* copyright (c) 2022 grunfink - MIT license */
|
||||||
|
|
||||||
#define XS_IMPLEMENTATION
|
#define XS_IMPLEMENTATION
|
||||||
|
@ -13,8 +14,80 @@
|
||||||
|
|
||||||
#include "snac.h"
|
#include "snac.h"
|
||||||
|
|
||||||
|
d_char *srv_basedir = NULL;
|
||||||
|
d_char *srv_config = NULL;
|
||||||
|
d_char *srv_baseurl = NULL;
|
||||||
|
|
||||||
|
int dbglevel = 0;
|
||||||
|
|
||||||
|
|
||||||
|
void srv_log(d_char *str)
|
||||||
|
/* logs a message */
|
||||||
|
{
|
||||||
|
char tm[16] = "00:00:00";
|
||||||
|
xs *msg = str;
|
||||||
|
|
||||||
|
fprintf(stderr, "%s %s\n", tm, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int srv_open(char *basedir)
|
||||||
|
/* opens a server */
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
xs *cfg_file = NULL;
|
||||||
|
FILE *f;
|
||||||
|
|
||||||
|
srv_basedir = xs_str_new(basedir);
|
||||||
|
|
||||||
|
cfg_file = xs_fmt("%s/server.json", basedir);
|
||||||
|
|
||||||
|
if ((f = fopen(cfg_file, "r")) == NULL)
|
||||||
|
srv_log(xs_fmt("cannot open %s", cfg_file));
|
||||||
|
else {
|
||||||
|
xs *cfg_data;
|
||||||
|
|
||||||
|
/* read full config file */
|
||||||
|
cfg_data = xs_readall(f);
|
||||||
|
|
||||||
|
/* parse */
|
||||||
|
srv_config = xs_json_loads(cfg_data);
|
||||||
|
|
||||||
|
if (srv_config == NULL)
|
||||||
|
srv_log(xs_fmt("cannot parse %s", cfg_file));
|
||||||
|
else {
|
||||||
|
char *host;
|
||||||
|
char *prefix;
|
||||||
|
char *dbglvl;
|
||||||
|
|
||||||
|
host = xs_dict_get(srv_config, "host");
|
||||||
|
prefix = xs_dict_get(srv_config, "prefix");
|
||||||
|
dbglvl = xs_dict_get(srv_config, "dbglevel");
|
||||||
|
|
||||||
|
if (host == NULL || prefix == NULL)
|
||||||
|
srv_log(xs_str_new("cannot get server data"));
|
||||||
|
else {
|
||||||
|
srv_baseurl = xs_fmt("https://%s%s", host, prefix);
|
||||||
|
|
||||||
|
dbglevel = (int) xs_number_get(dbglvl);
|
||||||
|
|
||||||
|
if ((dbglvl = getenv("DEBUG")) != NULL) {
|
||||||
|
dbglevel = atoi(dbglvl);
|
||||||
|
srv_log(xs_fmt("DEBUG level set to %d from environment", dbglevel));
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
srv_open("/home/angel/lib/snac/comam.es");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
10
snac.h
10
snac.h
|
@ -1,2 +1,12 @@
|
||||||
|
/* snac - A simple, minimalistic ActivityPub instance */
|
||||||
/* copyright (c) 2022 grunfink - MIT license */
|
/* copyright (c) 2022 grunfink - MIT license */
|
||||||
|
|
||||||
|
extern d_char *srv_basedir;
|
||||||
|
extern d_char *srv_config;
|
||||||
|
extern d_char *srv_baseurl;
|
||||||
|
|
||||||
|
extern int dbglevel;
|
||||||
|
|
||||||
|
void srv_log(d_char *str);
|
||||||
|
int srv_open(char *basedir);
|
||||||
|
|
||||||
|
|
4
xs.h
4
xs.h
|
@ -75,7 +75,7 @@ d_char *xs_dict_del(d_char *dict, const char *key);
|
||||||
d_char *xs_dict_set(d_char *dict, const char *key, const char *data);
|
d_char *xs_dict_set(d_char *dict, const char *key, const char *data);
|
||||||
d_char *xs_val_new(xstype t);
|
d_char *xs_val_new(xstype t);
|
||||||
d_char *xs_number_new(float f);
|
d_char *xs_number_new(float f);
|
||||||
float xs_get_number(char *v);
|
float xs_number_get(char *v);
|
||||||
|
|
||||||
extern int _xs_debug;
|
extern int _xs_debug;
|
||||||
|
|
||||||
|
@ -697,7 +697,7 @@ d_char *xs_number_new(float f)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
float xs_get_number(char *v)
|
float xs_number_get(char *v)
|
||||||
/* gets the number as a float */
|
/* gets the number as a float */
|
||||||
{
|
{
|
||||||
float f = 0.0;
|
float f = 0.0;
|
||||||
|
|
|
@ -93,7 +93,7 @@ d_char *_xs_json_dumps(d_char *s, char *data, int level, int indent)
|
||||||
case XSTYPE_NUMBER:
|
case XSTYPE_NUMBER:
|
||||||
{
|
{
|
||||||
char tmp[32];
|
char tmp[32];
|
||||||
snprintf(tmp, sizeof(tmp), "%g", xs_get_number(data));
|
snprintf(tmp, sizeof(tmp), "%g", xs_number_get(data));
|
||||||
s = xs_str_cat(s, tmp);
|
s = xs_str_cat(s, tmp);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue