diff --git a/http.c b/http.c index 30b11a0..1b3d590 100644 --- a/http.c +++ b/http.c @@ -77,7 +77,8 @@ xs_dict *http_signed_request_raw(const char *keyid, const char *seckey, /* transfer the original headers */ hdrs = xs_dict_new(); - while (xs_dict_iter(&headers, &k, &v)) + int c = 0; + while (xs_dict_next(headers, &k, &v, &c)) hdrs = xs_dict_append(hdrs, k, v); /* add the new headers */ diff --git a/xs.h b/xs.h index afd8245..85464db 100644 --- a/xs.h +++ b/xs.h @@ -1028,6 +1028,9 @@ int xs_dict_iter(xs_dict **dict, xs_str **key, xs_val **value) int xs_dict_next(const xs_dict *dict, xs_str **key, xs_val **value, int *ctxt) /* iterates a dict, with context */ { + if (xs_type(dict) != XSTYPE_DICT) + return 0; + int goon = 1; char *p = (char *)dict;