Diff for /mqtt/src/mqttd.c between versions 1.2.2.6 and 1.2.2.9

version 1.2.2.6, 2012/04/24 13:54:50 version 1.2.2.9, 2012/06/01 11:39:15
Line 9  io_enableDEBUG; Line 9  io_enableDEBUG;
   
 cfg_root_t cfg;  cfg_root_t cfg;
 sessions_t Sessions;  sessions_t Sessions;
 pubs_t Pubs;  
 sched_root_task_t *root;  sched_root_task_t *root;
 sqlite3 *acc, *pub;  sqlite3 *acc, *pub;
 pthread_mutex_t mtx_sess, mtx_pub;  
 FILE *logg;  FILE *logg;
 extern char compiled[], compiledby[], compilehost[];  extern char compiled[], compiledby[], compilehost[];
 static char szCfgName[MAXPATHLEN];  static char szCfgName[MAXPATHLEN];
Line 35  static void Line 33  static void
 sigHand(int sig)  sigHand(int sig)
 {  {
         int stat;          int stat;
         struct tagSession *sess;  
   
         switch (sig) {          switch (sig) {
                 case SIGHUP:                  case SIGHUP:
Line 49  sigHand(int sig) Line 46  sigHand(int sig)
                 case SIGTERM:                  case SIGTERM:
                         ioDEBUG(1, "Terminate MQTT service in progress");                          ioDEBUG(1, "Terminate MQTT service in progress");
                         Kill++;                          Kill++;
   
                         SESS_LOCK;  
                         TAILQ_FOREACH(sess, &Sessions, sess_node)  
                                 if (sess->sess_tid)  
                                         pthread_cancel(sess->sess_tid);  
                         SESS_UNLOCK;  
                         break;                          break;
                 case SIGCHLD:                  case SIGCHLD:
                         while (waitpid(-1, &stat, WNOHANG) > 0);                          while (waitpid(-1, &stat, WNOHANG) > 0);
Line 76  main(int argc, char **argv) Line 67  main(int argc, char **argv)
         ait_val_t v;          ait_val_t v;
   
         TAILQ_INIT(&Sessions);          TAILQ_INIT(&Sessions);
         TAILQ_INIT(&Pubs);  
   
         strlcpy(szCfgName, DEFAULT_CONFIG, sizeof szCfgName);          strlcpy(szCfgName, DEFAULT_CONFIG, sizeof szCfgName);
         while ((ch = getopt(argc, argv, "hvbc:")) != -1)          while ((ch = getopt(argc, argv, "hvbc:")) != -1)
Line 102  main(int argc, char **argv) Line 92  main(int argc, char **argv)
                 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_pub, NULL);  
         openlog("mqttd", LOG_PID | LOG_CONS, LOG_DAEMON);          openlog("mqttd", LOG_PID | LOG_CONS, LOG_DAEMON);
         /* load 3 plugins */          /* 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--)                        mqttUnloadRTLM(acc);
                                mqttUnloadRTLM(i);                        mqttUnloadRTLM(pub);
                         mqttUnloadRTLM(logg);
                         cfgUnloadConfig(&cfg);                          cfgUnloadConfig(&cfg);
                         closelog();                          closelog();
                         pthread_mutex_destroy(&mtx_pub);  
                         pthread_mutex_destroy(&mtx_sess);  
                         return 2;                          return 2;
                 }                  }
         acc = call.OpenACC(&cfg);          acc = call.OpenACC(&cfg);
Line 133  main(int argc, char **argv) Line 120  main(int argc, char **argv)
                 goto end;                  goto end;
         }          }
   
   
         if (mqttMkDir(&cfg)) {          if (mqttMkDir(&cfg)) {
                 printf("Error:: in statedir #%d - %s\n", errno, strerror(errno));                  printf("Error:: in statedir #%d - %s\n", errno, strerror(errno));
                 ret = 3;                  ret = 3;
Line 204  end: /* free all resources */ Line 192  end: /* free all resources */
         call.CloseLOG(logg);          call.CloseLOG(logg);
         call.ClosePUB(pub);          call.ClosePUB(pub);
         call.CloseACC(acc);          call.CloseACC(acc);
        for (i = 0; i < 3; i++)        mqttUnloadRTLM(acc);
                mqttUnloadRTLM(i);        mqttUnloadRTLM(pub);
        closelog();        mqttUnloadRTLM(logg);
         cfgUnloadConfig(&cfg);          cfgUnloadConfig(&cfg);
        pthread_mutex_destroy(&mtx_pub);        closelog();
        pthread_mutex_destroy(&mtx_sess); 
         return ret;          return ret;
 }  }

Removed from v.1.2.2.6  
changed lines
  Added in v.1.2.2.9


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