summaryrefslogtreecommitdiff
path: root/mail-filter/sid-milter/files/sid-milter-1.0.0-nopra_on_spf1.patch
blob: 868a2d9ecd55f1554ce684ea321a23b70444e14f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
diff -Nru sid-milter-1.0.0.orig/sid-filter/sid-filter.c sid-milter-1.0.0/sid-filter/sid-filter.c
--- sid-milter-1.0.0.orig/sid-filter/sid-filter.c	2009-03-08 09:51:00.000000000 +0000
+++ sid-milter-1.0.0/sid-filter/sid-filter.c	2009-03-08 16:29:24.000000000 +0000
@@ -1279,30 +1279,35 @@
 				switch (scope)
 				{
 				  case SM_SCOPE_PRA:
-#ifdef _FFR_NH_MFROM
-					if ((strncasecmp(mreplies[rcount],
-					                 "spf2.0/pra",
-					                 10) == 0) ||
-					    (strncasecmp(mreplies[rcount],
-					                 "spf2.0/mfrom,pra",
-					                 16) == 0))
-#else /* _FFR_NH_MFROM */
-					if (strncasecmp(mreplies[rcount],
-					                "spf2.0/pra", 10) == 0)
-#endif /* _FFR_NH_MFROM */
+					if ((
+						(strncasecmp(mreplies[rcount],
+					        	      "spf2.0/pra",
+							       10) == 0) ||
+					    	(strncasecmp(mreplies[rcount],
+							     "spf2.0/mfrom,pra",
+							     16) == 0)) &&
+					    (strncasecmp(policy,
+					    	        "spf2.0/",
+							7) != 0))
 					{
 						sm_strlcpy(policy,
 						           mreplies[rcount],
 						           sizeof policy);
 					}
-					else if (!nopraspf1 &&
-					         (strncasecmp(mreplies[rcount],
-					                      "v=spf1", 6) == 0) &&
-					         policy[0] == '\0')
+					else if (strncasecmp(mreplies[rcount],
+					                     "v=spf1", 6) == 0)
 					{
-						sm_strlcpy(policy,
-						           mreplies[rcount],
-						           sizeof policy);
+						if (nopraspf1)
+						{
+							memset(mreplies[rcount], '\0',
+							       sizeof mreplies[rcount]);
+						}
+						else if (policy[0] == '\0')
+						{
+							sm_strlcpy(policy,
+								   mreplies[rcount],
+								   sizeof policy);
+						}
 					}
 					break;