Commit Graph

585 Commits

Author SHA1 Message Date
Marcus Brinkmann
c9dc982ce3 2007-08-22 Marcus Brinkmann <marcus@g10code.de>
* w32-io.c (_gpgme_io_write): Return early if COUNT is zero.
	(writer): Remove superfluous check.
2007-08-22 17:29:41 +00:00
Marcus Brinkmann
2535c30405 2007-08-20 Marcus Brinkmann <marcus@g10code.de>
* gpgme.h: Move include of gpg-error.h out of extern "C".
2007-08-20 16:12:07 +00:00
Werner Koch
bc82a66514 Add new signature_t member chain_model. 2007-08-07 15:21:50 +00:00
Werner Koch
5e00a176f5 Improved debug support: Assuan logging is now directed to the gpgme debug
stream.
Create processes detached.
2007-08-02 14:59:01 +00:00
Marcus Brinkmann
d61bf6c13c 2007-07-17 Marcus Brinkmann <marcus@g10code.de>
* debug.c:;5B Include <errno.h> and "debug.h".
	(_gpgme_debug): Save and restore ERRNO.
	(TOHEX): New macro.
	(_gpgme_debug_buffer): New function.
	* conversion.c, data-compat.c, data-mem.c, data.c, engine-gpgsm.c,
	gpgme.c, keylist.c, posix-io.c, rungpg.c, sign.c, version.c,
	w32-io.c, wait.c: Replace DEBUG macros by TRACE_* variants.  In
	most of these files, add many more tracepoints.
2007-07-17 12:36:04 +00:00
Marcus Brinkmann
d1e40ac15f Fixed last change. 2007-07-16 17:47:00 +00:00
Marcus Brinkmann
174bf90842 2007-07-16 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c (status_handler): Do not send BYE here.
2007-07-16 17:27:49 +00:00
Marcus Brinkmann
b3434696b3 2007-07-16 Marcus Brinkmann <marcus@g10code.de>
* assuan/assuan-socket.c (_assuan_close): Always use close().
	* assuan/assuan.h (_gpgme_io_close): New prototype.
	(close): New macro, define as _gpgme_io_close.

gpgme/
2007-07-16  Marcus Brinkmann  <marcus@g10code.de>

	* w32-io.c (struct reader_context_s, struct writer_context_s): New
	members REFCOUNT.
	(create_reader, create_writer): Initialize C->refcount to 1.
	(destroy_reader, destroy_writer): Only destroy if C->refcount
	drops to 0.
	(find_reader, find_writer, kill_reader, kill_writer): Beautify.
	* priv-io.h (_gpgme_io_dup): New prototype.
	* posix-io.c (_gpgme_io_dup): New function. 
	* w32-io.c (_gpgme_io_dup): Likewise.
	* w32-glib-io.c (_gpgme_io_dup): Likewise.
	* engine-gpgsm.c (start): Reverting to version 2007-07-10.
2007-07-16 17:26:09 +00:00
Marcus Brinkmann
d258f5f735 2007-07-13 Marcus Brinkmann <marcus@g10code.de>
* data-user.c (user_read, user_write, user_seek): Set errno and
	return -1 instead returning the error code directly.
	* data-compat.c (old_user_seek): Likewise.
	* gpgme.c (gpgme_sig_notation_add): Return error properly.
2007-07-13 14:47:07 +00:00
Marcus Brinkmann
5d25b54f30 2007-07-13 Marcus Brinkmann <marcus@g10code.de>
* Revert the "close_notify_handler" returns int stuff.  Always
	close in the _gpgme_io_close implementations.
	* engine-gpgsm.c (status_handler): Try to terminate the connection
	in case of error.
	* w32-io.c (_gpgme_io_read): Return C->error_code in ERRNO.
	(_gpgme_io_write): Likewise.
2007-07-13 01:57:02 +00:00
Marcus Brinkmann
c4bb93ec28 2007-07-13 Marcus Brinkmann <marcus@g10code.de>
* assuan/assuan-io.c (_assuan_simple_read, _assuan_simple_write):
	Always use read/write (which means _gpgme_io_read and
	_gpgme_io_write).

gpgme/
2007-07-13  Marcus Brinkmann  <marcus@g10code.de>

	* priv-io.h (_gpgme_io_set_close_notify): Change type of HANDLER
	to _gpgme_close_notify_handler.
	(_gpgme_close_notify_handler): New type.
	(_gpgme_io_dup): Remove prototype.
	* posix-io.c (notify_table, _gpgme_io_set_close_notify): Change
	type of HANDLER to _gpgme_close_notify_handler_t.
	(_gpgme_io_close): Do not close the FD if handler returns 0.
	(_gpgme_io_dup): Remove function.
	* w32-io.c (notify_table, _gpgme_io_set_close_notify,
	_gpgme_io_close): Change type of HANDLER to
	_gpgme_close_notify_handler_t.
	(_gpgme_io_close): Do not close the FD if handler returns 0.
	(_gpgme_io_dup): Remove function.
	* w32-glib-io.c (_gpgme_io_dup): Remove function.
	(_gpgme_io_set_close_notify, notify_table): Change type of HANDLER
	to _gpgme_close_notify_handler_t.
	(_gpgme_io_close): Do not close the FD if handler returns 0.
	* rungpg.c (close_notify_handler): Change return type to int,
	return 1.
	* engine-gpgsm.c (close_notify_handler): Change return type to
	int, return 0 for status FD and 1 for all other FDs.
	(start): Do not duplicate the status FD.
2007-07-13 00:43:17 +00:00
Marcus Brinkmann
a3e3601d06 Fix last change. 2007-07-12 20:19:46 +00:00
Marcus Brinkmann
f401a75a5f 2007-07-12 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am: Replace implicite rule by suffix rule.  Add
	SUFFIXES for that.
2007-07-12 18:31:22 +00:00
Werner Koch
906da085cf Changes for W32 2007-07-12 15:25:20 +00:00
Marcus Brinkmann
2d9c4431b8 2007-07-10 Marcus Brinkmann <marcus@g10code.de>
* priv-io.h (_gpgme_io_dup): New prototype.
	* posix-io.c (_gpgme_io_dup): New function. 
	* w32-io.c (_gpgme_io_dup): Likewise.
	* w32-glib-io.c (_gpgme_io_dup): Likewise.
	* engine-gpgsm.c (start): Use _gpgme_dup() instead of dup().
2007-07-10 16:06:44 +00:00
Marcus Brinkmann
5b8e76a533 2007-07-08 Marcus Brinkmann <marcus@g10code.de>
* configure.ac (GPGSM_DEFAULT) [*-mingw32*]: Initialize it.
	(HAVE_ASSUAN_H): Set to 1 if we have it.
	(funopen): Use AC_REPLACE_FUNCS.
	(USE_DESCRIPTOR_PASSING): Define to 1 if we have it.  Do not
	define it at all if we don't.
	(NETLIBS) [have_w32_system]: Add -lws2_32.
	(DIRSEP_C, DIRSEP_S, EXPSEP_C, EXPSEP_S, PATHSEP_S)
	[HAVE_DOSISH_SYSTEM]: Remove definitions.

	* assuan/assuan.h (_assuan_funopen): Define to _gpgme_funopen.
	* assuan/funopen.c: Move to ../gpgme/funopen.c.
	* assuan/Makefile.am (libassuan_la_SOURCES): Remove funopen.c.

assuan/
2007-07-08  Marcus Brinkmann  <marcus@g10code.de>

	* assuan-defs.h (struct assuan_context_s): Have partial peercred
	structure even if HAVE_W32_SYSTEM, and have full peercred
	structure only if HAVE_SO_PEERCRED.
	* assuan-connect.c (assuan_get_peercred) [!HAVE_SO_PEERCRED]: Do
	not try to set PID, UID and GID.

gpgme/
2007-07-08  Marcus Brinkmann  <marcus@g10code.de>

	* engine-gpgsm.c [HAVE_W32_SYSTEM]: Enable the bunch of the file.
	* funopen.c (funopen): Rename to _gpgme_funopen.
2007-07-08 15:46:10 +00:00
Marcus Brinkmann
2d7cfe08b0 2007-07-04 Marcus Brinkmann <marcus@g10code.de>
* assuan/Makefile.am (INCLUDES): Include $(top_srcdir)/gpgme.  *
	assuan/assuan.h: Include <ath.h> instead of trying to duplicate
	the definitions.
2007-07-04 21:07:27 +00:00
Werner Koch
4daa6aa2c9 Added target "online". 2007-06-29 14:41:35 +00:00
Marcus Brinkmann
0bd4e4c4d1 2007-04-30 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c (gpgsm_new): Fix error handling for ttyname_r.
	* rungpg.c (gpg_new): Likewise.
	Submitted by Stephen Tether.
2007-04-30 18:37:22 +00:00
Werner Koch
c8a3156192 Post release updates 2007-03-05 11:18:47 +00:00
Werner Koch
fec4e786b3 Fixed last chnage. 2007-02-26 10:44:57 +00:00
Werner Koch
1786019d68 Detect and bailo out on double plaintext messages. 2007-02-26 10:36:08 +00:00
Werner Koch
d6a2521246 /
* configure.ac: Changed gpg and gpgsm version checks to work with
	arbitrary names of the gpg binary. New option --disable-gpg-test
	and --disable-gpgsm-test.
gpgme/
	* w32-io.c (build_commandline): Fixed stupid quoting bug.
	* w32-glib-io.c (build_commandline): Ditto.

	* rungpg.c (gpg_set_locale): Avoid dangling pointer after free.

	* gpgme-config.in: New options --get-gpg and --get-gpgsm.
2007-01-26 12:08:12 +00:00
Marcus Brinkmann
ffbeb4f508 Fix last change. 2007-01-18 18:02:54 +00:00
Marcus Brinkmann
9e1edec4ff 2007-01-18 Marcus Brinkmann <marcus@g10code.de>
* data.h (_gpgme_data_get_fd): Add prototype.
	(gpgme_data_get_fd_cb): New type.
	(struct _gpgme_data_cbs): New member get_fd.
	* data.c (_gpgme_data_get_fd): New function.
	* data-fd.c (fd_get_fd): New function.
	(fd_cbs): Add fd_get_fd.
	* data-stream.c (stream_get_fd): New function.
	(stream_cbs): Add stream_get_fd.
	* data-mem.c (mem_cbs): Add NULL for get_fd callback.	
	* data-user.c (user_cbs): Likewise.
	* engine-gpgsm.c (gpgsm_set_fd) [USE_DESCRIPTOR_PASSING]: Try to
	short-cut by passing the data descriptor directly.
2007-01-18 17:59:26 +00:00
Marcus Brinkmann
c1b1642f1b 2007-01-17 Marcus Brinkmann <marcus@g10code.de>
* w32-io.c (build_commandline): Quote all command line arguments.
	* w32-glib-io.c (build_commandline): Likewise.
2007-01-17 19:35:06 +00:00
Werner Koch
cc5190ffc1 /
* configure.ac (NEED_GPG_VERSION,
	(NEED_GPGSM_VERSION): Must define after it may have been changed
	by an option.

	* configure.ac: Require gpg-error 1.4 due to the use of
	gpg_error_from_syserror.
	(HAVE_ASSUAN_H): New.

gpgme/

	* ttyname_r.c (ttyname_r) [W32]: Return a dummy name.

	* version.c (do_subsystem_inits): Do assuan init only if building
	with Assuan.
	* setenv.c: Include assuan-def.h only if building with Assuan
	support.

	* op-support.c (_gpgme_op_reset): Set LC_MESSAGES only if
	if defined.
	* engine-gpgsm.c (gpgsm_set_locale): Ditto.
	* rungpg.c (gpg_set_locale): Ditto.
2007-01-10 10:18:05 +00:00
Werner Koch
fca9d331d2 Fixes for building without gpgsm and for W32 2007-01-08 12:05:07 +00:00
Marcus Brinkmann
13d2e5d1c7 2006-12-17 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Fix two typos in last change.

gpgme/
2006-12-17  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.c (gpgme_set_protocol): Shut down the engine when
	switching protocols.
	(gpgme_ctx_set_engine_info): Likewise for engine info.
	* engine.h (_gpgme_engine_reset): New function prototype.
	* engine.c (_gpgme_engine_reset): New function.
	* engine-backend.h (struct engine_ops): New member RESET.
	* rungpg.c (_gpgme_engine_ops_gpg): Add NULL for reset function.
	* engine-gpgsm.c (_gpgme_engine_ops_gpgsm)
	[USE_DESCRIPTOR_PASSING]: Add gpgsm_reset for reset.
	(_gpgme_engine_ops_gpgsm) [!USE_DESCRIPTOR_PASSING]: Add NULL for
	reset function.
	(gpgsm_reset) [USE_DESCRIPTOR_PASSING]: New function.
	* op-support.c (_gpgme_op_reset): Try to use the engine's reset
	function if available.
	* engine-gpgsm.c (gpgsm_new): Move code to dup status_fd to ...
	(start): ... here.
	* posix-io.c (_gpgme_io_recvmsg, _gpgme_io_sendmsg): New functions.
2006-12-17 21:12:40 +00:00
Marcus Brinkmann
f9bf0d5b79 2006-12-17 Marcus Brinkmann <marcus@g10code.de>
* engine.h (_gpgme_engine_new): Remove arguments lc_ctype and
	lc_messages from prototype.
	(_gpgme_engine_set_locale): New prototype.
	* engine.c (_gpgme_engine_set_locale): New function.
	* op-support.c (_gpgme_op_reset): Call _gpgme_engine_set_locale.
	* engine-backend.h (struct engine_ops): Add new member SET_LOCALE.
	Remove arguments lc_messages and lc_ctype from member NEW.
	* engine-gpgsm.c (struct engine_gpgsm): New members lc_ctype_set
	and lc_messages_set.
	(gpgsm_new): Remove lc_messages and lc_ctype
	arguments.
	(gpgsm_set_locale): New function.
	(_gpgme_engine_ops_gpgsm): Add gpgsm_set_locale.
	* rungpg.c (struct engine_gpg): Add new members lc_messages and
	lc_ctype.
	(gpg_release): Release lc_messages and lc_ctype if set.
	(gpg_new): Remove lc_messages and lc_ctype arguments.
	(gpg_set_locale): New function.
	(_gpgme_engine_ops_gpg): Add gpg_set_locale.
	(add_arg): Implement in terms of:
	(add_arg_ext): New function.
	(start): Set lc-messages and lc-ctype arguments here.
2006-12-17 16:40:09 +00:00
Marcus Brinkmann
ba58b21408 2006-12-03 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c (struct engine_gpgsm): Move members
	input_fd_server, output_fd_server, message_fd_server to ...
	(iocb_data): ... here (as server_fd).
	(close_notify_handler): Reset tags as well.
	(gpgsm_new): Implement support for descriptor
	passing.
	(fd_type_t): New type.
	(gpgsm_clear_fd): New function.  Use it instead of _gpgsm_io_close
	for unused communication channels.
	(gpgsm_set_fd): Rewritten to support descriptor passing.  All
	relevant callers adjusted as well (previously of _gpgme_io_close).
2006-12-03 02:05:23 +00:00
Marcus Brinkmann
a5b002c883 2006-12-02 Marcus Brinkmann <marcus@g10code.de>
* version.c: Include "assuan.h".
	(do_subsystem_inits): Call assuan_set_assuan_err_source.
2006-12-02 23:57:14 +00:00
Marcus Brinkmann
e9f92dd049 2006-12-01 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (libgpgme_real_la_SOURCES): Rename to main_sources.
	(libgpgme_la_SOURCES, libgpgme_pthread_la_SOURCES,
	libgpgme_glib_la_SOURCES, libgpgme_pth_la_SOURCES): Add
	$(main_sources).
	(libgpgme_la_DEPENDENCIES, libgpgme_la_LIBADD,
	libgpgme_pthread_la_DEPENDENCIES, libgpgme_pthread_la_LIBADD,
	libgpgme_pth_la_DEPENDENCIES, libgpgme_pth_la_LIBADD,
	libgpgme_glib_la_DEPENDENCIES, libgpgme_glib_la_LIBADD): Remove
	libgpgme-real.la.
	(noinst_LTLIBRARIES): Removed.
	(libgpgme_glib_la_CFLAGS, libgpgme_pth_la_CFLAGS): Removed.
	(AM_CFLAGS): New variable.
2006-12-01 12:22:37 +00:00
Marcus Brinkmann
ca43edcd40 2006-11-30 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c: Replace AssuanError with gpg_error_t and
	ASSUAN_CONTEXT with assuan_context_t.
2006-11-30 20:45:33 +00:00
Marcus Brinkmann
0bd5dd4b24 2006-11-29 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c (gpgsm_new): Check return value of
	assuan_pipe_connect.
2006-11-29 19:21:18 +00:00
Marcus Brinkmann
7a1e9447e5 2006-11-29 Marcus Brinkmann <marcus@g10code.de>
* rungpg.c: Include <unistd.h>.
	(gpg_new): Support --display, --ttyname, --ttytype, --lc-ctype and
	--lc-messages.  Fixes issue 734.
2006-11-29 15:44:29 +00:00
Marcus Brinkmann
f44e7a64bb 2006-10-24 Marcus Brinkmann <marcus@g10code.de>
* trustlist.c (gpgme_op_trustlist_next): Return error if OPD is
	NULL.
2006-10-24 09:22:33 +00:00
Marcus Brinkmann
ebb8edbb30 2006-10-23 Marcus Brinkmann <marcus@g10code.de>
* wait-global.c (gpgme_wait): Unlock CTX_LIST_LOCK while calling
	_gpgme_engine_io_event().
2006-10-23 18:52:14 +00:00
Marcus Brinkmann
aeef0402a7 2006-10-23 Marcus Brinkmann <marcus@g10code.de>
* keylist.c (gpgme_op_keylist_next): Return error if OPD is NULL.
2006-10-23 17:17:25 +00:00
Marcus Brinkmann
9247e9081b doc/
2006-09-25  Marcus Brinkmann  <marcus@g10code.de>

        * gpgme.texi (Destroying Data Buffers): Clarify that
        gpgme_data_release_and_get_mem destroys DH unconditionally.

gpgme/
2006-09-25  Marcus Brinkmann  <marcus@g10code.de>

        * data-mem.c (gpgme_data_release_and_get_mem): Release the data
        object properly.
2006-09-25 14:57:00 +00:00
Marcus Brinkmann
4b1393f664 2006-09-22 Marcus Brinkmann <marcus@g10code.de>
* keylist.c (keylist_colon_handler): Move debug output after
	initialising KEY.
2006-09-22 12:29:36 +00:00
Marcus Brinkmann
9e09d93de8 assuan/
Update to current version.

2006-09-19  Marcus Brinkmann  <marcus@g10code.de>

	* configure.ac: Turn stpcpy into a replacement function.
	Check for unistd.h and add setenv as replacement function.

gpgme/
2006-09-19  Marcus Brinkmann  <marcus@g10code.de>

	* setenv.c: New file.
2006-09-19 14:01:54 +00:00
Marcus Brinkmann
426fd0cc08 2006-07-29 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Check for network libraries and set NETLIBS.

gpgme/
2006-07-29  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme-config.in (Options): Add NETLIBS.
	* Makefile.am (libgpgme_la_LIBADD, libgpgme_pthread_la_LIBADD,
	libgpgme_pth_la_LIBADD, libgpgme_glib_la_LIBADD): Add NETLIBS.
2006-07-29 14:40:16 +00:00
Marcus Brinkmann
f3285b5609 2006-07-29 Marcus Brinkmann <marcus@g10code.de>
* rungpg.c (read_status): Fix comparison disguising as an
	assignment.
2006-07-29 13:42:10 +00:00
Marcus Brinkmann
fba48de1ee doc/
2005-03-24  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.texi (Library Version Check): Make example code compatible
	to W32 systems.

gpgme/
2005-03-24  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.c (gpgme_set_locale): Remove conditional on
	HAVE_W32_SYSTEM, and just check for LC_MESSAGES.
2006-07-16 13:36:04 +00:00
Marcus Brinkmann
6bde056355 2006-07-16 Marcus Brinkmann <marcus@g10code.de>
* rungpg.c (read_status): Strip potential carriage return.
	* genkey.c (get_key_parameter): Skip potential carriage return.
	* version.c (_gpgme_get_program_version): Strip potential carriage
	return.
2006-07-16 13:27:08 +00:00
Marcus Brinkmann
c7762497fe 2006-07-16 Marcus Brinkmann <marcus@g10code.de>
* data.c (gpgme_data_set_file_name): Allow to clear the file name
	by passing NULL.
2006-07-16 13:25:19 +00:00
Marcus Brinkmann
fca694b372 2006-06-22 Marcus Brinkmann <marcus@g10code.de>
* keylist.c (gpgme_get_key): Also clone the engine info.
2006-06-22 17:20:47 +00:00
Marcus Brinkmann
b3755b31b1 2006-03-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme-config.in (cflags_pth): Revert accidential removal of
	pthread support with last change.
2006-03-06 10:33:57 +00:00
Marcus Brinkmann
a30bcb457c 2006-02-28 Marcus Brinkmann <marcus@g10code.de>
* w32-glib-io.c (O_BINARY) [!O_BINARY]: New macro.
	(_gpgme_io_pipe): Open pipes in binary mode.
2006-02-28 16:54:59 +00:00