diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-08-20 13:54:40 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-08-20 13:54:40 +0000 |
commit | 5d2f6b08d164d0106ef2377ceb01393226eeafef (patch) | |
tree | 3939f57e0aeba6dadca64eaf400ae42873a4fd6f /src/wydawca.h | |
parent | 39a9fb6ab567b48ac8c38b98143d6089e9d16709 (diff) | |
download | wydawca-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.h | 38 |
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); |