Для более старых версий челюстей (yaws-1.90 и ниже) работает приведенный ниже ответ
Теперь, по умолчанию, любой заголовок, указанный как
[{header,"Server: MyOther Server Name"}]
, черви будет применять и помечать его имя и версию до значения заголовка вашего сервера, например:
Server: Yaws 1.91, MyOther Server Name
. Это происходит, когда в вашей функции
out/1
вы заканчиваете значением заголовка, например, сервером:
out(_A)-> <br> [{header,"Server: ASP.NET Server"},<br> {html,"<p>I love klacke and yaws ! </p>"}].
Проверяя ваш браузер, с помощью Firebug вы видите заголовки ответа, заданные следующим образом:
Date Thu, 17 Nov 2011 07:59:17 GMT
Content-Length 22
Content-Type text/html
Server Yaws 1.91, ASP.NET Server
Теперь решение :
В рычагах src
есть модуль под названием yaws.erl
. В этом модуле проверьте строку: 1332
, вы найдете такую функцию:
make_server_header() ->
HasDav = ?sc_has_dav(get(sc)),
["Server: ", (get(gc))#gconf.yaws, "\r\n" |
if HasDav == true ->
["DAV: 1\r\n"];
true ->
[]
end].
Это фрагмент кода, который добавляет версию yaws и имя сервера поверх указанного в заголовке сервера значения. Нам нужно изменить его, закомментировать строки и дать ему вернуть empty list [ ]
или empty string ""
, чтобы он выглядел так:
make_server_header() ->
%%HasDav = ?sc_has_dav(get(sc)),
%%["Server: ", (get(gc))#gconf.yaws, "\r\n" |
%% if HasDav == true ->
%% ["DAV: 1\r\n"];
%% true ->
%% []
%% end].
[]. %% force it to just return empty
Последний шаг
Теперь нам нужно перекомпилировать этот модуль и заменить существующий файл yaws.beam в YAWS-{VSN}/ebin
новым результирующим файлом .beam, который мы получим после компиляции этого нового источника. Затем перезагрузите его в ВМ. Я надеюсь, что вы сможете найти свой путь в этом последнем шаге. Одним из способов справиться с этим является изменение текущего рабочего каталога ваших червей, использующего оболочку erlang
1> cd("PATH/TO/YAWS/src").
PATH/TO/YAWS/src
Затем выполните это (все еще в оболочке yaws) после изменения источника yaws.erl, как мы упоминали выше
2> c(yaws).
{ok,yaws}
Теперь переместите сгенерированный файл yaws.beam из src в ebin. Перезаписать / заменить существующий файл yaws.beam в ebin файлом из src
$ mv PATH/TO/YAWS/src/yaws.beam PATH/TO/YAWS/ebin/
Итак, если yaws работает, перезагрузите этот код, введя в его оболочку:
3> l(yaws).
Для более новых версий рысканий (yaws-1.91 и выше)
Есть параметр, который вы просто добавите в свой
yaws.conf
файл
server_signature = "MY SERVER SIGNATURE"
И поэтому заголовки будут поставляться с
Server: MY SERVER SIGNATURE