I fixed the compilation errors, And netsukuku now works correctly! Probably

This commit is contained in:
MissValeska 2014-02-28 02:14:43 -08:00
parent 5531cad3b8
commit eb91be8f93
2 changed files with 73 additions and 73 deletions

View File

@ -665,7 +665,7 @@ static int iptcc_compile_chain(TC_HANDLE_T h, STRUCT_REPLACE *repl, struct chain
strcpy(head->name.target.u.user.name, ERROR_TARGET); strcpy(head->name.target.u.user.name, ERROR_TARGET);
head->name.target.u.target_size = head->name.target.u.target_size =
ALIGN(sizeof(struct ipt_error_target)); ALIGN(sizeof(struct ipt_error_target));
strcpy(head->name.error, c->name); strcpy(head->name.errorname, c->name);
} else { } else {
repl->hook_entry[c->hooknum-1] = c->head_offset; repl->hook_entry[c->hooknum-1] = c->head_offset;
repl->underflow[c->hooknum-1] = c->foot_offset; repl->underflow[c->hooknum-1] = c->foot_offset;

View File

@ -2,7 +2,7 @@
* (c) Copyright 2005 Andrea Lo Pumo aka AlpT <alpt@freaknet.org> * (c) Copyright 2005 Andrea Lo Pumo aka AlpT <alpt@freaknet.org>
* *
* This source code is free software; you can redistribute it and/or * This source code is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published * modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2 of the License, * by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version. * or (at your option) any later version.
* *
@ -76,14 +76,14 @@ int is_ntkd_already_running(void)
if(!(fd=fopen(server_opt.pid_file, "r"))) { if(!(fd=fopen(server_opt.pid_file, "r"))) {
if(errno != ENOENT) if(errno != ENOENT)
error("Cannot read pid file \"%s\": %s", error("Cannot read pid file \"%s\": %s",
server_opt.pid_file, strerror(errno)); server_opt.pid_file, strerror(errno));
return 0; return 0;
} }
fscanf(fd, "ntkd %d\n", &oldpid); fscanf(fd, "ntkd %d\n", &oldpid);
if(ferror(fd)) { if(ferror(fd)) {
error("error reading pid file \"%s\": %s\n", error("error reading pid file \"%s\": %s\n",
server_opt.pid_file, strerror(errno)); server_opt.pid_file, strerror(errno));
fclose(fd); fclose(fd);
return 0; return 0;
@ -95,14 +95,14 @@ int is_ntkd_already_running(void)
int ntk_load_maps(void) int ntk_load_maps(void)
{ {
if(file_exist(server_opt.int_map_file) && if(file_exist(server_opt.int_map_file) &&
(me.int_map=load_map(server_opt.int_map_file, (me.int_map=load_map(server_opt.int_map_file,
&me.cur_node))) &me.cur_node)))
debug(DBG_NORMAL, "Internal map loaded"); debug(DBG_NORMAL, "Internal map loaded");
else else
me.int_map=init_map(0); me.int_map=init_map(0);
#if 0 #if 0
/* Don't load the bnode map, it's useless */ /* Don't load the bnode map, it's useless */
if((me.bnode_map=load_bmap(server_opt.bnode_map_file, me.ext_map, if((me.bnode_map=load_bmap(server_opt.bnode_map_file, me.ext_map,
FAMILY_LVLS, &me.bmap_nodes))) { FAMILY_LVLS, &me.bmap_nodes))) {
@ -111,16 +111,16 @@ int ntk_load_maps(void)
#endif #endif
bmap_levels_init(BMAP_LEVELS(FAMILY_LVLS), &me.bnode_map, bmap_levels_init(BMAP_LEVELS(FAMILY_LVLS), &me.bnode_map,
&me.bmap_nodes); &me.bmap_nodes);
bmap_counter_init(BMAP_LEVELS(FAMILY_LVLS), &me.bmap_nodes_closed, bmap_counter_init(BMAP_LEVELS(FAMILY_LVLS), &me.bmap_nodes_closed,
&me.bmap_nodes_opened); &me.bmap_nodes_opened);
if(file_exist(server_opt.ext_map_file) && if(file_exist(server_opt.ext_map_file) &&
(me.ext_map=load_extmap(server_opt.ext_map_file, (me.ext_map=load_extmap(server_opt.ext_map_file,
&me.cur_quadg))) &me.cur_quadg)))
debug(DBG_NORMAL, "External map loaded"); debug(DBG_NORMAL, "External map loaded");
else else
me.ext_map=init_extmap(FAMILY_LVLS, 0); me.ext_map=init_extmap(FAMILY_LVLS, 0);
return 0; return 0;
} }
@ -131,12 +131,12 @@ int ntk_save_maps(void)
#ifdef DEBUG #ifdef DEBUG
debug(DBG_NORMAL, "Saving the border nodes map"); debug(DBG_NORMAL, "Saving the border nodes map");
save_bmap(me.bnode_map, me.bmap_nodes, me.ext_map, me.cur_quadg, save_bmap(me.bnode_map, me.bmap_nodes, me.ext_map, me.cur_quadg,
server_opt.bnode_map_file); server_opt.bnode_map_file);
#endif #endif
debug(DBG_NORMAL, "Saving the external map"); debug(DBG_NORMAL, "Saving the external map");
save_extmap(me.ext_map, MAXGROUPNODE, &me.cur_quadg, save_extmap(me.ext_map, MAXGROUPNODE, &me.cur_quadg,
server_opt.ext_map_file); server_opt.ext_map_file);
return 0; return 0;
@ -164,7 +164,7 @@ void usage(void)
" -D Prevents running as daemon (Does not fork to the background)\n" " -D Prevents running as daemon (Does not fork to the background)\n"
"\n" "\n"
" -r Runs in restricted mode\n" " -r Runs in restricted mode\n"
" -m Share your internet connection with other nodes\n" " -I Share your internet connection with other nodes\n"
"\n" "\n"
" -c configuration file\n" " -c configuration file\n"
" -l Enables logging to file\n" " -l Enables logging to file\n"
@ -180,9 +180,9 @@ void usage(void)
void fill_default_options(void) void fill_default_options(void)
{ {
setzero(&server_opt, sizeof(server_opt)); setzero(&server_opt, sizeof(server_opt));
server_opt.family=AF_INET; server_opt.family=AF_INET;
server_opt.config_file=NTK_CONFIG_FILE; server_opt.config_file=NTK_CONFIG_FILE;
server_opt.pid_file=NTK_PID_FILE; server_opt.pid_file=NTK_PID_FILE;
@ -250,7 +250,7 @@ void fill_loaded_cfg_options(void)
CONF_GET_INT_VALUE ( CONF_NTK_INTERNET_CONNECTION, server_opt.inet_connection); CONF_GET_INT_VALUE ( CONF_NTK_INTERNET_CONNECTION, server_opt.inet_connection);
if((value=CONF_GET_VALUE(CONF_NTK_INTERNET_GW))) { if((value=CONF_GET_VALUE(CONF_NTK_INTERNET_GW))) {
if(str_to_inet_gw(value, &server_opt.inet_gw, if(str_to_inet_gw(value, &server_opt.inet_gw,
&server_opt.inet_gw_dev)) &server_opt.inet_gw_dev))
fatal("Malformed `%s' option: \"%s\". Its syntax is \"IP:dev\"", fatal("Malformed `%s' option: \"%s\". Its syntax is \"IP:dev\"",
config_str[CONF_NTK_INTERNET_GW], value); config_str[CONF_NTK_INTERNET_GW], value);
@ -262,7 +262,7 @@ void fill_loaded_cfg_options(void)
bandwidth_in_8bit((server_opt.my_upload_bw+server_opt.my_dnload_bw)/2); bandwidth_in_8bit((server_opt.my_upload_bw+server_opt.my_dnload_bw)/2);
if((value=CONF_GET_VALUE(CONF_NTK_INTERNET_PING_HOSTS))) { if((value=CONF_GET_VALUE(CONF_NTK_INTERNET_PING_HOSTS))) {
server_opt.inet_hosts=parse_internet_hosts(value, server_opt.inet_hosts=parse_internet_hosts(value,
&server_opt.inet_hosts_counter); &server_opt.inet_hosts_counter);
if(!server_opt.inet_hosts) if(!server_opt.inet_hosts)
fatal("Malformed `%s' option: \"%s\". " fatal("Malformed `%s' option: \"%s\". "
@ -282,7 +282,7 @@ void fill_loaded_cfg_options(void)
void free_server_opt(void) void free_server_opt(void)
{ {
int i; int i;
if(server_opt.config_file != NTK_CONFIG_FILE) if(server_opt.config_file != NTK_CONFIG_FILE)
xfree(server_opt.config_file); xfree(server_opt.config_file);
if(server_opt.pid_file != NTK_PID_FILE) if(server_opt.pid_file != NTK_PID_FILE)
@ -341,16 +341,16 @@ void parse_options(int argc, char **argv)
{"no_andna", 0, 0, 'a'}, {"no_andna", 0, 0, 'a'},
{"no_daemon", 0, 0, 'D'}, {"no_daemon", 0, 0, 'D'},
{"no_resolv", 0, 0, 'R'}, {"no_resolv", 0, 0, 'R'},
{"restricted", 0, 0, 'r'}, {"restricted", 0, 0, 'r'},
{"share-inet", 0, 0, 'I'}, {"share-inet", 0, 0, 'I'},
{"debug", 0, 0, 'd'}, {"debug", 0, 0, 'd'},
{"version", 0, 0, 'v'}, {"version", 0, 0, 'v'},
{0, 0, 0, 0} {0, 0, 0, 0}
}; };
c = getopt_long (argc, argv,"i:c:l:hvd64DRrIa", long_options, c = getopt_long (argc, argv,"i:c:l:hvd64DRrIa", long_options,
&option_index); &option_index);
if (c == -1) if (c == -1)
break; break;
@ -359,7 +359,7 @@ void parse_options(int argc, char **argv)
{ {
case 'v': case 'v':
printf("%s\n",VERSION_STR); printf("%s\n",VERSION_STR);
exit(0); exit(0);
break; break;
case 'h': case 'h':
usage(); usage();
@ -376,14 +376,14 @@ void parse_options(int argc, char **argv)
"development, nothing is assured to work."); "development, nothing is assured to work.");
server_opt.family=AF_INET6; server_opt.family=AF_INET6;
break; break;
case 'c': case 'c':
server_opt.config_file=xstrndup(optarg, NAME_MAX-1); server_opt.config_file=xstrndup(optarg, NAME_MAX-1);
break; break;
case 'l': case 'l':
if(log_to_file(optarg) < 0) if(log_to_file(optarg) < 0)
fatal(0); fatal(0);
break; break;
case 'i': case 'i':
if(server_opt.ifs_n+1 >= MAX_INTERFACES) if(server_opt.ifs_n+1 >= MAX_INTERFACES)
fatal("The maximum number of interfaces is %d", fatal("The maximum number of interfaces is %d",
MAX_INTERFACES); MAX_INTERFACES);
@ -407,7 +407,7 @@ void parse_options(int argc, char **argv)
* *
* This is the problem: * This is the problem:
* ntkd -abcrdefg * ntkd -abcrdefg
* If 'r' is an element that specifies an * If 'r' is an element that specifies an
* optional argument, then the "defg" string * optional argument, then the "defg" string
* is taken as its arg, but this is not what * is taken as its arg, but this is not what
* we want because in this case '-r' is * we want because in this case '-r' is
@ -463,7 +463,7 @@ void check_conflicting_options(void)
#define FATAL_NOT_SPECIFIED(str) fatal("You didn't specified the `%s' " \ #define FATAL_NOT_SPECIFIED(str) fatal("You didn't specified the `%s' " \
"option in netsukuku.conf", \ "option in netsukuku.conf", \
(str)); \ (str)); \
if(!server_opt.pid_file) if(!server_opt.pid_file)
FATAL_NOT_SPECIFIED("pid_file"); FATAL_NOT_SPECIFIED("pid_file");
@ -471,12 +471,12 @@ void check_conflicting_options(void)
FATAL_NOT_SPECIFIED("internet_ping_hosts"); FATAL_NOT_SPECIFIED("internet_ping_hosts");
if(server_opt.restricted && server_opt.share_internet && if(server_opt.restricted && server_opt.share_internet &&
!file_exist(server_opt.ip_masq_script)) !file_exist(server_opt.ip_masq_script))
fatal("ip_masquerade_script \"%s\" is inexistent", fatal("ip_masquerade_script \"%s\" is inexistent",
server_opt.ip_masq_script); server_opt.ip_masq_script);
if(server_opt.shape_internet && if(server_opt.shape_internet &&
!file_exist(server_opt.tc_shaper_script)) !file_exist(server_opt.tc_shaper_script))
fatal("tc_shaper_script \"%s\" is inexistent", fatal("tc_shaper_script \"%s\" is inexistent",
server_opt.ip_masq_script); server_opt.ip_masq_script);
@ -485,8 +485,8 @@ void check_conflicting_options(void)
fatal("inet_connection=1 but ntk_restricted_mode=0. If you " fatal("inet_connection=1 but ntk_restricted_mode=0. If you "
"want to be compatible with the Internet, " "want to be compatible with the Internet, "
"set the restricted mode in the options"); "set the restricted mode in the options");
if(!server_opt.restricted && if(!server_opt.restricted &&
(server_opt.share_internet)) (server_opt.share_internet))
fatal("You want to share your Internet connection," fatal("You want to share your Internet connection,"
"but I am not running in restricted mode (-r), " "but I am not running in restricted mode (-r), "
@ -498,7 +498,7 @@ void check_conflicting_options(void)
"your bandwidth is just TOO small. Do not share " "your bandwidth is just TOO small. Do not share "
"it, or your connection will be saturated"); "it, or your connection will be saturated");
if(!server_opt.inet_connection && server_opt.share_internet) { if(!server_opt.inet_connection && server_opt.share_internet) {
loginfo("You want to share your Internet connection," loginfo("You want to share your Internet connection,"
"but `internet_connection' is set to 0." "but `internet_connection' is set to 0."
"We are assuming it is 1"); "We are assuming it is 1");
@ -509,7 +509,7 @@ void check_conflicting_options(void)
fatal("The Internet traffic shaping option is set, but " fatal("The Internet traffic shaping option is set, but "
"the `internet_connection' is set to 0, please check " "the `internet_connection' is set to 0, please check "
"your options."); "your options.");
#ifdef IPV6_DISABLED #ifdef IPV6_DISABLED
if(server_opt.inet_gw.family == AF_INET6) if(server_opt.inet_gw.family == AF_INET6)
fatal("Ipv6 is not supported"); fatal("Ipv6 is not supported");
@ -519,10 +519,10 @@ void check_conflicting_options(void)
void init_netsukuku(char **argv) void init_netsukuku(char **argv)
{ {
xsrand(); xsrand();
if(geteuid()) if(geteuid())
fatal("Need root privileges"); fatal("Need root privileges");
destroy_netsukuku_mutex=pid_saved=0; destroy_netsukuku_mutex=pid_saved=0;
sigterm_timestamp=sighup_timestamp=sigalrm_timestamp=0; sigterm_timestamp=sighup_timestamp=sigalrm_timestamp=0;
setzero(&me, sizeof(struct current_globals)); setzero(&me, sizeof(struct current_globals));
@ -532,7 +532,7 @@ void init_netsukuku(char **argv)
server_opt.pid_file); server_opt.pid_file);
else else
save_pid(); save_pid();
my_family=server_opt.family; my_family=server_opt.family;
restricted_mode =server_opt.restricted; restricted_mode =server_opt.restricted;
restricted_class=server_opt.restricted_class ? RESTRICTED_172 : RESTRICTED_10; restricted_class=server_opt.restricted_class ? RESTRICTED_172 : RESTRICTED_10;
@ -540,15 +540,15 @@ void init_netsukuku(char **argv)
/* Check if the DATA_DIR exists, if not create it */ /* Check if the DATA_DIR exists, if not create it */
if(check_and_create_dir(DATA_DIR)) if(check_and_create_dir(DATA_DIR))
fatal("Cannot access to the %s directory. Exiting.", DATA_DIR); fatal("Cannot access to the %s directory. Exiting.", DATA_DIR);
/* /*
* Device initialization * Device initialization
*/ */
if(if_init_all(server_opt.ifs, server_opt.ifs_n, if(if_init_all(server_opt.ifs, server_opt.ifs_n,
me.cur_ifs, &me.cur_ifs_n) < 0) me.cur_ifs, &me.cur_ifs_n) < 0)
fatal("Cannot initialize any network interfaces"); fatal("Cannot initialize any network interfaces");
/* /*
* ANDNA init * ANDNA init
*/ */
if(!server_opt.disable_andna) if(!server_opt.disable_andna)
@ -558,10 +558,10 @@ void init_netsukuku(char **argv)
* Initialize the Internet gateway stuff * Initialize the Internet gateway stuff
*/ */
if(server_opt.my_upload_bw && server_opt.my_dnload_bw) if(server_opt.my_upload_bw && server_opt.my_dnload_bw)
me.my_bandwidth = bandwidth_in_8bit((server_opt.my_upload_bw + me.my_bandwidth = bandwidth_in_8bit((server_opt.my_upload_bw +
server_opt.my_dnload_bw)/2); server_opt.my_dnload_bw)/2);
init_internet_gateway_search(); init_internet_gateway_search();
pkts_init(me.cur_ifs, me.cur_ifs_n, 0); pkts_init(me.cur_ifs, me.cur_ifs_n, 0);
qspn_init(FAMILY_LVLS); qspn_init(FAMILY_LVLS);
@ -579,20 +579,20 @@ void init_netsukuku(char **argv)
debug(DBG_NORMAL, "ACPT: Initializing the accept_tbl: \n" debug(DBG_NORMAL, "ACPT: Initializing the accept_tbl: \n"
" max_connections: %d,\n" " max_connections: %d,\n"
" max_accepts_per_host: %d,\n" " max_accepts_per_host: %d,\n"
" max_accept_per_host_time: %d", " max_accept_per_host_time: %d",
server_opt.max_connections, server_opt.max_connections,
server_opt.max_accepts_per_host, server_opt.max_accepts_per_host,
server_opt.max_accepts_per_host_time); server_opt.max_accepts_per_host_time);
init_accept_tbl(server_opt.max_connections, init_accept_tbl(server_opt.max_connections,
server_opt.max_accepts_per_host, server_opt.max_accepts_per_host,
server_opt.max_accepts_per_host_time); server_opt.max_accepts_per_host_time);
#endif #endif
if(restricted_mode) if(restricted_mode)
loginfo("NetsukukuD is in restricted mode. " loginfo("NetsukukuD is in restricted mode. "
"Restricted class: %s", "Restricted class: %s",
server_opt.restricted_class?RESTRICTED_172_STR:RESTRICTED_10_STR); server_opt.restricted_class?RESTRICTED_172_STR:RESTRICTED_10_STR);
hook_init(); hook_init();
rehook_init(); rehook_init();
@ -606,7 +606,7 @@ int destroy_netsukuku(void)
destroy_netsukuku_mutex=1; destroy_netsukuku_mutex=1;
unlink(server_opt.pid_file); unlink(server_opt.pid_file);
ntk_save_maps(); ntk_save_maps();
ntk_free_maps(); ntk_free_maps();
if(!server_opt.disable_andna) if(!server_opt.disable_andna)
@ -630,14 +630,14 @@ void sigterm_handler(int sig)
if(sigterm_timestamp == (cur_t=time(0))) if(sigterm_timestamp == (cur_t=time(0)))
return; return;
sigterm_timestamp=time(0); sigterm_timestamp=time(0);
if(!destroy_netsukuku()) if(!destroy_netsukuku())
fatal("Termination signal caught. Dying, bye, bye"); fatal("Termination signal caught. Dying, bye, bye");
} }
void *reload_hostname_thread(void *null) void *reload_hostname_thread(void *null)
{ {
/* /*
* Reload the file where the hostnames to be registered are and * Reload the file where the hostnames to be registered are and
* register the new ones * register the new ones
*/ */
@ -653,13 +653,13 @@ void sighup_handler(int sig)
{ {
pthread_t thread; pthread_t thread;
pthread_attr_t t_attr; pthread_attr_t t_attr;
time_t cur_t; time_t cur_t;
if(sighup_timestamp == (cur_t=time(0))) if(sighup_timestamp == (cur_t=time(0)))
return; return;
sighup_timestamp=time(0); sighup_timestamp=time(0);
pthread_attr_init(&t_attr); pthread_attr_init(&t_attr);
pthread_attr_setdetachstate(&t_attr, PTHREAD_CREATE_DETACHED); pthread_attr_setdetachstate(&t_attr, PTHREAD_CREATE_DETACHED);
pthread_create(&thread, &t_attr, reload_hostname_thread, 0); pthread_create(&thread, &t_attr, reload_hostname_thread, 0);
@ -667,7 +667,7 @@ void sighup_handler(int sig)
void *rh_cache_flush_thread(void *null) void *rh_cache_flush_thread(void *null)
{ {
/* /*
* Flush the resolved hostnames cache. * Flush the resolved hostnames cache.
*/ */
loginfo("Flush the resolved hostnames cache"); loginfo("Flush the resolved hostnames cache");
@ -680,7 +680,7 @@ void sigalrm_handler(int sig)
{ {
pthread_t thread; pthread_t thread;
pthread_attr_t t_attr; pthread_attr_t t_attr;
time_t cur_t; time_t cur_t;
if(sigalrm_timestamp == (cur_t=time(0))) if(sigalrm_timestamp == (cur_t=time(0)))
@ -703,9 +703,9 @@ int main(int argc, char **argv)
pthread_t daemon_tcp_thread, daemon_udp_thread, andna_thread; pthread_t daemon_tcp_thread, daemon_udp_thread, andna_thread;
pthread_t ping_igw_thread; pthread_t ping_igw_thread;
pthread_attr_t t_attr; pthread_attr_t t_attr;
log_init(argv[0], 0, 1); log_init(argv[0], 0, 1);
/* Options loading... */ /* Options loading... */
fill_default_options(); fill_default_options();
parse_options(argc, argv); parse_options(argc, argv);
@ -717,13 +717,13 @@ int main(int argc, char **argv)
/* Load the option from the config file */ /* Load the option from the config file */
load_config_file(server_opt.config_file); load_config_file(server_opt.config_file);
fill_loaded_cfg_options(); fill_loaded_cfg_options();
/* If a same option was specified in the config file and in the /* If a same option was specified in the config file and in the
* command line, give priority to the latter */ * command line, give priority to the latter */
parse_options(argc, argv); parse_options(argc, argv);
check_conflicting_options(); check_conflicting_options();
/* Initialize the whole netsukuku source code */ /* Initialize the whole netsukuku source code */
init_netsukuku(argv); init_netsukuku(argv);
@ -732,14 +732,14 @@ int main(int argc, char **argv)
signal(SIGINT, sigterm_handler); signal(SIGINT, sigterm_handler);
signal(SIGTERM, sigterm_handler); signal(SIGTERM, sigterm_handler);
signal(SIGQUIT, sigterm_handler); signal(SIGQUIT, sigterm_handler);
/* Angelic foreground or Daemonic background ? */ /* Angelic foreground or Daemonic background ? */
if(server_opt.daemon) { if(server_opt.daemon) {
loginfo("Forking to background"); loginfo("Forking to background");
log_init(argv[0], server_opt.dbg_lvl, 0); log_init(argv[0], server_opt.dbg_lvl, 0);
if(daemon(0, 0) == -1) if(daemon(0, 0) == -1)
error("Impossible to daemonize: %s.", strerror(errno)); error("Impossible to daemonize: %s.", strerror(errno));
} }
pthread_attr_init(&t_attr); pthread_attr_init(&t_attr);
@ -747,9 +747,9 @@ int main(int argc, char **argv)
setzero(&ud_argv, sizeof(struct udp_daemon_argv)); setzero(&ud_argv, sizeof(struct udp_daemon_argv));
port=xmalloc(sizeof(u_short)); port=xmalloc(sizeof(u_short));
/* /*
* These are the daemons, the main threads that keeps NetsukukuD * These are the daemons, the main threads that keeps NetsukukuD
* up & running. * up & running.
*/ */
debug(DBG_NORMAL, "Activating all daemons"); debug(DBG_NORMAL, "Activating all daemons");
@ -762,7 +762,7 @@ int main(int argc, char **argv)
pthread_create(&daemon_udp_thread, &t_attr, udp_daemon, (void *)&ud_argv); pthread_create(&daemon_udp_thread, &t_attr, udp_daemon, (void *)&ud_argv);
pthread_mutex_lock(&udp_daemon_lock); pthread_mutex_lock(&udp_daemon_lock);
pthread_mutex_unlock(&udp_daemon_lock); pthread_mutex_unlock(&udp_daemon_lock);
debug(DBG_SOFT, "Evoking the netsukuku tcp daemon."); debug(DBG_SOFT, "Evoking the netsukuku tcp daemon.");
*port=ntk_tcp_port; *port=ntk_tcp_port;
pthread_mutex_lock(&tcp_daemon_lock); pthread_mutex_lock(&tcp_daemon_lock);
@ -770,19 +770,19 @@ int main(int argc, char **argv)
pthread_mutex_lock(&tcp_daemon_lock); pthread_mutex_lock(&tcp_daemon_lock);
pthread_mutex_unlock(&tcp_daemon_lock); pthread_mutex_unlock(&tcp_daemon_lock);
/* Now we hook in Netsukuku */ /* Now we hook in Netsukuku */
netsukuku_hook(0, 0); netsukuku_hook(0, 0);
/* /*
* If not disabled, start the ANDNA daemon * If not disabled, start the ANDNA daemon
*/ */
if(!server_opt.disable_andna) if(!server_opt.disable_andna)
pthread_create(&andna_thread, &t_attr, andna_main, 0); pthread_create(&andna_thread, &t_attr, andna_main, 0);
xfree(port); xfree(port);
if(restricted_mode && (server_opt.share_internet || if(restricted_mode && (server_opt.share_internet ||
server_opt.use_shared_inet)) { server_opt.use_shared_inet)) {
debug(DBG_SOFT, "Evoking the Internet Gateway Pinger daemon"); debug(DBG_SOFT, "Evoking the Internet Gateway Pinger daemon");
pthread_create(&ping_igw_thread, &t_attr, pthread_create(&ping_igw_thread, &t_attr,