url_t 구조체 파싱된 값

Untitled

좀 이상하지 않은가?

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);

Untitled


아래 패킷이 들어온다고 가정할 때

GET / HTTP/1.1
user-agent: Mozilla/5.0
...

start = ‘G’ 첫 번째 라인 (GET / …)의 0번째 index 주소를

end = new_line = ‘u’ 두번째 라인 (user-ag…)의 0번째 index 주소를 가진다.

Untitled