Пример #1
0
static HB_GARBAGE_FUNC( hb_inetSocketFinalize )
{
   PHB_SOCKET_STRUCT socket = ( PHB_SOCKET_STRUCT ) Cargo;

   if( socket->sd != HB_NO_SOCKET )
      hb_inetCloseSocket( socket, HB_TRUE );
   else
      hb_inetCloseStream( socket );

   if( socket->pPeriodicBlock )
   {
      hb_itemRelease( socket->pPeriodicBlock );
      socket->pPeriodicBlock = NULL;
   }
   if( socket->remote )
   {
      hb_xfree( socket->remote );
      socket->remote = NULL;
   }
   if( socket->buffer )
   {
      hb_xfree( socket->buffer );
      socket->buffer = NULL;
   }
}
Пример #2
0
static HB_GARBAGE_FUNC( hb_inetSocketFinalize )
{
   PHB_SOCKET_STRUCT socket = ( PHB_SOCKET_STRUCT ) Cargo;

   if( socket->sd != HB_NO_SOCKET )
   {
      hb_socketShutdown( socket->sd, HB_SOCKET_SHUT_RDWR );
      hb_inetCloseSocket( socket );
   }

   if( socket->pPeriodicBlock )
   {
      hb_itemRelease( socket->pPeriodicBlock );
      socket->pPeriodicBlock = NULL;
   }
   if( socket->remote )
   {
      hb_xfree( socket->remote );
      socket->remote = NULL;
   }
   if( socket->buffer )
   {
      hb_xfree( socket->buffer );
      socket->buffer = NULL;
   }
   hb_inetCloseStream( socket );
}
Пример #3
0
static int hb_inetCloseSocket( PHB_SOCKET_STRUCT socket, HB_BOOL fShutDown )
{
   int ret;

   hb_inetCloseStream( socket );

   if( fShutDown )
      hb_socketShutdown( socket->sd, HB_SOCKET_SHUT_RDWR );

   ret = hb_socketClose( socket->sd );

   socket->sd       = HB_NO_SOCKET;
   socket->inbuffer = 0;
   return ret;
}
Пример #4
0
HB_BOOL hb_znetInetInitialize( PHB_ITEM pItem, PHB_ZNETSTREAM pStream,
                               HB_INET_RFUNC recvFunc,
                               HB_INET_SFUNC sendFunc,
                               HB_INET_FFUNC flushFunc,
                               HB_INET_CFUNC cleanFunc )
{
   PHB_SOCKET_STRUCT socket = ( PHB_SOCKET_STRUCT ) hb_itemGetPtrGC( pItem, &s_gcInetFuncs );

   if( socket )
   {
      hb_inetCloseStream( socket );

      socket->recvFunc = recvFunc;
      socket->sendFunc = sendFunc;
      socket->flushFunc = flushFunc;
      socket->cleanFunc = cleanFunc;
      socket->stream = pStream;
      return HB_TRUE;
   }

   hb_inetErrRT();
   return HB_FALSE;
}