Skip to content

Feature Request: Allow specifying the address when binding to a port #378

Open
@lhchavez

Description

@lhchavez

When opening a Java debugging session in my local machine, I'd prefer to be able to have the TCP port that the debug server will bind to in the loopback interface instead of in all of them, mostly out of paranoia when I'm working on a shared WiFi.

Also (and maybe less interesting to other folks), at replit.com, we detect TCP ports bound to 0.0.0.0 and treat them magically as web servers, so this should also prevent opening a debug session causing an unintended web server from being "deployed".

So I would like for it to be specify what interface and/or port the JavaDebugServer should bind to. Since the JavaDebugServer is a singleton, it might make sense to configure this through a system property (since sending this configuration in the initialize message may not have the intended effect if the LSP process had already spawned one JavaDebugServer instance). So something like

$ java \
        -Declipse.application=org.eclipse.jdt.ls.core.id1 \
        -Dosgi.bundles.defaultStartLevel=4 \
        -Declipse.product=org.eclipse.jdt.ls.core.product \
        -Dcom.microsoft.java.debug.serverAddress=localhost:12345 \  # <- a brand new property
        -noverify \
        -Xmx256m \
        -jar ../jdt/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar \
        -configuration ../jdt/config_linux \
        -data /home/runner/JavaDAP \
        --add-modules=ALL-SYSTEM \
        --add-opens', 'java.base/java.util=ALL-UNNAMED \
        --add-opens', 'java.base/java.lang=ALL-UNNAMED

should do the trick.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions