Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Nov 13, 2019 8:36 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 91 posts ]  Go to page Previous 13 4 5 6 7 Next
Author Message
 Post subject: Re: http качалка
PostPosted: Fri Jun 01, 2012 8:38 pm 
Offline
Designer
User avatar

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

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


Top
   
 Post subject: Re: http качалка
PostPosted: Fri Jun 01, 2012 9:29 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
Network Downloader 0.6

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

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

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

Code:
mcall 40, 10000000b ; only net event!!!


Attachments:
File comment: Залью на SVN после исправления последнего бага
downloader.zip [15.38 KiB]
Downloaded 158 times

_________________
Через тернии к звездам
Top
   
 Post subject: Re: http качалка
PostPosted: Fri Jun 01, 2012 9:33 pm 
Как однажды сказал один человек "Мнение пишущего код более приоритетно, чем мнение советующих".

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


Top
   
 Post subject: Re: http качалка
PostPosted: Fri Jun 01, 2012 9:45 pm 
Leency wrote:
Осталась одна проблема: не работает мышь. Как к этой строке добавить обработку мыши?
Code:
mcall 40, 10000000b ; only net event!!!

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

http://wiki.kolibrios.org/wiki/Ru/api/kernel
Spoiler: Show
Quote:
Список событий
Очередное событие можно получить вызовом одной из функций 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

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

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

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


Last edited by Mario on Fri Jun 01, 2012 10:00 pm, edited 1 time in total.

Top
   
 Post subject: Re: http качалка
PostPosted: Fri Jun 01, 2012 9:57 pm 
Offline
User avatar

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

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


Top
   
 Post subject: Re: http качалка
PostPosted: Fri Jun 01, 2012 10:08 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
Спасибо! С битами буду разбираться.

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

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

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

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


Top
   
 Post subject: Re: http качалка
PostPosted: Tue Mar 19, 2013 4:17 pm 
Offline

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


Top
   
 Post subject: Re: http качалка
PostPosted: Tue Mar 19, 2013 4:25 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
Я уже писал, что часты случаи, когда сайт http://ololo.lo не будет работать просто потому он посылает 301/302 на http://www.ololo.lo или http://ololo.lo/index.php, что делает неработоспосособными чуть менее, чем половину хостов.

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


Top
   
 Post subject: Re: http качалка
PostPosted: Wed Mar 20, 2013 9:17 am 
Offline
Kernel Developer

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

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


Top
   
 Post subject: Re: http качалка
PostPosted: Thu Apr 18, 2013 8:51 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
По мотивам "Винни Пух и все-все-все 256 байт адреса"

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

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

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

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

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


Top
   
 Post subject: Re: http качалка
PostPosted: Thu Apr 18, 2013 8:54 am 
Offline

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


Top
   
 Post subject: Re: http качалка
PostPosted: Fri Apr 19, 2013 2:21 am 
Offline
Kernel Developer

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

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

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


Top
   
 Post subject: Re: http качалка
PostPosted: Fri Apr 19, 2013 9:16 am 
Offline

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


Top
   
 Post subject: Re: http качалка
PostPosted: Fri Apr 19, 2013 9:18 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SoUrcerer wrote:
На http://kolibrios.org :)
Разбирать содержимое страницы не нужно, потому что в ответе 301/302 передается конкретно адрес, куда нужно сделать редирект. Это уже поддерживается в тестовой сборке HTMLv со своей встроенной качалкой HTTP.

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

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


Top
   
 Post subject: Re: http качалка
PostPosted: Fri Apr 19, 2013 9:19 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Code:
telnet kolibrios.org 80
GET / HTTP/1.0
Host: kolibrios.org


Code:
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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 91 posts ]  Go to page Previous 13 4 5 6 7 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited