---
name: "gnutls_ia_set_client_avp_function"
section: "3"
platform: "linux"
package: "gnutls-doc"
version: "2.8.6-1+squeeze3"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/gnutls_ia_set_client_avp_function"
---

# gnutls\_ia\_set\_client\_avp\_function(3)

Used to set a AVP callback

## NAME

gnutls\_ia\_set\_client\_avp\_function - Used to set a AVP callback

## SYNOPSIS

**#include \<gnutls/extra.h\>**

**void gnutls\_ia\_set\_client\_avp\_function(gnutls\_ia\_client\_credentials\_t** *cred***, gnutls\_ia\_avp\_func** *avp\_func***);**

## ARGUMENTS

- gnutls\_ia\_client\_credentials\_t cred

  is a **gnutls\_ia\_client\_credentials\_t** structure.

- gnutls\_ia\_avp\_func avp\_func

  is the callback function

## DESCRIPTION

Set the TLS/IA AVP callback handler used for the session.

The AVP callback is called to process AVPs received from the server, and to get a new AVP to send to the server.

The callback's function form is: int (\*avp\_func) (gnutls\_session\_t session, void \*ptr, const char \*last, size\_t lastlen, char \*\*next, size\_t \*nextlen);

The *session* parameter is the **gnutls\_session\_t** structure corresponding to the current session.  The *ptr* parameter is the application hook pointer, set through **gnutls\_ia\_set\_client\_avp\_ptr()**.  The AVP received from the server is present in *last* of *lastlen* size, which will be **NULL** on the first invocation.  The newly allocated output AVP to send to the server should be placed in \**next* of \**nextlen* size.

The callback may invoke **gnutls\_ia\_permute\_inner\_secret()** to mix any generated session keys with the TLS/IA inner secret.

Return 0 (**GNUTLS\_IA\_APPLICATION\_PAYLOAD**) on success, or a negative error code to abort the TLS/IA handshake.

Note that the callback must use allocate the *next* parameter using **gnutls\_malloc()**, because it is released via **gnutls\_free()** by the TLS/IA handshake function.

## REPORTING BUGS

Report bugs to \<bug-gnutls@gnu.org\>. GnuTLS home page: http://www.gnu.org/software/gnutls/ General help using GNU software: http://www.gnu.org/gethelp/

## COPYRIGHT

Copyright © 2008 Free Software Foundation.\
 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

## SEE ALSO

The full documentation for **gnutls** is maintained as a Texinfo manual.  If the **info** and **gnutls** programs are properly installed at your site, the command

-

  **info gnutls**

should give you access to the complete manual.
