Rename src/app_args.* to src/model/server.*, use new struct http_settings, provide http status code 401 when not properly authenticated to make logs more useful
parent
a8d7e7f041
commit
36b3cc92ba
@ -1,100 +0,0 @@
|
|||||||
#include "app_args.h"
|
|
||||||
|
|
||||||
#include "json/layout.h"
|
|
||||||
|
|
||||||
#include "controller/cli.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#define OBJ_TYPE struct app_args
|
|
||||||
static struct json_object_field app_args_layout[] = {
|
|
||||||
JSON_FIELD_STRING( domain, true ),
|
|
||||||
JSON_FIELD_STRING( addr, false ),
|
|
||||||
JSON_FIELD_INTEGER( port, false ),
|
|
||||||
JSON_FIELD_BOOL( debug, false ),
|
|
||||||
JSON_FIELD_BOOL( disable_tor, false ),
|
|
||||||
JSON_FIELD_INTEGER( tor_socks_port, false ),
|
|
||||||
|
|
||||||
JSON_FIELD_BOOL( develop, false ),
|
|
||||||
JSON_FIELD_END,
|
|
||||||
};
|
|
||||||
#undef OBJ_TYPE
|
|
||||||
|
|
||||||
struct app_args* g_server = NULL;
|
|
||||||
void app_args_refresh_tor_hidden_service()
|
|
||||||
{
|
|
||||||
if( !g_server ) { return; }
|
|
||||||
|
|
||||||
free( g_server->tor_hidden_service );
|
|
||||||
g_server->tor_hidden_service = NULL;
|
|
||||||
|
|
||||||
FILE* f = fopen("data/tor/hidden_service/hostname","r");
|
|
||||||
size_t n;
|
|
||||||
getline( &g_server->tor_hidden_service, &n, f );
|
|
||||||
n = strlen( g_server->tor_hidden_service );
|
|
||||||
if( g_server->tor_hidden_service[n-1] == '\n' ) {
|
|
||||||
g_server->tor_hidden_service[n-1] = '\0';
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
struct app_args* app_args_new( int argc, char** argv )
|
|
||||||
{
|
|
||||||
struct app_args* args = (struct app_args*)malloc( sizeof(struct app_args) );
|
|
||||||
memset(args,0,sizeof(*args));
|
|
||||||
if( !args ) { return NULL; }
|
|
||||||
|
|
||||||
g_server = args;
|
|
||||||
|
|
||||||
args->port = 9053;
|
|
||||||
args->addr = strdup("0.0.0.0");
|
|
||||||
args->tor_socks_port = 9123;
|
|
||||||
args->section = -1;
|
|
||||||
|
|
||||||
json_read_object_layout_from_file( "data/server.json", app_args_layout, args );
|
|
||||||
|
|
||||||
app_args_refresh_tor_hidden_service();
|
|
||||||
|
|
||||||
if( ( argc > 1 ) && ( 0 != strncmp(argv[1],"--",2) ) ) {
|
|
||||||
handle_command( argv, argc );
|
|
||||||
free(args);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
for( int i = 1; i < argc; ++i ) {
|
|
||||||
const char* arg = argv[i];
|
|
||||||
|
|
||||||
if( sscanf(arg,"--section=%d",&args->section) ) {
|
|
||||||
} else if( 0 == strcmp(argv[i],"--debug") ) {
|
|
||||||
args->debug = true;
|
|
||||||
} else if( 0 == strcmp(argv[i],"--test") ) {
|
|
||||||
args->section = 3;
|
|
||||||
} else if( 0 == strcmp(argv[i],"--webserver") ) {
|
|
||||||
args->section = 0;
|
|
||||||
} else if( 0 == strcmp(argv[i],"--inbox") ) {
|
|
||||||
args->section = 1;
|
|
||||||
} else if( 0 == strcmp(argv[i],"--outbox") ) {
|
|
||||||
args->section = 2;
|
|
||||||
} else if( 0 == strcmp(argv[i],"--reindex") ) {
|
|
||||||
args->section = 3;
|
|
||||||
} else if( 0 == strcmp(argv[i],"--devel") ) {
|
|
||||||
args->section = 100;
|
|
||||||
} else {
|
|
||||||
printf( "Unknown argument: %s\n", argv[i] );
|
|
||||||
free(args);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return args;
|
|
||||||
}
|
|
||||||
|
|
||||||
void app_args_release( struct app_args* args )
|
|
||||||
{
|
|
||||||
free(args->addr);
|
|
||||||
free(args->domain);
|
|
||||||
free(args->tor_hidden_service);
|
|
||||||
free(args);
|
|
||||||
}
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
|
|
||||||
struct app_args
|
|
||||||
{
|
|
||||||
uint16_t port;
|
|
||||||
char* addr;
|
|
||||||
char* domain;
|
|
||||||
char* tor_hidden_service;
|
|
||||||
bool debug;
|
|
||||||
int section;
|
|
||||||
bool disable_tor;
|
|
||||||
int tor_socks_port;
|
|
||||||
|
|
||||||
bool develop;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct app_args* app_args_new( int argc, char** argv );
|
|
||||||
void app_args_release( struct app_args* args );
|
|
||||||
extern struct app_args* g_server;
|
|
||||||
|
|
@ -1 +1 @@
|
|||||||
Subproject commit e7caba38aee79997c147ca718b69bb16795eb827
|
Subproject commit 25265c5f0132646a35c2f0bf21963a079ebee348
|
@ -1,2 +1,110 @@
|
|||||||
#include "server.h"
|
#include "server.h"
|
||||||
|
|
||||||
|
#include "json/layout.h"
|
||||||
|
|
||||||
|
#include "controller/cli.h"
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define OBJ_TYPE struct app_args
|
||||||
|
static struct json_object_field app_args_layout[] = {
|
||||||
|
JSON_FIELD_STRING( domain, true ),
|
||||||
|
{
|
||||||
|
.key = "addr",
|
||||||
|
.offset = offsetof( OBJ_TYPE, http_settings.bind_address ),
|
||||||
|
.type = &json_field_string,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.key = "port",
|
||||||
|
.offset = offsetof( OBJ_TYPE, http_settings.bind_port ),
|
||||||
|
.type = &json_field_integer,
|
||||||
|
},
|
||||||
|
//JSON_FIELD_STRING( addr, false ),
|
||||||
|
//JSON_FIELD_INTEGER( port, false ),
|
||||||
|
JSON_FIELD_BOOL( debug, false ),
|
||||||
|
JSON_FIELD_BOOL( disable_tor, false ),
|
||||||
|
JSON_FIELD_INTEGER( tor_socks_port, false ),
|
||||||
|
|
||||||
|
JSON_FIELD_BOOL( develop, false ),
|
||||||
|
JSON_FIELD_END,
|
||||||
|
};
|
||||||
|
#undef OBJ_TYPE
|
||||||
|
|
||||||
|
struct app_args* g_server = NULL;
|
||||||
|
void app_args_refresh_tor_hidden_service()
|
||||||
|
{
|
||||||
|
if( !g_server ) { return; }
|
||||||
|
|
||||||
|
free( g_server->tor_hidden_service );
|
||||||
|
g_server->tor_hidden_service = NULL;
|
||||||
|
|
||||||
|
FILE* f = fopen("data/tor/hidden_service/hostname","r");
|
||||||
|
size_t n;
|
||||||
|
getline( &g_server->tor_hidden_service, &n, f );
|
||||||
|
n = strlen( g_server->tor_hidden_service );
|
||||||
|
if( g_server->tor_hidden_service[n-1] == '\n' ) {
|
||||||
|
g_server->tor_hidden_service[n-1] = '\0';
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
}
|
||||||
|
struct app_args* app_args_new( int argc, char** argv )
|
||||||
|
{
|
||||||
|
struct app_args* args = (struct app_args*)malloc( sizeof(struct app_args) );
|
||||||
|
memset(args,0,sizeof(*args));
|
||||||
|
if( !args ) { return NULL; }
|
||||||
|
|
||||||
|
g_server = args;
|
||||||
|
|
||||||
|
args->http_settings.bind_port = 9053;
|
||||||
|
args->http_settings.bind_address = strdup("0.0.0.0");
|
||||||
|
args->tor_socks_port = 9123;
|
||||||
|
args->section = -1;
|
||||||
|
|
||||||
|
json_read_object_layout_from_file( "data/server.json", app_args_layout, args );
|
||||||
|
|
||||||
|
app_args_refresh_tor_hidden_service();
|
||||||
|
|
||||||
|
if( ( argc > 1 ) && ( 0 != strncmp(argv[1],"--",2) ) ) {
|
||||||
|
handle_command( argv, argc );
|
||||||
|
free(args);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( int i = 1; i < argc; ++i ) {
|
||||||
|
const char* arg = argv[i];
|
||||||
|
|
||||||
|
if( sscanf(arg,"--section=%d",&args->section) ) {
|
||||||
|
} else if( 0 == strcmp(argv[i],"--debug") ) {
|
||||||
|
args->debug = true;
|
||||||
|
} else if( 0 == strcmp(argv[i],"--test") ) {
|
||||||
|
args->section = 3;
|
||||||
|
} else if( 0 == strcmp(argv[i],"--webserver") ) {
|
||||||
|
args->section = 0;
|
||||||
|
} else if( 0 == strcmp(argv[i],"--inbox") ) {
|
||||||
|
args->section = 1;
|
||||||
|
} else if( 0 == strcmp(argv[i],"--outbox") ) {
|
||||||
|
args->section = 2;
|
||||||
|
} else if( 0 == strcmp(argv[i],"--reindex") ) {
|
||||||
|
args->section = 3;
|
||||||
|
} else if( 0 == strcmp(argv[i],"--devel") ) {
|
||||||
|
args->section = 100;
|
||||||
|
} else {
|
||||||
|
printf( "Unknown argument: %s\n", argv[i] );
|
||||||
|
free(args);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return args;
|
||||||
|
}
|
||||||
|
|
||||||
|
void app_args_release( struct app_args* args )
|
||||||
|
{
|
||||||
|
free(args->http_settings.bind_address);
|
||||||
|
free(args->domain);
|
||||||
|
free(args->tor_hidden_service);
|
||||||
|
free(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,26 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "app_args.h"
|
#include "http/server/server.h"
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
struct app_args
|
||||||
|
{
|
||||||
|
//uint16_t port;
|
||||||
|
struct http_server_args http_settings;
|
||||||
|
//char* addr;
|
||||||
|
char* domain;
|
||||||
|
char* tor_hidden_service;
|
||||||
|
bool debug;
|
||||||
|
int section;
|
||||||
|
bool disable_tor;
|
||||||
|
int tor_socks_port;
|
||||||
|
|
||||||
|
bool develop;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct app_args* app_args_new( int argc, char** argv );
|
||||||
|
void app_args_release( struct app_args* args );
|
||||||
|
extern struct app_args* g_server;
|
||||||
|
|
||||||
|
Loading…
Reference in new issue