\doxysection{IP address/port utilities.}
\label{group__sockaddr__str}\index{IP address/port utilities.@{IP address/port utilities.}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ sockaddr\+\_\+str.\+h}
\begin{DoxyCompactList}\small\item\em Common API to store an IP address and port. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+sockaddr\+\_\+str}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ OSMO\+\_\+\+SOCKADDR\+\_\+\+STR\+\_\+\+FMT}~\char`\"{}\%s\%s\%s\+:\%\textbf{ u}\char`\"{}
\begin{DoxyCompactList}\small\item\em Format string to print an \doxyref{osmo\+\_\+sockaddr\+\_\+str}{p.}{structosmo__sockaddr__str}. \end{DoxyCompactList}\item 
\#define \textbf{ OSMO\+\_\+\+SOCKADDR\+\_\+\+STR\+\_\+\+FMT\+\_\+\+ARGS\+\_\+\+NOT\+\_\+\+NULL}(\textbf{ R})
\item 
\#define \textbf{ OSMO\+\_\+\+SOCKADDR\+\_\+\+STR\+\_\+\+FMT\+\_\+\+ARGS}(\textbf{ R})
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ osmo\+\_\+ip\+\_\+str\+\_\+type} (const char $\ast$ip)
\item 
bool \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+is\+\_\+set} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str)
\item 
bool \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+is\+\_\+nonzero} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+cmp} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$a, const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$b)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+str} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, const char $\ast$ip, uint16\+\_\+t port)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+str2} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, const char $\ast$ip)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+in\+\_\+addr} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, const struct in\+\_\+addr $\ast$addr, uint16\+\_\+t port)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+in6\+\_\+addr} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, const struct in6\+\_\+addr $\ast$addr, uint16\+\_\+t port)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+32} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, uint32\+\_\+t ip, uint16\+\_\+t port)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+32h} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, uint32\+\_\+t ip, uint16\+\_\+t port)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+sockaddr\+\_\+in} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, const struct sockaddr\+\_\+in $\ast$src)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+sockaddr\+\_\+in6} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, const struct sockaddr\+\_\+in6 $\ast$src)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+sockaddr} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, const struct sockaddr\+\_\+storage $\ast$src)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+osa} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, const struct \textbf{ osmo\+\_\+sockaddr} $\ast$src)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+in\+\_\+addr} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, struct in\+\_\+addr $\ast$dst)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+in6\+\_\+addr} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, struct in6\+\_\+addr $\ast$dst)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+32} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, uint32\+\_\+t $\ast$ip)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+32h} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, uint32\+\_\+t $\ast$ip)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+sockaddr\+\_\+in} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, struct sockaddr\+\_\+in $\ast$dst)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+sockaddr\+\_\+in6} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, struct sockaddr\+\_\+in6 $\ast$dst)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+sockaddr} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, struct sockaddr\+\_\+storage $\ast$dst)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+osa} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, struct \textbf{ osmo\+\_\+sockaddr} $\ast$dst)
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+32n} (struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, uint32\+\_\+t ip, uint16\+\_\+t port) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+32n() actually uses $\ast$\textbf{ host}$\ast$ byte order. Use \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+32h}() \textbf{ instead}\char`\"{})
\item 
int \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+32n} (const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$sockaddr\+\_\+str, uint32\+\_\+t $\ast$ip) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+32n() actually uses $\ast$\textbf{ host}$\ast$ byte order. Use \textbf{ osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+32h}() \textbf{ instead}\char`\"{})
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{group__sockaddr__str_gacbcacc5429078f8b244928a92a8041fe}} 
\index{IP address/port utilities.@{IP address/port utilities.}!OSMO\_SOCKADDR\_STR\_FMT@{OSMO\_SOCKADDR\_STR\_FMT}}
\index{OSMO\_SOCKADDR\_STR\_FMT@{OSMO\_SOCKADDR\_STR\_FMT}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{OSMO\_SOCKADDR\_STR\_FMT}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SOCKADDR\+\_\+\+STR\+\_\+\+FMT~\char`\"{}\%s\%s\%s\+:\%\textbf{ u}\char`\"{}}



Format string to print an \doxyref{osmo\+\_\+sockaddr\+\_\+str}{p.}{structosmo__sockaddr__str}. 

For example\+: \begin{DoxyVerb}struct osmo_sockaddr_str *my_sockaddr_str = ...;
printf("got " OSMO_SOCKADDR_STR_FMT "\n", OSMO_SOCKADDR_STR_FMT_ARGS(my_sockaddr_str));
\end{DoxyVerb}
 \mbox{\label{group__sockaddr__str_ga44e102d6ce265f3acaa7e540c7376a1d}} 
\index{IP address/port utilities.@{IP address/port utilities.}!OSMO\_SOCKADDR\_STR\_FMT\_ARGS@{OSMO\_SOCKADDR\_STR\_FMT\_ARGS}}
\index{OSMO\_SOCKADDR\_STR\_FMT\_ARGS@{OSMO\_SOCKADDR\_STR\_FMT\_ARGS}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{OSMO\_SOCKADDR\_STR\_FMT\_ARGS}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SOCKADDR\+\_\+\+STR\+\_\+\+FMT\+\_\+\+ARGS(\begin{DoxyParamCaption}\item[{}]{\textbf{ R} }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        ((R) \&\& (R)-\/>af == AF\_INET6) ? \textcolor{stringliteral}{"{}["{}} : \textcolor{stringliteral}{"{}"{}}, \(\backslash\)}
\DoxyCodeLine{        (R) ? (R)-\/>ip : \textcolor{stringliteral}{"{}NULL"{}}, \(\backslash\)}
\DoxyCodeLine{        ((R) \&\& (R)-\/>af == AF\_INET6) ? \textcolor{stringliteral}{"{}]"{}} : \textcolor{stringliteral}{"{}"{}}, \(\backslash\)}
\DoxyCodeLine{        (R) ? (R)-\/>port : 0}

\end{DoxyCode}
\mbox{\label{group__sockaddr__str_ga557fc04af8e36cf0f69680da091d1001}} 
\index{IP address/port utilities.@{IP address/port utilities.}!OSMO\_SOCKADDR\_STR\_FMT\_ARGS\_NOT\_NULL@{OSMO\_SOCKADDR\_STR\_FMT\_ARGS\_NOT\_NULL}}
\index{OSMO\_SOCKADDR\_STR\_FMT\_ARGS\_NOT\_NULL@{OSMO\_SOCKADDR\_STR\_FMT\_ARGS\_NOT\_NULL}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{OSMO\_SOCKADDR\_STR\_FMT\_ARGS\_NOT\_NULL}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SOCKADDR\+\_\+\+STR\+\_\+\+FMT\+\_\+\+ARGS\+\_\+\+NOT\+\_\+\+NULL(\begin{DoxyParamCaption}\item[{}]{\textbf{ R} }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        ((R)-\/>af == AF\_INET6) ? \textcolor{stringliteral}{"{}["{}} : \textcolor{stringliteral}{"{}"{}}, \(\backslash\)}
\DoxyCodeLine{        (R)-\/>ip, \(\backslash\)}
\DoxyCodeLine{        ((R)-\/>af == AF\_INET6) ? \textcolor{stringliteral}{"{}]"{}} : \textcolor{stringliteral}{"{}"{}}, \(\backslash\)}
\DoxyCodeLine{        (R)-\/>port}

\end{DoxyCode}


\doxysubsection{Function Documentation}
\mbox{\label{group__sockaddr__str_ga4177f6f9287d8963ea58a554d99d44d6}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_ip\_str\_type@{osmo\_ip\_str\_type}}
\index{osmo\_ip\_str\_type@{osmo\_ip\_str\_type}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_ip\_str\_type()}
{\footnotesize\ttfamily int osmo\+\_\+ip\+\_\+str\+\_\+type (\begin{DoxyParamCaption}\item[{const char $\ast$}]{ip }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga0942ff1dcde89d8ce4e14a6cf7baf277}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_cmp@{osmo\_sockaddr\_str\_cmp}}
\index{osmo\_sockaddr\_str\_cmp@{osmo\_sockaddr\_str\_cmp}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_cmp()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+cmp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{a,  }\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{b }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gaf6a4c9a32488786a7a97195806f8ca2e}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_32@{osmo\_sockaddr\_str\_from\_32}}
\index{osmo\_sockaddr\_str\_from\_32@{osmo\_sockaddr\_str\_from\_32}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_32()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+32 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{uint32\+\_\+t}]{ip,  }\item[{uint16\+\_\+t}]{port }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gaf81cade4b86a1257e8e0c552ce79d5e4}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_32h@{osmo\_sockaddr\_str\_from\_32h}}
\index{osmo\_sockaddr\_str\_from\_32h@{osmo\_sockaddr\_str\_from\_32h}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_32h()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+32h (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{uint32\+\_\+t}]{ip,  }\item[{uint16\+\_\+t}]{port }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gabc4bf3f0af002b846d9f0b0e700bad8b}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_32n@{osmo\_sockaddr\_str\_from\_32n}}
\index{osmo\_sockaddr\_str\_from\_32n@{osmo\_sockaddr\_str\_from\_32n}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_32n()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+32n (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{uint32\+\_\+t}]{ip,  }\item[{uint16\+\_\+t}]{port }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga6cd6db8f1f0e321be47c227799c7d741}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_in6\_addr@{osmo\_sockaddr\_str\_from\_in6\_addr}}
\index{osmo\_sockaddr\_str\_from\_in6\_addr@{osmo\_sockaddr\_str\_from\_in6\_addr}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_in6\_addr()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+in6\+\_\+addr (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{const struct in6\+\_\+addr $\ast$}]{addr,  }\item[{uint16\+\_\+t}]{port }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga9443ca32f5bb8f162ea122f216f0e2be}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_in\_addr@{osmo\_sockaddr\_str\_from\_in\_addr}}
\index{osmo\_sockaddr\_str\_from\_in\_addr@{osmo\_sockaddr\_str\_from\_in\_addr}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_in\_addr()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+in\+\_\+addr (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{const struct in\+\_\+addr $\ast$}]{addr,  }\item[{uint16\+\_\+t}]{port }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga3c1bc87b46c3f1fe09958ab24601e4a0}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_osa@{osmo\_sockaddr\_str\_from\_osa}}
\index{osmo\_sockaddr\_str\_from\_osa@{osmo\_sockaddr\_str\_from\_osa}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_osa()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+osa (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{const struct \textbf{ osmo\+\_\+sockaddr} $\ast$}]{src }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gadafc2ead9cb89466b621894b3ebce04f}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_sockaddr@{osmo\_sockaddr\_str\_from\_sockaddr}}
\index{osmo\_sockaddr\_str\_from\_sockaddr@{osmo\_sockaddr\_str\_from\_sockaddr}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_sockaddr()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+sockaddr (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{const struct sockaddr\+\_\+storage $\ast$}]{src }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gab1081a1dac76fb2d1827c7ff733aa4c0}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_sockaddr\_in@{osmo\_sockaddr\_str\_from\_sockaddr\_in}}
\index{osmo\_sockaddr\_str\_from\_sockaddr\_in@{osmo\_sockaddr\_str\_from\_sockaddr\_in}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_sockaddr\_in()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+sockaddr\+\_\+in (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{const struct sockaddr\+\_\+in $\ast$}]{src }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gae78d6274467308bbb88d840d0fc6f1bf}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_sockaddr\_in6@{osmo\_sockaddr\_str\_from\_sockaddr\_in6}}
\index{osmo\_sockaddr\_str\_from\_sockaddr\_in6@{osmo\_sockaddr\_str\_from\_sockaddr\_in6}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_sockaddr\_in6()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+sockaddr\+\_\+in6 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{const struct sockaddr\+\_\+in6 $\ast$}]{src }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga082e00a6b6cd0864dc783b1e181eb937}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_str@{osmo\_sockaddr\_str\_from\_str}}
\index{osmo\_sockaddr\_str\_from\_str@{osmo\_sockaddr\_str\_from\_str}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_str()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+str (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{const char $\ast$}]{ip,  }\item[{uint16\+\_\+t}]{port }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gaf7987340f6f4e12ecf9afa7436560c10}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_from\_str2@{osmo\_sockaddr\_str\_from\_str2}}
\index{osmo\_sockaddr\_str\_from\_str2@{osmo\_sockaddr\_str\_from\_str2}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_from\_str2()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+from\+\_\+str2 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{const char $\ast$}]{ip }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga7a8ba06f6ab31056048af621348dfd30}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_is\_nonzero@{osmo\_sockaddr\_str\_is\_nonzero}}
\index{osmo\_sockaddr\_str\_is\_nonzero@{osmo\_sockaddr\_str\_is\_nonzero}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_is\_nonzero()}
{\footnotesize\ttfamily bool osmo\+\_\+sockaddr\+\_\+str\+\_\+is\+\_\+nonzero (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga5b1c364309537a77bd3a85f430772a44}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_is\_set@{osmo\_sockaddr\_str\_is\_set}}
\index{osmo\_sockaddr\_str\_is\_set@{osmo\_sockaddr\_str\_is\_set}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_is\_set()}
{\footnotesize\ttfamily bool osmo\+\_\+sockaddr\+\_\+str\+\_\+is\+\_\+set (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga0a1cc4911408f68de6b59648163cd532}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_32@{osmo\_sockaddr\_str\_to\_32}}
\index{osmo\_sockaddr\_str\_to\_32@{osmo\_sockaddr\_str\_to\_32}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_32()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+32 (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{uint32\+\_\+t $\ast$}]{ip }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga616a1d04b70ee569215046fde6397d74}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_32h@{osmo\_sockaddr\_str\_to\_32h}}
\index{osmo\_sockaddr\_str\_to\_32h@{osmo\_sockaddr\_str\_to\_32h}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_32h()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+32h (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{uint32\+\_\+t $\ast$}]{ip }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gaac1fbfabad8054638264db0b3afe72c4}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_32n@{osmo\_sockaddr\_str\_to\_32n}}
\index{osmo\_sockaddr\_str\_to\_32n@{osmo\_sockaddr\_str\_to\_32n}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_32n()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+32n (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{uint32\+\_\+t $\ast$}]{ip }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga55e92e54fc566ddabcbd7cca3a774f3d}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_in6\_addr@{osmo\_sockaddr\_str\_to\_in6\_addr}}
\index{osmo\_sockaddr\_str\_to\_in6\_addr@{osmo\_sockaddr\_str\_to\_in6\_addr}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_in6\_addr()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+in6\+\_\+addr (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{struct in6\+\_\+addr $\ast$}]{dst }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gaabb64cc261c5fe48f14ff8a2ed77de73}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_in\_addr@{osmo\_sockaddr\_str\_to\_in\_addr}}
\index{osmo\_sockaddr\_str\_to\_in\_addr@{osmo\_sockaddr\_str\_to\_in\_addr}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_in\_addr()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+in\+\_\+addr (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{struct in\+\_\+addr $\ast$}]{dst }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_gab382ac8fe286de5cce9c9f0398e75006}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_osa@{osmo\_sockaddr\_str\_to\_osa}}
\index{osmo\_sockaddr\_str\_to\_osa@{osmo\_sockaddr\_str\_to\_osa}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_osa()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+osa (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{struct \textbf{ osmo\+\_\+sockaddr} $\ast$}]{dst }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga33da0e68877b611c33021f33c3d85318}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_sockaddr@{osmo\_sockaddr\_str\_to\_sockaddr}}
\index{osmo\_sockaddr\_str\_to\_sockaddr@{osmo\_sockaddr\_str\_to\_sockaddr}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_sockaddr()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+sockaddr (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{struct sockaddr\+\_\+storage $\ast$}]{dst }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga707fee0f0eddf74524953170b000c633}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_sockaddr\_in@{osmo\_sockaddr\_str\_to\_sockaddr\_in}}
\index{osmo\_sockaddr\_str\_to\_sockaddr\_in@{osmo\_sockaddr\_str\_to\_sockaddr\_in}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_sockaddr\_in()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+sockaddr\+\_\+in (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{struct sockaddr\+\_\+in $\ast$}]{dst }\end{DoxyParamCaption})}

\mbox{\label{group__sockaddr__str_ga07ada92e0f6bd676ee1c1abb958f16df}} 
\index{IP address/port utilities.@{IP address/port utilities.}!osmo\_sockaddr\_str\_to\_sockaddr\_in6@{osmo\_sockaddr\_str\_to\_sockaddr\_in6}}
\index{osmo\_sockaddr\_str\_to\_sockaddr\_in6@{osmo\_sockaddr\_str\_to\_sockaddr\_in6}!IP address/port utilities.@{IP address/port utilities.}}
\doxysubsubsection{osmo\_sockaddr\_str\_to\_sockaddr\_in6()}
{\footnotesize\ttfamily int osmo\+\_\+sockaddr\+\_\+str\+\_\+to\+\_\+sockaddr\+\_\+in6 (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sockaddr\+\_\+str} $\ast$}]{sockaddr\+\_\+str,  }\item[{struct sockaddr\+\_\+in6 $\ast$}]{dst }\end{DoxyParamCaption})}

