Регистрация | Войти
Lisp — программируемый язык программирования
RSS
Трассировка от обработчика.
motopeh - 10.03.2013 09:41, Сообщений - 18
Можно ли направить вывод трассировки запускаемой обработчиком маршрутов в буфер slime-repl?
[#]
Как вариант можно перенаправить вывод всех потоков в repl.

Note: By default SLIME does not change *standard-output* and friends outside of the REPL. If you have any other threads which call format, write-string, etc. that output will be seen only in the *inferior-lisp* buffer or on the terminal, more often than not this is inconvenient. So, if you want to send output to SLIME's repl buffer, as opposed to *inferior-lisp*, set swank:*globally-redirect-io* to T.

Note that the value of this variable is only checked when swank accepts the connection so you should set it via ~/.swank.lisp. Otherwise you will need to call swank::globally-redirect-io-to-connection yourself, but you shouldn't do that unless you know what you're doing.

sviridov - 10.03.2013 10:11
[#] Ответ на комментарий от sviridov 10.03.2013 10:11
В принципе и без этого трассировка замечательно печатается в *inferior-lisp*. Читаю просто не там.
motopeh - 10.03.2013 11:50
[#] Ответ на комментарий от motopeh 10.03.2013 11:50
Не могу создавать посты в этот раздел.
motopeh - 26.03.2013 22:52
[#] Ответ на комментарий от motopeh 26.03.2013 22:52
Хотелось бы запостить:

Это нормально что hunchentoot:redirect в трассировке не возвращает значения?

  0: (LOGGED-ON-P)
  0: LOGGED-ON-P returned "admin"
  0: (USER-LOGOUT)
  0: USER-LOGOUT returned #
  0: (RESTAS:REDIRECT MAIN)
    1: (HUNCHENTOOT:REDIRECT "/")

motopeh - 26.03.2013 22:54
[#] Ответ на комментарий от motopeh 26.03.2013 22:54
В общем у chromium 21.0.1180.89 и firefox 15.0 ( в luakit всё в порядке) restas:redirect не работает.
motopeh - 26.03.2013 23:02
[#] Ответ на комментарий от motopeh 26.03.2013 22:54
> Это нормально что hunchentoot:redirect в трассировке не возвращает значения?

Да, потому что он не возвращает значения.
archimag - 26.03.2013 23:08
[#] Ответ на комментарий от motopeh 26.03.2013 23:02
> В общем у chromium 21.0.1180.89 и firefox 15.0 ( в luakit всё в порядке) restas:redirect не работает.

Что это означает?
archimag - 26.03.2013 23:08
[#] Ответ на комментарий от motopeh 26.03.2013 22:54
Кажется понимаю - там сбрасывается стек вызовов.
motopeh - 26.03.2013 23:08
[#] Ответ на комментарий от archimag 26.03.2013 23:08
Некоторые браузеры не перенаправляются на MAIN.
motopeh - 26.03.2013 23:09
[#] Ответ на комментарий от motopeh 26.03.2013 23:09
> Некоторые браузеры не перенаправляются на MAIN.

Я такого ещё не видел. Какой HTTP-ответ отдаёт сервер?
archimag - 26.03.2013 23:28
[#] Ответ на комментарий от archimag 26.03.2013 23:28

Request URL:http://localhost:8034/logout?
Request Method:GET
Status Code:302 Moved Temporarily
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Cookie:user-auth=
Host:localhost:8034
Referer:http://localhost:8034/
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Response Headersview source
Connection:Keep-Alive
Content-Length:322
Content-Type:text/html; charset=iso-8859-1
Date:Tue, 26 Mar 2013 19:35:08 GMT
Keep-Alive:timeout=20
Location:http://localhost:8034/
Server:Hunchentoot 1.2.11
Set-Cookie:user-auth=; path=/
В теле ничего.
motopeh - 26.03.2013 23:37
[#] Ответ на комментарий от motopeh 26.03.2013 23:37
Хм, и что делает браузер?
archimag - 26.03.2013 23:47
[#] Ответ на комментарий от archimag 26.03.2013 23:47
Остаётся на той же странице. Только вот эта страница на том же URI куда перенаправление и происходит.
motopeh - 26.03.2013 23:53
[#] Ответ на комментарий от motopeh 26.03.2013 23:53
> Остаётся на той же странице. Только вот эта страница на том же
> URI куда перенаправление и происходит.

Второе предложение не понял, а первое вполне соответствует ответу:

> Referer: http://localhost:8034/
> Request URL: http://localhost:8034/logout?
> Location: http://localhost:8034/

Т.е. были на http://localhost:8034/, послали запрос на  http://localhost:8034/logout? и в итоге вернулись на http://localhost:8034/. Что не так?
archimag - 27.03.2013 00:29
[#] Ответ на комментарий от archimag 26.03.2013 23:47
А вот если URI разные, то перенаправляются.

Изначально я сделал всё на одном URI. При GET-запросе проверялись куки пользователя и если система его не узнавала маршрут рисовал форму для логина иначе печаталось "ACCESS ACCEPTED" и кнопка на "logout". Маршрут на "logout" стирал куки и данные в хеш-таблице и производил перенаправление назад, где по логике должна нарисоваться форма для login'а. Хеш-таблица и куки чистились, но firefox и chromium упорно печатали "ACCESS ACCEPTED" и в трассировке проверки куков не регистрировались.
motopeh - 27.03.2013 00:37
[#] Ответ на комментарий от archimag 27.03.2013 00:29
Т.е. на самом деле это с luakit что-то не так?
motopeh - 27.03.2013 00:39
[#] Ответ на комментарий от motopeh 27.03.2013 00:39
Х.з. тут надо знать тонкости стандарта. Есть просто решение - не делать всё на одном URI, это же не PHP :)
archimag - 27.03.2013 00:42
[#] Ответ на комментарий от archimag 27.03.2013 00:42
Я думал, что раз это не PHP, то можно делать всё на одном URI.
motopeh - 27.03.2013 00:47
@2009-2013 lisper.ru