package safe.webshell;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class QueryPostData extends Decoder{
@Override
List<byte[]> decode(byte[] input) {
List<byte[]> result = new LinkedList<byte[]>();
return result;
}
public static List<Pair<byte[], byte[]>> query_data(byte[] input) {
List<Pair<byte[], byte[]>> result = new LinkedList<Pair<byte[], byte[]>>();
int pos = 0;
while (pos < input.length) {
int pos_key_start = pos;
while (pos < input.length
&& input[pos] != '='
&& input[pos] != '&') {
pos += 1;
}
int pos_key_end = pos;
int pos_value_start = 0;
int pos_value_end = 0;
if (pos < input.length
&& input[pos] == '=') {
pos += 1;
pos_value_start = pos;
while (pos < input.length
&& input[pos] != '&') {
pos += 1;
}
pos_value_end = pos;
}
if (pos < input.length && input[pos] == '&') {
pos += 1;
}
byte[] key = Unquote.unquote(Arrays.copyOfRange(input, pos_key_start, pos_key_end));
byte[] value = Unquote.unquote(Arrays.copyOfRange(input, pos_value_start, pos_value_end));
if (key.length != 0 || value.length != 0) {
Pair<byte[], byte[]> kv_pair = new Pair<byte[], byte[]>(key, value);
result.add(kv_pair);
}
}
return result;
}
}