diff --git a/bubble-server/src/main/java/bubble/model/device/DeviceStatus.java b/bubble-server/src/main/java/bubble/model/device/DeviceStatus.java index 60487ac8..3152692d 100644 --- a/bubble-server/src/main/java/bubble/model/device/DeviceStatus.java +++ b/bubble-server/src/main/java/bubble/model/device/DeviceStatus.java @@ -14,6 +14,8 @@ import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; import org.cobbzilla.wizard.cache.redis.RedisService; +import java.util.List; + import static java.util.concurrent.TimeUnit.*; import static org.cobbzilla.util.daemon.ZillaRuntime.now; import static org.cobbzilla.util.daemon.ZillaRuntime.shortError; @@ -27,6 +29,8 @@ public class DeviceStatus { public boolean hasIp () { return ip != null; } @Getter @Setter private int port; + @Getter @Setter private List vpnIps; + @Getter @Setter private GeoLocation location; @Getter @Setter private String bytesSent; @@ -45,8 +49,12 @@ public class DeviceStatus { public static final String DEVICE_STATUS_TRANSFER_SUFFIX = "_transfer"; public static final String DEVICE_STATUS_HANDSHAKE_SUFFIX = "_latestHandshake"; - public DeviceStatus(RedisService redis, String geoAccount, GeoService geoService, String deviceUuid) { - + public DeviceStatus(RedisService redis, + String geoAccount, + GeoService geoService, + String deviceUuid, + List vpnIps) { + this.vpnIps = vpnIps; final String endpoint = redis.get_plaintext(DEVICE_STATUS_PREFIX+deviceUuid+DEVICE_STATUS_ENDPOINT_SUFFIX); if (endpoint != null) { try { diff --git a/bubble-server/src/main/java/bubble/service/device/StandardDeviceService.java b/bubble-server/src/main/java/bubble/service/device/StandardDeviceService.java index 62e8054b..07a70bf5 100644 --- a/bubble-server/src/main/java/bubble/service/device/StandardDeviceService.java +++ b/bubble-server/src/main/java/bubble/service/device/StandardDeviceService.java @@ -268,7 +268,8 @@ public class StandardDeviceService implements DeviceService { @Override public DeviceStatus getLiveDeviceStatus(String deviceUuid) { if (configuration.testMode()) return NO_DEVICE_STATUS; - return new DeviceStatus(redis, accountDAO.getFirstAdmin().getUuid(), geoService, deviceUuid); + final List vpnIps = findIpsByDevice(deviceUuid); + return new DeviceStatus(redis, accountDAO.getFirstAdmin().getUuid(), geoService, deviceUuid, vpnIps); } private Device findTestDevice(String ipAddr) {