Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of libMiMic by
NyLPC_cIPv4Payload_protected.h
00001 /********************************************************************************* 00002 * PROJECT: MiMic 00003 * -------------------------------------------------------------------------------- 00004 * 00005 * This file is part of MiMic 00006 * Copyright (C)2011 Ryo Iizuka 00007 * 00008 * MiMic is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU Lesser General Public License as published 00010 * by the Free Software Foundation, either version 3 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * This program is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public License 00019 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00020 * 00021 * For further information please contact. 00022 * http://nyatla.jp/ 00023 * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp> 00024 * 00025 * 00026 * Parts of this file were leveraged from uIP: 00027 * 00028 * Copyright (c) 2001-2003, Adam Dunkels. 00029 * All rights reserved. 00030 * 00031 * Redistribution and use in source and binary forms, with or without 00032 * modification, are permitted provided that the following conditions 00033 * are met: 00034 * 1. Redistributions of source code must retain the above copyright 00035 * notice, this list of conditions and the following disclaimer. 00036 * 2. Redistributions in binary form must reproduce the above copyright 00037 * notice, this list of conditions and the following disclaimer in the 00038 * documentation and/or other materials provided with the distribution. 00039 * 3. The name of the author may not be used to endorse or promote 00040 * products derived from this software without specific prior 00041 * written permission. 00042 * 00043 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 00044 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00045 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00046 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 00047 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00048 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 00049 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00050 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00051 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00052 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00053 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00054 */ 00055 #ifndef NYLPC_CIPV4PAYLOAD_PROTECTED_H_ 00056 #define NYLPC_CIPV4PAYLOAD_PROTECTED_H_ 00057 00058 #include "NyLPC_cIPv4Payload.h" 00059 #include "NyLPC_cIPv4.h" 00060 #include "NyLPC_cMiMicIpUdpSocket.h" 00061 00062 #ifdef __cplusplus 00063 extern "C" { 00064 #endif /* __cplusplus */ 00065 00066 #define TCP_FIN 0x01 00067 #define TCP_SYN 0x02 00068 #define TCP_RST 0x04 00069 #define TCP_PSH 0x08 00070 #define TCP_ACK 0x10 00071 #define TCP_URG 0x20 00072 #define TCP_CTL 0x3f 00073 00074 00075 00076 00077 void NyLPC_cIPv4Payload_initialize(NyLPC_TcIPv4Payload_t* i_inst); 00078 #define NyLPC_cIPv4Payload_finalize(i) 00079 00080 /** 00081 * アタッチされているバッファを返します。 00082 */ 00083 #define NyLPC_cIPv4Payload_getBuf(i) ((i)->header) 00084 00085 00086 00087 void NyLPC_cIPv4Payload_attachTxBuf(NyLPC_TcIPv4Payload_t* i_inst,void* i_buf); 00088 const void* NyLPC_cIPv4Payload_detachBuf(NyLPC_TcIPv4Payload_t* i_inst); 00089 00090 NyLPC_TBool NyLPC_cIPv4Payload_attachRxBuf(NyLPC_TcIPv4Payload_t* i_inst,const void* i_buf,NyLPC_TUInt16 i_flagment_size); 00091 void NyLPC_cIPv4Payload_setTcpReverseRstAck( 00092 NyLPC_TcIPv4Payload_t* i_inst); 00093 void NyLPC_cIPv4Payload_setTcpReverseRstAck2( 00094 NyLPC_TcIPv4Payload_t* i_inst, 00095 const NyLPC_TcIPv4Payload_t* i_src); 00096 00097 00098 00099 00100 /** 00101 * UDPの送信バッファを初期化します。 00102 */ 00103 void* NyLPC_cIPv4Payload_initUdpTx(NyLPC_TcIPv4Payload_t* i_inst,NyLPC_TUInt8 i_iph_word,NyLPC_TUInt16 i_tcp_payload_size); 00104 /** 00105 * UDPの送信情報を設定します。 00106 */ 00107 void NyLPC_cIPv4Payload_setUdpTxHeaderByConnection(NyLPC_TcIPv4Payload_t* i_inst,const struct uip_udp_conn* i_conn,const struct NyLPC_TIPv4Addr* i_dest_ip,NyLPC_TUInt16 i_dest_port); 00108 00109 void NyLPC_cIPv4Payload_closeUdpTxPacket( 00110 NyLPC_TcIPv4Payload_t* i_inst); 00111 00112 00113 void NyLPC_TcIPv4TxPacket_initialize_icomp(NyLPC_TcIPv4Payload_t* i_inst,void* i_buf,NyLPC_TUInt8 i_iph_word,NyLPC_TUInt16 i_tcp_payload_size); 00114 00115 00116 00117 #ifdef __cplusplus 00118 } 00119 #endif /* __cplusplus */ 00120 00121 #endif /* NYLPC_CIPV4PAYLOAD_PROTECTED_H_ */ 00122
Generated on Tue Jul 12 2022 16:22:57 by
1.7.2
