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); }
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); }
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; }
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); }
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(); } }