• Main Page
  • Modules
  • Data Structures
  • Files
  • File List

getter.c

00001 /*
00002  * (C) 2006 by Pablo Neira Ayuso <pablo@netfilter.org>
00003  *
00004  * This software may be used and distributed according to the terms
00005  * of the GNU General Public License, incorporated herein by reference.
00006  */
00007 
00008 #include "internal/internal.h"
00009 
00010 static const void *get_attr_orig_ipv4_src(const struct nf_conntrack *ct)
00011 {
00012         return &ct->tuple[__DIR_ORIG].src.v4;
00013 }
00014 
00015 static const void *get_attr_orig_ipv4_dst(const struct nf_conntrack *ct)
00016 {
00017         return &ct->tuple[__DIR_ORIG].dst.v4;
00018 }
00019 
00020 static const void *get_attr_repl_ipv4_src(const struct nf_conntrack *ct)
00021 {
00022         return &ct->tuple[__DIR_REPL].src.v4;
00023 }
00024 
00025 static const void *get_attr_repl_ipv4_dst(const struct nf_conntrack *ct)
00026 {
00027         return &ct->tuple[__DIR_REPL].dst.v4;
00028 }
00029 
00030 static const void *get_attr_orig_ipv6_src(const struct nf_conntrack *ct)
00031 {
00032         return &ct->tuple[__DIR_ORIG].src.v6;
00033 }
00034 
00035 static const void *get_attr_orig_ipv6_dst(const struct nf_conntrack *ct)
00036 {
00037         return &ct->tuple[__DIR_ORIG].dst.v6;
00038 }
00039 
00040 static const void *get_attr_repl_ipv6_src(const struct nf_conntrack *ct)
00041 {
00042         return &ct->tuple[__DIR_REPL].src.v6;
00043 }
00044 
00045 static const void *get_attr_repl_ipv6_dst(const struct nf_conntrack *ct)
00046 {
00047         return &ct->tuple[__DIR_REPL].dst.v6;
00048 }
00049 
00050 static const void *get_attr_orig_port_src(const struct nf_conntrack *ct)
00051 {
00052         return &ct->tuple[__DIR_ORIG].l4src.all; 
00053 }
00054 
00055 static const void *get_attr_orig_port_dst(const struct nf_conntrack *ct)
00056 {
00057         return &ct->tuple[__DIR_ORIG].l4dst.all; 
00058 }
00059 
00060 static const void *get_attr_repl_port_src(const struct nf_conntrack *ct)
00061 {
00062         return &ct->tuple[__DIR_REPL].l4src.all; 
00063 }
00064 
00065 static const void *get_attr_repl_port_dst(const struct nf_conntrack *ct)
00066 {
00067         return &ct->tuple[__DIR_REPL].l4dst.all;
00068 }
00069 
00070 static const void *get_attr_icmp_type(const struct nf_conntrack *ct)
00071 {
00072         return &ct->tuple[__DIR_ORIG].l4dst.icmp.type;
00073 }
00074 
00075 static const void *get_attr_icmp_code(const struct nf_conntrack *ct)
00076 {
00077         return &ct->tuple[__DIR_ORIG].l4dst.icmp.code;
00078 }
00079 
00080 static const void *get_attr_icmp_id(const struct nf_conntrack *ct)
00081 {
00082         return &ct->tuple[__DIR_ORIG].l4src.icmp.id;
00083 }
00084 
00085 static const void *get_attr_orig_l3proto(const struct nf_conntrack *ct)
00086 {
00087         return &ct->tuple[__DIR_ORIG].l3protonum;
00088 }
00089 
00090 static const void *get_attr_repl_l3proto(const struct nf_conntrack *ct)
00091 {
00092         return &ct->tuple[__DIR_REPL].l3protonum;
00093 }
00094 
00095 static const void *get_attr_orig_l4proto(const struct nf_conntrack *ct)
00096 {
00097         return &ct->tuple[__DIR_ORIG].protonum;
00098 }
00099 
00100 static const void *get_attr_repl_l4proto(const struct nf_conntrack *ct)
00101 {
00102         return &ct->tuple[__DIR_REPL].protonum;
00103 }
00104 
00105 static const void *get_attr_master_ipv4_src(const struct nf_conntrack *ct)
00106 {
00107         return &ct->tuple[__DIR_MASTER].src.v4;
00108 }
00109 
00110 static const void *get_attr_master_ipv4_dst(const struct nf_conntrack *ct)
00111 {
00112         return &ct->tuple[__DIR_MASTER].dst.v4;
00113 }
00114 
00115 static const void *get_attr_master_ipv6_src(const struct nf_conntrack *ct)
00116 {
00117         return &ct->tuple[__DIR_MASTER].src.v6;
00118 }
00119 
00120 static const void *get_attr_master_ipv6_dst(const struct nf_conntrack *ct)
00121 {
00122         return &ct->tuple[__DIR_MASTER].dst.v6;
00123 }
00124 
00125 static const void *get_attr_master_port_src(const struct nf_conntrack *ct)
00126 {
00127         return &ct->tuple[__DIR_MASTER].l4src.all; 
00128 }
00129 
00130 static const void *get_attr_master_port_dst(const struct nf_conntrack *ct)
00131 {
00132         return &ct->tuple[__DIR_MASTER].l4dst.all; 
00133 }
00134 
00135 static const void *get_attr_master_l3proto(const struct nf_conntrack *ct)
00136 {
00137         return &ct->tuple[__DIR_MASTER].l3protonum;
00138 }
00139 
00140 static const void *get_attr_master_l4proto(const struct nf_conntrack *ct)
00141 {
00142         return &ct->tuple[__DIR_MASTER].protonum;
00143 }
00144 
00145 static const void *get_attr_tcp_state(const struct nf_conntrack *ct)
00146 {
00147         return &ct->protoinfo.tcp.state;
00148 }
00149 
00150 static const void *get_attr_tcp_flags_orig(const struct nf_conntrack *ct)
00151 {
00152         return &ct->protoinfo.tcp.flags[__DIR_ORIG].value;
00153 }
00154 
00155 static const void *get_attr_tcp_mask_orig(const struct nf_conntrack *ct)
00156 {
00157         return &ct->protoinfo.tcp.flags[__DIR_ORIG].mask;
00158 }
00159 
00160 static const void *get_attr_tcp_flags_repl(const struct nf_conntrack *ct)
00161 {
00162         return &ct->protoinfo.tcp.flags[__DIR_REPL].value;
00163 }
00164 
00165 static const void *get_attr_tcp_mask_repl(const struct nf_conntrack *ct)
00166 {
00167         return &ct->protoinfo.tcp.flags[__DIR_REPL].mask;
00168 }
00169 
00170 static const void *get_attr_tcp_wscale_orig(const struct nf_conntrack *ct)
00171 {
00172         return &ct->protoinfo.tcp.wscale[__DIR_ORIG];
00173 }
00174 
00175 static const void *get_attr_tcp_wscale_repl(const struct nf_conntrack *ct)
00176 {
00177         return &ct->protoinfo.tcp.wscale[__DIR_REPL];
00178 }
00179 
00180 static const void *get_attr_sctp_state(const struct nf_conntrack *ct)
00181 {
00182         return &ct->protoinfo.sctp.state;
00183 }
00184 
00185 static const void *get_attr_sctp_vtag_orig(const struct nf_conntrack *ct)
00186 {
00187         return &ct->protoinfo.sctp.vtag[__DIR_ORIG];
00188 }
00189 
00190 static const void *get_attr_sctp_vtag_repl(const struct nf_conntrack *ct)
00191 {
00192         return &ct->protoinfo.sctp.vtag[__DIR_REPL];
00193 }
00194 
00195 static const void *get_attr_snat_ipv4(const struct nf_conntrack *ct)
00196 {
00197         return &ct->snat.min_ip;
00198 }
00199 
00200 static const void *get_attr_dnat_ipv4(const struct nf_conntrack *ct)
00201 {
00202         return &ct->dnat.min_ip;
00203 }
00204 
00205 static const void *get_attr_snat_port(const struct nf_conntrack *ct)
00206 {
00207         return &ct->snat.l4min.all;
00208 }
00209 
00210 static const void *get_attr_dnat_port(const struct nf_conntrack *ct)
00211 {
00212         return &ct->dnat.l4min.all;
00213 }
00214 
00215 static const void *get_attr_timeout(const struct nf_conntrack *ct)
00216 {
00217         return &ct->timeout;
00218 }
00219 
00220 static const void *get_attr_mark(const struct nf_conntrack *ct)
00221 {
00222         return &ct->mark;
00223 }
00224 
00225 static const void *get_attr_secmark(const struct nf_conntrack *ct)
00226 {
00227         return &ct->secmark;
00228 }
00229 
00230 static const void *get_attr_orig_counter_packets(const struct nf_conntrack *ct)
00231 {
00232         return &ct->counters[__DIR_ORIG].packets;
00233 }
00234 
00235 static const void *get_attr_orig_counter_bytes(const struct nf_conntrack *ct)
00236 {
00237         return &ct->counters[__DIR_ORIG].bytes;
00238 }
00239 
00240 static const void *get_attr_repl_counter_packets(const struct nf_conntrack *ct)
00241 {
00242         return &ct->counters[__DIR_REPL].packets;
00243 }
00244 
00245 static const void *get_attr_repl_counter_bytes(const struct nf_conntrack *ct)
00246 {
00247         return &ct->counters[__DIR_REPL].bytes;
00248 }
00249 
00250 static const void *get_attr_status(const struct nf_conntrack *ct)
00251 {
00252         return &ct->status;
00253 }
00254 
00255 static const void *get_attr_use(const struct nf_conntrack *ct)
00256 {
00257         return &ct->use;
00258 }
00259 
00260 static const void *get_attr_id(const struct nf_conntrack *ct)
00261 {
00262         return &ct->id;
00263 }
00264 
00265 static const void *get_attr_orig_cor_pos(const struct nf_conntrack *ct)
00266 {
00267         return &ct->tuple[__DIR_ORIG].natseq.correction_pos;
00268 }
00269 
00270 static const void *get_attr_orig_off_bfr(const struct nf_conntrack *ct)
00271 {
00272         return &ct->tuple[__DIR_ORIG].natseq.offset_before;
00273 }
00274 
00275 static const void *get_attr_orig_off_aft(const struct nf_conntrack *ct)
00276 {
00277         return &ct->tuple[__DIR_ORIG].natseq.offset_after;
00278 }
00279 
00280 static const void *get_attr_repl_cor_pos(const struct nf_conntrack *ct)
00281 {
00282         return &ct->tuple[__DIR_REPL].natseq.correction_pos;
00283 }
00284 
00285 static const void *get_attr_repl_off_bfr(const struct nf_conntrack *ct)
00286 {
00287         return &ct->tuple[__DIR_REPL].natseq.offset_before;
00288 }
00289 
00290 static const void *get_attr_repl_off_aft(const struct nf_conntrack *ct)
00291 {
00292         return &ct->tuple[__DIR_REPL].natseq.offset_after;
00293 }
00294 
00295 static const void *get_attr_helper_name(const struct nf_conntrack *ct)
00296 {
00297         return ct->helper_name;
00298 }
00299 
00300 static const void *get_attr_dccp_state(const struct nf_conntrack *ct)
00301 {
00302         return &ct->protoinfo.dccp.state;
00303 }
00304 
00305 static const void *get_attr_dccp_role(const struct nf_conntrack *ct)
00306 {
00307         return &ct->protoinfo.dccp.role;
00308 }
00309 
00310 static const void *get_attr_dccp_handshake_seq(const struct nf_conntrack *ct)
00311 {
00312         return &ct->protoinfo.dccp.handshake_seq;
00313 }
00314 
00315 static const void *get_attr_zone(const struct nf_conntrack *ct)
00316 {
00317         return &ct->zone;
00318 }
00319 
00320 static const void *get_attr_secctx(const struct nf_conntrack *ct)
00321 {
00322         return ct->secctx;
00323 }
00324 
00325 const get_attr get_attr_array[ATTR_MAX] = {
00326         [ATTR_ORIG_IPV4_SRC]            = get_attr_orig_ipv4_src,
00327         [ATTR_ORIG_IPV4_DST]            = get_attr_orig_ipv4_dst,
00328         [ATTR_REPL_IPV4_SRC]            = get_attr_repl_ipv4_src,
00329         [ATTR_REPL_IPV4_DST]            = get_attr_repl_ipv4_dst,
00330         [ATTR_ORIG_IPV6_SRC]            = get_attr_orig_ipv6_src,
00331         [ATTR_ORIG_IPV6_DST]            = get_attr_orig_ipv6_dst,
00332         [ATTR_REPL_IPV6_SRC]            = get_attr_repl_ipv6_src,
00333         [ATTR_REPL_IPV6_DST]            = get_attr_repl_ipv6_dst,
00334         [ATTR_ORIG_PORT_SRC]            = get_attr_orig_port_src,
00335         [ATTR_ORIG_PORT_DST]            = get_attr_orig_port_dst,
00336         [ATTR_REPL_PORT_SRC]            = get_attr_repl_port_src,
00337         [ATTR_REPL_PORT_DST]            = get_attr_repl_port_dst,
00338         [ATTR_ICMP_TYPE]                = get_attr_icmp_type,
00339         [ATTR_ICMP_CODE]                = get_attr_icmp_code,
00340         [ATTR_ICMP_ID]                  = get_attr_icmp_id,
00341         [ATTR_ORIG_L3PROTO]             = get_attr_orig_l3proto,
00342         [ATTR_REPL_L3PROTO]             = get_attr_repl_l3proto,
00343         [ATTR_ORIG_L4PROTO]             = get_attr_orig_l4proto,
00344         [ATTR_REPL_L4PROTO]             = get_attr_repl_l4proto,
00345         [ATTR_TCP_STATE]                = get_attr_tcp_state,
00346         [ATTR_SNAT_IPV4]                = get_attr_snat_ipv4,
00347         [ATTR_DNAT_IPV4]                = get_attr_dnat_ipv4,
00348         [ATTR_SNAT_PORT]                = get_attr_snat_port,
00349         [ATTR_DNAT_PORT]                = get_attr_dnat_port,
00350         [ATTR_TIMEOUT]                  = get_attr_timeout,
00351         [ATTR_MARK]                     = get_attr_mark,
00352         [ATTR_ORIG_COUNTER_PACKETS]     = get_attr_orig_counter_packets,
00353         [ATTR_ORIG_COUNTER_BYTES]       = get_attr_orig_counter_bytes,
00354         [ATTR_REPL_COUNTER_PACKETS]     = get_attr_repl_counter_packets,
00355         [ATTR_REPL_COUNTER_BYTES]       = get_attr_repl_counter_bytes,
00356         [ATTR_USE]                      = get_attr_use,
00357         [ATTR_ID]                       = get_attr_id,
00358         [ATTR_STATUS]                   = get_attr_status,
00359         [ATTR_TCP_FLAGS_ORIG]           = get_attr_tcp_flags_orig,
00360         [ATTR_TCP_FLAGS_REPL]           = get_attr_tcp_flags_repl,
00361         [ATTR_TCP_MASK_ORIG]            = get_attr_tcp_mask_orig,
00362         [ATTR_TCP_MASK_REPL]            = get_attr_tcp_mask_repl,
00363         [ATTR_MASTER_IPV4_SRC]          = get_attr_master_ipv4_src,
00364         [ATTR_MASTER_IPV4_DST]          = get_attr_master_ipv4_dst,
00365         [ATTR_MASTER_IPV6_SRC]          = get_attr_master_ipv6_src,
00366         [ATTR_MASTER_IPV6_DST]          = get_attr_master_ipv6_dst,
00367         [ATTR_MASTER_PORT_SRC]          = get_attr_master_port_src,
00368         [ATTR_MASTER_PORT_DST]          = get_attr_master_port_dst,
00369         [ATTR_MASTER_L3PROTO]           = get_attr_master_l3proto,
00370         [ATTR_MASTER_L4PROTO]           = get_attr_master_l4proto,
00371         [ATTR_SECMARK]                  = get_attr_secmark,
00372         [ATTR_ORIG_NAT_SEQ_CORRECTION_POS]      = get_attr_orig_cor_pos,
00373         [ATTR_ORIG_NAT_SEQ_OFFSET_BEFORE]       = get_attr_orig_off_bfr,
00374         [ATTR_ORIG_NAT_SEQ_OFFSET_AFTER]        = get_attr_orig_off_aft,
00375         [ATTR_REPL_NAT_SEQ_CORRECTION_POS]      = get_attr_repl_cor_pos,
00376         [ATTR_REPL_NAT_SEQ_OFFSET_BEFORE]       = get_attr_repl_off_bfr,
00377         [ATTR_REPL_NAT_SEQ_OFFSET_AFTER]        = get_attr_repl_off_aft,
00378         [ATTR_SCTP_STATE]               = get_attr_sctp_state,
00379         [ATTR_SCTP_VTAG_ORIG]           = get_attr_sctp_vtag_orig,
00380         [ATTR_SCTP_VTAG_REPL]           = get_attr_sctp_vtag_repl,
00381         [ATTR_HELPER_NAME]              = get_attr_helper_name,
00382         [ATTR_DCCP_STATE]               = get_attr_dccp_state,
00383         [ATTR_DCCP_ROLE]                = get_attr_dccp_role,
00384         [ATTR_DCCP_HANDSHAKE_SEQ]       = get_attr_dccp_handshake_seq,
00385         [ATTR_TCP_WSCALE_ORIG]          = get_attr_tcp_wscale_orig,
00386         [ATTR_TCP_WSCALE_REPL]          = get_attr_tcp_wscale_repl,
00387         [ATTR_ZONE]                     = get_attr_zone,
00388         [ATTR_SECCTX]                   = get_attr_secctx,
00389 };

Generated on Wed Jan 26 2011 23:11:37 for libnetfilter_conntrack by  doxygen 1.7.1