-/*
- Configure node_t myself and set up the local sockets (listen only)
-*/
-static bool setup_myself(void) {
- char *name, *hostname, *cipher, *digest, *type;
- char *fname = NULL;
- char *address = NULL;
-
- if(!(name = get_name())) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Name for tinc daemon required!");
- return false;
- }
-
- myself = new_node();
- myself->connection = new_connection();
- myself->name = name;
- myself->connection->name = xstrdup(name);
- xasprintf(&fname, "%s" SLASH "hosts" SLASH "%s", confbase, name);
- read_config_options(config_tree, name);
- read_config_file(config_tree, fname);
- free(fname);
-
- if(!get_config_string(lookup_config(config_tree, "Port"), &myport))
- myport = xstrdup("655");
-
- xasprintf(&myself->hostname, "MYSELF port %s", myport);
- myself->connection->hostname = xstrdup(myself->hostname);
-
- myself->connection->options = 0;
- myself->connection->protocol_major = PROT_MAJOR;
- myself->connection->protocol_minor = PROT_MINOR;
-
- myself->options |= PROT_MINOR << 24;
-
- get_config_bool(lookup_config(config_tree, "ExperimentalProtocol"), &experimental);
-
- if(experimental && !read_ecdsa_private_key())
- return false;
-
- if(!read_rsa_private_key())
- return false;
-
- if(!atoi(myport)) {
- struct addrinfo *ai = str2addrinfo("localhost", myport, SOCK_DGRAM);
- sockaddr_t sa;
- if(!ai || !ai->ai_addr)
- return false;
- free(myport);
- memcpy(&sa, ai->ai_addr, ai->ai_addrlen);
- sockaddr2str(&sa, NULL, &myport);