hola-proxy: Unable to unmashal zgettunnels response: unexpected end of JSON input

MAIN    : 2023/05/28 11:24:25 main.go:178: INFO     hola-proxy client version v1.7.2 is starting...
MAIN    : 2023/05/28 11:24:25 main.go:179: INFO     Constructing fallback DNS upstream...
MAIN    : 2023/05/28 11:24:25 main.go:186: INFO     Initializing configuration provider...
CRED    : 2023/05/28 11:24:26 holaapi.go:360: INFO     zgettunnels error: unable to unmashal zgettunnels response: unexpected end of JSON input; will retry after 3.553s

It retries indefinitely without success with longer wait time prior to each retry.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 1
  • Comments: 15 (10 by maintainers)

Most upvoted comments

Released v1.9.0 with auto-resolve for ext_ver parameter.

Also this page may be easier to scrape the version number for the Chrome extension.

@Ackater I’ll just use the same API which browsers use to check extension for updates:

[22:49:56] dt1:~> curl -s 'https://clients2.google.com/service/update2/crx?prodversion=91.0&acceptformat=crx2%2Ccrx3&x=id%3Dgkojfkhlekighikafcpjkiklfbnlmeio%26uc' | xmllint --xpath "/*[name()='gupdate']/*[name()='app']/*[name()='updatecheck']/@version" -
 version="1.211.139"
[22:50:08] dt1:~> 

Should be plausible enough.

Fix (#84) released in v1.8.0

@Ackater

The api version number should probably be set using the response from bg_init since it seems like they’re going to block older versions pretty fast.

What concerns me in this approach is that their latest extension version now is 1.211.139 while bg_init returns 1.211.229. It works if send this version in zgettunnels request, even if bg_init was called with ver=1.210.946. But same way it will work if I’ll just set EXT_VER constant to 999.999.999.

It’s unclear for me what version do they return in the bg_init response.

@DarKWinGTM it’s a good idea to learn current ext_ver somehow automatically, but I’m not sure if ver in bg_init response is right.

Looks to be the same issue as last time #82 . The api version number should probably be set using the response from bg_init since it seems like they’re going to block older versions pretty fast.

-ext-ver 1.211.139

Thanks you i think versions must match with browser agent. So if we want to add EXT_VER we need to add BROWSER_AGENT too.

They don’t see User-Agent header in your requests most of the time, unless you’re browsing plaintext HTTP sites. Anyway I don’t think endpoint servers communicate that anyhow to API backend servers.

Sorry my worng, I mean. const EXT_BROWSER = “chrome”

But also would be nice to fetch current extension version from Chrome Web Store automatically. I hope I’ll implement it soon.

@DarKWinGTM no problem, I anticipated that move. Just add -ext-ver 1.211.139 command line argument to hola-proxy and it will use specified EXT_VER. Most current extension version can be seen here in additional information section: https://chrome.google.com/webstore/detail/hola-vpn-the-website-unbl/gkojfkhlekighikafcpjkiklfbnlmeio

Endpoint was changed again.

  • API Endpoint address was changed

Please check in payload screen. This payload in in Opera browser extensions.

Screenshot_2023-05-28_23-20-57