DQMS 에 할당된 문제점을 확인하고, 이와는 별도로 내가 발견한 문제점을 정리했다.
DQMS
장기 방치시, Latch-up 발생
문제 현상
특별한 재현 조건이 없음. 유선 랜을 꼽아놓고, 사외망(파워콤)에 연결하고 나서 방치했을 때, Latch-up 발생함.
문제 원인
Latch up 화면만 봐서는 _NM_CheckIPCEventThread() 함수 동작 시, 특정변수(_gNMControlVar.glEventIpcHandle)에 -1 값이 들어가고, 이후 FD_SET 또는 FD_ISSET 함수 호출 도중에 발생하는 것 같음
디버깅 조건
메모리 침범이 아니라면, NM 동작 도중, 특정변수(_gNMControlVar.glEventIpcHandle)에 값을 저장하는 루틴을 주의깊게 살펴볼 필요가 있다.
최소한 -1 값이 들어갈 여지를 주지 않는다면, 방어코드로서 충분할 것이라 생각한다.
수정 Point
- gethostbyname 패치 적용
- www.lge.com 실패 시, 재시도 패치 적용
그 외
AP 호환성 이슈
DNS relay 기능
D-Link 사의 AP 에는 위 기능이 Default 로 설정되어 있다. 이 기능이 Enable 되어 있으면, IP 를 받은 클라이언트(PC, TV 등)에서는 DNS 가 AP의 주소로 설정된다.
이때는 실제 DNS 서버에 Query 를 클라이언트가 보내지 않고, AP 가 직접 보내서 응답을 받고, 이를 다시 클라이언트에 보낸다.
이 기능이 Disable 되어 있으면, 클라이언트에서 DNS 서버가 AP 의 주소가 아닌 168.126.63.1 와 같은 실제 DNS 서버 주소가 할당된다.
이때는 클라이언트에서 DNS 서버에 직접 Query 를 보내서 응답을 받는다.
이 기능은 실제로 끄는 것이 속도가 더 빠르다.