---
name: "rc_avpair_new"
section: "3"
platform: "linux"
package: "radcli"
version: "2.0.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/rc_avpair_new"
---

# rc\_avpair\_new(3)

Make a new attribute-value pair with given parameters.

## NAME

rc\_avpair\_new - Make a new attribute-value pair with given parameters.

## SYNOPSIS

```
#include <radcli/>

VALUE_PAIR * rc_avpair_new(
    rc_handle const  *rh,
    uint32_t          attrid,
    void const       *pval,
    int               len,
    uint32_t          vendorspec
);
```

## DESCRIPTION

See rc\_avpair\_assign() for the format of the data.

## PARAMETERS

- **rh**

  a handle to parsed configuration.

- **attrid**

  The attribute of the pair to add (e.g., PW\_USER\_NAME).

- **pval**

  the value (e.g., the actual username).

- **len**

  the length of pval, or -1 if to calculate (in case of strings).

- **vendorspec**

  The vendor ID in case of a vendor specific value - 0 otherwise.

## RETURN VALUE

pointer to generated a/v pair when successful, NULL when failure.

## SEE ALSO

[*rc\_aaa*(3)](/rc_aaa/3.md), [*rc\_aaa\_ctx*(3)](/rc_aaa_ctx/3.md), [*rc\_aaa\_ctx\_free*(3)](/rc_aaa_ctx_free/3.md), [*rc\_aaa\_ctx\_get\_secret*(3)](/rc_aaa_ctx_get_secret/3.md), [*rc\_aaa\_ctx\_get\_vector*(3)](/rc_aaa_ctx_get_vector/3.md), [*rc\_aaa\_ctx\_server*(3)](/rc_aaa_ctx_server/3.md), [*rc\_acct*(3)](/rc_acct/3.md), [*rc\_acct\_async*(3)](/rc_acct_async/3.md), [*rc\_acct\_proxy*(3)](/rc_acct_proxy/3.md), [*rc\_auth*(3)](/rc_auth/3.md), [*rc\_auth\_proxy*(3)](/rc_auth_proxy/3.md), [*rc\_avpair\_add*(3)](/rc_avpair_add/3.md), [*rc\_avpair\_assign*(3)](/rc_avpair_assign/3.md), [*rc\_avpair\_copy*(3)](/rc_avpair_copy/3.md), [*rc\_avpair\_free*(3)](/rc_avpair_free/3.md), [*rc\_avpair\_gen*(3)](/rc_avpair_gen/3.md), [*rc\_avpair\_get*(3)](/rc_avpair_get/3.md), [*rc\_avpair\_get\_attr*(3)](/rc_avpair_get_attr/3.md), [*rc\_avpair\_get\_in6*(3)](/rc_avpair_get_in6/3.md), [*rc\_avpair\_get\_raw*(3)](/rc_avpair_get_raw/3.md), [*rc\_avpair\_get\_uint32*(3)](/rc_avpair_get_uint32/3.md), [*rc\_avpair\_insert*(3)](/rc_avpair_insert/3.md), [*rc\_avpair\_log*(3)](/rc_avpair_log/3.md), [*rc\_avpair\_next*(3)](/rc_avpair_next/3.md), [*rc\_avpair\_parse*(3)](/rc_avpair_parse/3.md), [*rc\_avpair\_remove*(3)](/rc_avpair_remove/3.md), [*rc\_avpair\_tostr*(3)](/rc_avpair_tostr/3.md), [*rc\_buildreq*(3)](/rc_buildreq/3.md), [*rc\_check*(3)](/rc_check/3.md), [*rc\_dict\_addattr*(3)](/rc_dict_addattr/3.md), [*rc\_dict\_addval*(3)](/rc_dict_addval/3.md), [*rc\_dict\_addvend*(3)](/rc_dict_addvend/3.md), [*rc\_dict\_findattr*(3)](/rc_dict_findattr/3.md), [*rc\_dict\_findval*(3)](/rc_dict_findval/3.md), [*rc\_dict\_findvend*(3)](/rc_dict_findvend/3.md), [*rc\_dict\_getattr*(3)](/rc_dict_getattr/3.md), [*rc\_dict\_getval*(3)](/rc_dict_getval/3.md), [*rc\_dict\_getvend*(3)](/rc_dict_getvend/3.md), [*rc\_send\_server*(3)](/rc_send_server/3.md)
