Opened 13 years ago

Closed 11 years ago

#822 closed Defect (Invalid)

Colloquy gratuitously drops network connections on Network Change Notifications

Reported by: jkh@… Owned by: timothy
Component: Colloquy (Mac) Version: 2.1 (Mac)
Severity: Major Keywords: network disconnect interrupt
Cc: grahamperrin


OK, so perhaps the summary is merely a guess as to what is happening, but here are the symptoms which lead me to believe this is what's going on:

  1. Have one or more connections open to IRC server(s)
  2. Bring up a VPN connection which merely adds a route to another network (no existing routes are affected)
  3. Watch colloquy disconnect all open IRC server connections.

Needless to say, it's somewhat obnoxious to see all your connections dropped when there was absolutely no reason to drop them (iChat also does this, and there are bugs filed against it for the same reason).  As near as I can see, there are two options:

  1. Simply do nothing with network change notifications, like every other IRC client you've probably ever seen, and allow connections to time out naturally when connectivity has actually disappeared.  You can also implement some sort of TCP KeepAlive? behavior (as ssh does) if you want to force such connection timeouts to happen more quickly.
  1. Use the network change notify as a hint to go spawn another thread which tries to do some sort of handshake with the open server connections.  If the servers are still reachable, fine, do nothing.  If they genuinely have gone comatose, close the connections as you do today.

Change History (6)

comment:1 Changed 13 years ago by jjwiseman@…

I run into this same issue when I plug in/unplug the ethernet on my powerbook: despite already being connected via airport, Colloquy disconnects and reconnects.

It is very annoying.

comment:2 Changed 12 years ago by kpreid

I've been encountering this too. This is particularly irritating as I have my Ethernet and AirPort? interfaces set up to use the same IP address, specifically so that I can switch over without dropping TCP connections. Colloquy's disconnect+reconnect is therefore entirely unnecessary.

Version 2.0.1 (2D32) did not do this.

I suggest at least checking whether the new network configuration includes a local IP address which is the local address of the currently open IRC connection, and not disconnecting if so.

comment:3 Changed 12 years ago by etherflan

  • Keywords network disconnect added
  • priority changed from normal to high

comment:4 Changed 11 years ago by grahamperrin

  • Cc grahamperrin added

comment:5 Changed 11 years ago by grahamperrin

  • Keywords interrupt added

comment:6 Changed 11 years ago by timothy

  • Resolution set to invalid
  • Status changed from new to closed

Colloquy is not actively disconnecting connections on network change, we don't have any code to do such a thing. This is the system dropping the sockets. I don't have this happen when I connect to and from VPN. Maybe you VPN (or Ethernet) connection is ordered higher in the system Network preferences and the system attempts to drop the lower connections and use the new preferred network interface? (My VPN is below Ethernet and Airport.)

Any way, not fixable in Colloquy.

Note: See TracTickets for help on using tickets.