--- mqtt/src/utils.c 2011/11/29 23:31:57 1.1.2.1 +++ mqtt/src/utils.c 2012/07/03 09:02:50 1.3 @@ -1,3 +1,46 @@ #include "global.h" +#include "mqttd.h" +#include "mqttd_calls.h" +inline int +srv_Socket(cfg_root_t * __restrict cfg) +{ + int s = -1; + ait_val_t v; + u_short port; + io_sockaddr_t sa = {{ 0 }}; + + ioTRACE(2); + + assert(cfg); + + cfg_loadAttribute(cfg, "mqttd", "port", &v, MQTT_PORT); + port = strtol(AIT_GET_STR(&v), NULL, 0); + AIT_FREE_VAL(&v); + cfg_loadAttribute(cfg, "mqttd", "listen", &v, MQTT_HOST); + if (!io_gethostbyname(AIT_GET_STR(&v), port, &sa)) { + ioLIBERR(io); + AIT_FREE_VAL(&v); + return -1; + } else + AIT_FREE_VAL(&v); + + s = mqtt_srv_Create(&sa.sa, sa.sa.sa_len); + if (s == -1) { + ioLIBERR(mqtt); + return -1; + } + + ioDEBUG(7, "Created socket=%d\n", s); + return s; +} + +inline int +srv_Close(int s) +{ + ioTRACE(2); + + ioDEBUG(7, "Closing socket=%d\n", s); + return mqtt_srv_Destroy(s); +}