aboutsummaryrefslogtreecommitdiff
path: root/src/wydawca.h
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2007-08-20 13:54:40 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2007-08-20 13:54:40 +0000
commit5d2f6b08d164d0106ef2377ceb01393226eeafef (patch)
tree3939f57e0aeba6dadca64eaf400ae42873a4fd6f /src/wydawca.h
parent39a9fb6ab567b48ac8c38b98143d6089e9d16709 (diff)
downloadwydawca-5d2f6b08d164d0106ef2377ceb01393226eeafef.tar.gz
wydawca-5d2f6b08d164d0106ef2377ceb01393226eeafef.tar.bz2
* jabberd/Makefile.am, cvs/Makefile.am, ckaliases/Makefile.am,
acinclude.m4, Makefile.am: Add copyright statements * wydawca/sql.c (trim_length): Move to verify.c * wydawca/verify.c (trim_length, trim) (check_access_rights): New functions (expand_param): Export (verify_triplet): Call verify_directive_format and check_access_rights * wydawca/wydawca.h (trim_length, trim, directive_parse) (directive_get_value, directive_pack_version) (directive_version_in_range_p, verify_directive_format) (directive_first, directive_next, process_directives) (create_directory, move_file): New functions (MIN_DIRECTIVE_VERSION,MAX_DIRECTIVE_VERSION) (MKDIR_PERMISSIONS,CREAT_PERMISSIONS): New defines * wydawca/gpg.c (wydawca_gpg_homedir): Return a meaningful value (verify_directive_signature): Call directive_parse * wydawca/process.c (parse_file_name): Return void * wydawca/directive.c: New file * wydawca/diskio.c: New file * wydawca/triplet.c (triplet_processor): Call process_directives (enumerate_triplets): Arg is not const * wydawca/Makefile.am: Add new sources * configure.ac: Check for sendfile git-svn-id: file:///svnroot/wydawca/trunk@281 6bb4bd81-ecc2-4fd4-a2d4-9571d19c0d33
Diffstat (limited to 'src/wydawca.h')
-rw-r--r--src/wydawca.h38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/wydawca.h b/src/wydawca.h
index b579206..7da2243 100644
--- a/src/wydawca.h
+++ b/src/wydawca.h
@@ -25,17 +25,24 @@
#include <getopt.h>
#include <errno.h>
#include <string.h>
+#include <ctype.h>
#include <pwd.h>
#include <grp.h>
#include <signal.h>
#include <limits.h>
#include <dirent.h>
#include <sys/stat.h>
+#include <fcntl.h>
#include "error.h"
#include "xalloc.h"
#include "progname.h"
#include "gsc.h"
+#define MIN_DIRECTIVE_VERSION 101
+#define MAX_DIRECTIVE_VERSION 101
+
+#define MKDIR_PERMISSIONS 0777
+#define CREAT_PERMISSIONS 0666
enum access_method_type
{
method_none,
@@ -92,6 +99,8 @@ struct file_register
struct file_info file[FILE_TYPE_COUNT];
char **directive;
char *blurb;
+ char *tmp;
+ size_t tmpsize;
};
void register_directory_pair (struct directory_pair *dpair);
@@ -105,11 +114,11 @@ extern char *syslog_tag;
extern int unlink_invalid_files;
extern time_t file_sweep_time;
-
+void logmsg (int prio, char *fmt, ...) GSC_PRINTFLIKE(2,3);
void scan_directories (void);
int test_dir (const char *name, int *ec);
void register_file (struct file_info *finfo);
-void enumerate_triplets (const struct directory_pair *);
+void enumerate_triplets (struct directory_pair *);
void parse_config (void);
@@ -120,8 +129,33 @@ const char *method_result (struct access_method *method);
void method_copy_result (struct access_method *method, const char *res,
size_t size);
+int verify_triplet (struct file_register *reg, struct directory_pair *dpair);
int verify_directive_signature (struct file_register *reg,
struct directory_pair *dpair,
const char *pubkey);
int verify_detached_signature (struct file_register *reg,
struct directory_pair *dpair);
+
+size_t trim_length (const char *str);
+size_t trim (char *str);
+
+int directive_parse (struct file_register *reg);
+int directive_get_value (struct file_register *reg, const char *key,
+ const char **pval);
+int directive_pack_version (const char *val, unsigned *pversion);
+int directive_version_in_range_p (struct file_register *reg,
+ unsigned from, unsigned to);
+int verify_directive_format (struct file_register *reg);
+
+
+int directive_first (struct file_register *reg,
+ const char **pkey, const char **pval);
+int directive_next (struct file_register *reg, int n,
+ const char **pkey, const char **pval);
+int process_directives (struct file_register *reg,
+ struct directory_pair *dpair);
+
+char *create_directory (const char *base, const char *name,
+ uid_t uid, gid_t gid);
+
+int move_file (const char *file, const char *dst_dir, uid_t uid, gid_t gid);

Return to:

Send suggestions and report system problems to the System administrator.