summaryrefslogtreecommitdiffabout
path: root/src/wydawca.h
Unidiff
Diffstat (limited to 'src/wydawca.h') (more/less context) (ignore whitespace changes)
-rw-r--r--src/wydawca.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/wydawca.h b/src/wydawca.h
index 2307bad..94b7ee3 100644
--- a/src/wydawca.h
+++ b/src/wydawca.h
@@ -20,56 +20,55 @@
20#include <stdio.h> 20#include <stdio.h>
21#include <stdlib.h> 21#include <stdlib.h>
22#include <stdarg.h> 22#include <stdarg.h>
23#include <unistd.h> 23#include <unistd.h>
24#include <syslog.h> 24#include <syslog.h>
25#include <getopt.h> 25#include <getopt.h>
26#include <errno.h> 26#include <errno.h>
27#include <string.h> 27#include <string.h>
28#include <ctype.h> 28#include <ctype.h>
29#include <pwd.h> 29#include <pwd.h>
30#include <grp.h> 30#include <grp.h>
31#include <signal.h> 31#include <signal.h>
32#include <limits.h> 32#include <limits.h>
33#include <dirent.h> 33#include <dirent.h>
34#include <sys/stat.h> 34#include <sys/stat.h>
35#include <sys/socket.h> 35#include <sys/socket.h>
36#include <netinet/in.h> 36#include <netinet/in.h>
37#include <sys/un.h> 37#include <sys/un.h>
38#include <sys/wait.h> 38#include <sys/wait.h>
39#include <netdb.h> 39#include <netdb.h>
40#include <arpa/inet.h> 40#include <arpa/inet.h>
41#include <fcntl.h> 41#include <fcntl.h>
42#include <time.h> 42#include <time.h>
43#include <sysexits.h> 43#include <sysexits.h>
44#include <fnmatch.h>
45#include <regex.h>
44 46
45#include <mailutils/types.h> 47#include <mailutils/types.h>
46#include <mailutils/url.h> 48#include <mailutils/url.h>
47#include <mailutils/errno.h> 49#include <mailutils/errno.h>
48 50
49#include "error.h"
50#include "xalloc.h"
51#include "backupfile.h"
52#include "grecs.h" 51#include "grecs.h"
53#include "wordsplit.h" 52#include "wordsplit.h"
54 53
55#define SP(s) ((s) ? (s) : "NONE") 54#define SP(s) ((s) ? (s) : "NONE")
56 55
57#define WYDAWCA_EX_AGAIN 1 56#define WYDAWCA_EX_AGAIN 1
58 57
59/* The range of directive versions we accept (major * 100 + minor) */ 58/* The range of directive versions we accept (major * 100 + minor) */
60#define MIN_DIRECTIVE_VERSION 101 59#define MIN_DIRECTIVE_VERSION 101
61#define MAX_DIRECTIVE_VERSION 101 60#define MAX_DIRECTIVE_VERSION 101
62 61
63/* Default modes for mkdir and creat commands: rely on the umask value */ 62/* Default modes for mkdir and creat commands: rely on the umask value */
64#define MKDIR_PERMISSIONS 0777 63#define MKDIR_PERMISSIONS 0777
65#define CREAT_PERMISSIONS 0666 64#define CREAT_PERMISSIONS 0666
66 65
67#define SUF_SIG ".sig" 66#define SUF_SIG ".sig"
68#define SUF_SIG_LEN (sizeof (SUF_SIG) - 1) 67#define SUF_SIG_LEN (sizeof (SUF_SIG) - 1)
69#define SUF_DIR ".directive.asc" 68#define SUF_DIR ".directive.asc"
70#define SUF_DIR_LEN (sizeof (SUF_DIR) - 1) 69#define SUF_DIR_LEN (sizeof (SUF_DIR) - 1)
71 70
72#define __cat2__(a,b) a ## b 71#define __cat2__(a,b) a ## b
73#define __cat3__(a,b,c) a ## b ## c 72#define __cat3__(a,b,c) a ## b ## c
74#define NITEMS(a) (sizeof(a)/sizeof((a)[0])) 73#define NITEMS(a) (sizeof(a)/sizeof((a)[0]))
75 74
@@ -89,48 +88,63 @@ enum dictionary_type
89 dictionary_external /* Invoke an external program */ 88 dictionary_external /* Invoke an external program */
90 }; 89 };
91 90
92struct dictionary 91struct dictionary
93{ 92{
94 enum dictionary_id id; 93 enum dictionary_id id;
95 enum dictionary_type type; /* Dictionary type */ 94 enum dictionary_type type; /* Dictionary type */
96 char *query; /* Query template */ 95 char *query; /* Query template */
97 int parmc; /* Number of entries in paramv */ 96 int parmc; /* Number of entries in paramv */
98 char **parmv; /* Parameters. The semantics differs 97 char **parmv; /* Parameters. The semantics differs
99 depending on type. For SQL: 98 depending on type. For SQL:
100 0 - Identifier of the SQL struct 99 0 - Identifier of the SQL struct
101 to use; */ 100 to use; */
102 101
103 int init_passed; /* Initialization count */ 102 int init_passed; /* Initialization count */
104 char *result; /* Result storage */ 103 char *result; /* Result storage */
105 size_t result_size; /* Size of result */ 104 size_t result_size; /* Size of result */
106 unsigned ncol; /* Number of columns per row */ 105 unsigned ncol; /* Number of columns per row */
107 unsigned nrow; /* Number of rows */ 106 unsigned nrow; /* Number of rows */
108 107
109 void *storage; 108 void *storage;
110}; 109};
111 110
112 111
112enum backup_type
113 {
114 no_backups, /* Don't make backups */
115 simple_backups, /* Make only simple backups */
116 numbered_existing_backups,/* Make numbered backups for files that already
117 have such backups and simple backups for the
118 rest */
119 numbered_backups, /* Make only numbered backups */
120 };
121
122extern char const *simple_backup_suffix;
123
124char *find_backup_file_name (char const *, enum backup_type);
125
126
113/* Archive types */ 127/* Archive types */
114 128
115enum archive_type 129enum archive_type
116 { 130 {
117 archive_none, /* No archivation requested */ 131 archive_none, /* No archivation requested */
118 archive_directory, /* Archive by moving files to a separate directory 132 archive_directory, /* Archive by moving files to a separate directory
119 hierarchy */ 133 hierarchy */
120 archive_tar /* Archive by appending to a tar file (tar -r) */ 134 archive_tar /* Archive by appending to a tar file (tar -r) */
121 }; 135 };
122 136
123struct archive_descr 137struct archive_descr
124{ 138{
125 enum archive_type type; /* Archivation type */ 139 enum archive_type type; /* Archivation type */
126 char *name; /* Directory name if type==archive_directory, 140 char *name; /* Directory name if type==archive_directory,
127 archive file name if type==archive_tar */ 141 archive file name if type==archive_tar */
128 enum backup_type backup_type; /* Requested backup type if 142 enum backup_type backup_type; /* Requested backup type if
129 type == archive_directory */ 143 type == archive_directory */
130}; 144};
131 145
132 146
133/* Type of file in a triplet */ 147/* Type of file in a triplet */
134enum file_type 148enum file_type
135 { 149 {
136 file_dist, /* Something to be distributed */ 150 file_dist, /* Something to be distributed */

Return to:

Send suggestions and report system problems to the System administrator.