Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср апр 26, 2017 1:25 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 88 сообщений ]  На страницу Пред. 1 2 3 4 5 6 След.
Автор Сообщение
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт июн 01, 2012 8:38 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4080
Какие на то причины? Марио вот наоборот на трекере сказал ,что неплохо бы прикрутить.
Ну и... Я ЧУТЬ НЕ ВЫУЧИЛ АСМ ПОКА ЕГО ПРИКРУЧИВАЛ И ОНО РАБОТАЕТ потому если придётся удалять, будет немного грусно.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт июн 01, 2012 9:29 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4080
Network Downloader 0.6

- прикручен edit_box
- используются ситемные цвета
- удалён старый код

Editbox я прикручивал основываясь на изменениях IgorA в программе hex2dec2bin, и ему же огромное спасибо за статью об EditBox'e на Вики. Реально без этого ничего бы не вышло.

Осталась одна проблема: не работает мышь. Как к этой строке добавить обработку мыши?

Код:
mcall 40, 10000000b ; only net event!!!


Вложения:
Комментарий к файлу: Залью на SVN после исправления последнего бага
downloader.zip [15.38 КБ]
71 скачивание

_________________
Через тернии к звездам
Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт июн 01, 2012 9:33 pm 
Как однажды сказал один человек "Мнение пишущего код более приоритетно, чем мнение советующих".

Вообще можно было подойти к проблеме с другой стороны - написать GUI часть отдельным приложением, которое будет вызывать программу, также как это сейчас делает HTMLv. В этом случае вообще не было бы вопросов. Кстати даже прикрутить edit_box можно так чтобы в безоконном режиме box_lib вообще не загружался.


Вернуться к началу
   
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт июн 01, 2012 9:45 pm 
Leency писал(а):
Осталась одна проблема: не работает мышь. Как к этой строке добавить обработку мыши?
Код:
mcall 40, 10000000b ; only net event!!!

Установкой нужного бита.
http://wiki.kolibrios.org/wiki/SysFn40/ru
Цитата:
ebx = маска: бит i соответствует событию i+1 (см. список событий)

http://wiki.kolibrios.org/wiki/Ru/api/kernel
Спойлер: Показать
Цитата:
Список событий
Очередное событие можно получить вызовом одной из функций 10 (ожидать события), 11 (проверить без ожидания), 23 (ожидать в течение заданного времени). Эти функции возвращают только те события, которые входят в маску, устанавливаемую функцией 40. По умолчанию это первые три, чего вполне достаточно для многих приложений. Коды событий:
1 = сообщение о перерисовке (сбрасывается при вызове функции 0)
2 = нажата клавиша на клавиатуре (поступает, только когда окно активно) или нажата "горячая клавиша";
сбрасывается, когда все клавиши из буфера считаны функцией 2
3 = нажата кнопка, определённая ранее функцией 8 (или кнопка закрытия, созданная неявно функцией 0; кнопка минимизации обрабатывается системой и о ней сообщения не приходит;
поступает, только когда окно активно;
сбрасывается, когда все кнопки из буфера считаны функцией 17)
4 = зарезервировано (в текущей реализации никогда не приходит даже при размаскировке функцией 40)
5 = перерисовывается фон рабочего стола (сбрасывается автоматически после перерисовки, так что если во время перерисовки фона программа не ждёт и не проверяет события, то этого события она не заметит)
6 = событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении)
7 = произошло событие IPC (смотри функцию 60 - Inter Process Communication; сбрасывается при прочтении)
8 = произошло сетевое событие (сбрасывается при прочтении; смотри работу с сетью)
9 = произошло отладочное событие (сбрасывается при прочтении; смотри отладочную подсистему)
16..31 - ранее использовались для проверки соответвующих IRQ (16=IRQ0, 31=IRQ15) (на новых версиях ядра не генерируются)

Следовательно из номера события вычитаем единицы и получаем порядковый номер бита который надо установить. Бит нумеруются с нулевого.
6 - 1 = 5 получается 100000b
10000000b + 100000b = 10100000b

Только сдается мне комментарий
Цитата:
; only net event!!!

там не просто так стоит, и возможно ты хочешь исправить не то место.
В коде есть еще один участок:
Код:
prepare_event:
; Report events
; Stack 8 + defaults
   mcall 40,10000111b

И если немного использовать верхнее утолщение позвоночника, то можно догадаться, что первый вызов ф. 40, используется для безоконного режима работы - добавление в него лишних событий не будет полезным. Более того оно не решит возникшую проблему с мышкой.


Последний раз редактировалось Mario Пт июн 01, 2012 10:00 pm, всего редактировалось 1 раз.

Вернуться к началу
   
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт июн 01, 2012 9:57 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн фев 09, 2009 4:13 am
Сообщения: 445
Leency писал(а):
Осталась одна проблема: не работает мышь. Как к этой строке добавить обработку мыши?
Код:
mcall 40, 10000000b ; only net event!!!
5-ый бит отвечает за мышь.
Код:
mcall 40, 10100000b ; only net event!!!
Вот таблица. По ней легко определить, какой бит надо включить/выключить.
Код:
;  |----------------------------------------------------------------------------|                                            ;
;  |                       Таблица желаемых событий.                            |                                            ;
;  |----------------------------------------------------------------------------|                                            ;
;  | 00000000 00000000 00000000 00000111b  Cобытия:                             |                                            ;
;  |                                   I   Перерисовка окна.                    |                                            ;
;  |                                  I    Клавиша в буфере.                    |                                            ;
;  |                                 I     Кнопка в буфере.                     |                                            ;
;  |                                I      Забранировано.                       |                                            ;
;  |                               I       Перерисовывается фон рабочего стола. |                                            ;
;  |                              I        Мышь.                                |                                            ;
;  |                             I         IPC                                  |                                            ;
;  |                            I          Сетевое событие.                     |                                            ;
;  |                          I            Отладочное событие.                  |                                            ;
;  | I---------------I                     Данные IRQ.                          |                                            ;
;  |----------------------------------------------------------------------------|                                            ;

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Изображение


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт июн 01, 2012 10:08 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4080
Спасибо! С битами буду разбираться.

Программу залил на SVN.

Что хотелось бы сделать в будущем: отображение статуса процесса в окне. Ну или хотя бы индикатор окончания загрузки.

P.S. Да, исправление было для другого места.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Вт мар 19, 2013 4:17 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Сейчас качалка не поддерживает коды 301/302. Особенность в том, что часто адрес, куда делается редирект, не сообщается в содержимом документа, а только в качестве ответа качалке (HTTP/1.1 301 Moved .. и тут адрес). Без обработки этих кодов ошибок зачастую невозможно посещать некоторые сайты.


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Вт мар 19, 2013 4:25 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4080
Я уже писал, что часты случаи, когда сайт http://ololo.lo не будет работать просто потому он посылает 301/302 на http://www.ololo.lo или http://ololo.lo/index.php, что делает неработоспосособными чуть менее, чем половину хостов.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Ср мар 20, 2013 9:17 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Вдруг пригодится:
«Address Already in Use» или как избежать проблем при завершении TCP соединения

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Чт апр 18, 2013 8:51 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
По мотивам "Винни Пух и все-все-все 256 байт адреса"

http://paradigm.ru/url-max-length
http://www.manhunter.ru/webmaster/481_k ... a_url.html

По первой ссылке похвалили Opera, обосрали IE и скромно промолчали про Хром.
По второй ссылке похвалили Opera, обосрали IE и Хром все равно сосет.
Фуррифокс и Сафари бодрячком.

Итого делаем вывод - долбодятлы криворукие веб-мастера могут взять любое значение полной длинны ссылки.

В Колибри в случае использования расшаренной "именованной" памяти для передачи полного пути можно также использовать любой доступный объем памяти.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Чт апр 18, 2013 8:54 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Я еще года два назад делал такие тесты, Хром вешается на 65534м байте адреса. Ну, или вешался. Опера действительно работала стабильно, а фуррифокс просто малеха подтормаживал на мегабайтных ссылках. Но на статью это не тянуло.


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт апр 19, 2013 2:21 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
SoUrcerer писал(а):
Сейчас качалка не поддерживает коды 301/302. Особенность в том, что часто адрес, куда делается редирект, не сообщается в содержимом документа, а только в качестве ответа качалке (HTTP/1.1 301 Moved .. и тут адрес). Без обработки этих кодов ошибок зачастую невозможно посещать некоторые сайты.

На каких сайтах кроме http://google.com можно гарантированно получить такое перенаправление? Нужна статистика, поскольку придется разбирать содержимое выдаваемой страницы.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт апр 19, 2013 9:16 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
На http://kolibrios.org :)
Разбирать содержимое страницы не нужно, потому что в ответе 301/302 передается конкретно адрес, куда нужно сделать редирект. Это уже поддерживается в тестовой сборке HTMLv со своей встроенной качалкой HTTP.


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт апр 19, 2013 9:18 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
SoUrcerer писал(а):
На http://kolibrios.org :)
Разбирать содержимое страницы не нужно, потому что в ответе 301/302 передается конкретно адрес, куда нужно сделать редирект. Это уже поддерживается в тестовой сборке HTMLv со своей встроенной качалкой HTTP.

Хорошо, тогда я не буду тратить время на решение этой проблемы.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: http качалка
СообщениеДобавлено: Пт апр 19, 2013 9:19 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Код:
telnet kolibrios.org 80
GET / HTTP/1.0
Host: kolibrios.org


Код:
HTTP/1.0 301 Moved Permanently
Location: http://kolibrios.org/en/
Content-Length: 0
Connection: close
Date: Fri, 19 Apr 2013 06:18:29 GMT
Server: lighttpd/1.4.32


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 88 сообщений ]  На страницу Пред. 1 2 3 4 5 6 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB