#define DEFAULT_MULTICAST_IFACE NULL
#define DEFAULT_NTP_SYNC FALSE
#define DEFAULT_USE_PIPELINE_CLOCK FALSE
+#define DEFAULT_TLS_VALIDATION_FLAGS G_TLS_CERTIFICATE_VALIDATE_ALL
enum
{
PROP_NTP_SYNC,
PROP_USE_PIPELINE_CLOCK,
PROP_SDES,
+ PROP_TLS_VALIDATION_FLAGS,
PROP_LAST
};
"The SDES items of this session",
GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstRTSPSrc::tls-validation-flags:
+ *
+ * TLS certificate validation flags used to validate server
+ * certificate.
+ *
+ * Since: 1.2.1
+ */
+ g_object_class_install_property (gobject_class, PROP_TLS_VALIDATION_FLAGS,
+ g_param_spec_flags ("tls-validation-flags", "TLS validation flags",
+ "TLS certificate validation flags used to validate the server certificate",
+ G_TYPE_TLS_CERTIFICATE_FLAGS, DEFAULT_TLS_VALIDATION_FLAGS,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
/**
* GstRTSPSrc::handle-request:
* @rtspsrc: a #GstRTSPSrc
src->ntp_sync = DEFAULT_NTP_SYNC;
src->use_pipeline_clock = DEFAULT_USE_PIPELINE_CLOCK;
src->sdes = NULL;
+ src->tls_validation_flags = DEFAULT_TLS_VALIDATION_FLAGS;
/* get a list of all extensions */
src->extensions = gst_rtsp_ext_list_get ();
case PROP_SDES:
rtspsrc->sdes = g_value_dup_boxed (value);
break;
+ case PROP_TLS_VALIDATION_FLAGS:
+ rtspsrc->tls_validation_flags = g_value_get_flags (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_SDES:
g_value_set_boxed (value, rtspsrc->sdes);
break;
+ case PROP_TLS_VALIDATION_FLAGS:
+ g_value_set_flags (value, rtspsrc->tls_validation_flags);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
GST_DEBUG_OBJECT (src, "sanitized uri %s", info->url_str);
+ if (info->url->transports & GST_RTSP_LOWER_TRANS_TLS) {
+ if (!gst_rtsp_connection_set_tls_validation_flags (info->connection,
+ src->tls_validation_flags))
+ GST_WARNING_OBJECT (src, "Unable to set TLS validation flags");
+ }
+
if (info->url->transports & GST_RTSP_LOWER_TRANS_HTTP)
gst_rtsp_connection_set_tunneled (info->connection, TRUE);