LINUX.ORG.RU

Сообщения PPP328

 

Бага в libxml2?

 

Пишу свой парсер, сверяюсь с libxml2 как образцом. сейчас подобрался к парсингу префиксов-неймспейсов. Ощущение что libxml2 не умеет с ними корректно работать вообще:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <aaa xmlns:de="http://www.dolby.com/dcinema/ws/smi/v11/SPL"        atr="abc"       xmlns:fe="http://somewhere">
   some text
   <de:bbb atr1="abb"  atr2="baa" >aaa</de:bbb>
   <de:ccc>aaa</de:ccc>
   <fe:ddd>bbb</fe:ddd>
   some more text
  </aaa>

XML валидный, проверено.

Что я получаю в итоге у себя (не обрабатываю неймспейсы пока):
space - text
* - attribute
$ - PI
+ - node
} - namespace definition
{ - namespace use

{
    '$xml' => {
        '*version' => '1.0',
        '*encoding' => 'UTF-8',
        '*standalone' => 'yes',
        ' xml' => '\x0A  ',
    },
    '+aaa' => {
        '*xmlns:de' => 'http://www.dolby.com/dcinema/ws/smi/v11/SPL',
        '*atr' => 'abc',
        '*xmlns:fe' => 'http://somewhere',
        ' aaa' => '\x0A   some text\x0A   ',
        '+de:bbb' => {
            '*atr1' => 'abb',
            '*atr2' => 'baa',
            ' de:bbb' => 'aaa',
        },
        ' aaa' => '\x0A   ',
        '+de:ccc' => {
            ' de:ccc' => 'aaa',
        },
        ' aaa' => '\x0A   ',
        '+fe:ddd' => {
            ' fe:ddd' => 'bbb',
        },
        ' aaa' => '\x0A   some more text\x0A  ',
    },
},

Что я получаю у libxml2:

{
    '+aaa' => {
        ' aaa' => '\x0A   some text\x0A   ',
        '+bbb' => {
            ' bbb' => 'aaa',
            '*atr1' => 'abb',
            '*atr2' => 'baa',
            '}de' => 'http://www.dolby.com/dcinema/ws/smi/v11/SPL',
            '}fe' => 'http://somewhere',
        },
        ' aaa' => '\x0A   ',
        '+ccc' => {
            ' ccc' => 'aaa',
            '}de' => 'http://www.dolby.com/dcinema/ws/smi/v11/SPL',
            '}fe' => 'http://somewhere',
        },
        ' aaa' => '\x0A   ',
        '+ddd' => {
            ' ddd' => 'bbb',
            '}fe' => 'http://somewhere',
        },
        ' aaa' => '\x0A   some more text\x0A  ',
        '*atr' => 'abc',
        '{de' => 'http://www.dolby.com/dcinema/ws/smi/v11/SPL',
        '{fe' => 'http://somewhere',
    },
},
Обратите внимание, что он пририсовал bbb сразу два неймспейса, пририсовал ccc сразу два неймспейса и пририсовал один (правильно) неймспейс для ddd.

ЧЯДНТ? Бага? Фича?

PPP328
()

Проясните по TLS

 , ,

Добрый день!

Разрабытываю либу общения с устройством, там бинарны протокол через веб-сокеты. Попалось такое же устройство, но которое еще и оборачивает все это дело в TLS. Известны параметры ключа, все дела, протокол остается якобы тот же.

До этого дел с шифрованием не имел, в сортах криптографии не разбираюсь.

Подскажите, как мне имплементировать поддержку TLS в мою либу (pure C), чтобы это было мЕньшим геморроем? Ну то есть у меня есть внутри алгоритмы вычленения пакета, проверки, и пр. и пр, причем там для ряда устройст серии разные ветки и проверки.

Как мне все это дело обернуть в этот ваш TLS? Как это вообще выглядит в канале? TCP?

PPP328
()

Библиотека трансляции Perl Storable <-> C struct

 ,

https://github.com/codemeow/camelion

Умеет:

  • Читать\писать perl storable
  • Читать\писать perl nfreezed binary
  • Самостоятельно создавать\редактировать структуры для трансляции

Дополнительно позволяет использовать себя как считыватель настроект для С-программы - кладем настройки в perl-storable и в файл и считываем либой. Поддерживает хэши любой вложенности, массивы, строки, инты.

PPP328
()

Модуль для слежения за аллоцируемой памятью

 , , ,

Старый лоровский акк потерял (Edible), запилил этот.

Короче. Модуль для слежения за аллоцируемой памятью. Можно подключить в коде (прописать один инклуд для си-проекта), можно использовать уже для скомпилированного проекта (на любом языке). Инструкции в ридми. Выхлопывает так:

[C-TH][        07_all_coloured.c:0009] Malloc :              0x00000190 B (0x09A9C008) : Success
[C-TH][        07_all_coloured.c:0013] Realloc: (0x09A9C008) 0x00000320 B (0x09A9C028) : Success
[C-TH][        07_all_coloured.c:0017] Free   : (0x09A9C028)                           : Success
[C-TH][        07_all_coloured.c:0019] Calloc :              0x00000080 B (0x09A9C008) : Success
[C-TH][        07_all_coloured.c:0022] Free   : (0x09A9C008)                           : Success

Может стрелять в stdout/stderr/файл. Может убрать необходимость проверять на null, может красить выхлоп с помощью ANSI-кодов.

https://github.com/codemeow/c-heetah

Берите, кому надо.

PPP328
()

Chrome + ZenMate = ERR_SPDY_PROTOCOL_ERROR

 ,

Пробовал менять сервера, пробовал флюшить сокеты, ребутить браузер и роутер.

Что можно с этим еще поделать? Опера свой впн для линукса еще не включила, фурефокс жрет почти все мои 2ГБ памяти.

PPP328
()

RSS подписка на новые темы