version 1.1.1.1.2.1, 2011/11/18 17:23:59
|
version 1.1.1.1.2.18, 2011/11/28 13:25:53
|
Line 1
|
Line 1
|
#include "global.h" |
#include "global.h" |
|
#include "rtlm.h" |
|
|
|
|
|
sl_config cfg; |
|
|
|
|
int |
int |
main(int argc, char **argv) |
main(int argc, char **argv) |
{ |
{ |
mqtt_msg_t *m; | sqlite3 *acc = NULL, *pub = NULL; |
int i; | FILE *logg = NULL; |
| int ret = 0; |
| mqtt_subscr_t *s, *p; |
|
|
m = mqtt_msgAlloc(14); | if (LoadConfig("/etc/mqtt.conf", &cfg)) { |
printf("connect=%d/%d\n", m->msg_len, mqtt_msgCONNECT(m)); | printf("Error:: Load config #%d - %s\n", cfg_GetErrno(), cfg_GetError()); |
for (i = 0; i < m->msg_len; i++) | return 1; |
printf("%d\n", ((u_char*) m->msg_base)[i]); | } |
mqtt_msgFree(&m, 42); | 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; |
return 0; |
} |
} |