00001 /* 00002 Copyright (C) 2006-2007 Werner Dittmann 00003 00004 This program is free software: you can redistribute it and/or modify 00005 it under the terms of the GNU General Public License as published by 00006 the Free Software Foundation, either version 3 of the License, or 00007 (at your option) any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program. If not, see <http://www.gnu.org/licenses/>. 00016 */ 00017 00018 /* 00019 * Authors: Werner Dittmann <Werner.Dittmann@t-online.de> 00020 */ 00021 00022 #include <libzrtpcpp/ZrtpPacketConfirm.h> 00023 00024 ZrtpPacketConfirm::ZrtpPacketConfirm(uint8_t sl) { 00025 DEBUGOUT((fprintf(stdout, "Creating Confirm packet without data\n"))); 00026 00027 int32_t length = sizeof(ConfirmPacket_t) + (sl * ZRTP_WORD_SIZE) + CRC_SIZE; 00028 00029 void* allocated = &data; 00030 memset(allocated, 0, length); 00031 00032 zrtpHeader = (zrtpPacketHeader_t *)&((ConfirmPacket_t *)allocated)->hdr; // the standard header 00033 confirmHeader = (Confirm_t *)&((ConfirmPacket_t *)allocated)->confirm; 00034 00035 setZrtpId(); 00036 setLength((length - CRC_SIZE) / 4); 00037 } 00038 00039 ZrtpPacketConfirm::ZrtpPacketConfirm(uint8_t* data) { 00040 DEBUGOUT((fprintf(stdout, "Creating Confirm packet from data\n"))); 00041 00042 allocated = NULL; 00043 zrtpHeader = (zrtpPacketHeader_t *)&((ConfirmPacket_t *)data)->hdr; // the standard header 00044 confirmHeader = (Confirm_t *)&((ConfirmPacket_t *)data)->confirm; 00045 } 00046 00047 ZrtpPacketConfirm::~ZrtpPacketConfirm() { 00048 DEBUGOUT((fprintf(stdout, "Deleting Confirm packet: alloc: %x\n", allocated))); 00049 }