--- mqtt/src/utils.c 2012/06/29 08:47:28 1.2.2.5 +++ mqtt/src/utils.c 2012/06/29 15:43:13 1.2.2.6 @@ -1,5 +1,6 @@ #include "global.h" #include "mqttd.h" +#include "mqttd_calls.h" inline int @@ -40,4 +41,19 @@ srv_Close(int s) ioTRACE(2); return mqtt_srv_Destroy(s); +} + +inline int +srv_Will(struct tagSession * __restrict sess) +{ + int ret = 0; + + ioTRACE(2); + + ret = mqtt_msgPUBLISH(sess->sess_buf, sess->sess_will.topic, 0xDEAD, 0, 1, 0, + sess->sess_will.msg, sess->sess_will.msg ? strlen(sess->sess_will.msg) : 0); + if (ret == -1) + return -1; /* error */ + else + return cmdPUBLISH(sess->sess_srv, ret, sess); }