1*15950312SJohn Baldwin.\" 2*15950312SJohn Baldwin.\" SPDX-License-Identifier: BSD-2-Clause 3*15950312SJohn Baldwin.\" 4*15950312SJohn Baldwin.\" Copyright (c) 2025 Chelsio Communications, Inc. 5*15950312SJohn Baldwin.\" Written by: John Baldwin <jhb@FreeBSD.org> 6*15950312SJohn Baldwin.\" 7*15950312SJohn Baldwin.Dd July 31, 2025 8*15950312SJohn Baldwin.Dt FREEBSD::ADDRINFO_UP 3 9*15950312SJohn Baldwin.Os 10*15950312SJohn Baldwin.Sh NAME 11*15950312SJohn Baldwin.Nm freebsd::addrinfo_up 12*15950312SJohn Baldwin.Nd std::unique_ptr specialization for lists of socket addresses 13*15950312SJohn Baldwin.Sh LIBRARY 14*15950312SJohn Baldwin.Lb libutil++ 15*15950312SJohn Baldwin.Sh SYNOPSIS 16*15950312SJohn Baldwin.In libutil++.hh 17*15950312SJohn Baldwin.Ft using addrinfo_up = std::unique_ptr<addrinfo, freeaddrinfo_deleter>; 18*15950312SJohn Baldwin.Sh DESCRIPTION 19*15950312SJohn BaldwinThis class is a specialization of 20*15950312SJohn Baldwin.Vt std::unique_ptr 21*15950312SJohn Baldwinfor socket addresses returned by 22*15950312SJohn Baldwin.Xr getaddrinfo 3 . 23*15950312SJohn BaldwinWhen a list of socket addresses managed by an instance of this class is 24*15950312SJohn Baldwindisposed, 25*15950312SJohn Baldwin.Xr freeaddrinfo 3 26*15950312SJohn Baldwinis invoked to dispose of the list. 27*15950312SJohn Baldwin.Sh EXAMPLES 28*15950312SJohn Baldwin.Bd -literal -offset indent 29*15950312SJohn Baldwinfreebsd::addrinfo_up 30*15950312SJohn Baldwinresolve_address(const char *address, const char *port) 31*15950312SJohn Baldwin{ 32*15950312SJohn Baldwin struct addrinfo hints, *ai; 33*15950312SJohn Baldwin int error; 34*15950312SJohn Baldwin 35*15950312SJohn Baldwin memset(&hints, 0, sizeof(hints)); 36*15950312SJohn Baldwin hints.ai_family = AF_UNSPEC; 37*15950312SJohn Baldwin hints.ai_socktype = SOCK_STREAM; 38*15950312SJohn Baldwin error = getaddrinfo(address, port, &hints, &ai); 39*15950312SJohn Baldwin if (error != 0) 40*15950312SJohn Baldwin return {}; 41*15950312SJohn Baldwin return freebsd::addrinfo_up(ai); 42*15950312SJohn Baldwin} 43*15950312SJohn Baldwin.Ed 44*15950312SJohn Baldwin.Sh SEE ALSO 45*15950312SJohn Baldwin.Xr getaddrinfo 3 46