diff options
Diffstat (limited to 'gpgme/rungpg.c')
| -rw-r--r-- | gpgme/rungpg.c | 22 | 
1 files changed, 15 insertions, 7 deletions
| diff --git a/gpgme/rungpg.c b/gpgme/rungpg.c index dcc96bfd..f200d08c 100644 --- a/gpgme/rungpg.c +++ b/gpgme/rungpg.c @@ -212,8 +212,8 @@ close_notify_handler (int fd, void *opaque)  	    break;  	  }      } -  if (!not_done && gpg->io_cbs.event) -    (*gpg->io_cbs.event) (gpg->io_cbs.event_priv, GPGME_EVENT_DONE, NULL); +  if (!not_done) +    _gpgme_gpg_io_event (gpg, GPGME_EVENT_DONE, NULL);  }  const char * @@ -807,12 +807,12 @@ static GpgmeError  _gpgme_gpg_add_io_cb (GpgObject gpg, int fd, int dir,  		      GpgmeIOCb handler, void *data, void **tag)  { -  GpgmeError err = 0; +  GpgmeError err; -  *tag = (*gpg->io_cbs.add) (gpg->io_cbs.add_priv, fd, dir, handler, data); -  if (!tag) -    err = mk_error (General_Error); -  if (!err && !dir) +  err = (*gpg->io_cbs.add) (gpg->io_cbs.add_priv, fd, dir, handler, data, tag); +  if (err) +    return err; +  if (!dir)      /* FIXME Kludge around poll() problem.  */      err = _gpgme_io_set_nonblocking (fd);    return err; @@ -1749,3 +1749,11 @@ _gpgme_gpg_set_io_cbs (GpgObject gpg, struct GpgmeIOCbs *io_cbs)  {    gpg->io_cbs = *io_cbs;  } + + +void +_gpgme_gpg_io_event (GpgObject gpg, GpgmeEventIO type, void *type_data) +{ +  if (gpg->io_cbs.event) +    (*gpg->io_cbs.event) (gpg->io_cbs.event_priv, type, type_data); +} | 
