📄 configgen.cpp
字号:
////////////////////////////////////////////////////////////////////////////////////////
//
// This file contains the helper functions to create,save,process the source and header
// files that are generated.
//
#include "stdafx.h"
#include "TCPIPplugin.h"
#include "classtemplate.h"
#include <afxdlgs.h>
#include "resource.h"
#include "generalpage.h"
#include "NetworkIfce0.h"
#include "NetworkIfce1.h"
#include "ip.h"
#include "tcp.h"
#include "debug.h"
#include "configgen.h"
static char protocol_sec[] = "Protocols";
static char stats_sec[] = "Stats";
static char ip_sec[] = "Ip";
static char tcp_sec[] = "Tcp";
static char nw0_sec[] = "NWIfce0";
static char nw1_sec[] = "NWIfce1";
static char debug_sec[] = "Debug";
static char trace_sec[] = "Trace";
static char memory_sec[] = "Memory";
#define INT_TO_BOOL(_val) ((_val) ? (true) : (false))
void ConvertBinaryMacToText(const char *bmac, char *tm);
void ConvertTextMacToBinary(const char *tm, char *bm);
// configuration header memory must
bool LoadConfigHeaderData(char *cfg_filename,ConfigHeaderStruct *cfg_header_struct)
{
char tbuf[80];
char *end_ptr;
///////////////////////////////////////////////////////////
// Protocols (General Property Page)
//
GetPrivateProfileString(protocol_sec,"Protocol_ALL",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->proto_all = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(protocol_sec,"Protocol_TCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->proto_tcp = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(protocol_sec,"Protocol_UDP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->proto_udp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(protocol_sec,"Protocol_ICMP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->proto_icmp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(protocol_sec,"Protocol_DHCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->proto_dhcp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
////////////////////////////////////////////////////////////////
// Statistics
//
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(stats_sec,"Stats_ALL",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->stats_all = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(stats_sec,"Stats_TCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->stats_tcp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(stats_sec,"Stats_UDP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->stats_udp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(stats_sec,"Stats_ICMP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->stats_icmp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(stats_sec,"Stats_IP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->stats_ip = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(stats_sec,"Stats_LINK",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->stats_link = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
//////////////////////////////////////////////////////////////////
// IP Options (IP Property Page)
//
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(ip_sec,"IP_forward",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->ip_forward = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(ip_sec,"IP_fragmentation",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->ip_fragmentation = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(ip_sec,"IP_options",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->ip_options = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(ip_sec,"IP_reassembly",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->ip_reassembly = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(ip_sec,"IP_multiple_networks",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->multiple_networks = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(ip_sec,"IP_num_networks",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->num_networks = strtol(tbuf,&end_ptr,10);
//////////////////////////////////////////////////////////////////
// TCP options (TCP Property Page)
//
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(tcp_sec,"TCP_Mss",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->tcp_mss = strtol(tbuf,&end_ptr,10);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(tcp_sec,"TCP_WndSz",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->tcp_wndsz = strtol(tbuf,&end_ptr,10);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(tcp_sec,"TCP_NoUdpConn",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->no_udp_conn = strtol(tbuf,&end_ptr,10);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(tcp_sec,"TCP_NoTcpConn",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->no_tcp_conn = strtol(tbuf,&end_ptr,10);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(tcp_sec,"TCP_NoListenConn",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->no_listen_conn= strtol(tbuf,&end_ptr,10);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(tcp_sec,"TCP_NoSockets",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->no_sockets = strtol(tbuf,&end_ptr,10);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(tcp_sec,"TCP_ArpTBSz",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->arp_tbsz = strtol(tbuf,&end_ptr,10);
/////////////////////////////////////////////////////////////////
//
// Debug Options (Debug Property Page)
//
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(debug_sec,"Debug_ALL",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->debug_all = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(debug_sec,"Debug_APILIB",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->debug_apilib = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(debug_sec,"Debug_TCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->debug_tcp = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(debug_sec,"Debug_UDP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->debug_udp = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(debug_sec,"Debug_IP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->debug_ip = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(debug_sec,"Debug_SOCKETS",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->debug_sockets = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(debug_sec,"Debug_MEM",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->debug_mem = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(debug_sec,"Debug_MEMP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->debug_memp = INT_TO_BOOL(atoi(tbuf));
//////// Tracing ////////////////////////////////////////////////
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(trace_sec,"TraceEnable",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->trace_enable = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(trace_sec,"Trace_TCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->tcp_pkt_dump = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(trace_sec,"Trace_UDP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->udp_pkt_dump = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(trace_sec,"Trace_IP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->ip_pkt_dump = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(trace_sec,"Trace_ICMP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->icmp_pkt_dump = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(trace_sec,"Trace_ARP",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->arp_pkt_dump = INT_TO_BOOL(atoi(tbuf));
//////////////////////////////////////////////////////////////
// Memory
//
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(memory_sec,"Mem_Pool_Start_Addr",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->pool_start_addr= strtol(tbuf,&end_ptr,10);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(memory_sec,"Mem_Pool_Size",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->pool_size= strtol(tbuf,&end_ptr,10);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(memory_sec,"Mem_Alignment",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->mem_alignment = atoi(tbuf);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(memory_sec,"Mem_Ram_Size",NULL,tbuf,sizeof(tbuf),cfg_filename);
cfg_header_struct->ram_size = atoi(tbuf);
return true;
}
bool LoadConfigSourceData(char *cfg_filename,ConfigSourceStruct *cfg_source_struct)
{
network_ifce *pNwIfce;
char tbuf[80];
char *end_ptr;
// Fill interface 0
pNwIfce = &cfg_source_struct->nw_ifces[0];
if(!pNwIfce) return false;
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_usedhcp",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->use_dhcp = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_ipaddr",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->ip_addr = strtoul(tbuf,&end_ptr,16);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_subnetmask",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->subnet_mask = strtoul(tbuf,&end_ptr,16);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_gateway",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->default_gateway = strtoul(tbuf,&end_ptr,16);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_rxbufs",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->rx_bufs = atoi(tbuf);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_rxbufsz",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->rx_buf_sz = atoi(tbuf);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_txbufs",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->tx_bufs = atoi(tbuf);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_txbufsz",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->tx_buf_sz = atoi(tbuf);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw0_sec,"NI0_macaddr",NULL,tbuf,sizeof(tbuf),cfg_filename);
tbuf[12] = '\0';
ConvertTextMacToBinary(tbuf,pNwIfce->mac_addr);
///////////////////////////////////////////
pNwIfce = &cfg_source_struct->nw_ifces[1];
if(!pNwIfce) return false;
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw1_sec,"NI1_usedhcp",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->use_dhcp = INT_TO_BOOL(atoi(tbuf));
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw1_sec,"NI1_ipaddr",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->ip_addr = strtoul(tbuf,&end_ptr,16);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw1_sec,"NI1_subnetmask",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->subnet_mask = strtoul(tbuf,&end_ptr,16);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw1_sec,"NI1_gateway",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->default_gateway = strtoul(tbuf,&end_ptr,16);
memset(tbuf,0,sizeof(tbuf));
GetPrivateProfileString(nw1_sec,"NI1_rxbufs",NULL,tbuf,sizeof(tbuf),cfg_filename);
pNwIfce->rx_bufs = atoi(tbuf);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -