diff --git a/app/add.js b/app/add.js index c27fb34..3043a47 100644 --- a/app/add.js +++ b/app/add.js @@ -61,7 +61,8 @@ module.exports = async (req, res) => { let keypair; try { keypair = await wg.generateKeypair() } catch (err) { - console.log(err) + console.error(`Unable to generateKeypair:\n${err}`) + res.sendStatus(409); return } // Peer with each server @@ -70,12 +71,13 @@ module.exports = async (req, res) => { let psk; try { psk = await wg.generatePSK() } catch (err) { - console.log(err) + console.error(`Unable to generate PSK:\n${err}`) + res.sendStatus(409); return } - // Add server to client as [Peer] + + // Add server to user config as [Peer] const allowed_ipv4s = `${server.ipv4}/${(server.host===env.LOCAL_SERVER)?env.IPV4_CIDR:'32'}` const allowed_ipv6s = `${server.ipv6}/${(server.host===env.LOCAL_SERVER)?env.IPV6_CIDR:'128'}` - client_peers.push(` [Peer] # ${server.host}.${env.TLD} PublicKey = ${server.pubkey} @@ -83,18 +85,21 @@ PresharedKey = ${psk} AllowedIPs = ${allowed_ipv4s}, ${allowed_ipv6s} Endpoint = ${server.endpoint} PersistentKeepAlive = 25`) - // Add client to server as [Peer] + + // Add new user device to server config as [Peer] const server_config = `\n [Peer] # ${new_hostname}.${user.name}.${env.TLD} PublicKey = ${keypair[0]} PresharedKey = ${psk} AllowedIPs = ${ipv4_addr}/32, ${ipv6_addr}/128` + + // Add server_config to local wg0.conf if (server.host===env.LOCAL_SERVER) { - // Add server_config to wg0.conf try { await fs.appendFile(env.WG_CONFIG_FILE, server_config) } catch (err) { console.error(err); return} + + // Remote server: send config } else { - // Send config to other server console.log(`Sending config to ${server.host}.gf4`) try { await axios.post(`${server.admin_endpoint}/add`, server_config, { @@ -110,7 +115,7 @@ AllowedIPs = ${ipv4_addr}/32, ${ipv6_addr}/128` //TODO: Nameserver config - // Generate config + // Generate user config const listen_port = Math.floor(50000 + Math.random() * 10000) const config = `[Interface] PrivateKey = ${keypair[1]}