2 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012
3 Ben Kibbey <bjk@luxsci.net>
5 This file is part of pwmd.
7 Pwmd is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 2 of the License, or
10 (at your option) any later version.
12 Pwmd is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with Pwmd. If not, see <http://www.gnu.org/licenses/>.
29 #define BACKTRACE_COUNT 20
30 #define BACKTRACE(fn) { \
33 void *buffer[BACKTRACE_COUNT]; \
34 nptrs = backtrace(buffer, BACKTRACE_COUNT); \
35 strings = backtrace_symbols(buffer, nptrs); \
36 for (n = 0; n < nptrs; n++) \
37 log_write("BACKTRACE: (%s) %i: %s", fn, n, strings[n]); \
41 #define log_write0 log_write
43 #define log_write1(...) { \
44 if (config_get_integer("global", "log_level") >= 1) \
45 log_write(__VA_ARGS__); \
48 #define log_write2(...) { \
49 if (config_get_integer("global", "log_level") >= 2) \
50 log_write(__VA_ARGS__); \
62 gpg_error_t (*func
)(void *data
, void *value
);
67 gpg_error_t
parse_options(char **line
, struct argv_s
*args
[], void * data
);
68 int valid_filename(const char *filename
);
69 char *expand_homedir(char *str
);
70 char *bin2hex(const unsigned char *data
, size_t len
);
71 char *plus_escape(const char *fmt
, ...);
72 char *strip_texi_and_wrap(const char *str
);
73 void free_key(void *data
);
74 gpg_error_t
create_thread(void *(*cb
)(void *), void *data
,
75 pthread_t
*tid
, int detached
);
76 void cleanup_mutex_cb(void *arg
);
77 void cleanup_fd_cb(void *arg
);
78 void cleanup_unlink_cb(void *arg
);
79 void cleanup_cancel_cb(void *arg
);
80 void cleanup_cache_mutex(void *arg
);
81 int valid_keygrip(const unsigned char *data
, size_t len
);
82 gpg_error_t
get_checksum(const char *filename
, unsigned char **r_crc
,