+
+sockaddr_in6 create_any_address(int port)
+{
+ sockaddr_in6 sin6;
+ memset(&sin6, 0, sizeof(sin6));
+ sin6.sin6_family = AF_INET6;
+ sin6.sin6_port = htons(port);
+ return sin6;
+}
+
+sockaddr_in6 extract_address_from_acceptor_proto(const AcceptorProto &proto)
+{
+ sockaddr_in6 sin6;
+ memset(&sin6, 0, sizeof(sin6));
+ sin6.sin6_family = AF_INET6;
+
+ if (!proto.addr().empty()) {
+ int ret = inet_pton(AF_INET6, proto.addr().c_str(), &sin6.sin6_addr);
+ assert(ret == 1);
+ }
+
+ sin6.sin6_port = htons(proto.port());
+ return sin6;
+}