Prevent hardlink attack on mbox sticky mail directory. fixes: bug #988
[exim.git] / src / src / local_scan.c
1 /* $Cambridge: exim/src/src/local_scan.c,v 1.5 2009/11/16 19:50:37 nm4 Exp $ */
2
3 /*************************************************
4 *     Exim - an Internet mail transport agent    *
5 *************************************************/
6
7 /* Copyright (c) University of Cambridge 1995 - 2009 */
8 /* See the file NOTICE for conditions of use and distribution. */
9
10
11 /******************************************************************************
12 This file contains a template local_scan() function that just returns ACCEPT.
13 If you want to implement your own version, you should copy this file to, say
14 Local/local_scan.c, and edit the copy. To use your version instead of the
15 default, you must set
16
17 LOCAL_SCAN_SOURCE=Local/local_scan.c
18
19 in your Local/Makefile. This makes it easy to copy your version for use with
20 subsequent Exim releases.
21
22 For a full description of the API to this function, see the Exim specification.
23 ******************************************************************************/
24
25
26 /* This is the only Exim header that you should include. The effect of
27 including any other Exim header is not defined, and may change from release to
28 release. Use only the documented interface! */
29
30 #include "local_scan.h"
31
32
33 /* This is a "do-nothing" version of a local_scan() function. The arguments
34 are:
35
36   fd             The file descriptor of the open -D file, which contains the
37                    body of the message. The file is open for reading and
38                    writing, but modifying it is dangerous and not recommended.
39
40   return_text    A pointer to an unsigned char* variable which you can set in
41                    order to return a text string. It is initialized to NULL.
42
43 The return values of this function are:
44
45   LOCAL_SCAN_ACCEPT
46                  The message is to be accepted. The return_text argument is
47                    saved in $local_scan_data.
48
49   LOCAL_SCAN_REJECT
50                  The message is to be rejected. The returned text is used
51                    in the rejection message.
52
53   LOCAL_SCAN_TEMPREJECT
54                  This specifies a temporary rejection. The returned text
55                    is used in the rejection message.
56 */
57
58 int
59 local_scan(int fd, uschar **return_text)
60 {
61 fd = fd;                      /* Keep picky compilers happy */
62 return_text = return_text;
63 return LOCAL_SCAN_ACCEPT;
64 }
65
66 /* End of local_scan.c */