MCPcopy Create free account
hub / github.com/SIPp/sipp / create_socket

Function create_socket

src/sipp.cpp:1209–1231  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1207}
1208
1209static int create_socket(struct sockaddr_storage* media_sa, int try_port, bool last_attempt,
1210 const char *type)
1211{
1212 int s = socket(media_sa->ss_family, SOCK_DGRAM, IPPROTO_UDP);
1213 if (s == -1) {
1214 ERROR_NO("Unable to create the %s RTP socket", type);
1215 }
1216
1217 if (media_sa->ss_family == AF_INET) {
1218 (_RCAST(struct sockaddr_in*, media_sa))->sin_port = htons(try_port);
1219 } else {
1220 (_RCAST(struct sockaddr_in6*, media_sa))->sin6_port = htons(try_port);
1221 }
1222
1223 if (::bind(s, (sockaddr*)media_sa, socklen_from_addr(media_sa)) != 0) {
1224 if (last_attempt) {
1225 ERROR_NO("Unable to bind %s RTP socket (IP=%s, port=%d)", type, media_ip, try_port);
1226 }
1227 ::close(s);
1228 return -1;
1229 }
1230 return s;
1231}
1232
1233/**
1234 * Create and bind media_socket_audio, media_socket_video for RTP and

Callers 1

bind_rtp_socketsFunction · 0.85

Calls 2

ERROR_NOFunction · 0.85
socklen_from_addrFunction · 0.85

Tested by

no test coverage detected