2 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
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/>.
23 #include <sys/types.h>
26 #include "pwmd-error.h"
30 #include <libxml/xmlerror.h>
42 #ifdef _POSIX2_LINE_MAX
43 #define LINE_MAX _POSIX2_LINE_MAX
52 #define _(msgid) gettext(msgid)
61 struct client_thread_s
65 pthread_mutex_t status_mutex
;
66 struct status_msg_s
*msg_queue
;
67 int status_msg_pipe
[2];
70 assuan_peercred_t peer
;
83 void *doc
; /* xmlDocPtr */
84 xmlErrorPtr xml_error
;
86 unsigned char md5file
[16];
87 struct client_thread_s
*thd
;
88 struct crypto_s
*crypto
;
92 long lock_timeout
; /* In tenths of a second. */
94 char *last_error
; /* ELOOP element path. */
95 unsigned char *crc
; /* Of the data file. */
96 struct pinentry_option_s pinentry_opts
;
99 pthread_key_t thread_name_key
;
100 pthread_mutex_t cn_mutex
;
101 struct slist_s
*cn_thread_list
;
104 int assuan_log_cb (assuan_context_t ctx
, void *data
, unsigned cat
,
106 void log_write (const char *fmt
, ...);
107 gpg_error_t
send_error (assuan_context_t ctx
, gpg_error_t e
);
108 gpg_error_t
do_validate_peer (assuan_context_t ctx
, const char *section
,
109 assuan_peercred_t
* peer
);
110 gpg_error_t
acl_check_common (struct client_s
*client
, const char *user
,
111 uid_t uid
, gid_t gid
, int *allowed
);
112 gpg_error_t
peer_is_self(struct client_s
*client
);