blob: eb2924f399a79a750652e6a91b0f0c9bf15df50d [file] [log] [blame]
/*
Copyright (C) 2006-2013 Werner Dittmann
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _ZRTPPACKETPINGACK_H_
#define _ZRTPPACKETPINGACK_H_
#include <libzrtpcpp/ZrtpPacketBase.h>
/**
* @file ZrtpPacketPingAck.h
* @brief The ZRTP PingAck message
*
* @ingroup GNU_ZRTP
* @{
*/
/**
* Implement the PingAck packet.
*
* The ZRTP simple message PingAck.
*
* @author Werner Dittmann <Werner.Dittmann@t-online.de>
*/
class __EXPORT ZrtpPacketPingAck : public ZrtpPacketBase {
protected:
PingAck_t* pingAckHeader; ///< Points to PingAck message
public:
/// Creates a PingAck message with default data
ZrtpPacketPingAck();
/// Creates a PingAck message from received data
ZrtpPacketPingAck(uint8_t* data);
virtual ~ZrtpPacketPingAck();
/// Get SSRC from PingAck message
uint32_t getSSRC() { return zrtpNtohl(pingAckHeader->ssrc); };
/// Set ZRTP protocol version field, fixed ASCII character array
void setVersion(uint8_t *text) { memcpy(pingAckHeader->version, text, ZRTP_WORD_SIZE ); }
/// Set SSRC in PingAck message
void setSSRC(uint32_t data) {pingAckHeader->ssrc = zrtpHtonl(data); };
/// Set remote endpoint hash, fixed byte array
void setRemoteEpHash(uint8_t *hash) { memcpy(pingAckHeader->remoteEpHash, hash, sizeof(pingAckHeader->remoteEpHash)); }
/// Set local endpoint hash, fixed byte array
void setLocalEpHash(uint8_t *hash) { memcpy(pingAckHeader->localEpHash, hash, sizeof(pingAckHeader->localEpHash)); }
private:
PingAckPacket_t data;
};
/**
* @}
*/
#endif // ZRTPPACKETCLEARACK