--- mqtt/src/daemon.c 2012/06/29 13:46:37 1.2.2.41 +++ mqtt/src/daemon.c 2012/06/29 15:43:13 1.2.2.42 @@ -1,8 +1,8 @@ #include "global.h" #include "rtlm.h" -#include "utils.h" #include "mqttd.h" #include "mqttd_calls.h" +#include "utils.h" static inline struct tagSession * @@ -90,10 +90,13 @@ finiSession(struct tagSession *sess) io_free(store); } - if (sess->sess_will.msg) - free(sess->sess_will.msg); + if (sess->sess_will.flag) + srv_Will(sess); + if (sess->sess_will.topic) free(sess->sess_will.topic); + if (sess->sess_will.msg) + free(sess->sess_will.msg); if (sess->sess_sock > STDERR_FILENO) srv_Close(sess->sess_sock);