Exemple #1
0
IPV4Host Socket::getIPV4Peer(tpport_t *port) const
{
    sockaddr_in* from = getPeer();
    if (from == NULL) {
        if (port)
            port = 0;
        return IPV4Host(INADDR_ANY);
    }

    if (port)
        *port = ntohs(from->sin_port);
    return IPV4Host(from->sin_addr);
}
Exemple #2
0
IPV4Host Socket::getIPV4Peer(in_port_t *port) const
{
    sockaddr_in* from = getPeer();
    struct in_addr any;
    any.s_addr = INADDR_ANY;

    if (from == NULL) {
        if (port)
            *port = 0;
        return IPV4Host(any);
    }

    if (port)
        *port = ntohs(from->sin_port);
    return IPV4Host(from->sin_addr);
}
Exemple #3
0
IPV4Host Socket::getIPV4Sender(in_port_t *port) const
{
    ucommon::Socket::address addr = getSender();
    sockaddr_in* from = addr;
    struct in_addr any;
    any.s_addr = INADDR_ANY;

    if (from == NULL) {
        if (port)
            *port = 0;
        return IPV4Host(any);
    }

    if (port)
        *port = ntohs(from->sin_port);
    return IPV4Host(from->sin_addr);
}
int TransportCCRTP::start()
{
	if( (frameSize <= 0) || (framesPerPacket <= 0)) {
		cout << "Transport fatal : frameSize or framesPerPacket not set" << endl;
		return -1;
	}

	if( (localPort == -1 ) ) {
		cout << "Endpoint error: " << localAddress << ":" << localPort << endl;
		return TransceiverStartResult::LOCAL_ENDPOINT_ERROR;
	}

	if( ( remotePort == -1 ) || ( !remoteAddress) ) {
		printf("error2\n");
		return TransceiverStartResult::REMOTE_ENDPOINT_ERROR;
	}

	socket = new AghRtpSession( IPV4Host(localAddress.getAddress()), localPort );

	//socket->setSchedulingTimeout(10000);
	socket->setExpireTimeout(51);


	if( !socket->addDestination( IPV4Host(remoteAddress.getAddress()), remotePort ) ) {
		/*
		 * TODO: Implement ccrtp connection failure
		 */
		cout << "CCRTP destination connection failure: " << IPV4Host(remoteAddress.getAddress()) << ":" << remotePort << endl;
		return -1;
	}

	socket->setPayloadFormat( StaticPayloadFormat( sptPCMU ) );

	socket->startRunning();

	if( socket->RTPDataQueue::isActive() )
		cout << "active." << endl;
	else
	    cerr << "not active." << endl;

	timestamp = socket->getCurrentTimestamp() + frameSize*framesPerPacket;

	return 0;
}
Exemple #5
0
IPV4Host UDPSocket::getIPV4Peer(tpport_t *port)
{
    ucommon::Socket::address addr = getPeer();
    if (addr) {
        if(port)
            *port = peer.getPort();
    } else {
        peer.setAny();
        if(port)
            *port = 0;
    }

    return IPV4Host(ucommon::Socket::address::ipv4(addr)->sin_addr);
}
Exemple #6
0
void TCPStream::connect(const char *target, unsigned mss)
{
    char namebuf[128];
    char *cp;
    struct servent *svc;
    tpport_t port;

    snprintf(namebuf, sizeof(namebuf), "%s", target);
    cp = strrchr(namebuf, '/');
    if(!cp)
        cp = strrchr(namebuf, ':');

    if(!cp) {
        endStream();
        connectError();
        return;
    }

    *(cp++) = 0;

    if(isdigit(*cp))
        port = atoi(cp);
    else {
        mutex.enter();
        svc = getservbyname(cp, "tcp");
        if(svc)
            port = ntohs(svc->s_port);
        mutex.leave();
        if(!svc) {
            endStream();
            connectError();
            return;
        }
    }

    switch(family) {
    case IPV4:
        connect(IPV4Host(namebuf), port, mss);
        break;
#ifdef  CCXX_IPV6
    case IPV6:
        connect(IPV6Host(namebuf), port, mss);
        break;
#endif
    default:
        endStream();
        connectError();
    }
}