int init_sov(globals_t *g) { u_int i; g->hosts = (hostinfo_t **)malloc(sizeof(hostinfo_t*) * g->option.host_count + 1); g->hosts[g->option.host_count] = 0; for (i = 0; i < g->option.host_count; i++) { if (g->option.verbose) printf("Resolving host '%s'..." EOL, g->option.hosts[i]); g->hosts[i] = get_hostinfo(g->option.hosts[i], g->option.port); if (!g->hosts[i]) return 0; } if (g->option.inject_device_name) { if (g->option.verbose) printf("Preparing injection device '%s'..." EOL, g->option.inject_device_name); if (!add_pcap_output_device(&g->output_devices, g->option.inject_device_name, #ifdef WIN32 g->option.inject_ethernet_source, g->option.inject_ethernet_destination, #endif g->option.port)) return 0; } else { if (g->option.verbose) printf("Opening %s UDP socket on port %hu..." EOL, g->option.bind_udp_port ? "listening" : "raw", g->option.port); if (!add_socket_output_device(&g->output_devices, g->option.port, !g->option.bind_udp_port)) return 0; } if (g->option.verbose) printf("Capture '%s' on '%s'" EOL, g->option.pcap_filter, g->option.capture_device_name); g->capture_device = init_pcapture(g->option.capture_device_name, g->option.pcap_filter); if (!g->capture_device) return 0; return 1; }
LibMuttng::LibMuttng () { if (!debugObj) { core_init(); /* before we have all library-internal options, get other stuff */ get_userinfo(); get_hostinfo(); debugObj = new Debug (Homedir, NULL, Umask); /* register all options for library globally */ Option* d = new IntOption("debug_level","0",&DebugLevel,0,5); connectSignal<LibMuttng,Option*>(d->sigOptionChange,this, &LibMuttng::setDebugLevel); ConfigManager::regOption(d); ConfigManager::regOption(new StringOption("send_charset", "us-ascii:iso-8859-1:iso-8859-15:utf-8", &SendCharset)); ConfigManager::regOption(new StringOption("charset", get_charset(), &Charset)); ConfigManager::regOption(new SysOption("muttng_core_version","\""CORE_VERSION"\"")); ConfigManager::regOption(new SysOption("muttng_libmuttng_version", "\""LIBMUTTNG_VERSION"\"")); ConfigManager::regOption(new SysOption("muttng_hostname",Hostname)); ConfigManager::regOption(new SysOption("muttng_system",OSName)); ConfigManager::regOption(new SysOption("muttng_dnsname",Fqdn.str)); /* register all options within library modules */ LocalMailbox::reg(); #ifdef LIBMUTTNG_POP3 POP3Mailbox::reg(); #endif #ifdef LIBMUTTNG_NNTP NNTPMailbox::reg(); #endif #ifdef LIBMUTTNG_IMAP ImapMailbox::reg(); #endif MboxMailbox::reg(); MmdfMailbox::reg(); MHMailbox::reg(); MaildirMailbox::reg(); SubjectHeader::reg(); Connection::reg(); #ifdef LIBMUTTNG_SSL_OPENSSL SSLConnection::reg(); #endif #ifdef LIBMUTTNG_SSL_GNUTLS TLSConnection::reg(); #endif #ifdef LIBMUTTNG_CACHE_QDBM Cache::reg(); #endif #ifdef CORE_LIBICONV ConfigManager::regFeature("iconv"); #endif #ifdef CORE_INTL ConfigManager::regFeature("intl"); #endif #ifdef CORE_PCRE ConfigManager::regFeature("pcre"); #endif #ifdef CORE_LIBIDN ConfigManager::regFeature("idna"); #endif buffer_init(&AttachMarker); buffer_add_str(&AttachMarker,"\033]9;",3); buffer_add_snum(&AttachMarker,time(NULL),-1); buffer_add_ch(&AttachMarker,'\a'); connectSignal(displayMessage,this,&LibMuttng::debugMessage); connectSignal(displayProgress,this,&LibMuttng::debugProgress); connectSignal(displayWarning,this,&LibMuttng::debugWarning); connectSignal(displayError,this,&LibMuttng::debugError); } this->debug = debugObj; }