BUG/MEDIUM: connections: Don't assume we have a mux in connect_server().

When dealing with the previous connection, don't assume it has a mux, as it
may not yet be the case if we're waiting for the ALPN.
diff --git a/src/backend.c b/src/backend.c
index 7a2168a..8e27696 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1106,8 +1106,8 @@
 	old_conn = srv_conn = s->sess->srv_conn;
 	if (srv_conn)
 		reuse = (s->target == srv_conn->target) &&
-		    (srv_conn->mux->avail_streams(srv_conn) > 0) &&
-		    conn_xprt_ready(srv_conn);
+		    conn_xprt_ready(srv_conn) && srv_conn->mux &&
+		    (srv_conn->mux->avail_streams(srv_conn) > 0);
 
 	if (srv && !reuse) {
 		srv_conn = NULL;
@@ -1195,15 +1195,16 @@
 				LIST_DEL(&sess->conn_list);
 				if (old_conn &&
 				    !(old_conn->flags & CO_FL_PRIVATE) &&
+				    old_conn->mux != NULL &&
 				    (old_conn->mux->avail_streams(old_conn) > 0) &&
 				    (srv_conn->mux->avail_streams(srv_conn) == 1)) {
 					LIST_ADDQ(&old_conn->session_list, &sess->conn_list);
 					sess->srv_conn = old_conn;
+					did_switch = 1;
 				} else {
 					LIST_INIT(&sess->conn_list);
 					sess->srv_conn = NULL;
 				}
-				did_switch = 1;
 			}
 
 		}