mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-02-18 09:10:38 +01:00
wscutil: Make wsc_parse_attrs public for P2P
This commit is contained in:
parent
f8a51fe4c1
commit
cc913a6ff6
@ -125,12 +125,6 @@ bool wsc_attr_iter_recurse_wfa_ext(struct wsc_attr_iter *iter,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum attr_flag {
|
|
||||||
ATTR_FLAG_REQUIRED = 0x1, /* Always required */
|
|
||||||
ATTR_FLAG_VERSION2 = 0x2, /* Included if Version2 is present */
|
|
||||||
ATTR_FLAG_REGISTRAR = 0x4, /* Included if Selected Registrar is true */
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef bool (*attr_handler)(struct wsc_attr_iter *, void *);
|
typedef bool (*attr_handler)(struct wsc_attr_iter *, void *);
|
||||||
|
|
||||||
static bool extract_uint8(struct wsc_attr_iter *iter, void *data)
|
static bool extract_uint8(struct wsc_attr_iter *iter, void *data)
|
||||||
@ -656,12 +650,10 @@ static bool verify_version2(struct wsc_wfa_ext_iter *ext_iter)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int wsc_parse_attrs(const unsigned char *pdu, unsigned int len,
|
int wsc_parse_attrs(const unsigned char *pdu, unsigned int len,
|
||||||
bool *out_version2,
|
bool *out_version2, struct wsc_wfa_ext_iter *ext_iter,
|
||||||
struct wsc_wfa_ext_iter *ext_iter,
|
enum wsc_attr authenticator_type,
|
||||||
enum wsc_attr authenticator_type,
|
uint8_t *authenticator, int type, ...)
|
||||||
uint8_t *authenticator,
|
|
||||||
int type, ...)
|
|
||||||
{
|
{
|
||||||
struct wsc_attr_iter iter;
|
struct wsc_attr_iter iter;
|
||||||
struct l_queue *entries;
|
struct l_queue *entries;
|
||||||
@ -710,7 +702,7 @@ static int wsc_parse_attrs(const unsigned char *pdu, unsigned int len,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry->flags & ATTR_FLAG_REQUIRED) {
|
if (entry->flags & WSC_ATTR_FLAG_REQUIRED) {
|
||||||
have_required = false;
|
have_required = false;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
@ -752,7 +744,7 @@ static int wsc_parse_attrs(const unsigned char *pdu, unsigned int len,
|
|||||||
for (; e; e = e->next) {
|
for (; e; e = e->next) {
|
||||||
struct attr_handler_entry *entry = e->data;
|
struct attr_handler_entry *entry = e->data;
|
||||||
|
|
||||||
if (entry->flags & ATTR_FLAG_REQUIRED) {
|
if (entry->flags & WSC_ATTR_FLAG_REQUIRED) {
|
||||||
parse_error = true;
|
parse_error = true;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
@ -795,7 +787,7 @@ static int wsc_parse_attrs(const unsigned char *pdu, unsigned int len,
|
|||||||
for (e = l_queue_get_entries(entries); e; e = e->next) {
|
for (e = l_queue_get_entries(entries); e; e = e->next) {
|
||||||
entry = e->data;
|
entry = e->data;
|
||||||
|
|
||||||
if (!(entry->flags & ATTR_FLAG_VERSION2))
|
if (!(entry->flags & WSC_ATTR_FLAG_VERSION2))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (entry->present)
|
if (entry->present)
|
||||||
@ -816,7 +808,7 @@ static int wsc_parse_attrs(const unsigned char *pdu, unsigned int len,
|
|||||||
for (e = l_queue_get_entries(entries); e; e = e->next) {
|
for (e = l_queue_get_entries(entries); e; e = e->next) {
|
||||||
entry = e->data;
|
entry = e->data;
|
||||||
|
|
||||||
if (!(entry->flags & ATTR_FLAG_REGISTRAR))
|
if (!(entry->flags & WSC_ATTR_FLAG_REGISTRAR))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (entry->present)
|
if (entry->present)
|
||||||
@ -884,16 +876,16 @@ static bool wfa_extract_registrar_configuration_methods(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define REQUIRED(attr, out) \
|
#define REQUIRED(attr, out) \
|
||||||
WSC_ATTR_ ## attr, ATTR_FLAG_REQUIRED, out
|
WSC_ATTR_ ## attr, WSC_ATTR_FLAG_REQUIRED, out
|
||||||
|
|
||||||
#define OPTIONAL(attr, out) \
|
#define OPTIONAL(attr, out) \
|
||||||
WSC_ATTR_ ## attr, 0, out
|
WSC_ATTR_ ## attr, 0, out
|
||||||
|
|
||||||
#define REGISTRAR(attr, out) \
|
#define REGISTRAR(attr, out) \
|
||||||
WSC_ATTR_ ## attr, ATTR_FLAG_REGISTRAR, out
|
WSC_ATTR_ ## attr, WSC_ATTR_FLAG_REGISTRAR, out
|
||||||
|
|
||||||
#define VERSION2(attr, out) \
|
#define VERSION2(attr, out) \
|
||||||
WSC_ATTR_ ## attr, ATTR_FLAG_VERSION2, out
|
WSC_ATTR_ ## attr, WSC_ATTR_FLAG_VERSION2, out
|
||||||
|
|
||||||
int wsc_parse_credential(const uint8_t *pdu, uint32_t len,
|
int wsc_parse_credential(const uint8_t *pdu, uint32_t len,
|
||||||
struct wsc_credential *out)
|
struct wsc_credential *out)
|
||||||
|
@ -547,6 +547,17 @@ struct wsc_done {
|
|||||||
int wsc_parse_primary_device_type(const uint8_t *pdu, size_t len,
|
int wsc_parse_primary_device_type(const uint8_t *pdu, size_t len,
|
||||||
struct wsc_primary_device_type *out);
|
struct wsc_primary_device_type *out);
|
||||||
|
|
||||||
|
enum wsc_attr_flag {
|
||||||
|
WSC_ATTR_FLAG_REQUIRED = 0x1, /* Always required */
|
||||||
|
WSC_ATTR_FLAG_VERSION2 = 0x2, /* Included if Version2 is present */
|
||||||
|
WSC_ATTR_FLAG_REGISTRAR = 0x4, /* Included if Selected Registrar is true */
|
||||||
|
};
|
||||||
|
|
||||||
|
int wsc_parse_attrs(const unsigned char *pdu, unsigned int len,
|
||||||
|
bool *out_version2, struct wsc_wfa_ext_iter *ext_iter,
|
||||||
|
enum wsc_attr authenticator_type,
|
||||||
|
uint8_t *authenticator, int type, ...);
|
||||||
|
|
||||||
int wsc_parse_credential(const uint8_t *pdu, uint32_t len,
|
int wsc_parse_credential(const uint8_t *pdu, uint32_t len,
|
||||||
struct wsc_credential *out);
|
struct wsc_credential *out);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user