Diff for /libaitmqtt/src/aitmqtt.c between versions 1.1.1.1.2.11 and 1.1.1.1.2.14

version 1.1.1.1.2.11, 2012/04/27 16:17:11 version 1.1.1.1.2.14, 2012/05/05 13:10:24
Line 411  mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subs Line 411  mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subs
                         memcpy(dst->sub_topic.msg_base, src->sub_topic.msg_base,                           memcpy(dst->sub_topic.msg_base, src->sub_topic.msg_base, 
                                         dst->sub_topic.msg_len);                                          dst->sub_topic.msg_len);
                 }                  }
           } else {
                   /*
                   if (dst->sub_topic.msg_base)
                           free(dst->sub_topic.msg_base);
                           */
                   dst->sub_topic.msg_base = NULL;
                   dst->sub_topic.msg_len = 0;
         }          }
         if (src->sub_value.msg_base) {          if (src->sub_value.msg_base) {
                 dst->sub_value.msg_base = malloc(src->sub_value.msg_len + 1);                  dst->sub_value.msg_base = malloc(src->sub_value.msg_len + 1);
Line 426  mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subs Line 433  mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subs
                         memcpy(dst->sub_value.msg_base, src->sub_value.msg_base,                           memcpy(dst->sub_value.msg_base, src->sub_value.msg_base, 
                                         dst->sub_value.msg_len);                                          dst->sub_value.msg_len);
                 }                  }
           } else {
                   /*
                   if (dst->sub_value.msg_base)
                           free(dst->sub_value.msg_base);
                           */
                   dst->sub_value.msg_base = NULL;
                   dst->sub_value.msg_len = 0;
         }          }
   
         dst->sub_ret = src->sub_ret;          dst->sub_ret = src->sub_ret;
Line 590  mqtt_sqlTopic(const char *csInput, char * __restrict p Line 604  mqtt_sqlTopic(const char *csInput, char * __restrict p
                 *s = *pos;                  *s = *pos;
         }          }
   
         return ret;  
 }  
   
   
 /*  
  * mqtt_KeepAlive() - Keep Alive check routine  
  *  
  * @sock = connected socket  
  * @ka = keep alive timeout  
  * @tries = tries for receive correct ping response, usually ==1  
  * return: -1 error, 0 host is alive, 1 timeout session or 2 broken session  
  */  
 int  
 mqtt_KeepAlive(int sock, u_short ka, u_char tries)  
 {  
         int ret = 0;  
         struct pollfd pfd;  
         mqtt_msg_t msg = { NULL, 0 };  
   
         if (sock < 3)  
                 return -1;      /* error */  
   
         pfd.fd = sock;  
         pfd.events = POLLOUT;  
         if ((ret = poll(&pfd, 1, ka * 1000)) == -1 ||   
                         pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) {  
                 LOGERR;  
                 return -1;      /* error */  
         } else if (!ret)  
                 return 1;       /* session is abandoned ... must be disconnect! */  
         /* ping request */  
         if ((ret = mqtt_msgPINGREQ(&msg)) == -1)  
                 return -1;      /* error */  
         if ((ret = send(sock, msg.msg_base, ret, MSG_NOSIGNAL)) == -1) {  
                 LOGERR;  
                 goto end;  
         }  
   
         pfd.events = POLLIN | POLLPRI;  
         while (tries--) {  
                 if ((ret = poll(&pfd, 1, ka * 1000)) == -1 ||   
                                 pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) {  
                         LOGERR;  
                         break;  
                 } else if (!ret) {  
                         ret = 1;        /* session is abandoned ... must be disconnect! */  
                         continue;  
                 }  
                 /* receive & decode packet */  
                 if ((ret = recv(sock, msg.msg_base, msg.msg_len, 0)) == -1) {  
                         LOGERR;  
                         break;  
                 }  
                 if (!mqtt_readPINGRESP(&msg)) {  
                         ret = 0;        /* Host is alive */  
                         break;  
                 } else  
                         ret = 2;        /* Session is broken ... must be disconnect! */  
         }  
 end:  
         free(msg.msg_base);  
         return ret;          return ret;
 }  }

Removed from v.1.1.1.1.2.11  
changed lines
  Added in v.1.1.1.1.2.14


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