From 9aaa12a504f2c2587e541ec85e82eba0c89c9789 Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Mon, 21 Mar 2016 19:11:34 +0000 Subject: [PATCH] new put_ac_status function, derives security flags from dtls settings in conn object. FossilOrigin-Name: 538d29d6794eb9388f3edfc50d05ba768f7fd41ce021fa2b8cb98c14ddca5d10 --- src/cw/cw_put_ac_status.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/cw/cw_put_ac_status.c diff --git a/src/cw/cw_put_ac_status.c b/src/cw/cw_put_ac_status.c new file mode 100644 index 00000000..4e3410cc --- /dev/null +++ b/src/cw/cw_put_ac_status.c @@ -0,0 +1,29 @@ +#include "cw.h" + +/** + * Put an cw_ac_stauts structure to a buffer + * @param dst destination buffer + * @param s #cw_ac_status to put + * @return number of bytes put + * This function is only useful (used) in conjunction with + * putting AC Descriptor message elements. + */ +int cw_put_ac_status(uint8_t * dst, struct cw_ac_status *s, struct conn * conn) +{ + uint8_t *d = dst; + + d += cw_put_dword(d, (s->stations << 16) | (s->limit)); + d += cw_put_dword(d, (s->active_wtps << 16) | (s->max_wtps)); + + + int security = 0; + security |= conn->dtls_cert_file ? CW_FLAG_AC_SECURITY_X : 0; + security |= conn->dtls_psk ? CW_FLAG_AC_SECURITY_S : 0; + + + d += cw_put_dword(d, + (security << 24) | (s->rmac_field << 16) | (s->dtls_policy)); + return d - dst; +} + +