Сервер Yesod devel только слушает на ipv6 - PullRequest
5 голосов
/ 20 сентября 2011

Я использую "cabal install && yesod devel", используя yesod 0.9.2.2, но слушаю только ipv6. Кто-нибудь знает, как настроить его для прослушивания на ipv4? Я запускаю его на Windows 7.

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 сентября 2011

Симптом, который вы описали, до сих пор наблюдался в BSD и Debian, но похоже, что Windows также затронута.

Это известная проблема с Yesod, или фактически с Wasp, или, если быть точным, с сетевой библиотекой. Одним из мест, где можно продолжить рассмотрение этой проблемы, является эта проблема с githup или текущее обсуждение списков haskell , которое было частично вызвано вашим вопросом.

0 голосов
/ 19 октября 2011

Хотя в настоящее время у меня нет аналогичной настройки для проверки этого, вы, вероятно, обнаружите, что если что-то прослушивает порт X IPv6, и ничего не прослушивает тот же порт X для IPv4, то порт IPv6 получитсвязь.Сервер IPv6 увидит соединение, исходящее с адреса «IPv6» :: ffff: 1.2.3.4 (это называется сопоставленным IPv4-адресом IPv6).Ядро обеспечивает трансляцию между конечными точками IPv6 и IPv4.IPv4 используется по проводам.

Я не знаю о Windows 7, но некоторые системы (например, некоторые дистрибутивы Linux) по умолчанию отключают эту функцию, устанавливая определенный sysctl,это означало бы, что сервер должен был бы связываться с отдельными сокетами IPv4 и IPv6 (что, по моему опыту, является предпочтительным вариантом).Приложения могут изменять это поведение по умолчанию.

...