MCPcopy Create free account
hub / github.com/axboe/liburing / t_create_socketpair_ip

Function t_create_socketpair_ip

test/helpers.c:378–487  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

376}
377
378int t_create_socketpair_ip(struct sockaddr_storage *addr,
379 int *sock_client, int *sock_server,
380 bool ipv6, bool client_connect,
381 bool msg_zc, bool tcp, const char *name)
382{
383 socklen_t addr_size;
384 int family, sock, listen_sock = -1;
385 int ret;
386
387 memset(addr, 0, sizeof(*addr));
388 if (ipv6) {
389 struct sockaddr_in6 *saddr = (struct sockaddr_in6 *)addr;
390
391 family = AF_INET6;
392 saddr->sin6_family = family;
393 saddr->sin6_port = htons(0);
394 addr_size = sizeof(*saddr);
395 } else {
396 struct sockaddr_in *saddr = (struct sockaddr_in *)addr;
397
398 family = AF_INET;
399 saddr->sin_family = family;
400 saddr->sin_port = htons(0);
401 saddr->sin_addr.s_addr = htonl(INADDR_ANY);
402 addr_size = sizeof(*saddr);
403 }
404
405 /* server sock setup */
406 if (tcp) {
407 sock = listen_sock = socket(family, SOCK_STREAM, IPPROTO_TCP);
408 } else {
409 sock = *sock_server = socket(family, SOCK_DGRAM, 0);
410 }
411 if (sock < 0) {
412 perror("socket");
413 return 1;
414 }
415
416 ret = bind(sock, (struct sockaddr *)addr, addr_size);
417 if (ret < 0) {
418 perror("bind");
419 return 1;
420 }
421
422 ret = getsockname(sock, (struct sockaddr *)addr, &addr_size);
423 if (ret < 0) {
424 fprintf(stderr, "getsockname failed %i\n", errno);
425 return 1;
426 }
427
428 if (tcp) {
429 ret = listen(sock, 128);
430 assert(ret != -1);
431 }
432
433 if (ipv6) {
434 struct sockaddr_in6 *saddr = (struct sockaddr_in6 *)addr;
435

Callers 2

create_socketpair_ipFunction · 0.85
test_vecFunction · 0.85

Calls

no outgoing calls

Tested by 1

test_vecFunction · 0.68