if (! newconn)
CONNECTION *mutt_socket_select_connection (char *host, int port, int flags){  CONNECTION *conn;#ifdef USE_SSL  if (flags != M_NEW_SOCKET && flags != M_NEW_SSL_SOCKET)#else  if (flags != M_NEW_SOCKET)#endif  {    conn = Connections;    while (conn)    {      if (!mutt_strcmp (host, conn->server) && (port == conn->port))	return conn;      conn = conn->next;    }  }  conn = (CONNECTION *) safe_calloc (1, sizeof (CONNECTION));  conn->bufpos = 0;  conn->available = 0;  conn->uses = 0;  conn->server = safe_strdup (host);  conn->preconnect = safe_strdup (ImapPreconnect);   conn->port = port;  conn->next = Connections;  Connections = conn;#ifdef USE_SSL  if (flags == M_NEW_SSL_SOCKET)   {      conn->read = ssl_socket_read;      conn->write = ssl_socket_write;      conn->open = ssl_socket_open;      conn->close = ssl_socket_close;  }  else#endif  {    conn->read = raw_socket_read;    conn->write = raw_socket_write;    conn->open = raw_socket_open;    conn->close = raw_socket_close;  }  return conn;}