Diff for /mqtt/src/daemon.c between versions 1.2.2.33 and 1.2.2.35

version 1.2.2.33, 2012/05/27 10:04:05 version 1.2.2.35, 2012/06/01 10:39:48
Line 24  initSession(int sock, ait_val_t * __restrict v) Line 24  initSession(int sock, ait_val_t * __restrict v)
                 memset(sess, 0, sizeof(struct tagSession));                  memset(sess, 0, sizeof(struct tagSession));
   
         SLIST_INIT(&sess->sess_subscr);          SLIST_INIT(&sess->sess_subscr);
           SLIST_INIT(&sess->sess_sndpkt);
   
         str = cfg_getAttribute(&cfg, "mqttd", "retry");          str = cfg_getAttribute(&cfg, "mqttd", "retry");
         if (!str)          if (!str)
Line 64  static void Line 65  static void
 finiSession(struct tagSession *sess)  finiSession(struct tagSession *sess)
 {  {
         struct tagStore *store;          struct tagStore *store;
           struct tagPkt *p;
   
         ioTRACE(5);          ioTRACE(5);
   
Line 90  finiSession(struct tagSession *sess) Line 92  finiSession(struct tagSession *sess)
                 io_free(store);                  io_free(store);
         }          }
   
           while ((p = SLIST_FIRST(&sess->sess_sndpkt))) {
                   SLIST_REMOVE_HEAD(&sess->sess_sndpkt, pkt_node);
   
                   io_freeVar(&p->pkt_data);
                   io_free(p);
           }
   
         if (sess->sess_will.msg)          if (sess->sess_will.msg)
                 free(sess->sess_will.msg);                  free(sess->sess_will.msg);
         if (sess->sess_will.topic)          if (sess->sess_will.topic)
Line 122  leaveClient(sched_task_t *task) Line 131  leaveClient(sched_task_t *task)
         ret = mqtt_msgDISCONNECT(sess->sess_buf);          ret = mqtt_msgDISCONNECT(sess->sess_buf);
         send(TASK_FD(task), sess->sess_buf->msg_base, ret, MSG_NOSIGNAL);          send(TASK_FD(task), sess->sess_buf->msg_base, ret, MSG_NOSIGNAL);
   
        ioDEBUG(1, "Close socket=%d", TASK_FD(task));        ioDEBUG(1, "Close socket=%ld", (long) TASK_FD(task));
         call.LOG(logg, "Session %s stopped from %s for user %s.\n", sess->sess_cid,           call.LOG(logg, "Session %s stopped from %s for user %s.\n", sess->sess_cid, 
                         sess->sess_addr, sess->sess_user);                          sess->sess_addr, sess->sess_user);
   
Line 289  startSession(sched_task_t *task) Line 298  startSession(sched_task_t *task)
 end:    /* close client connection */  end:    /* close client connection */
         wlen = mqtt_msgCONNACK(sess->sess_buf, ret);          wlen = mqtt_msgCONNACK(sess->sess_buf, ret);
         if ((wlen = send(TASK_FD(task), sess->sess_buf->msg_base, wlen, 0)) == -1) {          if ((wlen = send(TASK_FD(task), sess->sess_buf->msg_base, wlen, 0)) == -1) {
                ioDEBUG(3, "Error:: send(%d) #%d - %s", TASK_FD(task), errno, strerror(errno));                ioDEBUG(3, "Error:: send(%ld) #%d - %s", (long) TASK_FD(task), errno, strerror(errno));
         } else          } else
                 ioDEBUG(5, "Sended %d bytes", wlen);                  ioDEBUG(5, "Sended %d bytes", wlen);
   
         if (ret != MQTT_RETCODE_ACCEPTED) {          if (ret != MQTT_RETCODE_ACCEPTED) {
                ioDEBUG(1, "Close client %s with socket=%d", sess->sess_addr, TASK_FD(task));                ioDEBUG(1, "Close client %s with socket=%ld", sess->sess_addr, (long) TASK_FD(task));
                 finiSession(sess);                  finiSession(sess);
         }          }
         return NULL;          return NULL;

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


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