コード例 #1
0
ファイル: rtcs.c プロジェクト: gxliu/MQX_3.8.0
uint_32  RTCS_shutdown
   (
      uint_32     sock,
         /*[IN] socket handle for this socket */
      uint_32     how
         /*[IN] specifies whether or not connection should be immediate */
   )
{ /* Body */
   register SOCKET_STRUCT_PTR socket_ptr = (SOCKET_STRUCT_PTR)sock;
            uint_32           error;

   error = RTCS_OK;

#if RTCSCFG_CHECK_VALIDITY
   if ((sock==0) || (sock ==RTCS_SOCKET_ERROR)) {
      return RTCSERR_SOCK_INVALID;
   } /* Endif */


   if (socket_ptr->VALID != SOCKET_VALID) {
      return RTCSERR_SOCK_INVALID;
   } /* Endif */
#endif

   if (socket_ptr->PROTOCOL->SOCK_SHUTDOWN) {
      error = socket_ptr->PROTOCOL->SOCK_SHUTDOWN(sock, how);
   } /* Endif */

   SOCK_Free_sock_struct(socket_ptr);
   return error;

} /* Endbody */
コード例 #2
0
ファイル: rtcs.c プロジェクト: Wangwenxue/FutureMove-T-box
uint32_t  RTCS_shutdown
   (
      uint32_t     sock,
         /*[IN] socket handle for this socket */
      uint32_t     how
         /*[IN] specifies whether or not connection should be immediate */
   )
{
   register SOCKET_STRUCT_PTR socket_ptr = (SOCKET_STRUCT_PTR)sock;
            uint32_t           error;

   error = RTCS_OK;

   if ((sock==0) || (sock == RTCS_SOCKET_ERROR) || (socket_ptr->VALID != SOCKET_VALID))
   {
      return RTCSERR_SOCK_INVALID;
   }

   if (socket_ptr->PROTOCOL->SOCK_SHUTDOWN)
   {
      error = socket_ptr->PROTOCOL->SOCK_SHUTDOWN(sock, how);
   }
   SOCK_Free_sock_struct(socket_ptr);
   return error;
}
コード例 #3
0
ファイル: rtcs.c プロジェクト: gxliu/MQX_3.8.0
uint_32  RTCS_socket
   (
      uint_32     pf,
         /*[IN] specifies the protocol family */
      uint_32     type,
         /*[IN] specifies the type of communication */
      uint_32     protocol
         /*[IN] select a specific protocol */
   )
{ /* Body */
   SOCKET_STRUCT_PTR socket_ptr;
   uint_32           error;

   RTCSLOG_API(RTCSLOG_TYPE_FNENTRY, RTCSLOG_FN_SOCKET, type);

   socket_ptr = SOCK_Get_sock_struct((RTCS_SOCKET_CALL_STRUCT_PTR)type,
                                     RTCS_task_getid());
   if (socket_ptr == NULL) {
      RTCSLOG_API(RTCSLOG_TYPE_FNEXIT, RTCSLOG_FN_SOCKET, RTCS_SOCKET_ERROR);
      return RTCS_SOCKET_ERROR;
   } /* Endif */

   if (socket_ptr->PROTOCOL->SOCK_SOCKET) {
      error = socket_ptr->PROTOCOL->SOCK_SOCKET((uint_32)socket_ptr);
      if (error) {
         SOCK_Free_sock_struct(socket_ptr);
         RTCSLOG_API(RTCSLOG_TYPE_FNEXIT, RTCSLOG_FN_SOCKET, RTCS_SOCKET_ERROR);
         return RTCS_SOCKET_ERROR;
      } /* Endif */
   } /* Endif */

   RTCSLOG_API(RTCSLOG_TYPE_FNEXIT, RTCSLOG_FN_SOCKET, (uint_32)socket_ptr);
   return (uint_32)socket_ptr;

} /* Endbody */