Fixed some memory leaks.
[libpwmd.git] / src / types.h
blobb73e15e5b3fc214353160cc93e30ab6001687db2
1 /* vim:tw=78:ts=8:sw=4:set ft=c: */
2 /*
3 Copyright (C) 2006-2008 Ben Kibbey <bjk@luxsci.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
19 #ifndef TYPES_H
20 #define TYPES_H
22 #include <assuan.h>
24 #ifdef WITH_TCP
25 #include <libssh2.h>
26 #endif
28 typedef enum {
29 ASYNC_CMD_NONE,
30 #ifdef WITH_TCP
31 ASYNC_CMD_DNS,
32 ASYNC_CMD_CONNECT,
33 ASYNC_CMD_HOSTKEY,
34 #endif
35 ASYNC_CMD_OPEN,
36 ASYNC_CMD_SAVE,
37 } pwmd_async_cmd_t;
39 #ifdef WITH_TCP
40 typedef struct {
41 char *host;
42 unsigned port;
43 char *username;
44 char *known_hosts;
45 char *identity;
46 char *identity_pub;
47 int fd;
48 gpg_error_t rc;
49 ares_channel chan;
50 int async;
51 struct hostent *he;
52 LIBSSH2_SESSION *session;
53 LIBSSH2_CHANNEL *channel;
54 int get_only;
55 char *hostkey;
56 pwmd_async_cmd_t cmd;
57 } pwmd_tcp_conn_t;
58 #endif
60 struct pwm_s {
61 assuan_context_t ctx;
62 #ifdef WITH_TCP
63 pwmd_tcp_conn_t *tcp_conn;
64 char *result;
65 #endif
66 int fd;
67 pwmd_async_t state;
68 pwmd_async_cmd_t cmd;
69 #ifdef WITH_PINENTRY
70 pid_t pid;
71 assuan_context_t pctx;
72 gpg_error_t pin_error;
73 #endif
74 int is_open_cmd;
75 int use_pinentry;
76 int pinentry_tries;
77 int ntries;
78 char *pinentry_path;
79 char *pinentry_tty;
80 char *pinentry_term;
81 char *pinentry_display;
82 char *title;
83 char *prompt;
84 char *desc;
85 char *password;
86 char *filename;
87 pwmd_password_fn passfunc;
88 void *passdata;
89 pwmd_status_fn status_func;
90 void *status_data;
91 pwmd_inquire_fn inquire_func;
92 void *inquire_data;
95 typedef struct {
96 size_t len;
97 void *buf;
98 } membuf_t;
100 #endif