#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;
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>