head 1.22; access; symbols milter-greylist-4-5-13:1.22 milter-greylist-4-5-12:1.22 milter-greylist-4-5-11:1.22 milter-greylist-4-5-10:1.22 milter-greylist-4-9-10:1.22 milter-greylist-4-5-8:1.22 milter-greylist-4-5-9:1.22 milter-greylist-4-5-7:1.22 milter-greylist-4-5-6:1.22 milter-greylist-4-5:1.22 milter-greylist-4-5-5:1.22 milter-greylist-4-5-4:1.22 milter-greylist-4-5-3:1.22 milter-greylist-4-5-2:1.22 milter-greylist-4-5-1:1.22 milter-greylist-4-4-3:1.22 milter-greylist-4-4-2:1.22 milter-greylist-4-4-1:1.22 milter-greylist-4-4:1.22 milter-greylist-4-4-rc1:1.22 milter-greylist-4-4-alpha4:1.22 milter-greylist-4-4-alpha3:1.22 milter-greylist-4-4-alpha2:1.22 milter-greylist-4-4-alpha1:1.22 milter-greylist-4-2-7:1.21 milter-greylist-4-3-9:1.22 milter-greylist-4-2-6:1.21 milter-gresylit-4-2-6:1.21 milter-greylist-4-3-8:1.22 milter-greylist-4-3-7:1.22 milter-greylist-4-2-5:1.21 milter-greylist-4-3-6:1.22 milter-greylist-4-2-4:1.21 milter-greylist-4-3-5:1.22 milter-greylist-4-3-4:1.22 milter-greylist-4-2-3:1.21 milter-greylist-4-3-3:1.21 rmilter-greylist-4-2-3:1.21 milter-greylist-4-3-2:1.21 milter-greylist-4-3-1:1.21 milter-greylist-2-2-2:1.21 milter-greylist-4-2-2:1.21 milter-greylist-4-2-1:1.21 milter-greylist-4-2:1.21 milter-greylist-4-2-rc1:1.21 milter-greylist-4-2-beta1:1.21 milter-greylist-4-2-branch:1.21.0.4 milter-greylist-4-2-base:1.21 milter-greylist-4-2-0-base:1.21 milter-greylist-4-1-12:1.21 milter-greylist-4-1-11:1.21 milter-greylist-4-1-10:1.21 milter-greylist-4-1-9:1.21 milter-greylist-4-1-8:1.21 milter-greylist-4-1-7:1.21 milter-greylist-4-1-6:1.21 milter-greylist-4-0-1:1.21 milter-greylist-4-0-1-rc1:1.21 milter-greylist-4-1-5:1.21 milter-greylist-4-1-4:1.21 milter-greylist-4-1-3:1.21 milter-greylist-4-1-2:1.21 milter-greylist-4-1-1:1.21 milter-greylist-4-0-branch:1.21.0.2 milter-greylist-4-0-base:1.21 milter-greylist-4-0:1.21 milter-greylist-4-0-rc2:1.21 milter-greylist-4-0-rc1:1.21 milter-greylist-4-0-beta4:1.21 milter-greylist-4-0-beta3:1.21 milter-greylist-4-0-beta2:1.21 milter-greylist-4-0-beta1:1.21 milter-greylist-4-0-alpha6:1.20 milter-greylist-4-0-alpha5:1.20 milter-greylist-4-0-alpha4:1.18 milter-greylist-4-0-alpha3:1.18 milter-greylist-4-0-alpha2:1.18 milter-greylist-4-0-alpha1:1.18 milter-greylist-3-1-8:1.18 milter-greylist-3-1-7:1.18 milter-greylist-3-1-6:1.18 milter-greylist-3-1-5:1.18 milter-greylist-3-1-5-alpha1:1.18 milter-greylist-3-0-1-beta1:1.17.2.2 milter-greylist-3-1-4:1.18 milter-greylist-3-1-3:1.18 milter-greylist-3-1-2:1.18 milter-greylist-3-1-1:1.18 milter-greylist-3-0:1.17.2.2 milter-greylist-3-0-rc7:1.17.2.2 milter-greylist-3-0-rc6:1.17.2.1 milter-greylist-3-0-rc5:1.17.2.1 milter-greylist-3-0-rc4:1.17.2.1 milter-greylist-3-0-rc3:1.17.2.1 milter-greylist-3-0-rc2:1.17.2.1 milter-greylist-3-0-rc1:1.17.2.1 milter-greylist-3-0-alpha6:1.17.2.1 milter-greylist-3-0-branch:1.17.0.2 milter-greylist-3-0-base:1.17 milter-greylist-3-0-alpha5:1.17 milter-greylist-3-0-alpha4:1.16 milter-greylist-3-0-alpha3:1.16 milter-greylist-3-0-alpha2:1.15 milter-greylist-3-0-alpha1:1.15 milter-greylist-2-1-12:1.15 milter-greylist-2-1-11:1.15 milter-greylist-2-1-10:1.15 milter-greylist-2-1-9:1.15 milter-greylist-2-1-9a1:1.15 milter-greylist-2-1-8:1.15 milter-greylist-2-1-7:1.15 milter-greylist-2-1-6:1.15 milter-greylist-2-1-5:1.15 milter-greylist-2-1-4:1.15 milter-greylist-2-1-3:1.15 milter-greylist-2-1-2:1.15 milter-greylist-2-1-1:1.15 milter-greylist-2-0-2:1.15 milter-greylist-2-0-1:1.15 milter-greylist-2-0-1-b1:1.15 milter-greylist-2-0-release:1.15 milter-greylist-2-0-rc5:1.15 milter-greylist-2-0-rc4:1.15 milter-greylist-2-0-rc3:1.15 milter-grey-list-2-0-rc3:1.15 milter-grey-list-2-0-rc2:1.15 milter-grey-list-2-0-rc1:1.15 milter-greylist-2-0-beta7:1.15 milter-greylist-2-0-beta6:1.15 milter-gre-ylist-2-0-beta5:1.15 milter-greylist-2-0-beta5:1.15 milter-greylist-2-0-beta4:1.15 milter-greylist-2-0-beta3:1.15 milter-greylist-2-0-beta2:1.15 milter-greylist-2-0:1.15.0.2 milter-greylist-2-0-base:1.15 milter-greylist-2-0-beta1:1.15 milter-greylist-1-7-5:1.15 before_delayed_tempfail:1.15 milter-greylist-1-7-4:1.14 milter-greylist-1-7-3:1.14 milter-greylist-1-7-2:1.14 milter-greylist-1-6-0:1.14 milter-greylist-1-7-1:1.14 milter-greylist-1-6rc1:1.14 milter-greylist-1-6:1.14.0.2 milter-greylist-1-6-base:1.14 milter-greylist-1-5-12:1.13 milter-greylist-1-5-11:1.13 milter-greylist-1-5-10:1.13 milter-greylist-1-5-9:1.13 milter-greylist-1-5-8:1.12 milter-greylist-1-5-7:1.12 milter-greylist-1-5-6:1.12 milter-greylist-1-5-5:1.12 milter-greylist-1-5-4:1.12 milter-greylist-1-5-3:1.11 milter-greylist-1-5-2:1.11 milter-greylist-1-5-1:1.11 milter-greylist-1-4:1.11.0.4 milter-greylist-1-4-base:1.11 milter-greylist-1-3-9:1.11 milter-greylist-1-3-8:1.11 milter-greylist-1-3-7:1.11 milter-greylist-1-3-6:1.11 milter-greylist-1-3-5:1.11 milter-greylist-1-3-4:1.11 milter-greylist-1-3-3:1.11 BDB:1.11.0.2 BDB-base:1.11 before_BDB:1.11 milter-greylist-1-2-2:1.10 milter-greylist-1-3-2:1.11 milter-greylist-1-2-1:1.10 milter-greylist-1-2-0:1.10 milter-greylist-1-2:1.10.0.2 milter-greylist-1-2-base:1.10 milter-greylist-1-1-16:1.10 milter-greylist-1-1-15:1.10 milter-greylis-1-1-15:1.10 milter-greylis-1-1-16:1.10 milter-greylist-1-1-14:1.10 milter-greylist-1-1-13:1.10 milter-greylist-1-1-12:1.10 milter-greylist-1-1-11:1.10 milter-greylist-1-1-10:1.10 milter-greylist-1-10rc1:1.10 milter-greylist-1-1-9:1.10 milter-greylist-1-1-8:1.10 milter-greylist-1-1-7:1.10 milter-greylist-1-1-6:1.10 milter-greylist-1-1-5:1.10 milter-greylist-1-1-4:1.10 milter-greylist-1-1-3:1.10 milter-greylist-1-1-2:1.10 milter-greylist-1-0-2:1.9.2.1 rmilter-greylist-1-0-1:1.9.2.1 milter-greylist-1-0-1:1.9.2.1 milter-greylist-1-1-1:1.10 milter-greylist-1-0-base:1.9 milter-greylist-1-0:1.9.0.2 milter-greylist-1-0-0:1.9 milter-greylist-0-27:1.9 milter-greylist-0-26:1.9 milter-greylist-0-25:1.9 milter-greylist-0-24:1.8 milter-greylist-0-23:1.8 milter-greylist-0-22:1.6 milter-greylist-0-21:1.6 milter-greylist-0-20:1.6 milter-greylist-0-19:1.6 milter-greylist-0-18:1.5 milter-greylist-0-17:1.5 milter-greylist-0-16:1.5 milter-greylist-0-15:1.5 milter-greylist-0-14:1.5 milter-greylist-0-13:1.5 milter-greylist-0-12:1.4 milter-greylist-0-11:1.4; locks; strict; comment @ * @; 1.22 date 2009.09.07.12.56.54; author manu; state Exp; branches; next 1.21; 1.21 date 2007.07.08.21.02.28; author manu; state Exp; branches; next 1.20; 1.20 date 2007.05.09.19.59.53; author manu; state Exp; branches; next 1.19; 1.19 date 2007.05.08.04.56.57; author manu; state Exp; branches; next 1.18; 1.18 date 2006.11.07.05.12.01; author manu; state Exp; branches; next 1.17; 1.17 date 2006.08.30.04.57.58; author manu; state Exp; branches 1.17.2.1; next 1.16; 1.16 date 2006.08.27.20.54.41; author manu; state Exp; branches; next 1.15; 1.15 date 2005.01.08.14.43.30; author manu; state Exp; branches; next 1.14; 1.14 date 2004.11.25.23.11.33; author manu; state Exp; branches; next 1.13; 1.13 date 2004.10.13.09.56.29; author manu; state Exp; branches; next 1.12; 1.12 date 2004.08.01.09.27.03; author manu; state Exp; branches; next 1.11; 1.11 date 2004.04.16.20.15.19; author manu; state Exp; branches; next 1.10; 1.10 date 2004.03.28.19.54.18; author manu; state Exp; branches; next 1.9; 1.9 date 2004.03.22.22.12.39; author manu; state Exp; branches 1.9.2.1; next 1.8; 1.8 date 2004.03.22.07.12.38; author manu; state Exp; branches; next 1.7; 1.7 date 2004.03.21.23.51.47; author manu; state Exp; branches; next 1.6; 1.6 date 2004.03.17.22.21.36; author manu; state Exp; branches; next 1.5; 1.5 date 2004.03.11.14.12.48; author manu; state Exp; branches; next 1.4; 1.4 date 2004.03.06.20.25.14; author manu; state Exp; branches; next 1.3; 1.3 date 2004.03.06.19.06.14; author manu; state Exp; branches; next 1.2; 1.2 date 2004.03.06.18.11.40; author manu; state Exp; branches; next 1.1; 1.1 date 2004.03.06.15.15.05; author manu; state Exp; branches; next ; 1.17.2.1 date 2006.09.04.22.05.59; author manu; state Exp; branches; next 1.17.2.2; 1.17.2.2 date 2006.11.07.05.12.11; author manu; state Exp; branches; next ; 1.9.2.1 date 2004.03.28.19.55.19; author manu; state Exp; branches; next ; desc @@ 1.22 log @New tarpit feature (Kouhei Sutou) @ text @%option nodefault %option nomain %option noyywrap %option prefix="dump_" num [0-9]{1,} byte [0-9]{1,3} ipaddr {byte}"."{byte}"."{byte}"."{byte} ip6addr ([0-9a-fA-F]*:){2,}[0-9a-fA-F]*(%[0-9a-zA-Z]+)? atext [A-Za-z0-9!#$%&'*+/=?$^_`}{|~.-]{1,} qtext "\""[!-~]{1,}"\"" mailbox {atext}|{qtext} domain [A-Za-z0-9._-]{1,} email "<"?{mailbox}"\@@"?{domain}?">"? void_email "<>" comment #.*$ blank [ \t]{1,} auto [Aa][Uu][Tt][Oo] tarpit [Tt][Aa][Rr][Pp][Ii][Tt] %{ #include "config.h" #ifdef HAVE_SYS_CDEFS_H #ifndef HAVE_BROKEN_RCSID #include #ifdef __RCSID __RCSID("$Id: dump_lex.l,v 1.21 2007/07/08 21:02:28 manu Exp $"); #endif #endif #endif #include #include #include #include #ifdef USE_DMALLOC #include #endif #define YY_NO_UNPUT int dump_line = 1; %} %% {auto} { return AUTO; } {tarpit} { return TARPIT; } {blank} {comment} {ipaddr} { socklen_t salen = sizeof(yylval.ipaddr); if (ipfromstring(yytext, SA(&yylval.ipaddr), &salen, AF_INET) != 1) REJECT; return IPADDR; } {ip6addr} { #ifdef AF_INET6 socklen_t salen = sizeof(yylval.ip6addr); if (ipfromstring(yytext, SA(&yylval.ip6addr), &salen, AF_INET6) != 1) REJECT; #endif return IP6ADDR; } {num} { yylval.time = atoi(yytext); return TIME; } {email}|{void_email} { strncpy(yylval.email, yytext, ADDRLEN); yylval.email[ADDRLEN] = '\0'; return EMAIL; } \n { dump_line++; return yytext[0]; } <*>.|\n { mg_log(LOG_DEBUG, "unknown token \"%s\" line %d, skipping\n", yytext, dump_line); return GARBAGE; } %% void yyerror(err) char *err; { mg_log(LOG_DEBUG, "dump error at line %d: %s\n", dump_line, err); return; } void dump_dispose_input_file(void) { dump__flush_buffer(YY_CURRENT_BUFFER); } @ 1.21 log @Add hooks for libdmalloc @ text @d19 1 d28 1 a28 1 __RCSID("$Id: dump_lex.l,v 1.20 2007/05/09 19:59:53 manu Exp $"); d48 1 @ 1.20 log @Remove the use of YY_FLUSH_BUFFER, so that we can build with a larger set of flex versions @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.19 2007/05/08 04:56:57 manu Exp $"); d36 3 @ 1.19 log @Check that flex supports YY_FLUSH_BUFFER @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.18 2006/11/07 05:12:01 manu Exp $"); a92 4 #if !defined(YY_FLUSH_BUFFER) #error Your flex version is broken, try a newer or an older (2.5.4 should work). #endif d95 1 a95 1 YY_FLUSH_BUFFER; @ 1.18 log @Fix crashes during dump reloads (AIDA Shinra) Fix DoS in MX sync protocol (AIDA Shinra) @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.17 2006/08/30 04:57:58 manu Exp $"); d93 4 @ 1.17 log @Fix various race conditions (AIDA Shinra) @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.16 2006/08/27 20:54:41 manu Exp $"); d81 1 @ 1.17.2.1 log @Back out race conditions fixes (too intrusive, will be back in 3.1.x) @ text @d91 5 @ 1.17.2.2 log @Fix crashes during dump reloads (AIDA Shinra) Fix DoS in MX sync protocol (AIDA Shinra) @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.17.2.1 2006/09/04 22:05:59 manu Exp $"); a80 1 return GARBAGE; @ 1.16 log @Remove the need of LOG_PERROR, make sure no log is missed @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.15 2005/01/08 14:43:30 manu Exp $"); d91 5 @ 1.15 log @Differentiate config and dump for errors. Turn the dump error into debug error only @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.14 2004/11/25 23:11:33 manu Exp $"); d78 1 a78 1 syslog(LOG_DEBUG, d88 1 a88 1 syslog(LOG_DEBUG, "dump error at line %d: %s\n", dump_line, err); @ 1.14 log @typo @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.13 2004/10/13 09:56:29 manu Exp $"); d88 1 a88 1 syslog(LOG_ERR, "error at line %d: %s\n", dump_line, err); @ 1.13 log @Do not match bogus IPv6 addresses in the dump file (Hajimu Umemoto) @ text @d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.12 2004/08/01 09:27:03 manu Exp $"); d79 1 a79 1 "unknown token \"%s\" line %d, skiping\n", @ 1.12 log @Full blown IPv6 support, from Hajimu Umemoto Correctly clean rc-debian.sh @ text @d9 1 a9 1 ip6addr ([0-9a-fA-F]*:)+[0-9a-fA-F]*(%[0-9a-zA-Z]+)? d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.11 2004/04/16 20:15:19 manu Exp $"); d50 2 a51 5 AF_INET) != 1) { printf("invalid IPv4 address line %d\n", dump_line); exit(EX_DATAERR); } d59 2 a60 6 AF_INET6) != 1) { printf("invalid IPv6 address line %d\n", dump_line); printf("[%s]\n", yytext); exit(EX_DATAERR); } @ 1.11 log @Remove fake error message on dump reload (make the LOG_DEBUG) @ text @d9 1 d27 1 a27 1 __RCSID("$Id: dump_lex.l,v 1.10 2004/03/28 19:54:18 manu Exp $"); d47 5 a51 2 if (inet_pton(AF_INET, yytext, &yylval.ipaddr) != 1) { printf("invalid IP address line %d\n", d56 14 @ 1.10 log @Accept any address as specified in RFC2821 @ text @d26 1 a26 1 __RCSID("$Id: dump_lex.l,v 1.9 2004/03/22 22:12:39 manu Exp $"); d33 1 d67 2 a68 1 printf("unknown token \"%s\" line %d, skiping\n", d77 1 a77 1 fprintf(stderr, "error at line %d: %s\n", dump_line, err); @ 1.9 log @Include "config.h" first anyway @ text @d9 5 a13 1 email "<"?[A-Za-z0-9\.\-_+]+"\@@"?[A-Za-z0-9\.\-_+]*">"? d26 1 a26 1 __RCSID("$Id: dump_lex.l,v 1.8 2004/03/22 07:12:38 manu Exp $"); @ 1.9.2.1 log @Accept any e-mail address as specified in RFC 2821 from config and dump @ text @d9 1 a9 5 atext [A-Za-z0-9!#$%&'*+/=?$^_`}{|~.-]{1,} qtext "\""[!-~]{1,}"\"" mailbox {atext}|{qtext} domain [A-Za-z0-9._-]{1,} email "<"?{mailbox}"\@@"?{domain}?">"? d22 1 a22 1 __RCSID("$Id: dump_lex.l,v 1.9 2004/03/22 22:12:39 manu Exp $"); @ 1.8 log @Guard inclusion, some systems (older digitalUNIX) do not have it @ text @d16 2 d22 1 a22 1 __RCSID("$Id: dump_lex.l,v 1.7 2004/03/21 23:51:47 manu Exp $"); @ 1.7 log @Check for missing socklen_t and for __RCSID that cannot be used twice in the same source (Darwin problems) @ text @d16 1 d20 2 a21 1 __RCSID("$Id: dump_lex.l,v 1.6 2004/03/17 22:21:36 manu Exp $"); @ 1.6 log @save and reload the auto-whitelist @ text @d16 1 d19 2 a20 1 __RCSID("$Id: dump_lex.l,v 1.5 2004/03/11 14:12:48 manu Exp $"); @ 1.5 log @Rebuild on Linux Build again with -Werror, both on Linux and NetBSD! @ text @d13 1 d18 1 a18 1 __RCSID("$Id: dump_lex.l,v 1.4 2004/03/06 20:25:14 manu Exp $"); d31 1 @ 1.4 log @very long e-mail adresses will be truncated in the dumpfile, they may not have a @@, s we need to relax the lex rules for that. @ text @d17 1 a17 1 __RCSID("$Id: dump_lex.l,v 1.3 2004/03/06 19:06:14 manu Exp $"); d23 2 @ 1.3 log @RCSIDs @ text @d9 2 a10 2 email ? void_email <> d17 1 a17 1 __RCSID("$Id$"); a29 5 {email}|{void_email} { strncpy(yylval.email, yytext, ADDRLEN); yylval.email[ADDRLEN] = '\0'; return EMAIL; } d41 5 @ 1.2 log @Bugfix in parsers introduced by last commit: copy strings into yylval instead of referencing them. @ text @d15 5 @ 1.1 log @Added a parser for the dumpfile Some cleanups in lexfiles (removed unused temp variables) @ text @d26 2 a27 1 yylval.email = yytext; @