aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrumeet <17158086+Trumeet@users.noreply.github.com>2021-01-08 14:51:07 -0800
committerYuutaW <17158086+Trumeet@users.noreply.github.com>2021-01-08 21:26:33 -0800
commit76f32318d8ff3619cb55d543e32814f61b01ab2e (patch)
tree6a8d222796d0a0ecf1a9753dd023da31bb61ff51
parent9360354b7a134aa2534e260e5418e06779aac4c0 (diff)
downloaddn42peering-76f32318d8ff3619cb55d543e32814f61b01ab2e.tar
dn42peering-76f32318d8ff3619cb55d543e32814f61b01ab2e.tar.gz
dn42peering-76f32318d8ff3619cb55d543e32814f61b01ab2e.tar.bz2
dn42peering-76f32318d8ff3619cb55d543e32814f61b01ab2e.zip
fix(agent/central): support optional endpoint
-rw-r--r--agent/src/main/java/moe/yuuta/dn42peering/agent/grpc/AgentServiceImpl.java4
-rw-r--r--agent/src/main/java/moe/yuuta/dn42peering/agent/provision/IProvisionService.java4
-rw-r--r--agent/src/main/java/moe/yuuta/dn42peering/agent/provision/ProvisionServiceImpl.java6
-rw-r--r--agent/src/main/resources/wg.conf.ftlh2
-rw-r--r--central/src/main/java/moe/yuuta/dn42peering/peer/Peer.java2
5 files changed, 10 insertions, 8 deletions
diff --git a/agent/src/main/java/moe/yuuta/dn42peering/agent/grpc/AgentServiceImpl.java b/agent/src/main/java/moe/yuuta/dn42peering/agent/grpc/AgentServiceImpl.java
index 565def5..c1f3971 100644
--- a/agent/src/main/java/moe/yuuta/dn42peering/agent/grpc/AgentServiceImpl.java
+++ b/agent/src/main/java/moe/yuuta/dn42peering/agent/grpc/AgentServiceImpl.java
@@ -69,7 +69,7 @@ class AgentServiceImpl extends VertxAgentGrpc.AgentVertxImplBase {
request.getNode().getIpv6(),
(int)request.getId(),
request.getListenPort(),
- request.getEndpoint(),
+ request.getEndpoint().isEmpty() ? "" : request.getEndpoint(),
request.getPeerPubKey(),
request.getSelfPrivKey(),
request.getSelfPresharedSecret(),
@@ -89,7 +89,7 @@ class AgentServiceImpl extends VertxAgentGrpc.AgentVertxImplBase {
request.getNode().getIpv6(),
(int)request.getId(),
request.getListenPort(),
- request.getEndpoint(),
+ request.getEndpoint().isEmpty() ? "" : request.getEndpoint(),
request.getPeerPubKey(),
request.getSelfPrivKey(),
request.getSelfPresharedSecret(),
diff --git a/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/IProvisionService.java b/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/IProvisionService.java
index 07083e7..c0a9bad 100644
--- a/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/IProvisionService.java
+++ b/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/IProvisionService.java
@@ -52,7 +52,7 @@ public interface IProvisionService {
@Nonnull String localIP6,
int id,
int listenPort,
- @Nonnull String endpointWithPort,
+ @Nullable String endpointWithPort,
@Nonnull String peerPubKey,
@Nonnull String selfPrivKey,
@Nonnull String selfPresharedSecret,
@@ -66,7 +66,7 @@ public interface IProvisionService {
@Nonnull String localIP6,
int id,
int listenPort,
- @Nonnull String endpointWithPort,
+ @Nullable String endpointWithPort,
@Nonnull String peerPubKey,
@Nonnull String selfPrivKey,
@Nonnull String selfPresharedSecret,
diff --git a/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/ProvisionServiceImpl.java b/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/ProvisionServiceImpl.java
index fa672c8..714f66e 100644
--- a/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/ProvisionServiceImpl.java
+++ b/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/ProvisionServiceImpl.java
@@ -98,7 +98,7 @@ class ProvisionServiceImpl implements IProvisionService {
@Nonnull String localIP6,
@Nonnull String dev,
int listenPort,
- @Nonnull String endpointWithPort,
+ @Nullable String endpointWithPort,
@Nonnull String peerPubKey,
@Nonnull String selfPrivKey,
@Nonnull String selfPresharedSecret,
@@ -206,7 +206,7 @@ class ProvisionServiceImpl implements IProvisionService {
@Nonnull String localIP6,
int id,
int listenPort,
- @Nonnull String endpointWithPort,
+ @Nullable String endpointWithPort,
@Nonnull String peerPubKey,
@Nonnull String selfPrivKey,
@Nonnull String selfPresharedSecret,
@@ -240,7 +240,7 @@ class ProvisionServiceImpl implements IProvisionService {
@Nonnull String localIP6,
int id,
int listenPort,
- @Nonnull String endpointWithPort,
+ @Nullable String endpointWithPort,
@Nonnull String peerPubKey,
@Nonnull String selfPrivKey,
@Nonnull String selfPresharedSecret,
diff --git a/agent/src/main/resources/wg.conf.ftlh b/agent/src/main/resources/wg.conf.ftlh
index 57ff790..f68cb51 100644
--- a/agent/src/main/resources/wg.conf.ftlh
+++ b/agent/src/main/resources/wg.conf.ftlh
@@ -16,5 +16,7 @@ Table = off
[Peer]
PublicKey = ${peer_pub_key}
PresharedKey = ${preshared_key}
+<#if endpoint??>
Endpoint = ${endpoint}
+</#if>
AllowedIPs = 0.0.0.0/0, ::/0
diff --git a/central/src/main/java/moe/yuuta/dn42peering/peer/Peer.java b/central/src/main/java/moe/yuuta/dn42peering/peer/Peer.java
index 31560ad..505d441 100644
--- a/central/src/main/java/moe/yuuta/dn42peering/peer/Peer.java
+++ b/central/src/main/java/moe/yuuta/dn42peering/peer/Peer.java
@@ -197,7 +197,7 @@ public class Peer {
return WGRequest.newBuilder()
.setId(getId())
.setListenPort(Integer.parseInt(calcWireGuardPort()))
- .setEndpoint(String.format("%s:%d", getWgEndpoint(), getWgEndpointPort()))
+ .setEndpoint(getWgEndpoint() == null ? "" : String.format("%s:%d", getWgEndpoint(), getWgEndpointPort()))
.setPeerPubKey(getWgPeerPubkey())
.setSelfPrivKey(getWgSelfPrivKey())
.setSelfPresharedSecret(getWgPresharedSecret())