Diff for /mqtt/src/dl.c between versions 1.1.2.5 and 1.2.2.5

version 1.1.2.5, 2011/11/24 00:08:56 version 1.2.2.5, 2012/04/24 13:54:50
Line 25  mqttLog(const char *fmt, ...) Line 25  mqttLog(const char *fmt, ...)
 }  }
   
 void *  void *
mqttLoadRTLM(sl_config *cfg, int modtype)mqttLoadRTLM(cfg_root_t *cfg, int modtype)
 {  {
         const char *str, *attr;          const char *str, *attr;
         void *rtlm = NULL;          void *rtlm = NULL;
        void *(*mqttOpenRTLM)(sl_config *);        void *(*mqttOpenRTLM)(cfg_root_t *);
         void (*mqttCloseRTLM)(void *);          void (*mqttCloseRTLM)(void *);
   
         if (!cfg)          if (!cfg)
Line 47  mqttLoadRTLM(sl_config *cfg, int modtype) Line 47  mqttLoadRTLM(sl_config *cfg, int modtype)
                         break;                          break;
         }          }
   
        str = (const char*) CFG(cfg_GetAttribute(cfg, CFG("mqttd"), CFG(attr)));        str = cfg_getAttribute(cfg, "mqttd", attr);
         if (!str) {          if (!str) {
                 mqttLog("Error:: RTL module not found\n");                  mqttLog("Error:: RTL module not found\n");
                 return NULL;                  return NULL;
         }          }
   
        rtlm = dlopen(str, RTLD_LAZY);        rtlm = dlopen(str, RTLD_NOW);
         if (!rtlm) {          if (!rtlm) {
                mqttLog("Error:: RTL module not found %s\n", dlerror());                mqttLog("Error:: RTL module %s not found %s\n", str, dlerror());
                 return NULL;                  return NULL;
         }          }
   
         mqttOpenRTLM = dlsym(rtlm, "mqtt_rtlm_open");          mqttOpenRTLM = dlsym(rtlm, "mqtt_rtlm_open");
         if (!mqttOpenRTLM) {          if (!mqttOpenRTLM) {
                mqttLog("Error:: Can't found mqtt_db_open call\n");                mqttLog("Error:: Can't found mqtt_rtlm_open call\n");
                 dlclose(rtlm);                  dlclose(rtlm);
                 return NULL;                  return NULL;
         }          }
         mqttCloseRTLM = dlsym(rtlm, "mqtt_rtlm_close");          mqttCloseRTLM = dlsym(rtlm, "mqtt_rtlm_close");
         if (!mqttCloseRTLM) {          if (!mqttCloseRTLM) {
                mqttLog("Error:: Can't found mqtt_db_close call\n");                mqttLog("Error:: Can't found mqtt_rtlm_close call\n");
                 dlclose(rtlm);                  dlclose(rtlm);
                 return NULL;                  return NULL;
         }          }
Line 77  mqttLoadRTLM(sl_config *cfg, int modtype) Line 77  mqttLoadRTLM(sl_config *cfg, int modtype)
                         acc_rtlm = rtlm;                          acc_rtlm = rtlm;
                         call.OpenACC = mqttOpenRTLM;                          call.OpenACC = mqttOpenRTLM;
                         call.CloseACC = mqttCloseRTLM;                          call.CloseACC = mqttCloseRTLM;
                           call.LoginACC = dlsym(rtlm, "mqtt_rtlm_login");
                           if (!call.LoginACC) {
                                   mqttLog("Error:: incorrect module ...\n");
                                   dlclose(rtlm);
                                   return NULL;
                           }
                         break;                          break;
                 case 1:                  case 1:
                         pub_rtlm = rtlm;                          pub_rtlm = rtlm;
                         call.OpenPUB = mqttOpenRTLM;                          call.OpenPUB = mqttOpenRTLM;
                         call.ClosePUB = mqttCloseRTLM;                          call.ClosePUB = mqttCloseRTLM;
                           call.InitSessPUB = dlsym(rtlm, "mqtt_rtlm_init_session");
                           call.FiniSessPUB = dlsym(rtlm, "mqtt_rtlm_fini_session");
                           call.ChkSessPUB = dlsym(rtlm, "mqtt_rtlm_chk_session");
                           call.WritePUB_topic = dlsym(rtlm, "mqtt_rtlm_write_topic");
                           call.ReadPUB_topic = dlsym(rtlm, "mqtt_rtlm_read_topic");
                           call.DeletePUB_topic = dlsym(rtlm, "mqtt_rtlm_delete_topic");
                           call.WritePUB_subscribe = dlsym(rtlm, "mqtt_rtlm_write_subscribe");
                           call.ReadPUB_subscribe = dlsym(rtlm, "mqtt_rtlm_read_subscribe");
                           call.DeletePUB_subscribe = dlsym(rtlm, "mqtt_rtlm_delete_subscribe");
                           if (!call.InitSessPUB || !call.FiniSessPUB || !call.ChkSessPUB || 
                                           !call.WritePUB_topic || !call.ReadPUB_topic || 
                                           !call.DeletePUB_topic || !call.WritePUB_subscribe || 
                                           !call.ReadPUB_subscribe || !call.DeletePUB_subscribe) {
                                   mqttLog("Error:: incorrect module ...\n");
                                   dlclose(rtlm);
                                   return NULL;
                           }
                         break;                          break;
                 default:                  default:
                         log_rtlm = rtlm;                          log_rtlm = rtlm;
                         call.OpenLOG = mqttOpenRTLM;                          call.OpenLOG = mqttOpenRTLM;
                         call.CloseLOG = mqttCloseRTLM;                          call.CloseLOG = mqttCloseRTLM;
                         call.LOG = dlsym(rtlm, "mqtt_rtlm_logger");                          call.LOG = dlsym(rtlm, "mqtt_rtlm_logger");
                           if (!call.LOG) {
                                   mqttLog("Error:: incorrect module ...\n");
                                   dlclose(rtlm);
                                   return NULL;
                           }
                         break;                          break;
         }          }
   
Line 111  mqttUnloadRTLM(int modtype) Line 139  mqttUnloadRTLM(int modtype)
 }  }
   
 inline int  inline int
mqttMkDir(sl_config *cfg)mqttMkDir(cfg_root_t *cfg)
 {  {
         const char *str;          const char *str;
   
         if (!cfg)          if (!cfg)
                 return -1;                  return -1;
   
        str = (const char*) cfg_GetAttribute(cfg, CFG("mqttd"), CFG("statedir"));        str = (const char*) cfg_getAttribute(cfg, "mqttd", "statedir");
         if (!str)          if (!str)
                 return -1;                  return -1;
   

Removed from v.1.1.2.5  
changed lines
  Added in v.1.2.2.5


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