c23a9b5e74
* engine-gpgsm.c: Shuffle around header inclusion a bit, to still keep them seperate. (_gpgme_set_status_handler) [!ENABLE_GPGSM]: New function.
634 lines
22 KiB
Plaintext
634 lines
22 KiB
Plaintext
2001-11-22 Marcus Brinkmann <marcus@gnu.org>
|
||
|
||
* engine-gpgsm.c: Shuffle around header inclusion a bit, to still
|
||
keep them seperate.
|
||
(_gpgme_set_status_handler) [!ENABLE_GPGSM]: New function.
|
||
|
||
2001-11-22 Werner Koch <wk@gnupg.org>
|
||
|
||
* engine-gpgsm.c: Include more headers so that NULL and mk_error
|
||
is defined even with an undefined GPGSM_PATH.
|
||
|
||
2001-11-22 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* rungpg.c (gpg_inbound_handler, write_mem_data, write_cb_data,
|
||
gpg_outbound_handler): Moved to ...
|
||
* data.c (_gpgme_data_inbound_handler, write_mem_data,
|
||
write_cb_data, _gpgme_data_outbound_handler): ... here. Make the
|
||
_gpgme_* ones non-static.
|
||
* data.c: Include io.h.
|
||
|
||
* ops.h (_gpgme_data_inbound_handler): New prototype.
|
||
(_gpgme_data_outbound_handler): Likewise.
|
||
(_gpgme_gpg_spawn): Use these new functions.
|
||
|
||
* engine-gpgsm.h (_gpgme_gpgsm_op_decrypt, _gpgme_gpgsm_op_delete,
|
||
_gpgme_gpgsm_op_encrypt, _gpgme_gpgsm_op_export,
|
||
_gpgme_gpgsm_op_genkey, _gpgme_gpgsm_op_import,
|
||
_gpgme_gpgsm_op_keylist, _gpgme_gpgsm_op_sign,
|
||
_gpgme_gpgsm_op_trustlist, _gpgme_gpgsm_op_verify,
|
||
_gpgme_gpgsm_start, _gpgme_gpgsm_set_status_handler): New prototype.
|
||
Include <rungpg.h> for status handler function.
|
||
|
||
* engine-gpgsm.c (struct gpgsm_object_s): New members input_fd,
|
||
input_data, output_fd, output_data, message_fd, message_data, command
|
||
and status.
|
||
(_gpgme_gpgsm_new): Open input, output and message pipes before
|
||
connecting to the client. Close server's ends afterwards.
|
||
(_gpgme_gpgsm_release): Close open file descriptors. Remove
|
||
server process from wait queue.
|
||
(_gpgme_gpgsm_op_verify, _gpgme_gpgsm_start,
|
||
_gpgme_gpgsm_set_status_handler, gpgms_status_handler): New function.
|
||
|
||
* engine.c (_gpgme_engine_start): Implement for GPGME_PROTOCOL_CMS.
|
||
(_gpgme_engine_set_status_handler): Likewise.
|
||
(_gpgme_engine_op_verify): Likewise.
|
||
|
||
2001-11-21 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* context.h: Do not include rungpg.h, but engine.h.
|
||
(struct gpgme_context_s): Replace member gpg with engine.
|
||
* gpgme.c (gpgme_release): Release engine, not gpg.
|
||
|
||
* recipient.c (_gpgme_append_gpg_args_from_recifgpients): Function
|
||
moved ...
|
||
* rungpg.c (_gpgme_append_gpg_args_from_recipients): ... here.
|
||
Make static, change order of arguments, and return an error value.
|
||
* ops.h (_gpgme_append_gpg_args_from_recipients): Removed prototype.
|
||
|
||
* rungpg.h (_gpgme_gpg_op_verify): Add prototype.
|
||
(_gpgme_gpg_op_encrypt): Likewise.
|
||
(_gpgme_gpg_op_decrypt): Likewise.
|
||
(_gpgme_gpg_op_delete): Likewise.
|
||
(_gpgme_gpg_op_export): Likewise.
|
||
(_gpgme_gpg_op_genkey): Likewise.
|
||
(_gpgme_gpg_op_import): Likewise.
|
||
(_gpgme_gpg_op_keylist): Likewise.
|
||
(_gpgme_gpg_op_sign): Likewise.
|
||
(_gpgme_gpg_op_trustlist): Likewise.
|
||
* rungpg.c (_gpgme_gpg_op_verify): New function.
|
||
(_gpgme_gpg_op_encrypt): Likewise.
|
||
(_gpgme_gpg_op_decrypt): Likewise.
|
||
(_gpgme_gpg_op_delete): Likewise.
|
||
(_gpgme_gpg_op_export): Likewise.
|
||
(_gpgme_gpg_op_genkey): Likewise.
|
||
(_gpgme_gpg_op_import): Likewise.
|
||
(_gpgme_gpg_op_keylist): Likewise.
|
||
(_gpgme_gpg_op_sign): Likewise.
|
||
(_gpgme_gpg_op_trustlist): Likewise.
|
||
|
||
* engine.h (_gpgme_engine_set_status_handler): Add prototype.
|
||
(_gpgme_engine_set_command_handler): Likewise.
|
||
(_gpgme_engine_set_colon_line_handler): Likewise.
|
||
(_gpgme_engine_op_decrypt): Likewise.
|
||
(_gpgme_engine_op_delete): Likewise.
|
||
(_gpgme_engine_op_encrypt): Likewise.
|
||
(_gpgme_engine_op_export): Likewise.
|
||
(_gpgme_engine_op_genkey): Likewise.
|
||
(_gpgme_engine_op_import): Likewise.
|
||
(_gpgme_engine_op_keylist): Likewise.
|
||
(_gpgme_engine_op_sign): Likewise.
|
||
(_gpgme_engine_op_trustlist): Likewise.
|
||
(_gpgme_engine_op_verify): Likewise.
|
||
(_gpgme_engine_start): Likewise.
|
||
* engine.c (_gpgme_engine_set_status_handler): New function.
|
||
(_gpgme_engine_set_command_handler): Likewise.
|
||
(_gpgme_engine_set_colon_line_handler): Likewise.
|
||
(_gpgme_engine_op_decrypt): Likewise.
|
||
(_gpgme_engine_op_delete): Likewise.
|
||
(_gpgme_engine_op_encrypt): Likewise.
|
||
(_gpgme_engine_op_export): Likewise.
|
||
(_gpgme_engine_op_genkey): Likewise.
|
||
(_gpgme_engine_op_import): Likewise.
|
||
(_gpgme_engine_op_keylist): Likewise.
|
||
(_gpgme_engine_op_sign): Likewise.
|
||
(_gpgme_engine_op_trustlist): Likewise.
|
||
(_gpgme_engine_op_verify): Likewise.
|
||
(_gpgme_engine_start): Likewise.
|
||
|
||
* verify.c (gpgme_op_verify_start): Reimplement in terms of above
|
||
functions.
|
||
* encrypt.c (gpgme_op_encrypt_start): Likewise.
|
||
* decrypt.c (_gpgme_decrypt_start): Likewise.
|
||
* passphrase.c (_gpgme_passphrase_start): Likewise.
|
||
* keylist.c (gpgme_op_keylist_start): Likewise.
|
||
|
||
2001-11-20 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* types.h: Add types EngineObject and GpgsmObject.
|
||
|
||
* Makefile.am (libgpgme_la_SOURCES): Add engine-gpgsm.h,
|
||
engine-gpgsm.c, engine.h and engine.c.
|
||
* engine.h: New file.
|
||
* engine.c: Likewise.
|
||
* engine-gpgsm.h: Likewise.
|
||
* engine-gpgsm.c: Likewise.
|
||
|
||
* rungpg.c (_gpgme_gpg_get_version): New function.
|
||
(_gpgme_gpg_check_version): Likewise.
|
||
* rungpg.h: Add prototypes for _gpgme_gpg_get_version and
|
||
_gpgme_gpg_check_version.
|
||
|
||
* version.c (compare_versions): Rename to ...
|
||
(_gpgme_compare_versions): ... this. Make non-static.
|
||
(gpgme_check_version): Use _gpgme_compare_versions rather than
|
||
compare_versions.
|
||
(gpgme_check_engine): Likewise.
|
||
* ops.h (_gpgme_get_program_version): Add prototype.
|
||
|
||
2001-11-20 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* Makefile.am (libgpgme_la_INCLUDES): Remove obsolete directive.
|
||
(AM_CPPFLAGS): New directive [BUILD_ASSUAN].
|
||
(libgpgme_la_LIBADD): Likewise.
|
||
|
||
2001-11-20 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* version.c: Remove global variables lineno and
|
||
tmp_engine_version.
|
||
(version_handler): Removed.
|
||
(_gpgme_get_program_version): New function.
|
||
(get_engine_info): Don't use context and version_handler,
|
||
but _gpgme_get_program_version.
|
||
* ops.h (_gpgme_get_program_version): Add prototype for
|
||
_gpgme_get_program_version (we expect to use it elsewhere soon).
|
||
|
||
2001-11-18 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* version.c (get_engine_info): If GnuPG is not available, return
|
||
an error message.
|
||
* posix-util.c (_gpgme_get_gpg_path): Allow GPG_PATH to be
|
||
undefined.
|
||
(_gpgme_get_gpgsm_path): New function.
|
||
* w32-util.c (find_program_in_registry): New static function.
|
||
(_gpgme_get_gpg_path): Allow GPG_PATH to be undefined. Rework
|
||
to use find_program_in_registry.
|
||
(_gpgme_get_gpgsm_path): New function.
|
||
(util.h): Prototype _gpgme_get_gpgsm_path).
|
||
* rungpg.c (_gpgme_gpg_spawn): Verify that _gpgme_get_gpg_path()
|
||
returns non-null.
|
||
|
||
2001-11-16 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* decrypt-verify.c: New file.
|
||
* Makefile.am (libgpgme_la_SOURCES): Add decrypt-verify.c.
|
||
* types.h: Add decrypt-verify types.
|
||
* ops.h: Likewise.
|
||
* context.h: Add result type for decrypt-verify.
|
||
* gpgme.h: Add decrypt-verify prototypes.
|
||
|
||
* decrypt.c (decrypt_status_handler): Renamed to ...
|
||
(_gpgme_decrypt_status_handler): ... this. Make non-static.
|
||
(_gpgme_decrypt_start): New function, derived from
|
||
gpgme_op_decrypt_start.
|
||
(gpgme_op_decrypt_start): Reimplement in terms of
|
||
_gpgme_decrypt_start.
|
||
(_gpgme_decrypt_result): New function to retrieve error value.
|
||
(gpgme_op_decrypt): Use _gpgme_decrypt_result.
|
||
* ops.h: Add prototypes for new functions.
|
||
|
||
* verify.c (verify_status_handler): Renamed to ...
|
||
(_gpgme_verify_status_handler): ... this. Make non-static.
|
||
(gpgme_op_verify_start): Use new function name.
|
||
(intersect_stati): Renamed to ...
|
||
(_gpgme_intersect_stati): ... this. Make non-static.
|
||
(gpgme_op_verify): Use new name.
|
||
* ops.h: Add prototypes for new functions.
|
||
|
||
2001-11-16 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* passphrase.c: New file.
|
||
* Makefile.am (libgpgme_la_SOURCES): Add passphrase.c.
|
||
* ops.h (_gpgme_passphrase_result): Add prototypes from
|
||
passphrase.c.
|
||
* types.h: Likewise.
|
||
* context.h: Add member passphrase to result.
|
||
* gpgme.c (_gpgme_release_result): Release passphrase member.
|
||
|
||
* decrypt.c: Some formatting and variable name changes (like
|
||
CTX instead C).
|
||
(struct decrypt_result_s): Remove members now found in
|
||
passphrase result.
|
||
(_gpgme_release_decrypt_result): Don't release removed members.
|
||
(decrypt_status_handler): Call _gpgme_passphrase_status_handler,
|
||
and don't handle the cases catched there.
|
||
(command_handler): Removed.
|
||
(gpgme_op_decrypt_start): Don't set command handler, but invoke
|
||
_gpgme_passphrase_start which does it.
|
||
(gpgme_op_decrypt): Invoke _gpgme_passphrase_result and drop the
|
||
cases covered by it.
|
||
|
||
* sign.c Some formatting and variable name changes (like
|
||
CTX instead C).
|
||
(struct sign_result_s): Remove members now found in
|
||
passphrase result.
|
||
(_gpgme_release_sign_result): Don't release removed members.
|
||
(sign_status_handler): Call _gpgme_passphrase_status_handler,
|
||
and don't handle the cases catched there.
|
||
(command_handler): Removed.
|
||
(gpgme_op_sign_start): Don't set command handler, but invoke
|
||
_gpgme_passphrase_start which does it.
|
||
(gpgme_op_sign): Invoke _gpgme_passphrase_result and drop the
|
||
cases covered by it.
|
||
|
||
2001-11-15 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* decrypt.c (command_handler): Fix last change.
|
||
|
||
2001-11-15 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* verify.c (_gpgme_release_verify_result): Rename RES to RESULT.
|
||
Rename R2 to NEXT_RESULT.
|
||
(intersect_stati): Rename RES to RESULT.
|
||
(gpgme_get_sig_status): Likewise. Do not check return_type, but
|
||
the member verify of result.
|
||
(gpgme_get_sig_key): Likewise.
|
||
|
||
* sign.c (_gpgme_release_sign_result): Rename RES to RESULT. If
|
||
RESULT is zero, return.
|
||
(sign_status_handler, command_handler): Do not check return_type,
|
||
but the member sign of result.
|
||
(gpgme_op_sign): Likewise. Drop assertion.
|
||
|
||
* encrypt.c (_gpgme_release_encrypt_result): Rename RES to RESULT.
|
||
If RESULT is zero, return.
|
||
(encrypt_status_handler): Do not check return_type, but the member
|
||
encrypt of result.
|
||
(gpgme_op_encrypt): Likewise. Drop assertion.
|
||
|
||
* decrypt.c (_gpgme_release_decrypt_result): Rename RES to RESULT.
|
||
(create_result_struct): Do not set result_type.
|
||
(command_handler, decrypt_status_handler): Do not check
|
||
return_type, but the member decrypt of result.
|
||
(gpgme_op_decrypt): Likewise. Drop assertion.
|
||
|
||
* context.h (enum ResultType): Removed.
|
||
(struct gpgme_context_s): Remove member result_type.
|
||
(struct result): Replaces union result.
|
||
* gpgme.c: Include string.h.
|
||
(_gpgme_release_result): Release all members of c->result, which
|
||
is now a struct. Zero out all members of the struct afterwards.
|
||
|
||
2001-11-11 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* rungpg.c (_gpgme_gpg_release): Release GPG->cmd.cb_data.
|
||
Release all members of the list GPG->arglist.
|
||
Reported by Michael Schmidt <mschmidt@cs.uni-sb.de>.
|
||
|
||
2001-11-02 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* rungpg.c (pipemode_copy): Change type of NBYTES to size_t.
|
||
|
||
* key.c: Include string.h.
|
||
* data.c: Likewise.
|
||
* recipient.c: Likewise.
|
||
|
||
2001-10-29 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* context.h: New member signers_len.
|
||
* signers.c (gpgme_signers_clear): Require that signers are
|
||
non-NULL with assertion. Use signers_len to determine how much
|
||
keys to release. Add documentation.
|
||
(gpgme_signers_add): Use signers_len to determine if the buffer is
|
||
large enough. Use xtryrealloc rather than xtrymalloc and copying.
|
||
Add documentation.
|
||
(gpgme_signers_enum): Use signers_len to determine if key is
|
||
available. Add documentation.
|
||
|
||
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* data.c (_gpgme_data_append): Check if LENGTH is smaller than
|
||
ALLOC_CHUNK, not DH->length.
|
||
|
||
2001-10-17 Marcus Brinkmann <marcus@g10code.de>
|
||
|
||
* gpgme.c (gpgme_set_protocol): Fix last change.
|
||
|
||
2001-10-15 Werner Koch <wk@gnupg.org>
|
||
|
||
* gpgme.h (GpgmeProtocol): New.
|
||
* gpgme.c (gpgme_set_protocol): New.
|
||
|
||
2001-09-26 Werner Koch <wk@gnupg.org>
|
||
|
||
* gpgme.c (gpgme_set_passphrase_cb): Ignore a NULL context.
|
||
(gpgme_set_progress_cb): Ditto. Suggested by Mark Mutz.
|
||
|
||
2001-09-17 Werner Koch <wk@gnupg.org>
|
||
|
||
* keylist.c (finish_key): Shortcut for no tmp_key. Changed all
|
||
callers to use this function without a check for tmp_key.
|
||
|
||
* keylist.c (gpgme_op_keylist_next): Reset the key_cond after
|
||
emptying the queue. Bug reported by St<53>phane Corth<74>sy.
|
||
|
||
2001-09-12 Werner Koch <wk@gnupg.org>
|
||
|
||
* data.c (gpgme_data_rewind): Allow rewind for callbacks.
|
||
|
||
2001-09-07 Werner Koch <wk@gnupg.org>
|
||
|
||
* rungpg.h: Add NO_RECP.
|
||
* encrypt.c (encrypt_status_handler): Take on No_RECP.
|
||
(gpgme_op_encrypt): Better error return.
|
||
|
||
* verify.c (verify_status_handler): Take on NODATA.
|
||
|
||
2001-09-03 Werner Koch <wk@gnupg.org>
|
||
|
||
* rungpg.h: Added STATUS_INV_RECP.
|
||
* gpgme.c (_gpgme_release_result): Add support for new
|
||
EncryptResult object.
|
||
* encrypt.c (append_xml_encinfo): New.
|
||
(encrypt_status_handler): Add some status parsing.
|
||
(_gpgme_release_encrypt_result): New.
|
||
|
||
2001-08-29 Werner Koch <wk@gnupg.org>
|
||
|
||
* recipient.c (gpgme_recipients_release): Free the list. By Timo.
|
||
|
||
* keylist.c (keylist_colon_handler): Do a finish key if we receive
|
||
an EOF here. This is probably the reason for a lot of bugs
|
||
related to keylisting. It is so obvious. Kudos to Enno Cramer
|
||
for pointing that out.
|
||
|
||
2001-08-28 Werner Koch <wk@gnupg.org>
|
||
|
||
* gpgme.c, gpgme.h (gpgme_get_op_info): New.
|
||
(_gpgme_set_op_info): New.
|
||
(_gpgme_release_result): Reset the op_info here.
|
||
* sign.c (append_xml_siginfo): New.
|
||
(sign_status_handler): Store the sig create information.
|
||
|
||
2001-07-31 Werner Koch <wk@gnupg.org>
|
||
|
||
* encrypt.c (gpgme_op_encrypt): Hack to detect no valid recipients.
|
||
|
||
2001-07-30 Werner Koch <wk@gnupg.org>
|
||
|
||
* gpgme.c (gpgme_get_armor,gpgme_get_textmode): New.
|
||
|
||
* rungpg.c (build_argv): Disable armor comments
|
||
* w32-io.c (build_commandline): Need to add quotes here
|
||
|
||
2001-07-24 Werner Koch <wk@gnupg.org>
|
||
|
||
* data.c (gpgme_data_read): Add a a way to return the available bytes.
|
||
|
||
2001-07-23 Werner Koch <wk@gnupg.org>
|
||
|
||
* util.c: Removed stpcpy() because we use the version from jnlib.
|
||
|
||
2001-07-19 Werner Koch <wk@gnupg.org>
|
||
|
||
* mkstatus: Define the collating sequence for sort.
|
||
|
||
2001-06-26 Werner Koch <wk@gnupg.org>
|
||
|
||
* rungpg.h: Add STATUS_UNEXPECTED as suggested by Timo.
|
||
|
||
2001-06-15 Werner Koch <wk@gnupg.org>
|
||
|
||
* keylist.c (set_userid_flags): Fixed the assigned values. Kudos
|
||
to Timo for pointing this out.
|
||
|
||
2001-06-01 Werner Koch <wk@gnupg.org>
|
||
|
||
* debug.c (_gpgme_debug_begin): Fixed a /tmp race. Noted by
|
||
Johannes Poehlmann.
|
||
|
||
2001-05-28 Werner Koch <wk@gnupg.org>
|
||
|
||
* version.c (gpgme_check_engine): Stop version number parsing at
|
||
the opening angle and not the closing one. By Tommy Reynolds.
|
||
|
||
2001-05-01 Jos<6F> Carlos Garc<72>a Sogo <jose@jaimedelamo.eu.org>
|
||
|
||
* encrypt.c (gpgme_op_encrypt_start): Deleted the assert ( !c->gpg )
|
||
line, because it gave an error if another operation had been made
|
||
before using the same context.
|
||
|
||
* decrypt.c (gpgme_op_decrypt_start): The same as above. Also added
|
||
one line to release the gpg object in the context (if any).
|
||
|
||
2001-04-26 Werner Koch <wk@gnupg.org>
|
||
|
||
* key.c, key.h (_gpgme_key_cache_init): New.
|
||
(_gpgme_key_cache_add): New.
|
||
(_gpgme_key_cache_get): New.
|
||
* version.c (do_subsystem_inits): Init the cache.
|
||
* keylist.c (finish_key): Put key into the cache
|
||
* verify.c (gpgme_get_sig_key): First look into the cache.
|
||
|
||
2001-04-19 Werner Koch <wk@gnupg.org>
|
||
|
||
* keylist.c (parse_timestamp): Adjusted for the changed
|
||
--fixed-list-mode of gpg 1.0.4h.
|
||
|
||
2001-04-05 Werner Koch <wk@gnupg.org>
|
||
|
||
* verify.c (gpgme_op_verify_start): Enabled pipemode for detached sigs.
|
||
|
||
2001-04-04 Werner Koch <wk@gnupg.org>
|
||
|
||
* w32-io.c (_gpgme_io_select): Don't select on the writer if there
|
||
are still bytes pending. Timo found this not easy to track down
|
||
race condition.
|
||
|
||
2001-04-02 Werner Koch <wk@gnupg.org>
|
||
|
||
* gpgme.h: Add GPGME_ATTR_KEY_{EXPIRED,DISABLED}.
|
||
* key.c (gpgme_key_get_ulong_attr): And return those attribs.
|
||
|
||
* verify.c (gpgme_get_sig_key): Set keyliosting mode depending on
|
||
the mode set in the current context. Suggested by Timo.
|
||
|
||
* key.c (gpgme_key_get_ulong_attr): Return can_certify and not
|
||
can_encrypt. By Timo.
|
||
|
||
2001-03-30 Werner Koch <wk@gnupg.org>
|
||
|
||
* debug.c (debug_init): Allow to specify a debug file.
|
||
(_gpgme_debug_level): New.
|
||
|
||
* posix-io.c (_gpgme_io_read, _gpgme_io_write): Print output.
|
||
(_gpgme_io_select): Debug only with level > 2.
|
||
|
||
2001-03-15 Werner Koch <wk@gnupg.org>
|
||
|
||
* rungpg.c: Included time.h.
|
||
|
||
* key.h: New keyflags for capabilities.
|
||
* keylist.c (set_mainkey_capability, set_subkey_capability): New.
|
||
(keylist_colon_handler): Parse them.
|
||
* gpgme.h: New attribute values for capabilties.
|
||
* key.c (gpgme_key_get_string_attr): Return them.
|
||
(capabilities_to_string): New.
|
||
(gpgme_key_get_ulong_attr): Return the global caps.
|
||
|
||
2001-03-14 Werner Koch <wk@gnupg.org>
|
||
|
||
* w32-io.c (destroy_reader,destroy_writer): Fixed syntax error.
|
||
Thanks to Jan Oliver Wagner.
|
||
|
||
2001-03-13 Werner Koch <wk@gnupg.org>
|
||
|
||
* context.h: Add invalid and revoke flags to user_id structure.
|
||
* keylist.c (gpgme_op_keylist_start): Use --fixed-list-mode.
|
||
(keylist_colon_handler): Adjust for that.
|
||
(set_userid_flags): New.
|
||
(set_mainkey_trust_info): Handle new key invalid flag
|
||
(set_subkey_trust_info): Ditto.
|
||
* gpgme.h: Add new attributes for key and user ID flags.
|
||
* key.c (_gpgme_key_append_name): Init these flags
|
||
(gpgme_key_get_as_xml): Print them.
|
||
(one_uid_as_xml): New helper for above.
|
||
(gpgme_key_get_string_attr, gpgme_key_get_ulong_attr):
|
||
Return the new attributes. Enhanced, so that subkey information
|
||
can be returned now.
|
||
|
||
2001-02-28 Werner Koch <wk@gnupg.org>
|
||
|
||
* w32-io.c (destroy_reader): Set stop_me flag.
|
||
(writer,create_writer,destroy_writer,find_writer,kill_writer): New.
|
||
(_gpgme_io_write): Use a writer thread to avaoid blocking.
|
||
(_gpgme_io_close): Cleanup a writer thread
|
||
(_gpgme_io_select): Repalce tthe faked wait on writing by a real
|
||
waiting which is now possible due to the use of a writer thread.
|
||
|
||
2001-02-20 Werner Koch <wk@gnupg.org>
|
||
|
||
* w32-io.c (destroy_reader,kill_reader): New.
|
||
(create_reader, reader): Add a new event to stop the thread.
|
||
(_gpgme_io_close): Kill the reader thread.
|
||
|
||
* posix-io.c (_gpgme_io_select): Handle frozen fds here.
|
||
* 32-io.c (_gpgme_io_select): Ditto. Removed a bunch of unused code.
|
||
|
||
* wait.c: Reworked the whole thing.
|
||
* rungpg.c (_gpgme_gpg_new): Init pid to -1.
|
||
(_gpgme_gpg_release): Remove the process from the wait queue.
|
||
|
||
2001-02-19 Werner Koch <wk@gnupg.org>
|
||
|
||
* w32-io.c (_gpgme_io_set_close_notify): New.
|
||
(_gpgme_io_close): Do the notification.
|
||
|
||
* posix-io.c (_gpgme_io_select): Use a 1 sec timeout and not 200
|
||
microseconds.
|
||
|
||
* wait.c (remove_process): Don't close the fd here.
|
||
(do_select): Set the fd to -1 and remove the is_closed flag everywhere.
|
||
(_gpgme_wait_on_condition): Remove the assert on the queue and
|
||
break out if we could not find the queue. The whole thing should
|
||
be reworked.
|
||
|
||
* posix-io.c (_gpgme_io_set_close_notify): New.
|
||
(_gpgme_io_close): Do the notification.
|
||
|
||
* rungpg.c (close_notify_handler): New.
|
||
(_gpgme_gpg_new): Register a callback for the fd.
|
||
(_gpgme_gpg_set_colon_line_handler): Ditto.
|
||
(build_argv): Ditto
|
||
|
||
2001-02-13 Werner Koch <wk@gnupg.org>
|
||
|
||
* rungpg.c (struct reap_s): Replaced pid_t by int.
|
||
|
||
* types.h: Add ulong typedef.
|
||
|
||
* rungpg.c (do_reaping,_gpgme_gpg_housecleaning): New.
|
||
(_gpgme_gpg_release): Reap children.
|
||
* io.h, posix-io.c (_gpgme_io_kill): New.
|
||
* w32-io.c (_gpgme_io_kill): New (dummy).
|
||
|
||
* keylist.c (gpgme_op_keylist_start): Cancel a pending request.
|
||
|
||
* posix-io.c (_gpgme_io_read): Add some debug output.
|
||
(_gpgme_io_write): Ditto.
|
||
(_gpgme_io_select): Increased the timeout.
|
||
|
||
2001-02-12 Werner Koch <wk@gnupg.org>
|
||
|
||
Enhanced the signature verification, so that it can how handle
|
||
more than one signature and is able to return more information on
|
||
the signatures.
|
||
* verify.c (gpgme_get_sig_key): New.
|
||
(gpgme_get_sig_status): New.
|
||
|
||
* gpgme.h: Add stdio.h.
|
||
(GpgmeSigStat): New status DIFF.
|
||
|
||
2001-02-01 Werner Koch <wk@gnupg.org>
|
||
|
||
* w32-io.c (set_synchronize): Add EVENT_MODIFY_STATE. Add Debug
|
||
code to all Set/ResetEvent().
|
||
|
||
* rungpg.c (read_status): Check for end of stream only if we have
|
||
an r. By Timo.
|
||
|
||
2001-01-31 Werner Koch <wk@gnupg.org>
|
||
|
||
* wait.c (_gpgme_wait_on_condition): Removed all exit code processing.
|
||
(propagate_term_results,clear_active_fds): Removed.
|
||
(count_active_fds): Renamed to ..
|
||
(count_active_and_thawed_fds): .. this and count only thawed fds.
|
||
|
||
* rungpg.c (gpg_colon_line_handler): Return colon.eof and not
|
||
status.eof ;-)
|
||
|
||
2001-01-30 Werner Koch <wk@gnupg.org>
|
||
|
||
* w32-io.c (_gpgme_io_spawn): Use the supplied path arg.
|
||
|
||
* version.c (get_engine_info): Return better error information.
|
||
|
||
* posix-util.c, w32-util.c: New.
|
||
(_gpgme_get_gpg_path): New, suggested by Jan-Oliver.
|
||
* rungpg.c (_gpgme_gpg_spawn): Use new function to get GPG's path.
|
||
|
||
* signers.c (gpgme_signers_add): Ooops, one should test code and
|
||
not just write it; the newarr was not assigned. Thanks to Jos<6F>
|
||
for pointing this out. Hmmm, still not tested, why shoudl a coder
|
||
test his fix :-)
|
||
|
||
* w32-io.c: Does now use reader threads, so that we can use
|
||
WaitForMultipleObjects.
|
||
* sema.h, posix-sema.c, w32-sema.c: Support for Critcial sections.
|
||
Does currently only work for W32.
|
||
|
||
* debug.c, util.h : New. Changed all fprintfs to use this new
|
||
set of debugging functions.
|
||
|
||
2001-01-23 Werner Koch <wk@gnupg.org>
|
||
|
||
* data.c (_gpgme_data_release_and_return_string): Fixed string
|
||
termination.
|
||
|
||
2001-01-22 Werner Koch <wk@gnupg.org>
|
||
|
||
* delete.c: New.
|
||
|
||
* signers.c: New.
|
||
* key.c (gpgme_key_ref, gpgme_key_unref): New.
|
||
* sign.c (gpgme_op_sign_start): Allow the use of other keys.
|
||
|
||
* version.c (gpgme_get_engine_info,gpgme_check_engine): New.
|
||
* rungpg.c (_gpgme_gpg_set_simple_line_handler): New.
|
||
|
||
2001-01-05 Werner Koch <wk@gnupg.org>
|
||
|
||
* data.c (gpgme_data_rewind): Allow to rewind data_type_none.
|
||
|
||
|
||
Copyright 2001 g10 Code GmbH
|
||
|
||
This file is free software; as a special exception the author gives
|
||
unlimited permission to copy and/or distribute it, with or without
|
||
modifications, as long as this notice is preserved.
|
||
|
||
This file is distributed in the hope that it will be useful, but
|
||
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
|