With Microsoft OCS or Lync, and Adium 1.5.10 sipe 1.18.3, connections to OCS and Lync do not auto-connect when Adium starts, and do not reconnect on wake from sleep / network changes.
Mac OS X 10.9.4.
I started it in debug mode, and no mention of the OCS/Lync accounts are made. In the "Accounts" window, they both show "Network Offline".
Auto-connect to GTalk and Sametime work just fine.
Protocol plugins don't control the connection state in libpurple architecture, the UI client does. This works fine with Pidgin. So I guess the problem must be in Adium.
Closing as NOTABUG.
Is the "Connect when Adium opens" checkbox checked in the "Accounts" preference panel?
Just tested on my loaner Mac: "Connect when Adium opens" is checked, but Adium stays offline after returning from sleep.
Then I added an IRC account. It immediately went online after adding and Adium goes online after returning from sleep. The Lync accout stays offline.
Looks like another stupid Adium design decision that the default is not the default, i.e. plugins have to programmatically ask for the default. Re-opening.
Quick debugging session: in hostReachabilityChanged
[account host]
on the SIPE account object returns the machine name instead of the account name. Therefore the string compare fails and Adium will not try to connect the SIPE account.This might not be simple to fix. Adium uses the host name from an account to do a DNS test when returning from sleep. In the case of server auto-detect, i.e. server:port is empty, we don't have a server name and instead set the local machine name to KEY_CONNECT_HOST. Obviously the DNS test fails for the nick name or it isn't tried at all, because it is not a valid DNS name.
Possible workarounds
Last edit: Stefan Becker 2014-08-28
Should be fixed by git commit 4f7b82f. In my tests the only working solution was to set KEY_CONNECT_HOST to "localhost".
CLOSING
For the record: this regression was introduced in 1.18.1 by git commit b5cec744
The reasoning for that change states "localhost always being available". I tried to verify this with the following series of tests:
Case 3 is clearly a bug in Adium, i.e. the reachability code isn't triggered at all when network goes away.
Cases 1, 2 & 4 using "localhost" would lead to "undesired" behaviour. IMHO this can't be fixed on plugin level and it is clearly better than not working at all. Adium network observer code should be fixed to not execute reachability testing if no network devices are online, i.e. the only active devices are loopback devices.
Pushed git commit c8b699e to replace "localhost" with "adium.im". This will prevent SIPE from going online when there is no network connection.
Please note that if you have an intranet-only setup, you will not be able to reach "adium.im" and therefore SIPE will not auto-connect. I will update the FAQ accordingly.
Tested cases with WiFi always off:
Thanks guys. Is there a nightly build out there that I can test without having to build it myself? Otherwise I'll give that a shot.
No, there is no nightly build. Building the plugin on Mac is pretty simple
Yep, I had already done a build. Looks like this works. Thanks!