📄 pgpnetprefsfirewallrule.c
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: pgpNetPrefsFirewallRule.c,v 1.14 2002/08/06 20:10:25 dallen Exp $
____________________________________________________________________________*/
#include "pgpConfig.h"
#include <stdio.h>
#include <string.h>
#include "pgpDebug.h"
#include "pgpPubTypes.h"
#include "pgpStrings.h"
#include "pgpNetPrefsFirewallRule.h"
#include "pgpMem.h"
#include "pgpPFLPriv.h"
typedef struct TextEntry
{
PGPUInt32 const number;
const char * const string;
} TextEntry;
#define EN(number, string) { number, string }
static const TextEntry sIPProtocols[] =
{
/* __________________________________________________________________ */
EN( kPGPnetIPProtocol_ICMP, "ICMP" ),
EN( kPGPnetIPProtocol_IGMP, "IGMP" ),
EN( kPGPnetIPProtocol_ggp, "GGP" ),
EN( kPGPnetIPProtocol_ip, "IP in IP" ),
EN( kPGPnetIPProtocol_st, "Stream" ),
EN( kPGPnetIPProtocol_TCP, "TCP" ),
EN( kPGPnetIPProtocol_cbt, "CBT" ),
EN( kPGPnetIPProtocol_egp, "EGP" ),
EN( kPGPnetIPProtocol_igp, "IGP" ),
EN( kPGPnetIPProtocol_bbnrccmon, "BBN-RCC-Mon" ),
EN( kPGPnetIPProtocol_nvp_ii, "NVP-II" ),
EN( kPGPnetIPProtocol_pup, "PUP" ),
EN( kPGPnetIPProtocol_argus, "ARGUS" ),
EN( kPGPnetIPProtocol_emcon, "EMCON" ),
EN( kPGPnetIPProtocol_xnet, "XNet" ),
EN( kPGPnetIPProtocol_chaos, "Chaos" ),
EN( kPGPnetIPProtocol_UDP, "UDP" ),
EN( kPGPnetIPProtocol_mux, "MUX" ),
EN( kPGPnetIPProtocol_dcn_meas, "DCN Measure" ),
EN( kPGPnetIPProtocol_hmp, "HMP" ),
EN( kPGPnetIPProtocol_prm, "PRM" ),
EN( kPGPnetIPProtocol_xns_idp, "XNS-IDP" ),
EN( kPGPnetIPProtocol_trunk1, "Trunk-1" ),
EN( kPGPnetIPProtocol_trunk2, "Trunk-2" ),
EN( kPGPnetIPProtocol_leaf1, "Leaf-1" ),
EN( kPGPnetIPProtocol_leaf2, "Leaf-2" ),
EN( kPGPnetIPProtocol_rdp, "RDP" ),
EN( kPGPnetIPProtocol_irtp, "IRTP" ),
EN( kPGPnetIPProtocol_iso_tp4, "ISO-TP4" ),
EN( kPGPnetIPProtocol_netblt, "NETBLT" ),
EN( kPGPnetIPProtocol_mfe_nsp, "MFE-NSP" ),
EN( kPGPnetIPProtocol_merit_inp, "MERIT-INP" ),
EN( kPGPnetIPProtocol_sep, "SEP" ),
EN( kPGPnetIPProtocol_3pc, "3PC" ),
EN( kPGPnetIPProtocol_idpr, "IDPR" ),
EN( kPGPnetIPProtocol_xtp, "XTP" ),
EN( kPGPnetIPProtocol_ddp, "DDP" ),
EN( kPGPnetIPProtocol_idpr_cmtp, "IDPR-CMTP" ),
EN( kPGPnetIPProtocol_tppp, "TP++" ),
EN( kPGPnetIPProtocol_il, "IL" ),
EN( kPGPnetIPProtocol_sdrp, "SDRP" ),
EN( kPGPnetIPProtocol_idrp, "IDRP" ),
EN( kPGPnetIPProtocol_rsvp, "RSVP" ),
EN( kPGPnetIPProtocol_gre, "GRE" ),
EN( kPGPnetIPProtocol_mhrp, "MHRP" ),
EN( kPGPnetIPProtocol_bna, "BNA" ),
EN( kPGPnetIPProtocol_ESP, "IPsec ESP" ),
EN( kPGPnetIPProtocol_AH, "IPsec AH" ),
EN( kPGPnetIPProtocol_i_nlsp, "I-NLSP" ),
EN( kPGPnetIPProtocol_swipe, "SWIPE" ),
EN( kPGPnetIPProtocol_narp, "NARP" ),
EN( kPGPnetIPProtocol_mobile, "MOBILE" ),
EN( kPGPnetIPProtocol_tlsp, "TLSP" ),
EN( kPGPnetIPProtocol_skip, "SKIP" ),
EN( kPGPnetIPProtocol_cftp, "CFTP" ),
EN( kPGPnetIPProtocol_sat_expak, "SAT-EXPAK" ),
EN( kPGPnetIPProtocol_kryptolan, "Kryptolan" ),
EN( kPGPnetIPProtocol_rvd, "RVD" ),
EN( kPGPnetIPProtocol_ippc, "IPPC" ),
EN( kPGPnetIPProtocol_sat_mon, "SAT-Mon" ),
EN( kPGPnetIPProtocol_visa, "VISA" ),
EN( kPGPnetIPProtocol_ipcv, "IPCV" ),
EN( kPGPnetIPProtocol_cpnx, "CPNX" ),
EN( kPGPnetIPProtocol_cphb, "CPHB" ),
EN( kPGPnetIPProtocol_wsn, "WSN" ),
EN( kPGPnetIPProtocol_pvp, "PVP" ),
EN( kPGPnetIPProtocol_br_sat_mon, "BR-SAT-Mon" ),
EN( kPGPnetIPProtocol_sun_nd, "SUN-ND" ),
EN( kPGPnetIPProtocol_wb_mon, "WB-Mon" ),
EN( kPGPnetIPProtocol_wb_expak, "WB-EXPAK" ),
EN( kPGPnetIPProtocol_iso_ip, "ISO-IP" ),
EN( kPGPnetIPProtocol_vmtp, "VMTP" ),
EN( kPGPnetIPProtocol_secure_vmtp, "SECURE-VMTP" ),
EN( kPGPnetIPProtocol_vines, "VINES" ),
EN( kPGPnetIPProtocol_ttp, "TTP" ),
EN( kPGPnetIPProtocol_nsfnet_igp, "NSFNET-IGP" ),
EN( kPGPnetIPProtocol_dgp, "DGP" ),
EN( kPGPnetIPProtocol_tcf, "TCF" ),
EN( kPGPnetIPProtocol_eigrp, "EIGRP" ),
EN( kPGPnetIPProtocol_ospfigp, "OSPFIGP" ),
EN( kPGPnetIPProtocol_sprite_rpc, "Sprite-RPC" ),
EN( kPGPnetIPProtocol_larp, "LARP" ),
EN( kPGPnetIPProtocol_mtp, "MTP" ),
EN( kPGPnetIPProtocol_ax25, "AX.25" ),
EN( kPGPnetIPProtocol_ipip, "IPIP" ),
EN( kPGPnetIPProtocol_micp, "MICP" ),
EN( kPGPnetIPProtocol_scc_sp, "SCC-SP" ),
EN( kPGPnetIPProtocol_etherip, "ETHERIP" ),
EN( kPGPnetIPProtocol_encap, "ENCAP" ),
EN( kPGPnetIPProtocol_gmtp, "GMTP" ),
EN( kPGPnetIPProtocol_ifmp, "IFMP" ),
EN( kPGPnetIPProtocol_pnni, "PNNI" ),
EN( kPGPnetIPProtocol_pim, "PIM" ),
EN( kPGPnetIPProtocol_aris, "ARIS" ),
EN( kPGPnetIPProtocol_scps, "SCPS" ),
EN( kPGPnetIPProtocol_qnx, "QNX" ),
EN( kPGPnetIPProtocol_an, "A/N" ),
EN( kPGPnetIPProtocol_ipcomp, "IPComp" ),
EN( kPGPnetIPProtocol_snp, "SNP" ),
EN( kPGPnetIPProtocol_compaq_peer, "Compaq-Peer" ),
EN( kPGPnetIPProtocol_ipx_in_ip, "IPX-in-IP" ),
EN( kPGPnetIPProtocol_vrrp, "VRRP" ),
EN( kPGPnetIPProtocol_pgm, "PGM" ),
EN( kPGPnetIPProtocol_l2tp, "L2TP" ),
EN( kPGPnetIPProtocol_ddx, "DDX" ),
EN( kPGPnetIPProtocol_iatp, "IATP" ),
EN( kPGPnetIPProtocol_stp, "STP" ),
EN( kPGPnetIPProtocol_srp, "SRP" ),
EN( kPGPnetIPProtocol_uti, "UTI" ),
EN( kPGPnetIPProtocol_smp, "SMP" ),
EN( kPGPnetIPProtocol_sm, "SM" ),
EN( kPGPnetIPProtocol_ptp, "PTP" ),
EN( kPGPnetIPProtocol_fire, "FIRE" ),
EN( kPGPnetIPProtocol_crtp, "CRTP" ),
EN( kPGPnetIPProtocol_crudp, "CRUDP" ),
EN( kPGPnetIPProtocol_sscopmce, "SSCOPMCE" ),
EN( kPGPnetIPProtocol_iplt, "IPLT" ),
EN( kPGPnetIPProtocol_sps, "SPS" ),
EN( kPGPnetIPProtocol_pipe, "PIPE" ),
EN( kPGPnetIPProtocol_sctp, "SCTP" ),
EN( kPGPnetIPProtocol_fc, "FC" ),
EN( kPGPnetIPProtocol_rsvp_e2e_ignore, "RSVP-E2E-IGNORE" )
};
#define kPGP_NumIPProtocolEntries \
( sizeof( sIPProtocols ) / sizeof( sIPProtocols[ 0 ] ) )
static const TextEntry sICMPTypes[] =
{
/* __________________________________________________________________ */
EN( kPGPnetICMPType_EchoReply, "EchoReply" ),
EN( kPGPnetICMPType_DestUnreachable, "DestUnreachable" ),
EN( kPGPnetICMPType_SourceQuench, "SourceQuench" ),
EN( kPGPnetICMPType_Redirect, "Redirect" ),
EN( kPGPnetICMPType_EchoRequest, "EchoRequest" ),
EN( kPGPnetICMPType_RouterAdvertisement,"RouterAdvertise" ),
EN( kPGPnetICMPType_RouterSolicitation, "RouterSolicit" ),
EN( kPGPnetICMPType_TimeExceeded, "TTL Exceeded" ),
EN( kPGPnetICMPType_ParameterProblem, "ParamError" ),
EN( kPGPnetICMPType_TimestampRequest, "TimestampReq" ),
EN( kPGPnetICMPType_TimestampReply, "TimestampRep" ),
EN( kPGPnetICMPType_InfoRequest, "InfoReq" ),
EN( kPGPnetICMPType_InfoReply, "InfoRep" ),
EN( kPGPnetICMPType_AddressMaskReq, "AddrMaskReq" ),
EN( kPGPnetICMPType_AddressmaskRep, "AddrMaskRep" )
};
#define kPGP_NumICMPTypeEntries \
( sizeof( sICMPTypes ) / sizeof( sICMPTypes[ 0 ] ) )
static const TextEntry sTCPServices[] =
{
/* __________________________________________________________________ */
EN( kPGPnetTCPService_tcpmux, "tcpmux" ),
EN( kPGPnetTCPService_echo, "echo" ),
EN( kPGPnetTCPService_discard, "discard" ),
EN( kPGPnetTCPService_systat, "systat" ),
EN( kPGPnetTCPService_daytime, "daytime" ),
EN( kPGPnetTCPService_netstat, "netstat" ),
EN( kPGPnetTCPService_qotd, "qotd" ),
EN( kPGPnetTCPService_msp, "msp" ),
EN( kPGPnetTCPService_chargen, "chargen" ),
EN( kPGPnetTCPService_ftpdata, "ftpdata" ),
EN( kPGPnetTCPService_ftp, "ftp" ),
EN( kPGPnetTCPService_ssh, "ssh" ),
EN( kPGPnetTCPService_telnet, "telnet" ),
EN( kPGPnetTCPService_smtp, "smtp" ),
EN( kPGPnetTCPService_time, "time" ),
EN( kPGPnetTCPService_rlp, "rlp" ),
EN( kPGPnetTCPService_nameserver, "nameserver" ),
EN( kPGPnetTCPService_whois, "whois" ),
EN( kPGPnetTCPService_remailck, "remailck" ),
EN( kPGPnetTCPService_dns, "dns" ),
EN( kPGPnetTCPService_mtp, "mtp" ),
EN( kPGPnetTCPService_bootps, "bootps" ),
EN( kPGPnetTCPService_bootpc, "bootpc" ),
EN( kPGPnetTCPService_tftp, "tftp" ),
EN( kPGPnetTCPService_gopher, "gopher" ),
EN( kPGPnetTCPService_rje, "rje" ),
EN( kPGPnetTCPService_finger, "finger" ),
EN( kPGPnetTCPService_http, "http" ),
EN( kPGPnetTCPService_link, "link" ),
EN( kPGPnetTCPService_kerberos, "kerberos" ),
EN( kPGPnetTCPService_supdup, "supdup" ),
EN( kPGPnetTCPService_linuxconf, "linuxconf" ),
EN( kPGPnetTCPService_hostnames, "hostnames" ),
EN( kPGPnetTCPService_iso_tsap, "iso-tsap" ),
EN( kPGPnetTCPService_csnet_ns, "csnet-ns" ),
EN( kPGPnetTCPService_poppassd, "poppassd" ),
EN( kPGPnetTCPService_rtelnet, "rtelnet" ),
EN( kPGPnetTCPService_pop2, "pop2" ),
EN( kPGPnetTCPService_pop3, "pop3" ),
EN( kPGPnetTCPService_sunrpc, "sunrpc" ),
EN( kPGPnetTCPService_auth, "auth" ),
EN( kPGPnetTCPService_sftp, "sftp" ),
EN( kPGPnetTCPService_uucppath, "uucppath" ),
EN( kPGPnetTCPService_nntp, "nntp" ),
EN( kPGPnetTCPService_ntp, "ntp" ),
EN( kPGPnetTCPService_netbios_ns, "netbios-ns" ),
EN( kPGPnetTCPService_netbios_dgm, "netbios-dgm" ),
EN( kPGPnetTCPService_netbios_ssn, "netbios-ssn" ),
EN( kPGPnetTCPService_imap2, "imap2" ),
EN( kPGPnetTCPService_snmp, "snmp" ),
EN( kPGPnetTCPService_snmp_trap, "snmp-trap" ),
EN( kPGPnetTCPService_cmip_man, "cmip-man" ),
EN( kPGPnetTCPService_cmip_agent, "cmip-agent" ),
EN( kPGPnetTCPService_xdmcp, "xdmcp" ),
EN( kPGPnetTCPService_nextstep, "nextstep" ),
EN( kPGPnetTCPService_bgp, "bgp" ),
EN( kPGPnetTCPService_prospero, "prospero" ),
EN( kPGPnetTCPService_irc, "irc" ),
EN( kPGPnetTCPService_smux, "smux" ),
EN( kPGPnetTCPService_at_rtmp, "at-rtmp" ),
EN( kPGPnetTCPService_at_nbp, "at-nbp" ),
EN( kPGPnetTCPService_at_echo, "at-echo" ),
EN( kPGPnetTCPService_at_zis, "at-zis" ),
EN( kPGPnetTCPService_qmtp, "qmtp" ),
EN( kPGPnetTCPService_z3950, "z3950" ),
EN( kPGPnetTCPService_ipx, "ipx" ),
EN( kPGPnetTCPService_imap3, "imap3" ),
EN( kPGPnetTCPService_rpc2portmap, "rpc2portmap" ),
EN( kPGPnetTCPService_codaauth2, "codaauth2" ),
EN( kPGPnetTCPService_ulistserv, "ulistserv" ),
EN( kPGPnetTCPService_ldap, "ldap" ),
EN( kPGPnetTCPService_https, "https" ),
EN( kPGPnetTCPService_snpp, "snpp" ),
EN( kPGPnetTCPService_msds, "ms-ds" ),
EN( kPGPnetTCPService_ssmtp, "ssmtp" ),
EN( kPGPnetTCPService_saft, "saft" ),
EN( kPGPnetTCPService_ike, "ike" ),
EN( kPGPnetTCPService_exec, "exec" ),
EN( kPGPnetTCPService_login, "login" ),
EN( kPGPnetTCPService_shell, "shell" ),
EN( kPGPnetTCPService_printer, "printer" ),
EN( kPGPnetTCPService_talk, "talk" ),
EN( kPGPnetTCPService_ntalk, "ntalk" ),
EN( kPGPnetTCPService_route, "route" ),
EN( kPGPnetTCPService_timed, "timed" ),
EN( kPGPnetTCPService_tempo, "tempo" ),
EN( kPGPnetTCPService_courier, "courier" ),
EN( kPGPnetTCPService_conference, "conference" ),
EN( kPGPnetTCPService_netnews, "netnews" ),
EN( kPGPnetTCPService_netwall, "netwall" ),
EN( kPGPnetTCPService_uucp, "uucp" ),
EN( kPGPnetTCPService_afpovertcp, "afpovertcp" ),
EN( kPGPnetTCPService_klogin, "klogin" ),
EN( kPGPnetTCPService_kshell, "kshell" ),
EN( kPGPnetTCPService_remotefs, "remotefs" ),
EN( kPGPnetTCPService_snews, "snews" ),
EN( kPGPnetTCPService_sldap, "sldap" ),
EN( kPGPnetTCPService_kerberos_adm, "kerberos-adm" ),
EN( kPGPnetTCPService_webster, "webster" ),
EN( kPGPnetTCPService_radius, "radius" ),
EN( kPGPnetTCPService_radacct, "radacct" ),
EN( kPGPnetTCPService_cvspserver, "cvspserver" ),
EN( kPGPnetTCPService_kerberos4, "kerberos4" ),
EN( kPGPnetTCPService_kerberosm, "kerberosm" ),
EN( kPGPnetTCPService_passwd_srv, "passwd-srv" ),
EN( kPGPnetTCPService_krb_prop, "krb-prop" ),
EN( kPGPnetTCPService_krbupdate, "krbupdate" ),
EN( kPGPnetTCPService_kpasswd, "kpasswd" ),
EN( kPGPnetTCPService_simap, "simap" ),
EN( kPGPnetTCPService_spop3, "spop3" ),
EN( kPGPnetTCPService_socks, "socks" ),
EN( kPGPnetTCPService_kpop, "kpop" ),
EN( kPGPnetTCPService_mysql, "mysql" ),
EN( kPGPnetTCPService_ircd, "ircd" ),
EN( kPGPnetTCPService_rtsp_low, "rtsp-low" ),
EN( kPGPnetTCPService_rtsp_high, "rtsp-high" ),
EN( kPGPnetTCPService_webcache, "webcache" ),
EN( kPGPnetTCPService_tproxy, "tproxy" ),
EN( kPGPnetTCPService_pgpskep, "pgpskep" ),
EN( kPGPnetTCPService_girlfriend, "girlfriend" ),
EN( kPGPnetTCPService_backorifice2k, "backorifice2k" )
};
#define kPGP_NumTCPServiceEntries \
( sizeof( sTCPServices ) / sizeof( sTCPServices[ 0 ] ) )
#undef EN
PGPUInt16 kIPProtocolStringList[] =
{
kPGPnetIPProtocol_ICMP,
kPGPnetIPProtocol_IGMP,
kPGPnetIPProtocol_ggp,
kPGPnetIPProtocol_ip,
kPGPnetIPProtocol_st,
kPGPnetIPProtocol_TCP,
kPGPnetIPProtocol_cbt,
kPGPnetIPProtocol_egp,
kPGPnetIPProtocol_igp,
kPGPnetIPProtocol_bbnrccmon,
kPGPnetIPProtocol_nvp_ii,
kPGPnetIPProtocol_pup,
kPGPnetIPProtocol_argus,
kPGPnetIPProtocol_emcon,
kPGPnetIPProtocol_xnet,
kPGPnetIPProtocol_chaos,
kPGPnetIPProtocol_UDP,
kPGPnetIPProtocol_mux,
kPGPnetIPProtocol_dcn_meas,
kPGPnetIPProtocol_hmp,
kPGPnetIPProtocol_prm,
kPGPnetIPProtocol_xns_idp,
kPGPnetIPProtocol_trunk1,
kPGPnetIPProtocol_trunk2,
kPGPnetIPProtocol_leaf1,
kPGPnetIPProtocol_leaf2,
kPGPnetIPProtocol_rdp,
kPGPnetIPProtocol_irtp,
kPGPnetIPProtocol_iso_tp4,
kPGPnetIPProtocol_netblt,
kPGPnetIPProtocol_mfe_nsp,
kPGPnetIPProtocol_merit_inp,
kPGPnetIPProtocol_sep,
kPGPnetIPProtocol_3pc,
kPGPnetIPProtocol_idpr,
kPGPnetIPProtocol_xtp,
kPGPnetIPProtocol_ddp,
kPGPnetIPProtocol_idpr_cmtp,
kPGPnetIPProtocol_tppp,
kPGPnetIPProtocol_il,
kPGPnetIPProtocol_sdrp,
kPGPnetIPProtocol_idrp,
kPGPnetIPProtocol_rsvp,
kPGPnetIPProtocol_gre,
kPGPnetIPProtocol_mhrp,
kPGPnetIPProtocol_bna,
kPGPnetIPProtocol_ESP,
kPGPnetIPProtocol_AH,
kPGPnetIPProtocol_i_nlsp,
kPGPnetIPProtocol_swipe,
kPGPnetIPProtocol_narp,
kPGPnetIPProtocol_mobile,
kPGPnetIPProtocol_tlsp,
kPGPnetIPProtocol_skip,
kPGPnetIPProtocol_cftp,
kPGPnetIPProtocol_sat_expak,
kPGPnetIPProtocol_kryptolan,
kPGPnetIPProtocol_rvd,
kPGPnetIPProtocol_ippc,
kPGPnetIPProtocol_sat_mon,
kPGPnetIPProtocol_visa,
kPGPnetIPProtocol_ipcv,
kPGPnetIPProtocol_cpnx,
kPGPnetIPProtocol_cphb,
kPGPnetIPProtocol_wsn,
kPGPnetIPProtocol_pvp,
kPGPnetIPProtocol_br_sat_mon,
kPGPnetIPProtocol_sun_nd,
kPGPnetIPProtocol_wb_mon,
kPGPnetIPProtocol_wb_expak,
kPGPnetIPProtocol_iso_ip,
kPGPnetIPProtocol_vmtp,
kPGPnetIPProtocol_secure_vmtp,
kPGPnetIPProtocol_vines,
kPGPnetIPProtocol_ttp,
kPGPnetIPProtocol_nsfnet_igp,
kPGPnetIPProtocol_dgp,
kPGPnetIPProtocol_tcf,
kPGPnetIPProtocol_eigrp,
kPGPnetIPProtocol_ospfigp,
kPGPnetIPProtocol_sprite_rpc,
kPGPnetIPProtocol_larp,
kPGPnetIPProtocol_mtp,
kPGPnetIPProtocol_ax25,
kPGPnetIPProtocol_ipip,
kPGPnetIPProtocol_micp,
kPGPnetIPProtocol_scc_sp,
kPGPnetIPProtocol_etherip,
kPGPnetIPProtocol_encap,
kPGPnetIPProtocol_gmtp,
kPGPnetIPProtocol_ifmp,
kPGPnetIPProtocol_pnni,
kPGPnetIPProtocol_pim,
kPGPnetIPProtocol_aris,
kPGPnetIPProtocol_scps,
kPGPnetIPProtocol_qnx,
kPGPnetIPProtocol_an,
kPGPnetIPProtocol_ipcomp,
kPGPnetIPProtocol_snp,
kPGPnetIPProtocol_compaq_peer,
kPGPnetIPProtocol_ipx_in_ip,
kPGPnetIPProtocol_vrrp,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -