## nng_ctx_set Set context option. ### Synopsis ```c #include int nng_ctx_set(nng_ctx ctx, const char *opt, const void *val, size_t valsz); int nng_ctx_set_bool(nng_ctx ctx, const char *opt, int bval); int nng_ctx_set_int(nng_ctx ctx, const char *opt, int ival); int nng_ctx_set_ms(nng_ctx ctx, const char *opt, nng_duration dur); int nng_ctx_set_size(nng_ctx ctx, const char *opt, size_t z); int nng_ctx_set_string(nng_ctx ctx, const char *opt, const char *str); int nng_ctx_set_uint64(nng_ctx ctx, const char *opt, uint64_t u64); ``` ### Description (((options, context))) The `nng_ctx_set` functions are used to configure options for the context _ctx_. The actual options that may be configured in this way vary, and are specified by _opt_. TIP: Context options are protocol specific. See the option documentation for more information. #### Forms The details of the type, size, and semantics of the option will depend on the actual option, and will be documented with the option itself. TIP: It is recommended to use one of the typed forms of this function instead of `nng_set`, when possible. `nng_ctx_set`:: This function is untyped, and can be used to configure any arbitrary data. The _val_ pointer addresses the data to copy, and _valsz_ is the size of the objected located at _val_. `nng_ctx_set_bool`:: This function sets a Boolean (`bool`) option to _bval_. `nng_ctx_set_int`:: This function sets an integer (`int`) option to _ival_. `nng_ctx_set_ms`:: This function sets a duration (xref:nng_duration.adoc[`nng_duration`]) option to _dur_, which is an integer number of milliseconds. `nng_ctx_set_size`:: This function sets a size (`size_t`) option to _z_. `nng_ctx_set_string`:: This function sets a string (`const char *`) option to _str_. Strings must be legal UTF-8, terminated with a `NUL` (`\0`) byte. `nng_ctx_set_uint64`:: This function sets a 64-bit unsigned integer (`uint64_t`) option to _u64_. ### Return Values These functions return 0 on success, and non-zero otherwise. ### Errors [horizontal] `NNG_ECLOSED`:: Parameter _s_ does not refer to an open socket. `NNG_EINVAL`:: The value being passed is invalid. `NNG_ENOTSUP`:: The option _opt_ is not supported. `NNG_EREADONLY`:: The option _opt_ is read-only. `NNG_ESTATE`:: The socket is in an inappropriate state for setting this option. ### See Also xref:../opts/index.adoc[Options], xref:nng_ctx_get.adoc[nng_ctx_get], xref:nng_socket_set.adoc[nng_socket_set]