Gproxy by h3rmit

Moderator: LIHL Staff

Diablo_
Protector of Nature
Posts: 3180
Joined: Sat Apr 06, 2013 10:26 pm
Has thanked: 55 times
Been thanked: 145 times

Re: Gproxy by h3rmit

Postby Diablo_ » Sun Dec 04, 2016 5:10 pm

@hazardous
Yes set it to 3 minutes please.
-----
LIHL player parser, a tool to automatically parse LIHL players' Elo and create reports for it: CLICK

User avatar
HazarDous
Staff Department
Posts: 9051
Joined: Mon Jan 12, 2015 9:36 pm
Has thanked: 70 times
Been thanked: 227 times

Re: Gproxy by h3rmit

Postby HazarDous » Sun Dec 04, 2016 5:30 pm

@Diablo_

Set to 3 minutes.
These users thanked the author HazarDous for the post:
Diablo_ (Mon Dec 05, 2016 1:42 am)

User avatar
h3rmit
Resource Storage
Posts: 19
Joined: Sat Aug 27, 2016 12:15 am
Has thanked: 1 time
Been thanked: 16 times

Re: Gproxy by h3rmit

Postby h3rmit » Mon Dec 05, 2016 8:30 pm

@Diablo_

Diablo_ wrote:Reconnection time should definitely have priority, so yes, set it to 3 minutes please.

Are you sure it even increases delay? Doesn't sound very logical to me ^.^


Actually, Varlock, the original author of GProxy, describes it very clearly in his original post:

Varlock wrote:Unfortunately there is a quirk in Warcraft III that complicates the reconnection process.
Warcraft III will disconnect from GProxy++ if it doesn't receive a W3GS action at least every 65 seconds or so.
This puts a hard limit on the time we can take to reconnect to the server if the connection is broken.
I decided that 65 seconds was too short so I needed some way to send additional W3GS actions to extend the reconnect time.
However, W3GS actions (even empty ones) are "desyncable" which means we must ensure that every player receives the same actions in the same order.
We can't just have GProxy++ start sending empty actions to the disconnected player because the other players didn't receive those same actions.
And since the broken connection will be detected at different points, we can't go back in time to send empty actions to the connected players after someone disconnects.
The solution, while inelegant, is to send a defined number of empty actions between every single real action.
GProxy++ holds these empty actions in reserve, only sending them to the client when a subsequent real action is received.


So, when you set a reconnection limit of 3 minutes, it means that for every click that a player makes, every player will get 3 actions instead of one:

  • Real Action
  • Empty action
  • Empty action
  • Real Action
  • Empty action
  • Empty action
  • ...

Despite their name, "empty actions" are actual packets of comparable size to the other actions.

More data to transfer, more data to process. It is only logical that the delay increases.

I found Varlock's solution to be inelegant and inefficient (especially when setting large reconnection limits), so I devised a better solution. GProxy DLL deals with the core of the problem:

Varlock wrote:Warcraft III will disconnect from GProxy++ if it doesn't receive a W3GS action at least every 65 seconds or so.


Well, not anymore. GProxy DLL, when using the Extended protocol, forces Warcraft III to keep the connection alive for as much as we want, without sending any empty actions. During a test, I even managed to reconnect to a game after 2 hours.

GProxy DLL can fully replace any other version of GProxy, and can potentially provide unlimited reconnection time at no cost. I would suggest that every player who wants to have the ability to reconnect should use GProxy DLL.

Of course, compatibility can be kept for players still using, for whatever reason, the classic version of GProxy. But I think that they should at least not cause a negative impact to the other players. This can be achieved by keeping the classic GProxy reconnection limit to 1 minute (no extra empty actions).

GProxy DLL's extended reconnection limit can be as much as you want, without having any negative impact in the delay.

Your bots currently have 2 separate settings:

  • GProxy++ (Classic) reconnection time = 3 minutes
  • GProxy DLL (Extended) reconnection = 5 minutes

I would suggest setting the classic reconnection time to 1 minute and encourage players to switch to GProxy DLL.
These users thanked the author h3rmit for the post:
Diablo_ (Mon Dec 05, 2016 11:37 pm)

User avatar
Nore
Treant Protector
Posts: 502
Joined: Sat Jan 23, 2016 7:58 pm
Has thanked: 25 times
Been thanked: 26 times

Re: Gproxy by h3rmit

Postby Nore » Thu Dec 15, 2016 5:16 pm

Moving to the archive.

Thanks for the input and continual work on this old game of ours :)
God is my strength.

TinSoldier
Treant Protector
Posts: 630
Joined: Fri May 30, 2014 2:42 am
Has thanked: 56 times
Been thanked: 125 times

Re: Gproxy by h3rmit

Postby TinSoldier » Fri Dec 16, 2016 5:16 pm

@nore get ur ass on and earn me that fantasy elo niggaboy

User avatar
Dong
Donator
Posts: 598
Joined: Sat Jul 26, 2014 8:16 pm
Has thanked: 55 times
Been thanked: 36 times

Re: Gproxy by h3rmit

Postby Dong » Fri Dec 16, 2016 9:10 pm

iiStyLes wrote:@nore get ur ass on and earn me that fantasy elo niggaboy


Raported for redundant non conclusional semi nubness.
Thou shall self tk.

Kirim
Forest Walker
Posts: 159
Joined: Sat Sep 24, 2016 11:45 am
Has thanked: 2 times
Been thanked: 13 times

Re: Gproxy by h3rmit

Postby Kirim » Sat Dec 17, 2016 12:23 pm

@h3rmit do you know how I can get proxy working with the new patch?

User avatar
h3rmit
Resource Storage
Posts: 19
Joined: Sat Aug 27, 2016 12:15 am
Has thanked: 1 time
Been thanked: 16 times

Re: Gproxy by h3rmit

Postby h3rmit » Sun Dec 18, 2016 7:24 pm

GProxy DLL should work fine with the new patch 1.27.1.7085. No action is normally required from your part.

What problem are you experiencing? Can you provide a screenshot or more details about it?

We can easily determine the problem if you follow these steps:

  1. Locate gproxy.cfg in your Warcraft III folder and open it with Notepad. If you don't have one, create a new file or download one here.

  2. Add a new line:

    Code: Select all

    log = gproxy.log

  3. Save it and close Notepad.

  4. Launch Warcraft III and try to connect to Battle.net via the GProxy gateway. If you don't have a GProxy gateway, we'll see in the logs why that happens.

  5. Exit Battle.net and Warcraft III and show me the contents of your gproxy.log.

KiwiKiller[QQ]

Re: Gproxy by h3rmit

Postby KiwiKiller[QQ] » Sun Dec 18, 2016 8:34 pm

@h3rmit

I am now experimenting issues too. It was all working just fine yesterday, and now, when I try to connect to Bnet on GProxy gateway, it tells me something about beeing impossible to validate this version of the game, that I need to reconnect to Bnet or that I need to install a update manually (sorry, my game is in french).

WC3ScrnShot_121816_153244_01.tga
(3.52 MiB) Downloaded 41 times


Here is the content of my gproxy.log (I try to add the log = gproxy.log, but it didn't help) :

Code: Select all

bnet_hostname = useast.battle.net
log = gproxy.log

Thank you,
Kiwi

/edit : It is now working for no apparent reason :P
Last edited by KiwiKiller[QQ] on Sun Dec 18, 2016 9:21 pm, edited 2 times in total.

Diablo_
Protector of Nature
Posts: 3180
Joined: Sat Apr 06, 2013 10:26 pm
Has thanked: 55 times
Been thanked: 145 times

Re: Gproxy by h3rmit

Postby Diablo_ » Sun Dec 18, 2016 8:49 pm

I had the same problem yesterday, about 30 minutes later it worked normally again.
-----
LIHL player parser, a tool to automatically parse LIHL players' Elo and create reports for it: CLICK

User avatar
h3rmit
Resource Storage
Posts: 19
Joined: Sat Aug 27, 2016 12:15 am
Has thanked: 1 time
Been thanked: 16 times

Re: Gproxy by h3rmit

Postby h3rmit » Sun Dec 18, 2016 9:51 pm

@KiwiKiller[QQ] :

KiwiKiller[QQ] wrote:Here is the content of my gproxy.log (I try to add the log = gproxy.log, but it didn't help) :

Code: Select all

bnet_hostname = useast.battle.net
log = gproxy.log


That's your gproxy.cfg file. Search and locate another file, called gproxy.log.

There is detailed information in there.

@Diablo_ :

I would also like to see your gproxy.log to see what happens.

KiwiKiller[QQ]

Re: Gproxy by h3rmit

Postby KiwiKiller[QQ] » Sun Dec 18, 2016 11:11 pm

@h3rmit

I don't see any gproxy.log file, but there is a file named gproxy, here it is.

gproxy.log
(6.24 KiB) Downloaded 47 times


/edit : Nevermind, it looks like it's called gproxy.log hahahah it just wasn't called like this in my folder :D

Thank you,
Kiwi

User avatar
h3rmit
Resource Storage
Posts: 19
Joined: Sat Aug 27, 2016 12:15 am
Has thanked: 1 time
Been thanked: 16 times

Re: Gproxy by h3rmit

Postby h3rmit » Sun Dec 18, 2016 11:52 pm

I see, that's probably a race condition. It seems that sometimes Warcraft III somehow manages to load GProxy DLL before Game.dll is fully loaded.

I can't replicate the problem, but I'll try to fix it soon in the next version.

Kirim
Forest Walker
Posts: 159
Joined: Sat Sep 24, 2016 11:45 am
Has thanked: 2 times
Been thanked: 13 times

Re: Gproxy by h3rmit

Postby Kirim » Tue Dec 20, 2016 2:07 am

Thanks @h3rmit

Diablo_
Protector of Nature
Posts: 3180
Joined: Sat Apr 06, 2013 10:26 pm
Has thanked: 55 times
Been thanked: 145 times

Re: Gproxy by h3rmit

Postby Diablo_ » Wed Dec 21, 2016 10:34 pm

@h3rmit

Again had the "Unable to validate version." error when trying to log into bnet with your gproxy.

Logfile when it worked:
Spoiler!
[Wed Dec 21 21:45:06 2016] [GPROXY] starting up
[Wed Dec 21 21:45:06 2016] [GPROXY] starting winsock
[Wed Dec 21 21:45:06 2016] [GPROXY] setting process priority to "above normal"
[Wed Dec 21 21:45:06 2016] [GPROXY] setting thread priority to "above normal"
[Wed Dec 21 21:45:06 2016] [DEBUG] Game.dll version: 1.27.1.7085
[Wed Dec 21 21:45:06 2016] [DEBUG] Game.dll base address: 0x61020000
[Wed Dec 21 21:45:06 2016] [DEBUG] AuthInfo 127a signature found at: 0x8ddd95
[Wed Dec 21 21:45:06 2016] [DEBUG] AuthInfo 126a signature found at: 0x0
[Wed Dec 21 21:45:06 2016] [DEBUG] Timeout signature found at: 0x98446b
[Wed Dec 21 21:45:06 2016] [DEBUG] Disconnect signature found at: 0x3a9e40
[Wed Dec 21 21:45:06 2016] [DEBUG] LANBroadcastPort signature found at: 0x0
[Wed Dec 21 21:45:06 2016] [GPROXY] found GProxy gateway. Setting it as default.
[Wed Dec 21 21:45:06 2016] [GPROXY] Gateway settings saved
[Wed Dec 21 21:45:06 2016] [GPROXY] listening for game connections on port [6125]
[Wed Dec 21 21:45:06 2016] [GPROXY] listening for warcraft connections on port [6112]
[Wed Dec 21 21:45:06 2016] [GPROXY] GProxy/DLL Version 0.06 by h3rmit
[Wed Dec 21 21:45:08 2016] [WARCRAFT: 127.0.0.1] connecting to bnet server [useast.battle.net]
[Wed Dec 21 21:45:08 2016] [DEBUG] The last update took a bit too long 218ms
[Wed Dec 21 21:45:09 2016] [WARCRAFT: 127.0.0.1] connected to [199.108.55.51]


Logfile when it did not work:
Spoiler!
[Wed Dec 21 20:36:56 2016] [GPROXY] starting up
[Wed Dec 21 20:36:56 2016] [GPROXY] starting winsock
[Wed Dec 21 20:36:56 2016] [GPROXY] setting process priority to "above normal"
[Wed Dec 21 20:36:56 2016] [GPROXY] setting thread priority to "above normal"
[Wed Dec 21 20:36:56 2016] [DEBUG] Game.dll version: 1.27.1.7085
[Wed Dec 21 20:36:56 2016] [DEBUG] Game.dll base address: 0x5ccf0000
[Wed Dec 21 20:36:56 2016] [DEBUG] AuthInfo 127a signature found at: 0x8ddd95
[Wed Dec 21 20:36:56 2016] [DEBUG] AuthInfo 126a signature found at: 0x0
[Wed Dec 21 20:36:56 2016] [DEBUG] Timeout signature found at: 0x98446b
[Wed Dec 21 20:36:56 2016] [DEBUG] Disconnect signature found at: 0x3a9e40
[Wed Dec 21 20:36:56 2016] [DEBUG] LANBroadcastPort signature found at: 0x0
[Wed Dec 21 20:36:56 2016] [GPROXY] found GProxy gateway
[Wed Dec 21 20:36:56 2016] [GPROXY] listening for game connections on port [6125]
[Wed Dec 21 20:36:56 2016] [GPROXY] listening for warcraft connections on port [6112]
[Wed Dec 21 20:36:56 2016] [GPROXY] GProxy/DLL Version 0.06 by h3rmit
[Wed Dec 21 20:36:59 2016] [WARCRAFT: 127.0.0.1] connecting to bnet server [useast.battle.net]
[Wed Dec 21 20:36:59 2016] [WARCRAFT: 127.0.0.1] connected to [199.108.55.62]
[Wed Dec 21 20:37:00 2016] [TCPSOCKET] closed by remote host
[Wed Dec 21 20:37:00 2016] [WARCRAFT: 127.0.0.1] local socket disconnected
[Wed Dec 21 20:37:02 2016] [GPROXY] shutting down
[Wed Dec 21 20:37:02 2016] [GPROXY] shutting down patcher
[Wed Dec 21 20:37:02 2016] [GPROXY] shutting down winsock
[Wed Dec 21 20:37:02 2016] [GPROXY] successfully shut down
-----
LIHL player parser, a tool to automatically parse LIHL players' Elo and create reports for it: CLICK


Return to “LIHL Archive”

Who is online

Users browsing this forum: No registered users and 17 guests