Внезапно в одном из проектов перестало работать соединение флеша с сервером через XMLSocket. Два дня самоотверженной борьбы и совершенно идиотская ошибка.
Если верить документации, то сокет-сервер должен слушать 843 порт на предмет получения <policy-file-request/> и отдавать на него файл политики безопасности. Ну, он там, разумеется, слушал и отдавал. И тут внезапно — хоп! — и всё накрылось. Перепробовали всё — даже подняли отдельную виртуалку для тестирования. Проверили всё, что только можно и что нельзя. Не работает. Клиент приходит за политикой, получает её и сразу же бросает соединение.
Проблема нашлась совершенно случайно — вместо демона на xinetd запустили самостоятельный сервер на питоне, всё из тех же примеров. И тут же всё заработало. Что интересно, оба варианта отдают абсолютно одинаковый с точностью до байта ответ.
Возможно, что-то сломалось после обновления системы. Возможно, какие-то задержки. Возможно, xinetd слишком быстро закрывает соединение. Возможно что-то ещё. Совершенно непонятно :(
