--- mqtt/src/Attic/mqtt.c 2011/11/07 08:47:16 1.1.1.1 +++ mqtt/src/Attic/mqtt.c 2011/11/28 13:25:53 1.1.1.1.2.18 @@ -1,8 +1,122 @@ #include "global.h" +#include "rtlm.h" +sl_config cfg; + + int main(int argc, char **argv) { + sqlite3 *acc = NULL, *pub = NULL; + FILE *logg = NULL; + int ret = 0; + mqtt_subscr_t *s, *p; + + if (LoadConfig("/etc/mqtt.conf", &cfg)) { + printf("Error:: Load config #%d - %s\n", cfg_GetErrno(), cfg_GetError()); + return 1; + } + if (!mqttLoadRTLM(&cfg, 0)) { + printf("Error:: Can't load RTL ACC module\n"); + UnloadConfig(&cfg); + return 2; + } + if (!mqttLoadRTLM(&cfg, 1)) { + printf("Error:: Can't load RTL PUB module\n"); + mqttUnloadRTLM(0); + UnloadConfig(&cfg); + return 2; + } + if (!mqttLoadRTLM(&cfg, 2)) { + printf("Error:: Can't load RTL LOG module\n"); + mqttUnloadRTLM(1); + mqttUnloadRTLM(0); + UnloadConfig(&cfg); + return 2; + } + + acc = call.OpenACC(&cfg); + if (!acc) + goto end; + pub = call.OpenPUB(&cfg); + if (!pub) + goto end; + logg = call.OpenLOG(&cfg); + if (!logg) + goto end; + + if (mqttMkDir(&cfg)) { + printf("Error:: in statedir #%d - %s\n", errno, strerror(errno)); + goto end; + } + + call.LOG(logg, "success!\n"); + if ((ret = call.LoginACC(&cfg, acc, "misho", "test123")) == -1) { + printf("Error:: Authentication problem\n"); + goto end; + } else + call.LOG(logg, "Login: %s\n", ret ? "ALLOW" : "DENIED"); + + if ((ret = call.InitSessPUB(&cfg, pub, "misho", "127.0.0.1", 12345)) == -1) { + printf("Error:: Session init problem\n"); + goto end; + } else + call.LOG(logg, "InitSess: %d\n", ret); + + if ((ret = call.ChkSessPUB(&cfg, pub, "misho", "127.0._.%")) == -1) { + printf("Error:: Session check problem\n"); + goto end; + } else + call.LOG(logg, "ChkSess: %d\n", ret); + + if ((ret = call.DeletePUB(&cfg, pub, "%", "%", "%", -1)) == -1) { + printf("Error:: Clear problem\n"); + goto end; + } else + call.LOG(logg, "Clear: %d\n", ret); + + if ((ret = call.WritePUB(&cfg, pub, "oho/boho", "MRYN \n tryn brymbryn", "misho", "1.1.1.1", 1)) == -1) { + printf("Error:: Publish problem\n"); + goto end; + } else + call.LOG(logg, "Publish: %d\n", ret); + if ((ret = call.WritePUB(&cfg, pub, "boh", "testing", "misho", "1.1.1.2", 0)) == -1) { + printf("Error:: Publish problem\n"); + goto end; + } else + call.LOG(logg, "Publish: %d\n", ret); + if (!(s = call.ReadPUB(&cfg, pub, "%", -1))) { + printf("Error:: Subscribe problem\n"); + goto end; + } else { + call.LOG(logg, "Subscribe: %p\n", s); + for (p = s; p->sub_topic._base; p++) { + printf("Retain=%d Topic(%d)=%s Value(%d)=%s\n", p->sub_ret, + p->sub_topic._size, p->sub_topic._base, + p->sub_value._size, p->sub_value._base); + } + mqtt_subFree(&s); + } + if ((ret = call.DeletePUB(&cfg, pub, "boh", "misho", "1.1.1._", 0)) == -1) { + printf("Error:: Delete problem\n"); + goto end; + } else + call.LOG(logg, "Delete: %d\n", ret); + + if ((ret = call.FiniSessPUB(&cfg, pub, "misho", "127.0._.1%")) == -1) { + printf("Error:: Session fini problem\n"); + goto end; + } else + call.LOG(logg, "FiniSess: %d\n", ret); + +end: + call.CloseLOG(logg); + call.ClosePUB(pub); + call.CloseACC(acc); + mqttUnloadRTLM(2); + mqttUnloadRTLM(1); + mqttUnloadRTLM(0); + UnloadConfig(&cfg); return 0; }