Jump to content

Socket Failures Throughout Install


Recommended Posts

Posted

Hello developers. I'd like to make a suggestion regarding socket failures during install.

 

I run a firewall for protection, e.g. Windows 7 Firewall Control. There are 2-3 places during the install where the socket connection will be thwarted by the firewall's GUI prompt until I authorize the socket connection from the current executable (either outgoing only, incoming only, or both).

 

However, Emby setup programs do not have a [Retry] button to spin around and attempt to connect out to the internet, again.

 

Example, trying to install the new Emby Server 3.0.5818 after downloading.

 

- Run Setup.exe

- Setup.exe tries to connect outbound TCP/IP. Firewall control pops up warning against C:\Users\...\Setup.exe. Click [Outgoing] to authorize.

- Setup.exe has failed. Click [Close] and run Setup.exe, again.

- Setup runs and bootstraps the next MediaBrowser.Server.Installer(1).

- Installer tries to connect outbound TCP/IP. Firewall control pops up...etc. Click [Outgoing] to authorize.

- Run Setup.exe (!) again. It makes it to the bootstrap of the Installer, again, and tries to start the main Server.

- Server tries to connect outbound to check for updates (?) etc. Firewall pops up against Emby.Server. Click [both] (Emby probably requires outgoing as well as incoming connections).

- Server fails. Yada-yada. You get the idea.

 

This is a common problem (people having firewalls that block socket connections, at least initially). Many other software packages seem to be coding for this, as I've seen newer updates finally work, like Mp3tag, Audacity, uTorrent, etc. I think the software is waiting a second and spinning around its while () loop to try again, perhaps allowing for several attempts with a few seconds in between. Just guessing (as a former software consultant).

 

Solution #1 (?): Add a [Retry] button to each and every install phase (Setup, Server.Installer, Server, ...) This would have to be implemented on every phase of every *.exe we produce (Server, Theater, WMC). I imagine other operating systems also provide firewalls with GUI prompts, so this is probably not a Windows-only problem.

 

Solution #2 (?): Surround every bootstrap socket connection block with e.g. for ( uint i = 0; i < MAX_RETRIES; ++i ) { ...; sleep RETRY_SLEEP; }....that sort of thing. Give each download phase the ability to try several times, perhaps with a few seconds between each try (long enough for a user to open the firewall).

 

Thanks developers! You're awesome! Proud lifetime supporter and love the product!

 

Mike

 

  • Like 1
Posted

Thanks, good feedback. It's actually not part of the install but rather the initial run of the program, and it does retry on the next startup but you're right, some in-app retry would be helpful too.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...