I will give you some background. Our network is behind a corporate proxy and thus we need to go through it to access to Internet. That's why we have defined the two standard environment variables, http_proxy and no_proxy, to configure several tools (curl for instance), to use the proxy. The slaves and the master are on the same network so they can communicate directly, that's why we didn't set the system properties http.proxyHost and so on.
We were previously running Jenkins 1.596.3 which uses remoting 2.47, and this version doesn't include the PR27. And with this PR the trouble begins because the slave started to take in account only the first env var I mentioned: http_proxy. no_proxy is read. And the PR55 which is related to this issue doesn't fix this either. It just introduced the use of ProxySelector which automatically take in account the exception list ... defined by the system property http.nonProxyHosts. And as in the PR27 it reads the http_proxy env var as a fallback, but doesn't use no_proxy at all!
To be more clear, we the proxy features on our side. It's just that the slave started with the PR27 to read some env var it should not (because that's not how the JVM should be configured). So either we need to take in account no_proxy or we remove from the two methods the part which use http_proxy: https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/Util.java#L114 & https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/Util.java#L114.
I've reopened this issue because to my understanding the goal of this issue wasn't just to add the support for http.nonProxyHosts but to correct PR27. Should we create a new issue?