91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2.21MB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2023-10-03
  • 語言: 其他
  • 標(biāo)簽: lighttpd??cgi??

資源簡介

使用lighttpd的開源代碼成功搭建支持cgi的代碼包

資源截圖

代碼片段和文件信息

#include?“array.h“
#include?“buffer.h“

#include?
#include?
#include?
#include?

#include?
#include?

array?*array_init(void)?{
array?*a;

a?=?calloc(1?sizeof(*a));
force_assert(a);

a->next_power_of_2?=?1;

return?a;
}

array?*array_init_array(array?*src)?{
size_t?i;
array?*a?=?array_init();

if?(0?==?src->size)?return?a;

a->used?=?src->used;
a->size?=?src->size;
a->next_power_of_2?=?src->next_power_of_2;
a->unique_ndx?=?src->unique_ndx;

a->data?=?malloc(sizeof(*src->data)?*?src->size);
for?(i?=?0;?i?size;?i++)?{
if?(src->data[i])?a->data[i]?=?src->data[i]->copy(src->data[i]);
else?a->data[i]?=?NULL;
}

a->sorted?=?malloc(sizeof(*src->sorted)???*?src->size);
memcpy(a->sorted?src->sorted?sizeof(*src->sorted)???*?src->size);
return?a;
}

void?array_free(array?*a)?{
size_t?i;
if?(!a)?return;

if?(!a->is_weakref)?{
for?(i?=?0;?i?size;?i++)?{
if?(a->data[i])?a->data[i]->free(a->data[i]);
}
}

if?(a->data)?free(a->data);
if?(a->sorted)?free(a->sorted);

free(a);
}

void?array_reset(array?*a)?{
size_t?i;
if?(!a)?return;

if?(!a->is_weakref)?{
for?(i?=?0;?i?used;?i++)?{
a->data[i]->reset(a->data[i]);
}
}

a->used?=?0;
}

data_unset?*array_pop(array?*a)?{
data_unset?*du;

force_assert(a->used?!=?0);

a->used?--;
du?=?a->data[a->used];
a->data[a->used]?=?NULL;

return?du;
}

static?int?array_get_index(array?*a?const?char?*key?size_t?keylen?int?*rndx)?{
int?ndx?=?-1;
int?i?pos?=?0;

if?(key?==?NULL)?return?-1;

/*?try?to?find?the?string?*/
for?(i?=?pos?=?a->next_power_of_2?/?2;?;?i?>>=?1)?{
int?cmp;

if?(pos? pos?+=?i;
}?else?if?(pos?>=?(int)a->used)?{
pos?-=?i;
}?else?{
cmp?=?buffer_caseless_compare(key?keylen?CONST_BUF_LEN(a->data[a->sorted[pos]]->key));

if?(cmp?==?0)?{
/*?found?*/
ndx?=?a->sorted[pos];
break;
}?else?if?(cmp? pos?-=?i;
}?else?{
pos?+=?i;
}
}
if?(i?==?0)?break;
}

if?(rndx)?*rndx?=?pos;

return?ndx;
}

data_unset?*array_get_element(array?*a?const?char?*key)?{
int?ndx;

if?(-1?!=?(ndx?=?array_get_index(a?key?strlen(key)?NULL)))?{
/*?found?leave?here?*/

return?a->data[ndx];
}

return?NULL;
}

data_unset?*array_get_unused_element(array?*a?data_type_t?t)?{
data_unset?*ds?=?NULL;
unsigned?int?i;

for?(i?=?a->used;?i?size;?i++)?{
if?(a->data[i]?&&?a->data[i]->type?==?t)?{
ds?=?a->data[i];

/*?make?empty?slot?at?a->used?for?next?insert?*/
a->data[i]?=?a->data[a->used];
a->data[a->used]?=?NULL;

return?ds;
}
}

return?NULL;
}

void?array_set_key_value(array?*hdrs?const?char?*key?size_t?key_len?const?char?*value?size_t?val_len)?{
data_string?*ds_dst;

if?(NULL?!=?(ds_dst?=?(data_string?*)array_get_element(hdrs?key)))?{
buffer_copy_string_len(ds_dst->value?value?val_len);
return;
}

if?(NULL?==?(ds_dst?=?(data_string?*)array_get_unused_element(hdrs?TYPE_STRING)))?{
ds_dst?=?dat

評論

共有 條評論