20414bd3582b43e3a248b6f90bcc924fcebc07ea
[gnupg.git] / common / asshelp.h
1 /* asshelp.h - Helper functions for Assuan
2  *      Copyright (C) 2004, 2007 Free Software Foundation, Inc.
3  *
4  * This file is part of GnuPG.
5  *
6  * This file is free software; you can redistribute it and/or modify
7  * it under the terms of either
8  *
9  *   - the GNU Lesser General Public License as published by the Free
10  *     Software Foundation; either version 3 of the License, or (at
11  *     your option) any later version.
12  *
13  * or
14  *
15  *   - the GNU General Public License as published by the Free
16  *     Software Foundation; either version 2 of the License, or (at
17  *     your option) any later version.
18  *
19  * or both in parallel, as here.
20  *
21  * This file is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24  * GNU General Public License for more details.
25  *
26  * You should have received a copy of the GNU General Public License
27  * along with this program; if not, see <http://www.gnu.org/licenses/>.
28  */
29
30 #ifndef GNUPG_COMMON_ASSHELP_H
31 #define GNUPG_COMMON_ASSHELP_H
32
33 #include <assuan.h>
34 #include <gpg-error.h>
35
36 #include "session-env.h"
37 #include "util.h"
38
39 /*-- asshelp.c --*/
40
41 void setup_libassuan_logging (unsigned int *debug_var_address);
42 void set_libassuan_log_cats (unsigned int newcats);
43
44
45 gpg_error_t
46 send_pinentry_environment (assuan_context_t ctx,
47                            gpg_err_source_t errsource,
48                            const char *opt_lc_ctype,
49                            const char *opt_lc_messages,
50                            session_env_t session_env);
51
52 /* This function is used by the call-agent.c modules to fire up a new
53    agent.  */
54 gpg_error_t
55 start_new_gpg_agent (assuan_context_t *r_ctx,
56                      gpg_err_source_t errsource,
57                      const char *homedir,
58                      const char *agent_program,
59                      const char *opt_lc_ctype,
60                      const char *opt_lc_messages,
61                      session_env_t session_env,
62                      int autostart, int verbose, int debug,
63                      gpg_error_t (*status_cb)(ctrl_t, int, ...),
64                      ctrl_t status_cb_arg);
65
66 /* This function is used to connect to the dirmngr.  On some platforms
67    the function is able starts a dirmngr process if needed.  */
68 gpg_error_t
69 start_new_dirmngr (assuan_context_t *r_ctx,
70                    gpg_err_source_t errsource,
71                    const char *homedir,
72                    const char *dirmngr_program,
73                    int autostart, int verbose, int debug,
74                    gpg_error_t (*status_cb)(ctrl_t, int, ...),
75                    ctrl_t status_cb_arg);
76
77 /* Return the version of a server using "GETINFO version".  */
78 gpg_error_t get_assuan_server_version (assuan_context_t ctx,
79                                        int mode, char **r_version);
80
81
82 /*-- asshelp2.c --*/
83
84 /* Helper function to print an assuan status line using a printf
85    format string.  */
86 gpg_error_t print_assuan_status (assuan_context_t ctx,
87                                  const char *keyword,
88                                  const char *format,
89                                  ...) GPGRT_ATTR_PRINTF(3,4);
90 gpg_error_t vprint_assuan_status (assuan_context_t ctx,
91                                   const char *keyword,
92                                   const char *format,
93                                   va_list arg_ptr) GPGRT_ATTR_PRINTF(3,0);
94
95
96 #endif /*GNUPG_COMMON_ASSHELP_H*/