\hypertarget{classAcceptSession}{
\section{AcceptSession Class Reference}
\label{classAcceptSession}\index{AcceptSession@{AcceptSession}}
}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classAcceptSession_ad571fbad37e8f07acf1f6251b8c6313d}{
{\bfseries AcceptSession} (\hyperlink{classBGPPeer}{BGPPeer} \&peer, \hyperlink{classXorpFd}{XorpFd} sock)}
\label{classAcceptSession_ad571fbad37e8f07acf1f6251b8c6313d}

\item 
\hypertarget{classAcceptSession_a0f2dd49cf347abb371a7857f922b0cdf}{
void \hyperlink{classAcceptSession_a0f2dd49cf347abb371a7857f922b0cdf}{start} ()}
\label{classAcceptSession_a0f2dd49cf347abb371a7857f922b0cdf}

\begin{DoxyCompactList}\small\item\em Start \hyperlink{protocolthe-p}{the} FSM. \item\end{DoxyCompactList}\item 
void \hyperlink{classAcceptSession_a7726ab9dc3fbd9ab1c76db61923a2d17}{no\_\-open\_\-received} ()
\begin{DoxyCompactList}\small\item\em Timeout routine that is called if no messages are seen from \hyperlink{protocolthe-p}{the} peer. \item\end{DoxyCompactList}\item 
void \hyperlink{classAcceptSession_a4710b27c3d5e0d701b3a18856f6bfb66}{remove} ()
\begin{DoxyCompactList}\small\item\em This FSM has done its job signal to \hyperlink{protocolthe-p}{the} peer to remove this class. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_aedc0cc3dc9a92b95d5d58a13be0d06ae}{
void \hyperlink{classAcceptSession_aedc0cc3dc9a92b95d5d58a13be0d06ae}{send\_\-notification\_\-accept} (const \hyperlink{classNotificationPacket}{NotificationPacket} \&np)}
\label{classAcceptSession_aedc0cc3dc9a92b95d5d58a13be0d06ae}

\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} a notification. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_a60cce233da45a757e44e2c0607b0eabb}{
void \hyperlink{classAcceptSession_a60cce233da45a757e44e2c0607b0eabb}{send\_\-notification\_\-cb} (SocketClient::Event ev, const uint8\_\-t $\ast$buf)}
\label{classAcceptSession_a60cce233da45a757e44e2c0607b0eabb}

\begin{DoxyCompactList}\small\item\em Notification callback. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_a7990983e8b97bdc375ae968a849b576b}{
void \hyperlink{classAcceptSession_a7990983e8b97bdc375ae968a849b576b}{cease} ()}
\label{classAcceptSession_a7990983e8b97bdc375ae968a849b576b}

\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} a cease. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_a8ed5a4759f9e48db34dd716dd6d1fc1e}{
void \hyperlink{classAcceptSession_a8ed5a4759f9e48db34dd716dd6d1fc1e}{collision} ()}
\label{classAcceptSession_a8ed5a4759f9e48db34dd716dd6d1fc1e}

\begin{DoxyCompactList}\small\item\em The main FSM is in state OPENCONFIRM so both IDs are available to resolve \hyperlink{protocolthe-p}{the} collision. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_a908ea09e1fb6e38a21144470e2470f9e}{
void \hyperlink{classAcceptSession_a908ea09e1fb6e38a21144470e2470f9e}{event\_\-openmess\_\-accept} (const \hyperlink{classOpenPacket}{OpenPacket} \&p)}
\label{classAcceptSession_a908ea09e1fb6e38a21144470e2470f9e}

\begin{DoxyCompactList}\small\item\em An open message has just been received on \hyperlink{protocolthe-p}{the} accept socket decide and keep \hyperlink{protocolthe-p}{the} winner. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_a28e14d4cc0e7c729edab3f77ac9f3069}{
void \hyperlink{classAcceptSession_a28e14d4cc0e7c729edab3f77ac9f3069}{swap\_\-sockets} ()}
\label{classAcceptSession_a28e14d4cc0e7c729edab3f77ac9f3069}

\begin{DoxyCompactList}\small\item\em Swap \hyperlink{protocolthe-p}{the} socket in this class with \hyperlink{protocolthe-p}{the} one in \hyperlink{protocolthe-p}{the} main FSM. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_af909f30bccb97ad3f132375b9fdc5a81}{
void \hyperlink{classAcceptSession_af909f30bccb97ad3f132375b9fdc5a81}{swap\_\-sockets} (const \hyperlink{classOpenPacket}{OpenPacket} \&p)}
\label{classAcceptSession_af909f30bccb97ad3f132375b9fdc5a81}

\begin{DoxyCompactList}\small\item\em Replace this socket with \hyperlink{protocolthe-p}{the} one in \hyperlink{protocolthe-p}{the} main FSM and feed in an open packet. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_ad948dfb812bfebd31cea50871cee7ebe}{
void {\bfseries notify\_\-peer\_\-of\_\-error\_\-accept} (const int error, const int subcode=UNSPECIFIED, const uint8\_\-t $\ast$data=0, const size\_\-t len=0)}
\label{classAcceptSession_ad948dfb812bfebd31cea50871cee7ebe}

\item 
\hypertarget{classAcceptSession_a53ab8ee97ce7ad55a8c3297f65a917a8}{
void {\bfseries event\_\-tranfatal\_\-accept} ()}
\label{classAcceptSession_a53ab8ee97ce7ad55a8c3297f65a917a8}

\item 
\hypertarget{classAcceptSession_a10e5cb5814aecc56315ca3fdde276910}{
void \hyperlink{classAcceptSession_a10e5cb5814aecc56315ca3fdde276910}{event\_\-closed\_\-accept} ()}
\label{classAcceptSession_a10e5cb5814aecc56315ca3fdde276910}

\begin{DoxyCompactList}\small\item\em Called if \hyperlink{protocolthe-p}{the} TCP connection is closed. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_ab9cb5e9ebcb3c947fd6b7c9c71c99629}{
void \hyperlink{classAcceptSession_ab9cb5e9ebcb3c947fd6b7c9c71c99629}{event\_\-keepmess\_\-accept} ()}
\label{classAcceptSession_ab9cb5e9ebcb3c947fd6b7c9c71c99629}

\begin{DoxyCompactList}\small\item\em Called if a keepalive message is seen. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_a1ee656cb69db53756194004dd7bc887b}{
void \hyperlink{classAcceptSession_a1ee656cb69db53756194004dd7bc887b}{event\_\-recvupdate\_\-accept} (const \hyperlink{classUpdatePacket}{UpdatePacket} \&p)}
\label{classAcceptSession_a1ee656cb69db53756194004dd7bc887b}

\begin{DoxyCompactList}\small\item\em Called if a update message is seen. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_ac270613c22049c8a8257ce00fa5aa9f1}{
void \hyperlink{classAcceptSession_ac270613c22049c8a8257ce00fa5aa9f1}{event\_\-recvnotify\_\-accept} (const \hyperlink{classNotificationPacket}{NotificationPacket} \&p)}
\label{classAcceptSession_ac270613c22049c8a8257ce00fa5aa9f1}

\begin{DoxyCompactList}\small\item\em Called if a notify message is seen. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_a645bfb0b399aa5ed2569f4b858b73935}{
bool \hyperlink{classAcceptSession_a645bfb0b399aa5ed2569f4b858b73935}{get\_\-message\_\-accept} (\hyperlink{classBGPPacket_a7558c3d07c1ac60abf3253e012964147}{BGPPacket::Status} status, const uint8\_\-t $\ast$buf, size\_\-t len, \hyperlink{classSocketClient}{SocketClient} $\ast$socket\_\-client)}
\label{classAcceptSession_a645bfb0b399aa5ed2569f4b858b73935}

\begin{DoxyCompactList}\small\item\em Handle incoming messages. \item\end{DoxyCompactList}\item 
\hypertarget{classAcceptSession_aa55b7a7e58e7d246e3fb083140f609a8}{
bool {\bfseries is\_\-connected} ()}
\label{classAcceptSession_aa55b7a7e58e7d246e3fb083140f609a8}

\item 
\hypertarget{classAcceptSession_a7f7c8a61f26df1699dcbdd94ea659f78}{
bool {\bfseries still\_\-reading} ()}
\label{classAcceptSession_a7f7c8a61f26df1699dcbdd94ea659f78}

\item 
\hypertarget{classAcceptSession_a06fc3042ffed7044953f3e435b127a1b}{
void {\bfseries ignore\_\-message} ()}
\label{classAcceptSession_a06fc3042ffed7044953f3e435b127a1b}

\item 
\hypertarget{classAcceptSession_add13db34a0228838f202529224f452e2}{
bool {\bfseries accept\_\-message} () const }
\label{classAcceptSession_add13db34a0228838f202529224f452e2}

\item 
\hypertarget{classAcceptSession_a46e8e08cd565690f50e054d47ff9a152}{
string {\bfseries str} ()}
\label{classAcceptSession_a46e8e08cd565690f50e054d47ff9a152}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classAcceptSession_aee925f988849132619f18e634e3ee865}{
\hyperlink{classBGPMain}{BGPMain} $\ast$ {\bfseries main} ()}
\label{classAcceptSession_aee925f988849132619f18e634e3ee865}

\item 
\hypertarget{classAcceptSession_a5dff8d2bf901fc81b2837a9f00d297e2}{
FSMState {\bfseries state} ()}
\label{classAcceptSession_a5dff8d2bf901fc81b2837a9f00d297e2}

\item 
\hypertarget{classAcceptSession_aad3c0b101b4e890939d426bab2cc1f61}{
const \hyperlink{classBGPPeerData}{BGPPeerData} $\ast$ {\bfseries peerdata} () const }
\label{classAcceptSession_aad3c0b101b4e890939d426bab2cc1f61}

\item 
\hypertarget{classAcceptSession_a035c8178df65201d2319cfb511b1c252}{
bool {\bfseries running\_\-idle\_\-hold\_\-timer} () const }
\label{classAcceptSession_a035c8178df65201d2319cfb511b1c252}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classAcceptSession_a1431219dc342ff9af0c900404f31b90a}{
\hyperlink{classBGPPeer}{BGPPeer} \& {\bfseries \_\-peer}}
\label{classAcceptSession_a1431219dc342ff9af0c900404f31b90a}

\item 
\hypertarget{classAcceptSession_a84bcb56f0ad3a92e33de62fed45423cb}{
\hyperlink{classXorpFd}{XorpFd} {\bfseries \_\-sock}}
\label{classAcceptSession_a84bcb56f0ad3a92e33de62fed45423cb}

\item 
\hypertarget{classAcceptSession_a42bfe42d3c5bd4cf958373535c7ff5b6}{
\hyperlink{classSocketClient}{SocketClient} $\ast$ {\bfseries \_\-socket\_\-client}}
\label{classAcceptSession_a42bfe42d3c5bd4cf958373535c7ff5b6}

\item 
\hypertarget{classAcceptSession_ae58c1a08a3614a17aa2af608333040bd}{
bool {\bfseries \_\-accept\_\-messages}}
\label{classAcceptSession_ae58c1a08a3614a17aa2af608333040bd}

\item 
\hypertarget{classAcceptSession_a7d29bc65659793255443d65ca661000e}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-open\_\-wait}}
\label{classAcceptSession_a7d29bc65659793255443d65ca661000e}

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classAcceptSession_a7726ab9dc3fbd9ab1c76db61923a2d17}{
\index{AcceptSession@{AcceptSession}!no\_\-open\_\-received@{no\_\-open\_\-received}}
\index{no\_\-open\_\-received@{no\_\-open\_\-received}!AcceptSession@{AcceptSession}}
\subsubsection[{no\_\-open\_\-received}]{\setlength{\rightskip}{0pt plus 5cm}void AcceptSession::no\_\-open\_\-received (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classAcceptSession_a7726ab9dc3fbd9ab1c76db61923a2d17}


Timeout routine that is called if no messages are seen from \hyperlink{protocolthe-p}{the} peer. 

Ideally an open message should be seen from \hyperlink{protocolthe-p}{the} peer. \hypertarget{classAcceptSession_a4710b27c3d5e0d701b3a18856f6bfb66}{
\index{AcceptSession@{AcceptSession}!remove@{remove}}
\index{remove@{remove}!AcceptSession@{AcceptSession}}
\subsubsection[{remove}]{\setlength{\rightskip}{0pt plus 5cm}void AcceptSession::remove (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classAcceptSession_a4710b27c3d5e0d701b3a18856f6bfb66}


This FSM has done its job signal to \hyperlink{protocolthe-p}{the} peer to remove this class. 

This should be \hyperlink{protocolthe-p}{the} last method to be called in any methods. 

The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/bgp/peer.hh\item 
/home/greearb/git/xorp.ct.github/xorp/bgp/peer.cc\end{DoxyCompactItemize}
