Diff for /mqtt/src/mqttd.c between versions 1.1.1.1.2.15 and 1.2.2.3

version 1.1.1.1.2.15, 2012/01/24 10:18:45 version 1.2.2.3, 2012/04/15 21:48:23
Line 7 Line 7
   
 io_enableDEBUG;  io_enableDEBUG;
   
sl_config cfg;cfg_root_t cfg;
 sessions_t Sessions;  sessions_t Sessions;
 sched_root_task_t *root;  sched_root_task_t *root;
 sqlite3 *acc, *pub;  sqlite3 *acc, *pub;
Line 37  sigHand(int sig) Line 37  sigHand(int sig)
   
         switch (sig) {          switch (sig) {
                 case SIGHUP:                  case SIGHUP:
                        UnloadConfig(&cfg);                        cfgUnloadConfig(&cfg);
                        if (!LoadConfig(szCfgName, &cfg)) {                        if (!cfgLoadConfig(szCfgName, &cfg)) {
                                 ioDEBUG(1, "Config reload OK!");                                  ioDEBUG(1, "Config reload OK!");
                                 break;                                  break;
                         }                          }
Line 60  sigHand(int sig) Line 60  sigHand(int sig)
 int  int
 main(int argc, char **argv)  main(int argc, char **argv)
 {  {
        char ch, batch = 0, szStr[STRSIZ];        char ch, batch = 0;
         register int i;          register int i;
         int sock = -1, ret = 0;          int sock = -1, ret = 0;
         struct passwd *pass;          struct passwd *pass;
         struct sigaction sa;          struct sigaction sa;
           ait_val_t v;
   
         TAILQ_INIT(&Sessions);          TAILQ_INIT(&Sessions);
   
Line 88  main(int argc, char **argv) Line 89  main(int argc, char **argv)
         argc -= optind;          argc -= optind;
         argv += optind;          argv += optind;
   
        if (LoadConfig(szCfgName, &cfg)) {        if (cfgLoadConfig(szCfgName, &cfg)) {
                 printf("Error:: can't load #%d - %s\n", cfg_GetErrno(), cfg_GetError());                  printf("Error:: can't load #%d - %s\n", cfg_GetErrno(), cfg_GetError());
                 return 1;                  return 1;
         }          }
         pthread_mutex_init(&mtx_sess, NULL);          pthread_mutex_init(&mtx_sess, NULL);
         pthread_mutex_init(&mtx_pub, NULL);          pthread_mutex_init(&mtx_pub, NULL);
         openlog("mqttd", LOG_PID | LOG_CONS, LOG_DAEMON);          openlog("mqttd", LOG_PID | LOG_CONS, LOG_DAEMON);
           /* load 3 plugins */
         for (i = 0; i < 3; i++)          for (i = 0; i < 3; i++)
                 if (!mqttLoadRTLM(&cfg, i)) {                  if (!mqttLoadRTLM(&cfg, i)) {
                         printf("Error:: Can't load RTL module\n");                          printf("Error:: Can't load RTL module\n");
                         while (i--)                          while (i--)
                                 mqttUnloadRTLM(i);                                  mqttUnloadRTLM(i);
                        UnloadConfig(&cfg);                        cfgUnloadConfig(&cfg);
                         closelog();                          closelog();
                         pthread_mutex_destroy(&mtx_pub);                          pthread_mutex_destroy(&mtx_pub);
                         pthread_mutex_destroy(&mtx_sess);                          pthread_mutex_destroy(&mtx_sess);
Line 153  main(int argc, char **argv) Line 155  main(int argc, char **argv)
                                 goto end;                                  goto end;
                 }                  }
         else          else
                ioVERBOSE(1) printf("Start service in batch mode ...\n");                ioDEBUG(1, "Start service in batch mode ...");
   
         memset(&sa, 0, sizeof sa);          memset(&sa, 0, sizeof sa);
         sigemptyset(&sa.sa_mask);          sigemptyset(&sa.sa_mask);
Line 162  main(int argc, char **argv) Line 164  main(int argc, char **argv)
         sigaction(SIGTERM, &sa, NULL);          sigaction(SIGTERM, &sa, NULL);
         sigaction(SIGCHLD, &sa, NULL);          sigaction(SIGCHLD, &sa, NULL);
         sigaction(SIGPIPE, &sa, NULL);          sigaction(SIGPIPE, &sa, NULL);
        ioDEBUG(2, "Service is ready for start engine ...");        ioDEBUG(2, "Service is ready for starting engine ...");
   
         if ((sock = srv_Socket(&cfg)) == -1) {          if ((sock = srv_Socket(&cfg)) == -1) {
                 ret = 4;                  ret = 4;
                 goto end;                  goto end;
         }          }
   
        cfg_LoadAttribute(&cfg, CFG("mqttd"), CFG("user"), CFG(szStr), sizeof szStr, MQTT_USER);        cfg_loadAttribute(&cfg, "mqttd", "user", &v, MQTT_USER);
        pass = getpwnam(szStr);        pass = getpwnam(AIT_GET_STR(&v));
         AIT_FREE_VAL(&v);
         if (pass) {          if (pass) {
                 setgid(pass->pw_gid);                  setgid(pass->pw_gid);
                 setuid(pass->pw_uid);                  setuid(pass->pw_uid);
Line 178  main(int argc, char **argv) Line 181  main(int argc, char **argv)
         }          }
   
         if (!(root = schedBegin())) {          if (!(root = schedBegin())) {
                printf("Error:: scheduler #%d - %s\n", sched_GetErrno(), sched_GetError());                ioLIBERR(sched);
                 ret = 6;                  ret = 6;
                 goto end;                  goto end;
         }          }
   
           /* go catch the cat ... */
         Run(sock);          Run(sock);
   
         schedEnd(&root);          schedEnd(&root);
end:end:    /* free all resources */
         srv_Close(sock);          srv_Close(sock);
         call.CloseLOG(logg);          call.CloseLOG(logg);
         call.ClosePUB(pub);          call.ClosePUB(pub);
Line 194  end: Line 198  end:
         for (i = 0; i < 3; i++)          for (i = 0; i < 3; i++)
                 mqttUnloadRTLM(i);                  mqttUnloadRTLM(i);
         closelog();          closelog();
        UnloadConfig(&cfg);        cfgUnloadConfig(&cfg);
         pthread_mutex_destroy(&mtx_pub);          pthread_mutex_destroy(&mtx_pub);
         pthread_mutex_destroy(&mtx_sess);          pthread_mutex_destroy(&mtx_sess);
         return ret;          return ret;

Removed from v.1.1.1.1.2.15  
changed lines
  Added in v.1.2.2.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>