Hi Glenn, Sorry for the slow reply, I was on vacation this week. On Sun, 2014-09-21 at 10:41 -0600, Glenn Golden wrote: > Btw, if it's of any use to the project, attached is a heavily commented version > of pa_context_connect(). That's what I'm using in the writeup as the basis > for both a high-level description and a more detailed discussion. (That > commented version will be included in the writeup pretty much as-is.) > > If you or Tanu have time to look thru it and let me know if any of the > commented understanding there is wrong, it would be greatly appreciated. I only found one instance where the understanding was somewhat wrong: in the end, there's this comment: // Now, via try_next_connection() [which AFAICT, despite its name, really tries *all* // entries in c->server_list, not just the "next" one]. It attempts a connect to // each server mentioned in server_list, and returns in error only if all the // attempts fail. // pa_log_debug("GDG: server_list: %s", pa_strlist_tostring(c->server_list)); pa_context_set_state(c, PA_CONTEXT_CONNECTING); r = try_next_connection(c); try_next_connection() doesn't necessarily try all entries in server_list. It processes more than one entry if the connection attempt fails immediately, but it's also possible that the connection fails at a later time. In that case, the try_next_connection() call in pa_context_connect() returns indicating success, and later, when the error happens, try_next_connection() is called again to try the next server entry. -- Tanu