tools/testing/selftests/net/sk_bind_sendto_listen.c

Source file repositories/reference/linux-study-clean/tools/testing/selftests/net/sk_bind_sendto_listen.c

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/net/sk_bind_sendto_listen.c
Extension
.c
Size
1617 bytes
Lines
81
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: implementation source
Status
source implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

sizeof(bind_addr))) {
		error(1, errno, "sendto fd1");
		goto out_err1;
	}

	fd2 = socket(AF_INET6, SOCK_STREAM, IPPROTO_IP);
	if (fd2 < 0) {
		error(1, errno, "socket fd2");
		goto out_err1;
	}

	if (setsockopt(fd2, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one))) {
		error(1, errno, "setsockopt(SO_REUSEADDR) fd2");
		goto out_err2;
	}

	if (bind(fd2, (struct sockaddr *)&bind_addr, sizeof(bind_addr))) {
		error(1, errno, "bind fd2");
		goto out_err2;
	}

	if (sendto(fd2, NULL, 0, MSG_FASTOPEN, (struct sockaddr *)&bind_addr,
		   sizeof(bind_addr)) != -1) {
		error(1, errno, "sendto fd2");
		goto out_err2;
	}

	if (listen(fd2, 0)) {
		error(1, errno, "listen");
		goto out_err2;
	}

	close(fd2);
	close(fd1);
	return 0;

out_err2:
	close(fd2);

out_err1:
	close(fd1);
	return -1;
}

Annotation

Implementation Notes