[완료]socket open에 대한 질문입니다.

hyper9의 이미지

좀 뜬금없이 질문을 드리게되겠네요..

제가 보는 code에 socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)라고 한 곳은
error가 나지 않고,
socket(PF_KEY, SOCK_RAW, PF_KEY_V2)라고 한 곳은 error가 나네요,

이런 문제는 어떻게 접근을 시작하는 것이 좋을까요?
~~

Necromancer의 이미지

errno를 먼저 확인하십시오.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

hyper9의 이미지


이 socket function은 어디에 정의되어 있는건지요?
Kernel source안에 있을까요?
좀,,,그런 질문같지만,,,Kernel안에서 못 찾았던 것 같아서요 ㅜㅜ
그럼,,도움 부탁드립니다. ^^

hyper9의 이미지

perror("socket");
으로 확인해 봤는데, 이게 맞는건지 확실하진 않네요,,

s = socket(PF_KEY, SOCK_RAW, PF_KEY_V2)
if (s < 0)
perror("socket");

이렇게 해봤구요
error의 내용은 Address family not supported by protocol.
이라고 나오네요 ,,

이제는 어떻게 진도를 나가보면 좋을까요?

hyper9의 이미지

다름이 아니고,,Kernel Configuration에서

Networking options ->
PF_KEY sockets라는 option을 enable해주니까
되네요 ~