


CREATE FUNCTION citus_check_defaults_for_sslmode()
    RETURNS void
    LANGUAGE C STRICT
    AS 'MODULE_PATHNAME', $$citus_check_defaults_for_sslmode$$;

DO LANGUAGE plpgsql
$$
BEGIN
    -- Citus 8.1 and higher default to requiring SSL for all outgoing connections
    -- (specified by citus.node_conninfo).
    -- If it looks like we are about to enforce ssl for outgoing connections on a postgres
    -- installation that does not have ssl turned on we fall back to sslmode=prefer for
    -- outgoing connections.
    -- This will only be the case for upgrades from previous versions of Citus, on new
    -- installations we will have turned on ssl in an earlier stage of the extension
    -- creation.
    IF
        NOT current_setting('ssl')::boolean
	THEN
	    PERFORM citus_check_defaults_for_sslmode();
	END IF;
END;
$$;

DROP FUNCTION citus_check_defaults_for_sslmode();
