2016-11-30 4 views
0

То, что я пытаюсь достичь является:состояние соединения с libmicrohttpd и HTTP 102

  1. Отправить HTTP 102 клиенту, который запросил somedoc.html

  2. Некоторые обработки на стороне в том числе из группы аутентификации

  3. Если проверка подлинности, отправить ответ, построенный из somedoc.html, в противном случае родовое не аутентификации сообщение

У меня что-то не получается понять, потому что я не могу понять, как отправить 102 и сохранить детали подключения, чтобы я мог перенаправить ответ на шаге 3. Я думал, что могу поставить в очередь ответ затем либо введите цикл ожидания, либо приостановите соединение, но насколько я могу судить, мне нужно вернуться из MHD_AcceptPolicyCallback для ответа, который будет отправлен, тогда я не могу понять, как вернуться к соединению. Я просмотрел запрошенный завершенный обратный вызов, но это все еще приводит к тому, что 102 не отправляются.

Я действительно не могу понять процесс достижения этих шагов из примеров или руководства, и любая помощь будет оценена по достоинству.

ответ

0

HTTP-стандарты не определяют код ответа 102.
См https://tools.ietf.org/html/rfc7231#section-6
и https://tools.ietf.org/html/rfc2616#section-6.1.1

использование протокола логики запроса-ответа HTTP. Если вы уже ответили на какой-либо запрос, вы не сможете добавить другой ответ позже к тому же запросу.

+0

Я задал этот вопрос в рассылке и получил аналогичный ответ, поэтому извините, если это тот же человек, но: Он был определен в RFC 2518, который был обновлен/устарел RFC 4918 для WebDAV. Конечно, они удалили http 102 из спецификации (из-за отсутствия реализации) и сообщили, что ее регистрация IANA должна продолжать ссылаться на RDF2518. Он реализован в libmicrohttpd как MHD_HTTP_PROCESSING. Использование кода MHD_HTTP_PROCESSING требует некоторого механизма, чтобы сначала отправить ответ с этим кодом, а затем отправить окончательный ответ. – dt647146

0

После разговора с разработчиком код статуса 102 был определен «для полноты»; однако не было предпринято никаких попыток реализовать требуемые функциональные возможности, чтобы реально использовать этот код состояния значимым образом на сервере, разработанном с библиотекой libmicrohttpd.