LINUX.ORG.RU

Сообщения rumgot

 

boost::asio SSL ошибка short read при чтении

Форум — Development

Добрый день.
Система ubuntu 14.04 amd64
Пакеты libboost1.54-dev(1.54.0-4ubuntu3.1), libssl-dev(1.0.1f-1ubuntu2.18)
Подключаюсь к https://google.com/, отправляю get-запрос и далее пытаюсь читать ответ используя boost::asio::async_read.
Чтение из сокета(точнее boost::asio::ssl::stream) проходит нормально, все байты получаю, но при чтении последних байт, получаю в своей callback-фунции в переданной в функцию переменной const boost::system::error_code & error вот такую ошибку(для просмотра текста ошибки используется вызов error.message()):
short read
при этом цифровой код ошибки такой(для просмотра кода ошибки используется вызов error.value()):
335544539
Вопрос: что это за ошибка, если можно подробней? Как бы корректно ее обрабатывать? Нормальные ли решения, предложенные по сслыкам ниже?
http://forum.sources.ru/index.php?showtopic=346929
http://lists.boost.org/boost-users/2012/04/74014.php

 , , ,

rumgot
()

debootstrap установка kde из linuxmint 17

Форум — Linux-install

Добрый день.
Подскажите пожалуйста, кто занимался, как установить kde из linux mint 17?
Ставлю систему через debootstrap.
Установил базовую систему без графического окружения(language-pack-ru ubuntu-standard linux-image-generic linux-headers-generic build-essential grub2 console-common).
Содержимое /etc/apt/sources.list:

deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
deb http://packages.linuxmint.com/ rosa main upstream import
deb http://extra.linuxmint.com/ rosa main
А какие пакеты ставить дальше?
Пробовал дальше ставить пакеты:
mint-meta-kde
kcm-mdm
kde-window-manager
при этом mdm запускается, но при попытке ввода пароля пользователя выдает ошибку.

 ,

rumgot
()

QtCreator ошибка в ClangCodeModel модуле

Форум — Development

Добрый день.
Система ubuntu 14.04 x64
QtCreator 3.6.0 (скачанный с http://download.qt.io/)
Использую библиотеку boost filesystem (1.55.0).
Стандартный механизм автодополнения некорректно работает с типом

boost::filesystem::recursive_directory_iterator
а именно, автодополнение не отображает метод path() у переменной указанного выше класса
path p("/path/to/directory");
for (recursive_directory_iterator dir(p), end; dir != end; dir ++) {
    dir->path(); // здесь метод path() не отображается в автодополнении
...
}
Короче включил я в QtCreator модуль ClangCodeModel и далее в настройках включил модель кода Clang.
После этого автодополнение заработало корректно, но появилась другая ошибка:
В настройках цветов в QtCreator есть объекты «Тип примитива» и «Ключевое слово», так вот при активации модели кода Clang, все элементы, которые относятся к «Тип примитива», начинают отображаться цветом «Ключевое слово», причем при вводе, эти элементы на 1-2 сек отображаются цветом «Тип примитива», но затем становятся цвета из «Ключевое слово».
Можно ли побороть как-то данную ошибку с цветами?
В версии QtCreator3.5.1 данной ошибки нет.

 , ,

rumgot
()

Qt Creator что за тема подсветки синтаксиса

Форум — Development

Добрый день.
Подскажите пожалуйста, что за тема подсветки синтаксиса у QtCreator на изображении?
Ссылка >>>>>>>>>>>>>>

 

rumgot
()

libreoffice пересохранить файл в другом формате из командной строки

Форум — Desktop

Добрый день.
Имеются файлы *.xlsx (MS Excel)
Мне нужно пересохранить их в *.odf.
Как это делает LibreOffice Calc меня вполне устраивает.
Как в скрипте организовать проход всех файлов я знаю, но вот самой команды для пересохранения одного файла в другой формат НЕТ.
Так вот, можно ли используя LibreOffice в командной строке пересохранить один файл формата xlsx в формат odf?

 

rumgot
()

Где в системе находятся файлы шрифтов Nimbus?

Форум — Desktop

Добрый день
Понимаю, что ламерский вопрос, но все же.
Система Ubuntu 14.04
Подскажите пожалуйста, где в системе находятся файлы шрифтов Nimbus, и в состав какого пакета они входят?

 ,

rumgot
()

debian(ubuntu) /etc/network/interfaces как получать по dhcp только ip без dns

Форум — Admin

Добрый день.
Система ubuntu 14.04 со статической конфигурацией сети.
Настроен openvpn в режиме клиента и при подключении помимо ip данный клиент получает настройку dns.
Т.к. Обычный сетевой интерфейс, смотрящий в локальную сеть настроен на dhcp, то в результате в /etc/resolv.conf оказывается два dns адреса.
Как сделать так, чтобы локальный интерфейс получал по dhcp только ip без dns?

 

rumgot
()

Подскажите что за браузер

Форум — General

Здравствуйте
Вот в этом видео https://www.youtube.com/watch?v=Dlnuu9lRicU на 0:42 запускается браузер kecat web browser
Подскажите, что за браузер такой, может у кого ссылка есть на сайт или исходники?
Гугление результатов не дает.

 ,

rumgot
()

c++ Передать метод одного класса в качестве параметра для метода другого кдасса

Форум — Development

Здравствуйте. C++ . Есть две переменные, одна класса А, вторая класса B. Как бы передать нестатический метод 1 первого объекта в нестатический метод 2 второго объекта в качестве калбэк функции. При этом данная калбэк функция должна иметь доступ к членам своего объекта через this.
Пожалуйста, не отсылайте к гуглу. Перечитал несколько руководств, пока не получается.

 ,

rumgot
()

Boost Asio Определение сервером факта отключения клиента

Форум — Development

Boost Asio Определение сервером факта отключения клиента Добрый день.
Имеется код(некоторые очевидные участки скрыты)

...

void client_session(tcp::socket socket) {
    string st;
    try {
        while(true) {
            cout << "Enter st:" << endl;
            cin >> st;
            socket.write_some(buffer(st));
        }
    }
    catch (exception &e) {
        socket.close();
        cout << e.what() << endl;
    }
}
...

int main() {
    ...
    tcp::socket socket(bService);
    bAcceptor.accept(socket);
    thread th(client_session, move(socket));
    th.join();

    return 0;
}
Короче, запускаю этот «сервер»(:-))
1) Подключаюсь к нему с локального ПК или другого(в контексте данного вопроса не имеет значения) командой:
nc localhost 30055
2) На сервере получаю сообщение «Enter st:», и сразу же после его получения(со стороны клиента, закрываю nc комбинацией CRTL+C);
3) На сервере тем временем продолжает отображаться строка «Enter st:»;
4) На сервере ввожу строку «qwe123», нажимаю ВВОД и далее оператор write_some отрабатыет успешно, исключение не выпадает;
5) На сервере ввожу вторую строку «rty456», нажимаю ВВОД и далее при выполнении оператора write_some выпадает исключение(текст e.what(): «write_some: Broken pipe»);

Также приведу сокращенный лог wireshark во время выполнения данных манипуляций:
Клиент -> Сервер [SYN]
Сервер -> Клиент [SYN, ACK]
Клиент -> Сервер [ACK]
- нажимаю CRTL+C со стороны клиента
Клиент -> Сервер [FIN, ACK]
Сервер -> Клиент [ACK]
- на сервере ввожу первую сроку "qwe123" и ВВОД
Сервер -> Клиент [PSH, ACK] (в данном пакете как раз есть введенная строка "qwe123")
Клиент -> Сервер [RST]
- на сервере ввожу вторую строку "rty456" и ВВОД
- в wireshark больше ничего не добавляется, на сервере выпадает
исключение и соответственно отображается строка "write_some: Broken pipe" (e.what())
Вопросы:
1) Почему исключение не выпадает при первом операторе write_some?
2) Eсть ли какие-то параметры tcp::socket, которые влияют на данное поведение и как их использовать?

 ,

rumgot
()

c++ boost регулярные выражения, получить результат в виде C-строки

Форум — Development

Добрый день, имеется следующий код(используются regex классы и функции из boost regex):

...
regex regexTest("([a-zA-Z0-9]{1,20})\n([a-zA-Z0-9]{1,20})");
cmatch rez; //typedef match_results<const char*> cmatch;
char data[] = "ABC123\nABC456";
regex_match(data, rez, regexTest);
...

Вот примеры получения совпадения, соответствующего первым скобкам:

...
string st1 = rez[1].str();
string st2 = *(rez.begin + 1);
...
Вопрос:
А можно ли как-то из получить результат в виде строки в стиле C, при этом не используя промежуточный string-объект?

 ,

rumgot
()

c++ mutex узнать состояние (заблокирован или нет)

Форум — Development

Добрый день.
Использую std::mutex из c++11
Подскажите пожалуйста, как узнать состояние мьютекса (заблокирован или нет)? Пока единственное, что приходит в голову:

...
std::mutex m;
...
void someThreadFunc() {
    ...
    bool mutexOtherThreadBlock = true;
    bool isLock = m.try_lock();
    if (isLock) {
        mutexOtherThreadBlock = false;
        m.unlock();
    ...
}
...
Но данный способ как-то не очень красив. Может кто знает способ лучше?

 ,

rumgot
()

libboost-system совместимость версий

Форум — Development

Имеется самописное приложение на c++ с использованием boost asio.
Система linux mint 17 x64
Установлены:
libboost-system1.54-dev
libboost-system1.54.0
libboost1.54-dev

Все компилируется, работает(при компоновке передаю g++ параметр -lboost_system). Но вот нужно мне перенести данное приложение на другой компьютер с debian 8 x64, там стоит libboost-system1.55.0. Так вот при запуске моего приложения на данной системе, получаю сообщение об ощибке:
error while loading shared libraries: libboost_system.so.1.54.0: cannot open shared object file: No such file or directory
Вопрос: можно ли как-то заставить приложение использовать другую версию libboost-system (в данном случае libboost-system1.55.0) или единственный вариант перекомпилировать программу под нужную версию libboost-system?

 ,

rumgot
()

c++ переменная типа thread

Форум — Development

Здравствуйте.
Иммеется класс в нем переменная-член с типом thread, т.е. соответствующий участок кода заголовочного файла:

...
private:
   thread th1;
...
Вопрос: как теперь запустить данный поток, т.е. указать для него соответствующую функцию и т.д.
Сразу оговорюсь: я знаю как указывать требуемую функцию при определении переменной класса thread в коде с использованием соотвествующего конструктора, интересует именно как сначала объявить переменную как член класса, а потом в одном из методов запустить данный поток.

 ,

rumgot
()

Стартавать Bind после OpenVPN

Форум — Admin

Здравствуйте.
Имеется сервер Debian 7 x64
На нем работают
Bind 9.8.4
OpenVPN 2.3.2

Проблема:
При перезагрузке сервера оба указанных демона запускаются и работают, но Bind не слушает на интерфейсе OpenVPN, походу потому, что OpenVPN стартуют немного позже чем Bind и соответственно в момент старта Bind интерфейс OpenVPN еще не существует.
Если после запуска OpenVPN, перезапустить Bind, то все работает.

Как бы мне по-элегантнее решить данную проблему?

 ,

rumgot
()

df -h построчно обработать на bash

Форум — General

Здравствуйте.
Как в bash построчно обработать вывод df -h ?
Пробовал так, но не то:

LINES=$(df -h)
for line in $LINES; do
    echo $line
done
Так тоже не то:
LINES=$(df -h)
while read line ; do
    echo $line
done < $LINES

 

rumgot
()

Корневой раздел на lvm-разделе

Форум — General

Здравствуйте.
Есть ли у кого доводы против использования lvm-раздела в качестве корневого, может был отрицательный опыт?
Система ubuntu 14.04 x64, корневой раздел на lvm, пока все работает, при необходимости можно легко раздел увеличить.
Также, при необходимости иметь много установленных linux-систем, использовать данный способ очень удобно.
Вопрос касается как десктопных машин, так и серверов.

 

rumgot
()

VirtualBOX на хостинге/сервере предприятия

Форум — Admin

Здравствуйте.
Сразу оговорюсь, я читал ответы на подрбные вопросы в других источниках. Но хочется свежих мыслей.
1) Почему не принято использовать VirtualBox в качестве серьезного решения для виртуализации масштаба хостинга VPS/VDS или хотя бы предприятия?
2) Чем по-вашему он уступает KVM или Xen(производительность, безотказность, высокий uptime, безопасность, удобство gui/командной строки и т.д.?

 , ,

rumgot
()

QT печать размер страницы

Форум — Development

Здравствуйте. Система linux mint 17 kde x64, Qt5.4.0, для печати используется cups, в котором установлены сетевые принтеры(canon ir2520 и canon mf5940dn), а также локальный принтер samsung clp300 и локальный pdf-принтер.
Имеется такой код в слоте по нажатию кнопки:

QPrinter printer;
QPrintDialog printDialog(&printer, this);
printDialog.exec();

qDebug() << printer.pageLayout();
qDebug() << printer.pageRect(QPrinter::Millimeter);
qDebug() << printer.paperRect(QPrinter::Millimeter);

Я выставляю размер страницы(как показано выше) через диалог.

Если указать размера страницы отличный от A4(скажем A5 или A3, если принтер позволяет) в диалоге настройки принтера, размер страницы не меняется, т.е. получаю вывод такой вывод в операторе debug():

"QPageLayout(A4, Portrait, l:14.173 r:13.898 t:14.173 b:14.284 pt)"
QRectF(5,5 200.1x286.96)
QRectF(0,0 210x297)
Данное поведение характерно ТОЛЬКО для сетевых притеров. Для локальных принтеров samsung clp300 и pdf-принтера размер страницы меняется через упомянутый выше диалог корректно, и вызов qDebug() показывает тот размер страницы, который был выбран в диалоге настройки принтера.
В системе windows(Qt5.4.0) этот же код работает как надо для всех принтеров. В чем дело?

 ,

rumgot
()

tc filter ЛОГИЧЕСКОЕ отрицание для SRC

Форум — Admin

Здравствуйте.
Можно ли при добавлении фильтра U32 утилитой tc, использовать логическое отрицание, например для указания подсети.
Т.е. нужно добавить фильтр, который отбирает пакеты, у которых адрес SRC «НЕ ИЗ УКАЗАННОЙ ПОДСЕТИ»?

 ,

rumgot
()

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