url_t
구조체 파싱된 값
좀 이상하지 않은가?
version_start
값이 HTTP/1.1\\r\\n
으로 문자열 길이가 10이어야 하는데…
왜 version_len
에는 11이 저장이 되는 걸까?
httpgw/transaction/parse.c:1169
확인결과
version_start = (char *)next;
version_len = end - next + 1;
tmp = next - 1;
역시 이상하다.
코드 두줄을 추가하여 확인해보았다.
version_start = (char *)next;
version_len = end - next + 1;
tmp = next - 1;
// 추가한 코드
char tmpstr[16] = {0};
strncpy(tmpstr, next, version_len);
아래 패킷이 들어온다고 가정할 때
GET / HTTP/1.1
user-agent: Mozilla/5.0
...
start = ‘G’ 첫 번째 라인 (GET / …)의 0번째 index 주소를
end = new_line = ‘u’ 두번째 라인 (user-ag…)의 0번째 index 주소를 가진다.