; $Id: ChangeLog,v 1.45 2003/08/03 00:03:44 cwilson Exp $

2003-08-02  Charles Wilson  <cwilson@ece.gatech.edu>

	tag and release v2_01

	* Makefile: bump version number.  Enable 
	building as a DLL.  Link ipc-daemon2 dynamically.
	* README: update

2003-07-12  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: forgot to rename the daemon

2003-07-12  Charles Wilson  <cwilson@ece.gatech.edu>

	tag and release v2_00

	* ipc-daemon.c (work_main): fix uninitialized
	pointer use.
	* BRANCHES: add v2_00

2003-07-12  Charles Wilson  <cwilson@ece.gatech.edu>

	* build.sh: remove
	* NEWS: update
	* TODO: update

2003-07-12  Joe Buehler  <jbuehler@hekimian.com>

	* ipc-daemon.c (work_main): make semaphores persistent

2003-07-12  Michael Haubenwallner  <michael.haubenwallner@salomon.at>

SHM-patch: fork, handling in ipc-daemon
http://cygwin.com/ml/cygwin/2002-01/msg01148.html

	* ipc-daemon.c (destroy_map): new function
	(create_map): new function
	(work_main): reorganize for readability, and to fix
	3 bugs: #1. don't munmap/close a map/file of another 
	process. #2. do the munmap/close only when an attached
	process dies without detaching. #3. DO remove shm when
	when destroy-flag set by one process, and second process
	detach results in shm_nattach=0.  Finally, after destroying
	a shm, remove the memmap in /tmp.  Also, when exiting,
	remove the /tmp/MultiFileXXX files.

	* shm.c (shmat_atfork_prepare): new function
	(shmat_atfork_child): new function. Implements fork handling.
	(shmat): if mmap() fails, return an error and do not attach.

	* sem.c (semctl): fix SETALL command - it now sets, not
	increments, the seval for ALL semaphores, not just semnum.
	Implement GETALL command.

2003-07-12  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: bump version number; install BRANCHES file
	* README: update

2003-06-13  Charles Wilson  <cwilson@ece.gatech.edu>

	* ipcs.c: remove
	* ipcrm.c: remove
	* ipck: remove
	* Makefile: remove ipcs, ipcrm, ipck from the distro 
	(moved to cygutils).
	* contrib/Makefile: remove (now in cygutils)
	* contrib/README: ditto
	* contrib/semtool.c: ditto
	* contrib/shmtool.c: ditto
	* contrib/msgtool.c: ditto

2003-05-20  Charles Wilson  <cwilson@ece.gatech.edu>

	Use 64bit key_t.

	* ftok.c: remove
	* Makefile: remove ftok.c.  Update version.
	* README: update docs
	* USAGE: ditto
	* NEWS: ditto
	* TODO: ditto
	* include/IpcNtLit.h: remove OLDCYGIPC, hardcode
	64bit usage.
	* include/sys/ipc.h: remove OLDCYGIPC, hardcode
	64bit usage.
	* ipc-daemon.c: remove OLDCYGIPC, hardcode 64bit
	usage.

----------------------------------------------------

	Release version 1.14

2003-05-07  Jason Tishler  <jason@tishler.net>
            Igor Pechtchanski  <pechtcha@cs.nyu.edu>

	* include/IpcNtLit.h (CYGWIN_IPCNT_SEMCTL_BASE): New define.
	(CYGWIN_IPCNT_SEMSEM_BASE): Ditto.
	(CYGWIN_IPCNT_SEMSHM_BASE): Ditto.
	(CYGWIN_IPCNT_SEMMSG_BASE): Ditto.
	(NAMESPACE_PREFIX): Ditto.
	(FULL_NAMESPACE_PATH): New macro.
	(CYGWIN_IPCNT_SEMCTL): Change to use FULL_NAMESPACE_PATH.
	(CYGWIN_IPCNT_SEMSEM): Ditto.
	(CYGWIN_IPCNT_SEMSHM): Ditto.
	(CYGWIN_IPCNT_SEMMSG): Ditto.

2002-11-13  Charles Wilson  <cwilson@ece.gatech.edu>

	* README: fix some mistakes
	* ipc-daemon.c (install_reg_entries): change signature
	to separate the verboseness level to use for the current
	executation, and the verboseness level to store in the 
	registry for future service executations

2002-11-13  Przemyslaw Sztoch  <psztoch@finn.pl>

	* ipc-daemon.c (install_as_service): quote-protect
	program path, so that ipc-daemon.exe can live in 
	Program Files/.
	
----------------------------------------------------

	Release version 1.13

2002-11-13  Jason Tishler  <jason@tishler.net>

	* msg.c (findkey): Return ENOSYS instead of EACCES if ipc-daemon is
	not running.
	(msgsnd): Ditto.
	(msgrcv): Ditto.
	(newque): Ditto.
	(msgget): Ditto.
	(msgctl): Ditto.
	* sem.c (semget): Ditto:
	(do_semop): Ditto.
	(semctl): Ditto.
	(semop): Ditto.
	* shm.c (shmget): Ditto:
	(shmctl): Ditto.
	(shmat): Ditto.
	(shmdt): Ditto.

2002-11-12  Charles Wilson  <cwilson@ece.gatech.edu>

	* build.sh: new file

2002-11-12  Charles Wilson  <cwilson@ece.gatech.edu>

	revert ipc-daemon2 rename...but predicate on #define
	OLDCYGIPC.

	* Makefile: lots of changes here
	* ftok.c: include both versions, conditionalized
	on OLDCYGIPC. include ipc.h to get the value.
	* ipc-daemon.c: conditionalize string literals on 
	OLDCYGIPC.  Use those #defined string literals 
	throughout.
	(getVersion): use math functions to round; casting
	doesn't work reliably.
	* ipctest.c: cast ftok return value to long long
	* reverse.c: add missing include
	* version.c: use math functions to round; casting
	doesn't work reliably
	* include/IpcNtLit.h: conditionalize string literals
	on OLDCYGIPC.  Include ipc.h to get the value.
	* include/sys/ipc.h: conditionalize value of IPC_PRIVATE
	on OLDCYGIPC.  #define OLDCYGIPC.
	* NEWS: update
	* README: update
	* USAGE: update
	* TODO: add a few notes for self.

2002-06-26  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: update version to 1.12 and release
	* NEWS: update
	* README: update
	* USAGE: update

2002-06-08  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: add debugging information to the build, and
	insure that ipc-daemon is linked statically to libpopt.
	* ipc-daemon.c: Harmonize the usage of --quiet and --debug.
	Use a single variable to represent the verboseness of
	output: 1=normal, 0=quiet, 2=debug.  Adjust the popt 
	tables to suit, and create aliases to match the old way.
	Also, missed a few "ipc-daemon" -> "ipc-daemon2" string
	changes in the last commit.
	(printBottomDescription): describe the new option aliases
	* TODO: update

2002-06-07  Charles Wilson  <cwilson@ece.gatech.edu>

	Adapt to the new definition in newlib for key_t 
	of 64 bits (long long).  This took effect in cygwin-1.3.11.

	* Makefile: changes for VPATH building.  daemon renamed
	to ipc-daemon2.exe.
	* ftok.c: copy cygwin's 64bit version of ftok from ipc.cc
	* include/sys/ipc.h: change IPC_PRIVATE to match cygwin's ftok.
	Match signature on new ftok.
	* include/IpcNtLit.h: change the ID strings and filenames 
	so they don't conflict with the old ipc-daemon.
	* ipctest.c: change printf spec to match new key_t type.
	* README: update docs

2001-Nov-26  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: update version to 1.11
	* ipcrm.c: add definition of 'union semun'
	* ipcs.c: add definition of 'union semun'
	* sem.c: add definition of 'union semun'.  Change
	signature of semctl to make fourth argument optional.
	* contrib/semtool.c: add definition of 'union semun'
	* include/sys/sem.h: remove definition of 'union semun'.
	Change signtaure of semctl to make fourth argument
	optional.
	* contrib/semtool.c: convert to unix line endings
	* contrib/msgtool.c: convert to unix line endings
	* contrib/shmtool.c: convert to unix line endings

2001-Sep-18  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: update version to 1.10

2001-Sep-18  Charles Wilson  <cwilson@ece.gatech.edu>

	* README: minor updates

2001-Sep-18  Charles Wilson  <cwilson@ece.gatech.edu>

	* include/sys/msg.h: include ipc.h
	* include/sys/sem.h: include ipc.h
	* include/sys/shm.h: include ipc.h

2001-Sep-01  Ralf Habacker  <ralf.habacker@freenet.de>

	* include/sys/ipc.h: add guard for C++
	* include/sys/ipctrace.h: add guard for C++
	* include/sys/msg.h: add guard for C++
	* include/sys/sem.h: add guard for C++
	* include/sys/shm.h: add guard for C++

2000-Feb-16  Charles Wilson  <cwilson@ece.gatech.edu>

	* include/sys/ipc.h: remove redundant definition
	* NEWS: update for current release

2000-Feb-16  Charles Wilson  <cwilson@ece.gatech.edu>

	* ipc-daemon (main): add explanatory description
	to '--service' option
	* USAGE: warn against using --service directly
	* README: document CLI rather than registry for
	'--install-as-service' variations
	* TODO: add --debug/--quiet item.

2000-Feb-15  Pete Forman  <gsez020@kryten.bedform.waii.com>

	* include/sys/ipc.h: remove definition of CURRENT_TIME
	* include/IpcNtLit.h: add definition of CURRENT_TIME
	* Makefile: set INSTALL=install, not /usr/bin/install
	for compatibility with B20.1

2000-Feb-15:  Charles Wilson  <cwilson@ece.gatech.edu>

	* ipc-daemon.c (log_message): fix stupid typo
	* ipc-deamon.c (install_reg_entries): modify for our
	purposes
	* ipc-daemon.c (get_reg_entries): ditto
	* ipc-daemon.c (service_handler): call get_reg_entries()
	* ipc-daemon.c (install_as_service): call install_reg_entries()
	* README: update documenation

2000-Feb-15:  Corinna Vinschen <corinna@vinschen.de>

	* ipc-daemon.c (install_reg_entries): new function
	cribbed from inetd.c
	* ipc-daemon.c (get_reg_entries): ditto

2000-Feb-14:  Charles Wilson  <cwilson@ece.gatech.edu>

	* ipc-daemon.c (main): add `--tight-security' option
	which forces reversion to old behavior (e.g. use NULL
	instead of the security descriptor produced by get_null_sa.
	* ipc-daemon.c (work_main): enforce --tight-security
	when specified
	* README: update documentation to reflect the above 
	change

2000-Feb-11:  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: put -mwindows back in the build
	rule for ipc-daemon (not everybody is running
	WinNT/2K -- reverses Feb-10 change below.
	* README: update documenation to reflect this
	change, and provide the `2>&1 | cat' workaround.
	* USAGE: ditto

2000-Feb-11:  Charles Wilson  <cwilson@ece.gatech.edu>

	* ipc-daemon.c (work_main): fixed the wierd 
	"system error 1067 has occurred" error message
	that happens when doing a "net stop ipc-daemon"
	or when stopping the daemon via services control
	panel.  (eg. return; rather than exit;)
	* TODO: update documentation to reflect this fix.

2000-Feb-11:  Charles Wilson  <cwilson@ece.gatech.edu>

	* ipc-daemon.c (work_main): call get_null_sa, and
	use it in all CreateSemaphore and CreateEvent calls. 
	* Makefile: install TODO with other docs
	* README: update documentation to reflect these
	changes.
	* TODO: update documentation to reflect these
	changes.

2000-Feb-11:  Corinna Vinschen  <corinna@vinschen.de>

	* ipc-daemon.c (get_null_sa): new function to create
	`wide open' security descriptor

2000-Feb-10:  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: add '-mwin32' flag so that #include<windows.h>
	works properly with gcc-2.95.2-7 and up.  Also, don't
	build ipc-daemon with -mwindows; no longer necessary
	since we're running as a service and Windows will 
	hide the console for us.
	* USAGE: update documentation
	* README: update documentation
	* ipc-daemon.c (log_message): real function, not macro
	* ipc-daemon.c (libcygipc_err_handler): new
	* ipc-daemon.c (throughout): call log_message()
	instead of syslog() or fprintf() -- *except*
	the printf's concerning help messages and other
	'interactive-only' sections.
	* ipc-daemon.c (main): add '--debug' option, use
	it to set debug level in library; also, tell
	library to use our libcygipc_err_handler() function
	for its error/trace messages.
	* ipc-daemon.c (main): remove prohibition against
	-DTRACE and --service.
	* ipctest.c (libcygipc_err_handler): new function
	* ipctest.c (main): tell library to use our
	libcygipc_err_handler() function for its error/trace
	messages.
	* msg.c: add extern declaration for err_handler 
	function pointer. Include <syslog.h>
	* msg.c (sem_deconnect): call err_handler() instead
	of printf().
	* sem.c: add extern declaration for err_handler 
	function pointer. Include <syslog.h>
	* sem.c (sem_deconnect): call err_handler() instead
	of printf().
	* sem.c (FCreateSem): call err_handler() instead of 
	printf().
	* shm.c: add extern declaration for err_handler 
	function pointer. Include <syslog.h>
	* shm.c (sem_deconnect): call err_handler() instead
	of printf().
	* shm.c (killseg): call err_handler() instead of printf().
	* strace.c: include <sys/ipctrace.h> and <syslog.h>
	* strace.c (system_printf): removed
	* strace.c (default_err_handler): new function
	* strace.c (err_handler): new variable (function pointer,
	initialized to default_err_handler().
	* strace.c (cygipc_set_err_handler): new function
	* strace.c (cygipc_get_err_handler): new function
	* strace.c (debug): new variable, initialized to TRUE 
	if -DTRACE, FALSE otherwise.  Value can be overridden
	or queried by next two functions...
	* strace.c (cygipc_set_debug): new function
	* strace.c (cygipc_get_debug): new function
	* version.c: add extern declaration for err_handler 
	function pointer. Include <syslog.h> and <sys/ipctrace.h>
	* version.c (FVersionInfo): call err_handler() instead
	of printf().
	* include/sys/ipctrace.h: change guard macro from _STRACE_H
	to _IPCTRACE_H.  add declarations for the new functions and
	typedef err_handlerP.
	* include/sys/ipctrace.h (debug_printf): call err_handler()
	instead of system_printf().

2000-Feb-09  Charles Wilson  <cwilson@ece.gatech.edu>

	* strace.c (cygipc_tracing_enabled): fix stupid
	typo.

2000-Feb-08  Charles Wilson  <cwilson@ece.gatech.edu>

	* include/sys/ipc.h: add cygipc_tracing_enabled()
	function so applications can test whether
	library was compiled with -DTRACE.
	* strace.c: add cygipc_tracing_enabled()
        * ipc-daemon.c (main): add popt-based
        option handling
	* ipc-daemon.c (printTopDescription, getVersion,
        usage, help, version, license): new functions
	for popt-based option handling.  NOTE that ipc-daemon
	does NOT use the version.c FVersionInfo() function
	but DOES use the same algorithm for computing version.
        * ipc-daemon.c (log_message): macro added
	* ipc-daemon.c (printf): macro removed
	* ipc-daemon.c (work_main): change calls to
	printf(macro) to call log_message(macro).
	Also changed a few syslog() calls to log_message()

2000-Feb-08  Fred Yankowski  <fred@ontosys.com>

	* ipc-daemon.c: changes to support operation
	as a service (without using srvany.exe) taken
	in large part from Corinna's inetd.exe mods.
	* ipc-daemon.c (work_main): most of old
	main() moved here. (service changes)
	* ipc-daemon.c (main): mostly new code
	for handling new options.
	* ipc-daemon.c (service_handler, service_main,
	install_as_service, remove_as_service): new

2000-Feb-08  Yutaka tanida  <yutaka@hi-net.zaq.ne.jp>

	* shm.c (shmdt): fix always fail
	* sem.c (semop): can't stop by signal of cygwin

RELEASE 1.08 -----------------------------------------

2000-Jan-09  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: bump version number to 1.08

2000-Jan-09  Malcolm Blue  <email withheld>

	* msg.c (msgsnd): Return EINVAL if msg type
	< 0.
	* ipctest.c (FSyntaxe): change command line
	options G-m and G-k, add new options G-f and
	G-v.
	* ipctest.c (main): add more tests for 
	creating and reporting keyed queues.
	* ipctest.c (main): fix niggle in msg queue
	handling differences between root and normal
	users

2000-Jan-07  Charles Wilson  <cwilson@ece.gatech.edu>

	* msg.c (msgrcv): Add comment about msg type
	< 0, but don't remove code.
	* docs/*.html: added IPC documentation from
	the Linux Documentation Project
	* docs/*.gif: ditto
	* contrib/README: notes on newly contributed
	test programs
	* contrib/Makefile: makefile for semtool,
	shmtool, and msgtool
	* semtool.c: Tool for playing with semaphores,
	taken from LDP documentation
	* shmtool.c: Tool for playing with shared memory,
	taken from LDP documentation
	* msgtool.c: Tool for playing with msg queues,
	taken from LDP documentation

2000-Jan-07  Charles Wilson  <cwilson@ece.gatech.edu>

	* Makefile: don't install private headers

2000-Jan-07  Malcolm Blue  <email withheld>

	* include/sys/msg.h: change MSGMNI to 25
	* include/sys/msg.h: change MSGMAX to 1024
	* include/sys/msg.h (struct msg): add 
	char data[MSGMAX] field. 
	* include/sys/msg.h (struct msqid): remove
	char data[MSGMAXMESS][MSGMAX] field. 

	* msg.c (findkey): Add connect() call, call
	CYGWIN_IPCNT_RETURN_DECONNECT instead of
	CYGWIN_IPCNT_RETURN.
	* msg.c (msgsnd): use revised data field in
	msg struct
	* msg.c (msgrcv): ditto
	* msg.c (msgget): Add connect() call, call
	CYGWIN_IPCNT_RETURN_DECONNECT instead of
	CYGWIN_IPCNT_RETURN.

	* ipc-daemon.c (msg_init): use revised
	data field in struct msg.

	* ipctest.c (main): add tests for creating and
	reporting keyed queues based on msgget.
	* ipctest.c (FSyntaxe): describe new command line
	options G-m and G-k.

RELEASE 1.07 ---------------------------------------------
