Diff for /mqtt/src/mqttd_calls.c between versions 1.2.2.33 and 1.2.2.34

version 1.2.2.33, 2012/07/02 12:52:19 version 1.2.2.34, 2012/07/03 07:48:49
Line 95  search4send(struct tagSession * __restrict sess, const Line 95  search4send(struct tagSession * __restrict sess, const
   
 /* --------------------------------------------------- */  /* --------------------------------------------------- */
   
   void *
   sendRetain(sched_task_t *task)
   {
           mqtt_subscr_t *subs, *s;
           struct tagSession *sess;
           int siz;
   
           ioTRACE(2);
   
           assert(task);
   
           sess = TASK_ARG(task);
           assert(sess);
   
           if (!sess->sess_buf) {
                   ioDEBUG(9, "WARNING! No allocated buffer!?!\n");
                   return NULL;
           }
   
           subs = call.ReadPUB_topic(&cfg, pub, "%", "%", 1);
           if (!subs)
                   return NULL;
   
           for (s = subs; s && s->sub_topic.msg_base; s++) {
                   siz = s->sub_value.msg_len;
                   memcpy(sess->sess_buf->msg_base, s->sub_value.msg_base, 
                                   MIN(sess->sess_buf->msg_len, s->sub_value.msg_len));
                   ioDEBUG(7, "Sending retain message %d bytes, QoS %hhd topic '%s' data length %d\n", 
                                   siz, s->sub_ret, (char*) s->sub_topic.msg_base, s->sub_value.msg_len);
                   if (siz > 0)
                           search4send(sess, s->sub_topic.msg_base, siz, s->sub_ret);
           }
   
           return NULL;
   }
   
 int  int
 pubWill(struct tagSession * __restrict sess)  pubWill(struct tagSession * __restrict sess)
 {  {
Line 428  cmdCONNECT(void *srv, int len, void *arg) Line 464  cmdCONNECT(void *srv, int len, void *arg)
   
         ioDEBUG(5, "Exec CONNECT session");          ioDEBUG(5, "Exec CONNECT session");
         TAILQ_REMOVE(&Sessions, sess, sess_node);          TAILQ_REMOVE(&Sessions, sess, sess_node);
   
           schedCancelby(root, taskTIMER, CRITERIA_CALL, sendRetain, NULL);
   
         if (sess->sess_clean) {          if (sess->sess_clean) {
                 if (call.FiniSessPUB)                  if (call.FiniSessPUB)

Removed from v.1.2.2.33  
changed lines
  Added in v.1.2.2.34


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>