diff options
Diffstat (limited to 'kbx/kbx-client-util.c')
-rw-r--r-- | kbx/kbx-client-util.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/kbx/kbx-client-util.c b/kbx/kbx-client-util.c index ba356b3c5..910050372 100644 --- a/kbx/kbx-client-util.c +++ b/kbx/kbx-client-util.c @@ -270,10 +270,12 @@ datastream_thread (void *arg) /* Create a new keyboxd client data object and return it at R_KCD. - * CTX is the assuan context to be used for connecting the - * keyboxd. */ + * CTX is the assuan context to be used for connecting the keyboxd. + * If dlines is set, communication is done without fd passing via + * D-lines. */ gpg_error_t -kbx_client_data_new (kbx_client_data_t *r_kcd, assuan_context_t ctx) +kbx_client_data_new (kbx_client_data_t *r_kcd, assuan_context_t ctx, + int dlines) { kbx_client_data_t kcd; int rc; @@ -285,6 +287,9 @@ kbx_client_data_new (kbx_client_data_t *r_kcd, assuan_context_t ctx) kcd->ctx = ctx; + if (dlines) + goto leave; + rc = npth_mutex_init (&kcd->mutex, NULL); if (rc) { @@ -312,6 +317,7 @@ kbx_client_data_new (kbx_client_data_t *r_kcd, assuan_context_t ctx) return err; } + leave: *r_kcd = kcd; return 0; } |