Refactoring requests and context handling
[src/app-framework-binder.git] / src / main.c
index e899739..be1927e 100644 (file)
 #include <signal.h>
 #include <syslog.h>
 
+#include <systemd/sd-event.h>
+
 #include "afb-config.h"
 #include "afb-hswitch.h"
+#include "afb-apis.h"
 #include "afb-api-so.h"
 #include "afb-hsrv.h"
+#include "afb-context.h"
 #include "afb-hreq.h"
 #include "session.h"
 #include "verbose.h"
-#include "utils-upoll.h"
+#include "afb-common.h"
 
 #include "afb-plugin.h"
 
@@ -558,6 +562,7 @@ static struct afb_hsrv *start_http_server(struct afb_config * config)
 int main(int argc, char *argv[])  {
   struct afb_hsrv *hsrv;
   struct afb_config *config;
+  struct sd_event *eventloop;
 
   // open syslog if ever needed
   openlog("afb-daemon", 0, LOG_DAEMON);
@@ -577,7 +582,7 @@ int main(int argc, char *argv[])  {
   if (config->ldpaths) 
     afb_api_so_add_pathset(config->ldpaths);
 
-  ctxStoreInit(CTX_NBCLIENTS, config->cntxTimeout, config->token);
+  ctxStoreInit(CTX_NBCLIENTS, config->cntxTimeout, config->token, afb_apis_count());
   if (!afb_hreq_init_cookie(config->httpdPort, config->rootapi, DEFLT_CNTX_TIMEOUT)) {
     fprintf (stderr, "ERR: initialisation of cookies failed\n");
      exit (1);
@@ -622,8 +627,9 @@ int main(int argc, char *argv[])  {
   }
 
    // infinite loop
+  eventloop = afb_common_get_event_loop();
   for(;;)
-    upoll_wait(30000); 
+    sd_event_run(eventloop, 30000000);
 
    if (verbosity)
        fprintf (stderr, "hoops returned from infinite loop [report bug]\n");