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;
|