4 * Copyright (C) 2011 shibby
16 if( nvram_match( "tor_enable", "1" ) )
19 if (nvram_match( "tor_iface", "br0" ) ) { ip
= nvram_safe_get( "lan_ipaddr" ); }
20 else if (nvram_match( "tor_iface", "br1" ) ) { ip
= nvram_safe_get( "lan1_ipaddr" ); }
21 else if (nvram_match( "tor_iface", "br2" ) ) { ip
= nvram_safe_get( "lan2_ipaddr" ); }
22 else if (nvram_match( "tor_iface", "br3" ) ) { ip
= nvram_safe_get( "lan3_ipaddr" ); }
23 else { ip
= nvram_safe_get( "lan_ipaddr" ); }
26 // writing data to file
27 if( !( fp
= fopen( "/etc/tor.conf", "w" ) ) )
29 perror( "/etc/tor.conf" );
32 fprintf(fp
, "SocksPort %d\n", nvram_get_int( "tor_socksport" ) );
33 fprintf(fp
, "SocksBindAddress 127.0.0.1\n");
34 fprintf(fp
, "AllowUnverifiedNodes middle,rendezvous\n");
35 fprintf(fp
, "RunAsDaemon 1\n");
36 fprintf(fp
, "Log notice syslog\n");
37 fprintf(fp
, "DataDirectory %s\n", nvram_safe_get( "tor_datadir" ) );
38 fprintf(fp
, "TransPort %s\n", nvram_safe_get( "tor_transport" ) );
39 fprintf(fp
, "TransListenAddress %s\n", ip
);
40 fprintf(fp
, "DNSPort %s\n", nvram_safe_get( "tor_dnsport" ) );
41 fprintf(fp
, "DNSListenAddress %s\n", ip
);
42 fprintf(fp
, "User nobody\n");
43 fprintf(fp
, "%s\n", nvram_safe_get("tor_custom"));
46 chmod( "/etc/tor.conf", 0644 );
47 chmod( "/dev/null", 0666 );
49 mkdir( nvram_safe_get("tor_datadir"), 0777 );
50 xstart( "chown", "nobody:nobody", nvram_safe_get("tor_datadir") );
52 xstart( "tor", "-f", "/etc/tor.conf" );
60 killall("tor", SIGTERM
);