



@deftypefun {int} {gnutls_ext_raw_parse} (void * @var{ctx}, gnutls_ext_raw_process_func @var{cb}, const gnutls_datum_t * @var{data}, unsigned int @var{flags})
@var{ctx}: a pointer to pass to callback function

@var{cb}: callback function to process each extension found

@var{data}: TLS extension data

@var{flags}: should be zero or @code{GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO}  or @code{GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO} 

This function iterates through the TLS extensions as passed in
 @code{data} , passing the individual extension data to callback. The
 @code{data} must conform to Extension extensions<0..2^16-1> format.

If flags is @code{GNUTLS_EXT_RAW_TLS_FLAG_CLIENT_HELLO}  then this function
will parse the extension data from the position, as if the packet in
 @code{data} is a client hello (without record or handshake headers) -
as provided by @code{gnutls_handshake_set_hook_function()} .

The return value of the callback will be propagated.

@strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, or an error code. On unknown
flags it returns @code{GNUTLS_E_INVALID_REQUEST} .

@strong{Since:} 3.6.3
@end deftypefun
