617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan/*******************************************************************************
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * Copyright (C) 2004-2008 Intel Corp. All rights reserved.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * Redistribution and use in source and binary forms, with or without
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * modification, are permitted provided that the following conditions are met:
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Redistributions of source code must retain the above copyright notice,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * this list of conditions and the following disclaimer.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Redistributions in binary form must reproduce the above copyright notice,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * this list of conditions and the following disclaimer in the documentation
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * and/or other materials provided with the distribution.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Neither the name of Intel Corp. nor the names of its
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * contributors may be used to endorse or promote products derived from this
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * software without specific prior written permission.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * ARE DISCLAIMED. IN NO EVENT SHALL Intel Corp. OR THE CONTRIBUTORS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * POSSIBILITY OF SUCH DAMAGE.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan *******************************************************************************/
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEDisconnectMessage(APF_DISCONNECT_REASON_CODE reasonCode) :
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEServiceRequestMessage(std::string serviceName = "") :
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEProtocolVersionMessage(UINT32 majorVersion = 0,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan APF_TRIGGER_REASON triggerReason = LME_REQUEST) :
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan struct LMEProtocolVersionMessage &operator=(const struct LMEProtocolVersionMessage &y)
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan if (this != &y) {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool operator<(const struct LMEProtocolVersionMessage &y) const
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool operator>(const struct LMEProtocolVersionMessage &y) const
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEUserAuthRequestMessage(std::string username = "",
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganstruct LMETcpForwardRequestMessage : LMEGlobalRequestMessage {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMETcpForwardRequestMessage(std::string address = "", UINT32 port = 0) :
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganstruct LMETcpForwardCancelRequestMessage : LMEGlobalRequestMessage {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMETcpForwardCancelRequestMessage(std::string address = "", UINT32 port = 0) :
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEGlobalRequestMessage(TCP_FORWARD_CANCEL_REQUEST),
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganstruct LMEUdpSendToMessage : LMEGlobalRequestMessage {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEUdpSendToMessage(std::string address = "", UINT32 port = 0,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganstruct LMEChannelOpenRequestMessage : LMEMessage {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEChannelOpenRequestMessage(CHANNEL_TYPE channelType = FORWARDED,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganstruct LMEChannelOpenReplaySuccessMessage : LMEMessage {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEChannelOpenReplaySuccessMessage(UINT32 recipientChannel = 0,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganstruct LMEChannelOpenReplayFailureMessage : LMEMessage {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEChannelOpenReplayFailureMessage(UINT32 recipientChannel = 0,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan OPEN_FAILURE_REASON reasonCode = OPEN_FAILURE_REASON_ADMINISTRATIVELY_PROHIBITED) :
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEChannelCloseMessage(UINT32 recipientChannel = 0) :
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEChannelDataMessage(UINT32 recipientChannel = 0,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganstruct LMEChannelWindowAdjustMessage : LMEMessage {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan LMEChannelWindowAdjustMessage(UINT32 recipientChannel = 0,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef void (*HECICallback)(void *param, void *buffer, unsigned int len, int *status);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool Disconnect(APF_DISCONNECT_REASON_CODE reasonCode);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool ProtocolVersion(const LMEProtocolVersionMessage versionMessage);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool ChannelOpenForwardedRequest(UINT32 sender, UINT32 connectedPort,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan std::string originatorIP, UINT32 originatorPort);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool ChannelOpenReplaySuccess(UINT32 recipient, UINT32 sender);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool ChannelOpenReplayFailure(UINT32 recipient, UINT32 reason);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan int ChannelData(UINT32 recipient, UINT32 len, unsigned char *buffer);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool ChannelWindowAdjust(UINT32 recipient, UINT32 len);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan //BACKWARD COMPATIBLE PUBLIC - BEGIN
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool CompatOpenConnection(in_port_t mePort, ATAddress addr, unsigned int &connID);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan int CompatSendMessage(UINT8 connID, UINT32 len, unsigned char *buffer);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan void CompatCloseConnection(int connID, int status);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan //BACKWARD COMPATIBLE PUBLIC - END
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan unsigned int GetHeciBufferSize() const;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan int _receiveMessage(unsigned char *buffer, int len);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan int _sendMessage(unsigned char *buffer, int len);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan bool _checkMinMsgSize(unsigned char *buf, unsigned int bytesRead);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan void _apfGlobalRequest(unsigned char *rxBuffer, unsigned int bytesRead, int *status);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan void _apfUserAuthRequest(unsigned char *rxBuffer, unsigned int bytesRead, int *status);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan void _apfChannelOpen(unsigned char *rxBuffer, unsigned int bytesRead, int *status);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan void _apfChannelOpenDirect(unsigned char *rxBuffer, unsigned int bytesRead, UINT32 *senderChannel, int *status);
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan //BACKWARD COMPATIBLE PRIVATE - BEGIN
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan typedef std::map<int, CompatConnection> CompatConnMap;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan //BACKWARD COMPATIBLE PRIVATE - END