diff --git a/lib/client.c b/lib/client.c
index 8b7176f392362317f107692641b44046b22610f9..9424ed3312b8547f8804037fa7e5bda4491417b3 100644
--- a/lib/client.c
+++ b/lib/client.c
@@ -749,8 +749,11 @@ check_extensions:
/*
* give the extension the server options
*/
- if (a && lws_ext_parse_options(ext, wsi, wsi->act_ext_user[wsi->count_act_ext], opts, a, c - a)) {
- lwsl_err("%s: unable to parse remote defaults '%s'", __func__, a);
+ if (a && lws_ext_parse_options(ext, wsi,
+ wsi->act_ext_user[wsi->count_act_ext],
+ opts, a, c - a)) {
+ lwsl_err("%s: unable to parse remote def '%s'",
+ __func__, a);
goto bail2;
}
@@ -758,7 +761,8 @@ check_extensions:
LWS_EXT_CB_OPTION_CONFIRM,
wsi->act_ext_user[wsi->count_act_ext],
NULL, 0)) {
- lwsl_err("%s: ext %s rejects server options %s", ext->name, a);
+ lwsl_err("%s: ext %s rejects server options %s",
+ ext->name, a);
goto bail2;
}
diff --git a/lib/extension.c b/lib/extension.c
index 48682995973028f60731097690fa5e2b7b01396c..d21be5ec1fecbdecbf144acd37323891bdd36c83 100644
--- a/lib/extension.c
+++ b/lib/extension.c
@@ -21,7 +21,8 @@ enum lws_ext_option_parser_states {
LWS_VISIBLE int
lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,
- void *ext_user, const struct lws_ext_options *opts, const char *in, int len)
+ void *ext_user, const struct lws_ext_options *opts,
+ const char *in, int len)
{
enum lws_ext_option_parser_states leap = LEAPS_SEEK_NAME;
unsigned int match_map = 0, n, m, w = 0, count_options = 0,
@@ -31,7 +32,7 @@ lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,
while (opts[count_options].name)
count_options++;
while (len) {
- lwsl_ext("'%c'", *in);
+ lwsl_ext("'%c' %d", *in, leap);
switch (leap) {
case LEAPS_SEEK_NAME:
if (*in == ' ')
@@ -51,11 +52,10 @@ lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,
oa.len = 0;
m = match_map;
n = 0;
- w = 0;
pending_close_quote = 0;
while (m) {
if (m & 1) {
- // lwsl_ext(" m=%d, n=%d\n", m, n);
+ lwsl_ext(" m=%d, n=%d, w=%d\n", m, n, w);
if (*in == opts[n].name[w]) {
if (!opts[n].name[w + 1]) {
@@ -68,8 +68,10 @@ lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,
}
} else {
match_map &= ~(1 << n);
- if (!match_map)
+ if (!match_map) {
+ lwsl_ext("empty match map\n");
return -1;
+ }
}
}
m >>= 1;