Diff for /libaitrpc/src/aitrpc.c between versions 1.12.4.3 and 1.14

version 1.12.4.3, 2013/11/14 22:53:12 version 1.14, 2013/12/15 23:01:02
Line 149  rpc_addPktSession(rpc_sess_t *p, rpc_sess_t *s) Line 149  rpc_addPktSession(rpc_sess_t *p, rpc_sess_t *s)
  * @sa = check client address, if you use udp protocol   * @sa = check client address, if you use udp protocol
  * @buf = buffer   * @buf = buffer
  * @blen = buffer length   * @blen = buffer length
 * return: -1 error or >-1 readed bytes into buffer * return: -1 error, 0 EOF or or >0 readed bytes into buffer
  */   */
 ssize_t  ssize_t
 rpc_Read(int sock, int type, int flags, sockaddr_t * __restrict sa,   rpc_Read(int sock, int type, int flags, sockaddr_t * __restrict sa, 
Line 169  rpc_Read(int sock, int type, int flags, sockaddr_t * _ Line 169  rpc_Read(int sock, int type, int flags, sockaddr_t * _
         for (len = blen; len > 0; len -= ret, buf += ret) {          for (len = blen; len > 0; len -= ret, buf += ret) {
                 if ((ret = poll(&pfd, 1, DEF_RPC_TIMEOUT * 1000)) < 1 ||                   if ((ret = poll(&pfd, 1, DEF_RPC_TIMEOUT * 1000)) < 1 || 
                                 pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) {                                  pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) {
                        LOGERR;                        if (ret)
                                 LOGERR;
                         else
                                 rpc_SetErr(ETIMEDOUT, "Timeout reached! Server not respond");
                         return -1;                          return -1;
                 }                  }
                 if (type == SOCK_STREAM)                  if (type == SOCK_STREAM)
                         ret = recv(sock, buf, len, flags);                          ret = recv(sock, buf, len, flags);
                 else {                  else {
                         ret = recvfrom(sock, buf, len, flags, &sa2.sa, &salen);                          ret = recvfrom(sock, buf, len, flags, &sa2.sa, &salen);
                        if (ret > -1 && e_addrcmp(sa, &sa2, 42)) {                        if (ret > -1 && sa && e_addrcmp(sa, &sa2, 42)) {
                                rpc_SetErr(ERPCMISMATCH, "Received RPC response from unknown address");                                rpc_SetErr(ERPCMISMATCH, 
                                                 "Received RPC response from unknown address");
                                 return -1;                                  return -1;
                         }                          }
                 }                  }
Line 185  rpc_Read(int sock, int type, int flags, sockaddr_t * _ Line 189  rpc_Read(int sock, int type, int flags, sockaddr_t * _
                         LOGERR;                          LOGERR;
                         return -1;                          return -1;
                 }                  }
                   if (!ret)       /* EOF */
                           return 0;
         }          }
         ret = blen - len;          ret = blen - len;
   
Line 200  rpc_Read(int sock, int type, int flags, sockaddr_t * _ Line 206  rpc_Read(int sock, int type, int flags, sockaddr_t * _
  * @sa = send to client address, if you use udp protocol   * @sa = send to client address, if you use udp protocol
  * @buf = buffer   * @buf = buffer
  * @blen = buffer length   * @blen = buffer length
 * return: -1 error or >-1 written bytes into buffer * return: -1 error, 0 EOF or >0 written bytes into buffer
  */   */
 ssize_t  ssize_t
 rpc_Write(int sock, int type, int flags, sockaddr_t * __restrict sa,   rpc_Write(int sock, int type, int flags, sockaddr_t * __restrict sa, 
Line 214  rpc_Write(int sock, int type, int flags, sockaddr_t *  Line 220  rpc_Write(int sock, int type, int flags, sockaddr_t * 
         for (len = blen; len > 0; len -= ret, buf += ret) {          for (len = blen; len > 0; len -= ret, buf += ret) {
                 if ((ret = poll(&pfd, 1, DEF_RPC_TIMEOUT * 1000)) < 1 ||                   if ((ret = poll(&pfd, 1, DEF_RPC_TIMEOUT * 1000)) < 1 || 
                                 pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) {                                  pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) {
   #if 0
                         if (!ret)                          if (!ret)
                                 continue;                                  continue;
   #endif
                         if (ret > 0)                          if (ret > 0)
                                 rpc_SetErr(EPIPE, "Disconnected RPC session\n");                                  rpc_SetErr(EPIPE, "Disconnected RPC session\n");
                         else                          else
Line 234  rpc_Write(int sock, int type, int flags, sockaddr_t *  Line 242  rpc_Write(int sock, int type, int flags, sockaddr_t * 
                         LOGERR;                          LOGERR;
                         return -1;                          return -1;
                 }                  }
                   if (!ret)       /* EOF */
                           return 0;
         }          }
         ret = blen - len;          ret = blen - len;
         if (ret != blen) {          if (ret != blen) {

Removed from v.1.12.4.3  
changed lines
  Added in v.1.14


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