|
|
|
@ -4,12 +4,14 @@
|
|
|
|
|
#include <stdbool.h>
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
#include <signal.h>
|
|
|
|
|
#include <sys/prctl.h>
|
|
|
|
|
|
|
|
|
|
#include "app_args.h"
|
|
|
|
|
#include "http_server/http_server.h"
|
|
|
|
|
#include "http_server/http_request.h"
|
|
|
|
|
|
|
|
|
|
#include "controller/main.h"
|
|
|
|
|
#include "controller/inbox.h"
|
|
|
|
|
|
|
|
|
|
bool terminate = false;
|
|
|
|
|
|
|
|
|
@ -31,22 +33,13 @@ void handle_request( struct http_request* req, void* )
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main( int argc, char* argv[] )
|
|
|
|
|
bool run_webserver( struct app_args* args )
|
|
|
|
|
{
|
|
|
|
|
signal(SIGINT, handle_ctrl_c);
|
|
|
|
|
signal(SIGPIPE, SIG_IGN);
|
|
|
|
|
|
|
|
|
|
struct app_args* args = app_args_new( argc, argv );
|
|
|
|
|
if( !args ) {
|
|
|
|
|
printf( "Error processing argument\n" );
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct http_server* srv = http_server_new( args, handle_request, NULL );
|
|
|
|
|
if( !srv ) {
|
|
|
|
|
printf( "Error setting up server\n" );
|
|
|
|
|
app_args_release(args);
|
|
|
|
|
return 1;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
http_server_set_debug( srv, true );
|
|
|
|
@ -57,8 +50,39 @@ int main( int argc, char* argv[] )
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
http_server_release( srv );
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void inbox_handler()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main( int argc, char* argv[] )
|
|
|
|
|
{
|
|
|
|
|
signal(SIGINT, handle_ctrl_c);
|
|
|
|
|
signal(SIGPIPE, SIG_IGN);
|
|
|
|
|
|
|
|
|
|
struct app_args* args = app_args_new( argc, argv );
|
|
|
|
|
if( !args ) {
|
|
|
|
|
printf( "Error processing argument\n" );
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int inbox_handler_pid = -1;
|
|
|
|
|
|
|
|
|
|
// Process inbox
|
|
|
|
|
if( !( inbox_handler_pid = fork() ) ) {
|
|
|
|
|
prctl(PR_SET_PDEATHSIG, SIGHUP);
|
|
|
|
|
process_inbox();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO: Process outbox
|
|
|
|
|
|
|
|
|
|
int code = 0;
|
|
|
|
|
if( !run_webserver(args) ) { code = 1; }
|
|
|
|
|
|
|
|
|
|
app_args_release(args);
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
return code;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|