static ngx_uint_t get_exist_target_in_uri(ngx_http_request_t* r) {
ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "[%s %d]%Z", __FUNCTION__, __LINE__);
ngx_uint_t rt = 0;
if (NULL!=r->args.data)
{
size_t i = 0;
char* key_val=NULL;
char* key = ngx_pcalloc(r->pool, r->args.len);
char* val = NULL;
char* buf = ngx_pcalloc(r->pool, r->args.len+1);
ngx_memcpy((u_char*)buf, r->args.data, r->args.len);
//ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "buf=%s, [%s %d]%Z", buf, __FUNCTION__, __LINE__);
for ( i = r->args.len-1; i >0; i--)
{
if (buf[i]=='&' || buf[i] == '?')
{
key_val = buf + i+1;
//ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "[%s %d]%Z", __FUNCTION__, __LINE__);
break;
}
}
if (key_val)
{
ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "key_val=%s [%s %d]%Z", key_val,__FUNCTION__, __LINE__);
for ( i = 0; i < strlen(key_val); i++)
{
if (key_val[i]=='=')
{
memcpy(key, key_val, i);
val = strstr(key_val, "=")+1;
}
}
}
if (key && val)
{
ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "key=%s,val=%s [%s %d]%Z", key,val, __FUNCTION__, __LINE__);
char* find_buf = ngx_pcalloc(r->pool, 128);
ngx_snprintf((u_char*)find_buf, 127, "%s=%xi", key, get_ip_addr_key_crc(r, key));
ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "find_buf=>%s [%s %d]%Z", find_buf, __FUNCTION__, __LINE__);
char* found = ngx_strstr((char*)r->args.data, find_buf);
if (found)
{
rt = 1;
}
}
}
else {
ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "[%s %d]%Z", __FUNCTION__, __LINE__);
}
return rt;
}