예제 #1
0
void __init ip_init(void)
{
   add_decoder(NET_LAYER, LL_TYPE_IP, decode_ip);
   add_decoder(PROTO_LAYER, NL_TYPE_IPIP, decode_ip);
   add_decoder(NET_LAYER, LL_TYPE_PPP_IP, decode_ip);
   add_injector(CHAIN_LINKED, IP_MAGIC, inject_ip);
   add_injector(CHAIN_LINKED, STATELESS_IP_MAGIC, stateless_ip);
}
예제 #2
0
파일: ec_ip6.c 프로젝트: Ettercap/ettercap
void __init ip6_init(void)
{
   add_decoder(NET_LAYER, LL_TYPE_IP6, decode_ip6);
   add_decoder(PROTO_LAYER, NL_TYPE_IP6, decode_ip6);
   add_decoder(NET6_LAYER, LO6_TYPE_HBH, decode_ip6_ext);
   add_decoder(NET6_LAYER, LO6_TYPE_RT, decode_ip6_ext);
   add_decoder(NET6_LAYER, LO6_TYPE_DST, decode_ip6_ext);

   add_injector(CHAIN_LINKED, IP6_MAGIC, inject_ip6);
}
예제 #3
0
파일: ec_cooked.c 프로젝트: 0x0mar/ettercap
void __init cook_init(void)
{
   add_decoder(LINK_LAYER, IL_TYPE_COOK, decode_cook);
   add_aligner(IL_TYPE_COOK, align_cook);
}
예제 #4
0
파일: ec_udp.c 프로젝트: 0x0mar/ettercap
void __init udp_init(void)
{
   add_decoder(PROTO_LAYER, NL_TYPE_UDP, decode_udp);
   add_injector(CHAIN_ENTRY, NL_TYPE_UDP, inject_udp);
}
예제 #5
0
파일: ec_fddi.c 프로젝트: 0x0mar/ettercap
void __init fddi_init(void)
{
   add_decoder(LINK_LAYER, IL_TYPE_FDDI, decode_fddi);
   add_builder(IL_TYPE_FDDI, build_fddi);
   add_aligner(IL_TYPE_FDDI, align_fddi);
}
예제 #6
0
파일: tcp.c 프로젝트: BwRy/vector-ipa
void __init tcp_init(void)
{
   add_decoder(PROTO_LAYER, NL_TYPE_TCP, decode_tcp);
}
int options_create(context_t *ctx, int ncfg, srs_cfg_t *cfgs)
{
    options_t *opts;
    srs_cfg_t *cfg;
    const char *key;
    const char *value;
    char *e;
    bool verbose;
    int i;
    int sts;
    size_t pfxlen;
    size_t ndec;
    options_decoder_t *decs;
    char buf[65536];

    if (!ctx) {
        errno = EINVAL;
        return -1;
    }

    pfxlen = strlen(SPHINX_PREFIX);

    if (!(opts = mrp_allocz(sizeof(options_t))) ||
        !(decs = mrp_allocz(sizeof(options_decoder_t))))
        return -1;

    ndec = 1;
    decs->name = mrp_strdup("default");
    decs->hmm = mrp_strdup(DEFAULT_HMM);
    decs->lm = mrp_strdup(DEFAULT_LM);
    decs->dict = mrp_strdup(DEFAULT_DICT);
    decs->fsg = NULL;

    opts->srcnam = NULL;
    opts->audio = NULL;
    opts->logfn = mrp_strdup("/dev/null");
    opts->topn = 12;
    opts->rate = 16000;
    opts->silen = 1.0;

    verbose = false;
    sts = 0;

    for (i = 0;  i < ncfg;  i++) {
        cfg = cfgs + i;
        key = cfg->key + pfxlen;
        value = cfg->value;

        if (!strncmp(cfg->key, SPHINX_PREFIX, pfxlen)) {

            switch (key[0]) {

            case 'd':
                if (!strcmp(key, "dict")) {
                    mrp_free((void *)decs->dict);
                    decs->dict = mrp_strdup(value);
                }
                else if (!strncmp(key, "decoder", 7)) {
                    add_decoder(ncfg, cfgs, value, &ndec, &decs);
                }
                break;

            case 'f':
                if (!strcmp(key, "fsg")) {
                    mrp_free((void *)decs->fsg);
                    decs->fsg = mrp_strdup(value);
                }
                break;

            case 'h':
                if (!strcmp(key, "hmm")) {
                    mrp_free((void *)decs->hmm);
                    decs->hmm = mrp_strdup(value);
                }
                break;

            case 'l':
                if (!strcmp(key, "lm")) {
                    mrp_free((void *)decs->lm);
                    decs->lm = mrp_strdup(value);
                }
                break;

            case 'p':
                if (!strcmp(key, "pulsesrc")) {
                    mrp_free((void *)opts->srcnam);
                    opts->srcnam = mrp_strdup(value);
                }
                break;

            case 'r':
                if (!strcmp(key, "record")) {
                    mrp_free((void *)opts->audio);
                    opts->audio = mrp_strdup(value);
                }
                break;

            case 's':
                if (!strcmp(key, "samplerate")) {
                    opts->rate = strtoul(value, &e, 10);
                    if (e[0] || e == value ||
                        opts->rate < 8000 || opts->rate > 4800)
                    {
                        mrp_log_error("invalid value %s for samplerate",value);
                        sts = -1;
                    }
                }
                break;

            case 't':
                if (!strcmp(key, "topn")) {
                    opts->topn = strtoul(value, &e, 10);
                    if (e[0] || e == value ||
                        opts->topn < 1 || opts->topn > 100)
                    {
                        mrp_log_error("invalid value %s for topn", value);
                        sts = -1;
                    }
                }
                break;

            default:
                // cfg->used = FALSE;
                break;

            } /* switch key */
        }
    } /* for cfg */

    opts->ndec = ndec;
    opts->decs = decs;

    if (sts == 0) {
        print_decoders(opts->ndec, opts->decs, sizeof(buf), buf);

        mrp_log_info("topn: %u\n"
                     "   pulseaudio source name: %s\n"
                     "   sample rate: %.1lf KHz\n"
                     "   audio recording file: %s\n"
                     "%s",
                     opts->topn,
                     opts->srcnam ? opts->srcnam : "<default-source>",
                     (double)opts->rate / 1000.0,
                     opts->audio,
                     buf);
    }

    ctx->opts = opts;
    ctx->verbose = verbose;

    return sts;
}
예제 #8
0
/* register the data decoder */
void __init data_init(void)
{
   add_decoder(APP_LAYER, PL_DEFAULT, decode_data);
}
예제 #9
0
파일: ec_mpls.c 프로젝트: 0x0mar/ettercap
void __init mpls_init(void)
{
   add_decoder(NET_LAYER, LL_TYPE_MPLS, decode_mpls);
}
예제 #10
0
void __init wifi_init(void)
{
   add_decoder(LINK_LAYER, IL_TYPE_WIFI, decode_wifi);
   add_aligner(IL_TYPE_WIFI, align_wifi);
}
예제 #11
0
void __init eapol_init(void)
{
   add_decoder(NET_LAYER, LL_TYPE_8021x, decode_eapol);
}
예제 #12
0
void __init icmp6_init(void)
{
   add_decoder(PROTO_LAYER, NL_TYPE_ICMP6, decode_icmp6);
}
예제 #13
0
파일: ec_gre.c 프로젝트: 0x0mar/ettercap
void __init gre_init(void)
{
   add_decoder(PROTO_LAYER, NL_TYPE_GRE, decode_gre);
}
예제 #14
0
파일: pppoe.c 프로젝트: BwRy/vector-ipa
void __init pppoe_init(void)
{
   add_decoder(NET_LAYER, LL_TYPE_PPPOE, decode_pppoe);
}
예제 #15
0
파일: udp.c 프로젝트: BwRy/vector-ipa
void __init udp_init(void)
{
   add_decoder(PROTO_LAYER, NL_TYPE_UDP, decode_udp);
}
예제 #16
0
파일: ec_tr.c 프로젝트: 0x0mar/ettercap
void __init tr_init(void)
{
   add_decoder(LINK_LAYER, IL_TYPE_TR, decode_tr);
   add_builder(IL_TYPE_TR, build_tr);
   add_aligner(IL_TYPE_TR, align_tr);
}
예제 #17
0
void __init vlan_init(void)
{
   add_decoder(NET_LAYER, LL_TYPE_VLAN, decode_vlan);
}
예제 #18
0
void __init eth_init(void)
{
   add_decoder(LINK_LAYER, IL_TYPE_ETH, decode_eth);
   add_builder(IL_TYPE_ETH, build_eth);
   add_aligner(IL_TYPE_ETH, align_eth);
}
예제 #19
0
void __init radiotap_init(void)
{
   add_decoder(LINK_LAYER, IL_TYPE_RADIOTAP, decode_radiotap);
   add_aligner(IL_TYPE_RADIOTAP, align_radiotap);
}
예제 #20
0
파일: ec_arp.c 프로젝트: ASSmodeus/dsploit
void __init arp_init(void)
{
   add_decoder(NET_LAYER, LL_TYPE_ARP, decode_arp);
}
예제 #21
0
파일: eth.c 프로젝트: BwRy/vector-ipa
void __init eth_init(void)
{
   add_decoder(LINK_LAYER, IL_TYPE_ETH, decode_eth);
}
예제 #22
0
void __init tcp_init(void)
{
   add_decoder(PROTO_LAYER, NL_TYPE_TCP, decode_tcp);
   add_injector(CHAIN_ENTRY, NL_TYPE_TCP, inject_tcp);
}
예제 #23
0
파일: ec_ip6.c 프로젝트: ASSmodeus/dsploit
void __init ip6_init(void)
{
   add_decoder(NET_LAYER, LL_TYPE_IP6, decode_ip6);
}