#include "conf.h"
#include "connection.h"
#include "control.h"
-#include "device.h"
#include "digest.h"
#include "ecdsa.h"
#include "graph.h"
#include "xalloc.h"
char *myport;
-static io_t device_io;
-devops_t devops;
char *proxyhost;
char *proxyport;
/*
Configure node_t myself and set up the local sockets (listen only)
*/
-static bool setup_myself(void) {
+bool setup_myself(void) {
char *name, *hostname, *cipher, *digest, *type;
char *address = NULL;
bool port_specified = false;
else if(autoconnect)
load_all_nodes();
- /* Open device */
-
- devops = os_devops;
-
- if(get_config_string(lookup_config(config_tree, "DeviceType"), &type)) {
- if(!strcasecmp(type, "dummy"))
- devops = dummy_devops;
- else if(!strcasecmp(type, "raw_socket"))
- devops = raw_socket_devops;
- else if(!strcasecmp(type, "multicast"))
- devops = multicast_devops;
-#ifdef ENABLE_UML
- else if(!strcasecmp(type, "uml"))
- devops = uml_devops;
-#endif
-#ifdef ENABLE_VDE
- else if(!strcasecmp(type, "vde"))
- devops = vde_devops;
-#endif
- }
-
- if(!devops.setup())
- return false;
-
- if(device_fd >= 0)
- io_add(&device_io, handle_device_data, NULL, device_fd, IO_READ);
-
/* Open sockets */
if(!do_detach && getenv("LISTEN_FDS")) {
char *envp[5] = {NULL};
xasprintf(&envp[0], "NETNAME=%s", netname ? : "");
- xasprintf(&envp[1], "DEVICE=%s", device ? : "");
- xasprintf(&envp[2], "INTERFACE=%s", iface ? : "");
xasprintf(&envp[3], "NAME=%s", myself->name);
execute_script("tinc-up", envp);
char *envp[5] = {NULL};
xasprintf(&envp[0], "NETNAME=%s", netname ? : "");
- xasprintf(&envp[1], "DEVICE=%s", device ? : "");
- xasprintf(&envp[2], "INTERFACE=%s", iface ? : "");
xasprintf(&envp[3], "NAME=%s", myself->name);
exit_requests();
for(int i = 0; i < 4; i++)
free(envp[i]);
- devops.close();
-
exit_control();
return;