Возможно, глупый вопрос, но сам не могу допереть. Вот такое встретил в чужом коде:
#define SETSOCKOPT(optid, varptr, vartype, qty) \
{ \
unsigned int ret; \
int sockfd; \
if ((sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) == -1) { \
return -1; \
} \
if ((ret=setsockopt(sockfd, IPPROTO_IP, optid, (void *)varptr, sizeof(vartype)*qty)) != 0) { \
close(sockfd); \
return ret; \
} \
close(sockfd); \
}
Возникает вопрос - какой смысл выставлять опции на сокете, который потом закрывается? Более того, везде где вызывается этот макрос, 'sockefd' никак не используется.
Помогите сняться с ручника, заранее огромное спасибо!
Ответ на:
комментарий
от gorilych
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [проблема с bind]Прием мультикаста с разных ip, но одинаковых портов (2010)
- Форум [hook][mipsel]падает при вызове оригинального метода (2010)
- Форум raw sockets — sending udp datagram (2007)
- Форум В чем ошибка чтения? (2020)
- Форум RAW socket (2008)
- Форум qos (tos) в программах на С под линуксом (2006)
- Форум не работает функция bind. (2017)
- Форум Соединится с сервером по сокету? (2020)
- Форум Accept блокирует работу (2017)
- Форум проблема с сокетами [C] (2009)