htp_param_t *htp_tx_req_get_param_ex(htp_tx_t *tx, enum htp_data_source_t source, const char *name, size_t name_len) { htp_param_t *p = NULL; for (int i = 0, n = htp_table_size(tx->request_params); i < n; i++) { p = htp_table_get_index(tx->request_params, i, NULL); if (p->source != source) continue; if (bstr_cmp_mem_nocase(p->name, name, name_len) == 0) return p; } return NULL; }
void *htp_table_get_mem(const htp_table_t *table, const void *key, size_t key_len) { if ((table == NULL)||(key == NULL)) return NULL; // Iterate through the list, comparing // keys with the parameter, return data if found. for (size_t i = 0, n = htp_list_size(table->list); i < n; i += 2) { bstr *key_candidate = htp_list_get(table->list, i); void *element = htp_list_get(table->list, i + 1); if (bstr_cmp_mem_nocase(key_candidate, key, key_len) == 0) { return element; } } return NULL; }