示例#1
0
文件: smbnet.c 项目: layerfsd/cifssmb
int rtsmb_net_socket_new (RTP_SOCKET* sock_ptr, int port, BBOOL reliable)
{
    int result;

    if (reliable)
    {
        result = rtp_net_socket_stream(sock_ptr);
    }
    else
    {
        result = rtp_net_socket_datagram(sock_ptr);
    }

    if (result < 0)
    {
        RTSMB_DEBUG_OUTPUT_STR("rtsmb_net_socket_new: Unable to get new socket\n", RTSMB_DEBUG_TYPE_ASCII);
        return -1;
    }

    if (rtp_net_bind(*sock_ptr, (unsigned char*)0, port, 4))
    {
        RTSMB_DEBUG_OUTPUT_STR ("rtsmb_net_socket_new: bind to port ", RTSMB_DEBUG_TYPE_ASCII);
        RTSMB_DEBUG_OUTPUT_INT (port);
        RTSMB_DEBUG_OUTPUT_STR (" failed\n", RTSMB_DEBUG_TYPE_ASCII);
        return -1;
    }

    RTSMB_DEBUG_OUTPUT_STR ("rtsmb_net_socket_new: Socket ", RTSMB_DEBUG_TYPE_ASCII);
    RTSMB_DEBUG_OUTPUT_INT ((int) (*sock_ptr));
    RTSMB_DEBUG_OUTPUT_STR (" bound to port ", RTSMB_DEBUG_TYPE_ASCII);
    RTSMB_DEBUG_OUTPUT_INT (port);
    RTSMB_DEBUG_OUTPUT_STR ("\n", RTSMB_DEBUG_TYPE_ASCII);

    return 0;
}
int RTIP_SOCKETS_Driver::Bind( SOCK_SOCKET socket, const SOCK_sockaddr* address, int addressLen  ) 
{ 
    NATIVE_PROFILE_PAL_NETWORK();
 
    int             ret;
    unsigned char  *ipAddr;
    int             port;
    
    
    port    = ((SOCK_sockaddr_in *) address)->sin_port;
    ipAddr  = (unsigned char *) &(((SOCK_sockaddr_in *) address)->sin_addr);
    
    ret = rtp_net_bind ((RTP_HANDLE) socket, 
                           ipAddr, 
                           port, 
                           RTP_NET_TYPE_IPV4);
    return ret; 
}