\doxysection{stream\+\_\+private.\+h}
\label{stream__private_8h_source}\index{include/osmocom/netif/stream\_private.h@{include/osmocom/netif/stream\_private.h}}

\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{2 }
\DoxyCodeLine{3 \textcolor{preprocessor}{\#include <stdbool.h>}}
\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{5 }
\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <osmocom/core/socket.h>}}
\DoxyCodeLine{7 }
\DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}config.h"{}}}
\DoxyCodeLine{9 }
\DoxyCodeLine{10 \textcolor{preprocessor}{\#ifdef HAVE\_LIBSCTP}}
\DoxyCodeLine{11 \textcolor{preprocessor}{\#include <netinet/sctp.h>}}
\DoxyCodeLine{12 \textcolor{preprocessor}{        \#define OSMO\_STREAM\_MAX\_ADDRS OSMO\_SOCK\_MAX\_ADDRS}}
\DoxyCodeLine{13         \textcolor{comment}{/*}}
\DoxyCodeLine{14 \textcolor{comment}{        * Platforms that don't have MSG\_NOSIGNAL (which disables SIGPIPE)}}
\DoxyCodeLine{15 \textcolor{comment}{        * usually have SO\_NOSIGPIPE (set via setsockopt).}}
\DoxyCodeLine{16 \textcolor{comment}{        */}}
\DoxyCodeLine{17 \textcolor{preprocessor}{        \#ifndef MSG\_NOSIGNAL}}
\DoxyCodeLine{18 \textcolor{preprocessor}{        \#define MSG\_NOSIGNAL 0}}
\DoxyCodeLine{19 \textcolor{preprocessor}{        \#endif}}
\DoxyCodeLine{20 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{21 \textcolor{preprocessor}{        \#define OSMO\_STREAM\_MAX\_ADDRS 1}}
\DoxyCodeLine{22 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{23 }
\DoxyCodeLine{26 \textcolor{keyword}{enum} osmo\_stream\_mode \{}
\DoxyCodeLine{27         OSMO\_STREAM\_MODE\_UNKNOWN,}
\DoxyCodeLine{28         OSMO\_STREAM\_MODE\_OSMO\_FD,}
\DoxyCodeLine{29         OSMO\_STREAM\_MODE\_OSMO\_IO,}
\DoxyCodeLine{30 \};}
\DoxyCodeLine{31 }
\DoxyCodeLine{32 \textcolor{keyword}{struct }osmo\_io\_fd;}
\DoxyCodeLine{33 \textcolor{keyword}{struct }msghdr;}
\DoxyCodeLine{34 }
\DoxyCodeLine{35 \textcolor{keywordtype}{int} stream\_sctp\_sock\_activate\_events(\textcolor{keywordtype}{int} fd);}
\DoxyCodeLine{36 \textcolor{keywordtype}{int} stream\_setsockopt\_nodelay(\textcolor{keywordtype}{int} fd, \textcolor{keywordtype}{int} proto, \textcolor{keywordtype}{int} on);}
\DoxyCodeLine{37 \textcolor{keywordtype}{int} stream\_sctp\_recvmsg\_wrapper(\textcolor{keywordtype}{int} fd, \textcolor{keyword}{struct} msgb *msg, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *log\_pfx);}
\DoxyCodeLine{38 }
\DoxyCodeLine{39 \textcolor{keywordtype}{int} stream\_iofd\_sctp\_send\_msgb(\textcolor{keyword}{struct} osmo\_io\_fd *iofd, \textcolor{keyword}{struct} msgb *msg, \textcolor{keywordtype}{int} sendmsg\_flags);}
\DoxyCodeLine{40 \textcolor{keywordtype}{int} stream\_iofd\_sctp\_recvmsg\_trailer(\textcolor{keyword}{struct} osmo\_io\_fd *iofd, \textcolor{keyword}{struct} msgb *msg, \textcolor{keywordtype}{int} ret, \textcolor{keyword}{const} \textcolor{keyword}{struct} msghdr *msgh);}
\DoxyCodeLine{41 }

\end{DoxyCode}
