Esempio n. 1
0
        private int HandleSetLinkInfo(byte[] buffer, int len)
        {
            fixed(byte *p = buffer)
            {
                SetLinkInfo *o = (SetLinkInfo *)p;

                if (len < 24)
                {
                    return(-2201);
                }

                if (ntohs(o->Length) < 24)
                {
                    return(-2201);
                }

                if (15 != ntohs(o->ControlMessageType))
                {
                    return(-2202);
                }

                RasdialClient.SendACCM    = o->SendACCM;
                RasdialClient.ReceiveACCM = o->ReceiveACCM;
            }

            return(0);
        }
Esempio n. 2
0
        private int ProcessReceived(byte[] buffer, int len)
        {
            if (buffer == null)
            {
                CloseOrAbort(true);
                return(-2001);
            }

            if (buffer.Length <= 0)
            {
                CloseOrAbort(true);
                return(-2002);
            }

            if (len == 0)
            {
                CloseOrAbort(false);
                return(-2003);
            }
            else if (len < 0)
            {
                CloseOrAbort(true);
                return(-2004);
            }

            if (m_bState == 0)
            {
                return(HandleConnectionRequest(buffer, len));
            }
            else if (m_bState == 1)
            {
                return(HandleOutgoingCallRequest(buffer, len));
            }
            else if (m_bState == 2)
            {
                int HR = HandleSetLinkInfo(buffer, len);
                m_bState++;
                return(HR);
            }
            else if (m_bState == 3)
            {
                int HR = HandleSetLinkInfo(buffer, len);
                fixed(byte *p = buffer)
                {
                    SetLinkInfo *o = (SetLinkInfo *)p;

                    o->PeersCallID = ntohs(RasdialClient.PeersCallId);
                    o->Reserved0   = ntohs(RasdialClient.SelfCallId);
                }

                SendMessage(buffer, 0, sizeof(SetLinkInfo));
                m_bState++;
                return(HR);
            }
            else
            {
                return(0);
            }
        }