Diff for /mqtt/src/daemon.c between versions 1.2.2.40 and 1.2.2.41

version 1.2.2.40, 2012/06/29 08:47:28 version 1.2.2.41, 2012/06/29 13:46:37
Line 179  dispatchSession(sched_task_t *task) Line 179  dispatchSession(sched_task_t *task)
         return NULL;          return NULL;
 }  }
   
   static int
   loadSubscribes(struct tagSession * __restrict sess, mqtt_subscr_t * __restrict subs)
   {
           register int i;
           struct tagStore *store;
   
           if (!subs)
                   return -1;
   
           for (i = 0; subs[i].sub_topic.msg_base; i++) {
                   store = io_malloc(sizeof(struct tagStore));
                   if (!store) {
                           ioSYSERR(0);
                           continue;
                   } else {
                           store->st_msgid = 0;
                           mqtt_subCopy(&store->st_subscr, &subs[i]);
                   }
   
                   /* add to cache */
                   SLIST_INSERT_HEAD(&sess->sess_subscr, store, st_node);
           }
   
           return 0;
   }
   
 void *  void *
 startSession(sched_task_t *task)  startSession(sched_task_t *task)
 {  {
Line 189  startSession(sched_task_t *task) Line 215  startSession(sched_task_t *task)
         ait_val_t *v;          ait_val_t *v;
         struct tagSession *s, *sess = NULL;          struct tagSession *s, *sess = NULL;
         int ret, wlen;          int ret, wlen;
           mqtt_subscr_t *subs;
   
         ioTRACE(4);          ioTRACE(4);
   
Line 274  startSession(sched_task_t *task) Line 301  startSession(sched_task_t *task)
                         call.DeletePUB_subscribe(&cfg, pub, sess->sess_cid, "%", sess->sess_user, "%");                          call.DeletePUB_subscribe(&cfg, pub, sess->sess_cid, "%", sess->sess_user, "%");
                 if (call.WipePUB_topic)                  if (call.WipePUB_topic)
                         call.WipePUB_topic(&cfg, pub, sess->sess_cid, sess->sess_user, -1);                          call.WipePUB_topic(&cfg, pub, sess->sess_cid, sess->sess_user, -1);
        } else {        } else if (call.ReadPUB_subscribe) {
                // TODO: read_sql subs and prepare publish                subs = call.ReadPUB_subscribe(&cfg, pub, sess->sess_cid, "%");
                 loadSubscribes(sess, subs);
                 mqtt_subFree(&subs);
         }          }
   
         /* Start session task OK ... */          /* Start session task OK ... */

Removed from v.1.2.2.40  
changed lines
  Added in v.1.2.2.41


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