LINUX.ORG.RU

Сообщения kondor

 

Купить «APUE» Р.Стивенса

Очень хочется приобрести через Интернет hard-copy на английском языке книгу Р.Стивенса "Advanced Programming in UNIX Environment". Посоветуйте, пожалуйста, такой e-shop, где можно ее приобрести (с учетом доставки) по "вменяемой" цене? Спасибо.


P.S. На ozon.ru она стоит ~>3000 руб., при реальной стоимости книги в ~$45-50.

kondor
()

Обработчик сигнала в классе C++

Как сделать в C++ примерно такое:

void myclass::handler(int signum)
{
      // some actions
}

void myclass::register()
{
    signal(SIGUSR1, handler);
}

? gcc на такую конструкцию (на содержимое метода register()) ругается, равно как и на
     signal(..., this->handler); и
     signal(..., myclass::handler);


Может есть варианты с помощью различных reinterpret_cast<> (я в них не разбираюсь)? Спасибо.
kondor
()

Как быть с лицензией LGPL?

Могу ли я взять модуль (mastr) из leafnode, который распространяется по лицензии LGPL, выбросить из него все мне не нужное и связанное с самой программой, а так же поменять название переменных (хочу просто типы переименовать) и распространять под лицензией [L]GPL?

Что для этого требуется? Что писать в хидере файл про автора и т.д.?
Расскажите, пожалуйста, вкратце, что накладывает LGPL на исходный продукт?

Спасибо.

kondor
()

Права доступа в AFS

Есть аккаунт на Linux-ферме с AFS. Необходимо разрешить только одному пользователю доступ в определенный каталог (apache). Узнал, что apache запущен из под пользователя wwwrun.
Соответственно команда: fs setacl mydir system:wwwrun all выдает, что такого пользователя не существует.

Подскажите, пожалуйста, как разрешить доступ именно ЭТОМУ системному пользователю? Уже 5й час бьюсь над решением этой проблемы, и все никак не выходит :/. Спасибо.

kondor
()

Потоки C++ и блокировка

Подскажите, пожалуйста, как лучше реализовать блокировку в (o/i)fstream в C++ в Linux? Единственно верным вариантом вижу написание с нуля собственного соответствущего класса с поддержкой блокировки.

Спасибо.

kondor
()

Двойной fork()

У Стивенсона в книге есть пример функции daemon_init(), которая создает демона. В ней используется используется двойной вызов fork(), якобы для надежности, что бы наверняка :).

Меня интересует насколько оправдана такая реализация с двумя вызовами fork()? Спасибо.

kondor
()

daemon() и портабельность

Нашел в unistd.h функцию daemon(), которая заменяет последовательность вызово fork(), setsid() и chdir(). Меня интересует, насколько эта функция портабельна в UNIX-системах? Спасибо.

kondor
()

тормоза mplayer и субтитры

Ситуация такая:
есть фильм (avi), есть к нему субтитры (английские), все это загружается с помощью GeexBox. Порой mplayer, во время воспроизведения, пару разу "икнет", после чего сразу же идет несоответствие субтитров фильму. Каждый раз ручками подправлять паузы -- надоедает. PC: i2.5GHz, 1Gb (Dual), видео: 128Mb.

Иногда бывает, что несоответствие начинается с самого начала просмотра :(.

Как правильно решить данную проблему? Заранее благодарен.

kondor
()

Запуск одной копии daemon'а

Есть daemon (Linux). Как узнать, что одна его копия уже запущена и запретить создание другой? Есть ли такие способы, кроме создания файловых флажков, сигнализирующих запуск daemon'а?

Спасибо.

kondor
()

Вызов ulimit из программы

Здравствуйте!

Хотелось бы, что при non-handled errors моя программа выкидывала ``core''. Но не на всех системах задано значение ``ulimit''. Насколько будет корректно и красиво (с точки зрения программирования), если перед запуском, моя программа будет делать, что-то вроде этого?
system("ulimit ... ");

Спасибо.

kondor
()

Реализация полиморфизма

Помогите с реализацией полиморфизма; то ли я плохо читал Страуструпа, то ли я много хочу, но ответа на свой вопрос найти не смог. Мне необходимо, что бы функция f() сама определяла наследника и вызывала соответствующий метод. Как это реализовать, подскажите, пожалуйста?

Спасибо.

================================================
#include <iostream>
#include <string>


using namespace std;

// Базовый класс
class Parent
{
public:
void set();
};

class ChildA : public Parent
{
private:
int data;

public:
void set(const int& tdata) { data = tdata; }
};

class ChildB : public Parent
{
private:
string data;

public:
void set(const string& tdata) { data = tdata; }
};


/*
В зависимости от ``data'' f() должна вызывать соответсвующий метод наследника, например, при f(ChildB o, 10) должен вызываться Q.set(int).

*/
template<class T> void f(Parent& Q, T data)
{
Q.set(data);
}

int main(void)
{
ChildA a;
ChildB b;

f(a, 10);
// f(b, "fff");

return 0;
}
================================================

kondor
()

Определение типа. Как реализовать?

Собственно, есть функция (простейший пример), которая устанвливает значение переменной. Надо реализовать: если в функцию передается указатель на какой-либо тип, и если он не инициализирован -- выделить ему память и установить значение, если же передается адрес переменной -- просто установить значение. Проблема в том как это определить.

Нижеследующая программа, которая по-идее должна решать данную задачу, падает с ``segmentation fault''. Где ошибка? Спасибо.

===
#include <stdio.h>
#include <stdlib.h>



void set(int *p, int value)
{
if(p == NULL) p = (int *)malloc(sizeof(int));
*p = value;
}



int main(void)
{
int *q1 = NULL;
int q2 = 0;

set(q1, 10);
set(&q2, 20);

printf("q1: %i\n", *q1);
printf("q2: %i\n", q2);

free(q1);

return 0;
}
===

kondor
()

SOCKS5 lib

Посоветуйте, пожалуйста, GNU/GPL библиотеку на Си для работы с SOCKS (интересует именно SOCKS5). Хочу просто небольшой SOCKS-сервер написать, а изобретать велосипед не хотелось бы. Спасибо.

kondor
()

Web interface для BIND

Есть DNS-сервер (BIND) + http-сервер (Apache) в локальной сети. Большинству компьютеров присвоено локальное доменное имя, например, pupkin.org.lan. Хочется, что бы каждый пользователь, кто имеет доменное имя, мог зайти через веб интерфейс и добавлять/удалять поддомены без участия администратора.
Интересует, существуют ли готовые web-интерфейсы к BIND для решения данной задачи? Спасибо.

kondor
()

Debian 14CD -> 2DVD

Собственно, встала такая задача, как сделать из 14 дисков с Debian GNU/Linux v3.1r0 "Sarge" 2 DVD диска. С dpkg-scanpackages вроде бы понятно, меня интересует, как правильно скопировать загрузчик (с инсталлятором) с первого диска и правильно, вместе с пакетами записать на первый DVD диск? Спасибо.

kondor
()

OpenOffice.Org и шрифты

Есть Debian GNU/Linux "Sarge" v3.1, OpenOffice.Org v1.1:
Не отображаются русские буквы в менюшках и при наборе текста. Поставил "ms core fonts", прописал -- в иксах шрифт изменился на "ура", в самом OO.Org появились в пункте выбора шрифтов "Times, Courier и пр.", но проблема не исчезла. Так же пробовал ставить шрифты из самой Windows (W2k) -- проблема не исчезла. Как решить данную проблему? В google.com подходяшего решения подобной проблемы найти не удалось :( Спасибо.

kondor
()

iptables && порты

Пытаюсь нормально настроить firewall для локальной сети, вроде бы почти все нормально, но никто (даже я) не могут зайти на мой ftp, nntp сервер. Где тут ошибка в правилах для iptables? Спасибо.

Есть следующие правила для iptables:

IPTABLES=/sbin/iptables
LANIP=10.49.61.2


$IPTABLES -F
# Запрещено то, что не разрешено:
$IPTABLES -P INPUT DROP

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -p icmp -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 10.48.127.3 -d $LANIP --dport ssh -j ACCEPT
$IPTABLES -A INPUT -p tcp -s $LANIP -d $LANIP --dport ssh -j ACCEPT
$IPTABLES -A INPUT -p tcp -s $LANIP -d $LANIP --dport http -j ACCEPT
$IPTABLES -A INPUT -p tcp -d $LANIP --dport ftp -j ACCEPT
$IPTABLES -A INPUT -p tcp -d $LANIP --dport nntp -j ACCEPT
$IPTABLES -A INPUT -p tcp -d $LANIP --dport 139 -j ACCEPT
$IPTABLES -A INPUT -p tcp -d $LANIP --dport 445 -j ACCEPT

kondor
()

ProFTPd && charset

Юзера (виндузятники) моего ftp-сервера жалуются на не читабельность имен файлов и каталогов (с моей стороны кодировка koi8-r, с их - cp1251). У меня в качество ftp-сервера стоит ProFTPd. Возможно ли, сделать, что бы имена файлов и дирректорий "отдавались" в кодировке cp1251 ? Какая опция в конфиге или какой patch помогут дать ответ на это вопрос? Спасибо.

kondor
()

in-kernel Portscan Detector

Наложил патч "In-kernel Portscan Detector" на ядро 2.4.27. В ``make menuconfig'' относительно PSD включил его модулем. Ядро пересобрал. Решил по-пробовать в действии:
- Подгрузил модуль libipt_psd.so
- Пробую:
[root@luckysystem ~]# /sbin/iptables -A INPUT -p psd --dport 10.49.61.2 -j LOG --log-prefix "Scan detected "

В ответ получаю:
iptables v1.2.11: unknown protocol `psd' specified
Try `iptables -h' or 'iptables --help' for more information.

Вообщем, с какими ключами нужно запускать iptables, что бы заработал PSD ? В Интернете по-этому поводу ниформацию, а тем более документацию найти не удалось :(. Спасибо.

kondor
()

Блокировать адреса по маске

Как с помощью iptables блокировать подсоединение (к любому порту) к моему компьютеру в сети лицам, у кого в ip-адресе третий байт равен 255, например: 10.49.255.3, 10.50.255.10 ? /etc/hosts.allow здесь может помочь? Спасибо.

kondor
()

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