The class SniSocketFactory should be renamed SniProxySocketFactory. The class in question produces objects of type SniProxySocket. An "SNI socket" isn’t a thing but an SNI proxy is a thing. The factory class that produces proxy socket factories (yes a meta factory) ProxySocketFactories uses the “ProxySocket” name as well. It fells very inconsistent with all the other classes that make up with API for SniSocketFactory to not have a proxy in it and be called SniProxySocketFactory.