### Function

# Gio SocketControlMessage deserialize

since: 2.22

#### Declaration

    GSocketControlMessage*
    g_socket_control_message_deserialize (
      int level,
      int type,
      gsize size,
      gpointer data
    )

#### Description

Tries to deserialize a socket control message of a given `level` and `type`. This will ask all known (to GType) subclasses of `GSocketControlMessage` if they can understand this kind of message and if so deserialize it into a `GSocketControlMessage`.

If there is no implementation for this kind of control message, `NULL` will be returned.

Available since: 2.22

#### Parameters

`level`

  Type: `int`

  A socket level.

`type`

  Type: `int`

  A socket control message type for the given `level`.

`size`

  Type: `gsize`

  The size of the data in bytes.

`data`

  Type: An array of `guint8`

  Pointer to the message data.

  The length of the array is specified in the `size` argument.

#### Return value

Type: `GSocketControlMessage`

The deserialized message or `NULL`.

The caller of the function takes ownership of the data, and is responsible for freeing it.
The return value can be `NULL`.