Как научить postfix + dovecot delivery класть письма в /dev/null
Расскажите, как письма приходящие на noreply@domain.com класть в /dev/null, при том что postfix раскладывает письма через dovecot delivery? База пользователей хранится в ldap.
Расскажите, как письма приходящие на noreply@domain.com класть в /dev/null, при том что postfix раскладывает письма через dovecot delivery? База пользователей хранится в ldap.
Стало интересно, кто на что жмет в этом диалоге и как к нему относится? :)
Пытаюсь разобраться со спиритом, но чего-то не могу собрать код с его использованием, может кто подскажет что я делаю не так?
calc.h:
#ifndef CALC_H
#define CALC_H
#include <boost/spirit/core.hpp>
#include <stack>
class Calc
{
public:
double evaluate(char *expr);
void do_push_value(double x){};
void do_add(char const*, char const*){};
void do_subt(char const*, char const*){};
void do_mult(char const*, char const*){};
void do_div(char const*, char const*){};
void do_pow(char const*, char const*){};
void do_neg(char const*, char const*){};
void do_cos(char const*, char const*){};
void do_sin(char const*, char const*){};
struct calculator : public boost::spirit::grammar<calculator>
{
template <typename ScannerT>
struct definition
{
definition(calculator const&)
{
expression
= term
>> *( ('+' >> term)[&Calc::do_add]
| ('-' >> term)[&Calc::do_subt]
)
;
term
= factor
>> *( ('*' >> factor)[&Calc::do_mult]
| ('/' >> factor)[&Calc::do_div]
| ('^' >> factor)[&Calc::do_pow]
)
;
factor
= boost::spirit::real_p[&Calc::do_push_value]
| '(' >> expression >> ')'
| ('-' >> factor)[&Calc::do_neg]
| ("cos" >> factor)[&Calc::do_cos]
| ("sin" >> factor)[&Calc::do_sin]
| ('+' >> factor)
;
}
boost::spirit::rule<ScannerT> expression, term, factor;
boost::spirit::rule<ScannerT> const& start() const { return expression; }
};
} calc;
std::stack<double> stack;
};
#endif // CALC_H
calc.cpp:
#include "calc.h"
using namespace boost::spirit;
...
double Calc::evaluate(char* expr)
{
parse_info<> info = parse(expr, calc, space_p);
};
..>>> Подробности (Invalid URL, no host part!)
>>> Подробности (kde.org)
>>> Подробности (kde.org)
Есть код:
//id3v1stringhandler.h
namespace TagLib
{
class ByteVector;
class String;
namespace ID3v1
{
class StringHandler;
}
}
class QTextCodec;
class ID3v1StringHandler : public StringHandler
{
private:
QTextCodec *m_codec;
public:
ID3v1StringHandler();
virtual String parse(const ByteVector &data) const;
void setCodec(int index);
};
//id3v1stringhandler.cpp
#include <qtextcodec.h>
#include <tstring.h>
#include <id3v1tag.h>
#include <tbytevector.h>
#include "id3v1stringhandler.h"
ID3v1StringHandler::ID3v1StringHandler()
{
m_codec=QTextCodec::codecForLocale();
}
void ID3v1StringHandler::setCodec(int index)
{
m_codec=QTextCodec::codecForIndex(index);
}
String ID3v1StringHandler::parse(const ByteVector &data) const
{
return QStringToTString(m_codec->toUnicode(data.data(), data.size()));
}
Пытаюсь скомпилить:
$ g++ -c id3v1stringhandler.cpp -I$QTDIR/include -I/usr/include/taglib -L$QTDIR/lib -lqt-mt -ltag
В ответ куча ругани, если все инклуды прописываю в id3v1string.h и говорю using namespace std; то все работает, но тогда появляются конфликты в основном проекте.
Вопрос: Как-же это все победить?:)| следующие → |