Code Monkey home page Code Monkey logo

pfixtools's People

Contributors

aaugustin avatar bfpc avatar driskell avatar ebzao avatar fruneau avatar groe avatar ia0 avatar lancechentw avatar madcoder avatar vzanotti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pfixtools's Issues

Cleanup postlicyd configuration syntax

  • provide a cleaner syntax:
on_hookname {
  action1;
  action2;
  next = (filtername|postfix);
}
  • the list of action becomes a small scripting language executed in declaration order
  • keep compatibility with previous syntax (if on_hookname is followed by a = use previous post-action format)

Might be the key feature of postlicyd 0.9.

problems with make all doc command

Hello,

I trying to install pfixtools and got some error at make stage.

After downloading and installing dependences, I use commands

git submodule update -i

Next I use command make all doc and got message as below

make[1]: Entering directory /home/xxx/pfixtools/common' cc -pipe -O2 -funsigned-char -fno-strict-aliasing -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations --std=gnu99 -I../ -I../common -fno-strict-aliasing -MMD -MT ".server.dep .server.o" -MF .server.dep -g -c -o .server.o server.c make[1]: Leaving directory/home/xxx/pfixtools/common'

server.c:36:16: error: ev.h: No such file or directory
server.c:41: error: field ‘io’ has incomplete type
server.c:71: error: field ‘timer’ has incomplete type
cc1: warnings being treated as errors
server.c: In function ‘server_io_wipe’:
server.c:100: error: implicit declaration of function ‘ev_io_stop’
server.c: In function ‘client_io_rw’:
server.c:179: error: implicit declaration of function ‘ev_io_set’
server.c:179: error: ‘EV_READ’ undeclared (first use in this function)
server.c:179: error: (Each undeclared identifier is reported only once
server.c:179: error: for each function it appears in.)
server.c:179: error: ‘EV_WRITE’ undeclared (first use in this function)
server.c:180: error: implicit declaration of function ‘ev_io_start’
server.c: In function ‘client_io_ro’:
server.c:189: error: ‘EV_READ’ undeclared (first use in this function)
server.c: At top level:
server.c:214: error: expected ‘)’ before ‘struct’
server.c: In function ‘client_register’:
server.c:247: error: implicit declaration of function ‘ev_io_init’
server.c:247: error: ‘client_cb’ undeclared (first use in this function)
server.c:247: error: ‘EV_READ’ undeclared (first use in this function)
server.c: At top level:
server.c:275: error: expected ‘)’ before ‘struct’
server.c: In function ‘start_tcp_listener’:
server.c:325: error: ‘listener_cb’ undeclared (first use in this function)
server.c:325: error: ‘EV_READ’ undeclared (first use in this function)
server.c: In function ‘start_unix_listener’:
server.c:354: error: ‘listener_cb’ undeclared (first use in this function)
server.c:325: error: ‘EV_READ’ undeclared (first use in this function)
server.c: In function ‘start_unix_listener’:
server.c:354: error: ‘listener_cb’ undeclared (first use in this function)
server.c:354: error: ‘EV_READ’ undeclared (first use in this function)
server.c: In function ‘timeout_wipe’:
server.c:368: error: implicit declaration of function ‘ev_timer_stop’
server.c: At top level:
server.c:379: error: expected ‘)’ before ‘struct’
server.c: In function ‘start_timer’:
server.c:397: error: implicit declaration of function ‘ev_timer_set’
server.c:400: error: implicit declaration of function ‘ev_timer_init’
server.c:400: error: ‘timeout_cb’ undeclared (first use in this function)
server.c:404: error: implicit declaration of function ‘ev_timer_start’
server.c: In function ‘server_init’:
server.c:420: error: implicit declaration of function ‘ev_default_loop’
server.c:420: error: assignment makes pointer from integer without a cast
server.c: In function ‘server_shutdown’:
server.c:430: error: implicit declaration of function ‘ev_default_destroy’
server.c: At top level:
server.c:438: error: expected ‘)’ before ‘struct’
server.c:450: error: expected ‘)’ before ‘struct’
server.c: In function ‘server_loop’:
server.c:458: error: storage size of ‘ev_sighup’ isn’t known
server.c:459: error: storage size of ‘ev_sigint’ isn’t known
server.c:460: error: storage size of ‘ev_sigterm’ isn’t known
server.c:469: error: implicit declaration of function ‘ev_signal_init’
server.c:469: error: ‘refresh_cb’ undeclared (first use in this function)
server.c:470: error: implicit declaration of function ‘ev_signal_start’
server.c:472: error: ‘exit_cb’ undeclared (first use in this function)
server.c:479: error: implicit declaration of function ‘ev_loop’
server.c:460: error: unused variable ‘ev_sigterm’
server.c:459: error: unused variable ‘ev_sigint’
server.c:458: error: unused variable ‘ev_sighup’
make[1]: *** [.server.o] Error 1
make[1]: Leaving directory `/home/xxx/pfixtools/common'
make: *** [all-recurse] Error 2

Unfortunatelly I dont know how to, make that working :/, could you help me with that?

Best regards
Keiishi

Cannot build: common/mk/common.mk missing.

The Makefile states include common/mk/common.mk, but common/ is empty.

Running make will output:

Makefile:69: common/mk/common.mk: No such file or directory
make: *** No rule to make target 'common/mk/common.mk'.  Stop.

pfix-srsd bounces not handled when using postfix virtual

Hello!

So, I have pfix-srsd up and running. All mail to the system is just forwarded on via virtual (virtual_alias_maps and virtual_alias_domains). It delivers mail just fine and gets around those pesky SPF delivery errors. However, it does not seem to handle bounces (i.e. rewriting back to the original sender to deliver the bounce). Here is an example of what I am describing:

User 1 ([email protected]) emails User 2 ([email protected]) where [email protected] is configured in virtual_alias_maps and forwardingdomain.com is configured in virtual_alias_domains. pfix-srsd is running fine on srsdomain.com (same result with or without -I). However, [email protected] forwards to [email protected] which does not exist (will result in a 550 from gmail on attempted delivery).

So, given the above, here is what I am seeing:

  • When [email protected] sends an email to [email protected], the sender address is rewritten to srs0=pl7i=xe=originaldomain.com=[email protected] as expected
  • postfix determines, via virtual_alias_maps, to deliver the mail to [email protected]
  • The delivery to gmail.com results in a 550 and postfix then bounces to srs0=pl7i=xe=originaldomain.com=[email protected] instead of [email protected]. And here lies the problem - I assumed it would bounce to [email protected] (after magically being rewritten by pfix-srsd) thereby alerting that user of the problem, but instead when it delivers the bounce to srs0=pl7i=xe=originaldomain.com=[email protected], postfix issues a "status=bounced (unknown user:" error and deletes the bounce.

The end result is that nobody ever gets any bounces (deliveries work fine though - just bounce handling that is problematic).

I am calling pfix-srsd like this (tried with -I and without -I):

/etc/postfix/pfix-srsd -I -p /var/lib/postfix/pfix-srsd.pid -U postfix -G postfix srsdomain.com /etc/postfix/pfix-srs.secrets

And have main.cf setup with these (bounces work as expected when I comment these out):

recipient_canonical_maps = hash:/etc/postfix/pfix-no-srs.cf, tcp:127.0.0.1:10002
recipient_canonical_classes = envelope_recipient
sender_canonical_maps = hash:/etc/postfix/pfix-no-srs.cf, tcp:127.0.0.1:10001
sender_canonical_classes = envelope_sender

Shouldn't pfix-srsd rewrite the address for correct bounce delivery in this case? Or is there something additional which must be done to facilitate bounce deliveries?

pfix-srsd does not urlencode results

pfix-srsd correctly decodes urlencoded inputs put does not urlencode results.
When the result contains a %, postfix will complain with "malformed reply".

make toolname does not work

The README states:

If you don’t want to compile all the tools, you can run make toolname and sudo make install-toolname

This doesn't work:

make: Nothing to be done for `pfix-srsd'.
make: Nothing to be done for `postlicyd'.

git clone --recursive

didn't get the common folder, until google told me to add "--recursive" to the cloneing command.

Maybe should mention that in your readme

Build fails (undefined reference to `htokens')

I am currently running pfix-srsd and it does the SRS forward translations perfectly. However, similar to #9, bounces are rejected ("unknown user"). The problem seems to be that smtpd_recipient_restrictions is not aware of the SRS bounce address and therefore rejects it.

If I understand that correctly, using postlicyd.conf-srs would fix this, but I can't build it unfortunately...

~/pfixtools/postlicyd# make
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".filter.dep .filter.o" -MF .filter.dep -g -c -o .filter.o filter.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".config.dep .config.o" -MF .config.dep -g -c -o .config.o config.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".query.dep .query.o" -MF .query.dep -g -c -o .query.o query.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".resources.dep .resources.o" -MF .resources.dep -g -c -o .resources.o resources.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".db.dep .db.o" -MF .db.dep -g -c -o .db.o db.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".dns.dep .dns.o" -MF .dns.dep -g -c -o .dns.o dns.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".spf-proto.dep .spf-proto.o" -MF .spf-proto.dep -g -c -o .spf-proto.o spf-proto.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".iplist.dep .iplist.o" -MF .iplist.dep -g -c -o .iplist.o iplist.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".greylist.dep .greylist.o" -MF .greylist.dep -g -c -o .greylist.o greylist.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".strlist.dep .strlist.o" -MF .strlist.dep -g -c -o .strlist.o strlist.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".match.dep .match.o" -MF .match.dep -g -c -o .match.o match.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".counter.dep .counter.o" -MF .counter.dep -g -c -o .counter.o counter.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".spf.dep .spf.o" -MF .spf.dep -g -c -o .spf.o spf.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".hang.dep .hang.o" -MF .hang.dep -g -c -o .hang.o hang.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".rate.dep .rate.o" -MF .rate.dep -g -c -o .rate.o rate.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".srs.dep .srs.o" -MF .srs.dep -g -c -o .srs.o srs.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".policy_tokens.dep .policy_tokens.o" -MF .policy_tokens.dep -g -c -o .policy_tokens.o policy_tokens.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".filter_tokens.dep .filter_tokens.o" -MF .filter_tokens.dep -g -c -o .filter_tokens.o filter_tokens.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".hook_tokens.dep .hook_tokens.o" -MF .hook_tokens.dep -g -c -o .hook_tokens.o hook_tokens.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".param_tokens.dep .param_tokens.o" -MF .param_tokens.dep -g -c -o .param_tokens.o param_tokens.c
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".spf_tokens.dep .spf_tokens.o" -MF .spf_tokens.dep -g -c -o .spf_tokens.o spf_tokens.c
rm -f libpostlicyd.a
ar rcs libpostlicyd.a .filter.o .config.o .query.o .resources.o .db.o .dns.o .spf-proto.o .iplist.o .greylist.o .strlist.o .match.o .counter.o .spf.o .hang.o .rate.o .srs.o .policy_tokens.o .filter_tokens.o .hook_tokens.o .param_tokens.o .spf_tokens.o
cc -pipe -O2 -funsigned-char -fstrict-aliasing -Wstrict-aliasing=2 -Wall -Wextra -Werror -Wchar-subscripts -Wundef -Wshadow -Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter -Wuninitialized -Winit-self -Wpointer-arith -Wredundant-decls -Wformat-nonliteral -Wno-format-zero-length -Wno-format-y2k -Wmissing-format-attribute -Wsequence-point -Wparentheses -Wmissing-declarations  --std=gnu99 -I../ -I../common -MMD -MT ".main-postlicyd.dep .main-postlicyd.o" -MF .main-postlicyd.dep -g -c -o .main-postlicyd.o main-postlicyd.c
cc -Wl,-warn-common  -o postlicyd .main-postlicyd.o libpostlicyd.a ../common/lib.a -ltokyocabinet   -lev -lpcre -lunbound -lsrs2
.main-postlicyd.o: In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `htokens'
.main-postlicyd.o: In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `htokens'
.main-postlicyd.o: In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `htokens'
.main-postlicyd.o: In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `htokens'
libpostlicyd.a(.config.o): In function `config_parse':
/root/pfixtools/postlicyd/config.c:318: undefined reference to `param_tokenize'
libpostlicyd.a(.config.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
libpostlicyd.a(.config.o): In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
libpostlicyd.a(.query.o): In function `query_parse':
/root/pfixtools/postlicyd/query.c:90: undefined reference to `policy_tokenize'
/root/pfixtools/postlicyd/query.c:91: undefined reference to `policy_tokenize'
libpostlicyd.a(.query.o): In function `query_field_for_name':
/root/pfixtools/postlicyd/query.c:331: undefined reference to `policy_tokenize'
libpostlicyd.a(.query.o): In function `query_format_field_content':
/root/pfixtools/postlicyd/query.c:343: undefined reference to `policy_tokenize'
libpostlicyd.a(.spf.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
libpostlicyd.a(.spf.o): In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
libpostlicyd.a(.spf.o):/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: more undefined references to `atokens' follow
libpostlicyd.a(.spf-proto.o): In function `spf_next':
/root/pfixtools/postlicyd/spf-proto.c:718: undefined reference to `spftokens'
/root/pfixtools/postlicyd/spf-proto.c:718: undefined reference to `spftokens'
libpostlicyd.a(.spf-proto.o): In function `spf_parse':
/root/pfixtools/postlicyd/spf-proto.c:1440: undefined reference to `spf_rule_tokenize'
libpostlicyd.a(.filter.o): In function `filter_register':
/root/pfixtools/postlicyd/filter.c:141: undefined reference to `filter_tokenize'
libpostlicyd.a(.filter.o): In function `filter_hook_register':
/root/pfixtools/postlicyd/filter.c:157: undefined reference to `hook_tokenize'
libpostlicyd.a(.filter.o): In function `filter_module_init':
/root/pfixtools/postlicyd/filter.c:121: undefined reference to `ftokens'
libpostlicyd.a(.filter.o): In function `filter_param_register':
/root/pfixtools/postlicyd/filter.c:183: undefined reference to `param_tokenize'
libpostlicyd.a(.filter.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `htokens'
libpostlicyd.a(.filter.o): In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `htokens'
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `htokens'
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `htokens'
libpostlicyd.a(.filter.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `htokens'
libpostlicyd.a(.filter.o):/usr/include/x86_64-linux-gnu/bits/syslog.h:32: more undefined references to `htokens' follow
libpostlicyd.a(.filter.o): In function `filter_set_type':
/root/pfixtools/postlicyd/filter.c:347: undefined reference to `filter_tokenize'
libpostlicyd.a(.filter.o): In function `filter_add_param':
/root/pfixtools/postlicyd/filter.c:359: undefined reference to `param_tokenize'
libpostlicyd.a(.filter.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
libpostlicyd.a(.filter.o): In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
libpostlicyd.a(.filter.o): In function `filter_add_hook':
/root/pfixtools/postlicyd/filter.c:390: undefined reference to `hook_tokenize'
libpostlicyd.a(.filter.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `htokens'
libpostlicyd.a(.filter.o): In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `htokens'
libpostlicyd.a(.filter.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `htokens'
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `htokens'
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `htokens'
libpostlicyd.a(.filter.o):/usr/include/x86_64-linux-gnu/bits/syslog.h:32: more undefined references to `htokens' follow
libpostlicyd.a(.filter.o): In function `filter_module_init':
/root/pfixtools/postlicyd/filter.c:121: undefined reference to `ftokens'
libpostlicyd.a(.match.o): In function `match_filter_constructor':
/root/pfixtools/postlicyd/match.c:180: undefined reference to `policy_tokenize'
libpostlicyd.a(.match.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
libpostlicyd.a(.match.o): In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
libpostlicyd.a(.iplist.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
libpostlicyd.a(.iplist.o): In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
libpostlicyd.a(.iplist.o):/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: more undefined references to `atokens' follow
libpostlicyd.a(.strlist.o): In function `strlist_filter_constructor':
/root/pfixtools/postlicyd/strlist.c:603: undefined reference to `policy_tokenize'
libpostlicyd.a(.strlist.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
libpostlicyd.a(.strlist.o): In function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
/usr/include/x86_64-linux-gnu/bits/stdio2.h:98: undefined reference to `atokens'
libpostlicyd.a(.counter.o): In function `syslog':
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
/usr/include/x86_64-linux-gnu/bits/syslog.h:32: undefined reference to `atokens'
libpostlicyd.a(.counter.o):/usr/include/x86_64-linux-gnu/bits/syslog.h:32: more undefined references to `atokens' follow
collect2: ld returned 1 exit status
make: *** [postlicyd] Error 1

I am running Ubuntu 12.04, the latest pfixtools 0.9, gcc 4.6.3, ld 2.22, libsrs2-1.0.18, libunbound-dev 1.4.16-1, libpcre3-8.12-4, libev4-4.11-1, libtokyocainet-1.4.37-6.1build1.

Any ideas?

I would appreciate any help!

How do you exclude SRS for specific domains?

For example, if I want to exclude SRS modifications for mail that is forwarded to google.com, but keep SRS active for mail forwarded to yahoo.com, how would I do that?

I looked over the docs and didn't see a way to do this. My apologies if this is a newbie Postfix question.

Thank you for your time.

How use pfix-srsd with multiple domains?

Bonjour ;)

Thanks for this great tool.
Is it possible to use pfix-srsd with many domains?
For example, set more than one domain in /etc/default/pfix-srsd?

Regards,

David

segfault with libunbound8 version `1.13.1-1`

Here is the latest trace; I'm going to investigate, but would appreciate some insights ;)

[debug ] running dns resolution on 29.120.109.91.dul.dnsbl.sorbs.net. (type: 1)
postlicyd: malloc.c:2379: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7b7f537 in __GI_abort () at abort.c:79
#2  0x00007ffff7bde678 in __malloc_assert (assertion=assertion@entry=0x7ffff7cf7988 "(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)", 
    file=file@entry=0x7ffff7cf2f73 "malloc.c", line=line@entry=2379, function=function@entry=0x7ffff7cf8110 <__PRETTY_FUNCTION__.3> "sysmalloc") at malloc.c:298
#3  0x00007ffff7be068a in sysmalloc (nb=nb@entry=304, av=av@entry=0x7ffff7d2bb80 <main_arena>) at malloc.c:2379
#4  0x00007ffff7be1df5 in _int_malloc (av=av@entry=0x7ffff7d2bb80 <main_arena>, bytes=bytes@entry=288) at malloc.c:4141
#5  0x00007ffff7be3b11 in __libc_calloc (n=<optimized out>, elem_size=<optimized out>) at malloc.c:3428
#6  0x00007ffff7dce784 in ?? () from /lib/x86_64-linux-gnu/libunbound.so.8
#7  0x00007ffff7d4acaf in ?? () from /lib/x86_64-linux-gnu/libunbound.so.8
#8  0x00007ffff7d4b151 in ?? () from /lib/x86_64-linux-gnu/libunbound.so.8
#9  0x00007ffff7d476e2 in ub_resolve_async () from /lib/x86_64-linux-gnu/libunbound.so.8
#10 0x0000555555562529 in dns_resolve (hostname=hostname@entry=0x7fffffffdee0 "29.120.109.91.dul.dnsbl.sorbs.net.", type=type@entry=DNS_RRT_A, callback=callback@entry=0x555555562320 <dns_callback>, data=data@entry=0x555555597950) at dns.c:142
#11 0x00005555555626fc in dns_check (hostname=0x7fffffffdee0 "29.120.109.91.dul.dnsbl.sorbs.net.", type=DNS_RRT_A, result=0x555555593aa0, callback=0x555555562a60 <iplist_filter_async>, data=0x5555555e9ec0) at dns.c:153
#12 0x00005555555627dc in dns_rbl_check (rbl=<optimized out>, ip=<optimized out>, result=0x555555593aa0, callback=callback@entry=0x555555562a60 <iplist_filter_async>, data=data@entry=0x5555555e9ec0) at dns.c:177
#13 0x0000555555563151 in iplist_filter (filter=0x555555590f00, query=<optimized out>, context=0x5555555e9ec0) at iplist.c:528
#14 0x000055555555c72f in filter_run (filter=filter@entry=0x555555590f00, query=query@entry=0x5555555e9bc0, context=context@entry=0x5555555e9ec0) at filter.c:319
#15 0x000055555555afab in policy_process (pcy=pcy@entry=0x5555555ea0e0, mconfig=0x7fffffffe0af, mconfig@entry=0x55555558faf0) at main-postlicyd.c:203
#16 0x000055555555b21c in policy_run (pcy=0x5555555ea0e0, vconfig=0x55555558faf0) at main-postlicyd.c:257
#17 0x00005555555799e9 in client_cb (loop=<optimized out>, w=0x5555555ea0e0, events=<optimized out>) at server.c:229
#18 0x00007ffff7ea4633 in ev_invoke_pending () from /lib/x86_64-linux-gnu/libev.so.4
#19 0x00007ffff7ea7e71 in ev_run () from /lib/x86_64-linux-gnu/libev.so.4
#20 0x000055555557a0d0 in ev_loop (flags=0, loop=<optimized out>) at /usr/include/ev.h:841
#21 server_loop (starter=starter@entry=0x55555555a4e0 <query_starter>, deleter=deleter@entry=0x55555555a300 <query_stopper>, runner=runner@entry=0x55555555b070 <policy_run>, refresh=refresh@entry=0x55555555a430 <config_refresh>, config=<optimized out>) at server.c:477
#22 0x0000555555559d19 in main (argc=<optimized out>, argv=0x7fffffffe508) at main-postlicyd.c:429

Install target install-pfix-srsd missing

According to the documentation, you can install individual tools with target install-toolname, but target install-pfix-srsd is missing, (while make pfix-srsd does work).

Segmentation fault

postlicyd -vvv -f /etc/pfixtools/postlicyd.conf -u
[notice] starting postlicyd v0.9...
[debug ] starting resource gc: before 0 resources, after 0
[notice] entering processing loop
[debug ] running filter check_srs_bounce (match)
[debug ] running condition: "EDITED" is empty "(none)"
[debug ] no condition matched, not-match_all failed
[debug ] filter run, result is fail
[debug ] return hook of type fail, value (null)
[debug ] request client=EDITED from=EDITED to=EDITED at RCPT: answer fail from filter check_srs_bounce: next filter check_spf
[debug ] running filter check_spf (spf)
[info ] spf: new SPF lookup of (EDITED)
[debug ] spf pool: acquiring 0x94a64c8 - pool length: 0 (created 1)
[debug ] spf (depth=0): performing query of type 16 for EDITED
[debug ] running dns resolution on EDITED. (type: 16)
[error ] Killed (got signal 11)...
Segmentation fault

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.