2001-05-31  Richard Braakman  <dark@wapit.com>

	* Making release 1.1.5.

2001-05-28  Uoti Urpala  <uau@wapit.com>

	* gw/urltrans.c: Fixed handling of unrecognized %-escapes in
	sms-service URLs (for example, "%x" was supposed to stay
	unchanged, became "%%" instead).

2001-05-27  Richard Braakman  <dark@wapit.com>

	* doc/userguide/userguide.xml: Added big table of smsc_* features,
	to get an overview of which smsc driver supports what.  It's still
	mostly empty.

2001-05-26  Richard Braakman  <dark@wapit.com>

	* gw/urltrans.c: Fixed bug in find_default_translation() that would
	make the smsbox panic if there was no default.

2001-05-24  Paul Keogh <paul.keogh@anam.com>

	* gw/bb_http.c, gw/bb_boxc.c, gw/bb_smscconn.c, bearerbox.c: Added
	support for the cgi-bin/status.xml HTTP status command. Status is
	returned as a well-formed XML document.

2001-05-22  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c: Fixed two bugs with redirects. One happened when
	the redirect URL was recognized as unsupported/invalid
	(f0o://bar), the other when Kannel didn't get a proper HTTP reply
	from the server it was redirected to.

2001-05-18  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_at.c: Initialize some local variables to shut off compiler
	warnings and (possibly) fix bugs.

2001-05-17  Uoti Urpala  <uau@wapit.com>

	* gw/urltrans.c: Added a new sms-service escape, %i, that adds the
	smsc-id of the message.

	* doc/userguide/userguide.xml: Documented above change.

2001-05-17  Richard Braakman  <dark@wapit.com>

	* gwlib/thread.h: Wrap gw_claim_area() around mutex_create(),
	so that the user of the mutex shows up in the report of leaked
	or damaged memory areas.

	* checks/check_fakewap.sh, checks/check_http.sh: Use port 8040
	instead of 8080, it's more likely to be free.

2001-06-17  Jarkko Kovala  <jarkko.kovala@iki.fi>

	* doc/userguide/userguide.xml: Documentation for the
	ssl-certkey-file variable.

2001-05-16  Richard Braakman  <dark@wapit.com>

	* gw/smsc.c, gw/smsc_p.h, gw/smsc_cimd2.c, gwlib/cfg.def:
        Added configuration variable "sender-prefix" for CIMD2.

        * doc/userguide/userguide.xml: Documented new variable.

2001-05-16  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smscconn.c, gw/bb_boxc.c: now that we have octstr_format, 
	fixed buffer overflow problems pointed out by Alexei Pashkovsky

2001-05-16  Uoti Urpala  <uau@wapit.com>

	* gw/bb_boxc.c: In boxc_sender(), flush outgoing data before
	doing list_consume()s than can block indefinitely.

2001-05-14  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_smpp.c: Made system-id variable obsolete (i.e., if used,
	the user is warned and told to use smsc-username instead). Things
	should still work, and this allows us to remove the variable in a
	future version.
	
	* */*.conf: Renamed system-id to smsc-username in sample config
	files.
	
	* doc/userguide/userguide.xml: Updated to correspond to this.

2001-05-14  Lars Wirzenius  <liw@iki.fi>

	* test/fakewap.c: Applied (after two months of waiting!) Neil
	Hunter's patch for making fakewap more suitable for benchmarking
	WAP gateways.

2001-05-14  Lars Wirzenius  <liw@iki.fi>

	* benchmarks/bench_sms.conf: Add smsc-username, which is now
	used instead of system-id.
	
	* checks/check_list.c: #undef strcmp so that stupid glibc bug
	won't cause half a dozen of warnings for a single call.

2001-05-14  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gw/smsbox.c: Wrapped the ssl_certkey_file declaration in 
	ifdefs, like the code that uses it so that we don't have gcc
	complaining about unused variables.

2001-05-14  Nick Clarey  <nclarey@3glab.com>

	* gw/smsc_at.c: 7-bit messages plus UDH now encoded correctly. 
	Thanks to Paul Keogh for the patch, as well as Richard Braakman for
	supervising the change to the UDL calculation code.

2001-05-11  Uoti Urpala  <uau@wapit.com>

	* gw/urltrans.c: accept-x-kannel-headers and assume-plain-text
	were set incorrectly.

2001-05-09  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_emi2.c: Fixed formatting of a message field (%04d vs
	%4d). Spotted by Andreas Fink.

	* gw/smsbox.c: Fixed a nasty typo in the previous change.

2001-05-09  Uoti Urpala  <uau@wapit.com>

	* gw/smsbox.c: Return meaningful HTTP status codes when replying
	to requests to sendsms-port.

2001-05-08  Uoti Urpala  <uau@wapit.com>

	* gwlib/conn.c: Added missing unlock_out(conn) to conn_flush().
	Found by Michael Mulcahy. Since conn_flush() is currently unused
	this didn't cause any Kannel bugs.

2001-05-07  Jarkko Kovala <jarkko.kovala@iki.fi>
 
	* config.in, config.h.in: Added autoconfiguration for
	libssl and a --disable-ssl option. Checks for libssl
	libraries and compiles it in if found and not disabled.
	Also checks if the OpenSSL libraries are multithread-
	enabled.
 
	* gw/smsbox.c, gw/smskannel.conf, gwlib/cfg.def: Added 
	configuration of a global SSL certificate and key file 
	with variable 'ssl-certkey-file'.
 
	* gwlib/conn.[ch]: Added support for client-side thread-safe
	use of SSL; new interface conn_open_ssl() similar to 
	conn_open_tcp(). Also initialization functions for some
	stuff needed for SSL and interfaces to use global certificates
	and to get certificates from remote hosts.

	* gwlib/http.[ch]: Changed the http_start_request interface
	to accept variable certkeyfile for call-specific certificate &
	private key files. Changed to initialize the SSL stuff from
	conn.c at startup.
 
	* gw/smsbox.c gw/smsc_http.c, gw/wap-appl.c, test/test_http.c,
	gwlib/xmlrpc.c: Changed calls to http_start_request to use the
	new interface.

2001-05-07  Richard Braakman  <dark@wapit.com>

	* Making release 1.1.4.

2001-05-07  Richard Braakman  <dark@wapit.com>

	* gwlib/list.h: list_len(NULL) returns 0.  This has been true
	for some time now.  Make it part of the documented interface.

2001-05-07  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.[ch]: Added octstr_dump_short() for dumping octstrs
	that are expected to be short printable strings.  The output is
	much shorter for such strings, but the function can still handle
	any kind of octstr.

	* gwlib/smpp_pdu.c: Made smpp_pdu_dump() use octstr_dump_short().

2001-05-07  Richard Braakman  <dark@wapit.com>

	* Updated NEWS file.

2001-05-07  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_emi2.c: Changed error handling for (re)opening
	connections, reorganized some code.

2001-05-07  Richard Braakman  <dark@wapit.com>

	* gw/smsc_smpp.c: Use system-type for receiver as well as transmitter.

2001-05-06  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Fix edge cases in octstr_get_bits and
	octstr_set_bits.

2001-05-04  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: Made packet_encode_message() cope if the
        sender field is not set.

2001-05-04  Richard Braakman  <dark@wapit.com>

	* configure.in, configure: Made libxml version check require
	2.2.5 again, and added some output about the check.

2001-05-04  Aarno Syvnen <syvanen@wapit.com>

	* gw/wap_push_pap_compiler.c: Fixed an uninitialised variable

2001-05-03  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (parse_text): A bug fix: added a check that around 
	text emphasis the white space is not removed.

2001-05-03  Lars Wirzenius  <liw@iki.fi>

	* Makefile.in, configure.in: applied patch from Craig Emery to
	slightly improve (and simplify!) building and configuring.

2001-05-03  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c: Log username (at info level) whenever someone
	uses the sendsms service. Based on request from Johan du Buson.
	
	* gw/smsc_smpp.c: The transmitter thread is woken up as soon as
	there is something to send. Previously it woke up only when it
	was time to send the next enquire_link PDU. This was slighly slow.
	
	* test/drive_smpp.c: Deal with enquire_link PDUs.

2001-05-03  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_smpp.c: Implemented system-type and address-range
	variables from the config file. In the I/O thread, timeouts
	are calculated to the next time when enquire_link needs to be
	sent, instead of using 1.0 seconds always. Configuration file
	is checked that it specifies smsc-username and smsc-password.
	
	* test/drive_smpp.conf: Added missing smsc-username and
	smsc-password.

2001-05-03  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_smpp.c: Partly rewritten to use a simpler thread
	structure and to deal with I/O errors (such as broken
	connections). Most of the code is the same, but it has been
	rearranged.
	
	* test/test_smsc.c, gwlib/date.[ch]: Moved function
	date_universal_now from test_smsc.c to date.c.
	
2001-05-03  Aarno Syvnen <syvanen@wapit.com>

	* gw/wap_push_pap_compiler.[ch]: A compiler for compiling pap control
	messages to wap events.

	* gw/wap_push_ppg.c: Do not panic, when pi message does not not have
	any headers (a warning instead). Corrected a misspelling. Use prefix
	PAP in all enumerations defined by pap protocol.

	* gw/wap_push_ppg.h: Another misspelling corrected. Hnadle default 
	values of pap attributes (by reordering, so that the numeric equi-
	valent of an attribute has value 0).

	* gw/wap_push_pap.c: A new test version of pap module.

	*wap/wap_events.def: Corrected a typo.

2001-05-03  Nick Clarey  <nclarey@3glab.com>

	* gw/smsc_at.c: Applied patch from Alex Judd (ajudd@snaz.com),
	adding an automatic retry to message sending should it fail.

2001-05-02  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: Fix encoding of text messages that have UDH.
	(It got the length wrong due to a _probable_ misreading of the
	spec.  If SMSCs implement what we thought it had said, then we
        have a problem.)

2001-05-02  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Made octstr_get_char() not crash if pos < 0.
	It now returns -1 instead.

2001-05-02  Richard Braakman  <dark@wapit.com>

	* gw/wap_push_ppg.h, wap_push_pap.c: Renamed TRUE and FALSE
	to PAP_TRUE and PAP_FALSE.  (These are enumerated protocol
	values.)  Needed for portability to systems that predefine
	TRUE and FALSE macros.

2001-04-30  Richard Braakman  <dark@wapit.com>

	* gw/smsc_{at,cimd2,ois,smpp}.c, gw/sms.h, gw/smpp_pdu.h:
        Standardized on two data coding scheme values, called DCS_GSM_TEXT
        and DCS_OCTET_DATA.  Not all protocols can use these, but at least
	the ones that do will all use the same values.  Both have now been
        chosen to set only the alphabet, and leave message class alone.

2001-04-29  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* configure.in,configure: Allow libxml versions between
	2.2.10 and 2.2.19.

2001-04-26  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc.c, gw/smsc_p.h, gw/smsc_smpp.c, gw/smscconn.c,
	gw/smscconn_p.h: Converted SMPP driver to use the SMSCConn
	interface. This is needed to improve reliablity of the driver,
	which will happen next.

2001-04-26  Richard Braakman  <dark@wapit.com>

        * gw/smsc_cimd2.c: Reopen connection if SMSC does not respond
        to "alive" request.

2001-04-26  Richard Braakman  <dark@wapit.com>

	* gwlib/http.c: Handle 100-Continue responses.

2001-04-26  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: Stopped sending "delivery request" when
        logging in.  It is not needed in the normal configuration, and
        it confuses some SMSCs.  Thanks to Antti Valtokari for tracking
	this down.  (If it _is_ needed in your configuration, then you
        will not get messages that arrived while Kannel wasn't connected.)

	* doc/userguide/userguide.xml: Explain what configuration the
	cimd2 driver expects from the SMSC.
	
2001-04-25  Tuomas Luttinen  <tuo@wapit.com>

	* configure[.in] : Kannel now requires libxml 2.2.5 or newer. Reasons 
	for this are: *encondingAliases functions that were included in 2.2.3
	              *a bug that affects XML attributes in 2.2.3 and 2.2.4

2001-04-25  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_emi2.c, gw/emimsg.c: Changed debugging output, made
	reconnections more robust.

2001-04-25  Richard Braakman  <dark@wapit.com>

	* gw/smsc_at.c: In pdu_encode(), revert to using a Protocol-ID
        of 0 (implicit) rather than 0x1F (which doesn't seem to be
        defined).  This might be the key to the problems people have
        had with this module.  Please let us know.

2001-04-25  Richard Braakman  <dark@wapit.com>

	* doc/TESTCASES: Removed, we have "make check" now.

2001-04-24  Uoti Urpala  <uau@wapit.com>

	* doc/userguide/userguide.xml: Added information about emi2.

2001-04-24  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_smpp.c, test/test_smsc.c: Implemented sending of
	enquire_link packets and handling of their responses. This is
	very simplistic, still: It doesn't check that the responses
	are actually received. That will have to be implemented later.

2001-04-24  Richard Braakman  <dark@wapit.com>

	* gw/smsc_wrapper.c: Produce an info log when a reconnection
	attempt succeeds.

2001-04-23  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.c, test/fakesmsc.c, utils/start-stop-daemon.c,
	wap/wsp_push_client_machine.def, wap/wsp_session.c: Applied
	manually parts of patch send by Dirk-Willem van Gulik as
	improvements for MacOS X. Mainly this included renaming of some
	local variables (uint -> ui), presumably because MacOS X defines
	uint as a macro. Also reformatted fakesmsc and start-stop-daemon
	output and corrected preprocessor syntax.
	
2001-04-23  Richard Braakman  <dark@wapit.com>

	* gwlib/http.[ch]: Added support for HEAD method, supplied
	by Jarkko Kovala.

2001-04-23  Richard Braakman  <dark@wapit.com>

	* gwlib/socket.c: Clear sockaddr_in structure before using it,
	to make FreeBSD happier.

2001-04-21  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_emi2.c: Fixed a stupid bug in the previous fix.

2001-04-20  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_emi2.c: Fixed a bug in SMSC time stamp parsing.

2001-04-19  Richard Braakman  <dark@wapit.com>

	* gw/smsbox.c: Fixed bad assertion in prepend_catenation_udh().

2001-04-18  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c: Made gwthread_join safe.

2001-04-18  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_store.c: updated writing to file a bit. Still problem if
	messages arrive faster than store_cleanup works, needs to modify
	to use hash at some point

	* gw/bb_smscconn.c: changed so that when shutting down, ignores
	messages that cannot be routed. So if you have not enabled
	SMS-store, some messages can be lost.
	
2001-04-18  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: fixed some typos 

2001-04-17  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_emi2.c, gw/emimsg.[ch]: Added support for operation type
	01, other changes to work with different SMSC setups.

2001-04-17  Richard Braakman  <dark@wapit.com>

	* gw/urltrans.c: In strip_keyword(), use the right test for
	end of octstr.  This fixes handling of messages that only
	have the keyword.

2001-04-17  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: When the http module is shut down, set run_status
	to limbo so it can be restarted. Paul Keogh wanted this so that
	(parts of) Kannel can run as a COM object.

2001-04-17  Lars Wirzenius  <liw@iki.fi>

	* doc/CodingStyle: Added a paragraph about CVS tags.

2001-04-16  Richard Braakman  <dark@wapit.com>

	* gw/wap_push_ota.c: Removed <arpa/inet.h> and <netinet/in.h>
	includes.  They are not used by anything and cause portability
	problems.

2001-04-13  Uoti Urpala  <uau@wapit.com>

	* gw/smsbox.c: Bugfix, messages sent with sendsms GET requests
	were always marked as binary (this bug was created when sendsms
	POST was added).

2001-04-12  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_smpp.c: Make it optional to dump or not dump SMPP pdus
	that are received or sent. Not dumping them reduces "make bench"
	log file sizes by about half a gigabyte.

2001-04-12  Kalle Marjola  <rpr@wapit.com>

	* gw/urltrans.c (urltrans_get_pattern): fixed that %s cannot cause
	overflow if there is catch-all argument

2001-04-11  Richard Braakman  <dark@wapit.com>

        * gw/urltrans.c: Slight simplification of strip_keyword().

2001-04-11  Kalle Marjola  <rpr@wapit.com>

	* README: changed smsc interface guidelines to point to
	smscconn_p.h

	* gw/smsc_interface.def: removed as depricated

	* doc/userguide/userguide.xml: fixed typo, it is strip-keyword,
	not split-keyword

	* gw/urltrans.c: modified strip-keyword function

	* gw/bearerbox.c: changed shutdown message a bit when killedby
	signal

2001-04-10  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_store.c: some little fixes, dumps acks to file, too, if
	any in memory

	* gw/bb_boxc.c: added some comments for possible future updates
	
2001-04-10  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_store.c: Bugfix: comprasion was wrong way around...

2001-04-10  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_store.c: Updated to use double-memory buffering and to do
	frequent dumps out of that data. Now it is fast and does not take
	much disk space. Interval is currently fixed (5 secs), and there
	is still no message queue limitations, and sendsms (push9 messages
	are not yet supported. But otherwise it should work.

	* gw/bearerbox.c|h: required little modifications

	* doc/userguide/userguide.xml: added notes of store-file variable
	
2001-04-10  Richard Braakman  <dark@wapit.com>

	* gw/smsbox.c: Add no-cache headers to sendsms replies.

2001-04-05  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c: Fixed a bug in the sending of HTTP replies. It was
	unlikely to be triggered with replies as short as Kannel normally
	uses, though.

	* gwlib/conn.[ch]: The callback function of registered connections
	is called when all queued output is sent. This was required for
	the above fix.

2001-04-04  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: Bugfix. Fixed memory leak in header parsing

2001-04-03  Richard Braakman  <dark@wapit.com>

	* gwlib/fdset.c: When destroying an fdset with active fd's,
        simply ignore those fd's and make it the caller's responsibility
	to deal with them.  This reverses a change from 2000-11-22, which
	was made at the time to fix the http shutdown sequence.  It didn't,
	and now it's in the way of a better solution.

2001-03-30  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c: Enabled keepalive connections again.

2001-03-29  Uoti Urpala  <uau@wapit.com>

	* gw/urltrans.c: Test in find_translation() was the wrong way
	around, 'accepted-smsc' actually worked like denied-smsc. Fixed.
	Also enabled using 'accepted-smsc' in default SMS-service groups.

2001-03-29  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_emi2.c: Added support for the "our-port" parameter.

	* gwlib/conn.[ch]: Added function conn_open_tcp_with_port, which
	allows specifying the local port number.

2001-03-29  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c: Added a test that checks whether connections in
	the connection pool have been closed before trying to reuse them.

2001-03-28  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_emi2.c: Wrote. New implementation of the emi_ip protocol.

	* gw/emimsg.c, gw/emimsg.h: Wrote. Functions for working with EMI
	messages. Used by smsc_emi2.c and testing programs which I didn't
	add to CVS yet.

	* gw/smscconn.c, gw/smscconn_p.h: Modified to recognize the new
	smsc type.

2001-03-28  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: added content-type checking in sendsms POST, and
	set binary of sms.msgdata accordingly (note: UDH+7bit msgdata
	might not work with some SMSC center protocols currently)

2001-03-27 Aarno Syvnen <syvanen@wapit.com>

	* gw/wap_push_ppg.c: Fixed a compiler warning

2001-03-27  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: combatibility breaker: do not allow default sendsms
	user anymore (guess I thought that that has been disabled years
	ago...)

	* gw/smsbox.c: added POST support for send-sms, too. Hopefully
	works. Use is automatic, if request to Kannel is POST, body is
	used as message text, otherwise cgi-args are parsed. Username,
	password, receiver number etc. are taken from X-Kannel headers
	(like X-Kannel-Password) and are documented real soon...  

2001-03-27  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.txt: added new configuration variables,
	but missing X-Kannel header definations. Will add these later.

	* gw/smskannel.conf: changed 'url' to 'get-url' (althought plain
	url still works, for backward compability)

2001-03-27  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: added post-url support for sms-service
	group. Documentation in User's Guide RSN (hopefully)

	* gw/urltrans.c: added that strip-keyword with POST is done here,
	althougt that is ugly (but easier to do that way)
	
2001-03-27  Kalle Marjola  <rpr@wapit.com>

	* gwlib/cfg.h|c: added new function cfg_get_bool, taking
	true/false, on/off, yes/no or 0/1

	* urltrans.c: modified to use new bool type with concatenation,
	omit-empty and some new variables (theoretical compatibility breaker)

	* urltrans.c|h: added new variables for sms-service group:
	catch-all (should work as %a or %r in pattern),
	accept-x-kannel-headers (see below) and some variables for POST
	use

	* smsbox.c: Compatibility breaker: modified to allow from, to and
	UDH field set by SMS service, as X-Kannel- header, if
	accept-x-kannel-headers set for sms-service. The compatibility
	breaker is that X-Kannel-UDH does not work anymore unless
	accept-x-kannel-headers is set

	* smsbox.c: Compatibility breaker: if sms-service HTTP fetch reply
	is of content-type application/octet-stream set flag 8bit on. This
	can be prevented by setting assume-plain-text on for the service.

2001-03-27  Tuomas Luttinen  <tuo@wapit.com>

	* configure.in: Removed the earlier patch, the test was just on the 
	old implementation, I didn't run autoconf...

2001-03-27 Aarno Syvnen <syvanen@wapit.com>

	* gw/wap_push_pap.c|h. Testing  version of the pap module

	* gw/wap_ppg_push_machine.def, gw/wap_ppg_session_machine.def:
	Machines to store push data.

	* gw/wap_push_ppg.c|h: push proxy gateway main module

	* gw/wap_push_ota.c: Lots of bugfixes. Courtesy to Peter Galluc,
	Derry Hamilton and Uoti. (There were other bugs, too.) Trans-
	ferred handling of header X-Wap-Application-Id to module ppg.
        Fixing memory leaks.

	* wap/wap_events.def: push_id removed from Pom-Connect.req.

	* gw/wapbox.c: Initing and shutdown of new modules, include new
	headers.

	* gw/wap-appl.c: Added handling of the event Pom-Connect.req

	* wap/wsp_server_session_states.def: Corrected a typo spotted by
	Aymerick Jehanne.

	* wap/wsp_session.c: Added functions to create events for push 
	abort and confirmation, fixed bugs in functions make_confirmed_push
	pdu and make_push_pdu. Fixed memory leaks.

2001-03-27  Tuomas Luttinen  <tuo@wapit.com>

	* configure.in: Replaced the earlier way to detect xml2-config with 
	patch provided by Craig Emery that is shorter and as effective. Both 
	were tested with different libxml versions, also with both xml-config 
	and xml2-config.

2001-03-27  Richard Braakman  <dark@xs4all.nl>

	* gw/smsbox.c: Fix bad memory management of faked_sender string.

2001-03-26  Richard Braakman  <dark@xs4all.nl>

	* gw/smsbox.c: Converted some char * to Octstr *.

	* gw/smsc_cimd2.c: Changed "const static" to "static const" in
	variable declarations (ansification).

	* utils/run_kannel_box.c: In print_usage(), actually use the
	stream argument instead of always printing to stderr.

2001-03-26  Uoti Urpala  <uau@wapit.com>

	* gw/msg.c: Fixed bug when sizeof(long) != 4, removed unneeded
	code.

2001-03-23  Richard Braakman  <dark@xs4all.nl>

	* gw/smsbox.c: Fix call to alog (urltrans_username returns
	Octstr *, not char *).  Spotted by Paul Keogh and Gildas PERROT.

2001-03-23  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn_p.h: made interface a bit more clarified and
	moved counters to callback

	* gw/bb_smscconn.c: added counter increases

	* gw/smsc_wrapper.c, gw/smsc_fake.c: removed counter increases
	
2001-03-23  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_http.c: various little fixes

2001-03-23  Tuomas Luttinen  <tuo@wapit.com>

	* utils/kannel-stable-rh*.spec (Requires): Now requires libxml2 >= 
	libxml2-2.2.0. 

2001-03-22  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_http.c: put smsc-id to correct place
	
2001-03-22  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_http.c: fixed several memory leaks

2001-03-22  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c: Fixed memory leak.

2001-03-21  Lars Wirzenius  <liw@iki.fi>

	* gwlib/cfg.h: Commented return value policy for octet strings.

2001-03-21  Tuomas Luttinen  <tuo@wapit.com>

	* configure.in, configure: Added the xml2-config that libxml-2.3.* and 
	newer want instead of xml-config. Tested with libxml-2.2.11 and 2.3.4.
	Yet to be tested with both libxml1 and libxml2 installed.

2001-03-21  Kalle Marjola  <rpr@wapit.com>

	* gwlib/xmlrpc.h|c: Updated, still missing many things
	
2001-03-21  Kalle Marjola  <rpr@wapit.com>

	* gwlib/xmlrpc.h|c: Added. Initial code to implement XML-RPC
	specification.

2001-03-21  Lars Wirzenius  <liw@iki.fi>

	* checks/check_http.sh: Kill server via HTTP, instead of via
	a signal. This way, if the server has trouble dying properly,
	it will be quite visible, instead of possibly hidden by signal
	handling.

2001-03-21  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c: Fixed memory leaks, updated keepalive connections
	to work again after Richard's changes (still left them disabled by
	default though).

2001-03-21  Uoti Urpala  <uau@wapit.com>

	* gw/bb_smscconn.c: Fixed incorrect test in sms_router, the
	smsc_id of a discarded message was logged only if it _was_ NULL.

2001-03-20  Richard Braakman  <dark@wapit.com>

	* gwlib/http.c: Server side now accepts POST requests.  This
	involved separating the header and body reading code into a
	section shared by server and client side.

	* Fixed a bug along the way which would cause busy-waiting in the
	client code when waiting for a result to arrive.
	Also made return codes consistent for the state functions, so
	that 0 means completion and 1 means waiting for more input.

2001-03-20  Richard Braakman  <dark@wapit.com>

	* Making release 1.1.3.

2001-03-19  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Fixed a warning.

	* checks/check_compiler.sh: A simple script added that takes a WML 
	source, runs it through the WML compiler and the decompiler and 
	diffes the original file to the output and reports an error if 
	they do differ.

	* test/testcase.wml: A testcase for the check_compiler added.

2001-03-19  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_http.c: Shutdown state was not initialized. Fixed.

2001-03-19  Richard Braakman  <dark@wapit.com>

	* gwlib/http.c: Made parse_http_version() thread-safe.  (There is
	no guarantee that assignment of pointers or longs is atomic.)

2001-03-19  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c: commented gwthread_join_all() away and now all
	checks pass. Have to investigate this more...

2001-03-19  Richard Braakman  <dark@wapit.com>

	* wap/wsp_session.c: Fix TR_Invoke_Cnf case in find_session_machine(),
	spotted by zig cats.

2001-03-19  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: added HTTP SMSC chapter

	* gw/smskannel.conf: added sms-service and send-sms for relay use

	* gw/other_smskannel.conf: Added. For client Kannel in Kannel
	relay tests

	* gw/smsc_http.c: little bugfizes/updates

	* checks/check_httpsmsc_kannel.sh. Added. Note that currently
	there is a BUG in gwlib/http.c and/or gw/smsc_http.c and this
	tests always FAILS as client bearerbox (using other_smskannel.conf)
	never exits (HTTP client side thread does not die?)
	
2001-03-19  Kalle Marjola  <rpr@wapit.com>

	* gw/http.c: Bugfix. Make shutdown work for multiple servers

2001-03-19  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_http.c: Added. New module to handle HTTP based SMS
	Center connections or other gateways (relay gateways). Currently
	only supports 'kannel' as relay gateway

	* gw/smscconn.c, gw/smscconn_p.h: modified to understand new
	SMSCConn type

	* gwlib/cfg.def: accept new configuration variable 'send-url' used
	with smsc_http

2001-03-19  Kalle Marjola  <rpr@wapit.com>

	* gwlib/utils.c|h: added new function connect_denied(..), which is
	like the old is_allowed_ip(..) except that deny-ip is no longer
	used as it is expected to be "*.*.*.*" and no allow-ip means
	localhost. This function will hopefully eventually replace all old
	ip-checkings, to tighten basic security

2001-03-19  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smscconn.c (sms_router): Bugfix. Now hopefully router does
	not get stuck again if the list is successfully emptied

2001-03-16  Kalle Marjola  <rpr@wapit.com>

	* gwlib/http.c: Bugfix: wakeup server when new port added, so that
	it is added to select

2001-03-16  Tuomas Luttinen  <tuo@wapit.com>

	* test/decompile.c (DTDTypeList): Added the URLs for those DTDs whose 
	URL was easily located.

	* test/decompile.c (Read_termstr_rtn): Bug fix: double the dollar 
	signs, since dollar is escaped as $$ in WML.

2001-03-16 Nick Clarey  <nclarey@3glab.com>

	* gw/smsc_at.c: Repaired a bug in at_reopen which would cause 
	failed smsc_at connections to be reopened continuously, and
	repaired a bug in at_close which could possibly cause memory 
	leakage. Also fixed bugs in both which didn't reset the smsc's
	file descriptor correctly in case of failed closes.

2001-03-16  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_definitions.h: The WBXML_CHILD_BIT was changed into 
	WBXML_CONTENT_BIT for clarity.
	
	* gw/wml_compiler.c (only_blanks): A patch provided by Bernard Valton
	that prevents white space counted as element content.
	Also changed the WBXML_CHILD_BIT into WBXML_CONTENT_BIT for clarity.

2001-03-16  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Fixed memory leak of request_headers in request_data.
	Made return_result not destroy the WAP event passed to it (caller
	should do that).  Memory management in this file is still icky.

	* gw/wapbox.c: Always destroy a msg after processing it, this fixes
	a memory leak handling admin messages.

2001-03-16  Kalle Marjola  <rpr@wapit.com>

	* gwlib/octstr.h|c: added %E to octstr_format, which takes an
	Octstr and URL-encodes it into string

	* test/test_octstr_format.c: added test for that format

2001-03-16  Richard Braakman  <dark@wapit.com>

	* When logging errors, do not report errno if it's not relevant.
	Fixed 25 counts of this, leaving 81 valid uses.

	* Updated NEWS file to prepare for 1.1.3.

	* test/test_http_server.c: Run client_thread in a separate thread.
	This makes check_http.sh not fail.  (sigterm was calling
	http_close_all_ports while the main thread itself was in
	port_get_request).

2001-03-15  Uoti Urpala  <uau@wapit.com>

	* test/test_smsc.c: Fixed a memory allocation bug.

2001-03-15  Tuomas Luttinen  <tuo@wapit.com>

	* test/wml_tester.c: I refined the command line arguments a bit. Now 
	the output is either a normal dump, the dump with source or the binary 
	only. The output can be directed into a file that can then contain the
	binary only if that was the selected output.

	* test/decompile.c: Now decompiler accepts input from stdin. Added for 
	piping to make writing tests easier.

2001-03-15  Lars Wirzenius  <liw@iki.fi>

	* Changed the HTTP server side code so that it allows easily
	processing requests to different ports in different ways.
	
	* gwlib/http.[ch]: Renamed http_open_server to http_open_port,
	and http_close_all_servers to http_close_all_ports, since the
	concept of "server" is a bit confusing when used this way. Port
	is clearer.
	
	* gwlib/http.[ch]: Added port argument to http_accept_request
	so that the caller can specify which port she's interested in.
	This then required some changes in the internals of http.c
	because the clients_with_requests list had to be replaced
	with port specific lists, and this required some inter-thread
	communication, which was a bit tricky to get working (and it
	therefore likely to be buggy in non-obvious ways). Also added new
	function, http_close_port, to allow closing only a specific port.

	* gw/bb_http.c, gw/smsbox.c, test/drive_wapbox.c,
	test/test_http_server.c, test/test_smsc.c: Changed calls to http
	code based on interface code.

2001-03-15  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c, gwlib/http.h: Changed http_start_request and
	http_receive_result to identify the request with a void pointer
	from the caller.

	* gw/smsbox.c, gw/wap-appl.c, test/test_http.c: Related changes.

2001-03-13  Lars Wirzenius  <liw@iki.fi>

	* benchmarks/bench_sms.sh: Only plot the "submit" events; in long
	runs, the different graphs were on top of each other anyway.

2001-03-13  Lars Wirzenius  <liw@iki.fi>

    	* Various improvements to "make bench".

	* benchmarks/bench_http.sh, benchmarks/bench_sms.sh,
	benchmarks/run-benchmarks: Implemented --fast option.
	
	* benchmarks/functions.inc: Isolated common script stuff into
	a single file to make maintenance easier and scripts clearer.
	
	* test/test_smsc.c: Measure round trip times for requests and
	replies. Started coding "sustained level" benchmark; not useable
	yet, though.

	* gwlib/http.c: Commented out unused static functions.

2001-03-12  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_fake.c: Added test for errno == EINTR after
	gwthread_pollfd().

2001-03-07  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* mk-solaris-package.sh, prototype.tmpl, prototype: modified
	mk-solaris to create packages with the actual version rather
	than just assume that it is cvs.  Modified prototype to be
	prototype.tmpl and mk-solaris now uses it to generate the
	correct prototype.

2001-03-05  Lars Wirzenius  <liw@iki.fi>

	* benchmarks/bench_http.sh: Removed unnecessary cruft. Set number
	of HTTP requests made to 100 000 instead of 1000.
	
	* benchmarks/bench_http.txt, benchmarks/bench_sms.txt,
	benchmarks/report-begin.txt: Added missing </para>.
	
	* benchmarks/bench_sms.sh: Set number of requests to 100 000
	instead of 1000.
	
	* gwlib/http.c: Disabled re-use of TCP connections for HTTP
	transactions. There is a bug somewhere that makes this crash.
	
	* test/test_http.c: Allow client to queue multiple requests into
	a queue (up to MAX_IN_QUEUE #define in test_http.c), instead of
	doing the next one only after the response to the previous one
	has finished.
	
2001-03-01  Uoti Urpala  <uau@wapit.com>

	* gw/smsbox.c: Added a temporary half-fix for a bug that could
	cause NULL references with sms-service HTTP requests. Has to be
	fixed properly later.

2001-03-01  Lars Wirzenius  <liw@iki.fi>

	* test/test_http.c: Reformatted to follow current coding style.

2001-03-01  Lars Wirzenius  <liw@iki.fi>

	* Implemented the beginnings of a framework for automated
	benchmarks.
	
	* Makefile.in: "make bench" now runs the automated benchmark.
    	"make clean" removes the cruft.
	
	* benchmarks/.cvsignore, benchmarks/bench_http.sh,
	benchmarks/bench_http.txt, benchmarks/bench_sms.sh,
	benchmarks/bench_sms.conf, benchmarks/bench_sms.txt,
	benchmarks/report-begin.txt, benchmarks/report-end.txt,
	benchmarks/run-benchmarks: Wrote.
	
    	* test/test_smsc.c, test/timestamp.c: Wrote.

	* test/test_http_server.c: Added option -l for setting logfile
	name.

2001-03-01  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c, gw/shared.c: Fix, modified so that error in read
	causes connection to be broken, instead of possible trap in
	infinite loop. Pointed out by Paul Keogh. 

2001-03-01  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c: Don't panic or crash if request contains spaces.

2001-02-28  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_udp.c: 'bugfix': modified so that all errors just make
	receiver to continue, instead of exiting loop

2001-02-28  Richard Braakman <dark@wapit.com>

	* gw/smsc_at.c: Made pdu_extract deal with the SMSC address field
	possibly being bad or too short.  Also made hexchar() take an
	int as argument, instead of char (which might be signed).
	toupper() is defined as taking an int, anyway.

2001-02-27  Kalle Marjola  <rpr@wapit.com>

	* gw/drive_smpp.c: modified to accept Msg 'admin', too

	* gw/bb_boxc.c: unused variable removed

2001-02-27  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: Modified to use Conn instead of raw TCP/IP with
	sms|wapbox connections

	* gw/msg[-decl].h: added new message type 'admin' for
	shutdown/suspend use.

	* gw/smsbox.c: modified to die when shutdown command
	received. Needs to implement suspend/shutdown, still

	* gw/wapbox.c: modified to die when shutdown command received and
	to ignore non-wdp messages

	* gwlib/octstr.h|c: removed now non-used octstr_send and
	octstr_recv

2001-02-27  Richard Braakman <dark@wapit.com>

	* Ran spelling check over userguide.xml.

2001-02-26  Richard Braakman <dark@wapit.com>

	* Making release 1.1.2.

2001-02-23  Peter Grnholm  <peter@wapit.com>

        * userguide: Wrote section "Setting up a dial-up line"

2001-02-21  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Suppress server-generated error pages if they
	are in a format (i.e. text/html) that the client does not accept.

2001-02-21  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: When suppressing an HTTP result body because it is
	too long for the client, also adjust the Content-Length header.

2001-02-21  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (set_charset): The function uses now 
	charset_to_utf8 function to convert the WML document into the 
	UTF-8 charset before feeding it to the libxml parser.

	* gwlib/charset.[ch]: Added the functions charset_to_utf8 and 
	charset_from_utf8. These are frontend for the libxml character set
	converion funtions.

2001-02-20  Peter Grnholm  <peter@wapit.com>

	* userguide: Updated section "Installing Kannel from RPM packages"

2001-02-20  Richard Braakman  <dark@wapit.com>

	* userguide: Explained more about syslog-level.

2001-02-16  Richard Braakman  <dark@wapit.com>

	* gw/smsbox.c: Fix a potential buffer overflow in sms_split(),
	by removing the partlist array and using List directly.

	* gw/urltrans.c: Fix memory leak: destroy_onetrans also destroys
	"header" and "footer".

	* gw/urltrans.c: Warn if a service configures prefix or suffix
	when they will not be used.

	* userguide: Describe when prefix and suffix are used.

	* userguide: Improve description of "omit-empty".  (Suggested
	by Gildas Perrot.)

2001-02-16  Richard Braakman  <dark@wapit.com>

	* gw/bb_smscconn.c, gw/urltrans.c: Deal with cfg_get_multi_group()
	possibly being NULL.

	* gw/bb_smscconn_p.h: Add #include "smscconn.h" so that it doesn't
	depend on the caller having included that file already.

2001-02-15  Lars Wirzenius  <liw@iki.fi>

	* gw/smpp_pdu.def, gw/smsc_smpp.c: Implemented the enquire_link
	PDU and the corresponding enquire_link_resp PDU. This should keep
	Kannel connected to an SMPP SMS center even when the connection
	is otherwise idle.
	
	* test/drive_smpp.c: Cleaned up shutdown.

2001-02-15  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (set_charset): bug reported by Aymerick Jhanne
	fixed so no more 2*encoding in the XML-header.

2001-02-15  Richard Braakman  <dark@wapit.com>

	* gw/smsc_at.c: Corrected timestamp calculation.  mktime()
	uses local time, and it got a GMT time.  Converted to use
	date_convert_universal() from gwlib/date.c instead.
	(There is no function in the C library for this task.)
	It probably still doesn't work for negative timezones,
	I'll have to check the specs for that.

	* gwlib/date.[ch]: Make date_convert_universal() a public
	function.

2001-02-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.[ch]: Changed the octstr_create_urlcoded to be
	similar in name and usage to octstr_url_decode.
	
	* gw/bb_store.c, gw/smsc_fake.c, gw/urltrans.c: Changed the
	places where the function is called.

2001-02-14  Lars Wirzenius  <liw@iki.fi>

	* gw/urltrans.c, doc/userguide/userguide.xml: Restored the
	meaning of %a in sms-service, implemented and documented %b to
	support binary data.

2001-02-14  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c, doc/userguide/userguide.xml: Implemented
	X-Kannel-UDH header in responses to keyword fetches.

2001-02-13  Uoti Urpala  <uau@wapit.com>

	* gw/smsc.c: Fixed octstr_get_cstr(NULL) when username, password
	or allow_ip wasn't specified in emi_ip smsc group. This bug
	probably appeared when smsc.c was converted to use cfg.c.

2001-02-13  Richard Braakman  <dark@wapit.com>

	* gw/wml_definitions.h: Applied patch from Aymerick Jhanne
	to correct encodings for "ordered true" and "ordered false".

2001-02-12  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smscconn.c, gw/bb_boxc.c, gw/bearerbox.h: Modified so that
	SMS messages from smsbox are directly put into corresponding SMS
	centers, or if not able, either rejected (i.e. discarded right
	now) or put to outgoing_sms queue which acts like delayed list

	* gw/bb_smscconn_cb.h: added new callback, smscconn_connected,
	which is called when status changes to ACTIVE, and makes bearerbox
	trying to empty outgoing_sms queue

	* gw/smsc_wrapper.c, gw/smsc_fake.c: modified to call that new
	callback

2001-02-12  Lars Wirzenius  <liw@iki.fi>

	* Makefile.in: Moved -I. to before other -I options (before
	@CFLAGS@) so that Kannel's config.h is found before any config.h
	that might be a system header file.

2001-02-12  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_store.c: Ooops, forgot to add earlier. Anyway, now uses
	straight octstr handling instead of using octstr_split and thus
	does not need so much memory while unpacking the store-file

2001-02-12  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: removed heartbeat message kludge as it caused
	other problems, had to think this more...

	* gw/bb_http.c: removed debug information of HTTP query result
	because it caused ankward output 

	* gw/bb_store.c: Added. Handles SMS store 

	* gw/msg-decl.h, gw/msg.h: added new 'ack' message type and new 
	fields to sms. Name of these can change later.

	* gw/bb_boxc.c, gw/bb_smscconn.c, gw/bearerbox.c, gw/smsbox.c: 
	implemented first version of SMS storing/retrieval system. 
	Consumes lots of memory when starting up, so does not work
	well with checking malloc, will fix that today.

	* gw/*kannel.conf: added (commented-out) store-file row

2001-02-10  Uoti Urpala  <uau@wapit.com>

	* gw/smsbox.c: Fixed bugs in smsbox_req_sendota(), added 'from'
	CGI variable to sendota requests.

	* gwlib/cfg.def: Added missing 'speed' variable to otaconfig
	group.

	* doc/userguide/userguide.xml: Documented the added 'from'
	variable. 'speed' was also missing from the documentation.

	* gw/smsc_fake.c: Implemented SMSCCONN_FAILED_TEMPORARILY
	(probably doesn't make much difference in practice).

	* gwlib/octstr.c: Fixed memory leak in octstr_append_from_hex().

2001-02-08  Richard Braakman  <dark@wapit.com>

	* Applied Stipe Tolj's patch to cfg.def and userguide, to
	fix OTA configuration parsing.

2001-02-07  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: kludged to use internal heartbeat to wakeup sender
	from consume if other end closes the connection

	* gw/bb_smscconn.c: modified failed routing access log output

	* utils/accesslog_parser.pl: added failed routing to final output,
	and change all keywords to lowercase

2001-02-07  Kalle Marjola  <rpr@wapit.com>

	* utils/accesslog_parser.pl: added simple perl script to read
	(SMS) access log and print statistics out of it, based on hours.
	Uses the new format printed out by bb_smscconn.c

2001-02-07  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c: Bugfix. Fixed memory leak caused by access log /
	new config

	* doc/userguide/userguide.xml: made it clearer that sms-service is
	selected by keyword and number of parameters

	* gw/bb_smscconn.c: Bugfix: fixed access log to use Octstring return value

	* gw/bb_smscconn.c: Compatibility breaker: modified access log
	output
	
2001-02-07  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: added support for Ericsson GSM modems (patch from
	Chris Blown).

2001-02-06  Uoti Urpala  <uau@wapit.com>

	* gw/urltrans.c: Changed the %a URL parameter to mean the original
	message as-is, to allow binary data. Previously consecutive
	whitespace characters were changed into one space. Note that %r
	was NOT changed, maybe it should work similarly?

2001-02-06  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smscconn_cb.h: added new failed sending status,
	SMSCCONN_FAILED_TEMPORARILY, which should be called if connection
	to SMS center is lost temporarily

	* gw/bb_smscconn.c: added handling for new status

	* gw/smscconn_p.h: added comments of the new status
	
	* gw/smsc_wrapper.c: added that when reconnect is started, message
	queue is emptied from messages with status
	SMSCCONN_FAILED_TEMPORARILY
	

2001-02-06  Peter Grnholm  <peter@wapit.com>

	* utils/kannel-stable-rh6x.spec: Added rpm spec file for Kannel
	stable releases.

	* utils/kannel-stable-rh7.spec: Added rpm spec file for Kannel
	stable releases.

2001-02-06  Uoti Urpala  <uau@wapit.com>

	* gw/smsbox.c: Rewrote message-splitting functions because they
	had lots and lots of bugs. Basically they didn't work if
	split-chars, split-suffix or concatenation was defined.

2001-02-05  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Fixed off-by-one error in octstr_case_search(),
	reported by Vjacheslav Chekushin.

2001-02-04  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsasm.c: Avoid generating 0-length functions,
	because not all clients can handle them.

	* gw/wap-appl.c: If the response body does not fit in the
	client SDU size, generate status code 502 ("Bad Gateway")
	instead of 413 ("Request Entity Too Large").  413 is definitely
	the wrong code because it refers to the request, not the
	response.  502 means the gateway received an invalid response
	from the server, which is pretty close.
        Also, do not touch the status code at all if it already indicates
	an error.  The upstream error is more interesting to the user
	than knowing that the error page didn't fit.

	* gwlib/http.[ch]: Add http_status_class() function to
	distinguish success codes (2xx) from error codes.

2001-02-02  Tuomas Luttinen  <tuo@wapit.com>

	* test/decompile.[ch]: Applied the patch by Neil Hunter that 
	implements the codepage switch, changes the indent size to a #define
	and adds basic support for different DTDs.

	* gw/utf8map_iso8859-7.h, gw/utf8map_win1251.h, gw/utf8map_win1257.h,
	gw/utf8map_koi8r.h, gw/utf8map_win1253.h: removed as obsolete.

	* gw/wml_compiler.c: Patch by Vjacheslav Chekushin applied. The
	patch makes the libxml aware of some aliases for different 
	character_sets, so these can be used in the WML content with the 
	libxml.
	Some other modifications due modifications in the wml_definitions.h.

	* gw/wml_definitions.h: Patch by Vjacheslav Chekushin applied. The 
	patch removes the use of the utf8map in the character_sets[].
	Also utf8map removed from the character_sets[].

2001-02-02  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (string_table_collect_strings): Removed the 
	if (strlen(node->content) > WBXML_STRING_TABLE_MIN) -line that 
	won't work with XML_USE_BUFFER_CONTENT.

2001-02-02  Richard Braakman  <dark@wapit.com>

	* Added gwmem_type() function that returns the name of the 
	malloc wrapper used.

	* gw/shared.c: Report gwmem_type in the version string.

2001-02-01  Richard Braakman  <dark@wapit.com>

	* Updated doc/release.txt to better reflect actual procedure.
	Only covers development releases for now.

2001-02-01  Richard Braakman  <dark@wapit.com>

	* Making release 1.1.1.

2001-02-01  Uoti Urpala  <uau@wapit.com>

	* gw/urltrans.c: Bugfix, find_default_translation() now returns
	NULL if no default was given.

2001-02-01  Richard Braakman  <dark@wapit.com>

	* gw/smsbox.c: cleanup.  send_message does not destroy its msg
	anymore, leaves that to caller (fixes memory leaks). 
	obey_request always destroys the pattern it creates.
	obey_request_thread actually sends "Requests failed" messages
	and is simplified a little.

2001-02-01  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: Update to version 2-0 en.
	Added definitions for new parameter numbers 26, 28, 44, and 62.
	Corrected range of "status report request" parameter from 0..32
	to 0..63.

2001-01-31  Uoti Urpala  <uau@wapit.com>

	* gw/wap-appl.c: Fixed an uninitialized variable.

	* test/test_http_server.c: Fixed double octstr_destroy().

2001-01-31  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Made octstr_destroy() call seems_valid even
	if the octstr is immutable.  This should catch double destroy
	calls in the future.

	* gwlib/gwthread-pthread.c: In gwthread_wakeup() and gwthread_join(),
	assert that the thread number >= 0.

2001-01-31  Uoti Urpala  <uau@wapit.com>

	* gw/bb_udp.c, gw/wap_push_ota.c: Fixed double octstr_destroy() calls.

2001-01-31  Uoti Urpala  <uau@wapit.com>

	* gwlib/http.c: Don't try to wake up the server thread at shutdown
	if it was never created.

2001-01-31  Peter Grnholm  <peter@wapit.com>

	* doc/userguide/userguide.xml: Wrote section 'Using pre-compiled
	binary packages'.

2001-01-31  Lars Wirzenius  <liw@iki.fi>

	* gwlib/utils.c: Rewrote the is_allowed_ip implementation to
	use Octstr instead of C strings. Removed the now-unused check_ip
	function.

	* checks/check_ipcheck.c: Wrote.

2001-01-30  Lars Wirzenius  <liw@iki.fi>

	* gwlib/utils.[ch]: Made is_allowed_ip accept Octstr arguments
	instead of char *. Dies, cstr, die.
	
	* gw/bb_boxc.c, gw/bb_http.c, gw/bb_udp.c, gw/smsbox.c,
	gw/smsc_emi.c, gw/smsc_fake.c: Fixed the calls to is_allowed_ip
	to follow new calling convention.

2001-01-30  Lars Wirzenius  <liw@iki.fi>

	* Makefile.in: Moved the wildcard patterns to the beginning, where
	they are more visible. Should've done this when I first wrote them.
	
	* gw/smsbox.c: Fix memory leak.
	
	* gw/smsc_fake.c: don't call octstr_get_cstr with NULL argument.
	(Should fix is_allowed_ip instead.)
	
	* gw/urltrans.c: Look up the keyword in a case insensitive manner.
	Thanks to Peter for pointing this out.
	
	* gwlib/gwmem.h: Introduced the gw_claim_area_for macro. It is the
	same as gw_claim_area, except it gets the position as arguments,
	instead of figuring it out itself.

	* gwlib/cfg.[ch]: Used gw_claim_area_for to claim the return
	value of cfg_get.

2001-01-29  Richard Braakman  <dark@wapit.com>

	* gwlib/dict.c: Make dict_keys() lock its dictionary.

2001-01-29  Kalle Marjola  <rpr@wapit.com>

	* Makefile.in: clean now deletes */*.o, too. 

2001-01-29  Lars Wirzenius  <liw@iki.fi>

	* gwlib/protected.h: Undefine the protection macros before
	defining them, to avoid problems with multiple definitions on
	platforms that define them as macros instead of (or in addition
	to) functions.

2001-01-26  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.[ch], gw/smsbox.c: Killed the almost-unused
	function octstr_replace and converted the only place it was
	being used anymore to create a new Octstr instead.

2001-01-26  Lars Wirzenius  <liw@iki.fi>

	* AUTHORS, ChangeLog, NEWS, checks/check_fakesmsc.sh,
	checks/check_fakewap.sh, checks/check_sendsms.sh,
	checks/check_smpp.sh, doc/arch/arch.xml, gw/bb_smscconn.c,
	gw/bearerbox,.c gw/smsbox.c, gw/smsc.c gw/urltrans.[ch],
	gw/wapbox.c, gwlib/http.c, gwlib/octstr. test/drive_smpp.c,
	test/test_http.c, test/test_octstr_format.c: Edited some long
	lines to be shorter than 80 characters. There's still lots
	more, find them with utils/find-long-lines.

2001-01-26  Lars Wirzenius  <liw@iki.fi>

	* gw/alt_charsets.h, gw/bb.h, gwlib/accesslog.h, gwlib/gwlib.h,
	gwlib/gwmem.h, gwlib/socket.h, gwlib/utils.h, test/decompile.h,
	utils/OTAbitmap.h, utils/wbmp.h: Removed leading underscore from
	symbols. It is reserved to the C implementation and is not to
	be used by application code.
	
	* gwlib/socket.[ch]: Removed unused functions socket_query_blocking,
	read_line, and read_to_eof.
	
	* gwlib/utils.[ch]: Removed unused function print_std_args_usage.
	
	* gwlib/gw_inet.[ch], gw/wap_push_ota.c: Removed the (unused)
	gw_inet_ntop wrapper.

2001-01-26  Lars Wirzenius  <liw@iki.fi>

	* doc/userguide/userguide.xml: Documented the "phone" option in
	EMI over modem.

2001-01-26  Lars Wirzenius  <liw@iki.fi>

	* The standard library function inet_ntoa is not thread safe.
	Instead of writing a wrapper, I decided it's better to convert
	to using the gw_netaddr_to_octstr implementation Derek Hamilton
	wrote for us.
	
    	* gwlib/protected.h: Added a macro to trap inet_ntoa calls.
	
	* gw/smsc_ois.c, gwlib/socket.c, test/test_cimd2.c: Converted
	use of inet_ntoa to gw_netaddr_to_octstr.
	
	* gwlib/socket.[ch]: Removed the unused function
	socket_get_peer_ip and slighly change the use of whitespace in
	the gw_netaddr_to_octstr to follow project coding style.

2001-01-26  Uoti Urpala  <uau@wapit.com>

	* gw/urltrans.c: Converted to use octstr_create_urlcoded instead
	of file-specific function.

2001-01-25  Uoti Urpala  <uau@wapit.com>

	* gw/smsc.c, gw/smsc_p.h, gw/smsc_fake.c, gw/smsc_fake2.c,
	gw/smscconn.c, gw/smscconn_p.h, test/fakesmsc.c, test/fakesmsc2.c:
	Removed the old fakesmsc and replaced it with the new one.
	Note that the new version is used differently from the old one!

	* gw/smskannel.conf, checks/check_fakesmsc.sh,
	checks/check_sendsms.sh: Changed the examples and checks to use
	new fakesmsc.

	* doc/userguide/userguide.xml: Changed the documentation to
	describe the new fakesmsc.

	* gw/smsc_cimd.c: Fixed a possible NULL reference.

	* gw/smsc_cimd2.c: Added a missing #include <string.h>.

2001-01-25  Lars Wirzenius  <liw@iki.fi>

    	* gw/bb_udp.c, gwlib/cfg.def: Applied and adapted patch from
	Laurent Foulonneau to implement UDP packet filtering based on
	sender IP number.

	* doc/userguide/userguide.xml: Documented the new options.

2001-01-25  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc.c, gw/smsc_at.c, gw/smsc_p.h, gwlib/cfg.def: Applied
	and slightly adapted patch from Bjarne Saltbk for implementing
	a validity period option for the GSM phone driver.

	* doc/userguide/userguide.xml: Documented the new option.

2001-01-24  Lars Wirzenius  <liw@iki.fi>

	* doc/arch/arch.xml: Added missing </sect1>.
	
	* gwlib/http.c: Added creation of http exceptions list.

2001-01-24  Uoti Urpala  <uau@wapit.com>

	* gw/smsbox.c, gw/smsc.c, gw/smsc_p.h: Fixed memory leaks.

2001-01-24  Uoti Urpala  <uau@wapit.com>

	* gw/smscconn.c, gw/bb_smscconn.c: Fixed memory leaks

2001-01-24  Lars Wirzenius  <liw@iki.fi>

	* gw/bb_boxc.c, gw/bb_http.c, gw/bb_udp.c, gw/bearerbox.[ch]:
	Killed memory leaks due to unfreed configuration data.

2001-01-24  Uoti Urpala <uau@wapit.com>

	* test/fakesmsc2.c, gw/smsc_fake2.c: Several fake2 changes, added
	send/receive udh, possibility to restrict connections based on IP.
	Messages on command line need to be written differently.

	* gwlib/octstr.[ch]: Added octstr_create_urlcoded() function.

2001-01-23  Lars Wirzenius  <liw@iki.fi>

	* Ran some compiles with stricter warning options than -Wall.
	This resulted in a few minor changes.
	
	* gw/bb_smscconn.c: Removed the function smsc2_addwdp, since it is
	unused and the wapbox is the better place to do WAP-on-SMS anyway.
	
	* gw/smpp_pdu.c: Cast the return value of octstr_len in an assert
	that compares it to an unsigned long. This is a bit ugly, but -
	in my humble opinion - better than a warning about comparing signed
	and unsigned. Reasonable minds differ.
	
	* gwlib/gwthread.h: Removed duplicate prototype for
	gwthread_dumpsigmask.
	
	* gwlib/socket.c: Made gw_netaddr_to_octstr4 and
	gw_netaddr_to_octstr6 static, since they're not to be used from
	outside socket.c.
	
	* test/decompile.c: Made a number of functions static. I don't
	understand why some functions are declared in decompile.h (or
	why decompile.h exists in the first place), but presumably there
	is a good reason for this. Removed the Read_zero_index function,
	since it was unused.
	
	* test/test_cimd2.c, test/test_headers.c, test/test_pdu.c,
	test/test_wakeup.c, test/udpfeed.c, utils/seewbmp.c: Use a return
	statement instead of calling exit. Stylistic change.
	
	* utils/run_kannel_box.c: Make main_loop return instead of
	calling exit directly. Stylistic change.

2001-01-23  Lars Wirzenius  <liw@iki.fi>

	* doc/arch/arch.xml: Fixed references to figures.

2001-01-23  Lars Wirzenius  <liw@iki.fi>

	* gw/bb_boxc.c, gw/bb_smscconn.c, gw/bb_udp.c, gw/bearerbox.[ch],
	gw/smsc.[ch], gw/smsc_emi.c, gw/smsc_fake2.c, gw/smsc_p.h,
	gw/smsc_wrapper.c, gw/smscconn.[ch], gw/smscconn_p.h: Converted
	the bearerbox to use the new configuration file interface. This
	resulted in large, but simple changes in many files.

	* gwlib/cfg.def: Added variable 'phone' to an smsc group. Not
	documented anywhere, it seems.
	
	* gwlib/gwlib.h, gwlib/conffile.[ch]: Removed the old
	configuration file interface.

2001-01-23  Lars Wirzenius  <liw@iki.fi>

	* gwlib/cfg.c: Implemented a check that makes sure a CfgGroup is
	only queried for variables that it can legally contain. This 
	showed some bugs, which have been corrected by the changes below.
	
	* gwlib/cfg.[ch]: Wrote function cfg_get_group_name, needed by
	urltrans.c changes.
	
	* gw/urltrans.c: Fixed the code so it doesn't try to get the value
	of every variable from every group. The resulting code should be
	somewhat cleaner and easier to follow, as well.
	
	* gw/wapbox.c: Don't query the variable "heartbeat-freq",
	because it isn't documented anywhere, no other box uses it,
	and there is no need to make the value configurable.

2001-01-23  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c: switched smsbox/smsc startup to avoid hangup
	with bad luck

2001-01-22  Richard Braakman  <dark@wapit.com>

	* Making release 1.1.

2001-01-22  Kalle Marjola  <rpr@wapit.com>

	* gw/wapbox.c: fixed read-config and map_url_max which caused
	wapbox to stuck and never start

	* gw/smsc_wrapper.c: added one debug message

2001-01-22  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c: Split gwthread_create_real() into
	four functions to separate the signal handling code from the
	thread code.  This way the sigmask will also be restored if
	thread creation fails.  (Spotted by Uoti)

	* gw/smsbox.c: In obey_request(), handle TRANSTYPE_SENDSMS
	as well, to avoid the rather cryptic default error message
	if this error occurs.  Still investigating why it occurs at all.

2001-01-22  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_wrapper.c: fixed startup-order, to avoid segmentation
	fault if smsc startup fails

2001-01-22  Lars Wirzenius  <liw@iki.fi>

	* gw/wap-appl.c: Fixed memory leak (a Mutex was not being
	destroyed) and related whitespace usage and made the Mutex static.
	Also removed a spurious editorial comment with an "I" referring
	to me, even though I didn't write it.
	
	* gw/wapbox.c: Made some global-but-static variables with
	configuration information local to the function that reads and
	processes the config.
	
2001-01-22  Richard Braakman  <dark@wapit.com>

        * gwlib/gwthread-pthread.c: In function gwthread_create_real(),
        applied Nick Clarey's patch to fix signal handling and restyled.
        Then fixed signal handling some more by using pthread_sigmask
        instead of sigprocmask, and SIG_BLOCK instead of SIG_SETMASK.
        This way we won't interfere with signals used by the pthread
	implementation.

	* gw/bearerbox.c, gw/smsbox.c, gw/wapbox.c: Updated comment in
	signal_handler() to reflect the new situation, and made them all
	use gwthread_shouldhandlesignal().

2001-01-22  Lars Wirzenius  <liw@iki.fi>

	* gw/wapbox.c: Converted to use new config file module in gwlib.

2001-01-22  Lars Wirzenius  <liw@iki.fi>

	* gwlib/accesslog.c: Made the output buffer be allocated via
	dynamic memory to avoid overflowing the stack with large local
	variables.
	
	* gwlib/log.c: Made output buffer smaller, again because of stack
	limitations. The new limit is one kilobyte, but since it is used
	only for certain parts of the output (the prefix with dates etc,
	and the format string), it should be plenty.

2001-01-21  Lars Wirzenius  <liw@iki.fi>

	* doc/userguide/userguide.xml: Changed SMPP version to 3.4.
	
	* gw/smsc_smpp.h: Removed. I thought I had removed it earlier
	already.
	
	* test/fakewap.c: Fixed memory leaks.

2001-01-19  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Added function set_charset to fix bug with 
	the character set read from the http-headers.

2001-01-18  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.[ch]: Renamed the horribly long name
	octstr_create_immutable to octstr_imm. This should make it a
	bit more palatable.

	* gw/html.c, gw/smsbox.c, gw/smsc_at.c, gw/smscconn.c,
	gw/urltrans.c, gw/wap-appl.c, gw/wap_push_ota.c,
	gw/wml_compiler.c, gwlib/cfg.c, gwlib/http.c, test/test_dict.c,
	test/test_headers.c, test/test_http_server.c,
	test/test_octstr_immutables.c, test/wml_tester.c,
	wap/wsp_headers.c, wap/wsp_strings.c: Related changes.

2001-01-18  Lars Wirzenius  <liw@iki.fi>

	* gwlib/cfg.[ch]: Wrote functions cfg_get_integer and cfg_get_list
	to allow easier access to non-octet-string variables. No explicit
	typing in cfg.def, though. That may come later.

2001-01-18  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: the current smsbox closes the connection properly,
	so wait until that before exiting with boxc_receiver, thus
	eliminating lost messages

	* gw/bb_boxc.c: added alive-check to boxc_sender after
	list_consume() as octstr_send does not notice that socket has been
	closed
	
2001-01-18  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c, gw/urltrans.[ch]: Converted to use cfg.c instead
	of conffile.c. This revealed a need to simplify things so that
	the caller does not have to manually check quite as many things.
	Will update cfg.c accordingly before continuing with the other
	programs.

2001-01-18  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: fixed 3 memory leaks some pointed out by Uoti, and
	one logical error in failed requests

2001-01-18  Lars Wirzenius  <liw@iki.fi>

	* Wrote a replacement for the conffile.[ch] stuff. It does pretty
	much the same thing as the old stuff, but does it with a better
	interface and uses Octstr instead of C strings. It does not
	(yet?)	support reloading and automatic notification of changes
	to the configuration.
	
	* gwlib/cfg.[ch], gwlib/cfg.def, test/test_cfg.c: Wrote.
	
	* gwlib/gwlib.h: Include cfg.h.
	
	* test/.cvsignore: Ignore test_cfg.
	
	* test/fake.conf: Removed, since it was unused and followed an
	ancient syntax.

2001-01-17  Lars Wirzenius  <liw@iki.fi>

	* gwlib/dict.[ch]: Wrote function dict_keys.
	
	* gwlib/socket.c: Bugfix. Destroy the official_ip octet string
	at shutdown.

2001-01-17  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gwlib/socket.c: Removed the ugly loop from gw_netaddr_to_octstr6
	since octstr_format does support hex format after all.

2001-01-17  Lars Wirzenius  <liw@iki.fi>

	* configure.in, configure: Remove checking for -lz. Richard is
	right: if libxml needs it, then xml-config --libs must report -lz,
	so there is no point in checking for it for ourselves.

2001-01-17  Lars Wirzenius  <liw@iki.fi>

	* configure.in, configure, config.h.in: check for syslog.h.
	
	* gwlib/log.c: Use the result from configure (HAVE_SYSLOG_H) to
	exclude the syslog stuff from compilation on platforms on which
	it is not available, such as Windows when not using Cygwin.
	
    	* gwlib/socket.[ch]: Wrote get_official_ip, so that other modules
	don't have to do it themselves.

    	* gw/wap_push_ota.c: Rewrote the static name() function. The old
	code was buggy (had a memory leak) and called non-portable functions
	(inet_ntop, uname). The new one uses get_official_ip.

	* gw/shared.c: Use get_official_name and get_official_ip to
	report the host, in addition to what uname() returns.

2001-01-17  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_fake2.c: Added missing #include, minor fixes.

	* gw/smscconn.c: Added missing #include.

2001-01-16  Uoti Urpala  <uau@wapit.com>

	* gw/smsc_fake2.c: new fake SMSC connection module.
	* test/fakesmsc2.c: client to use with the new module.
	* gw/smscconn.c, gw/smscconn_p.h: Added references to the new
	module.

2001-01-15  Lars Wirzenius  <liw@iki.fi>

	* wap/wtp_pdu.c: Bugfix from Aymerick Jhanne. When unpacking
	TPIs, append the correct data to the PDU.

2001-01-15  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gw_inet.c: Added an include for <sys/types.h> to allow
	compilation on FreeBSD. Thanks to vlm@smarts-gsm.ru for pointing
	this out.

2001-01-15  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn_p.h: modified so that 'start as stopped' is done
	in protocol specific creator

	* gw/smscconn.c: added missing settings to NULL, and removed call
	for conn_stop (see above)

	* gw/smsc_wrapper.c: added one protection mutex and fixed startup
	to follow above interface

2001-01-15  Lars Wirzenius  <liw@iki.fi>

	* gw/urltrans.c: Implemented %k in URL translations, based on
	suggestion from steveu@infowebtelecom.com.
	
	* doc/userguide/userguide.xml: Updated docs.

2001-01-15  Aarno Syvnen <syvanen@wapit.com>

	* gw/wap-appl.c: Wrote conformations and indications part of Push
	OTA protocol.

	* gw/wap_push_ppg.[ch]: Started writing test version of PPG main
	module

	* gw/wap_push_ota.c: Still streamlining and fixing bugs

	* wap/wap_events.def: Added new push related events

	* wap/wsp.h: Added push related error codes

2001-01-12  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Now compiler can handle a libxml compiled with 
	-DXML_USE_BUFFER_CONTENT. The content of the node is converted into 
	an octet string with a macro.

2001-01-12  Richard Braakman  <dark@wapit.com>

	* Updated NEWS file to prepare for 1.1.

2001-01-12  Richard Braakman  <dark@wapit.com>

	* gwlib/charset.c: Translate u-dieresis correctly from latin1 to GSM.
	(It does exist in GSM Default, so it doesn't have to be approximated.)

2001-01-12  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn.h, gw/smscconn_p.h, gw/bb_smscconn_cb.h: updated API
	description
	
2001-01-12  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_wrapper.c: fixed deadlock in message sending

	* gw/smsc_wrapper.c: modified reconnect so that it does not cause
	bearerbox to wait in various functions, by adding new mutex
	instead of using old flow_mutex

2001-01-11  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gwlib/gw_inet.c: Fixed off by one errors.
	* gwlib/socket.c, gwlib/socket.h: Implemnted a basic inet_ntop
	using Octstrs.  IPv6 handling is basic, but appears to work.

2001-01-11  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.c: octstr_copy_real: Changed the code that checks
	whether the length of the part to be copied is too long so that
	it can deal with integer overflows (assuming they wrap around).

2001-01-11  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn.c: modified so that flow_mutex is always locked in
	functions using function pointers
	
	* gw/smscconn_p.h: added notes about mutex

2001-01-11  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c|h: added suspend for SMSCConn

	* gw/smscconn*.c: fixed suspend in various parts
	
2001-01-11  Kalle Marjola  <rpr@wapit.com>

	* gw/*smscconn*.*: changed SMSCCONN_KILLED to SMSCCONN_DEAD, and
	clarified some callbacks

	* gw/smsc_wrapper.c: fixed so that _sender does not suspend

2001-01-11  Lars Wirzenius  <liw@iki.fi>

	* utils/chlog-stats: Wrote.

2001-01-10  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gwassert.h, gwlib/gwmem-check.c, gwlib/gwmem-native.c,
	gwlib/log.[ch], gwlib/octstr.c: Undid changes to make logging
	functions use octstr_format instead of fprintf. The interactions
	between debug(), gwmem, gwthread, and other low-level parts of
	gwlib are too intricate and error prone. It is better to suffer
	the use of octstr_get_cstr when logging things instead of making
	logging error prone.

2001-01-10  Lars Wirzenius  <liw@iki.fi>

    	* gwlib/octstr.c: Implemented %p in octstr_format.

	* test/test_octstr_format.c: Related changes.

2001-01-10  Lars Wirzenius  <liw@iki.fi>

	* gwlib/log.c: Made info() use octstr_format as well. All places
	that call info() have been checked manually. In the process, found
	a couple of bugs, see below.

	* gw/bb_smscconn.c: Bugfix. octstr_get_cstr was called with a NULL
	argument, reversed the test so that it is called only when the
	argument will be non-NULL.
	
	* gwlib/log.c: Bugfix. Output needs to be flushed as soon as it
	has been written.
	
	* gwlib/octstr.[ch]: Implemented %i for octstr_format, and made
	octstr_get_cstr report the place it has been called from.
	
	* test/drive_smpp.c: Bugfix. Remember to quit from a loop within
	the main loop of a thread, if the quitting signal has been given.
	
2001-01-09  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn*.*, gw/smsc_wrapper.c: updated start/stop interface,
	moving list trick into wrapper, so that each connection
	implementation can do it any way they like.

2001-01-09  Lars Wirzenius  <liw@iki.fi>

	* doc/CodingStyle: Add note that one should never include anything
	except gwlib.h from gwlib.h

2001-01-09  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gwlib/gw_inet.c: Included string.h to declare strncpy.

2001-01-08  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gwlib/gw_inet.[ch]: Added initial implementation of
	gw_inet_ntop and supporting code.
	* gw/wap_push_ota.c: included gwlib/gw_inet.h.


2001-01-08  Lars Wirzenius  <liw@iki.fi>

	* gwlib/log.c: Made warning() use octstr_format. All usages have
	been checked and should work.

2001-01-08  Kalle Marjola  <rpr@wapit.com>

	* gw/*smscconn*.*: removed reason from killed-callback,
	instead it is used in why_killed field (previous is_killed)

	* gw/smscconn.*: infotable now has killing reason included

2001-01-08 Aarno Syvnen <syvanen@wapit.com>

	* gw/wap_push_ota.c: Streamlined the code somewhat

2001-01-08  Kalle Marjola  <rpr@wapit.com>

	* utils/kannel-init.d: changed binary names into variables so
	that it is easier to change script to work with different versions

2001-01-06  Lars Wirzenius  <liw@iki.fi>

	* gwlib/log.c: Added a missing include for <limits.h> so that
	CHAR_BIT is defined. The over-eagerness of Linux headers to
	define everything strikes again.

2001-01-05  Lars Wirzenius  <liw@iki.fi>

	* Started to convert logging functions to use octstr_format instead
	sprintf, to make them more powerful. Now, panic() and error() use
	octstr_format, the others do not yet (each call needs to be
	checked to make sure that octstr_format can deal with the format
	string and I didn't have the time to do that yet).
	
	Also added the function panic_hard for those cases where calling
	panic would call eternal recursion - panic uses octstr_format, which
	can call panic itself (via gw_assert or gw_malloc, for example).
	
    	* gwlib/log.[ch]: Implemented panic_hard and made panic and error
	use octstr_format.

	* gwlib/gwassert.h, gwlib/gwmem-check.c, gwlib/gwmem-native.c,
	gwlib/octstr.c: Changed to use panic_hard instead of panic.

	* gw/wap-appl.c: Indentation fix.

2000-01-04 Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* configure.in,configure: Added tests for the definition of 
	INET_ADDRSTRLEN and finding libraries for inet_ntop.  Allows 
	gw/wap_push_ota.c to compile and link under Solaris 7.

2001-01-04  Lars Wirzenius  <liw@iki.fi>

	* configure.in, Makefile.in: Added PDF conversion of docs.
	
	* doc/arch/*: Replaced the architecture document with a modified
	version of the draft for my MSc thesis. The old document was
	horribly out of date, the thesis draft is at least mostly current,
	even if it is still missing a few bits.
	
2000-01-04 Aarno Syvnen <syvanen@wapit.com>

	* wap/wap_events.def: Added Push OTA events

	* wap/wsp_pdu.def: Added sia, a spesific content type for trans-
	mitting data bearerbox addresses, etc.

	* gw/wap_push_ppg.c|h: Added module to implement PPG main logic.
	It does not do anything, yet.

	* gw/wap_push_ota.c|h: Wrote requirements part of Push OTA 
	protocol.

	* gw/wapbox.c: Send bearerbox address to OTA module. Initialize 
	and shutdown ppg.

	* wap/wsp_strings.def: Added conversion tables for bearer types 
	and push application ids.

	* wap/wsp_headers.c: Added packing and unpacking of OTA headers

2001-01-03  Lars Wirzenius  <liw@iki.fi>

	* checks/check_fakesmsc.sh, checks/check_fakewap.sh: Modified to
	work without network access to facilitate development on a laptop.
	
	* test/test_http_server.c: Added option -f, to allow a WML file
	to be returned instead of a text/plain response. This is used
	by check_fakewap.sh above.
	
	* gw/bb_smscconn.c: Initialized some local variables so that
	the compiler won't warn that they are used before they are
	initialized.
	
	* gwlib/octstr.[ch]: Removed octstr_search_cstr, which was no
	longer used.

2000-12-29  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_definitions.h: Added WBXML_ to every defined constant, 
	so that there wouldn't be any more mixups with constants defined 
	elsewhere.

	* gw/wml_compiler.c: The code modified to use the new definitions.

2000-12-29  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: The own hash table code is deleted and dict 
	implementation is used instead. The wml_init builds up the dicts 
	for the WML binary bytecode and wml_shutdown frees those dicts.
	Also a bit of code renewing by deleting all octstr_*_cstr-functions.

	* gw/wapbox.c: Added calls to wml_init and wml_shutdown when starting
	and shutting down the wapbox.

	* gwlib/octstr.c (octstr_hash_key): Now hash key for a NULL octet 
	string is 0.

	* test/wml_tester.c: The test program now has a command line argument 
	-n number that does the compiling n times. Also all the wml files 
	written in sequence in the command line will be compiled. Some other 
	modifications to get rid of the octstr_*_cstr-functions.

2000-12-29  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smscconn.c: shortened SMSCConn status output

	* gw/bb_http.c: added full HTML header to HTML replies
	
2000-12-29  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smscconn.c: added load-based routing to outgoing SMS
	messages, which takes into account reconnecting connections,
	preferrations etc. (note that currently as all SMSC Connections
	are used via smsc_wrapper their load is equal to internal queue
	length, which is usually 0)

	* gw/smsc_wrapper.c: a bit update to startup

2000-12-28  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_http.c: added that HTTP admin commands can be used without
	cgi-bin/ in the URL, too.
	
	* doc/userguide/userguide.xml: documentation updated to reflect
	that

2000-12-28  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_http.c, gw/bearerbox.c: modified so that every reply to
	HTTP admin is formatted according to client Accept: -header, with
	preference as WML > HTML > plain text.

2000-12-28  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_http.c: modified so that cgi-bin/status returns the reply
	in format accepted by the client, preferring WML over HTML over
	plain text.

	* gw/bb_http.c: made admin-password mandatory in code, too. Set
	that wrong password in admin commands causes delayed answer to
	delay brute force password cracking

	* gw/bb_http.c: added new configuration variable status-password -
	if set, status inquiry must be supplied with either this or
	general admin-password

	* gw/*kannel.conf, doc/userguide/userguide.xml: updated to reflect
	status-password

2000-12-28  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c, gw/bearerbox.h, gw/bb_boxc.c, gw/bb_smscconn.c:
	updated to format status inquiry into HTML, WML or plain text.

	* gw/bb_http.c: added new HTTP admin functions cgi-bin/status.wml,
	cgi-bin/status.html and cgi-bin/status.txt if the client wants a 
	specific type. Plain cgi-bin/status returns HTML currently,
	updated to return whatever client requests via Accept -header in
	near future (as would all other commands, too)

	* gw/bb_http.c: removed cgi-bin/xmlstatus, replaced with
	cgi-bin/status.xml which still does not return anything sensible.

2000-12-27  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn.c, gw/smscconn_p.h: added new smsc configuration
	group variable allowed-smsc-id

	* doc/userguide/userguide.xml: added description

2000-12-27  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn_p.h, gw/smsc_wrapper.c: a bit more commented code 

2000-12-22  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* config.sub,config.guess,configure.in,configure: added the host 
	determination files and removed the dependancy on /usr/share/autoconf.
	
2000-12-22  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* config.h.in,configure,configure.in,gwlib/gwthread-pthread.c:
	Cleaned up host system determination and tests for broken pthreads.
	
2000-12-21  Lars Wirzenius  <liw@iki.fi>

	* test/drive_smpp.c: Added includes for accept(2).

2000-12-21  Lars Wirzenius  <liw@iki.fi>

	* Rewrote the SMPP protocol implementation. The old one was
	excessively verbose (lots of repetitive code), did not use Octstr,
	or Connection, and needed much attention in order to fit into the
	new SMSC interface anyway. The new code is about half the length
	and much cleaner and should be functionally about as concrete
	(but see comments at the top of gw/smsc_smpp.c), and happens to
	be somewhat faster.
	
	* gw/smsc_smpp.h: Removed. It was only included by the old version
	of gw/smsc_smpp.c anyway, and shouldn't have existed at all.
	
	* gw/smpp_pdu.[ch] and gw/smpp_pdu.def: Wrote. These parse and
	generate the binary and struct versions of the SMPP PDUs. The
	C preprocessor trick the WAP stack uses is used here as well to
	keep code clean and short. They're used by drive_smpp as well,
	so they're not made part of smsc_smpp.c itself.

	* test/drive_smpp.c: Wrote. This is a server end implementation of
	the SMPP protocol and is used to verify that the client end works.

	* checks/check_smpp.sh, test/drive_smpp.conf: Wrote.
	
	* gwlib/semaphore.[ch]: Wrote. These are used by the SMPP code
	to make sure not too many pending submit_sm requests are open.
	The current implementation of Semaphore is quite simplistic
	and wraps around List; native semaphores should probably be
	used instead, but this is good enough for now.
	
	* gwlib/gwlib.h: Added include for semaphore.h.
	
	* gwlib/octstr.c: Ignore NULL arguments before calling
	seems_valid, instead of afterwards, since seems_valid asserts
	that the argument is not NULL.
	
	* utils/source-stats: Cound the `wap' subdirectory as well.

2000-12-21  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_wrapper.c: added some mutex operations so that reconnect
	should now work without segfault
	
2000-12-21  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c, gw/bb_smscconn.c, gw/smsc_wrapper.c: updated
	status output information 

2000-12-21  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_wrapper.c: moved logistics of reconnect to this module,
	instead than in smsc.c

	* gw/smsc.*: removed lots of public functions (the old interface)

	* gw/bb_smsc.c: remove depricated code
	
2000-12-21  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.*: use smsc2_ functions for new bb_smscconn,
	renaming in a near future
	
	* gw/smsc.c: modified to use gwthread_sleep instead of plain
	sleep, so that no need for 'semi-busy sleep' during reconnect

	* gw/smscconn*.*: added missing functions, these should now work

	* gw/smsc_wrapper.c: finished, including program flow etc.
	
2000-12-21  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc.c: added missing breaks to _reopen

2000-12-21  Derry Hamilton <rasilon@tardis.ed.ac.uk>
	
	* gw/wap-appl.c: Fixed race condition, between updating and
	deleting stuff in id_to_request_data and caller simultaneously

2000-12-20  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smscconn_cb.c: renamed as bb_smscconn.c and includes all
	code in old bb_smsc.c - will replace the old system as soon as I
	get last missing functions ready and the system tested

	* gw/smscconn.* added that shutdown can either empty the internal
	queue first or do a quick shutdown, putting all messages into
	failed list

2000-12-20  Derry Hamilton <rasilon@tardis.ed.ac.uk>
	* gwlib/gwthread.h, gwlib/gwthread-pthread.c, gw/bearerbox.c,
	config.h.in:  Combined patches from Nick Clarey and myself
	that cope with POSIX-but-not-quite threads.  My head hurts.
	
2000-12-19  Richard Braakman  <dark@wapit.com>

	* gwlib/dict.c: Improve description of Dict fields.

2000-12-19  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_wrapper.c: it is ready - to be tested out. Next: new
	bb_smsc.c, so the wrapper can be checked out

2000-12-19  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_emi.c: fixed that NULL pointer is not tried to be
	printed

2000-12-18  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smscconn_cb.*, gw/smscconn*, gw/smsc_wrapper.c: updated,
	almost ready now.

2000-12-18  Peter Grnholm  <peter@wapit.com>

	* gw/wml_definitions.h, fixed attribute name, "accept_charset"
	is now "accept-charset".

2000-12-15  Lars Wirzenius  <liw@iki.fi>

	* gw/bb_smscconn_cb.c, gw/smsc_wrapper.c, gw/smscconn.c: Rudely
	commented out things to shut compiler warnings off.

2000-12-15  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn.c|h|_p.h, gw/smsc_wrapper.c: continued the work

	* gw/bb_smscconn_cb.h|c: added. Callbacks to synchronize things

2000-12-15  Richard Braakman  <dark@wapit.com>

	* gwlib/dict.[ch]: Implement dict_key_count().  Implement behaviour
	of dict_put when value is NULL.

	* gw/smsbox.c: dict_key_count() now exists, so use it in
	outstanding_requests().

2000-12-15  Richard Braakman  <dark@wapit.com>

	* gw/smsbox.c: smsbox_req_sendsms and smsbox_req_sendota made
	static, they're not called from anywhere else.

2000-12-13  Richard Braakman  <dark@wapit.com>

	* test/fakewap.c: Indented gwlib_shutdown() call according to
	our coding style.
	
2000-12-13 Paul Keogh <paul.keogh@anam.com>

	* test/fakewap.c: Added gwlib_shutdown() call.

2000-12-13  Richard Braakman  <dark@wapit.com>

	* Making release 0.13.1.

2000-12-13  Richard Braakman  <dark@wapit.com>

	* Updated NEWS file.  Compare 0.13 with 0.12 series instead of
	with 0.11 series, on the assumption that people who use development
	versions will still read the release notes for stable versions.

	* Documented --with-malloc=slow.

2000-12-11 Aarno Syvnen <syvanen@wapit.com>

	* wap/wsp_unit.c: Added handling of S_Unit_Push.req

2000-12-11  Richard Braakman  <dark@wapit.com>

	* gw/smsc_smpp.c: Made smpp_reopen() work, and not crash.
	Made it not destroy the smsc structure when it fails, because
	that's not part of the interface.

	* gw/smsc.c: Made smsc_reopen() also lock the smsc structure.

	* gwlib/socket.c: In read_available(), pass the actual value of
	the largest fd used to select, rather than FD_SETSIZE.

	* gw/urltrans.c: encode_for_url returns an Octstr, but callers
	treated it as char *.  Fixed that.
	Free URLTranslation->keyword with octstr_destroy, not gw_free.

	* gw/smsc_smpp.c: Removed unused lists sent_mt and delivered_mt.

2000-12-11  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.c: octstr_format(): Implement %% in format strings.

2000-12-08  Aarno Syven <syvanen@wapit.com>

	* wap/wsp_push_client.c, wap/wap_events.def: Really resolve
	a conflict.

2000-12-09  Lars Wirzenius  <liw@iki.fi>

	* wap/wsp_push_client.c, wap/wsp_push_client_states.def,
	wap/wsp_server_push_states.def, wap/wsp_session.c: Commented
	things out so that things will at least compile and pass "make
	check". I assume Aarno forgot to add one or two files or other
	changes when he committed and that things do compile in *his*
	work directory.

2000-12-08  Aarno Syvnen <syvanen@wapit.com>

	* wap/server_push_machine.def, wsp_server_push_states.def: Two new
	modules to handle wsp push.

	* gw/wap_push_ota.c|h: These files are used, for now,  only for 
	debugging

	* wap/wap_events.def: For TR-Abort.ind, added the field ir_flag. This 
	tells are the indicator responder or initiator and TR-Invoke.cnf, 
	added field addr_tuple, which tells the session to which the event
	should be sent.

	* wap/wtp.h: More readable strings instead of magic numbers.

	* wap/wsp_push_client.c: Added calls to disconnect and suspend a
	session. Combined indications and dispatching. Separate abort 
	functions for the initiator and the responder. 

	* wap/wsp.h: Added definition of server push machine.

	* wap/wsp_server_session_machine.def: Added list for push machines.
        Renamed macro METHODMACHINES to MACINESLIST.

	* wap/wsp_session.c: Added statics to handle wsp push. In function
	find_session_machine, added handling of push events. Destroying both
	method and push machines.
	
	* wap/wtp_init.c, wap/wtp_resp.c: Assign values of new flags.

	* wap/wap.h: Added a new interface function wap_push_ota_dispatch_
	event.

	* wap/wsp_push_client_machine.def: Added session_id.

2000-12-08  Richard Braakman  <dark@wapit.com>

	* gw/bb_smsc.c, function sms_receiver: Made the increase in sleep
	times much slower (multiply by 2 instead of by 100).  This avoids
	having the bearerbox sleep a whole second just because the SMSC
	took longer than 0.01 seconds.  This scenario is pretty common
	on dialup links.

2000-12-07  Lars Wirzenius  <liw@iki.fi>

	* contrib/{fortune.cgi,ping.cgi,sendsms,smstomail.cgi}: Added
	some sample services that can be used with Kannel. They're
	unlikely to be useful in real life, but might be amusing to test.

2000-12-07  Lars Wirzenius  <liw@iki.fi>

	* gw/smskannel.conf: Removed the "www" example service, since
	people seem not to remove it from production installations.
	They should, since it's potentially a security problem.

2000-12-06  Richard Braakman  <dark@wapit.com>

	* gw/wapbox.c: Memory cleanup: Call close_connection_to_bearerbox()
	when exiting, and destroy the bearerbox_host string.

2000-12-06  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c: Removed compilation warning about `catref' being
	possibly used without initialization in send_message. While doing
	this, fixed some formatting (long lines, comment style), frivolous
	argument order changes, and renamed catref to msg_sequence,
	so as to use the same name everywhere.
	
	Also removed the commented-out part that disabled catenation
	on messages with UDH. It was enabled since the code before the
	rewrite didn't seem to deal with this case properly, and I hadn't
	time to find out the correct way to handle this.

2000-12-06  Richard Braakman  <dark@wapit.com>

	* Not Finnish and not independent.  (Ruled by a queen)

	* Applied Mikael Gueck's cleanup patch for SMPP.

	* gw/smsc_smpp.c: Fixed memory leak in data_receive(), spotted
	by Milko Videv.

	* gw/smsc_smpp.c: Fixed minor compiler warnings, deleted unused
	functions charset_smpp_to_iso(), charset_iso_to_smpp(), and
	actively_unbind().

	* gw/smsc_smpp.h: Deleted declarations of unused functions.
	Deleted translation_table (no longer used)

2000-12-06  Yann Muller  <ymuller@3glab.com>

	* gw/smsbox.c: Corrected reference number for concatenation UDH,
	recalculate UDH length after adding concatenation info and adjust
	if UDH was empty. Commented out reset of 'catenate' if UDH is
	already present.
	
	* gw/smsc_at.c: fixed the length of the user data in pdu_encode().
	
2000-12-05  Lars Wirzenius  <liw@iki.fi>

	* gw/wapbox.c: Converted to use bearerbox communication stuff
	from gw/shared.c (and therefore Connection) instead of using
	old plain socket stuff. Among other things, this kills one thread
	(empty_queue_thread).
	
	* gw/shared.c: Check for write errors and don't report messages
	that were sent.

	* checks/check_fakewap.sh: Set log level to 0 and shorten sleeps
	between box startups.
	
	* gw/smsbox.c: Don't use \0 in format string, use %c and argument
	0 instead. \0 has a tendency to cut C strings short...

2000-12-05  Lars Wirzenius  <liw@iki.fi>

	* gw/shared.[ch]: Moved bearerbox communication stuff from
	smsbox.c to shared.c, so that it can easily be used by wapbox
	as well.
	
	* gw/smsbox.c: Related changes.
	
	* gw/wapbox.c: Renamed "running" to "running_ok", until the
	wapbox will use program_status from shared.c.

2000-12-05  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc.c: Removed calls to str_find_substr.
	
	* gwlib/utils.[ch]: Removed now-unused str_find_substr function.

2000-12-05  Lars Wirzenius  <liw@iki.fi>

	* gw/urltrans.[ch]: Removed urltrans_accepted_smsc(), since
	it wasn't being used. Made the accepted SMSC list in an
	URLTranslation be a List. This allows us to kill one more call
	to str_find_substr.
	
	* gwlib/octstr.[ch]: Wrote octstr_item_match.

2000-12-05  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.[ch]: Wrote octstr_split.
	
	* gw/urltrans.c: Use a Dict to look up the URLTranslation,
	instead of a linear search from the whole list. This is somewhat
	faster and results in cleaner code.

2000-12-05  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gwstr.[ch], gwlib/conffile.c: Moved trim_ends to
	conffile.c, and the other functions were no longer used, so
	removed the gwstr module.
	
	* gwlib/gwlib.h, gwlib/socket.h: Removed include for gwstr.h.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

    	* gw/urltrans.c: Made urltrans_get_pattern return an Octstr, instead
	of a C string.

	* gw/smsbox.c: Related changes.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/urltrans.[ch]: Change function call interfaces to use Octstr
	instead of C strings.

	* gw/smsbox.c: Related changes.
	
	* gw/smsbox.c: When checking whether sendsms is allowed, call
	is_allowed_ip properly, with deny_ip, not instead of allow_ip.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/urltrans.[ch]: Reformatted for new coding style.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c: Fixed the PAM code to use warning and error,
	instead of printf.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c: Reformatted the PAM code. Hopefully it still works.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c: Rearranged code for clarity, plugged a memory leak
	and fixed a memory freeing bug (memory was being freed twice).

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c: Merged smsbox_req.c into smsbox.c, because they
	called each other backwards and forwards and the merged file is
	small enough to be manageable, so there's no point in keeping
	them separate.
	
	* gw/smsbox.h, gw/smsbox_req.[ch]: Removed.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox_req.c: Rearranged code to be somewhat clearer.
	
	* gw/smsbox.c: Removed ancient file comment.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox_req.c: Rewrote SMS splitting so that it is hopefully
	now somewhat more understandable.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_emi.c: Avoid NULL pointer dereference if sender has
	not been set. Thanks to Armin Hurm for finding this.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* doc/userguide/userguide.xml: Explain the syslog-level variable
	for wabpox.

2000-12-04  Lars Wirzenius  <liw@iki.fi>

	* README: Moved information from doc/platforms/FAQ.solaris to
	README, because the goal is to reduce the number of places one
	has to look for documentation, not increase it. Whoever put the
	file in CVS didn't even document it in the ChangeLog.
	
	* doc/platforms/FAQ.solaris: Removed.

2000-12-01  Richard Braakman  <dark@wapit.com>

	* gw/heartbeat.c: Fix busy-loop in heartbeat thread.

2000-12-01  Lars Wirzenius  <liw@iki.fi>

	* contrib/php-admin/*: Added PHP administration stuff and
	sendota/sendvcard/etc stuff from Bjarne Saltbaek.

2000-12-01  Lars Wirzenius  <liw@iki.fi>

	* configure.in: Accept libxml 2.2.10. (Untested, since I don't
	have 2.2.10 yet.)

2000-11-29  Richard Braakman  <dark@wapit.com>

	* wap/wap_events.*: Gave events pretty names, for logging.
	("TR-Invoke.cnf" instead of "TR_Invoke_Cnf").

2000-11-29  Richard Braakman  <dark@wapit.com>

	* wap/wap_events.def, wap/wsp_push_client.c,
	wap/wsp_push_client_states.def: Brought Push-related events in
	line with the scheme used by other WSP events.

2000-11-29  Richard Braakman  <dark@wapit.com>

	* gwlib/gwpoll.h, gwlib/gwthread-pthread.h: FreeBSD compatibility
	fix.  Specify "no timeout" on poll by using INFTIM, if it's
	available, rather than using a random negative value.

2000-11-29  Aarno Syvnen <syvanen@wapit.com>

	*wap/wsp_push_client_states.def: Changed names of dispatching 
	functions to locally used ones.

2000-11-29  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: removed the UDHL from the encoding of the PDU.
	The length should already be in the UDH.

2000-11-28  Richard Braakman  <dark@wapit.com>

	* wap/wsp_session.c, wap/wsp_server_session_states.def,
	wap/wsp_server_method_states.def: Renamed static functions
	so that they do not start with "wsp_", to avoid confusion.
	(In the future the client side will have its own versions
	of these, and names with wsp_ look like they are global.)

2000-11-28  Richard Braakman  <dark@wapit.com>

	* wap/wap_events.def: Added WSP client-side events (not used yet).

	* Renamed "session_id" to "session_handle" for WSP session events
	that are used by both client and server side.  The client side does
	not know the session id until after it is connected, so it can not
	use that as a handle.

	* Made "method" an OCTSTR field instead of INTEGER.  Now the 
	application layer need no longer worry about method encoding
	values.  This is a first step toward supporting extended methods,
	which have no fixed number.

	* Renamed S_MethodInvoke_Ind fields to be closer to the spec.

	* Introduced OPTIONAL_OCTSTR, and require that OCTSTR and
	ADDRTUPLE fields never be NULL.  wap_event_assert now checks this.
	HTTPHEADER, CAPABILITIES, and OPTIONAL_OCTSTR fields can be NULL.
	All uses have been checked to see if they can deal with this,
	and some have been adjusted.

	* wap/wap_events.def: Formalized distinction between fields in
	the spec and fields added by Kannel.

	* wap/wsp_push_client.c: In push_client_machine_find_or_create,
	add default case to handle unexpected event types, and always
	destroy "pdu" variable (to avoid gcc warnings).

	* wap/wsp_push_client.h: Define INTEGER fields as long, just like
	everywhere else.

2000-11-28  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.[ch], gw/smsbox_req.[ch]: Call function to write
	message to bearerbox directly, instead of via function pointer.

2000-11-28  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox_req.c: fixed that sendsms user is again shown (it
	disappeared during some authorization work, I guess)

	* gw/urltrans.c|h: added function urltrans_username

2000-11-28  Aarno Syvnen <syvanen@wapit.com>

	* gw/wapbox.c: Initialize and shutdown the push client.

2000-11-28  Aarno Syvnen <syvanen@wapit.com>

	* wap/wsp_push_client*: Added client push machine. Wtp responder 
	will send class 1 transaction messages to this as long as wsp client
	session machine is not implemented.

	* wap/wap_events.def: Added some push events

	* wap/wap.h, wtp_resp.c, wtp_resp_states.def: Sending events from 
	wtp responder to push client implemented.

2000-11-28  Lars Wirzenius  <liw@iki.fi>

	* gwlib/log.[ch]: Added a log_ prefix to functions, except for
	the actual message printing ones. Those are used in too many
	places to warrant a change.

	* checks/check_*.c, gw/bearerbox.c, gw/smsbox.c, gw/wapbox.c,
	gwlib/utils.c, test/drive_wapbox.c, test/test_http.c,
	test/test_http_server.c, test/wml_tester.c: Related changes.

2000-11-28  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox_req.c: Deal with failed requests in the proper manner,
	which does not include segfaulting.

2000-11-28  Lars Wirzenius  <liw@iki.fi>

	* checks/check_sendsms.sh: Wait a couple of seconds before making
	http requests so that the smsbox has time to start up properly.
	
	* gw/html.c: Moved the html prefix and suffix stripping function
	into smsbox_req.c, since it doesn't really do anything with html,
	just octstrs. Cleaned up url_result_thread slightly.

2000-11-28  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox_req.c: Accept WML responses as well as plain text
	and HTML responses.

2000-11-28	Paul Keogh	<paul.keogh@anam.com>

	* gwlib/gwmem-check.c: Removed compiler warning of
	"gwmem-check.c(370) : unary minus operator applied to unsigned type, 
	result still unsigned."

2000-11-27  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox_req.c: Made obey_request return an Octstr, instead
	of a C string.

2000-11-27  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox_req.c: Formatted to follow coding style.

2000-11-27  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c, gw/smsbox_req.c: Changed the thread structure for
	smsbox so that threads are not created dynamically for each new
	message, but instead threads are created at startup and messages
	are passed around between then via queues.
	
	* gw/urltrans.c: Fixed memory leak by remembering to destroy
	the deny_ip string as well.

2000-11-27  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: corrected explanation of smsc-id
	in sendsms interface chapter

2000-11-24  Richard Braakman  <dark@wapit.com>

	* Added Suspend/Resume support. (Not well tested yet)

	* wap/wsp_pdu.def: Note that the capabilities field in a Resume
	PDU is reserved.

	* wap/wsp_server_method_states.def: Explain why we don't
	decrement N_Methods.

2000-11-24  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc.c: oops, did fix to wrong place, silly me

2000-11-24  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gwmem-check.c: Add casts to avoid comparing pointers
	and integers.

2000-11-24  Richard Braakman  <dark@wapit.com>

	* gw/heartbeat.[ch]: New files, contain heartbeat code shared
	between wapbox and smsbox.

	* gw/wapbox.c, gw/smsbox.c: Use shared heartbeat code.

	* gw/smsbox.c: Use Connection for the link with the bearer box.
	Made bb_host an Octstr.

	* gw/smsbox_req.c: write_msg() cannot fail, so don't check
	return codes.

	* gwlib/conn.c: Memory leak debugging: all callers of unlocked_get
	claim the result as theirs.

	* gwlib/http.c: Fix memory leak in read_chunked_body_crlf().

	* configure.in, config.h.in: Added --with-malloc=slow, which does
        a more careful (but much slower) check in find_area().  This can
	sometimes report problems that would otherwise cause a segfault.

	* gwlib/gwmem.h, gwlib/gwmem-check.c: Implement --with-malloc=slow.
	Also do the careful check if the pointer looks like one of our
	standard fill patterns.

	* gwlib/octstr.c: Added seems_valid() call in octstr_dump().

	* gwlib/http.c: Get rid of clients_in_fdset list.  This removes
	a race condition that would cause occasional segmentation faults,
	but leaves us with some "memory leaks".  (They aren't really,
	but are reported as such.)

	* gw/smsc_emi.c: Converted previous patch to our coding style
	wrt parenthesis usage.  emi_open_session: Added missing final
	return.  emi_fill_ucp60_login: Made ia5passwd dynamically
	allocated, since variable-length arrays are not standard C.

2000-11-24  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc.c, gw/smsc_emi.c: applied authentication patch by Joerg
	Pommnitz

2000-11-23  Richard Braakman  <dark@wapit.com>

	* wap/wsp.h, wsp/wsp_headers.c, wap/wsp_session.c:
	Changed some "XXX" comments.

	* wap/wsp_pdu.h, wap/wsp_server_method_states.def, wap/wsp_unit.c:
	Introduced GET_METHODS and POST_METHODS identifiers to avoid using
	0x40 and 0x60 as magic numbers.

2000-11-23  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: reverted default GSM alphabet patch and added
	call to charset_latin1_to_gsm().
	
2000-11-23  Richard Braakman  <dark@wapit.com>

	* gw/smsbox.c: Moved http_proxy_ variables into init_smsbox, since
	they are used only there.  Made http_proxy_host an Octstr.

	* gw/smsbox.c: Wait for http_request_thread to terminate, when
	shutting down the box.

	* gw/smsbox_req.[ch], gw/smsbox.c: Added smsbox_req_shutdown(),
	so that it can clean up its copy of global_sender.

2000-11-23  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Deal with HTTP version numbers above 1.1 also
	on the server side. Use a single function for the checking that
	is used by both the client and server.

2000-11-23  Richard Braakman  <dark@wapit.com>

	* wap/wtp_init.c, wap/wtp_init_states.def, wap/wtp_resp.c,
	wap/wtp_resp_states.def: Added static send_abort() and 
	send_ack() functions, to simplify the state machine
	definitions.

2000-11-23  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: some corrections to just written

2000-11-23  Richard Braakman  <dark@wapit.com>

	* gw/smsc_at.c, gw/smsbox_req.c: Replaced some strcpys with
	pointer assignments.

	* doc/userguide/userguide.xml: Replaced an & with &amp; so that
	it compiles.

	* checks/check_sendsms.sh: Reduced sleep after starting bearerbox,
	because it starts up faster now.  Added "sleep 5" before killing
	bearerbox, because smsbox segfaults if it's still busy when the
	bearerbox goes away.

2000-11-23  Yann Muller  <ymuller@3glab.com>

	* doc/userguide/userguide.xml: Added Stipe Tolj's explanations
	for multiple OTA configs.

2000-11-23  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: Added some explanation of SMS and
	what is an SMS gateway - might need editing, but neverthless there
	is some text

	* doc/userguide/sms-gateway.fig: New picture to support that
	explanation

2000-11-22  Richard Braakman  <dark@wapit.com>

	* gw/smsc.c, gw/smsc_cimd.c: Reformatted.

2000-11-22  Lars Wirzenius  <liw@iki.fi>

	* test/drive_wapbox.c: Killed a memory leak by destroying a
	temporary octet string.
	
	* gwlib/gwmem-check.c: When dumping allocated areas, dump the
	first few bytes of the area.
	
	* gwlib/http.c: Destroy HTTPClients before destroying the fdset.

2000-11-22  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: Moved some explanations to correct
	places, to avoid mixed up context

2000-11-22  Richard Braakman  <dark@wapit.com>

	* gwlib/fdset.c: When destroying an fdset with active fd's,
	close them first and signal that event.

2000-11-22  Lars Wirzenius  <liw@iki.fi>

	* doc/userguide/userguide.xml: Add notes about HTTP proxy username
	and password.

2000-11-21  Richard Braakman  <dark@wapit.com>

	* wmlscript/wserror.c, wmlscript/wslexer.c:
        Fixed some assertions with side effects.

2000-11-21  Richard Braakman  <dark@wapit.com>

	* gw/html.c, convert_html_entity(): Made conversion of entities
	like &#1234; work.

2000-11-21  Richard Braakman  <dark@wapit.com>

	* gw/html.c, gw/msg.c: Reformatted.

2000-11-21  Richard Braakman  <dark@wapit.com>

	* gw/cgi.[ch]: Removed, they are no longer used.

	* gw/smsbox.c, gw/smsbox_req.[ch]: Removed inclusion of cgi.h.

2000-11-21  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c, gwlib/conn.c, gwlib/list.c,
	gwlib/utils.c (roundup_div): Formatted according to our coding style.
	All of gwlib/ is now converted.

2000-11-21  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Made persistent connection detection work with
	HTTP/1.0 responses and responses with the "Connection: close"
	header. Also removed an extra "Using proxy" report.

	* ChangeLog: Indented the first line of the previous log entry
	properly. (8, not 4)

2000-11-21  Yann Muller  <ymuller@3glab.com>

	* gwlib/utils.[ch], gw/smsbox_req.c: moved roundup_div() from
	smsbox_req.c to utils.c so it can be used from other files.
	
	* gw/smsc_at.c: fix for 7 bit encoded PDU's with a UDH.
	
	* gw/smsbox_req.c: maxdatalength fix in do_split_send().
	
2000-11-21  Lars Wirzenius  <liw@iki.fi>

	* checsk/check_fakesmsc.sh: Sleep before starting background
	processes, so that the previous ones have time to start up
	properly.

	* ChangeLog: Indented the previous log entry properly. (8, not 4)

2000-11-21  Yann Muller  <ymuller@3glab.com>

	* gw/smsbox_req.c: sendota patched (Stipe Tolj) to accept more 
	that one OTA configuration. 
	
2000-11-20  Richard Braakman  <dark@wapit.com>

	* Turned WTP and WSP protocol stacks into a library.  Source 
        files moved to a directory called "wap", which generates libwap.a.
	The interface to this library is specified in wap/wap.h.
	The application layer remains in gw/.

	* In WAPAddrTuple, rename "client" and "server" to "remote"
	and "local", to prevent confusion in client-side code.

	* While moving files to wap/, renamed declaration files to
	".def", and made filenames use _ instead of - as separator.
	Also put "server" in the name of some WSP files, to make
	room for future "client" files.

	* Sanitized header files that include other header files.
	Now each header only includes what it needs.

	* Layers can be started independently, and use configurable
	dispatch functions.

	* wap/timers.c, wap/wsp_strings.c: Allow nested initializations
	and shutdowns, because layers that use them can be started
	independently.

	* WTP layer now uses datagram events instead of Msg structures
	for its lower level.

	* wtp_send.c converted to wtp_pack.c, because it no longer
	does its own sending.

	* wtp_tid.c uses WAPAddrTuple instead of its own structure.

	* gw/wap-appl.c, gw/wapbox.c: Use the new interface.

2000-11-20  Lars Wirzenius  <liw@iki.fi>

	* gwlib/dict.c: Avoid an extra list_search if we know the 
	list was empty.

2000-11-20  Richard Braakman  <dark@wapit.com>

	* Making release 0.13.

2000-11-20  Richard Braakman  <dark@wapit.com>

	* gwlib/dict.c: Made it initialize empty table entries with
	NULL instead of empty lists, to save memory.

	* gwlib/http.c: Fix memory leak in send_request() when retrying
	a request.

	* gwlib/http.c: Make sure that a retried request really gets
	a _new_ connection.  Otherwise it could be rejected just because
	two connections have timed out.

2000-11-19  Derry Hamilton  <rasilon@tardis.ed.ac.uk>

	* solaris/prototype: Updated the prototype to reflect the newer
	install style.

2000-11-17  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smsc.c (sms_receiver): usleep limit to avoid portability
	problems, patch by Jarkko Oikarinen

2000-11-16  Richard Braakman  <dark@wapit.com>

	* gwlib/http.c: Responses with status 1xx, 204, or 304 are
	defined as having no message body, so don't expect one.

2000-11-16  Richard Braakman  <dark@wapit.com>

	* gwlib/http.c: Removed calls to conn_unregister that were followed
	by calls to conn_destroy.  It's redundant, and in one case the
	connection might be NULL.

	* gwlib/conn.c: Add some conn != NULL assertions.

2000-11-16  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: In function at_open_connection() added parity
	line for this modem type. In function at_open() adding sleep
	period only for this modem type, may be expanded. In function
	pdu_extract() changed skipping of 00 sequence for the specific
	modem types. (patch by Stipe Tolj)

2000-11-15  Richard Braakman  <dark@wapit.com>

	* gw/wsp-session.c: Address tuples are now included in events
	sent from WTP to WSP, so the code for looking up tuples based
	on WTP handles is no longer needed.

	* gw/wtp_resp.[ch]: Removed now-unused functions 
        wtp_resp_get_address_tuple, find_resp_machine_using_mid,
	and resp_machine_has_mid.

2000-11-15  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: added wapbox load based balancing, based on
	ofiginal patch by Rishi Lal and Priya Patil

2000-11-15  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_wrapper.c, gw/smscconn_p.h: Added.

	* gw/smscconn.c: moved wrapping stuff into smsc_wrapper.c, and
	private structure data into private header smscconn_p.h so that
	caller (main bearerbox) does not need to worry about that

2000-11-14  Richard Braakman  <dark@wapit.com>

	* doc/CodingStyle: Document our practice of having include files
	include other files.

2000-11-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Simplified code a bit by combining the two
	different states (reading_body and reading various parts of a
	chunked body) into one.

2000-11-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Implemented, I hope, proxy_add_authentication(),
	but I can't test it, since I don't have a proxy that requires
	authentication. If it doesn't work, hopefully people will tell me.

2000-11-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.[ch]: Wrote function http_add_basic_auth.
	
	* test/test_http.c: Added code to optionally use Basic Auth
	with requests.

2000-11-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Report when connections to servers are opened
	and when a proxy is being used (via debug).
	
	* test/test_http.c: More informative output with -h.

2000-11-14  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: phone numbers starting with '+' or '00' are
	coded as international numbers, others are left with the 
	default (Unknown).	
	
2000-11-13  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c, gw/wapbox.c, gwlib/http.[ch], test/test_http.c:
	Changed the HTTP proxy configuration interface so that the access
	to the proxy can be authenticated. The actual implementation
	is still lacking, but the interface changed to http_use_proxy()
	is done.

2000-11-13  Lars Wirzenius  <liw@iki.fi>

	* Makefile.in: Use $(DESTDIR) in the install targets.

2000-11-13  Richard Braakman  <dark@wapit.com>

	* configure.in, config.h, gwlib/gwassert.h: Use NO_GWASSERT
	instead of NDEBUG.  Have gwassert.h define NO_GWASSERT if
	NDEBUG is defined.

	* gw/smsc_cimd2.c, gwlib/conn.c, gwlib/gwlib.h, gwlib/octstr.c:
	Use NO_GWASSERT instead of NDEBUG.

2000-11-10  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Implemented persistent connections on the
	client end.

2000-11-10  Richard Braakman  <dark@wapit.com>

	* gwlib/gwlib.c: Call gwlib_protected_shutdown() last, because
	the protected functions are used by other shutdown functions.
	Thanks to Paul Keogh for pointing this out.

	* gwlib/gwmem.h, gwlib/gwmem-check.c, gwlib/gwlib.c:
	Added gwmem_shutdown() function, to be called after
	gw_check_leaks().  This makes it possible to check for
	leaks without shutting down.

	* doc/userguide/userguide.xml: Document the configure options
	added below.

2000-11-10  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Implemented persistent connections on the
	server end.

2000-11-10  Richard Braakman  <dark@wapit.com>

	* configure.in: Added --with-defaults to make it possible to
	configure for speed or for debugging, with one option.
	Added --disable-assertions to set NDEBUG.  Made --with-malloc
	and --disable-assertions use the default set by --with-defaults. 
	Changed some whitespace to make ./configure --help align nicely.

	* config.h.in: Added NDEBUG option

	* gwlib/gwthread-pthread.c: Include "gwlib/gwlib.h", not
	<gwlib/gwlib.h>.  The latter made "make depend" skip the
	inclusion.  This fixes the problem of needing to run
	"make clean" after switching malloc wrappers.

	* gwlib/thread.[ch]: Remove mutex_try_lock().  It's not longer
	used, and it had portability issues.

	* gwlib/conn.c: If conn_set_output_buffering is called, react
	to the new buffer size immediately.

	* gwlib/conn.[ch]: Remove conn_wait_multi().  It's not used
	and will not be needed by the new HTTP design.

	* gwlib/conn.c: Fix conn_flush to conform to its description
	and to manage its lock right.

	* gwlib/conn.c: Make unbuffered connections the default.

2000-11-10  Kalle Marjola  <rpr@wapit.com>

	* gw/smscconn.h|c: Added. New SMSC connection interface with stub
	of upcoming connection module (and wrapper for old system)

2000-11-10  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.[ch]: Killed http_get and http_post, since they're
	now obsolete and unused. http_get_real remains until numhash.c
	and smsbox_req.c are converted.

2000-11-10  Lars Wirzenius  <liw@iki.fi>

	* gw/wap-appl.c: Reformatted.

2000-11-10  Lars Wirzenius  <liw@iki.fi>

	* gw/wap-appl.c: Changed thread structure so that there is a
	static number of thread regardless of how many requests are
	made. This should make things a bit faster when the load is heavy.
	
	* gwlib/http.[ch]: Wrote function http_client_signal_shutdown,
	to allow the wapbox to shutdown.

2000-11-10  Lars Wirzenius  <liw@iki.fi>

	* gw/wap-appl.c: Rearranged code in preparation for changing
	the thread structure so that a new thread is not started for
	each request.

2000-11-10  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.[ch]: Updated documentation, moved HTTP_PORT to .c,
	since no-one else needs to know it.

2000-11-09  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: encode 7 bit messages in the default GSM alphabet
	(thanks to Mike Gaertner).

2000-11-08  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Deal with client_SDU_size being 0, which means
	there is no limit.  Thanks to Ruud Schramp for pointing this out.
	Also made connectionless mode set it to 0 instead of an arbitrary
	value.

2000-11-08  Lars Wirzenius  <liw@iki.fi>

	* Makefile.in, configure.in: Made "make install" work in a more
	sensible way, at least as far as the Filesystem Hierarchy Standard
	(pretty much all Linux systems, and mostly BSD systems as well)
	is concerned. /usr/bin and /usr/sbin are now used properly,
	and manual pages are installed as well. Also, the User Guide is
	installed in a more sensible way.
	
	* debian/rules: Updated accordingly.
	
2000-11-08  Lars Wirzenius  <liw@iki.fi>

	* checks/check_sendsms.sh: Remove log files if check was
	successful.

2000-11-08  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: fixed error that caused bearerbox to possibly
	segfault when connection from illegal IP was tried

	* gw/smsbox_req.c: make sure that UDH length is set properly
	
2000-11-07  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Bugfix. Destroy the new_server_sockets list.

2000-11-07  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Massive rearranging and some renaming, but no real
	changes. The code is now much cleaner and easier to understand.

2000-11-07  Tuomas Luttinen  <tuo@wapit.com>

	* gwlib/octstr.c: Added some protection against endless loops in 
	strip-functions for special cases.

	* gw/wml_compiler.c: Memory leak with malformed variable fixed. 
	Also fixed the bug that reserved words cannot be variable names,
	eg $(password).

2000-11-07  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.[ch]: Removed old server API.

2000-11-07  Lars Wirzenius  <liw@iki.fi>

	* test/drive_wapbox.c: Converted to use new HTTP server API.

2000-11-07  Richard Braakman  <dark@wapit.com>

	* gwlib/http.c: Fix memory leak in client_read_body.
	Make server_thread not warn if gwthread_poll fails with EINTR.

	* gwlib/conn.[ch]: Added conn_read_error(), and a read_error
	field to the Connection structure.
	Added conn_read_everything().

	* gwlib/http.c: In client_read_body, use conn_read_everything
	instead of conn_inbuf_length and conn_read_fixed.  This way
	it will detect end-of-file.

	* gw/wapbox.c: Make send_heartbeat_thread() not send more
	heartbeats than twice the usual frequency.  (We can live with
	sleep() not being exact, but when the wapbox is run inside a
	debugger it tends to go wild.)

2000-11-07  Lars Wirzenius  <liw@iki.fi>

	* checks/check_sendsms.sh: Sleep for five seconds before starting
	smsbox; this prevents the smsbox from crashing before the
	bearerbox is ready to accept its connection.
	
	* gw/smsbox.c: Adapted to new HTTP server API.
	
	* gwlib/http.c: Bugfix. If we fail to re-use a connection, and
	re-open it, we must then quit the handler for the old connection.

2000-11-07  Lars Wirzenius  <liw@iki.fi>

	* checks/check_sendsms.sh: Wrote.

2000-11-07  Lars Wirzenius  <liw@iki.fi>

	* checks/check_fakesmsc.sh: Wrote.

2000-11-06  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Variables with syntax errors are now discarded 
	with warning instead giving up with the hole WML source. Some memory 
	leak still exists. Also an unknown tag produces a warning in the log.

2000-11-06  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_at.c: Applied fix from Paul Keogh to hex number
	conversion.

2000-11-06  Lars Wirzenius  <liw@iki.fi>

	* utils/kannel-redhat.init.d: New file from Fabrice Gatille.

2000-11-06  Lars Wirzenius  <liw@iki.fi>

	* configure{,.in}, config.h.in: Add support for PAM enable and
	disable.
	
	* gw/smsbox_req.c: Fixed the PAM stuff so that it will compile
	with the new gwmem.h protectors against malloc and friends.

2000-11-06  Lars Wirzenius  <liw@iki.fi>

	* README, doc/userguide/userguide.xml: Moved information on how
	to use configure from README to User Guide.

2000-11-06  Lars Wirzenius  <liw@iki.fi>

    	* Bearerbox converted to use with ne HTTP server API, with help
	from Kalle Marjola.

	* gw/bb_http.c: Only use one thread to handle HTTP requests.
	Added function httpadmin_stop to help with shutdown
	synchronization issues.
	
	* gw/bearerbox.[ch]: In signal handler, call bb_shutdown, instead
	of set_shutdown_status. This point may need to be implemented
	better later. Call httpadmin_stop in main.
	
	* gwlib/http.c: Have http_close_all_server kill the server threads
	as well, including killing the FDSet poller thread.

2000-11-06  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_emi.c (emi_open_ip): check if allow_ip set. Thanks for
	Juho-Pekka Virolainen for noticing this.

2000-11-06  Yann Muller <ymuller@3glab.com>

	* gw/smsc_at.c: fixed Premicell bug. Added sleep(1) for nokiaphone.

2000-11-05  Richard Braakman  <dark@wapit.com>

	* gwlib/http.c: Make the interface of client_read_body() match the
	rest of the design.  This makes the http module work with HTTP/1.1
	servers again.

2000-11-03  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: A conformance patch: card and template elements 
	cannot have 2 or more do elements of the same name, PI are ignored,
	unknown tags and CDATA are now processed. Also some code was cleaned 
	into the new coding standard.

2000-11-03  Richard Braakman  <dark@wapit.com>

        * gw/wsp_headers.c: If an Expires header has an invalid date, then
        encode it as a date far in the past.  We can't just skip the header
        because RFC2068 says such a response should be treated as already
        expired, and we have to tell the client to do that.

        * gw/wsp_headers.c: Make sure that a Multi-octet-integer is always
        at least one octet long, even if its value is 0.
      
2000-11-03  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: changed 'sent..' log event to clearly state that it
	only means that the message was sent to bearerbox, not further

2000-11-03  Lars Wirzenius  <liw@iki.fi>

	* checks/check_list.c: Fixed synchronization problems that
	occasionally caused it to randomly fail. The list code itself
	was OK, but the checking code did not synchronize thread startups
	correctly.

2000-11-03  Lars Wirzenius  <liw@iki.fi>

	* test/test_http.c: Change the error message when there are
	no command line arguments from "Floating point exception (core
	dumped)" to the standard help text.

2000-11-03  Lars Wirzenius  <liw@iki.fi>

	* test/test_http_server.c: Converted to use the new HTTP server
	interface. This displayed bugs in shutdown situations for the
	new HTTP code.
	
	* gwlib/http.c: Fixed bugs in shutting down.

2000-11-03  Lars Wirzenius  <liw@iki.fi>

	* test/test_http_server.c: Reformatted to coding style.

2000-11-03  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.[ch]: First cut at changing the HTTP server side
	interface to be more sensible about the number of threads. Doesn't
	work quite well yet (i.e., if I change test/test_http_server.c,
	make check fails), but I want it committed for now. Shouldn't
	harm anyone, as long as they don't use it.

2000-11-02  Paul Keogh  <paul.keogh@anam.com>

	* gw/cookies.c: Fix for some cookie management bugs.

2000-11-01  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c: Fix memory leak if poll() was
	interrupted.

2000-11-01  Richard Braakman  <dark@wapit.com>

	* gw/smsc_emi.c: Cleaned up a bit, made thread-safe.

	* gw/smsc_p.h, gw/smsc.c: Declare and initialize new EMI fields.

2000-11-01  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Make octstr_read_file use a smaller buffer,
	to reduce stack usage.

2000-11-01  Lars Wirzenius  <liw@iki.fi>

	* gw/wap-appl.c: Implement magic URL kannel:alive, based on
	patch from Neil Hunter.

2000-11-01  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gwlib.h, gwlib/list.c: Move around include for gwmem.h
	so it comes after thread.h, because thread.h includes pthread.h,
	and Cygwin's pthread.h includes malloc.h, which gets annoyed by
	the macros gwmem.h defines.

2000-11-01  Kalle Marjola  <rpr@wapit.com>

	* gwlib/conffile.c (config_sanity_check): fixed that 'otaconfig'
	is accepted, too, thanks to Philip Psiloinis for pointing this out

	* gw/bb_smsc.c: make sure that lists are emptied

2000-11-01  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: handles message lengths of 8*n+1 properly.
	Added comments to encode7bituncompressed().

2000-10-31  Richard Braakman  <dark@wapit.com>

	* gwlib/fdset.c: Handle EINTR.

2000-10-31  Richard Braakman  <dark@wapit.com>

	* Moved wap_addr functions from wapbox.c to new file wap_addr.c,
	and created wap_addr.h for it.

2000-10-31  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.[ch]: Make it possible to change the callback info
	efficiently, by calling conn_register again with the same fdset.

	* gwlib/fdset.c: Fiddled with poller loop to deal with callback
	functions doing strange things to the poll array while it's being
	scanned.

2000-10-31  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Now uses FDSet, instead of explicit waits,
	and now again does concurrent transactions as a side effect,
	but only does one transaction per HTTP connection. The code is
	in need of cleaning up quite a bit, but should work, except for
	not destroying the FDSet at shutdown.

2000-10-31  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.c: Implement conn_unregister() too.

2000-10-31  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Converted HTTP transaction handling into a state
	machine, so that FDSets can be easily be used with HTTP.

2000-10-30  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gwstr.[ch]: Removed unused functions strndup and
	str_reverse_case_seek. The rest of this module will go away once
	smsbox is re-written to use Octstr.

2000-10-30  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Support for X-WAP.TOD header, needed for WAP 1.1
	conformance.  (requirement UACache-0010)

	* gw/wsp_headers.c: Special encoding for X-WAP.TOD, which is
	an application-specific header with a field encoding that does
	not match the application-specific-value rule.  (This is a
	contradiction in the spec).

	* gwlib/http.[ch]: Make http_header_remove_all report how many
	headers it removed.

2000-10-30 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp_resp_state-decl.h: Added timeout to state RESULT_WAIT: Now
	we wait for result only for AEC_MAX timer periods.

	* gw/wtp.c, gw/wtp_resp.c, gw/wtp_resp_state-decl.h: Added class 
	transaction handling. Not much tested, yet.

2000-10-27  Lars Wirzenius  <liw@iki.fi>

	* README.*: Moved information into README. There's no point in
	having lots of small files.

2000-10-27  Lars Wirzenius  <liw@iki.fi>

	* gw/bb_http.c: Add Content-Type header to bearerbox admin
	interface replies.

2000-10-27  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox_req.c: fixed bug created by applying a few day old fix...

2000-10-26  Richard Braakman  <dark@wapit.com>

	* test/test_headers: Fix memory leaks introduced by
	http_header_combine test.

2000-10-26  Richard Braakman  <dark@wapit.com>

	* gwlib/fdset.[ch]: New module for polling large sets of file
	descriptors efficiently.  Not used yet, intended for HTTP module.

	* gwlib/gwlib.h: include fdset.h

	* gwlib/conn.[ch]: Added conn_register and conn_unregister,
	to use Connections with FDSets.

	* gwlib/list.[ch]: Wrap list_create just like octstr_create,
	so that the memory leak listing shows who called list_create.
	
2000-10-26  Lars Wirzenius  <liw@iki.fi>

	* gwlib/dict.c: Initialize hash table elements to be Lists, instead
	of garbage.
	
    	* test/test_dict.c: Wrote.

	* gwlib/http.c: Cleanups: Wait for read_response_thread to
	terminate at http_shutdown and destroy the started_requests_queue.
	Also re-implemented the HTTPSocket pool with dict, so that it
	no longer does linear searches; the code is a bit simpler now
	as well.
	
	* test/test_http.c: Use http_destroy_headers instead of
	list_destroy. This also fixes a memory leak of one header.

2000-10-26  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.c: Give unsigned int as the type to expect to
	va_arg when converting %u and %hu and similar cases.

2000-10-26  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Use http_header_combine instead of
	http_append_headers to combine session and request headers,
	to get the semantics right according to WAE section 8.

	* gwlib/http.c: Implemented http_header_combine.

	* test/test_headers.c: Added a test of http_header_combine.

2000-10-26  Lars Wirzenius  <liw@iki.fi>

    	* gwlib/dict.[ch]: Wrote.

	* gwlib/gwlib.h: Include dict.h.

2000-10-26  Kalle Marjola  <rpr@wapit.com>

	* gwlib/conffile.c (config_sanity_check): make sure that there are
	smsc group(s) and sms-service group(s) if there is smsbox set.

2000-10-26  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Converted to use conn.c. This is a minimal change,
	and does not yet do multiple transactions in parallel.

2000-10-26  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c: Get client IP using http_socket_ip, instead of
	http_socket_fd. http_socket_fd will be reserved for getting the
	file descriptor for the HTTP server port only, and may ultimately
	go away completely.
	
	* gw/smsbox_req.c: Bugfix. We gave the allow list as the deny
	list when checking for sendsms client authorization.

2000-10-26  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: added (m) 'mandatory' and (c)
	'conditionally mandatory) markings to all configuration file
	variables. 
	
2000-10-26  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox_req.c: fixed that messages with no translation are
	handled correctly

2000-10-25  Lars Wirzenius  <liw@iki.fi>

	* gw/wml_definitions.h: Commented out OPAQUE, since Cygwin
	(via some Windows header) defines it, and it isn't being used,
	anyway.  This is an intermin solution, a better one would be to
	add something like a WML_ or WBXML_ prefix to all those tokens.

	* gw/wtp_resp_state-decl.h: Renamed WAIT_TIMEOUT to
	WAIT_TIMEOUT_STATE to get rid of name conflicts with Cygwin
	headers.
	
	* gwlib/socket.c, test/fakewap.c: Removed an include for
	netinet/tcp.h, which seems to a) not be needed under Linux and b)
	be unknown to Richard Stevens, so presumably it is non-portable.
	If it proves to be necessary, we'll add it to configure and
	include it conditionally.
	
	* Thanks to Stipe Tolj for pointing these out.

2000-10-25  Lars Wirzenius  <liw@iki.fi>

	* configure{,.in}: Check for pthread_exit instead of
	pthread_create, when looking for a Posix thread implementation.
	HP-UX has trouble finding pthread_create, because it is an
	inline function.

2000-10-25  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsstree.[ch], wmlscript/wslexer.c: Fix parsing of
	integer literal -2147483648.  This was done by storing numbers
	as unsigned longs and introducing an explicit sign field.

2000-10-24  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Add support for formats u, o, x, and X.
	(test_cimd2 needs X.)

	* test/test_cimd2.c: Fix errors in octstr_format calls.

2000-10-24  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsstdlib.c: Corrected "Phonebook" to "PhoneBook".

2000-10-24  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: filled SMPP smsc group fields,
	thanks for Mikael Gueck for patch.

2000-10-24  Lars Wirzenius  <liw@iki.fi>

	* Finished first phase of reducing the number of threads
	doing HTTP requests. This phase implements a new interface
	(http_start_request and http_receive_response, with the http_get
	and http_post functions being wrappers around these). The
	goal is to have a static number of threads, internal to the
	HTTP implementation, doing all HTTP requests at once, instead
	of having a new thread for each HTTP request. This phase makes
	that happen, but is implemented so that HTTP requests are done
	serially, not in parallel. The next phase is to re-write the I/O
	parts of the HTTP implementation so that HTTP requests are done
	in parallel once again, using the conn.c module.
	
	* gwlib/http.[ch]: Many internal changes.
	
	* test/test_http.c: Use the new interface, instead of the
	http_get wrapper.

2000-10-24  Kalle Marjola  <rpr@wapit.com>

	* gw/urltrans.c: oops, forgot to switch reservations

2000-10-24  Kalle Marjola  <rpr@wapit.com>

	* gw/urltrans.c: added missing (disappeared?) room reservation for
	%q and %Q in get_pattern, and added note why sender and receiver
	is switched. Thanks for Juho-Pekka Virolainen for noticing this.

2000-10-24  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: Added support for Falcom A2D modem, thanks to
	Mike Gaertner. Also changed the default protocol identifier
	and coding scheme. Preliminary support for Nokia 7110 as SMSC.
	
2000-10-23  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gwmem.h, gwlib/protected.h: Wrote macros to make it
	harder to call the wrapped functions directly.

	* gwlib/gwmem-check.c, gwlib/gwmem-native.c, gwlib/protected.c:
	Call the wrapped functions anyway. :)

	* gw/bb_smsc.c, test/fakesmsc.c, test/fakewap.c,
	test/test_cimd2.c, test/wml_tester.c: Use wrappers instead of
	direct calls to the wrapped functions.
	
	* wmlscript/wmlsc.c: Undefine the accident protectors and call
	the wrapped functions directly. This needs to be fixed later.

2000-10-23  Lars Wirzenius  <liw@iki.fi>

	* gwlib/utils.[ch]: Wrote gw_isdigit and gw_isxdigit as wrappers
	around isdigit and isxdigit, to compensate for broken platforms
	where they are not available as functions.

	* gw/smsc_cimd2.c, gw/wsp_headers.c, gwlib/octstr.[ch]: Use
	gw_isdigit and gw_isxdigit instead of isdigit and isxdigit
	together with octstr_check_range.

2000-10-23  Lars Wirzenius  <liw@iki.fi>

	* configure{.in,}: Don't compile start-stop-daemon, unless the
	--enable-start-stop-daemon option is used.
	
	* gw/smsc_at.c, gw/smsc_emi.c, gw/smsc_sema.c: Define CRTSCTS as
	zero if it is not defined.
	
	* gwlib/socket.c: Allocate the 64 kilobyte buffer dynamically,
	instead of from the stack.
	
	* These changes were prompted by a report of HP/UX compilation
	changes by Timo Siirainen.

2000-10-23  Lars Wirzenius  <liw@iki.fi>

	* ChangeLog: Formatted long lines.

2000-10-23  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: added missing EMI variable
	connect-allow-ip

2000-10-23 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp_resp_state-decl.h: Spec does not say what to do when state is
	RESULT_RESP_WAIT and event receiving an invoke. Yet 0.12 logs already
	have these events. Handled event same way when state is RESULT_WAIT.

2000-10-23  Richard Braakman  <dark@wapit.com>

	* Made gwthread_poll() actually return the results.

2000-10-23  Richard Braakman  <dark@wapit.com>

	* Bugfix: HTTP POST requests have a Content-Length again.
	Thanks to Stipe Tolj for spotting the problem.

2000-10-20  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: wrote appendix B, using fake SMS
	center.

2000-10-19  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: added notes on 'required
	components' for SMS gateways

2000-10-19  Kalle Marjola  <rpr@wapit.com>

	* gw/wapbox.c: send that wakeup when bearerbox exits, too.
	
2000-10-19  Kalle Marjola  <rpr@wapit.com>

	* gw/wapbox.c: modified send_heartbeat to use gwthread_sleep
	instead of ordinary sleep, so we can use gwthread_wakeup to wake
	it up when wapbox is killed - now wapbox dies when it catches
	kill, not after 0-30 seconds. 

2000-10-18  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Now checks also attributes for texts that could 
	be placed in the string table. Also removes non alphanumerical 
	characters from the start and the end of the strings.

	* gwlib/octstr.[ch]: octstr_strip_nonalphanums added.

2000-10-18  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.[ch]: Added conn_wait_multi(). Untested.
	Fine-tuned the locking in conn_wait.

	* gwlib/gwthread-pthread.c, gwlib/gwthread.h:
	Added gwthread_poll().  Untested.

2000-10-18  Richard Braakman  <dark@wapit.com>

	* gwlib/charset.c, gwlib/conffile.c, gwlib/counter.c,
	gwlib/counter.c, gwlib/gwmem-check.c, gwlib/gwmem-native.c,
	gwlib/gwstr.c, gwlib/parse.c, gwlib/protected.c, gwlib/socket.c,
	gwlib/thread.c: Reformatted.

2000-10-18  Richard Braakman  <dark@wapit.com>

	* configure.in, config.h.in: New test for HAVE_SYS_POLL_H.

	* gwlib/gwpoll.h, gwlib/gwpoll.c: Files that either include 
	sys/poll.h or define poll() themselves.

	* gwlib/gwlib.h: Include gwpoll.h.

	* gwlib/conn.c, gwlib/gwthread-pthread.h: Do not include
	sys/poll.h directly, let gwlib/gwlib.h do it.

2000-10-18  Richard Braakman  <dark@wapit.com>

	* gw/bb_udp.c, gwlib/http.c: Corrected some stray free() calls
	to gw_free().

2000-10-18  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c: Use new report_version in HTTP admin status, too.

2000-10-18  Lars Wirzenius  <liw@iki.fi>

	* gw/shared.[ch]: Added function version_report_string so that the
	report_version() info can be reported via HTTP as well.

2000-10-18  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_fake.c: fixed that message sending is not tried with
	closed socket, but error is returned instead

	* gw/bb_*.c: added missing queueing information to status: now all
	lists are added together before reporting queue lengths

2000-10-18 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp_init_state-decl.h, wtp_resp_state-decl.h: Add a comment tell-
	ing which CR is implemented. Now all deviations from June 2000 con-
	formance release are explained.

2000-10-18  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c: updated 'status' to tell number of messages
	still queued in main queues (internal specific queues are not yet
	counted)

	* gw/bb_*.c: Did initial code changes for 'xmlstatus' query,
	although it does not return anything yet.

2000-10-18  Lars Wirzenius  <liw@iki.fi>

	* gw/urltrans.c: Fix off-by-one error in is_safe array size
	in encode_for_url().

2000-10-18  Lars Wirzenius  <liw@iki.fi>

	* gw/bearerbox.c, gw/smsbox.c, gw/wapbox.c: Added missing #include
	"shared.h".

2000-10-17  Lars Wirzenius  <liw@iki.fi>

    	* gwlib/gwlib.c: Reformatted to new coding style.
	
	* gw/shared.[ch]: New files to hold the function report_versions
	(and other functions in the future). This function reports the
	version of Kannel that starts up, and the host it runs on, and
	the version of libxml.

	* gw/bearerbox.c, gw/smsbox.c, gw/wapbox.c: Call report_versions.

2000-10-17  Tuomas Luttinen  <tuo@wapit.com>

	* gw/urltrans.c: Changed the logic in the encode_for_url so that the
	safe ones are listed and the save characters being alphanums and marks
	"-", "_", ".", "!", "~", "*", "'", "(", ")". Also UTF-8 with full 
	spectrum of Unicode should work now.

2000-10-17  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: Added requested event of sent message

2000-10-16  Lars Wirzenius  <liw@iki.fi>

	* gwlib/log.c: Reformatted. Also made kannel_syslog's mapping of
	Kannel's log level to syslog log levels actually work.

2000-10-16  Lars Wirzenius  <liw@iki.fi>

	* checks/check_counter.c, checks/check_date.c,
	checks/check_list.c, checks/check_octstr.c, gwlib/log.c,
	gwlib/log.h, gwlib/utils.c: Renamed the log level enums to have
	a GW_ prefix, to avoid problems with broken compilers that define
	ERROR themselves or in some header.

2000-10-16  Lars Wirzenius  <liw@iki.fi>

	* config.h.in, configure{,.in}: Check for the magic compiler
	(not preprocessor) symbols __func__ (standard in the 1999 version
	of the standard) and __FUNCTION__ (popular extension to the 1989
	version of the standard). Define __func__ as __FUNCTION__ or
	"unknown" depending on what is available.
	
	* gwlib/gwassert.h, gwlib/gwmem.h, gwlib/octstr.c: Use __func__
	instead of __FUNCTION__.

2000-10-16  Lars Wirzenius  <liw@iki.fi>

	* config.h.in, configure{,.in}, gwlib/gw-getopt.h: Check for a
	prototype for getopt in stdio.h and unistd.h as well, and only
	use our own one if we fail to find anything. This should make
	Kannel compile on Solaris again.

2000-10-16 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp_resp_state-decl.h: Removed CR inside a string.

2000-10-13  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: parse_entities added as a fast patch to fullfill 
	WAP 1.1 conformance with WML entities.

2000-10-13  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gw-getopt.h: Wrote. This header makes sure getopt()
	and the corresponding variables are declared properly so that
	any program that includes gwlib/gwlib.h can use getopt without
	worrying. This should make it unnecessary to clutter all programs
	with #if HAVE_GETOPT_H stuff.
	
	* gwlib/gwlib.h: Include gw-getopt.h.
	
	* wmlscript/wmlsc.c, wmlscript/wmlsdasm.c: Make sure gwlib.h is
	included.

2000-10-13  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Disable the start_request_thread as well. It
	caused "make check" to fail (I ran it in the wrong directory
	*sigh*).
	
	* test/test_http.c: Use http_get until http_start_get and
	http_receive_result work properly.

2000-10-13  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Disable the kludge_do_one_request thread, since
	it isn't killed (or joined) properly.

2000-10-12  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: added new example: multi-operator
	SMS Kannel.

2000-10-12  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.[ch]: Added a prototype implementation for the new
	start/receive-result interface to HTTP requests (see functions
	http_start_get and http_receive_result). Don't use this yet,
	it needs to be implemented properly.
	
	* test/test_http.c: Modified to use the new interface.

2000-10-12  Richard Braakman  <dark@wapit.com>

	* gwlib/gwassert.h: Added parentheses around the panic(...), 0
        expressions in the assert macros, to get the originally intended
	meaning.

2000-10-12  Richard Braakman  <dark@wapit.com>

	* wmlscript/wserror.c: Corrected a stray va_arg(ap, char).
	(va_arg should always get the type as it is after promotion, and
	char is promoted to int.)

2000-10-12  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: When we are the server side, and the client uses
	HTTP 1.0, we will close the connection. If the client uses HTTP
	1.1, we keep it open.

	* gw/smsbox.c: Remove the workaround for the missing feature
	now implemented.

2000-10-12  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c, gw/bb_boxc.c, gw/bb_udp.c, gw/bb_smsc.c: Startup
	improved; not based on 'hopefully they will get up by that time'
	system but intra-thread wakeup call. Now the bearerbox starts up
	very quickly.

2000-10-11  Tuomas Luttinen  <tuo@wapit.com>

	* gw/urltrans.c: Fixed the bug 111 by adding the unwise characters
	and special characters like delete (0x7f) and other between 0x00
	and 0x1f into the unsafe ones.

	* gw/wml_compiler.c (string_table_apply): Fixed a bug where an extra 
	string end was added in a case that two (or more) substrings are 
	replaced with the 2nd (3rd...) being the first to be replaced.

2000-10-11  Lars Wirzenius  <liw@iki.fi>

	* gw/wapbox.c: Formatted to follow coding style.

2000-10-11  Lars Wirzenius  <liw@iki.fi>

	* gw/wapbox.c: Simplified the main loop. Also removed the
	initialization of ret (which was done at the definition
	of the variable, tens of lines above, which is bad style).
	Removed comments at end of braces, which is also bad style
	(if it is not obvious what the braces end, the loop or whatever
	construct is too long or indentation is broken).

2000-10-11 Aarno Syvnen <syvanen@wapit.cm>

	* gw/wapbox.c: Separate conditions event == NULL and event_is_for_
	responder in code selecting to which wtp process an incoming 
	event belongs.

2000-10-11  Peter Gronholm  <peter@wapit.com>

	* gw/control.html: Updated the example file to reflect the new
	http interface administration commands.

2000-10-11  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_http.c: fixed that query parsing value '0' is not
	accepted, only '1'

	* doc/userguide/userguide.xml: added notes about sms-service
	'default'

2000-10-10  Richard Braakman  <dark@wapit.com>

	* wmlscript/{ws.c, wsgram.y, wsstree.[ch]}: Remove WsPair and
        replace it with more specific types WsVarDec and WsFormalParm.
        This gets rid of an assumption that a long will fit in a (void *)
	field, which tends not to be true on 64-bit platforms.

2000-10-10  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsencode.c: Fix va_arg type bug for all platforms,
	not just sparc.  Removed SPARC_ABI conditionals.

2000-10-10  Lars Wirzenius  <liw@iki.fi>

	* debian/postinst: Don't use /var/log/kannel as home directory
	for user kannel.

2000-10-10  Lars Wirzenius  <liw@iki.fi>

	* debian/postinst: Now updates rc.d links and starts Kannel.
	
	* debian/postrm: Wrote. Removes rc.d links.

2000-10-10  Richard Braakman  <dark@wapit.com>

	* gw/wsp-method-state.h: Fixed state transition for TR-Abort.Ind,
	in state REPLYING.  Thanks to Aymerick Jhann for noticing.

2000-10-10  Lars Wirzenius  <liw@iki.fi>

	* gw/wtp_init_state-decl.h: Fixed misspelled INITIATOR_RESULT_WAIT.

2000-10-10  Lars Wirzenius  <liw@iki.fi>

	* debian/rules: "clean" doesn't run "make clean" unless Makefile
	exists.

2000-10-10  Lars Wirzenius  <liw@iki.fi>

	* debian/init: start kannel boxes as user "kannel" instead of
	root. run_kannel_box needs to run as root to create the pid file.
	
	* debian/postinst: Wrote. Creates user kannel and make
	/var/log/kannel be owned by kannel.
	
	* utils/run_kannel_box.c: Added --no-extra-args option, so that
	we can run other programs than Kannel boxes (su, in this case,
	to switch users).

2000-10-10 Aarno Syvanen <syvanen@wapit.com>

	* gw/wtp_init_state-decl.h: Prevent RCR growing greater than its 
	maximum allowed value.

2000-10-10  Kalle Marjola  <rpr@wapit.com>

	* gwlib/octstr.c: fixed bug in octstr_str_compare
	
2000-10-10  Kalle Marjola  <rpr@wapit.com>

	* gwlib/socket.c: moved 'errno' from second call to first one in
	connect_to_server to avoid tempering with it before we report the
	error.

2000-10-10  Lars Wirzenius  <liw@iki.fi>

	* gwlib/gwthread.h: Removed unnecessary and bad ## operator
	from gwthread_create wrapper macro. It pasted together two
	string literals, creating an invalid pre-processing token, thus
	causing small red daemons to fly out of my nose, flapping their
	wings furiously, and thus causing a small wind to blow in Rio
	de Janeiro, turning the page of the book being read by a local
	critic and causing him to complain in his article about the book
	that it was repetitive. Be careful with those undefined behaviors,
	folks, you never know what will happen.

	* gw/wap-appl.c, gw/wsp.h: Added function wsp_http_map_destroy,
	from Paul Keogh.
	
	* gw/wapbox.c: Call wsp_http_map_destroy at shutdown.

2000-10-09  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsopt.c: Add an optimization to remove useless tobool
	conversions.

2000-10-09  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsstree.c: Always convert the result of an && or ||
	operator to boolean, because the spec requires it for typeof().

2000-10-09 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp_init.c, wtp_resp.c: When the state machines cannot handle
	an event, we ignore it and log an error message. Timer will abort
	this tranaction.

2000-10-09  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: Converted to new formatting style.

2000-10-09 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp_state-decl.h: Incorporated CR-Nokia-WTP-20-March-2000/2.
	In plain words, when load is heavy, Ack(TidOK) may be delayed so 
	much that initiator will retransmit it and the responder will re-
	ceive the original when its state is RESULT_WAIT. This Ack must 
	be ignored. This corrects bug reported by David.

2000-10-09  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsgram.y: Compile unary + such that it performs the
	required type conversions.

2000-10-09  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsasm.c: Fixed error in jump distance calculation when
	jumping backward over a forward jump.  This messed up "continue"
	statements among other things.

2000-10-09  Richard Braakman  <dark@wapit.com>

	* Renamed Msg type smart_sms to sms.

2000-10-09  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Rearranged immutable octstrs so that seems_valid()
	correctly flags freed octstrs again.  Added !immutable assertions
	to octstr_grow and octstr_set_char.
	Reformatted octstr_append_from_hex.

	* test/test_http.c: Fixed memory leak in case of server not
	responding.

2000-10-09 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp_init.c: Remove an unused variable.

2000-10-06  Richard Braakman  <dark@wapit.com>

	* gwlib/utils.c: Changed kannel_cfmakeraw() comments to match
	reality.

2000-10-06 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp*: Reformat (except wtp_pdu.*).

	* gw/wtp_resp_state-decl.h: More comments.

	* gw/wtp_init.c, gw/wtp_init_state-decl.h: wtp had a tid of its own, 
	so no mutexes are needed here.

2000-10-06  Richard Braakman  <dark@wapit.com>

	* gw/smsc.c: Reactivate the code that sets the timestamp on an
	sms message, if the SMSC didn't set it.  Thanks to Jarkko Kovala
	for noticing.

2000-10-06  Richard Braakman  <dark@wapit.com>

	* Making release 0.11.3

2000-10-06  Richard Braakman  <dark@wapit.com>

	* doc/userguide/userguide.xml: Terminate OTA CGI table so that
	it compiles.

	* gw/smsbox.c, gw_smsbox_req.[ch]: Give smsbox_req_sendota() a
	"client_ip" parameter so that it can call authorise_user correctly.

	* gw/smsbox_req.c: smsbox_req_sendota(): Remove unused variables.
	Use octstr_create("") instead of the no longer existing
	octstr_create_empty().

	* gw/bb_boxc.c: Fix memory leak in route_msg() when routing
	WAP packet but no wapboxes are connected.

	* gwlib/http.c: Fixed silly bug in http_remove_hop_headers that
	would make the wapbox panic if a server used the Connection: header.
	Fixed memory leak in same function.

2000-10-05  Yann Muller  <ymuller@3glab.com>

	* gw/smsbox_req.c/h: added smsbox_req_sendota() to send OTA config
	messages.

	* smsbox.c: calls smsbox_req_sendota() if cgi address matches
	'/cgi-bin/sendota'.
	
	* doc/userguide/userguide.xml: added info about config and usage
	of OTA.

	* gwlib/octstr.c/h: added octstr_append_from_hex().

2000-10-05  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: language corrected.

2000-10-05  Richard Braakman  <dark@wapit.com>

	* Added seems_valid assertion to end of octstr_format().

	* gw/wap-appl.c: Fixed silly mistake that caused random panics.

2000-10-05  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Bugfix, don't panic if resp_headers is NULL
	(i.e. the HTTP request failed).

	* gw/fakewap.c: Correctly encode requests with urls longer than
	128 bytes.

2000-10-05  Kalle Marjola  <rpr@wapit.com>

	* test/fakesmsc.c: use info level to inform that all messages have
	been sent.

2000-10-05  Richard Braakman  <dark@wapit.com>

	* wmlscript/*: Reformatted.

2000-10-05  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox_req.c: made sure that when max_msgs == 0 then no
	messages are sent.

2000-10-05  Richard Braakman  <dark@wapit.com>

	* gw/wsp_headers.c: Bugfix in pack_integer_string, use ULONG_MAX
	instead of UINT_MAX and include the right header file.

2000-10-04  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Pass the status code we really got from
	the server to the client, instead of only accepting code
	200 (HTTP_OK).	Use 502 (Bad Gateway) if the actual lookup
	failed.  Use http_get and http_post instead of http_get_real
	and http_post_real.  Together with the header encoding patch
	earlier today, these changes allow HTTP redirection to work.

	* gw/wap-appl.c, gwlib/http.h: Use symbolic names for HTTP status
	codes.

	* gw/wsp_headers.c: Correct small bug that made wsp_headers_pack
	encode the content-type twice if separate_content_type was on.

2000-10-04  Richard Braakman  <dark@wapit.com>

	* gwlib/gwmem.h, gwlib/gwmem-check.c: Let gw_claim_area return
	the pointer it gets, and let it accept NULL pointers.  This
	makes it easier to use in wrapper macros.

	* gwlib/octstr.[ch]: Wrap octstr_create, octstr_create_from_data,
	octstr_copy, and octstr_duplicate so that they "claim" the Octstr
	they return for their caller.  This information will show up in
	the gw_check_leaks() output, making memory leaks much easier to
	trace.

	* gw/wsp_headers.c, gwlib/http.c: Fix memory leaks found this way.

2000-10-04  Richard Braakman  <dark@wapit.com>

	* Encode response headers and send them to the client:

	* gw/wsp_headers.[ch]: Added wsp_headers_pack.  Fixed some bugs in
	wsp_headers_unpack.  Replaced a few magic numbers with names.
	Reformatted.

	* checks/check_headers.sh, test/test_headers.c, test/header_test:
	New files.  Exercise header code by packing and unpacking a set
	of headers that try to cover all possibilities.

	* test/fakewap.c: Be less strict in checking Reply packet, because
	it can no longer assume the response headers are empty.  (Implementing
	full parsing wouldn't be worth the effort.)

	* gw/wap-appl.c: Added http_remove_hop_headers and used it to
	delete hop-by-hop headers when forwarding HTTP headers to
	client or server.  (The hop-by-hop headers are for one connection
	only, for example Transfer-Encoding.)

	* gw/wap-appl.c: When applying a content converter to the 
	response body, update the response headers to reflect this.

	* gw/wap-appl.c: Fill in the response_headers field of
	S_MethodResult_Req and S_Unit_MethodResult_Req events, now
	that they're used.

	* gw/wap-events-def: In the S_MethodResult_Req, response_headers
	is a HTTPHEADER, not an OCTSTR.
	Removed response_type field from the MethodResult events, it's
	not used and the information is present in response_headers.

	* gw/wsp-method-state.h, gw/wsp-session-state.h, gw/wsp-unit.c:
	Renamed unpack_headers to wsp_headers_unpack to match function naming
	convention.  Use wsp_headers_pack instead of wsp_encode_http_headers.

	* gw/wsp-strings.def: Introduce some new tables used for
	header encoding.

	* gw/wsp.c, gw/wsp.h: Deleted wsp_encode_http_headers, it's
	obsoleted by wsp_headers_pack.

	* gw/wsp.c: Changed wsp_convert_http_status_to_wsp_status to
	handle all defined status values.

	* gwlib/http.[ch]: Added several utility functions used by
	header packing.  Minor formatting corrections.

	* gwlib/octstr.c: Added assertions to octstr_append* functions
	to prevent segfault.

2000-10-04  Kalle Marjola  <rpr@wapit.com>

	* gwlib/conffile.c|h: added new function 'config_sanity_check' to
	check configuration files for basic errors (like empty lines in
	the middle of groups).

	* gw/*box.c: modified to use that new function
	
2000-10-04  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc.c, gw/smsc_p.h, gw/smsc_emi.c: added configuration
	variable 'connect-allow-ip' currently used by emi_ip in certain
	situations - banned connect from other IPs, so you have to set
	this variable if you still want to use emi_ip with receive port.

	* gwlib/socket.c: removed loist of 'errno' from error, to minimize
	double system error outputs.

2000-10-03  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: Fixed that we tried to close non-opened
	http-server-socket, which caused PANIC.

2000-10-03  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smsc.c: Fixed a nice bug that appeared only with severe
	load. 
	
2000-10-03  Kalle Marjola  <rpr@wapit.com>

	* gw/bb-smsc.c: added SMS multi-send. This is achieved via
	multiple phone numbers at 'to' field in send-SMS request, each
	separated with space (currently, possibly changed later). This is
	not a complete multi-send at SMSC protocol level - the message is
	splitted into several ones in bearerbox before sending it to
	SMSC. Note that 'preferred-prefix' and 'denied-prefix' only care
	about the FIRST phone number in such a message (anyway, use smsc
	ID instead)
	
	* doc/userguide/userguide.xml: added notes on multi-send

2000-10-03  Lars Wirzenius  <liw@iki.fi>

	* debian/changelog: Added new entry for newer upstream version
	number.
	
	* debian/copyright: fixed spelling of Wapit (used to be WapIT).
	
	* debian/conffiles: New file, lists the files in the Debian
	package that are marked as configuration files.
	
	* debian/init: No longer automatically copied from
	utils/kannel-init.d, since we can't guarantee that would be the
	right thing to do for a Debian package. Updated to work on Debian
	(box path was wrong).
	
	* debian/kannel.conf: Re-wrote to work with newer config file
	syntax.
	
	* debian/kannel.wapconf: Removed, no longer needed.
	
	* debian/rules: fixed so it works with current Kannel. Also added
	manual page installation, etc.
	
	* gw/kannel.8, utils/run_kannel_box.8, utils/seewbmp.1,
	wmlscript/wmlsc.1, wmlscript/wmlsdasm.1: Wrote skeletal manual
	pages for various parts of Kannel that are installed by the
	Debian package.

2000-10-03  Richard Braakman  <dark@wapit.com>

	* gw/wsp_headers.c: Bugfix in multi_octet_integer for integers
	exactly as large as a long.

	* gwlib/date.c: Bugfixes for parsing non-recommended (but still
	standard) date formats.

	* gwlib/parse.c: Bugfixes in parse_peek_char and parse_get_uintvar.

	* utils/run-checks: Don't report success if a test failed silently.
	Add the name of the failing check to check.log.

2000-10-03  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_definitions.h: some data types unified.

	* gw/wml_compiler.c: Code updated to the new coding style.
	Old character set conversion code mostly removed, some skeletons
	still in the closet. Hash table code added, wml_init and
	wml_shutdown written, but not yet used or tested.

	* gwlib/octstr.[ch]: octstr_hash_key-function added.

2000-10-03  Kalle Marjola  <rpr@wapit.com>

	* test/fakesmsc.c: Updated to use general Kannel command line
	interface - now use options -p, -i and -m to set various fakesmsc
	settings. Also changed messages to 'debug' level so that there is
	some use for -v argument.

2000-10-03  Richard Braakman  <dark@wapit.com>

	* gw/wsp-strings.c: Correct silly mistake in string_to_number.

2000-10-03  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c, gw/smsbox_req.c|h: added new smsbox configuration
	variable 'sendsms-chars' which is used to prevent garbage
	requests. NOTE: if you are running SMS services, you should check
	this out! (see user guide)

	* gw/smsbox_req.c: allowed 'user' and 'password' in place of
	'username' and 'password' in sendsms request.

	* doc/userguide/userguide.xml: userguide upgraded to reflect
	these.
	
2000-10-02	Paul Keogh <paul.keogh@anam.com>

	* gw/cookies.c: Updated comment and fixed bug in get_cookies()

2000-10-02  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox_req.c: fixed possible crash (panic) with malformed
	http request

2000-10-02  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: added 'pin' to GSM Phone smsc, did
	some output formatting.

2000-10-02  Richard Braakman  <dark@wapit.com>

	* doc/userguide/userguide.xml: Explained CIMD2 keepalive option.

2000-10-02  Kalle Marjola  <rpr@wapit.com>

	* README: updated. Removed old references to test_wml, ooutdated
	libxml version etc.

	* doc/userguide/userguide.xml: some fix

2000-09-30  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: some update
	 
2000-09-30  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: little update for SMS center
	groups. Still missing values and meanings for some attributes.

2000-09-29  Richard Braakman  <dark@wapit.com>

	* gw/wtp_init.c, gw/wtp_resp.c: Fixed some compiler warnings.

2000-09-29  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: It has been done. Now (practically)
	all data is rendered into XML and there is list of examples and
	other things. However, we are missing settings for some SMS
	centers and their exact names and things like that, help needed.

2000-09-29  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: rest of the newconf.txt moved into
	this, and some of it edited to XML

	* doc/userguide/newconf.txt: removed

2000-09-29  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: moved rest of the newconf.txt main
	things into it, but not yet formatted.

2000-09-29  Richard Braakman  <dark@wapit.com>

	* doc/*: Ran spelling checker over most documents.

2000-09-29  Kalle Marjola  <rpr@wapit.com>

        * doc/userguide/userguide.xml: updating, moved all data from
	newbb.txt into this and did some reorganisating. Started to insert
	entire newconf.txt into this.
	
	* doc/userguide/newconf.txt: some data already moved to User Guide
	
	* doc/userguide/newbb.txt: removed

	* gw/*kannel.conf, README: updated file references

2000-09-28  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: fixed mismatch and put some extra
	words about 'my_conf.conf'. More update coming tomorrow...

2000-09-28 Aarno Syvnen <syvanen@wapit.com>

	* gw/wsp-session.c: Calling wtp_resp_dispatch event and wtp_resp_get_
	address_tuple

	* gw/wsp-session|method-state.h : Calling wtp_resp_dispatch_event

	* gw/wap-events-def.h: Added event TR-Invoke.cnf

	* gw/wtp.c|h: Added new external function wtp_event_id_for_responder.
	This checks first bit of tid. Added helper functions unpack_invoke,
	unpack_ack and unpack_abort.

	* gw/wtp_resp.c|h, gw/wtp.c|h: Transferring responder machine code
	to a separate module (we have an iniator, too).

	* gw/wtp_resp.c: Most error checking transferred to the function 
	rep_machine_find_or_create. Refer to WTP, 10.2, table 33 when comment-
	ing.

	* gw/wtp_init.c|h, gw/init_state-decl.h, gw/init_machine-decl.h:
	Wrote code for wtp iniator (for classes 0 and 1).

	* gw/wapbox.c: Sending incoming message to the iniator or the 
	responder, depending on the first bit of the tid. Shutting down
	and iniating the iniator and responder, too.

	* gw/wtp_send.c|h: New functions add_responder_address and add_
	iniator_address (to avoid void pointer). In functions, use field of
	a machine type instead of the machine itself, if possible. Added 
	function wtp_send_invoke to the interface, removed do_not_start

	* gw/wtp_resp_state-decl.h: Renamed wtp_state-decl.h. Reformatted 
	comments. Use variable name resp_machine instead of machine every-
	where. Make use of the new wtp_send interface. Do not turn u_ack flag,
	but ack_pdu_sent (this bug is pointed out out by Huang Li), when ack
	pdu was send. Used constant ACKNOWLEDGEMENT everywhere in 
	wtp_send_calls. Noticed invalid use of 'resent' in the specs. Rid-flag
	is not turned when ack is sended, because the iniator does not use 
	this flag (only rid of result message is used by it. This is pointed
	out by Huang Li, too).

	* gw/wtp_tid.c|h: Used variable resp_machine (and corresponding type)
	everywhere

2000-09-29  Richard Braakman  <dark@wapit.com>

	* checks/check_date.c: Wrote.

	* checks/test_dates: Test material for testing dates.

	* gwlib/date.[ch]: Added date_parse_http().  Fixed some bugs
	in date_format_http() uncovered by check_date.

2000-09-28  Lars Wirzenius  <liw@iki.fi>

	* gwlib/socket.c: udp_bind: Recognize interf "*" as an alias for
	INADDR_ANY, so that Kannel again follows documentation.

2000-09-27  Richard Braakman  <dark@wapit.com>

	* gw/wsp-strings.c: Changed everything in order to get
	case-insensitive string lookup working right.  Converted
	to new formatting rules.

	* gw/wsp-strings.h, gw/wsp-strings.def: Improved comments.

2000-09-27  Lars Wirzenius  <liw@iki.fi>

	* gw/wtp_state-decl.h: Removed handling of event RcvInvoke in
	state RESULT_RESP_WAIT, since that was neither in the spec and
	seems to do nothing useful.

2000-09-27  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c, gw/wapbox.c, doc/userguide/newconf.txt: Added
	configuration variable http-proxy-exceptions.

2000-09-27  Tuomas Luttinen  <tuo@wapit.com>

	* configure[.in]: Support for libxml1 removed, only 2.2.0 and
	up now.

2000-09-27  Richard Braakman  <dark@wapit.com>

	* gw/smsc_emi.c: Correct calculation of message length for
	UDH messages.

2000-09-27  Lars Wirzenius  <liw@iki.fi>

	* gw/wapbox.c: moved http-proxy-host and http-proxy-port into
	"core" from "wapbox" section. (That's where they were for the
	smsbox as well.) Also added the code that actually makes use
	of the proxy support, by calling http_use_proxy.
	
	* gwlib/http.c: Allow the list of exceptions to be NULL, to
	simplify the case when no exceptions are wanted. Also report
	when a proxy is being used.

2000-09-27  Richard Braakman  <dark@wapit.com>

	* gw/wsp.c: Encode all known content types, not just the
	most common ones.

	* gw/wsp-strings.def: s/applicatoin/application in one of
	the content types.

2000-09-26  Lars Wirzenius  <liw@iki.fi>

	* gw/wap-appl.c: Added Via header to HTTP requests.
	
    	* gwlib/socket.[ch]: Wrote function get_official_name.

	* gwlib/octstr.c: Don't call gwlib_assert_init, instead assert
	that octstr itself has been initialized. This is necessary because
	socket.c now needs to use octet strings before gwlib has been
	fully initialized.

2000-09-26  Richard Braakman  <dark@wapit.com>

	* Making release 0.11.2.

2000-09-26  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox_req.c: smsbox used to dump core if the sendsms
	username was incorrect, now it correctly returned authorization
	failure. Fixes bug report 105 from Paul Keogh.

2000-09-26  Lars Wirzenius  <liw@iki.fi>

	* test/fakesmsc.c: Initialize the third parameter to accept
	correctly. I wonder why this has ever worked.

2000-09-26  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox_req.c, gw/urltrans.c: set so that message without any
	content is passed to default service group, not ignored. Fixed
	request count, too.

2000-09-25  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.c: Make conn_read_line() work more than once.
	Thanks to mulix@actcom.co.il for reporting this.

	* gw/wtp_send.[ch], gw/wtp_state-decl.h: Removed "event"
	parameter from wtp_send_abort and wtp_send_ack.  There were
	assertions for this (otherwise unused) parameter which caused
	the function to fail if the event was for example a timeout.

2000-09-25  Lars Wirzenius  <liw@iki.fi>

	* checks/check_http.sh: Check for "ERROR:" in log file.
	
	* gw/html.h: Include gwlib/gwlib.h, not octstr.h.
	
	* test/test_http.c: Add -q option.
	
	* gwlib/http.c: Bugfix. Format string said %s when it should
	have said %S.

2000-09-25  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox*.*: activated sendsms-user allow/deny-ip strings

	* gw/urltrans.c|h: appropriate modifications to that file
	
	* doc/userguide/userguide.xml: started to write a new chapter
	about SMS Kannel setup

2000-09-25  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_udp.c, gwlib/socket.c|h, test/test_udp.c: inserted
	interface-name patch by Andreas Fink. 

2000-09-25  Lars Wirzenius  <liw@iki.fi>

	* doc/userguide/newconf.txt: Added slightly better descriptions
	from Paul Keogh for SMS2000 config variables.

2000-09-25  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml, doc/userguide/newconf.txt: updated
	to include notes about SMSC ID use.

	* gw/bb_smsc.c, gw/smsc.c|h, gw/smsc_p.h: added preferred-id and
	denied-id configuration variable for SMS routing
	
2000-09-25  Kalle Marjola  <rpr@wapit.com>

	* gwlib/utils.c: added str_find_substr

	* gw/urltrans.c|h: added 'smsc' to find_translations, and
	forced-smsc, default-smsc and accepted-smsc for translation
	groups. Accepted-smsc is now in full use, so if you need
	sms-services linked to used SMSC, use it (and smsc-id for
	corresponding SMSC)

	* gw/smsbox_req.c: set smsc_id for send-sms requests

	* doc/userguide/newconf.txt: added new attributes here

2000-09-25  Kalle Marjola  <rpr@wapit.com>

	* gwlib/utils.c (get_and_set_debugs): fixed '--' parsing

2000-09-22  Kalle Marjola  <rpr@wapit.com>

	* gwlib/utils.c: set that command line option '--' ends option
	parsing. Thanks to Kari Lempiainen for finding this, although I
	added one 'break' to it, too.
	
2000-09-22  Richard Braakman  <dark@wapit.com>

	* gw/timers.c: Correctly record elapse-event in gwtimer_start.  Oops.
	This also fixes a memory leak.

2000-09-22  Richard Braakman  <dark@wapit.com>

	* gwlib/protected.[ch]: Removed gw_getlocale().  Despite
	protection, toggling locale settings is inherently not
	thread-safe.

	* gwlib/date.[ch]: Started file for date handling functions.
	Contains date_format_http(). It is a reimplementation of
	rfc2068_date_format() but does not use setlocale trickery.

	* Removed rfc2068_date_format() from gwlib/utils.[ch] and
	made gw/wsp_headers.c call the new function.

2000-09-22  Richard Braakman  <dark@wapit.com>

	* gw/wsp-session.c: Corrected capabilities negotiation.  This
	is not the promised rewrite, and its replies are still longer
	than they need to be, but it follows the standard now.

	* gw/wsp_caps.[ch]: Added helper function wsp_cap_get_server_sdu.

2000-09-22  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox_req.c: edited access log entries, now the HTTP request
	status is logged etc.

2000-09-22  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: added opening/closing of access log

	* gw/smsbox_req.c: added access log entries for requests (send-sms
	and MO), and modified the entire MO SMS lifetime so that 'request
	failed' replies to max-messages = 0 translations still get that
	answer

	* gw/smsc.c|h: changed so that smsc_send_message does not destroy
	the msg

	* gw/bb_smsc.c: updated access log entry

	* doc/userguide/newconf.txt: added access-log into
	variables. Still missing smsc-id, as the implementation is not
	finalized.

2000-09-21  Kalle Marjola  <rpr@wapit.com>

	* gwlib/accesslog.c|h: added first version of access log system

	* smsc.c|h: added SMSC Id (a bit like name but user defined)

	* gw/msg-decl.h: added SMSC Id to SMS messages 
	
	* gw/bb_smsc.c, gw/bearerbox.c: added access log entries for
	incoming/outgoing SMS messages

	* gw/smsbox_req.c: added 'smsc' entry for send-sms interface, but
	not yet supported.

2000-09-21  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Use octstr_case_search instead of
	octstr_convert_range and octstr_search to check whether a URL
	begins with "http://".

2000-09-21  Lars Wirzenius  <liw@iki.fi>

	* checks/check_octstr.c: Wrote.
	
	* gwlib/octstr.[ch]: Wrote new function octstr_case_search.

2000-09-21  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.c: octstr_compare: Fixed behavior when either argument
	was a zero length octet string. It used to always return zero,
	now it returns -1 or 1 if the other argument is not a zero length
	octet string.
	
	* gwlib/octstr.[ch]: Wrote octstr_case_compare.

2000-09-21  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.c: Reformatted to new code layout.

2000-09-21  Lars Wirzenius  <liw@iki.fi>

	* gw/wapbox.c: Start the WAP application layer before the
	heartbeat thread. This prevents a race condition at startup.

2000-09-21  Richard Braakman  <dark@wapit.com>

	* gw/timers.c: In TimerHeap struct, rename "heap" field to "tab".
	There's something confusing about heap->heap[index].

	* gw/timers.c: Simplified main loop in the timer thread.
	Made it process all elapsed timers before releasing its lock
	-- should be faster if a bunch of timers elapse at once.

2000-09-20  Richard Braakman  <dark@wapit.com>

	* gw/wsp_headers.c: Try to skip over unknown code pages more
	intelligently.

2000-09-20  Richard Braakman  <dark@wapit.com>

	* gw/timers.[ch], gw/wtp.c: Renamed timer_* to gwtimer_* to
	avoid name conflict with system functions.  Sigh.

2000-09-20  Richard Braakman  <dark@wapit.com>

	* gw/timers.c: Reformatted according to new layout standard.

2000-09-20  Richard Braakman  <dark@wapit.com>

	* gw/timers.c: Implement the heap structure using a C array,
	instead of using List.  This has less overhead and removes the
	need for list_swap.

	* gw/list.[ch]: Remove list_swap.

2000-09-20  Richard Braakman  <dark@wapit.com>

	* gw/timers.[ch]: Removed timersets from the interface.  The choice
	of what timers should be handled by a single thread is a performance
	issue, not an interface issue.  All timers are now handled by a
	single timer thread.  The choice of output list is now specified
	per timer, instead of per timer set.
	Added timer_init and timer_shutdown functions that should be
	called before creating any timers.

	* gw/wapbox.c, gw/wtp.c: Adjust to new timers interface.

2000-09-19  Richard Braakman  <dark@wapit.com>

	* gw/timers.c, gw/timers.h: New timers.  Faster, better, and
	they actually time out.

	* gw/wtp_timer.c, gw/wtp_timer.h: Removed.  (Remnants of old
	timer code).

	* gw/wapbox.c: Removed references to old timer code.  It's now
	completely hidden in the wtp layer.  Other layers can get their
	own timers.

	* gw/wtp.c: Use new timers.  Added some convenience functions
	(start_timer_A and start_timer_R).  Handle TimerTO_* events.
	There's no start_timer_W yet because we don't use it yet.

	* gw/wtp.h: Use new timers.

	* gw/wap-events-def.h: TimerTO_* events get a machine handle
	instead of a dummy field, so that the WTP layer knows which
	machine timed out.

	* gw/wtp_state-decl.h: Use new timers, by calling the
	convenience functions.  There's no real timer code left in
	the state machines.

	* gw/list.c, gw/list.h: Made list_delete_matching and
	list_delete_equal return the count of items deleted.
	Getting that info from an atomic operation is useful
	for the timer code.  Also added list_swap function.

2000-09-19  Richard Braakman  <dark@wapit.com>

	* gw/wtp.[ch], gw/wtp_machine_decl.h: Removed unused field
	type LIST from state machines.

2000-09-19  Lars Wirzenius  <liw@iki.fi>

	* gwlib/list.[ch]: Removed list_cat function, as it is now unused.

2000-09-19  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Added wml_init and wml_shutdown that do nothing
	yet, removed call to list_cat.

	* gw/wml_compiler.h: Added prototypes for wml_init and wml_shutdown.

2000-09-18  Richard Braakman  <dark@wapit.com>

	* gw/smsc_smpp.c: Make charset_iso_to_smpp and charset_smpp_to_iso
	work with character values > 128.  Bugfix suggested by
	Philip Chr. Psiloinis.

2000-09-18  Lars Wirzenius  <liw@iki.fi>

	* doc/CodingStyle: Added example of coding style.

2000-09-18  Lars Wirzenius  <liw@iki.fi>

	* ChangeLog, debian/init, gw/bb_boxc.c, gw/bb_http.c, gw/html.h,
	gw/msg.c, gw/urltrans.c, gwlib/conffile.c, gwlib/conffile.h,
	gwlib/gwassert.h, gwlib/gwstr.h, gwlib/gwthread-pthread.c,
	gwlib/http.c, gwlib/http.h, gwlib/list.c, gwlib/list.h,
	gwlib/log.h, gwlib/octstr.c, gwlib/octstr.h, gwlib/socket.c,
	gwlib/thread.c, gwlib/thread.h, gwlib/utils.c: Folded some long
	lines (see utils/find-long-lines).


2000-09-18  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.c: Shut up char/unsigned char implicit conversion
	warning by adding a cast.

2000-09-18  Derry Hamilton  <rasilon@tardis.ed.ac.uk>

	* gwlib/thread.h: changed the call to mutex_init_static_real
	to actually pass the mutex when MUTEX_STATS are required.

2000-09-18  Kalle Marjola  <rpr@wapit.com>

	* gwlib/utils.c (get_and_set_debugs): PANIC if unknown option is
	encountered, to avoid misuse of options.

2000-09-18  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_http.c (httpd_serve): when receiving an unknown command,
	tells the received url back to caller

2000-09-18  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c (init_smsbox): fixed bug reported by Paul Keogh.

	* gw/bearerbox.c: some fix to shutdown order

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* utils/source-stats: Wrote.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* config.h.in, configure.in, configure, gwlib/socket.[ch],
	gwlib/getnameinfo.h: Killed the getnameinfo implementation. Yet
	another non-standard function that we don't even refer to anymore.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/log.[ch]: Removed the `forced' log level, since it is
	pointless and unused.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* config.h.in, configure, configure.in, gwlib/utils.[ch]: Always
	use kannel_cfmakeraw, instead of the libc one. This simplifies
	configuration, and lets us not have to worry about having another
	cfmakeraw in a non-glibc library that does something else than
	the glibc one. Or about the glibc one changing behavior sometime
	in the future. (Oh the joys of using extensions to the standard
	libraries...)

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* gw/wap-appl.c, gw/wsp.h: Added function wap_appl_get_load,
	which gives a current load average for the application layer
	(which is essentially the only sensible place to look for load
	averages), defined as the sum of the length of request queue
	and number of HTTP fetches that are currently happening. The
	old getloadavg method is deleted, but if this one proves to be
	completely unworkable, we can always salvage the code from CVS. On
	the other hand, this method actually works on systems that don't
	have a getloadavg, and works even on systems where getloadavg
	is defined differently (imagine running two different wapboxes).
	
	* gw/wapbox.c: Use wap_appl_get_load instead of getloadavg.

	* configure{,.in}: Removed checks for getloadavg.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Ran through astyle to get formatting right.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Removed internal function octstr_str_ncompare,
	replacing it with calls to octstr_search and
	octstr_create_immutable. Die *_cstr, die!

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.[ch]: Added `pos' argument to octstr_search to
	let caller specify from where the search in the haystack starts.
	Also, octstr_format now understands %c.
	
	* gw/html.c, gw/smsc_at.c, gw/wap-appl.c, gw/wsp_headers.c,
	gwlib/http.c, gwlib/octstr.c, test/drive_wapbox.c,
	test/test_cimd2.c: Use octstr_search instead of octstr_search_cstr
	and various functions instead of octstr_append_cstr.
	
	* gw/wml_compiler.c: Fix call to octstr_search.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/octstr.[ch]: Removed the octstr_create_limited, because
	it had so limited use.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* test/test_http_server.c: Catch SIGTERM and die immediately.
	
	* checks/check_http.sh: Wrote.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* gw/smsbox.c, gw/wapbox.c, doc/userguide/newconf.txt: Added
	HTTP proxy support to configuration files. No way to test it,
	right now, but will eagerly await bug reports.

2000-09-14  Lars Wirzenius  <liw@iki.fi>

	* gwlib/list.c: Don't do the atomic operation locks for list_lock
	and list_unlock: they're unnecessary for atomicity and cause
	deadlocks. Thanks to Kalle Sandstrm for noting this.
	
	* gwlib/octstr.c: Silence compiler warning regarding using a plain
	char as an index to an array (in reality, argument to isdigit),
	by typecasting a pointer. If we used fewer C strings, this would
	be less of a problem...

2000-09-11  Lars Wirzenius  <liw@iki.fi>

	* README: Fixed download URL, re-formatted and removed the
	outdated claim that it is a very raw draft.
	
	* doc/CodingStyle: Added note about the official formatting style,
	as discussed on devel@kannel.org. Also added a note about memory
	allocation policy as far as function interfaces are concerned,
	a note to avoid #if, and something about abstract data types
	and naming conventions related to that.
	
	* doc/dialup.txt, Makefile.in, configure.in,
	doc/arch/arch-bearerbox.xml, doc/arch/arch-bib.xml,
	doc/arch/arch.xml: Shortened long lines.
	
	* gwlib/list.[ch]: Changed the interface of the list_destroy
	function by adding a second argument, which is a pointer to an
	item destroying function.

	* checks/check_list.c, gw/cookies.c, gw/bb_boxc.c, gw/bb_smsc.c,
	gw/bearerbox.c, gw/numhash.c, gw/smsbox.c, gw/smsbox_req.c,
	gw/smsc.c, gw/smsc_cimd2.c, gw/urltrans.c, gw/wap-appl.c,
	gw/wapbox.c, gw/wml_compiler.c, gw/wsp-session.c, gw/wsp-unit.c,
	gw/wsp_caps.c, gw/wtp.c, gw/wtp_pdu.c, gw/wtp_tid.c,
	gw/wtp_timer.c, gwlib/http.c, gwlib/parse.c, test/drive_wapbox.c,
	test/test_cimd2.c, test/test_http.c, test/test_http_server.c:
	Updated calls to list_destroy to work with its new interface.
	
	* gw/msg.[ch], gw/wap-events.[ch]: Added functions *_destroy_item,
	for use with new list_destroy.
	
	* gw/wap-appl.c: Add X-WAP-Client-SDU-Size header.
	
	* gwlib/octstr.[ch]: Added functions octstr_format and
	octstr_format_append. Also added "immutable octet strings",
	for wrapping around C string literals, which required adding
	octstr_init and octstr_shutdown. See the header for more info.
	Also added some consts here and there.
	
	* gwlib/gwlib.c: Call octstr_init and octstr_shutdown.
	
	* test/test_octstr_format.c, test/test_octstr_immutables.c: New
	test programs.
	
2000-09-04  Richard Braakman  <dark@wapit.com>

	* gw/wapbox.c, gw/smsbox.c, gw/bearerbox.c: Handle only signals
	for the main thread, so that each signal is received exactly once.

2000-09-04  Richard Braakman  <dark@wapit.com>

	* Changes prompted by code review:

	* gwlib/gwthread.h, gwlib/gwthread-pthread.h: Rename Threadfunc
	to gwthread_func_t.

	* gwlib/parse.h, gwlib/parse.c, gw/wsp_headers.c: Rename Context
	to ParseContext.

	* gwlib/gwmem-check.c: Give symbolic names to the memory-filling
	patterns it uses.

	* gwlib/conn.h: Improve comments.

2000-09-04  Richard Braakman  <dark@wapit.com>

	* Making release 0.11.1.

2000-09-04  Derry Hamilton <rasilon@tardis.ed.ac.uk>
	
	* gw/wml_compiler.c: reformatted my earlier patch.

2000-09-03  Lars Wirzenius  <liw@iki.fi>

	* gw/wml_compiler.c: Removed unnecessary call to gw_assert:
	list_create is defined as always returning non-NULL, so it's not
	necessary to check it. (Or if we do, we should check it everywhere.)

	* gwlib/list.c: Removed unused variable from lock(). Also
	re-did the change to list_len in my own coding style, just to
	be pedantic.

	* I assume these were leftovers from Derry's debugging.

2000-09-01  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gwlib/list.c: Added a test for NULL list to list_len since some
	things want the length of NULL lists.
	* gw/wml_compiler.c: string_table_build no longer tries to add 
	strings to the stringtable if the list is NULL.

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* wmlscript/wsencode.c: Added a typecast to convert a va_arg call
	that fetches an int to convert the value to an unsigned char *.

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* gwlib/http.c: Improved (but still did not write properly) HTTP
	Content-Type header parsing. Fix suggested by Joerg Pommnitz,
	though re-did the patch to add some error checking.
	
	* test/test_http.c: Parse and report Content-Type. Also, http_get_real
	now wants a non-NULL request header list. Give it that.
	
	* test/test_http_server.c: Report a character set (UTF-8, though
	it doesn't really matter) so that the parsing can be tested.

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* configure.in: Tweaked the libxml checking. It should now be
	slightly cleaner and should work with upcoming 2.2.x versions
	of the library without changing configure.in. Thanks to Geir
	Johannessen, whose mail prompted me to look at this, even though
	I didn't use his patch directly.

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* gw/wsp.[ch]: Minor cleanups: Removed unused constants, added
	a comment for assertions, etc.

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* gw/wapbox.[ch]: Moved WB_DEFAULT_TIMER_TICK and CONNECTIONLESS_PORT
	defines from .h to .c, since they're only used inside .c.
	
	* gw/wsp-method-state.h: Formatting change (comments should be
	indented similarly to the code they describe). Also, bug fixes:
	several comparisons had a single equals (i.e., assignment)
	instead of two (i.e., comparison).

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* gw/wapbox.c, gw/log.c: Moved syslog opening internals to log.c,
	where it belongs. Introduced new function set_syslog to do this.
	
	* gw/log.c: Cleaned up formatting, etc, a bit. syslog support
	(internals of kannel_syslog (now static, btw)) is compiled on
	all platforms, not just SunOS.
	
	* gw/log.h: Added note that opening and closing of log files is
	not thread safe.

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* gwlib/list.[ch]: Some further cleanups:
	
		- list_delete_all and list_extract_all were named in a
		misleading way; renamed to *_matching instead, and all
		calls fixed as well; argument `cmp' renamed to `matches'
		for clarity's sake
		
		- some assertions uncommented and fixed to compare a 
		pointer explicity to NULL, instead of implicitly
		
		- code changed to call delete_items_from_list, instead of
		doing the same thing manually
		
		- list_lock and list_unlock use the single-operation lock
		
	* checks/check_list.c, gwlib/http.c: Related changes.

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* gwlib/list.c: list_len is now protected by locks.

2000-08-31  Lars Wirzenius  <liw@iki.fi>

	* test/test_list.c: Removed.
	
	* checks/check_list.c: Wrote.

2000-08-30  Lars Wirzenius  <liw@iki.fi>

	* gw/bb_udp.c, gw/cookies.c, gw/html.c, gw/msg.c,
	gw/smsbox_req.c, gw/smsc_at.c, gw/smsc_cimd2.c, gw/smsc_ois.c,
	gw/smsc_sema.c, gw/smsc_smpp.c, gw/wap-appl.c, gw/wml_compiler.c,
	gw/wsp-session.c, gw/wsp-unit.c, gw/wsp.c, gw/wsp_caps.c,
	gw/wsp_headers.c, gw/wsp_pdu.c, gw/wtp_pdu.c, gwlib/conn.c,
	gwlib/http.c, gwlib/http.h, gwlib/octstr.c, gwlib/octstr.h,
	gwlib/parse.c, gwlib/socket.c, test/fakewap.c, test/test_cimd2.c:

	Cleanups based on a (brief) code review. Lots of small changes
	pretty much everywhere, but nothing really big.
	
	* Renamed octstr_search_*_from to octstr_search_*, because there's
	no point in having two almost equivalent functions.
	
	* Renamed octstr_*_blank to octstr_*_blanks, to be grammattically
	correct.
	
	* Killed octstr_create_empty, replaced it with octstr_create("").
	
	* Other minor differences, see the diff if you're interested.

2000-08-30  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: The octet string memory leaks in the string table
	code plugged.

2000-08-29  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Plugging the huge memory leaks of the string 
	table code started. No more leaks due lists or mutexes. Some leaks 
	with octstr:s also plugged, some still remain. 

2000-08-28  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: The patch by Aarno was removed because it caused 
	problems like "WARNING: WSP: All converters for `text/vnd.wap.wml' 
	failed.", segmentation fault on variables and maybe others.

2000-08-26  Derry Hamilton  <rasilon@tardis.ed.ac.uk>

	* solaris/mk-solaris-package.sh:  Now compiles for a bare
	Solaris 7 box, doesn't assume LD_LIBRARY_PATH

2000-08-24  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_udp.c (udp_receiver): trap ECONNREFUSED too (hey it was
	missing from Man page) and just continue

	* gw/bb_boxc.c: extend wapbox_list lock to prevent packet routing
	to exiting wapboxes	

2000-08-23  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Make sure content.url and content.body have valid
	values even if request method is not supported.

	* gw/wsp_pdu.c, gw/wtp_pdu.c: Make sure REST fields are always
	filled, even if packet contains bad length info.  This fixes a
	crashing bug discovered by OUSPG.

	* test/fakewap.c: Fix small memory leak.

	* test/udpfeed.c: New test program, reads a bunch of files and
	sends each in a single UDP packet.  Useful for feeding OUSPG's
	test set to Kannel.

	* gw/wapbox.c: Catch SIGQUIT and use it to report memory usage.
	Useful for detecting memory leaks.

	* gw/gwmem-check.c: Bugfix to allow gw_check_leaks() to be called
	multiple times in one run.

	* gw/wsp-unit.c: Fix memory leaks.

2000-08-22 Aarno Syvnen <syvanen@wapit.com>

	* gw/wml_compiler.c: Fixed some memory leaks

2000-08-22  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* solaris/etc/kannel.conf: By default do not permit admin connections

Mon Aug 21 18:39:30 2000  Lars Wirzenius  <liw@iki.fi>

	* test/test_counter.c: Removed, as this is now replaced by
	chec/check_counter.c.

Mon Aug 21 18:32:04 2000  Lars Wirzenius  <liw@iki.fi>

	* README, Makefile.in: Added some automatic checking as "make
	check". See the README for more info.
	
	* utils/run-checks, checks/*: New files.

2000-08-21  Paul Keogh <paul.keogh@anam.com>
	* gwlib/counter.[ch]: Added counter_set method.

2000-08-18  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c: In gwthread_shutdown, don't delete
	the tsd_key.  It's still needed by gwthread_self(), which can 
	still be called.  This might fix the problem of wapboxes that
	refuse to die.

	* gw/wsp-strings.c: Make wsp_##name##_to_string not crash if
	the string was not found.

	* gw/wsp_headers.c: Have unpack_all_parameters() stop at
	the end of its string, rather than reporting a bogus error.
	Also fixed a memory leak in header unpacking.

2000-08-18 Derry Hamilton <rasilon@tardis.ed.ac.uk>
	
	* solaris/mk-solaris-package.sh: Changed default optimisation level.
	* solaris/etc/kannel.conf: Kannel needs an admin port to start
	
2000-08-16 Derry Hamilton <rasilon@tardis.ed.ac.uk>
	
	* solaris/*:  Added packaging information for Solaris

2000-08-14 Peter Grnholm

       * gw/wml-definitions.h: A typo corrected in URL value code table.
       Now URLs ending with .net/ work, too. Two other typos: Content-
       Type and Expires use capital letters. 
	
2000-08-10  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (check_variable_syntax): Escaping now possible 
	with one letter acronyms 'e', 'u' and 'n'.

2000-08-07  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: A little bit of code cleaning, changing return 
	types to null where a status is not needed.

2000-08-06  Derry Hamilton  <rasilon@tardis.ed.ac.uk>

	* config.h.in, wmlscript/wsencode.c:  Fixed the WMLScript compiler
	  errors under Solaris SPARC.  The SPARC ABI requires that function
	  parameters be int aligned.

2000-08-04  Tuomas Luttinen  <tuo@wapit.com>

	* test/decompile.[ch]: A patch by Chris Wulff applied.

	* gw/wml_definitions.h: STRING_TABLE_MIN defined

	* gw/wml_compiler.c: The first attemp to use string table more 
	efficiently. For a reason or another hangs up when compiled with 
	checking-malloc on the check phase into a allocation lock.

	* gw/wml_compiler.c: The patch to fix a bug in the libxml-1.8.6 is 
	removed.

	* configure[.in]: The flag HAVE_LIBXML_1_8_6 is removed, now takes 
	only 1.8.7 and up.

2000-08-04  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: In X-WAP-Gateway header, use "Kannel/0.11"
	instead of "Kannel 0.11", to comply with HTTP/1.1 recommendations
	for version strings.

2000-08-02  Richard Braakman  <dark@wapit.com>

	* Making development release 0.11.

2000-08-02  Richard Braakman  <dark@wapit.com>

	* Applied Joerg Pommnitz's patch for Crypto library support in
	the WMLScript compiler.

2000-08-02  Richard Braakman  <dark@wapit.com>

	* Folded in POST_SUPPORT.  Duplication of code is Bad.

2000-08-01  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: Be forgiving of cimd2 calls while the
	socket is not open.  This is necessary because of the 
	changed thread structure in the new bearerbox.

2000-08-01  Richard Braakman  <dark@wapit.com>

	* gw/smsbox_req.c: When logging "message sent", use errno 0
	instead of 1. (?)

	* doc/userguide/newconf.txt: Change recommended unified-prefix
	string for Finland, because smscenters no longer accept "00"
	prefix as of today.

2000-08-01  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: When complaining about format of sender number,
	actually log the sender number rather than the receiver number.

2000-07-27  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: When pending_smsmessage receives an unexpected
	response packet, report it instead of crashing.

2000-07-24  Richard Braakman  <dark@wapit.com>

	* gw/wsp_headers.c: Mostly rewritten.  Now decodes all header
	types defined by WSP 1.1.  This means that the headers sent
	by the phone are all passed to the HTTP server.  Previously,
	only a few commonly-appearing ones were (partially) decoded.
	Uses wsp-strings.def instead of inlined string tables.
	Uses new gwlib parse module to scan octstr contents.
	"Works for me" status.  Will be more thoroughly tested after 
	the decoding code is complete.

	* gw/wsp_headers.h: Changed interface of unpack_headers.
	It now takes a content_type_present flag parameter, instead
	of having a separate unpack_post_headers function.

	* gw/wsp-strings.c: Support for NUMBERED tables, which assign
	non-sequential numbers to the strings in a table.

	* gw/wsp-strings.h: Support for NAMED tables, which assign an
	enum value to each entry in a string table.

	* gw/wsp-strings.def: Define lots of new string tables, for use
	by the wsp_header module.

	* gw/wapbox.c: Init and shutdown newly used wsp-strings module.

	* gw/wsp-method-state.h, gw/wsp-session-state.h, gw/wsp-unit.c:
	Use new unpack_headers interface.

	* gwlib/octstr.c: In octstr_insert, assert that ostr2 is not
	inserted past the end of ostr1.  (This assumption was already
	there; it's just made explicit now.)
	Removed unused octstr_get_digit_from function.  octstr_parse_long
	does the same thing.
	New octstr_append_decimal function.

	* gwlib/protected.c, gwlib/protected.h: Added gw_getlocale,
	for use by rfc2068_date_format function.

	* gwlib/utils.c, gwlib/utils.c: New rfc2068_date_format function,
	to convert a unix timeval to a common textual format.  (The RFC2068
	format also fits the RFC822 format).

	* gwlib/parse.c, gwlib/parse.h: New module to make it easier to
	parse octstrs without passing lots of length and offset variables
	around.
	
	* gwlib/gwlib.h: Include new parse.h.  Move inclusion of protected.h
	to end, so that it can use Octstr in its function prototypes.

2000-07-24  Tuomas Luttinen  <tuo@wapit.com>

	* gw/smsbox_req.c: Removed function smsbox_req_sendota that used
	nonexistent octstr-function so that the CVS version didn't compile.

2000-07-23  Tuomas Luttinen  <tuo@wapit.com>

	* configure.[in]: libxml 2.2.1 added.

2000-07-21  Paul Keogh   <paul.keogh@anam.com>

	* gw/bb_udp.c: Added check for NULL ptr return from udpc_create()
	in function add_service() to prevent subsequent NULL dereference
	and crash.

2000-07-21  Yann Muller  <ymuller@3glab.com>

	* gw/smsbox_req.c, smsbox_req.h: messages with or without UDH are
	now handled in the same way, they can all be sent as multiple
	messages or concatenated messages if too long.
	
	* gw/smsc_at.c: Receiver address fix by Paul Keogh and Marcus
	Shawcroft. Better support for UDH.
	
	* gw/urltrans.c, urltrans.h: Added the concatenation option for
	SMS messages.
	
	* doc/userguide/newconf.txt, userguide.xml: Added a note about the
	concatenation and removed the limitation about UDH.
	
2000-07-20  Richard Braakman  <dark@wapit.com>

	* gw/wtp.c: Fixed memory leak in wtp_unpack_wdp_datagram.
	Simplified the code a bit.

	* gw/wtp.c: Made wtp_unpack_wdp_datagram_real not crash when
	receiving an invalid PDU.

	* gw/wtp_pdu.c: In wtp_pdu_unpack, simply free a PDU with 
	unknown type instead of trying to destroy it.  None of its
	fields were set anyway.

	* test/fakewap.c: Actually test separation when -s flag is given.
	The test is wrong, though, it sends bad packets.  Not going to
	fix that now.

2000-07-19  Tuomas Luttinen  <tuo@wapit.com>

	* configure[.in]: libxml 1.8.9 and 2.2.0 added. Fixes bug #97.

2000-07-18  Richard Braakman  <dark@wapit.com>

	* gw/html.c: Fix skipping of quoted strings (bug #89, reported
	by Paul Keogh).

	* gw/smsbox.c: Avoid memory leak in http_request_thread().
	Fixes bug#101, reported by Paul Keogh.

2000-07-18  Richard Braakman  <dark@wapit.com>

	* gw/smsc_ois.c: Fixed some warnings.

2000-07-18  Kalle Marjola  <rpr@wapit.com>

	* gwlib/gwthread-pthread.c, gwlib/http.c: Fized bugs #98 and #100
	reported by Paul Keogh.

2000-07-18  Paul Keogh <paul.keogh@anam.com>
	* gw/urltrans.c: Fixed memory leak in destroy_onetrans().

2000-07-17  Paul Keogh <paul.keogh@anam.com>
	* gwlib/counter.[ch]: Added counter_decrease() function.

2000-07-15 Derry Hamilton <rasilon@tardis.ed.ac.uk>
	
	* config.h.in,configure,configure.in: Removed checks for integer
	lengths as it broke more than it might have fixed.

2000-07-14  Paul Keogh <paul.keogh@anam.com>
	* gwlib/http.c: Fixed a bug in the HTTP POST which prevented interop
	with some versions of Apache and ultimately crashed.

2000-07-13  Derry Hamilton <rasilon@tardis.ed.ac.uk>
	* gw/wapbox.c,gw/wapkannel.conf,gwlib/log.c: first implementation of 
	syslog support under Solaris.

2000-07-13  Kalle Marjola  <rpr@wapit.com>

	* */*: Making out release 0.10.2

2000-07-13  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (wml_compile): Compiler now checks that the 
	output from libxml is not a NULL pointer.

2000-07-13  Derry Hamilton <rasilon@tardis.ed.ac.uk>
	* config.h.in,configure,configure.in: configure now checks for the 
	32-bit type and defines kint32 and kuint32 as appropriate in 
	preparation for 64-bit kannel on Alpha and UltraSPARC since the
	compiler types int32 and uint32 are not supported everywhere.
	* gwlib/http.h: Added the function definition for 
	http_charset_accepted rather than leaving it to be implicitly
	defined.
	
2000-07-13  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: removed two unused variables.
	
2000-07-12  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Little bug fixes with variables:
	- no more empty	string before variable reference to string table
	- double $ won't eat a character after them, fixes #94
	- a little memory leak mentioned below corrected

2000-07-12  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_http.c: oops, return value for HTTP admin was not checked,
	now fixed

	* gw/bearerbox.c: added compiler options KANNEL_NO_SMS and
	KANNEL_NO_WAP

2000-07-11  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Bug #86 fixed. A memory leak with $ characters 
	fixed. Another one still remains with mix of $ characters and 
	variables.

2000-07-11  Yann Muller  <ymuller@3glab.com>

	* doc/userguide/newconf.txt: Added configuration information to use
	a GSM modem as an SMSC.

2000-07-10  Yann Muller  <ymuller@3glab.com>

	* gw/smsc_at.c: now removes SMSC address at beginning of PDU sent
	by the Wavecom. Better handling of messages with UDH (no 7bit encoding
	of UDH yet).

2000-07-10  Kalle Marjola  <rpr@wapit.com>

	* gw/urltrans.c (find_translation): fixed string matching of
	sms-services.

2000-07-07  Tuomas Luttinen  <tuo@wapit.com>

	* configure: Now support for libxml 1.8.8 and 2.1.1.

	* gw/wml_compiler.c: Support for libxml version 2 and above
	now ready.

	* gw/wml_compiler.c (parse_attribute): Patch by Holger Casties
	applied to eliminate a segmentation fault with NULL pointer
	passed as a second argument to strcmp.

2000-07-07  Kalle Marjola  <rpr@wapit.com>

	* doc/dialup.txt: updated to reflect current configuration, and
	added data on how to get it work with Siemens S25i from Matthias Wutke

2000-07-07 Aarno Syvnen <syvanen@wapit.com>

	* gw/wtp.c: Bugfixes in the separation code

	* test/fakewap.c: Added sending of a concatenated message, for testing
	separation.

2000-07-07  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: hopefully fixed a little bug/feature in connection 
	closing

2000-07-06  Richard Braakman  <dark@wapit.com>

	* Making release 0.10.1.

	* Extended NEWS.  Removed NEWS.devel, we won't need it until
	we start on 0.11.

2000-07-06  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_ois.c: (hopefully) fixed warnings from FreeBSD

2000-07-06  Kalle Marjola  <rpr@wapit.com>

	* gw/bearerbox.c: added --suspended and --isolated command-line
	option names (same as -S and -I)

	* gw/smsbox.c: fix in command line parsing

	* doc/userguide/newbb.conf: added data on those new options

2000-07-06  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox.c: modified so that if the HTTP-sendsms interface is
	defined, the smsbox won't start if it fails to init it. Use new
	command line option -H or --tryhttp to override this feature 

2000-07-05  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/newconf.txt: oops, forgot admin-username. And
	returned sample smsc-groups

	* gw/smsc.c, gw/smsc_p.h, gw/smsc_ois.c: Added support for SEMA
	SMS2000 (G6.0) OIS 5.0 over X.25, under name OIS, by Jouko Koski.

2000-07-03  Richard Braakman  <dark@wapit.com>

	* gw/wml_definitions.h: Applied patch by brennon loh york hong
	to fix compilation of pages with multiselect.

2000-07-03 Paul Keogh <paul.keogh@anam.ie>

	* gwlib/http.c,gwlib/http.h,gw/wsp_headers.h,gw/wsp_headers.c,
	gw/wsp_unit.c,gw/wsp_session_state.h,gw/wsp_method_state.h,
	gw/wap-appl.c: Added support for HTTP POST under #ifdef POST_SUPPORT.
	Also enabled runtime cookies under #ifdef COOKIE_SUPPORT.

2000-06-30 Aarno Syvnen <syvanen@apit.com>

	* wsp-unit.c: Fixed some memory leaks

2000-06-30  Aarno Syvnen <syvanen@wapit.com>

	* wtp_tid.c|h, wtp_state-decl.h: Tid was not cached when tid 
	verification was invoked because of a failed tid validation test.
	So after every validation all following tids were verified. Added
	to the the module wtp_tid an external function wtp_tid_set_by
	machine, which stored tid after validation.

2000-06-30  Richard Braakman  <dark@wapit.com>

	* gw/wml_compiler.c: In parse_octet_string, one extra byte was
	skipped after a variable reference, including the special "$$"
	sequence.  Fixed.

2000-06-30  Richard Braakman  <dark@wapit.com>

	* gwlib/http.c: Change some of the locking according to Joerg
	Pommnitz's suggestions, to deal more smoothly with slow connects.

2000-06-30  Derry Hamilton  <rasilon@tardis.ed.ac.uk>

	* Makefile.in: made .depend depend on config.h.  This should
	allow changing between checked and unchecked malloc without manual
	intervention.

2000-06-30  Richard Braakman  <dark@wapit.com>

	* gwlib/gwmem-check.c: Fix call to free() in drop_from_free_ring().
	This fixes a memory leak.

2000-06-29  Paul Keogh <paul.keogh@anam.ie>

	* gwlib/list.c: Removed unnecessary calls to lock() and unlock()
	in the list_cat() function as the called functions do the
	required locking.  Locking the same lock twice causes a panic().

2000-06-29  Richard Braakman  <dark@wapit.com>

	* gw/wsp-session.c: Fixed memory leak in new capability code.

2000-06-29  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Applied fix suggested by Lim YoungLan, to make
	sure S-MethodInvoke.res is sent before any S-MethodResult, even
	if fetch_thread() is very fast.

2000-06-28  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsstdlib.c: Applied Joerg Pommnitz's patch to support 
        WTAI standard library function calls, after converting it to the
	local indentation style.

2000-06-27  Kalle Marjola  <rpr@wapit.com>

	* doc/userguide/userguide.xml: did some updating, still needs to
	integrate newconf.txt and newbb.txt into it, but that some other
	day

2000-06-27  Paul Keogh <paul.keogh@anam.ie>

	* gw/cookies.c: Added a check for valid WSP session machine to prevent
	possible crash.

2000-06-26  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gw/cookies.c: casted char to int for several isspace() etc. calls.
	Stops the compiler complaining under Solaris.

2000-06-26  Kalle Marjola  <rpr@wapit.com>

	* Making out stable release 0.10, branched as 'release_0_10'

2000-06-26  Kalle Marjola  <rpr@wapit.com>

	* gw/smsc_smpp.c: small fix by Mikael Gueck

2000-06-21  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: added on-line information about connected boxes in
	status query

2000-06-20  Kalle Marjola  <rpr@wapit.com>

	* README: added notes of what need to be done if Kannel version is
	upgraded from some old version

2000-06-20  Kalle Marjola  <rpr@wapit.com>

	* Making out development release 0.9.3, canditate as production
	release 0.10

2000-06-20  Kalle Marjola  <rpr@wapit.com>

	* gwlib/utils.c, gwlib/utils.h: moved #ifdef of cfmakeraw into
	header file so that it will compile in (my) system with cfmakeraw 

	* gw/bb_boxc.c: updated output information of bocx_status

	* gw/bb_smsc.c: fixed compiler warning
	
2000-06-19  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: fixed one very-infrequently striking lockout
	during shutdown

	* README.docbook: user --disable-docs, not --without-docs

2000-06-19  Derry Hamilton <rasilon@tardis.ed.ac.uk>

        * gw/wsp-session.c: included limits.h to get LONG_MAX
	* gwlib/utils.c,gwlib/utils.h: created kannel_cfmakeraw()
	* gw/smsc_emi.c: removed cfmakeraw stub
	* gw/smsc_emi.c,gw/smsc_at.c,gw/smsc_sema.c: converted calls to
	  cfmakeraw to kannel_cfmakeraw.

2000-06-19  Kalle Marjola  <rpr@wapit.com>

	* gw/wsp-session.c, gw/wsp_pdu.c: inserted patch from Joerg
	Pommnitz, now Kannel hopefully works better with Motorola
	Timeport.

2000-06-19  Kalle Marjola  <rpr@wapit.com>

	* gwlib/http.c: parse_url() modified to change start of the url
	tolower() so that comprasion to http:// succeeds even with
	HTTP://

2000-06-19  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smsc.c: added suspend-mode to sms_router to synchronize
	start-up

2000-06-19  Yann Muller  <ymuller@3glab.com>

	* gw/smsc.c, gw/smsc_p.h, gw/smsc_at.c: Applied Denis Hennessy's
	patch to support Siemens M20: connect at 19200 baud, added a
	'pin = xxxx' entry to the conf file,  fixed missing trailing
	null char in encode_pdu, added a dummy receiver address since
	smsbox requires one, added the dummy "00" SC prefix for the M20
	(like the wavecom).

2000-06-17  Richard Braakman  <dark@wapit.com>

	* Replaced capabilities parsing.  New file gw/wsp_caps.[ch] defines
	a structure to represent capabilities, and some operations on it.
	WSP layer passes capability requests up to the Application layer,
	which can respond to some and ignore others.  WSP layer then completes
	the capabilities reply when it generates the ConnectReply PDU.
	See negotiate_capabilities() function in wap-appl.c for more info.

	* Added CAPABILITIES type to wap-events and wsp-session-machine.

	* Added request_caps and reply_caps fields to WSP session machine,
	removed most of the other capability-related fields except
	client_SDU_size and MOR_push (which are the only ones we support
	and need to remember).

	* gwlib/octstr.[ch]: New function octstr_extract_uintvar.

	* gw/wsp-session.c: unpack_caps, unpack_uint8, and unpack_uintvar
	removed.

	* Removed unused SESSION_MACHINE type from wap-events.

	* test/drive_wapbox: Supply the same capability values as the
	Motorola Timeport does, for testing.

	* Corrected:
	gw/cookies.c:88: warning: char format, Octstr arg (arg 3)

2000-06-17  Richard Braakman  <dark@wapit.com>

	* test/drive_wapbox.c: Defined wtp_types enum, because we can
	no longer steal the values we need from wtp.h.

2000-06-16 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: Fixed bug pointed out by Joerg Pommnitz

	* removed debug functions

	* wtp.c | wapbox.c: Code for separation added. Must test it ...

2000-06-16  Kalle Marjola  <rpr@wapit.com>

	* gw/cookies.c: changed strnicmp to strcasecmp, as nicmp is not
	supported in standard C libraries

	* gw/urltrans.c: fixed find-operations

	* gw/bb_smsc.c: added smsc_status

2000-06-16	Yann Muller <ymuller@3glab.com>

	* gw/smsc.c, gw/smsc_p.h: Added modemtype configuration parameter
	for the AT SMSC.
	
	* gw/smsc_at.c: Added support for Nokia PremiCell GSM modem.
	The parameter modemtype in kannel.conf can be set to 'wavecom'
	or 'premicell'.

2000-06-16	Paul Keogh <paul.keogh@anam.ie>

	* gw/cookies.c: updates after review by Richard Braakman. Also some
	additional includes.

	* gw/cookies.h: As for cookies.c

	* gw/wsp-session-machine.h: Added COOKIES field to session MACHINE

	* gw/wsp-session.c: Added cookie support to machine_create(),
	machine_destroy (). Also added id_belongs_to_session() function
	for use by cookie functions.

	* gw/wsp.h: Added cookie support to struct WSPMachine.

2000-06-15  Kalle Marjola <rpr@wapit.com>

	* gw/smsbox_req.c: fixed bug in http2-conversion, and set that
	'request failed' is send back to the phone (no more 'nothing')

2000-06-15  Richard Braakman  <dark@wapit.com>

	* gw/wsp-strings.*: Interface for tables of constant strings defined
	in WSP.  Not used yet.

	* gw/wsp-session.c: Got rid of append_uint8 and append_octstr; use
	basic octstr functions instead.

2000-06-15  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: In fetch_thread(), explicitly set content.charset
	to an empty octstr if the http fetch failed, otherwise it remains
	uninitialized and causes a crash when octstr_destroy is called on it.
	Thanks to Paul Keogh for finding this.

	* gw/wsp-session.c: In wsp_disconnect_other_sessions(), use
	"Disconnect_Event" instead of "Disconnect".  The latter is a PDU
	type, not an event type.  Thanks to Paul Keogh for finding this.

2000-06-15 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: Bugfixes in error handlin

	* wtp_pdu.c: wtp_pdu_unpack must return NULL when header is not valid

2000-06-14  Richard Braakman  <dark@wapit.com>

	* Filled in WSP state tables.  Defined lots of new events.
	Sanitized event routing: WTP to WSP events get an addr_tuple.
	WSP to WTP events get a "handle" (as defined in the spec) which
	happens to be equal to the mid.  WSP to APPL events contain the
	session id, and possibly a transaction id (as defined in the spec),
	which can be returned in the APPL to WSP events.  No more mid
	or msmid fields.  The transaction id is set equal to the handle
	gotten from the WTP layer, because that one's already unique.

	* Still missing: Push and Suspend/Resume.

	* gw/wap-appl.c: Handle all the new S- events and send back
	the proper replies.

	* gw/wsp-session.c: Moved method machines into the session machines.
	They can only be addressed via a session id and transaction id.
	The session machine can send events to all its method machines.
	Also added support functions for the WSP state tables.
	Implemented pre- and post- state machine checks, for more accurate
	handling of events without sessions, etc.

	* gw/wsp.h: Defined an enum for all the possible abort values.

	* test/drive_wapbox.c: Really disconnect clients after the right
	number of page fetches.  (Used to do this only once per client.)

2000-06-14  Yann Muller  <ymuller@3glab.com>

	* smsc_at.c: Fixed a memory leak in pdu_extract. Removed unused
	variables.
	
2000-06-14  Kalle Marjola <rpr@wapit.com>

	* gw/html.c: fixed parsing bug in html_to_sms

	* utils/kannel-init.d: made to worship new configuration files

2000-06-14 Aarno Syvnen <syvanen@wapit.com>

	* wtp_send.c|h: wtp_do_not_send uses WAPAddrTuple type, too

	* wtp.c: Reimplement error handling

2000-06-14  Kalle Marjola  <rpr@wapit.com>

	* gw/smsbox_req.c: fixed split-send Octstr-wise, now it should
	work with CIMD2, too (and other new SMSC protocols?)

2000-06-14  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_smsc.c: modified sleep in smsc receive to variable length,
	to increase performance

2000-06-14  Yann Muller  <ymuller@3glab.com>

	* smsc_at.c: New SMSC for wireless modems (AT commands).
	
	* smsc.c, smsc_p.h: Added support for new AT SMSC.

2000-06-13  Kalle Marjola  <rpr@wapit.com>

	* gw/bb_boxc.c: (somehow) fixed pointer error pointed out by Paul
	Keogh.

2000-06-13  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: Query list of charsets from the WML compiler,
	and use that instead of accessing the table as an extern.

	* gw/wml_compiler.[ch]: Added wml_charsets function.

	* gw/wap-appl.c: Continued simplifying fetch_thread, broke out
	a number of smaller functions.  Made converters table only
	list actual converters, eliminated convert_to_self.

	* gw/wap-events-def.h: Made response_type an octstr.  Convert
	it to the WSP encoding in the WSP layer, not the application layer.
	Moved encode_content_type function to wml.c.

	* gwlib/http.c: Reindented http_something_accepted and istrdup
	to fit with the rest of the code.

	* gwlib/http.h: Added prototype for http_charset_accepted.

	* gw/wap-appl.c: Created "content" struct to describe content
	body and meta-info.  Made convert functions use it.  Split off
	content conversion into a separate function that uses the table.

2000-06-12  Richard Braakman  <dark@wapit.com>

	* Started simplifying fetch_thread function.

	* Add "X-WAP-Gateway: Kannel XXX" to requests, where XXX is the
	version number.

2000-06-12  Richard Braakman  <dark@wapit.com>

	* Renamed http2 to http everywhere, because the old http code
	is completely gone.  Removed --with-http2 configuration option.

2000-06-12  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Character set and string table length changed 
	from chars to uintvars. Now WML compiler can handle string table 
	length greater than 127.

2000-06-12  Richard Braakman  <dark@wapit.com>

	* Making development release 0.9.2.

	* Commented-out some excessive logging.

2000-06-12 Aarno Syvnen <syvanen@wapit.com>

	* wtp_state-decl.h: TR-Abort.ind when timer counter has expired

2000-06-10  Richard Braakman  <dark@wapit.com>

	* gwlib/gwmem-check.c: New implementation.  This fixes the speed
	bottleneck that the old gwmem-check was, and it provides better
	checking and some extra features.

	* gwlib/gwmem.h: Slight changes for the new gwmem-check.  New
	functions gw_check_area_size and gw_check_claim_area, which do
	not have macro wrappers yet.

	* gwlib/thread.[ch]: Add support for statically allocated Mutex
	structures.  They are needed to break some dependency loops
	between the various wrappers (log.c needed protected.c,
	protected.c needed Mutex, Mutex needed gwmem, gwmem needed log.c)
	which made it impossible to shut them down correctly.

	* gwlib/protected.c, gwlib/gwmem-check.c: Use the new static mutexes.

2000-06-09  Tuomas Luttinen  <tuo@wapit.com>

	* gwlib/http2.c: A http request headers patch applied.

	* gw/wap-appl.c: A http request headers patch applied.

	* gw/wml_definitions.c: Character set conversion pathes added, see 
	below.

	* gw/utf8map_iso8859-7.h: A conversion table for greek character set.

	* gw/utf8map_win1253.h: A character set added.

	* gw/utf8map_win1251.h: A russian character set added.

	* gw/utf8map_koi8r.h: A russian character set added.

	* gw/wml_compiler.c: A memory allocation loop removed from 
	parse_attribute.

2000-06-09  Richard Braakman  <dark@wapit.com>

	* gw/wap-appl.c: In fetch_thread, also clean up "url" octstr.
	This fixes the last big memory leak.  I now get only a handful
	of leaked areas after 100 requests.

2000-06-09  Richard Braakman  <dark@wapit.com>

	* gw/wsp-session.c: Fixed two of the memory leaks, still hunting
	for others.

2000-06-09  Richard Braakman  <dark@wapit.com>

	* gwlib/http2.c: Fixed header_is_called() to return 0 for no match
	and 1 for match; simplified it in the process.  I think this was
	the original intent, and it matches the function name.
	By a roundabout path this fixes the lack of "Accept: text/vnd.wap.wml"
	and such in the HTTP request headers Kannel generates.
	Adapted http2_header_find_first() to the new interface of
	header_is_called().

2000-06-09  Richard Braakman  <dark@wapit.com>

	* gw/wsp_pdu.c: Allow REST fields to be NULL when packing (treat
	them as length 0 strings).  This was already done for OCTSTR fields.
	Thanks to Paul Keogh for fixing this.

	* gw/wtp_pdu.c: Make the same change for REST and OCTSTR fields as
	above.  It's going to be difficult to keep this code in sync.

2000-06-09  Richard Braakman  <dark@wapit.com>

	* gwlib/socket.c: Make read_available assert that fd >= 0, because
	otherwise it just segfaults.

	* gwlib/http2.c: Make pool_socket_is_alive return "not alive" for
	sockets < 0.  This does not fix the whole problem but it keeps the
	wapbox from crashing here.

	* gwlib/list.c: Fix bug in delete_items_from_list which would
	corrupt the list in some cases.

2000-06-09  Kalle Marjola  <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_*.c: removed START and EXIT debug info as they are in new
	thread wrapper, too

	* gw/bb_boxc.c: fixed bugs in wdp-router and wapbox quit, and
	re-synchronized shutdown

	* gw/bearerbox.c, gw/bb_http.c: removed core_threads as new thread
	wrapper can be used to handle that.
	
Fri Jun  9 08:31:18 2000  Lars Wirzenius  <liw@wapit.com>

	* Separated the method state machine from the session state machine,
	to keep state tables in the source closer to the spec and to allow
	multiple fetches per client.
	
	* gw/wsp-method-machine.h, gw/wsp-session-machine.h: Split out from
	gw/wsp_machine-decl.h, now removed.
	
	* gw/wsp-method-state.h, gw/wsp-session-state.h: Split out from
	gw/wsp_state-decl.h, now removed.

	* gw/wsp-session.c: Added handling of WSPMethodMachines and
	correct routing of WAPEvents between the session and method
	state machines. This is a bit ugly, though.

	* gw/wap-appl.c, gw/wap-events-def.h, gw/wsp.h, gw/wtp.c:
	Related changes.

Fri Jun  9 06:20:12 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c: Combined wtp_machine_create and wtp_machine_create_empty.

Fri Jun  9 05:39:06 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp-session.c, gw/wsp_machine-decl.h, gw/wsp_state-decl.h:
	Removed `unused' field from WSPMachine, using state == NULL_STATE
	instead.

Fri Jun  9 05:32:38 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events-def.h, gw/wtp.c, gw/wsp_state-decl.h: Removed
	unused exit_info and exit_info_present fields from WAPEvents.

Fri Jun  9 05:28:12 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp_state-decl.h: Enabled sending of TR-Abort.ind events
	to WSP.

	* gw/wtp.c: Removed (now unused) variable current_primitive.

Fri Jun  9 05:18:07 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events-def.h: Finished breaking up pack_wsp_event into
	smaller functions.

Fri Jun  9 05:10:20 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c, gw/wap-events-def.h: Removed event TR_Invoke_Cnf since
	it wasn't used and is only generated on the client side.

Fri Jun  9 04:58:02 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events-def.h, gw/wtp.c: Removed unused fields wsp_pdu
	and wsp_tid from various events. Then removed code that set
	and copied them between events.

Fri Jun  9 07:44:25 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c, gw/wtp_state-decl.h: Beginning the breaking up of
	pack_wsp_event function into smaller, more well defined ones.

Fri Jun  9 06:48:42 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-appl.c: Combine headers for HTTP request after the
	actual list of headers has been collected.

Fri Jun  9 02:58:00 2000  Lars Wirzenius  <liw@wapit.com>

	* Implemented WSP connectionless service. This meant moving
	things around a bit. The basic approach is to treat connectionless
	mode as a level in the protocol stack that is parallel to WTP and
	session oriented WSP. That is, connectionless mode gets events
	directly from wapbox.c and feeds them to wap-appl.c, and vice
	versa for replies.
	
	* gw/bb_udp.c: Read from port 9200 as well.
	
	* gw/wap-events-def.h: Added events S_Unit_MethodInvoke_Ind and
	S_Unit_MethodResult_Req.
	
	* gw/wapbox.c: Deal with connectionless packets as well. Feed them
	to wsp-unit.c. Also: trace packets received and sent, except for
	heartbeat packets.
	
	* wsp-session.c: The session oriented mode of WSP. I just moved
	relevants parts of wsp.c here and renamed them to use the
	wsp_session prefix.

	* gw/wsp-unit.c: The connectionless mode of WSP.
	
	* gw/wsp.c: Kept only stuff shared by wsp-session and wsp-unit.

	* gw/wap-appl.c: Deal with both S-MethodInvoke.ind and
	S-Unit-MethodInvoke.ind events.
	
Fri Jun  9 02:46:53 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events.[ch]: Changed the WAPEvent sub-structures to be
	held inside a union, to reduce amount of space used. Related
	changes everywhere WAPEvents are used.
	
2000-06-08  Richard Braakman  <dark@wapit.com>

	* test/drive_wapbox.c: Added option -g N to try more than one
	page fetch per WSP session.  Improved tid checking so that it
	will catch the tid inversion bug (fixed below) in the future.

	* gw/wapbox.c: Make wap_addr_tuple_duplicate handle a NULL
	argument by returning NULL, like most other _duplicate functions.

	* gwlib/http2.c: Make http2_append_headers copy the headers it
	appends, so that http2_destroy_headers can safely be called on
	the result.

2000-08-07  Aarno Syvnen <syvanen@wapit.com>

	* wtp_state-decl.h: Removed machine_mark_unused calls

2000-06-07  Richard Braakman  <dark@wapit.com>

	* gw/wtp_send.c: Invert the MSB of the received tid when sending,
	to comply with WTP 8.8.1.  This fixes a bug introduced two days ago.

2000-06-07  Richard Braakman  <dark@wapit.com>

	* gw/wtp.c: Also destroy the event queue at shutdown.

2000-06-07  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c: Fixed silly bug in yesterday's patch.

2000-06-07  Derry Hamilton  <rasilon@tardis.ed.ac.uk>

	* test/fakewap.c: Running fakewap too quickly messes up
	thread-control signal handling under Solaris.  Ignore SIGALRMs,
	they are not meant for us.
	
2000-06-06  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c: Information for main thread is now
	allocated statically, so that we don't have to deallocate it
	at shutdown.  This way we can keep it around so that gwthread_self
	continues to work as expected even during shutdown.

2000-06-06  Richard Braakman  <dark@wapit.com>

	* Making development release 0.9.1.

2000-06-06  Richard Braakman  <dark@wapit.com>

	* gwlib/gwlib.c: Patch gwlib_assert_init so that it works if
	NDEBUG is on.

	* gwlib/octstr.c: Patch seems_valid macro so that it does nothing
	if NDEBUG is on.

2000-06-06  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wsp.c: append_uintvar removed, calls to it were changed to
	octstr_append_uintvar.

	* gw/utf8map_win1257.h: A new file from the Latvian localisation 
	patch.

	* utils/win1257unicode.txt: A new file from the Latvian localisation 
	patch.

	* utils/utf8map.pl: A new file from the Latvian localisation patch.

	* gw/wml_definitions.h: Latvian localisation patch applied.

	* gw/wml_compiler.c: Latvian localisation patch applied.

Tue Jun  6 15:43:31 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_state-decl.h: Bugfix. The mid for a S_MethodInvoke_Ind
	was copied from a tid. Oops.

Tue Jun  6 15:11:14 2000  Lars Wirzenius  <liw@wapit.com>

	* wap-events-def.h, gw/wsp.c, gw/wtp.c: Some events are generated
	by WTP immediately before it kills the WTPMachine. We used to
	fetch the address information for those WTP transactions from the
	WTPMachine after the machine had been killed. This was a bug. I
	changed the relevant events to supply the necessary information
	in the event, so that the WTPMachine is no longer needed.
	
Tue Jun  6 12:28:48 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-appl.c, gw/wap-events-def.h, gw/wap-events.c,
	gw/wap-events.h, gw/wapbox.c, gw/wapbox.h, gw/wsp.h,
	gw/wsp_machine-decl.h, gw/wtp.c, gw/wtp.h, gw/wtp_machine-decl.h,
	gw/wtp_send.c, gw/wtp_tid.c: Made more use of WAPAddrTuple.

Tue Jun  6 11:37:22 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-appl.c, gw/wap-events-def.h, gw/wap-events.[ch]: Replaced
	member `machine' (a pointer to a WTPMachine) to `mid' and `tid'
	(integers), so as to remove direct references to WTPMachines
	from outside the WTP layer.
	
	* gw/wtp.[ch]: Added function wtp_get_address_of for finding the
	address of a machine given its id (mid). 
	
	* gw/wapbox.[ch]: Added data types WAPAddr and WAPAddrTuple,
	for holding addresses of phone and gateway, and functions for
	creating and destroying them.
	
	* gw/wsp_state-decl.h: Made use of mid instead of machine.
	
	* gw/wsp.c: Made light use of WAPAddrTuple.  Made use of mid
	everywhere, instead of pointers to WTPMachines.

Tue Jun  6 08:44:13 2000  Lars Wirzenius  <liw@wapit.com>

	* test/decompile.c: Added return type (void) to function
	OutputEncodedString.

2000-06-05  Richard Braakman  <dark@wapit.com>

	* gw/wsp_pdu.[ch]: Added wtp_pdu_append_tpi function.

	* gw/wtp_send.c: Continued conversion to use of wtp_pdu.
	Next step is to handle resends better, but that requires
	changes to the state machines.

2000-06-05  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.[ch]: Change conn_flush interface so that it can
	block, and tries to send all queued output.  This makes it more
	useful for threads that only want to do output and do not want
	to wake up for input.

	* gwlib/gwthread-pthread.c: Make gwthread_pollfd return -1 when
	poll() fails with EINTR, instead of 0, so that 0 can be relied
	on to mean timeout.
	 
2000-06-05  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.c: Implemented conn_open_tcp().
	Fixed conn_read_withlen, which I broke a few days ago.

	* gwlib/conn.c: Split the single Connection lock into two locks,
	one for reading and one for writing.  This allows reader and
	writer threads to work without fighting over one lock.  Only
	conn_wait needs both locks.

	* test/drive_wapbox.c: Take advantage of some new octstr functions.

2000-06-05  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread.h, gwlib/gwthread-pthread.c: Renamed
	gwthread_join_all to gwthread_join_every, and added a
	gwthread_join_all that joins ALL threads.  Added gwthread_wakeup_all
	to match.

	* gwlib/gwthread-pthread.c: Fix use of pipe(); reading and
	writing fd's were reversed.

2000-06-05  Richard Braakman  <dark@wapit.com>

	* gw/wsp.c: Installed Joerg Pommnitz's patch for correct parsing
	of WSP capabilities.

2000-06-05  Tuomas Luttinen  <tuo@wapit.com>

	* test/decompile.[ch]: A WML decompiler by Chris Wulff, Vanteon.
	
	* test/wml_tester.c: A patch by Chris Wulff, Vanteon added to produce 
	pure binary files. A little cleanup.

2000-06-05    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_smsc.c: changed sleep(1) to usleep. A bit more busier
	loop, that new interface is really needed

	* gw/numhash.c: removed some warnings

Mon Jun  5 10:32:41 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c: Fixed bug that was caused by not duplicating an
	octet string while copying it. Also fixed a memory leak.
	
	* gw/wtp_pdu.[ch]: Added function wtp_pdu_create. Also added
	wrappers around wtp_pdu.h to prevent problems when including
	many times, and added an include for gwlib/gwlib.h, so that
	the caller does not have to deal with that.
	
	* gw/wtp_send.c: Started conversion to using wtp_pdu.c instead
	of packing everything by hand. The basic PDUs are now converted.
	The negative ACK and some other ones are not, because I wasn't
	certain how they work, right now, and am too tired to understand
	the spec (probably too tired to hack, but I ran a fakewap test
	after each change to make sure I didn't break things too badly).

Sun Jun  4 07:32:59 2000  Lars Wirzenius  <liw@wapit.com>

	* Re-vamped the WTP layer to use a thread structure similar to WSP.
	All code referring to segmentation and re-assembly has been deleted
	(this was simpler for me - it wasn't used anyway, and we can dig it
	out of CVS if we want it later). Error handling also suffered, but
	on the other hand, the current structure should be easier to make
	robust.
	
	* gw/wap-events-def.h: Events generated from PDUs now have the
	address of the client and the gateway included in the event.
	This means we can use a trivial wtp_dispatch_event function
	interface, without having to carry around the addressing information
	separately.
	
	Other events that the WTP layer may receive include a `mid'
	(machine id) field for finding the correct WTPMachine. The ultimate
	goal it so make the WTPMachine data type hidden within WTP, so
	that there are no direct pointers to the machines.
	
	* gw/wapbox.c, gw/wsp.c, gw/wsp_state-decl.h: Use
	wtp_dispatch_event to send an event.
	
	* gwlib/gwthread-pthread.c: Commented out call to pthread_setspecific
	that was hanging shutdown. The real reason is probably somewhere
	else, but I didn't find it, so this workaround is used to make
	things at least seemingly work.

Sun Jun  4 04:38:02 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp_state-decl.h: Use WSP_PDU's, instead of
	packing things ourselves, as far is possible. Some fields have
	special packing encodings, those we do partly ourselves still.
	
	* gw/wsp_pdu.c: Don't crash if OCTSTR field is NULL, just ignore
	it.

Sun Jun  4 03:45:45 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events.c: wap_event_dump now reports name of Octstr
	fields.
	
	* gw/wsp_pdu.c: bit position is advanced correctly when unpacking
	a Uintvar. Also, dump tells when the dump ends.
	
	* gw/wsp_state-decl.h: Duplicate the URL octet string.
	
Sun Jun  4 02:36:10 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_pdu.[ch]: Added function wsp_pdu_create, which creates
	an (empty) PDU of the desired type. Made the warning about an
	unknown PDU type in wsp_pdu_destroy be a panic instead.

	* gw/wsp.c, gw/wsp_state-decl.h: Converted to use wsp_pdu.[ch]
	for unpacking. We have issues with packing: at least some fields
	need to be packed in a special way, and this needs to be handled
	in a clean way.

Sun Jun  4 01:03:55 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/protected.[ch]: Added wrapper for gethostbyname.
	
	* gwlib/socket.c: Made use of wrapper.

Sun Jun  4 00:52:22 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/protected.[ch]: Wrote thread-safe wrappers around 
	standard library functions gmtime, localtime, and rand. Note
	that this is just a beginning, we should wrap many more functions.
	
	* gw/urltrans.c, gwlib/gwlib.[ch], gwlib/log.c: Made use of the
	wrappers.

Sun Jun  4 00:20:19 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/numhash.c: Added typecasts to silence compiler warnings. Kalle,
	please fix it properly so it uses unsigned chars.

Sun Jun  4 00:06:23 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events.c: Added assertions to wap_event_name. Added
	calls to wap_event_assert. Event duplication now also works for
	NULL arguments. Fixed wap_event_assert (i.e., reduced the number
	of checks it makes - it was overly aggressive).
	
	* gw/wsp.c: Added calls to wap_event_assert.

2000-06-03  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.[ch]: Added octstr_append_uintvar.

	* gw/wsp_pdu.[ch], gw/wsp_pdu.def: Do the same for WSP PDU's.

	* gw/wtp_pdu.c: Bugfixes.

	* test/test_pdu.c: Test WSP data too.

2000-05-31  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.[ch]: Added octstr_get_bits and octstr_set_bits.

	* gw/wtp_pdu.[ch], gw/wtp_pdu.def: Deliberate preprocessor abuse
	to automate PDU packing and unpacking.  First draft; works for
	simple test cases, needs more documentation.  Not used by anything
	else yet.

	* test/test_pdu.c: Test program for above.

2000-05-31  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (string_table_add): A bug fixed. The string 
	didn't match any in the table, since it didn't have a termination 
	character at the end of it as those in the table. Also string has 
	to be destroyed if it has already a duplicate in the table.

2000-05-30  Kalle Marjola <rpr@wapit.com>

	* gw/bb_smsc.c: added white and black lists.

	* doc/userguide/newconf.txt: added 'documentation' about white and
	black lists

2000-05-30  Kalle Marjola <rpr@wapit.com>

	* gw/numhash.h|c: exported numhash from old smsgateway and edited
	it to work with new http2 and Octstrings, plus removed some
	functions. Next: implement white/black-list

2000-05-29  Richard Braakman  <dark@wapit.com>

	* gw/smsbox_req.c: Fixed silly mistake.

2000-05-29  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.c: Implemented conn_read_packet().

2000-05-29  Richard Braakman  <dark@wapit.com>

	* gw/bb_boxc.c: If listening socket cannot be opened, handle it
	by panicking rather than segfaulting.

2000-05-29  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: #ifdefs added to supprt libxml2. Does compile, 
	but does not work with it, yet. WapIT -> Wapit

	* gw/wml_definitions.h: WapIT -> Wapit

	* gw/wml_compiler.h: WapIT -> Wapit

	* configure.in: libxml2 added.

2000-05-29  Richard Braakman  <dark@wapit.com>

	* gw/smsc.c: Made bearerbox not crash if "smsc" field is missing
	from smsc config.

	* gwlib/gwthread-pthread.c: Comment around previous change was
	inaccurate; it was an fd leak on Linux too.

2000-05-29  Derry Hamilton  <rasilon@tardis.ed.ac.uk>

	* gwlib/gwthread-pthread.c: Added some system cleanups to 
	delete_threadinfo.  Threads are not always processes!

2000-05-29    Kalle Marjola <rpr@wapit.com>
	
	* gw/bb_boxc.c: fixed possible problem in box shutdown and added
	multiple wapbox routing. It is, however, not done according to
	load levels, just random distribution. Load balancing later.

2000-05-29  Richard Braakman  <dark@wapit.com>

	* test/fakewap.c: Use gwthread_join_all to wait for client threads
	to terminate.

2000-05-29  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c: In new_thread, free its argument a bit
	earlier, to avoid a race with gw_check_leaks.  (This caused seemingly
	random memory leak reports).

	* gwlib/conn.c: Use gwthread_pollfd instead of calling poll directly.

2000-05-29  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread-pthread.c: Made gwthread_create fail gracefully
	if there are more active threads than the module can handle, rather
	than panicking.

Sat May 27 06:39:51 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events.[ch]: Added wap_event_assert function.

Sat May 27 02:50:09 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwthread.[ch]: Added function gwthread_join_all, which
	joins all threads running a specific function.
	
	* gw/wap-appl.c, gw/wapbox.c, gw/wsp.c: Use gwthread_join_all to
	synchronize shutdown properly.

Sat May 27 02:05:41 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events.c: Only the fields for the correct event type
	are dumped by wap_event_dump.
	
	* gw/wapbox.c: Uncommented code to get heartbeat-freq setting
	from config. Added some shutdown code.
	
	NOTE: The wapbox does not currently shutdown correctly. Thread
	termination synchronization is not done and this causes a
	segfault at the end. Will hack that next.
	
	* gw/wap-appl.c: Event queue is emptied and destroyed at shutdown.
	
	* gw/wsp.c, gw/wsp_state-decl.h, gw/wtp_state-decl.h:
	Work started on making a global event queue for all
	WSPMachines. wsp_dispatch_event now the only external method
	for sending events to WSP. Its interface has been changed so
	that it only gets the event and will look inside the event to
	find addressing info - the WTPMachine is no longer needed to be
	given as the argument for this. A number of previously available
	functions are now static and must only be used from within the
	WSP layer.
	
Sat May 27 02:02:33 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwthread.h, gwlib/gwthread-pthread.c: Name of function
	made as the name of the thread.

Fri May 26 21:05:29 2000  Lars Wirzenius  <liw@wapit.com>

	* utils/start-stop-daemon.c: Added pid_is_cmd for FreeBSD.

Fri May 26 21:01:41 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http2.c: Compare header names case-insensitively.

Fri May 26 20:47:06 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-appl.h: Moved to gw/wsp.h. Don't want a zillion small
	.h files, after all.
	
	* gw/wsp.h: Added prototypes for the application layer.

2000-05-26  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.c: Converted conn_claim() stuff to use new thread
	interface.

	* gwlib/gwthread-pthread.c: Bugfix, make sure the main thread
	can still safely call gwthread_self after shutdown, so that gwmem
	layer can log stuff.

	* gwlib/thread.c: Converted mutex->owner to use new thread
	interface.

Fri May 26 20:34:01 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-appl.[ch]: Wrote. This is the new application layer.
	This version is ugly - essentially I just moved code in here
	from the old wsp_http.c - but I want to clean it up before I
	break it further.

	* gw/wsp_state-decl.h: Use S_MethodInvoke_Ind instead of
	S_MethodInvoke_Res and wap_appl_dispatch instead of
	wsp_http_thread.

	* gw/wap-events-def.h: Added S_MethodInvoke_Ind, removed most
	fields from S_MethodInvoke_Res, since they're now unnecessary.
	
	* gw/wapbox.c: Starts the application layer.
	
	* gw/wsp.c: Added #include for wap-appl.h.
	
	* gw/wsp.h: Removed prototype for wsp_http_thread.
	
	* gw/wsp_http.c: Removed.

Fri May 26 19:05:09 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wap-events.[ch], gw/wap-events-def.h: Combined WTPEvent and
	WSPEvent into a unified WAPEvent. This makes it slightly easier
	to find the events (no need to wonder whether a TR-Invoke.ind is
	a WTP or WSP event, for example), and reduces code duplication
	a bit.
	
	* gw/wsp_events-decl.h, gw/wtp_events-decl.h: Removed.
	
	* Lots of files: WTPEvent and WSPEvent and related function calls
	changed to WAPEvent and its functions.

	* gwlib/http2.c: http2_header_dump works now even with a NULL
	argument.

2000-05-26  Richard Braakman  <dark@wapit.com>

	* gwlib/gwthread.h: New thread interface.  Encapsulates thread
	creation, and provides features for interruptible sleeping and
	blocking.  Can eventually be extended to wrap all of pthreads,
	if desired.

	* gwlib/gwthread-pthread.c: Implementation of thread interface
	with pthreads.

	* gwlib/gwlib.h: Include gwthread.h too.

	* gwlib/gwlib.c: Initialize and shut down gwthread module along
	with the rest.

	* gw/bb_boxc.c, gw/bb_http.c, gw/bb_smsc.c, gw/bb_udp.c,
	gw/bearerbox.c, gw/smsbox.c, gw/smsbox_req.[ch], gw/wapbox.c,
	gw/wsp.h, gw/wsp_http.c, gw/wsp_state-decl.h, 
	test/drive_wapbox.c, test/fakewap.c, test/test_counter.c,
	test/test_http2.c, test/test_http2_server.c, test/test_list.c:
	Use gwthread_create instead of start_thread.
	Thread functions are now void functions instead of (void *)
	functions, so removed all the "return NULL" and changed the
	declarations.
	Use long instead of pthread_t as the thread identifier.
	Use gwthread_join instead of pthread_join.

	* gwlib/log.c: Use gwthread_self() instead of pthread_self()
	to get the thread number to log.

	* gwlib/thread.[ch]: Removed start_thread function.

Fri May 26 17:14:18 2000  Lars Wirzenius  <liw@wapit.com>

	* doc/arch/wapbox-arch.fig: New figure showing the planned
	wapbox architecture. (Not visible in the actual documentation
	yet, though.)

Fri May 26 16:59:03 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http2.c: Destroy temporary header list in
	http2_type_accepted.

Thu May 25 21:46:04 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http.[ch], test/test_http.c: Removed.
	
	* gwlib/http2.[ch]: Added a number of header handling functions.
	Also added many assertions.

	* gw/wsp.[ch], gw/wsp_headers.[ch], gw/wsp_http.c,
	gw/wsp_state-decl.h: Converted to use http2 instead of http for
	header handling.

2000-05-25    Kalle Marjola <rpr@wapit.com>

	* gw/bb_smsc.c: fixed some lock-ups during violent shutdown

2000-05-25  Richard Braakman  <dark@wapit.com>

	* test/fakewap.c: Sanitized tid handling.  It's now local to the
	client thread, rather than global.  Each client should have its
	own tid space anyway.

Thu May 25 18:45:15 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwlib.[ch]: gwlib_shutdown now always calls gw_check_leaks,
	to check for memory leaks. Added function gwlib_assert_init, to
	allow gwlib code to verify that gwlib has been initialized.

	* gw/bearerbox.c, gw/smsbox.c, gw/wapbox.c, test/drive_wapbox.c,
	test/fakesmsc.c, test/fakewap.c, test/test_cimd2.c,
	test/test_counter.c, test/test_http.c, test/test_http2.c,
	test/test_http2_server.c, test/test_list.c, test/test_mem.c,
	test/test_msg.c, test/test_udp.c, test/test_urltrans.c,
	test/wml_tester.c: Fixed to call gwlib_init and gwlib_shutdown
	instead of gw_init_mem and gw_check_leaks.
	
	* gwlib/octstr.c: Call gwlib_assert_init in seems_valid.

Thu May 25 16:52:22 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bb_smsc.c: Removed unused variable `ret'.

2000-05-25    Kalle Marjola <rpr@wapit.com>

	* gw/smsc.c, gw/smsc.h, gw/smsc_p.h, gw/bb_smsc.c: removed old
	dial-prefix (use global unified-prefix) and route-prefix, and
	added new denied-prefix and preferred-prefix, see details from
	documentation
	
	* doc/userguide/newconf.txt: added notes of preferred-preix and
	denied-prefix

2000-05-25    Kalle Marjola <rpr@wapit.com>

	* gw/smsc.h|c: got rid of bb_msg

	* gw/bb_smsc.c: modified to use just plain Msg
	
	* gw/bb_msg.*, gw/boxc.*, gw/wdp_udp.*: removed, not used anymore

2000-05-25    Kalle Marjola <rpr@wapit.com>

	* gw/bb_smsc.c: added number normalization/unifying, via
	configuration variable unified-prefix. 

	* doc/userguide/newconf.txt: added explanation of unified-prefix

2000-05-25    <Kalle Marjola <rpr@wapit.com>>

	* gw/*box.c: changed default configuration file to be
	kannel.conf. Please note that there is NO such file, but two
	sample files, smskannel.conf and wapkannel.conf

2000-05-24    <Kalle Marjola <rpr@wapit.com>>

	* doc/userguide/userguide.xml: Removed old configuration file
	things, read the newconf.txt file. Did same to HTTP adminstration
	notes, read file newbb.txt

	* doc/arch/arch-bearerbox.xml: Rewrote to reflect the new
	bearerbox. Have to do it a bit more deeply someday, however. And
	pictures, too.

	* gw/wsp.c: Applied a short WSP header patch by Joerg Pommnitz to
	handle broken headers from Timeport

	* test/simple.smsconf: removed

2000-05-24  Richard Braakman  <dark@wapit.com>

	* gw/wsp_http.c: Fixed Accept header scanning in wsp_http_thread.

2000-05-24    <Kalle Marjola <rpr@wapit.com>>

	* doc/userguide/newconf.txt: added documentation about new
	configuration file

	* doc/userguide/newbb.txt: added documentation about new
	bearerbox

	* gw/bearerbox.c: moved new bearerbox into final name, old
	bearerbox removed from the project

	* gw/smskannel.conf, gw/wapkannel.conf: added new sample
	configurations

	* gw/kannel.*conf: removed old configuration defination files

	* test/sample.*conf: removed old sample configurations

	* gw/smsbox.c, gw/urltrans.c, gw/wapbox.c: edited to use new 
	configuration file

	* README: updated

2000-05-24  Richard Braakman  <dark@wapit.com>

	* test/test_cimd2.c: Written a while ago, added to CVS today.
	Might be useful for people doing speed tests of sms handling.
	
2000-05-23    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/http2.c|h: moved destroying functions here, and changed so
	that http2_socket_host does not duplicate the octstr but returns
	reference

	* gw/bb_http.c: check for password of the admin

	* gw/smsbox*.c moved cgi and destroy functions to http2
	
2000-05-23    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_http.c: check for allow/deny IP for http admin
	
2000-05-23    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/socket.h|c: added host_ip to get, well, host IP. That
	needed mutex because ntoa operation is not thread-safe, so added
	socket_init and shutdown, too

	* gwlib/gwlib.c: calls to socket_init and shutdown
	
	* gwlib/http2.c: get client host IP

	* gwlib/utils.c|h: added is_allowed_ip function

	* gw/bb_core.c: options -S and -I to start new bearerbox in
	suspended or isolated state

	* gw/bb_boxc.c: check for client allowed/denied IP

2000-05-23  Richard Braakman  <dark@wapit.com>

	* test/drive_wapbox.c: Fix free-port-hunting code for fake httpd.

2000-05-23  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: The maximum message length was always set to 140.
	It should be 160 for normal (non-UDH, non-8bit) messages.  Fixed.

2000-05-22    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/utils.c|h, gw/bearerbox.c: moved normalize_number to
	utils module from old bearerbox

	* gwlib/http2.h|c: first version of http2_socket_ip, although
	not yet working with servers, beware

2000-05-22  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.h, gwlib/conn.c: Made output buffering explicit instead
	of hidden in the interface.  (We can't hide it with 100% correctness
	if there are multiple threads using the Connection, not all of which
	are in a conn_wait loop).
	Added conn_output_buffering and conn_flush functions.

	* test/drive_wapbox.c: Made the fake httpd return a real wml page,
	for better testing.  (This exercises the WML compiler).
	Cleaned up some memory leaks.

2000-05-22  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.h, gwlib/conn.c: Extended to handle end-of-file better.
	Added conn_eof function.

	* test/drive_wapbox.c: Use conn_eof.

2000-05-22  Richard Braakman  <dark@wapit.com>

	* test/drive_wapbox.c: Make setting the U/P flag optional, with
	the -U flag, because Kannel no longer (erroneously) requires it.
	Also have its internal httpd supply a Content-Type header.

2000-05-22    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/http2.c|h: implemented function http2_destroy_headers

	* gw/bb_core.c: some update to status information

	* gw/bb_http.c: fixed last memory leaks, now the new system should
	not leak memory at all. Still misses cgibin arguments because of
	the lack of operations in http2.

2000-05-18  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsfalloc.c: Make ws_f_malloc return blocks aligned
	to sizeof(long), to prevent unaligned accesses.  This should fix
	the bug reported by Lim YoungLan, but I can't test that here.

2000-05-17    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/counter.c|h: renamed counter_get as counter_increase and
	added function counter_value.

	* test/test_*.c, gw/wsp.c: changed counter functions

	* gw/smsc.c, gw/smsc_fake.c: started a project that smsc_close
	will eventually free all memory it has reserved. Fake does this
	already, rest do not, and close is a bit weird for those right
	now.

	* gw/bb_*.c: added counters for messages, fixed some timing
	problems.

2000-05-17  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Now variables use the string table. Some fixing 
	for reducing numbers of the memory allocations and reallocations is 
	needed.

2000-05-17    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_*.c: Some final cleanup added

	* gw/smsc_fake.c: smsc_close now destroyes eveyrhing. Should add
	this functionality to other SMSCes, too, and rename it as _destroy

2000-05-17  Richard Braakman  <dark@wapit.com>

	* test/drive_wapbox.c: Memory leak now fixed.  Added includes
	needed by accept().

2000-05-17  Aarno Syvnen <syvanen@wapit.com>

	* wtp_state-decl.h: Two bugfixes: rid to 0, when the result is
	sended first time (thanks to Oliver Lau), conditions checking
	whether u/p-flag is up corrected.

2000-05-16    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/list.c|h: added function list_producer_count

	* gw/bb_*.c: smsc thingies are now somehow working. Does not work
	very well with multiple smsces, however.

2000-05-16  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Memory leaks with variables removed. 
	String table code mostly done, nrext thing is to start to use it.

	* gwlib/octstr.[ch]: octstr_create_tolower removed as unnecessary.

2000-05-15  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.[ch]: Found some more things to fix while writing
	drive_wapbox.  Interface is almost stable now.

	* gwlib/thread.c: Added some assertions for mutex not being NULL.

2000-05-15  Richard Braakman  <dark@wapit.com>

	* test/drive_wapbox.c: A tool to run the wapbox in isolation,
	for easy profiling.

2000-05-15    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_*.c: Now most memory leaks are fixed, the new bearerbox
	dies quite nicely and can handle exiting wapboxes and new
	connections. Still needs much testing and there is some mysterios
	things not freed at the end, so back to work. 

Mon May 15 16:07:00 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_http.c: Report character set when fetch is successful.
	
	* gwlib/http2.c: Fix parsing of character set from Content-Type.
	
	* test/test_http2.c: Report reply headers.

Mon May 15 15:59:32 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_http.c: Do not require resp_headers to be non-NULL.
	Instead, only destroy it if it is non-NULL. Fixes bug #69
	by Kalle Marjola.

Mon May 15 15:06:16 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_http.c: Undid broken changes to how HTTP headers are
	generated.
	
	* gwlib/http2.c: Dump to log file the headers used in the request.

2000-05-15  Richard Braakman  <dark@wapit.com>

	* wsp_http.c: octstr_destroy(key_os) and (value_os) moved into the
	loop, so that it's not a memory leak.

2000-05-11   Aarno Syvnen <syvanen@wapit.com>

	* wsp_http.c: Using octstr_compare instead of strstr in conditional 
	header addition. There was some curious problem with strstrs.

	* wsp.c: Changed Can't handle event error code to 0xEO. This is user
	protoerr.

Fri May 12    Derry Hamilton <rasilon@tardis.ed.ac.uk>
	* fakewap.c: Added -F switch which enables continue on fail
	rather than exit on fail. (Stress testing)

2000-05-11    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_*.c: suspend and isolate status now in work. System still
	leaks memory somewhere and some things are missing, but WAP
	browsing works fine with new bearerbox.

2000-05-11  Richard Braakman  <dark@wapit.com>

	* configure.in, configure: Made it not look for getloadavg.c
	on systems that have no getloadavg().

2000-05-11    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_http.c: Oooops, added

	* gw/bb_*.c: added signal trapping and (shutdown) flow-control.
	Still need some new List operations to free all memory while
	exiting.

2000-05-10    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_*.c: and more, now some HTTP adminstration 'works'
	(implementation partial in other modules)

Tue May  9 Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gw/wapbox.c,configure.in,configure: Updated getloadavg bits to
	search for getloadavg, rather than just assume that it exists
	on Solaris.
	* utils/start-stop-daemon.c: Fixed typo.

Tue May  9 23:03:26 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwmem-check.c: Fixed so that fill doesn't have a pointer
	alignment bug.

Tue May  9 22:53:22 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http2.c: Bugfix. Host header should include port number
	if the URL had a non-default one.

Tue May  9 20:53:25 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_http.c: Report status code returned by http2_get_real
	if it fails.
	
	* gwlib/http2.c: Added includes for sys/types.h and sys/socket.h.
	This should silence warnings about accept being undeclared.

Tue May  9 20:01:45 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in: Make it allow random junk before the version
	number in the output of xml-config. Based on patch from
	Gus <angus@z-y-g-o.com>.

000-05-09  Derry Hamilton <rasilon@tardis.ed.ac.uk>

        * gwlib/socket.c: Changed the calls to info to calls to error
	when something has gone wrong.
	* gwlib/list.c: Added gw_asserts to some of the list functions.
	The problem is higher up, though.
	* gw/wsp_http.c:  Added gw_asserts to some of the URL handling
	a call to an invalid protocol causes problems.

Tue May  9 19:31:44 2000  Lars Wirzenius  <liw@wapit.com>

	* utils/start-stop-daemon.c: Hand-applied patch from David
	Reid for FreeBSD support. No way to test if I did it correctly,
	hopefully kannel-nag or a FreeBSD user will complain.

2000-05-09  Richard Braakman  <dark@wapit.com>

	* gw/smsc.c: system-type and address-range are also required
	for SMPP configurations.

2000-05-09    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_*.c: something new, many things still missing

2000-05-09  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.c, gwlib/conn.h: Added octstr_read_withlen and
	octstr_write_withlen.  Also fixed errors in unlocked_get().

2000-05-09  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gw/wapbox.c, configure.in, configure, utils/start-stop-daemon.c:
	Cleaned up SunOS definition

2000-05-08  Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gw/wapbox.c: Implemented load reporting for Solaris

2000-05-08  Richard Braakman  <dark@wapit.com>

	* Made all sig_atomic_t variables volatile, because there is no
	reason to use sig_atomic_t otherwise.

2000-05-08  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.c: Commented static functions.
	Added unlocked_outbuf_len and unlocked_inbuf_len helper functions.
	Added unlocked_try_write helper function, to implement output
	buffering.  Implemented conn_wait.

2000-05-08  Richard Braakman  <dark@wapit.com>

	* test/fakewap.c: Fixed -n flag.

2000-05-07    Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gwlib/socket.c: Fixed tv_usec > 1000000 handling.

2000-05-05    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_smsc.c: Now it is half done. However, the old
	smsc_interface should be redone, now idea to use old rq-items
	anymore in new design. Back to work on Monday

	* gw/bb_*.c: fixed some places causing warnings

2000-05-05 Aarno Syvnen <syvanen@wapit.com>

	* wtp_tid.c|h: Module now uses list standard functions

	* wtp_state-decl.h: Commented

2000-05-04    <Kalle Marjola <rpr@wapit.com>>

	* gw/bb_core.c: logfiles

	* gw/bb_boxc.c: added basic routing thingies, now it only needs
	some load balancing to wap side, otherwise this module is about
	complete.. oh I forgot the dynamic configuration, but that later -
	the old one does not have it either

	* gw/bb_udp.c: added routing, now this function is about ready,
	except dynamic configuration and some testing etc.

2000-05-04  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.c, gwlib/conn.h: Got rid of network_long functions.
	The interface is so awkward that it's just as easy for the caller
	to fill a 4-octet buffer and provide that.

	* gwlib/octstr.h, gwlib/octstr.c: Added functions octstr_write_data
	and octstr_append, used by the new Connection code.

	* gwlib/http2.c: Removed static octstr_append, superseded by the one
	in the octstr module.

	* gwlib/conn.c, gwlib/conn.h: conn_read interface was not useful.
	Renamed to conn_read_fixed(), made it return exactly the number
	of bytes specified.

	* gwlib/conn.c code fleshed out some more, but several functions
	still not implemented.

2000-05-04  Richard Braakman  <dark@wapit.com>

	* gw/wsp_http.c: In wsp_http_thread(), do not destroy charset
	until after it is used by the converters.

Thu May  4 18:35:24 2000  Lars Wirzenius  <liw@wapit.com>

	* Making *DEVELOPMENT* release 0.9. This is not stable, don't use
	it in production use.

2000-05-04    Kalle Marjola <rpr@wapit.com>

	* gw/bb_core.c, gw/bb_boxc.c, gw/bb_udp.c, gw/bb_smsc.c,
	gw/new_bb.h: added first version of the new bearerbox. 
	WAP-browsing works, but bearerbox is missing signal handling, 
	HTTP adminstration, log files, SMSC support, wapbox routing 
	and many, many more things. 

	* gw/new_kannel.conf: new configuration file type used by the new
	bearerbox. Documentation later.

	* Makefile.in: added target for bb_core, the new bearerbox proto

2000-05-04    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/conffile.c|h: more changes so that all functions needing
	ConfigGroup work with NULL argument, returning just NULL

2000-05-03  Steffen Weinreich  <steve@weinreich.org>

	* smsc_emi.c: Fixed the EMI code for UDH and added an initialisation
	for the TRN counter. This fixes the error with negative TRN if there
	wasnt a message received before  the first send
	

2000-05-03  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wsp_http.c: Added the charset support here too. Now it's still 
	needed in html2.

	* test/wml_tester.c: Rewrote most of the main-function, started 
	using getopt for options. The charset stuff was added too.

	* gw/wml_definitions.h: The pile of definitions and static arrays 
	just grew too huge. Added an own file for them.

	* gw/wml_compiler.[ch] : The WML compiler now recognises the 
	most common character sets from ISO-8859-series(1-9) and UTF-8.
	It is now easy to add new 8-bit character sets into it.

2000-05-03  Richard Braakman  <dark@wapit.com>

	* inet_aton is not used anywhere.  Removed definition from
	gwlib/socket.c, and removed all configure checks for its
	existence.

	* Removed unused linger() code from tcpip_connect_to_server.
	We have CVS for storing dead code.

2000-05-03  Richard Braakman  <dark@wapit.com>

	* configure.in, config.h.in, configure: Added --enable-mutex-stats
	option.

	* gwlib/thread.c, gwlib.thread.h, gwlib/gwmem-check.c: If mutex
	stats are enabled, log statistics about mutex usage.

	* gwlib/thread.c: Make mutex_try_lock silently ignore recursive
	locks again.

Wed May  3 15:04:57 2000  Lars Wirzenius  <liw@wapit.com>

	* contrib/html2wml.pl: Added script to convert WML to HTML,
	by Taneli Lepp. This is not used yet - Kannel lacks a way to
	add external converters (see the status page for the relevant
	project). But I guess I should archive it in my mail inbox.
	
	* README.src: documented the contrib directory.

2000-05-03  Richard Braakman  <dark@wapit.com>

	* doc/CodingStyle: Added note about not putting large arrays on
	the stack.  Maybe we can fix the pthread_attr_setstacksize problem
	this way.

Wed May  3 12:20:32 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwlib.c: New file to hold new functions gwlib_init and
	gwlib_shutdown.

	* gwlib/gwlib.h: Added prototypes for gwlib_init and
	gwlib_shutdown.
	
	* gw/wapbox.c: Call gwlib_init (instead of gw_init_mem) and
	gwlib_shutdown.
	
	* gw/wsp_http.c: Removed commented out code that called old
	WML compiler. Converted to use new HTTP code.

Tue May  2 22:01:06 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bearerbox.c: sendsms_thread in internal smsbox commented
	out, because it was pointless converting it to the new HTTP,
	since it will disappear in the re-write.
	
	* gw/smsbox.c, gw/smsbox_req.c: Converted to use new HTTP.
	
	* gw/http2.[ch]: Wrote function http2_socket_fd.
	http2_server_send_reply modified to accept NULL arguments for
	headers and body.
	
	* gwlib/socket.[ch]: Wrote function socket_get_peer_ip.

Tue May  2 20:19:45 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/html.[ch]: Converted html_ functions to use Octstr instead
	of C string.
	
	* gw/smsbox.c: Undid rpr's undoing of my change to get rid of
	send_hearbeat's static variable. It's a memory leak. We don't want
	memory leaks. In this case, it is of a fixed size, but it's annoying
	in the gw_check_leaks report.
	
	Also added calls to http2_init and http2_shutdown.
	
	* gw/smsbox_req.c: function obey_request converted to use http2
	and Octstr.
	
	* gwlib/http2.c: Removed verbose "Re-using old socket" message.
	Also removed redundant checking of http2_get's return value in
	http2_get_real.
	
	* gwlib/octstr.[ch]: Wrote octstr_search_cstr_from.

2000-05-02  Richard Braakman  <dark@wapit.com>

	* gwlib/conn.h, gwlib.conn.c: Initial framework for Connection module.

2000-05-02  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: Do not specify sms sender on outgoing messages.
	Explanation is in the code.

2000-05-02 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: In function add_segment_to_message, removed a static
	variable.  in function tell_about_error, fixed a memory leak,

2000-05-02    <Kalle Marjola <rpr@wapit.com>>

	* doc/userguide/userguide.xml: added notes on UDH sending

2000-05-02 Aarno Syvnen <syvanen@wapit.com>

	* wsp_state-decl.h: Commented how implementation state machine 
	corresponds ones defined by the specs. 

2000-05-02    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/conffile.c|h: modified some functions to work even with
	NULL arguments, to reduce checking in calling functions

2000-04-27  Richard Braakman  <dark@wapit.com>

	* gwlib/thread.c: Unlike every other C library function, 
	the pthread functions return their error code rather than
	setting errno.  Changed all uses of errno in this file to
	use the returned values instead.
	While I was there, made all functions use the same indentation
	width (the file was mixed).

	* gwlib/thread.c: Made mutex_try_lock panic if it managed
	to lock the same mutex twice, rather than trying to cope.
	This is consistent with mutex_lock, and helps us stay portable.

	* gw/smsbox_req.c: Removed unused call to pthread_self.

	* gwlib/log.c: Cast pthread_self() to long rather than to int,
	for printing.

2000-04-27  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c, gwlib/octstr.h: New functions 
	octstr_binary_to_base64 and octstr_base64_to_binary.
	Also made octstr_grow reserve space for the terminating NUL,
	so that the caller doesn't have to and can't forget.

2000-04-27  Richard Braakman  <dark@wapit.com>

	* gwlib/list.c: Make list_destroy() silently ignore a NULL
	argument, like all the other destroy functions.

2000-04-27  Richard Braakman  <dark@wapit.com>

	* gwlib/gwmem-check.c: In fill(), do arithmetic with long *
	instead of void *.

2000-04-27    <Kalle Marjola <rpr@wapit.com>>

	* gw/smsc_sema.c: some fixes and updates by Hao Shi

2000-04-27  Richard Braakman  <dark@wapit.com>

	* gwlib/gwmem.h: Move prototype declarations out of the #if
	construct, because all of them are compiled though only one
	set is used.

2000-04-26  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd2.c: Wrote.  Support for CIMD2 servers.

	* gw/smsc.c: Added CIMD2 hooks to all the multiplexer functions.
	Added support for "keepalive" option with CIMD2 needs.
	Fixed memory leak when smscenter_receive_message fails.

	* gw/smsc_p.h: Added SMSC_TYPE_CIMD2, and cimd2 fields to the
	shared structure.  Added prototypes for cimd2 interface.

	* gw/kannel.conf: Add example configuration group for CIMD2.

	* doc/CodingStyle: Add bb.sms.cimd2 to the list of debug areas.

	* gwlib/charset.c, gwlib/charset.h: Wrote.  Contains functions
	for converting between ISO-Latin-1 and the GSM default alphabet.
	Used by CIMD2 code.

	* gwlib/gwlib.h: Include "charset.h" as well.

Wed Apr 26 16:40:41 2000  Lars Wirzenius  <liw@wapit.com>

	* Making relase 0.8.

Wed Apr 26 15:34:17 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwmem.h: Fixed prototypes for native wrapper.
	
	* gwlib/socket.c: Commented out SO_LINGER settings and added
	more detailed error reporting.

2000-04-26    <Kalle Marjola <rpr@wapit.com>>

	* gw/bearebox.c: added VERSION to status query

	* gw/boxc.c: commented out debug print of 0 load factor

	* gw/smsc_sema.c: new version by Hao Shi

	* test/sample.conf: made it to work along with configuration
	rename by Lars

Sun Apr 23 23:44:30 2000  Lars Wirzenius  <liw@wapit.com>

	* README.autoconf: Obsolete, thus removed.

Sun Apr 23 23:37:40 2000  Lars Wirzenius  <liw@wapit.com>

	* config.h.in, configure.in: Made it configure-time selectable
	whether to use the debugging features of gwmem or not.
	
	* gwlib/gwmem.c: Removed. Actually, split into gwmem-native.c and
	gwmem-check.c.

	* gwlib/gwmem.h, gwmem-native.c, gwmem-check.c: Separated the
	checking and non-checking implemenations. The term `native' is
	chosen to allow for a third option: `fast'. This will not do
	checking, but will reduce the number of actual malloc calls made.
	
	* gwlib/gwstr.c: Replaced includes with a simple "gwlib.h",
	so as to make sure config.h is included properly.
	
	* gwlib/octstr.c, test/test_mem.c: Fixed to conform to new
	interface of gw_assert_allocated.

Sun Apr 23 22:38:18 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp_send.c: When re-sending a message, create a duplicate of
	the message to be sent. Related to PR44 by Paul Keogh.

Sun Apr 23 21:45:36 2000  Lars Wirzenius  <liw@wapit.com>

	* test/wapbox_feeder.c: Obsolete, thus removed.

Sat Apr 22 23:47:33 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in, config.h.in: Added option --enable-http2. Files
	that start using http2.h should do it conditionally based on
	USE_HTTP2. This allows us to easily switch between the old and
	new implementations.

Sat Apr 22 23:35:27 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http2.[ch]: Implemented GET CGI argument parsing.

Sat Apr 22 22:55:05 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http2.[ch]: Moved PoolSocket's out of .c into .h and
	renamed them to HTTPSocket. This is because the server also
	needs to use them to keep implementation work easy. Thus, the
	server is represented as an HTTPSocket, not an int. Re-arranged
	some of the internal functions in .c regarding this.
	
	Oh yes, I implemented a bit of the server side part of the
	protocol as well. Need to do CGI argument parsing still.
	
	* test/test_http2_server.c: Wrote test program for server side.

Sat Apr 22 21:07:11 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwmem.[ch]: Now report the name of the calling function
	as well as the file and source line (this requires a compiler
	that supports __FUNCTION__). Also, added gw_assert_allocated
	for checking that a pointer points at an allocated area.
	
	* gwlib/octstr.c, test/test_mem.c: Made use of gwlib/octstr.c.
	
Sat Apr 22 19:28:52 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwmem.c: Turned memory checks back on by default.
	
	* gwlib/http2.c: If reading the status fails, close the connection
	and open a new one. If that also fails, *then* report to caller.
	It seems sometimes at least Apache manages to close the connection
	(even though it hasn't been idle for several milliseconds) *after*
	we have sent the request. This masks such a temporary error from
	the library user.
	
	Also, bug fix: We look for an *unused* PoolSocket instead of a
	used when, when allocating.
	
	* test/test_http2.c: Made it possible to run many threads do many
	client operations.

Sat Apr 22 02:57:22 2000  Lars Wirzenius  <liw@wapit.com>

	* test/run-http2-tests, test/test_http.c: Added -s option to
	old HTTP tester as well, and made test/run-http2-tests compare
	the results of the old and new ones as well as lynx.

Sat Apr 22 02:40:38 2000  Lars Wirzenius  <liw@wapit.com>

	*  gwlib/http2.[ch]: Wrote. This is the beginning of the new
	HTTP implementation.

	* test/http2-test-urls, test/run-http2-tests, test/test_http2.c:
	Testing harness for the new HTTP implementation.

	* gwlib/octstr.h: Fixed comment explaining error return.

2000-04-20  Richard Braakman  <dark@wapit.com>

	* Made read_to_eof set its output parameter to NULL on error,
	instead of leaving garbage in it.  This fixes PR#52 reported
	by Paul Keogh.

2000-04-20  Richard Braakman  <dark@wapit.com>

	* doc/arch/.cvsignore, doc/userguide/.cvsignore: New files.

	* gw/smsc_smpp.c, gw/smsc_smpp.h: Got rid of all uses of uint32_t.
	* gwlib/octstr.c: Got rid of all uses of uint32_t.

	* gwlib/utils.c, gwlib/utils.h: Provided encode_network_long and
	decode_network_long to help the functions that (erroneously) used
	uint32_t as an "exactly 4 octets" type.

	* gwlib/gwstdint.h: Removed.  No code refers to uint32_t (or any
	of its cousins) anymore.  This fixes PR#50, reported by David Reid.

	* config.h.in, configure.in, README.autoconf: Removed tests
	for uint32_t and stdint.h.  Re-ran autoconf.

2000-04-20  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.h, gwlib/octstr.c: Removed octstr_cat_char,
	all callers to it really wanted octstr_append_char and have
	been changed.

2000-04-19  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Now uses the struct to carry WML binary, the
	headers and string table.

2000-04-18  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: type conflict with output_char corrected, 
	calls to octstr_cat_char removed.

2000-04-18  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c, gwlib/octstr.h: Added octstr_append_from_socket.
	Corrected EINTR handling in octstr_write_to_socket.

	* gwlib/socket.c: Made read_available() cope with EINTR.

2000-04-18 Sanna Seppanan <sanna@wapit.com>

	* gwlib/list.h,c Added list_cat. It joins two lists to one.

Mon Apr 17 20:25:19 2000  Lars Wirzenius  <liw@wapit.com>

	* test/test_list.c: Fixed more pthread_t vs long warnings.

2000-04-17 Sanna Seppanen <sanna@wapit.com>

	* gwlib/octstr.h,c: Added octstr_get_digit_from(). Searches long int 
	from octstr.

Sat Apr 15 19:45:50 2000  Lars Wirzenius  <liw@wapit.com>

	* utils/daily-patch: Skip changes to gateway/configure.

Sat Apr 15 19:19:08 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/log.[ch]: Added function close_all_logfiles based on
	patch from Paul Keogh.

Sat Apr 15 18:31:55 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/thread.c: mutex_lock now checks that it doesn't lock the
	mutex twice and panics if it does.

Sat Apr 15 18:01:39 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/smsc_emi.c: If B115200 is not defined, use B38400 instead.
	This compiles, but I can't test it right now.

Sat Apr 15 17:40:18 2000  Lars Wirzenius  <liw@wapit.com>

	* test/test_list.c: More fixes to correct assumptions that
	pthread_t == long.

Sat Apr 15 17:30:51 2000  Lars Wirzenius  <liw@wapit.com>

	* config.h.in, configure.in: Fixed --enable-docs option and added
	(under protest but under pressure) a --enable-localtime option
	for outputting time stamps in configuration files as local time
	instead of GMT.

2000-04-14  Richard Braakman  <dark@wapit.com>

	* gwlib/thread.c: Got rid of some #ifdefs by assuming HAVE_PTHREAD_H.

	* test/list.c: Fixed one more pthread_t == long assumption.

Thu Apr 13 21:01:20 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/thread.h: Removed obsolete definitions for pthread_t etc
	on systems without <pthread.h>.
	
	* test/test_list.c: Fixed so it won't assume pthread_t is a long
	or compatible with a long.

Thu Apr 13 18:35:15 2000  Lars Wirzenius  <liw@wapit.com>

	* Making release 0.7.1.

Thu Apr 13 17:14:40 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bearerbox.c: Commented out extraneous debugging message.
	
	* gw/wsp.c: Function transaction_belongs_to_session: Check that
	neither machine is unused.
	
	* test/fakesmsc.c: Always try reading at least once, even if
	timeout has already occured. This helps in high-load situations.
	
	* test/fakewap.c: Print "finished session" messages even if
	interval is very small.

2000-04-13  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd.c: Fixed message text loading for messages with both
	UDH and normal text.

2000-04-13    <Kalle Marjola <rpr@wapit.com>>

	* gw/bearerbox.c: tried to fix saturation problem; failed but now
	works a bit better. Also added max-queue variable reading, it had
	been lost in some point. I will try to fix saturation later on

	* gw/smsbox.c: removed that thread-safe heartbeat thingy, it is of
	no use (sorry Liw :)

Wed Apr 12  2000  Derry Hamilton  <rasilon@tardis.ed.ac.uk

        * utils/start-stop-daemon.c: Implemented pid_is_user and pid_is_cmd
	for solaris.


2000-04-12  Tuomas Luttinen  <tuo@tuo.wapit.fi>

	* gwlib/octstr.[ch]: Function octstr_append_char added.

	* gw/wml_compiler.c: Attribute values are now searched for text
	that can be replaced with one byte value codes.

Wed Apr 12 00:30:54 2000  Lars Wirzenius  <liw@wapit.com>

	* test/fakewap.c, test/test_http.c, test/test_urltrans.c,
	utils/start-stop-daemon.c: Changed references to <getopt.h>
	to <unistd.h>, except in start-stop-daemon, where <getopt.h>
	is still needed because of getopt_long.
	
	Thanks to kean.leong.ang@my.arthurandersen.com for noticing
	this (and providing a patch, even though I did it slightly
	differently).

Tue Apr 11 21:57:17 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bearerbox.c: Try harder to read from smsbox to avoid the
	problem of not noticing smsbox heartbeats when incoming traffic
	is too fast.
	
	* gw/smsbox.c: Panic if bearerbox connection fails. 
	
	* test/fakesmsc.c: Rewritten so as not to busy loop.

2000-04-11  Richard Braakman  <dark@wapit.com>

	* gwlib/socket.c, gwlib/socket.h: Added socket_query_blocking
	and socket_set_blocking functions.  Untested.

2000-04-11  Richard Braakman  <dark@wapit.com>

	* gwlib/thread.c: Made mutex_destroy silently handle a NULL mutex,
	like other destroy functions.

	* gw/smsc.c: In smscenter_destruct(), also destroy smsc->mutex,
	to fix memory leak.  (Thanks to Paul Keogh)

2000-04-10  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Corrected off-by-one errors in octstr_convert_range
	and octstr_check_range.

2000-04-10  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: In octstr_search_char_from, don't assert that
	pos <= ostr->len.  Just return -1 in that case.  This preserves
	the old behaviour, and makes the function easier to use.

2000-04-10  Richard Braakman  <dark@wapit.com>

	* gw/wsp_http.c: Made convert_to_self call octstr_duplicate rather
	than returning its argument directly.  Its caller expects to be
	able to free the argument.

2000-04-10  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c, gwlib/octstr.h: Reimplemented octstr_search_str
	as octstr_search_cstr, removing the old one.  Added octstr_search
	(for two Octstrs).  Reimplemented octstr_search_char_from to use
	memchr instead of the octstr_get_char interface, for speed.

2000-04-10 Sanna Seppanen <sanna@wapit.com>

	* gwlib/octstr.c,h: octstr_search_str()-function memory-leak fixed.
	If it is still somehow suspicious, please fix it! I do use it in my
	implementations.
	
Sun Apr  9 20:42:08 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in: Added nag target.
	
	* utils/find-long-lines: Wrote.
	
	* test/test_udp.c, test/test_list.c, test/fakewap.c, test/fakesmsc.c:
	Re-formatted some long lines.
	
	* gw/wsp.[ch], gw/wsp_machine-decl.h: Wrote function
	wsp_machine_mark_unused. This marks a WSPMachine as unused.
	
	* gw/wsp.c: wsp_machine_destroy now removes the machine from
	the list of WSPMachines. wsp_shutdown and same_client changed
	correspondingly.  wsp_handle_event calls wsp_machine_destroy if
	it notices the machine becomes unused.
	
	* gw/wsp_state-decl.h: Changed to use wsp_machine_mark_unused instead
	of mucking around with the client_port field.
	
	* gw/wtp.c: wtp_handle_event removes machine if it notices it
	is unused.

Sun Apr  9 02:18:38 2000  Lars Wirzenius  <liw@wapit.com>

	* More memory leak fixes, now in bearerbox. Now it should be possible
	to run heavy and long time stress tests on all three boxes.

	* gw/bb_msg.[ch]: Wrote function rq_destroy.

	* gw/bearerbox.c: Wrote function destroy_bb. Added functions for
	freeing memory at end of main.

	* gw/wdp_udp.c: Octstr with client address now freed.

	* Some other changes as well.

	* gw/wtp.c: Bugfix. timer field of WTPMachine set to NULL after
	having been destroyed, so that wtp_machine_destroy doesn't try to
	destroy it a second time.

	* gw/wtp_timer.c: wtp_timer_destroy is now safe to call with NULL.
	(All our other _destroy functions are, so this one should also be.)

	* gwlib/gwmem.c: forget() does not fill the area any more, because
	this causes problems with realloc. This is a workaround, and needs
	to be handled better when I'm awake.

Sun Apr  9 00:33:59 2000  Lars Wirzenius  <liw@wapit.com>

	* Memory leak fixes.

	* gw/wapbox.c: Destroy received messages after they have been
	processed. Also destroy event created from the incoming message
	if no WTP machine for processing it can be found.

	* gw/wsp.c: Destroy handled events in wsp_handle_event. Destroy
	temporary Octstrs for holding the binary data of capabilities and
	headers.

	* gw/wsp_http.c: One more place where the content type returned by
	http_get_u wasn't destroyed. Also, the event wsp_http_thread gets
	as an argument is destroyed properly, and (bugfix!) not used after
	being destroyed.

	* gw/wsp_state-decl.h: Correctly duplicate data for event to be
	sent to wsp_http_thread.

	* gw/wtp_tid.c: Removed comments from around cache_item_destroy
	and used it to destroy the tid cache at shutdown.

	* gw/wtp_timer.c: wtp_timer_destroy and wtp_timer_stop now destroy
	the event associated with the timer.

	* Also made some other changes:

	* gw/wtp_send.c: Removed unnecessary error checkings for packing
	functions.

	* gw/wtp_timer.c: Made the global variable `timers' into a static.

	* gwlib/http.[ch]: Wrote header_duplicate.

	* gwlib/octstr.c: octstr_duplicate now returns NULL for a NULL
	argument, instead of crashing.

Sat Apr  8 22:31:45 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/smsbox.c: Added informational message that smsbox is
	terminating.

	* gw/wapbox.c: Added more destruction and freeing things to end of
	main. This helps debugging memory leaks.

	* gw/wtp.h, gw/wtp_tid.h, gw/wtp_timer.h, gw/wtp_timer.c: Added
	shutdown functions.

	* test/wml_tester.c: Added call to gw_check_leaks to help debug
	memory leaks (none found in WML compiler, however).

	* gw/wsp.h, gw/wsp.c: Removed `next' element of WSPEvent structure,
	since it was unused. Also added a wsp_event_duplicate function.

	* gw/wsp.c: Really implemented wsp_machine_destroy. It's now used
	by the wsp_shutdown function, the client_port element is still set
	to -1 to signal an unused WSPMachine.

	* gw/wsp_http.c: Memory leak fixes. The type string returned by
	http_get_u is now freed, as is the data it returns and the Octstr
	copy made of it.

	* gw/wtp.c: Memory leak fixes. Implemented wtp_machine_destroy as
	a static function. Changed initializations of OCTSTR and WSP_EVENT
	type fields in WTPMachine so that empty things aren't allocated
	unnecessarily (and then leaked by overwriting the pointer without
	freeing the always unused empty things allocated).

	* gw/wtp_send.c: Possible memory leak fixes (though not necessarily
	actual, but that might be a problem in my testing): destroy Octstrs
	before overwriting the pointer with a new one.

	* gw/wtp_state-decl.h: Memory leak fixes: freeing things before
	overwriting the pointer to them. In some cases not allocating
	a thing that isn't going to be used at all.

	* gwlib/http.c: Memory leak fixes.

	* gwlib/octstr.[ch]: Commented out octstr_search_str since it isn't
	being used and seems suspicious. Also fixed seems_valid_real to
	report the name of the function as the name of the function instead
	of reporting the name of the file as the name of the function.

2000-04-08  Richard Braakman  <dark@wapit.com>

	* gwlib/gwassert.h: Updated NDEBUG version of gw_asswert_place
	to match normal version.

2000-04-08  Richard Braakman  <dark@wapit.com>

	* gw/wtp_timer.c: Removed debugging output again for normal
	operations.

2000-04-08  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: More assertions.

2000-04-08  Richard Braakman  <dark@wapit.com>

	* gw/wtp_timer.c: Converted to use generic List code.  This should
	fix a number of bugs in the timer code.  Also changed to a single
	indentation style, and made all log messages full sentences.
	Restored some debugging output about timers because I'm debugging
	them.

	* gw/wtp.c: In pack_wsp_event, call octstr_duplicate on
	exit_info instead of sharing it between the WSP and WTP
	events.  (The WTP event will be destroyed soon afterwards,
	taking its octstrs with it).

	* gw/wtp_tid.c: In cache_item_create_empty, initialize item->next
	too.  Also initialize source_address and destination_address to
	NULL instead of to empty octstrs (prevents memory leak).
	In tid_cached, use a temporary variable when returning the tid,
	to avoid accessing a cache element after releasing the lock.

Sat Apr  8 01:01:00 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/smsbox.c, gw/urltrans.c, gw/wapbox.c, gw/wsp.c, gw/wsp.h,
	gwlib/log.c, Fixed some memory leaks. smsbox now report no
	allocated areas after serving 1000 "nop" services.

Fri Apr  7 19:20:41 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bearerbox.c, gw/boxc.c, gw/smsbox.c, gw/smsbox_req.c,
	gw/wapbox.c, gw/wsp.c, gw/wsp_http.c, gw/wsp_state-decl.h,
	gw/wtp.c, gw/wtp_send.c, gw/wtp_state-decl.h, gw/wtp_tid.c,
	gw/wtp_timer.c, gwlib/http.c: Removed hopefully unnecessary
	debugging output to make it possible to run things in heavy
	production use.

Fri Apr  7 17:25:39 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwmem.c: gw_free: Removed #if 0 around call to real free.
	
	* test/fakewap.c: Bugfix. Length of UDP packet was computed 
	incorrectly, causing wapbox to get rather confused. (That's
	also a bug, but will be fixed later.)

2000-04-07 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c, wtp_state-decl.h: Included wtp_timer_destroy call in function
	machine_mark_unused, so that a timer created is allways destroyed when
	a transaction ends.

Fri Apr  7 15:08:50 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwassert.h: Made gw_assert_place also report the actual
	place its called from.
	
	* gwlib/octstr.c: Made seems_valid_real report the calling
	function name also, and re-wrote the assertions so that it is
	easier to see which condition failed. Added some assertions
	as well.

2000-04-06  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c, gwlib/octstr.h: Added new functions
	octstr_binary_to_hex, octstr_hex_to_binary,
	octstr_parse_long, octstr_check_range, and octstr_convert_range.
	They compile fine and have been tested a little, but none
	of them have been used in real code yet -- use with care.

Thu Apr  6 17:52:16 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_http.c: Add X_Network_Info and X-WAP-Session-ID headers.

2000-04-05 Aarno Syvnen <syvanen@wapit.com>

	* wsp*, wtp*: Changed primitive event names to conform even more 
	closely names used by the specifications.

Wed Apr  5 18:38:20 2000  Lars Wirzenius  <liw@wapit.com>

	* README.docbook: Added note about transfig being needed.

Wed Apr  5 18:20:52 2000  Lars Wirzenius  <liw@wapit.com>

	* csdr.[ch] renamed to wdp_udp.[ch] and other files modified
	accordingly.

2000-04-05  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsint.h: Restored "extern int yylex()" declaration.
	That at least shuts up -Wall, and there is no clean solution because
	we have to deal with Bison output.

2000-04-04 Aarno Syvnen <syvanen@wapit.com>

	* wtp_send.c|h: Changed tid type to int

	* wapbox.c|h: Select connectionless requests out before calling wtp.
	They made mess of wtp error handling mechanism.

Tue Apr  4 17:55:10 2000  Lars Wirzenius  <liw@wapit.com>

	* utils/kannel-log-summary: Wrote. Requires AWK. Improvements
	welcome.

Tue Apr  4 14:57:55 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/urltrans.c: Changed to use List.

Tue Apr  4 14:42:54 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/urltrans.c, gw/wsp_headers.c, gw/wsp_headers.h,
	gwlib/octstr.c, gwlib/octstr.h: Removed OctstrList, use plain
	List instead.

Tue Apr  4 14:15:27 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bb_msg.c, gw/bearerbox.c, gw/boxc.c, gw/msg.c, gw/smsbox.c,
	gw/smsbox_req.c, gw/wapbox.c, gw/wsp.c, gw/wsp_http.c, gw/wtp.c,
	gw/wtp_send.c, gw/wtp_send.h, gw/wtp_timer.c, gwlib/http.c:
	Changed calls to assert to calls to gw_assert.

Mon Apr  3 21:58:19 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/smsbox.c: Fixed a memory leak in error conditions. Also
	rewrote send_heartbeat so it doesn't use a static variable.
	
	* gwlib/gwmem.c: Make filling allocated and freed memory areas
	optionsl. There is a bug somewhere that causes filling of freed
	memory areas to crash.

Mon Apr  3 21:02:49 2000  Lars Wirzenius  <liw@wapit.com>

	* test/test_urltrans.c: Wrote. Useful for testing memory leaks.
	
	* gw/msg.[ch]: Used long instead of int32.
	
	* gw/smsbox.c: Fixed output restriction format in debugging statement.
	Also added a call to gw_check_leaks so that memory leaks can be
	reported.
	
	* gw/urltrans.c: urltrans_destroy now works even when called
	a NULL argument. Also, fixed a couple of memory leaks:
	urltrans_destroy frees the actual list header node as
	well, urltrans_find frees the temporary list of words, and
	destroy_onetrans frees the username and password fields. (The work
	on gwmem.c starts paying.)
	
	* gwlib/gwassert.h: Added a gw_assert_place macro so that the
	caller can set explicitly the place reported.
	
	* gwlib/gwmem.[ch]: Record location where memory allocation is made,
	so that gw_check_leak can report it.
	
	* gwlib/octstr.c: seems_valid reports the place it is called from
	in the assertion error messages, not the places where gw_assert
	fails.
	
	* test/test_http.c: Added -r option for repeating the fetch.
	
Mon Apr  3 18:55:46 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/socket.c: Changed certain AF_INET constants back to
	PF_INET. I'm stupid.
	
	* test/fakewap.c: Added 'c:' to getopt arguments and made -h work.
	Thanks to Adam Kelly.
	
	* gwlib/list.c: list_destroy destroys the condition variable for
	the list as well. Thanks to Paul Keogh.

Mon Apr  3 18:52:48 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwassert.h: Remove unnecessary and disfunctional #ifndef
	wrapper.

2000-04-03  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Made octstr_write_to_socket() retry after EINTR.

2000-04-03  Richard Braakman  <dark@wapit.com>

	* gwlib/gwstr.c, gwlib/gwstr.h: Removed split_words(), it has been
	superseded by octstr_split_words().

	* gwlib/gwstr.c, gwlib/gwstr.h: Removed url_decode(), it has been
	superseded by octstr_url_decode().

	* gw/urltrans.h: Removed bogus paragraph from the function
	comment for urltrans_get_pattern.

2000-04-03  Richard Braakman  <dark@wapit.com>

	* wmlscript/wsint.h: Always define WsInt32 to long and WsUInt32
	to unsigned long, rather than looking for a type of exactly four
	bytes.

	* wmlscript/wslexer.c: Pass ws_stream_getc a pointer to 'WsUInt32',
	like it asks, rather than 'unsigned int', which might be smaller.

	* wmlscript/wmlsdasm.c: Print a v_int constant as a long, rather
	than int.

	* config.h.in, configure.in, configure: Completely got rid of
	SIZEOF_INT and SIZEOF_LONG constants.

2000-03-31 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: Tell_about_error: remove debuggung statements causing 
	segfaults. In addition, locks to serialise reassemby.

2000-03-31  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Made octstr_decode_url not segfault on empty
	octstrs.  Added assertions.

Fri Mar 31 04:58:20 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwmem.c: Formatting and other minor changes.

Fri Mar 31 03:35:59 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/csdr.[ch]: Changed to use Octstrs and udp_* functions
	from gwlib.
	
	* gwlib/socket.c: Changed udp_create_address so that it accepts
	"*" as a hostname alias for INADDR_ANY.

Fri Mar 31 02:17:52 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/socket.c: Changed PF_INET to AF_INET.
	
	* test/fakewap.c: Made command line parsing much more user friendly.
	Also started cleaning up the implementation, so that it, for
	example, uses gwlib and avoids using quite as many magic numbers
	and convoluted logic, but got bored and decided to do something
	else instead. Current version works, however. Removed some unwanted
	Windows stuff (the goal is to make gwlib work in Windows and make
	fakewap use that).
	
	Removed unnecessary option to set sender port number.

Fri Mar 31 00:31:21 2000  Lars Wirzenius  <liw@wapit.com>

	* debian/*: Added Debian packaging files. The Debian package is not
	yet official, but these files allow one to build a Debian package.
	
	* Makefile.in, configure.in: Check whether start-stop-daemon
	already exists and use the system one if it does (it only exists
	on Debian, though).
	
	* utils/kannel-init.d: Changed location of box programs and 
	configuration files.

2000-03-30  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Memory leaks stiched.

	* gwlib/octstr.[ch]: octstr_str_compare added.

2000-03-30    <Kalle Marjola <rpr@wapit.com>>

	* gw/cgi.*: changed argument list value into Octstr to allow
	UDH-fields to have %00 on them

	* gw/bearerbox.c, gw/smsbox*.c: fixed cgiarg uses

	* gwlib/octstr.c|h: added function octstr_url_decode (copied from
	gwstr)

2000-03-30  Richard Braakman  <dark@wapit.com>

	* gwlib/socket.c: Cast sockaddr arguments for recvfrom() and
	sendto() to (struct sockaddr *).

2000-03-30  Richard Braakman  <dark@wapit.com>

	* gwlib/socket.c: Tidied up gethostnameinfo(), removed excessive
	use of __ in names.

2000-03-30    <Kalle Marjola <rpr@wapit.com>>

	* gwlib/octstr.c: removed wrong assertion from octstr_truncate

Thu Mar 30 06:51:03 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/octstr.[ch]: Changed octstr_create_from_data and
	octstr_get_many_chars to get void* instead of char*.
	
	* gwlib/socket.[ch]: Wrote some generic UDP socket handling things.

Thu Mar 30 05:28:02 2000  Lars Wirzenius  <liw@wapit.com>

	* acconfig.h, config.h.bot, config.h.top, stamp-h.in: Removed as
	unnecessary.
	
	* config.h.in, configure.in, gwlib/conffile.h, gwlib/log.c:
	Cleaned up by removing unnecessary checks. For example, since
	we *require* an ANSI C compiler anyway, there's no point in
	checking for const.

Thu Mar 30 04:47:25 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwmem.c: Added some code to keep track of memory allocations
	and to check that frees free freeable memory.
	
	* lotsafiles: Added a gw_init_mem call to the beginning of each
	(relevant) main function.

Thu Mar 30 03:10:21 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Made use of Counters.

Thu Mar 30 03:05:53 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/counter.[ch]: Wrote.
	
	* test/test_counter.c: Wrote.

Thu Mar 30 02:25:51 2000  Lars Wirzenius  <liw@wapit.com>

	* lotsafiles: Made minor tweaks to make things compile on my
	machine with CFLAGS='-Wall -O2 -g -Wbad-function-cast -Wcast-align
	-Wsign-compare -Wstrict-prototypes -Wmissing-prototypes
	-Wmissing-declarations' (which is getting pretty aggressive).

Thu Mar 30 01:27:40 2000  Lars Wirzenius  <liw@wapit.com>

	* Changed msg_dump and octstr_dump to take a "level" argument.
	This allows them to indent dumps within dumps correctly. Related
	changes at callers.

Thu Mar 30 01:04:34 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp.h, gw/wsp_machine-decl.h: Changed
	METHOD_MACHINE and SESSION_MACHINE macros so that their users
	provide all punctuation. This will more easily allow certain
	nifty stuff in the future.

Thu Mar 30 00:57:58 2000  Lars Wirzenius  <liw@wapit.com>

	* utils/attgetopt.c: Added AT&T's public domain implementation of
	getopt(3).
	
	* Makefile.in, config.h.in, configure.in,
	utils/start-stop-daemon.c:  Modified to check for and use getopt,
	getopt_long, and getopt_h, and to use attgetopt.c if no system
	getopt is found.

Thu Mar 30 00:24:52 2000  Lars Wirzenius  <liw@wapit.com>

	* daily-patch: Added a summary to beginning of report.

Thu Mar 30 00:01:35 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in: Removed -I options from CFLAGS. We're supposed to
	refer to header files in other ways than assuming -I. You need to
	re-run configure (or at least config.status).

	* lotsafiles: Changed header file references to include directory
	names where necessary.

Wed Mar 29 23:42:40 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwmem.c: Added some asserts. Also, gw_malloc now fills the
	memory area with 0xbabecafe so as to make sure it is _NOT_ all bits
	zero.

Wed Mar 29 23:29:26 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/octstr.[ch]: Added gw_asserts and cleaned up formatting.

Wed Mar 29 23:01:15 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/list.c: Changed assert to gw_assert.
	
	* test/test_list.c: Cleanups.

Wed Mar 29 21:59:53 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in: Removed installation of test_wml, since it's obsolete.
	
	* configure.in, config.h.in: Check specifically for 1.8.6 of libxml.
	
	* gw/wml_compiler.c: Use kludge around 1.8.6 bugfix conditionally.

2000-03-29  Richard Braakman  <dark@wapit.com>

	* gwlib/gwassert.h: New file, defines gw_assert() macro which
	calls panic() when an assertion fails, instead of writing to
	stdout.  stdout is not available when kannel runs as a daemon.

	* Makefile.in: Put libgwlib.a after libwmlscript.a in the
	libs line, because libwmlscript.a now needs the panic symbol
	from libgwlib.a.

	* gwlib/gwlib.h: Include gwassert.h by default.

	* gwlib/gwmem.c, gwlib/octstr.c, wmlscript/*: Use gw_assert()
	instead of assert().

Wed Mar 29 20:44:52 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/msg.c: Cleanups. No need to check that msg_create returns
	non-NULL (it panics, if it fails). Use octstr_duplicate instead
	of doing it manually with octstr_copy.
	
	* gw/wtp_send.c: Bugfix. wtp_send_result used to return the same
	message copy that it passed on to put_msg_in_queue. The caller
	would then make a duplicate. This is a race condition: sometimes
	the message in the queue would be processed and destroyed before
	the caller had time to duplicate the message. Changed it so that
	wtp_send_result makes the duplicate itself, since that is the
	only reasonable way to avoid the race condition.
	
	* gw/wtp_state-decl.h: Changed to use result from wtp_send_result
	directly, instead of duplicating it.

Wed Mar 29 19:44:05 2000  Lars Wirzenius  <liw@wapit.com>

	* test/test_list.c: Fixed warnings.

2000-03-29  Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: Added locks for serialising reassembly

2000-03-29    <Kalle Marjola <rpr@wapit.com>>

	* gw/*box*.c: fixed some udh-things like it is now possible to
	send UDH without text field

	* gw/smsc_cimd.c: fixed that it discarded message without text
	file, but with udh field

2000-03-29  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Added static octstr_grow() call for other
	octstr methods to use.  This gets rid of some duplicate code.

Tue Mar 28 21:16:35 2000  Lars Wirzenius  <liw@wapit.com>

	* doc/CodingStyle: Added various stuff.

2000-03-29 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: restored the old file to fix the GET
	functionality

2000-03-29  Richard Braakman  <dark@wapit.com>

	* gwlib/octstr.c: Small changes to deal with the possibility
	of ostr->data being NULL if ostr->size is 0.

2000-03-29  Richard Braakman  <dark@wapit.com>

	* gwlib/gwmem.c: Add assertion (size > 0) to gw_malloc.

2000-03-29    <Kalle Marjola <rpr@wapit.com>>

	* gw/smsbox_req.c: some simple truncation to UDH sending (not
	sufficient but should help a bit) and little flag fix

	* gw/smsc_sema.c: fix of 120 char problem by Hao Shi

2000-03-29  Richard Braakman  <dark@wapit.com>

	* gw/smsc_smpp.h: Removed definitions of unused empty structures
	smpp_pdu_unbind, smpp_pdu_unbind_resp, smpp_pdu_enquire_link, and
	smpp_pdu_enquire_link_resp.

2000-03-29 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: http_get_u() deleted a bunch of duplicate code.
	GET query is sent as a message body.

2000-03-28 Aarno Syvnen <syvanen@wapit.com>

	* wtp*,  wsp*: Changed primitive names. Now they conform with ones 
	used by the specifications. 

Tue Mar 28 16:14:49 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/list.[ch]: added functions list_delete_all, list_delete_equal,
	and list_extract_all. Also added a typedef for the comparision
	function type used by several list functions.
	
	* test/test_list.c: Wrote additional test for the new functions.

2000-03-28 Aarno Syvnen <syvanen@wapit.com>

	* wtp_state-decl.h: Allocated memory for resended messages

	* wapbox.c: Deallocate memory reserved for messages. (Based on tips 
	from Paul Keogh) In addition, added timer mutex iniatilisation.

	* wtp.c: Added locks for machines. Added structure segments for making
	reassembly thread safe. 

2000-03-28  Richard Braakman  <dark@wapit.com>

	* utils/start-stop-daemon.c: Put conditional OSLinux || OSHURD
	around the definitions for pid_is_user and pid_is_cmd, because
	those functions are not defined for OSSunos.  This is probably
	not the last of the changes needed; we'll see.

2000-03-28    <Kalle Marjola <rpr@wapit.com>>

	* gw/smsbox_req.c: added UDH sending code alpha test. Use field
	'udh' in sendsms http interface

	* gw/smsbox.c: fixed one mutex problem which only occured if there
	was some problems

	* gw/msg.h: marked that most functions do not fail, but panic

	* gw/msg-decl.h: removed plain_sms, which was not used anymore

2000-03-27 Aarno Syvnen <syvanen@wapit.com>

	* wtp*: Added some comments. Made code review changes. Added
	code for timers (This is,  how ever, still commented out. It
	must be tested with a new version of fakewap.). Corrected some
	of memory leaks pointed out by Paul Keogh.

	* wtp.c: Added lock for the global wtp transaction identifier.

2000-03-27    <Kalle Marjola <rpr@wapit.com>>

	* gw/bearerbox.c: changed 'http-port' into 'http-admin-port', to
	lessen confusion. Old name still works, too.

	* gw/bb.h: modified default http-admin-port to 13000 and
	wapbox-port to 13002 to keep ports close to each other

	* */*.conf: changed that name and port in configuration files

	* doc/userguide/userguide.xml: renamed variables updated in
	userguide.
	
	* gw/smsc_cimd_c: commented out that the connection dies if the
	expected string is not received, as this caused problems with
	slower link

	* gwlib/utils.h: added -D option in output
	
2000-03-25 Derry Hamilton <rasilon@tardis.ed.ac.uk>
	* Makefile.in: Added -Iutils to CFLAGS
	* utils/start-stop-daemon.c: Added short option only stuff.
	  Cast pid_t to int so that printf gets it right
	* utils/kannel-nag: Now asks for bash specifically rather than 
	  assuming that /bin/sh is actually bash
	* gw/smsc_sema.c: Replaced bzero with memset
	* gw/wml_compiler.c: Cast arguments to isalpha and isalnum to int 
	  (are char)
	* gwlib/http.c: similar, for isspace

Fri Mar 24 16:43:16 2000  Lars Wirzenius  <liw@wapit.com>

	* Making release 0.7.

Fri Mar 24 14:52:19 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http.c: Changed it so that binary images also work.
	
	* test/test_http.c: Wrote.

2000-03-24 Sanna Seppnen <sanna@wapit.com>

	* gwlib/http.c: tested and debugged
	httprequest_replace_header().

Fri Mar 24 12:38:33 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in, configure: Check that gnome-xml is at least 1.8.6.

2000-03-24 Sanna Seppnen <sanna@wapit.com>

	* gwlib/http.c,h: header_destroy returns now a pointer to the
	next header. tested and debugged httprequest_remove_header().

Thu Mar 23 19:58:44 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bb_msg.h, gw/bearerbox.c, gw/msg.c, gw/msg.h, gw/urltrans.h,
	gw/wsp.c, gw/wsp.h, gw/wtp.c, gw/wtp.h, gwlib/http.h: Removed
	commas from end of enum definitions. These would be very useful
	(since some of them are generated automatically), but they're
	against the C specification (and I distinctly remembered they
	were not).  Thanks to Markku Rossi for putting me straight.

Thu Mar 23 19:37:03 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wml_compiler.[ch]: Removed kludge to not use the new WML
	compiler when libxml is not installed while compiling. The new
	WML compiler is becoming required by this change - if you don't
	have libxml already, install it, or you lose.
	
	* gw/wsp_http.c: Don't use the old compiler at all.

Thu Mar 23 19:22:18 2000  Lars Wirzenius  <liw@wapit.com>

	* README: Changed requirement for libxml to at least 1.8.6,
	since 1.8.5 resulted in problems (last character of WML source
	was mangled).

2000-03-23  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: The global variable for the binary removed, now
	should be thread safe.

	* test/wml_tester.c : Minor formatting changes.

2000-03-23 Sanna Seppanen <sanna@wapit.com>

	*gwlib/http.c: corrected error in httprequest_add_header. hope
	it'll work now.

Tue Mar 21 16:46:04 2000  Lars Wirzenius  <liw@wapit.com>

	* doc/CodingStyle: Modified the description of using panic.

2000-03-23    <Kalle Marjola <rpr@wapit.com>

	* gwlib/log.c|h: added negation to -D (debug place) command line
	option, which is used with starting '-'

	* gwlib/utils.h, doc/CodingStyle: commented -D option

2000-03-23 Sanna Seppanen <sanna@wapit.com>
	
	* gwlib/http.c, http.h: added comments.

2000-03-22  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd.c: Removed some bogus errno values in error messages.

2000-03-22 Sanna Seppanen <sanna@wapit.com>
	
	* gwlib/http.c: htp_get_u: After furthed investigation,
	zero-valued "Content-Length" header is valid, changing back.

2000-03-22 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: A minor fix to header_pack(). Check the sprintf
	return value. header_create() return NULL if fails.
	* gwlib/http.c: htp_get_u: zero-valued "Content-Length" header 
	from phone won't be sent to web server.
	
2000-03-22 Derry Hamilton <rasilon@tardis.ed.ac.uk>

	* gwlib/http.h: Modified the definition of header_dump to
	match that in gwlib/http.c

2000-03-21 Sanna Seppanen <sanna@wapit.com>

        * gwlib/http.c: internal_base6t4() uses rint(). alpha doesn't
	recognize it, so implemented it as round_to_closest_integer().

2000-03-21 Sanna Seppanen <sanna@wapit.com>

        * gwlib/http.c: Rewrote httprequest_get_header_value().

2000-03-21 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: Rewrote httprequest_remove_header().

2000-03-21 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: Rewrote httprequest_replace_header().

2000-03-21 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: Corrected some debug sentences. Harvest of code
	review: the return type of header_dump() changed to void. 
	rewrited httprequest_add_header(). 

2000-03-21  Richard Braakman  <dark@wapit.com>

	* gw/smsc_emi.c: small changes, in preparation for large changes.

2000-03-21 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: Changed socklen_t to int according to manual in
	httpserver_get_request.

2000-03-21  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: More little fixes from the code review, also 
	a bug fix.

2000-03-21  Richard Braakman  <dark@wapit.com>

	* gw/smsc_cimd.c, gw/smsc_emi.c, gw/smsc_fake.c, gw/smsc_p.h,
	gw/smsc_sema.c, gw/smsc_smpp.c: Removed unused field "latency".

2000-03-21  Tuomas Luttinen  <tuo@wapit.com>

	* gwlib/octstr.c: a bug fixed in the octstr_delete; now the 
	\0-character is added in the end.

Tue Mar 21 14:41:01 2000  Lars Wirzenius  <liw@wapit.com>

	* utils/kannel-nag, utils/changelog-report, utils/daily-patch:
	Added to CVS so that interested people can look at them. Don't
	run them without asking.

2000-03-21  Richard Braakman  <dark@wapit.com>

	* gw/bearerbox.c: Deleted assertion in http_admin_command.  It is
	valid for `list' to be NULL if there are no CGI arguments.

2000-03-21  Richard Braakman  <dark@wapit.com>

	* utils/kannel-init.d: Added some configuration options at the top.
	It now controls my local Kannel setup without problems.

Tue Mar 21 13:43:50 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c: Converted to use new list instead of (broken) old 
	custom list.

2000-03-21  Richard Braakman  <dark@wapit.com>

	* utils/run_kannel_box.c: Make it remove its pidfile when it dies.

	* utils/kannel-init.d: New script file to start and stop Kannel
	(suitable for use in /etc/init.d)

	* utils/start-stop-daemon.c, utils/start-stop-daemon.8: Utility
	used by kannel-init.d, taken from dpkg source.

	* Makefile.in: Added entry for start-stop-daemon.

Tue Mar 21 12:57:35 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/list.[ch]: Wrote function list_extract_first.
	
	* gw/wsp.c: Modified to use list_extract_first instead of doing
	it manually with list_lock/unlock and list_len and list_get
	and list_delete.

Tue Mar 21 12:38:52 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp_machine-decl.h, gw/wsp_state-decl.h: Converted
	more lists to use gw/list.h. While debugging this (hey, 0 is
	not true, is it?) also implemented wsp_machine_dump.
	
	* gw/list.[ch]: NOTE: Changed interface to list_search (comparison
	function must now return true (non-zero) for item). Also wrote
	list_search_all.

2000-03-20  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.h: Minor code review fixes. The third argument of 
	wml_compile (Octstr **scripts) were deleted.

	* gw/wml_compiler.c: Lots of little code review fixes, yet more to 
	come. Added a patch to remove a bug in the variable handling. 
	Functions text_strip_blank and text_shrink_blank moved into the 
	octstr.[ch].

	* gw/wsp_http.c: Changed to use wml_compile with two arguments.

	* gwlib/octstr.[ch]: octstr_strip_blank and octstr_shrink_blank
	moved from wml_compiler.c.

	* test/wml_tester.c: Changed to use wml_compile with two arguments.

2000-03-20    <Kalle Marjola <rpr@wapit.com>

	* gwlib/http.c: fixed bug in header_pack pointed out by Paul
	Keogh. Also fixed a major too-early free in request_wrap, which
	caused segmentation faults in heavy load.
	
	* gw/*.*: some little fixes/comments

Mon Mar 20 16:56:36 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wapbox.c, gw/wsp.c, gw/wsp.h, gw/wsp_machine-decl.h,
	gw/wtp.c, gw/wtp.h, gw/wtp_machine-decl.h, : Converted from
	hand-made lists to the new generic list. At least partially.
	
	* gwlib/list.[ch]: Added a list_search function (untested as
	yet, though).

Mon Mar 20 15:45:43 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/list.[ch], test/test_list.c: Wrote a generic dynamic list
	implementation. There can be only one, code duplication leads to
	bugs. This is not yet used anywhere, except the test program, but
	I'll start working on converting the wapbox to this next.

Mon Mar 20 15:10:52 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wapbox.c: Function empty_queue_thread: Removed timestamp
	variable that isn't used anymore.
	
	* gw/wsp.c, gw/wtp.c: Marked some places with comments about
	problems, since I had no time to fix the problems yet.
	
	* gwlib/gwmem.c: gw_realloc now checks that the size is non-zero
	and panics if it is zero. realloc(foo, 0) is equivalent to free(foo),
	but this is obscure enough that using it for that is rather likely
	to be a bug.
	
	* gwlib/octstr.c: Made octstr_dump use unsigned chars.

Sat Mar 18 10:40:24 CET 2000	Patrick Schaaf	<bof@bof.de>

	* gw/wsp_http.c: map-url logging tamed, minor code cleanup.

Fri Mar 17 17:49:38 2000  Lars Wirzenius  <liw@wapit.com>

	* Making release 0.6.1.

2000-03-17    <Kalle Marjola <rpr@wapit.com>

	* gw/*.*, gwlib/*.*: numerous little code lookup fixes

2000-03-17  Richard Braakman  <dark@wapit.fi>

	* gw/smsc_p.h, gw/smsc_sema.h, gw/smsc_smpp.[ch],
	gw/smsc_interface.def: Got rid of obsolete sms_msg.c and sms_msg.h.

2000-03-17  Richard Braakman  <dark@wapit.fi>

	* Added .cvsignore files to all directories.

2000-03-17  Richard Braakman  <dark@wapit.fi>

	* wmlscript/wsopt.c: Compress "const_es; return" to "return_es",
	and leave it out entirely at the end of a function (where returning
	the empty string is the default).

Fri Mar 17 10:55:37 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_http.c: Protect calls to wml_compiler with a mutex to work
	around a bug in the compiler that makes it unsafe with threads.
	This is just a stopgap measure, until the compiler can be fixed
	properly.

2000-03-17  Richard Braakman  <dark@wapit.fi>

	* wmlscript/wsopt.c: Remove dead code after returns, not just
	after jumps.

2000-03-16  Richard Braakman  <dark@wapit.fi>

	* wmlscript/*: Stylistic changes.

	* wmlscript/wsbc.c: Minor bugfix in verification of bytecode.

2000-03-16  Richard Braakman  <dark@wapit.fi>

	* utils/run_kannel_box.c: Clean up compiler warnings, fix minor
	bug found by rpr.

2000-03-15  Markku Rossi  <mtr@iki.fi>

	* wmlscript/wsopt.c: Fixed some bugs from the assembler stream
	handling.

2000-03-13    <rpr@rpr.wapit.com>

	* README: Added notes of smsc_interface.def

2000-03-10  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (parse_octet_string): bug fix with parsing
	$-characters. Tried to allocate a huge block and wapbox went down
	on it.

Fri Mar 10 16:48:35 2000  Lars Wirzenius  <liw@wapit.com>

	* Making release 0.6.

2000-03-10  Markku Rossi  <mtr@iki.fi>

	* wmlscript/: Fixed some warnings.

2000-03-10 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: httprequest_execute: memory freeing
	functions added. also changed some error() to warning() -functions

Fri Mar 10 14:52:19 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/smsc_emi.c, gw/wsp.c, gwlib/gwmem.c, gwlib/http.c,
	gwlib/thread.c, test/test_wml.c: Fixed int/pointer size and
	int/size_t size differences in various places.

2000-03-10 Richard Braakman <dark@wapit.com>

	* utils/run_kannel_box.c: New utility, a wrapper that runs as
	a daemon and spawns a given box.  If the box dies, the wrapper
	will spawn a new one.  It will die and kill its box if it
	gets SIGINT, SIGQUIT, or SIGTERM.

	* Makefile.in: add a line for run_kannel_box.c

Fri Mar 10 13:34:59 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in: Check for xmlDocGetRootElement instead of
	xmlParseMemory so as to find only newer versions of libxml.
	(Fix from Ben Fowler <wapdev@leedsnet.com>.)

	* gwlib/conffile.c: Removed spurious Ctrl-M from end of line.
	(From Ben Fowler.)

2000-03-10    <rpr@rpr.wapit.com>

	* gw/smsc_interface.def, gw/sms_msg.h: more data about
	SMSC interface

2000-03-10    <rpr@rpr.wapit.com>

	* gw/bearerbox.c, gw/kannel.conf, test/sample.conf: renamed
	wap-port to wapbox-port and sms-port to smsbox-port, to avoid any
	future confusion. Old names still work.

	* gw/smsc_sema.c: added a name to smsc

Thu Mar  9 11:05:14 CET 2000	Patrick Schaaf	<bof@bof.de>

	* gw/wapbox.c, gw/kannel.wapconf: cleanup, removed
	test-heartbeat-thread logging support from source and config.

Thu Mar  9 19:17:43 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bearerbox.c: Commented out an assert that seems to be too much.

	* gw/smsbox.c: Added a missing mutex_lock to main_loop.

Thu Mar  9 17:48:33 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in: Moved -D_REENTRANT to before @CFLAGS@ so that someone
	can undefine it when calling configure.in, if they really want it.
	(Also defined to 1, not empty, just in case.)

2000-03-09    Derry Hamilton  <rasilon@tardis.ed.ac.uk>

	* Makefile.in:  Added -D_REENTRANT to CFLAGS

2000-03-09    <rpr@rpr.wapit.com>

	* gwlib/octstr.c: fixed stupid error in octstr_recv

Wed Mar  8 16:53:24 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c: Fixed or commented away broken list handling.

	* gwlib/octstr.[ch]: Fixed octstr_search_char_from. Also changed its
	prototype so that the character is passed as an int, since this does
	not cause problems with 8-bit characters on platforms where the
	char type is signed.

2000-03-08  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Bug fix: no more squares (ie tabulator
	characters) in the compiler output.

2000-03-08    <rpr@rpr.wapit.com>

	* gw/smsbox_req.c: started re-working on UDHs, all new code
	commented out, yet

	* gw/bb_msg.c, gw/boxc.c: added assertions and some extra checking

	* gw/urltrans.c: fixed an error in 'default' rule finding code

	* gw/smsc_sema.h: commented out a function prototype not implemented

Tue Mar  7 16:40:49 CET 2000	Patrick Schaaf	<bof@bof.de>

	* gwlib/http.{c,h}: Added httprequest_replace_header() function,
	use it to overwrite (instead of duplicate) existing user defined
	headers. This gets rid of the duplicate User-Agent: header, which
	convinces some sites to send wml instead of html.

2000-03-07  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (text_shrink_blank): A little bug fix. The first
	white space character in a row of them is now converted into a space,
	the rest are deleted before compiling.

2000-03-07    <rpr@rpr.wapit.com>

	* gw/kannel.*conf: fixed hearbeat as heartbeat

	* gw/bearerbox.c, gw/boxc.c: fixed some memory leaks pointed out
	by Paul Keogh, and added many assertions.

Tue Mar  7 12:51:35 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/thread.c: Added missing #include for <string.h>.

Sun Mar  5 12:53:14 CET 2000	Patrick Schaaf	<bof@bof.de>

	* gw/wapbox.c, gw/wsp_http.c, gwlib/octstr.*: more or less
	completed URL mapping functionality; see gw/kannel.wapconf
	for a short description of the facilities. The device-home
	setting for Motorola Timeport should work correctly now.

Sun Mar  5 10:55:00 CET 2000	Patrick Schaaf	<bof@bof.de>

	* gw/wsp_http.c: change #if 1 to #if HAVE_LIBXML, to really not
	break compilation when libxml is missing.

2000-03-03 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: http_get_u: Should not crash anymore due trying
	to free memory twice

Fri Mar  3 15:50:33 2000  Lars Wirzenius  <liw@wapit.com>

	* README: Added note about CFLAGS settings for development.

Fri Mar  3 14:31:28 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/octstr.c, test/wml_tester.c: Minor fixes to silence warnings.

Fri Mar  3 13:32:30 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/thread.c (mutex_destroy): Destroy the pthread_mutex_t
	when the Mutex object is destroyed.

	* gwlib/thread.c (start_thread): Destroy thread attributes after
	thread has been started.

	* gw/wsp_http.c: Enabled Tuomas's compiler by default.

2000-03-03    <rpr@rpr.wapit.com>

	* gw/smsc_sema.c: fixed loads of warnings, and one suspicious
	looking comprasion/assignment list

2000-03-02    <rpr@rpr.wapit.com>

	* gw/*.*conf: renamed old bearerbox.conf, smsbox.smsconf and
	wapbox.wapconf as kannel.conf, kannel.smsconf and kannel.wapconf.

	* gw/*box.c: modified default configuration files accordingly

	* README, doc/dialup.txt: updated documentation accordingly

	* gw/smsc.c, gw/smsc_p.h: added calls to SEMA SMS2000 code

	* gw/smsc_sema.c|h: added support code to SEMA SMS2000 via X28
	link by Hao Shi

Thu Mar  2 12:36:22 2000  Lars Wirzenius  <liw@wapit.com>

	* doc/userguide/userguide.xml: Fixed syntax error (added missing
	end tags).

2000-03-01    <rpr@rpr.wapit.com>

	* README: added notes of the new sample files

	* test/sample.*conf: new simple sample configuration files

2000-03-01  Markku Rossi  <mtr@iki.fi>

	* wmlscript/wslexer.c, wmlscript/wsstree.h: Fixed some warnings.

	* wmlscript/wsgram.y: Fixed empty statements.

2000-02-28  Tuomas Luttinen  <tuo@wapit.com>

	* gwlib/octstr.c&h: octstr_create(char *)->octstr_create(const char *)
	* gw/wml_compiler.c: Bug fixes: entities are now supported, no more
	changing URLs into lower case. A bug removed from variable syntax
	check.

at Feb 26 16:57:40 CET 2000	Patrick Schaaf	<bof@bof.de>

	* gw/wsp_http.c, gw/wsp.h, gw/wapbox.c: added configuration
	options device-home and map-url; see gw/wapbox.wapconf for
	a description of how they work.

Sat Feb 26 11:29:10 CET 2000	Patrick Schaaf	<bof@bof.de>

	* gw/wsp.c, gw/wsp_http.c: hacked to start working with
	Motorola Timeport / Phone.com browser. Negotiated client SDU of 3
	is changed to 1350, and DEVICE:home URL is rewritten to something
	else (set DEVICE_HOME_OUT define at top of wsp_http.c to change
	destination to something sensible). Needs work to make the stuff
	configurable.

2000-02-25 Sanna Seppnen <sanna@wapit.com>

	* gwlib/http.c: modified http_post.c. Sending entity length.

2000-02-25  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c : Now first version of the new compiler with
	variable support. The WML document is first stripped from extra
	whitespace in the beginning and end to avoid parsing errors by
	gnome-XML.

	* gwlib/octstr.h/c : int octstr_search_char_from(Octstr *ostr, char
	ch, size_t pos) added. Does the same as octstr_search_char, except
	start from the position pos. The latter is now implemented as a call
	to the former with argument pos == 0.

2000-02-23    <rpr@rpr.wapit.com>

	* gwlib/octstr.c: modified octstr_recv to fail if receives
	"garbage" (first length byte something else than 0); this is a
	hack to avoid too large allocations caused by garbage on the
	line. Side-effect is that now the octstr length is limited to
	16777216 bytes when transfered via TCP/IP, but I think that we can
	accept that...

2000-02-22    <rpr@rpr.wapit.com>

	* gwlib/octstr.c: fixed octstr_dump to show characters in
	'partial' lines, too, and not to show 'empty' last line

	* gw/smsbox.c: changed default configuration file to be as
	'smsbox.smsconf'

2000-02-21  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: Some more bug fixes.
	(parse_document): Check added for an empty document (== null pointer).

	* test/wml_tester.c: Now a log file can specified a s an argument.
	* test/test_wml.c: Same as above.

Mon Feb 21 15:20:39 2000  Lars Wirzenius  <liw@wapit.com>

	* README, doc/userguide/userguide.xml: Documented requirement
	to use at least version 1.8.1 of libxml.

2000-02-21 Aarno Syvnen <syvanen@wapit.com>

	* test/fakewap.c: commented tid verification protocol used by the
	program

2000-02-21    <rpr@rpr.wapit.com>

	* gw/smsc_smpp.c: added receive-port, so that transmit/receive
	ports can be different ones.

	* gw/bearerbox.conf, gw/smsc.c: renamed 'backup-port' as
	'receive-port', old name still functions in the config files, but
	causes warning message. smsc_emi.c still uses 'backup-port' name,
	but life is hard.

2000-02-21  Tuomas Luttinen  <tuo@wapit.com>

	* gwlib/octstr.c: octstr_ncompare doens't anymore check whether
	ostr1 is bigger or smaller than ostr2. It should not anyway.
	* gw/wml_compiler.c: Many bug fixes to the attribute encoding. Some
	possible memory leaks also removed.

Fri Feb 18 21:20:46 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http.c: Undid changes by Sanna, since they were crashing
	some HTTP calls, and I didn't find the problem within an hour or
	two of debugging. Sorry.

Fri Feb 18 20:07:29 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/utils.c: Don't report debug places unless they're set.

Fri Feb 18 20:05:40 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_http.c: Strip type parameters. This is ugly, but at least
	it will work somewhat if they are there.

Fri Feb 18 19:54:12 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/octstr.c: octstr_dump now also prints the printable characters
	of the string as themselves, so that it becomes easier to read the
	output. The hexacodes are still printed for all characters, of course.

Fri Feb 18 16:40:44 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp_http.c: Remove temporary files. Oops.


2000-02-18  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (parse_text): Empty strings are no more coded.
	* gw/wml_compiler.c (parse_attribute): Fixed bug with the 
	  coded_length. Still something wrong with attribute value encoding 
	  with one byte.

Thu Feb 17 20:27:54 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in: Removed superfluous libtest.a, which was causing
	trouble with some compilations, making test/wml_compiler pick up
	a random main function.

	* test/test_wml.c: Output with octstr_dump and octstr_pretty_print
	instead of binary if several arguments on command line.

	* test/wml_tester.c: Fixed so that it always has a main function.

2000-02-17  Tuomas Luttinen  <tuo@wapit.com>

	* gwlib/octstr.h&c: argument changed from char * to const char * on
	functions octstr_create_tolower and octstr_create_from_data.
	* test/wml_tester.c: Ouput now uses the fancy otcstr-output functions.
	* gw/wml_compiler.c: Now adds STR_END to the end of the attribute
	value fields and text fields

Thu Feb 17 17:35:11 2000  Lars Wirzenius  <liw@wapit.com>

	* doc/userguide/userguide.xml: Filled in some more. Now most details
	should be copied from the sample configuration files, but things are
	still not explained in a coherent or understandable manner.

	* gwlib/log.c: debug() doesn't print the place anymore. This makes
	debug output readable again.

2000-02-17    <rpr@rpr.wapit.com>

	* gw/bearerbox.c, gw/bb.h: added max thread BB_DEFAULT.. value,
	instead of hardcoded number

2000-02-17  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (parse_document): Standard headers now :
	WBXML version 1.1, WML 1.1 Public ID, Charset=ISO-8859-1,
	String table length=0.

2000-02-17 Aarno Syvnen <syvanen@wapit.com>

	* wtp_tid.c : Fixed a bug in the function tid_cached. Tid_in_window
	rewritten for simplicity.

2000-02-16 Sanna Seppanen <sanna@wapit.com>

	* gwlib/http.c: created the new function httpresponse_wrap,
	copy of httprequest_wrap using octstr. haven't tested it with
	chunked entities.

2000-02-16    <rpr@rpr.wapit.com>

	* gw/wsp.c (unpack_caps): fix

Wed Feb 16 14:38:06 2000  Lars Wirzenius  <liw@wapit.com>

	* test/fakewap.c: Changed test for SOL_TCP to actually test the
	macro.

	* README: Added note about CFLAGS may need to be pre-set before
	running configure.

2000-02-16 Aarno Syvnen <syvanen@wapit.com>

	* test/fakewap.c: This version was used for testing of wtp error
	handling and tid verification. Its interface will be simplified.
	Tid_new flag is a now a command line parameter, and it can be turned
	off.

2000-02-16    <rpr@rpr.wapit.com>

	* gw/wsp.c (unpack_caps): fixed one defination error, added extra
	debug for unknown capabilities

Wed Feb 16 00:04:03 2000  Lars Wirzenius  <liw@iki.fi>

	* doc/userguide/userguide.xml: Started filling in. Nothing useful
	yet, I think.

Tue Feb 15 15:01:45 2000  Lars Wirzenius  <liw@wapit.com>

	* doc/CodingStyle: Documented usage of debug().

	* Lots of files: Removed #if 0 wrappers around calls to debug that
	are now unwanted (the wrappers, not the calls).

Tue Feb 15 14:14:11 2000  Lars Wirzenius  <liw@wapit.com>

	* Changed interface to debug() function: Added a new first
	argment `place', which tells where the function is being called
	from. Then added the function set_debug_places (and made relevant
	changes to gwlib/utils.c:get_and_set_debugs), which sets the
	places which should actually be logged.

	This makes it run-time configurable what debugging output gets
	printed.

	Also changed all calls to debug, to make things compile. The place
	is "xxx" everywhere for now, will start changing that next.

2000-02-15  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (parse_attribute): A little more stable compiler;
	doesn't crash when founds an empty attribute text value.

Tue Feb 15 11:16:18 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wml_compiler.c: #include "config.h".

2000-02-15  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (wml_compile): A little bug fix. (**wml_scripts
	now exists, so caller won't try to delete unexistent octet string.)

Tue Feb 15 11:07:00 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Broke out wsp_http_thread function into gw/wsp_http.c
	to make it easier to keep the code clean. The old code was rather,
	er, kludgey.

	* gw/wsp_http.c: Moved wsp_http_thread() and dependent functions
	here and started reorganizing it for cleanliness.

Mon Feb 14 16:56:14 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/octstr.c: Added "return -1" at end, since something had
	to be returned and it wasn't returning anything at the moment.

2000-02-14  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c: At the moment does not accept variables at all.

2000-02-14 Aarno Syvnen <syvanen@wapit.com>

	* wtp*: Compiled with -pedantic. Some of warnings removed.

	* wtp_events-decl.h: Added field no_cache_supported to the event
	RcvInvoke.

	* wtp.c: Argument machine added to function wtp_tid_is_valid

	* wtp_machine-decl.h: Field wsp_event added to wtp_machine

	* wtp.c|h corresponding change to type declarations, constructors,
	destructors and debugging functions

	* wtp_state-decl.h: wsp_event stored until tid is validated

	* wtp_tid.c|h: Added code for tid validation

2000-20-03 Sanna Seppanen <sanna@wapit.com>

	* gwlib/octstr.h: gwlib/octstr.c: minor fixes.

	* gw/smsc_cimd.c: bzero() -functions changed to memset()

Thu Feb  3 18:40:38 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Fixed unpack_uintvar to handle multiple bytes. This
	was embarrassing.

2000-02-03  Aarno Syvnen <syvanen@wapit.com>

	* wtp_send.c: added static functions message_rid, set_rid for changing
	retransmission status of an entire message.

	* wtp_events-decl.h: New event RcvErrorPDU added

	* wtp.c: Tell_about_error returns an event when an illegal header is
	received. Wtp_unpack_wdp_datagram returns event RcvErrorPDU when this
	happens, ditto event unpacking functions. Function machine_find_or_
	create handles this event, too.

	* wtp_state-decl.h: Added rows for handling same event.

	* wtp_send.c: Added function do_not_start for handling aborts not
	feeded to the state machine. Some redundant code added, perhaps, but
	this is simpler than changing all wtp_send_abort calls.

2000-02-02  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c (parse_attribute): Little bug fix: end tag added
	to attribute lists.

2000-20-02 Sanna Seppanen <sanna@wapit.com>

	* gwlib/octstr.h, gwlib/octstr.c: added search functions for given
	char & string.

2000-02-02  Derry Hamilton  <rasilon@tardis.ed.ac.uk>
       * gw/smsc.c, gw/smsc_cimd.c, gw/smsc_emi.c, gw/wml.c, 
         utils/OTAbitmap.c, utils/wbmp.c: all bzero functions changed to 
	 memset.

2000-02-02  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c : Basic functions in order, can be used
	with basic WML pages without variables.
	* test/wml_tester.c : Little fixes to output format

Wed Feb  2 13:52:14 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in: Added a .c.o implicit rule. This is provided by
	all makes automatically, but not all of them make the object
	file go to the same directory as the source file, and instead
	put them into the current working directory. The rest of our
	Makefile assumes the latter behavior.

2000-02-02    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: updated XML to be synchronized with Plectra

2000-01-31  Markku Rossi  <mtr@iki.fi>

	* wmlscript: Lots of code review changes.  Implemented IEEE 754
	binary floating point encoding and decoding.  Implemented
	WMLScript byte-code disassembler.

	* configure.in: Ported to NetBSD.

2000-01-30  Patrick Schaaf <bof@bof.de>

	* gw/wapbox.c: synchronize put_msg / remove_msg using a mutex,
	removing the need for usleep(10ms). Consequently, make heartbeat
	message send a thread of its own. Set test-heartbeat-thread
	to 1 in wapbox.wapconf to see lots of debugging output.
	* gw/wapbox.wapconf: add documentation about temporary
	test-heartbeat-thread setting.

2000-01-30  Patrick Schaaf <bof@bof.de>

	* gw/wapbox.c: fixed race condition when starting empty_queue_thread.
	BTW, that function seems to burn CPU like hell.

2000-01-28  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c : Some little fixes.
	* test/wml_tester.c : Some bug fixes, no more core dump, not
	working yet correctly thou.

2000-1-28 Aarno Syvnen <syvanen@wapit.com>

        * wtp.c: Important trivial change: error message "no concatenation
	supported" changed to "no connectionless mode nor concatenation
	supported"

Fri Jan 28 17:13:47 2000  Lars Wirzenius  <liw@wapit.com>

	* Making release 0.5.

Fri Jan 28 17:10:12 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp.h, gw/wsp_events-decl.h, gw/wsp_state-decl.h,
	gwlib/http.c, gwlib/http.h: Use HTTP headers from Connect or
	Get PDUs (and add WML and WMLScript content types if they aren't
	already, and the compiled forms are).

Fri Jan 28 13:14:52 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wapbox.c: Only dump non-heartbeat messages.

	* gw/wsp_events-decl.h, gw/wsp_machine-decl.h: Now these headers
	check at top of file that the required macros are defined and
	complain with #error otherwise. Related changes to files that
	include the headers.

	* gw/wsp.c: Headers from Connect PDU are stored in the WSPMachine,
	and used in the HTTP request.

	* gwlib/http.c: Removed User-Agent header from those we add to
	the request.

2000-01-27 Sanna Seppanen <sanna@wapit.com>

	*gwlib/http.c, gwlib/http.h implementation of http_post. all bzero
	-functions changed to memset.

	*gwlib/http.c, gwlib/http.h  http_get changed to use http_get_u
	with NULL header pointer.

Thu Jan 27 20:09:23 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c, gw/wtp.h: Fixed locking of WTPMachine list (the previous
	code had race conditions in it). Introduced wtp_init function.

	* gw/wsp.c, gw/wsp.h: Similarly for WSPMachine list (it was unlocked
	completely) and wsp_init. Also minor cleanup.

	* gw/wapbox.c: Call wtp_init and wsp_init at startup.

2000-01-27  Tuomas Luttinen  <tuo@wapit.com>

	* gw/wml_compiler.c : some little bug fixes

	* test/wml_tester.c : A tester for the new WML compiler added.

2000-1-27 Aarno Syvnen <syvanen@wapit.com>

	* wtp_state-decl.h: Added rows receiving RcvInvoke when the state is
	RESULT_RESP_WAIT. In this case, we simulate a timer: we resend MAX_RCR
	times and then abort the transaction.

	* wtp_machine-decl.h: Attribute result, for result message, added.

	* wtp.c: Constructors, destructors and debugging functions for
	wtp machine rewritten with the previous attribute added.

	* wtp_send.c|h: function wtp_resend_result added. Function send_result
	now returns the sended message.

Thu Jan 27 17:34:53 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bearerbox.c, gw/html.c, gw/smsbox.c, gw/smsc_emi.c, gw/wml.c,
	gwlib/gwstr.c, gwlib/http.c: Applied Solaris portability fixes
	from Derry Hamilton <derry.hamilton@pa.press.net>.

Thu Jan 27 16:19:35 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c: Fixed check for length of Abort PDU. Two equals
	signs were missing, probably a typo.

Thu Jan 27 15:37:14 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp_state-decl.h: If client sends new Connect PDU,
	disable all old sessions.

Thu Jan 27 14:01:50 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/socket.c, gwlib/thread.c: Hopefully silenced compiler
	warnings on non-Linux platforms.

Thu Jan 27 13:47:34 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/msg.c, gw/wtp.h, gwlib/socket.h: Added includes for
	<sys/types.h>, which is required for <netinet/in.h> on some
	platforms (Linux makes it harder to write this portably,
	since it works with or without it).

Thu Jan 27 13:43:12 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Don't set client address to NULL, just set client
	port to -1, when disabling a session.

Thu Jan 27 13:40:44 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in, configure, README: Added check for zlib and
	documented it in README.

Wed Jan 26 23:03:30 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Mark WSPMachine unused in case of unhandled event.

Wed Jan 26 22:19:21 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/octet.[ch], gw/boxc.c, gw/wapbox.c: Added a wait time
	argument to read_available, since sometimes we do want to wait
	for data a bit. This matters in the wapbox, since now it can wait
	for data without busylooping too tightly (only once per second),
	but it will still notice when SIGINT is received (with up to a
	one second wait).

	* gw/csdr.c: If we get ECONNREFUSED, re-try the recvfrom. The
	error is caused by a previous syscall for sending a packet to an
	unknown destination, but because it's not possible to wait until
	the error is received, network latencies being rather long, the
	error is received by a later syscall. We just ignore it now.

	* gw/wsp.c: Handle "application/vnc.wap.wmlc" by passing it
	directly to the user.

	* test/fakewap.c: Added calculation of average number of messages
	per second, and minor error message fixes.

Wed Jan 26 20:44:26 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: If an unhandled event is TR-Invoke.ind, then send
	a TRAbort.req to WTP so that the phone will know something's
	wrong.

	* gw/wtp_send.c: Don't pack user_data into Abort PDU, since it
	isn't in TRAbort event anymore. (Related to Aarno's change
	below.)

2000-01-26 Aarno Syvnen <syvanen@wapit.com>

	* wtp_events-decl.h: Added event TRInvokeRequire, removed user_data
	from TRAbort

	* wtp_state-decl.h: Handling event TRAbort fixed.

Wed Jan 26 18:14:39 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wapbox.c: Fixed SIGINT reactions so it doesn't wait until
	bearerbox breaks connection when wapbox stops sending heartbeat
	messages after SIGINT.

Wed Jan 26 17:57:32 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp_state-decl.h: Fixed compile time warnings
	about unused or uninitialized variables. Had to comment out
	Reconnect handling, because it doesn't seem to work at all,
	and I don't have time to investigate.

Wed Jan 26 16:28:05 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wml_compiler.[ch]: Comment out everything if HAVE_LIBXML
	is not defined by configure. This is needed until everyone doing
	development has libxml installed.

Wed Jan 26 15:13:25 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in: Check for gnome-xml library, which is needed by
	the new WML compiler.

	* README: Documented need for the gnome-xml library. (Sorry about
	that, I promise not to document anything again.)

2000-01-26  Tuomas Luttinen  <tuo@tuo.wapit.com>

	* octstr.h: functions added: octstr_create_tolower, octstr_ncompare
	* octstr.c: implementation of the new functions octstr_create_tolower,
	octstr_ncompare added.

	* gw/wml_compiler.h: header for the new WML compiler added
	* gw/wml_compiler.c: the new WML compiler added

2000-01-26 Aarno Syvnen <syvanen@wapit.com>

	* Oops, segmentation work stopped

	* wtp_state-decl.h: Added timer rows (now only missing event is Error
	PDU)

	* wtp_send.c: Added parameter abort_reason to parameter list of
	wtp_send_abort (so that function call conforms closely with specs.)

	* wtp.c: Locks added to functions wtp_machine_mark_unused, 
	wtp_machine_destroy, wtp_machine_create_empty and wtp_machine_find.

Wed Jan 26 12:01:17 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/csdr.c, test/udp_send.c: Added missing casts to (struct
	sockaddr *) for some socket operation calls.

Wed Jan 26 11:44:12 2000  Lars Wirzenius  <liw@wapit.com>

	* README: Added "touch .depend; make depend" to building
	instructions. Not all makes build missing include files
	automatically.

2000-01-25    <rpr@rpr.wapit.com>

	* gw/urltrans.c: added some missing initializations which caused
	sendsms to crash

	* gw/wsp_headers.s: added some code to fool code reviewer

Tue Jan 25 17:27:53 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http.c: Commented out gw_free calls for error situations,
	where it causes a segfault for some reason. This is not a fix,
	it is an ugly workaround, but it should avoid the problem until
	we have time to review the whole memory allocation/freeing
	situation. (The gateway is already leaking memory a lot.)

Tue Jan 25 17:14:12 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/thread.c: Added comments to explain how mutex_try_lock
	works, and fixed a bug that left the mutex locked in case of
	recursive locks.

Tue Jan 25 16:51:43 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp_state-decl.h, gwlib/octstr.c: Applied patch
	from francois-xavier.hannedouche@philips.com to provide partial
	support for Post PDU with only one argument. Also adds support
	for enabling a reconnection.

Tue Jan 25 14:59:05 2000  Lars Wirzenius  <liw@wapit.com>

	* utils/seewbmp.c: Added to CVS. Simple debugging tool written by
	Richard Braakman.

	* Makefile.in: Related changes.

2000-01-25    <rpr@rpr.wapit.com>

	* gw/bb_msg.c: Fixed error in rq_pull_smg_class, which caused
	failure with 2 wapboxes. Hopefully did not break SMS portion.

	* gw/csdr.c: commented out octstr_dump of each incoming message

	* gw/*.*conf: edited them so that no-one can use them without
	editing, should handle loads of basic questions in devel-list

	* gw/*box.c: put an appropriate error message

2000-01-25    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: One fix more, now the internal smsbox does not
	consume all the CPU it can

2000-01-25    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: Some optimization to queue watchers, now it
	should not do updates with no effect, hopefully reducing CPU usage
	in a long run.

Mon Jan 24 21:23:43 2000  Lars Wirzenius  <liw@wapit.com>

	* README: Updated a bit.

Mon Jan 24 21:01:50 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in: Fixed install target.

	* VERSION: Marked as non-release version.

Mon Jan 24 20:53:47 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp.h, gw/wsp_events-decl.h, wsp_state-decl.h:
	WSP now obeys client SDU size limit. Had to add a pointer to
	the session machine to a WSP event, which caused non-local
	trivial changes.

2000-01-24	Sanna Seppanen <sanna@wapit.com>
	*gwlib/http.h: function added: header_dump.
	*gwlig/http.c: implementation of header_dump


Mon Jan 24 19:06:58 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in, configure: Look for -lresolv if it is necessary.
	(From Derry Hamilton <derry.hamilton@pa.press.net>)

	* gwlib/socket.c: Portability kludge for Solaris. Should be fixed
	later. (Likewise from Derry.)

	* test/fakewap.c: Moved definition of `ret' inside #ifdef so that
	it doesn't cause an "unused variable" warning.

2000-01-24    <rpr@rpr.wapit.com>

	* gwlib/http.h|c: added functions header_pack and header_destroy
	and fixed header_dump

	* gw/wsp.c: moved header code into separate module, and modified
	the interface

	* gw/wsp_headers.c|h: added, now decodes header into HTTPHeader
	struct. Decoding only partial, but at least headers sent by the
	7110 are decoded.


2000-01-21   Sanna Seppanen <sanna@wapit.com>
        * gwlib/http.h: function added: http_get_u.

	* gwlib/http.h: implemented http_get_u.
	shortened code for some functions.


Fri Jan 21 19:05:35 2000  Lars Wirzenius  <liw@wapit.com>

	* Making release 0.4.

	* The gateway is now called Kannel. Whee!

	* Changed wapgateway.org to kannel.org, since the name of the
	domain is changing.

Fri Jan 21 18:36:33 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in, configure, Makefile.in, README.docbook: Added
	--enable-docs and --without-docs options.


Fri Jan 21 14:18:24 2000  Lars Wirzenius  <liw@wapit.com>

	* wmlscript/wsgram.c, wmlscript/wsgram.h: Added to CVS. These
	are the files that Bison generates.

Fri Jan 21 13:42:57 2000  Lars Wirzenius  <liw@wapit.com>

	* VERSION: Bumbped to 0.3. Forgot to do that for the release.
	Stupid me.

	* Makefile.in, doc/arch/arch.xml: Put version number (from
	VERSION) into DocBook documents.

	* doc/arch/*.xml: Minor corrections.


2000-01-21    <rpr@rpr.wapit.com>

	* gw/smsc.c: added comments of where to add new SMSCes

	* gw/smsc_emi.c: fixed error in return values in submit_message

	* gw/smsc_interface.def: ADDED interface definitions

	* gw/wsp.c: removed some warnings

	* test/fakewap.c: threaded fakewap from Antti Saarenheimo


2000-01-20    <rpr@rpr.wapit.com>

	* gw/wsp.c: now decodes all headers sent by 7110 except that
	strange 0x01 0x00 at the end of it (against spesifications?). No
	real implementation for that information, yet.

2000-01-20    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: added missing accept_pending initialization and
	commented SIGINT handling procedure

	* gw/wsp.h: moved WSP header definitions to wsp.c

	* gw/wsp.c: initial header decoding, only debug output yet, and
	only decodes some common headers

Wed Jan 19 13:22:13 2000  Lars Wirzenius  <liw@wapit.com>

	* doc/dialup.txt: Added. E-mail from Roger Willcocks describing
	how to set up a dialup line for use with the gateway.

Wed Jan 19 13:18:22 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/gwlib.h: Added #include "config.h".

Wed Jan 19 11:38:05 2000  Lars Wirzenius  <liw@wapit.com>

	* gwlib/http.c: Applied parts of patch from Erik Bos. We're going
	to do the header addition stuff in another way soon ourselves.

Wed Jan 19 10:33:39 2000  Lars Wirzenius  <liw@wapit.com>

	* configure.in: Added check for inet_aton in arpa/inet.h, using
	GW_HAVE_FUNC_FROM. This should make things work for Solaris.

Wed Jan 19 10:21:39 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Silence WMLScript compiler tracing info.

	* gwlib/getnameinfo.h: Bugfix: use #ifdef, not #if, to test whether
	a macro is defined.

2000-01-18    mikael.gueck@wapit.com

	* gw/smsc_cimd.c: submit_sms UDH-enabling fix

Tue Jan 18 16:02:49 2000  Lars Wirzenius  <liw@wapit.com>

	* Release 0.3.

2000-01-18    <rpr@rpr.wapit.com>

	* test/fakewap.c: Added new program by Antti Saarenheimo

Tue Jan 18 14:06:09 2000  Lars Wirzenius  <liw@wapit.com>

	* wmlscript/wmlsc.c, wmlscript/wsalloc.c,
	wmlscript/wsstream_data.c: Put in patch from Markku Rossi, to
	fix bug in function that compiles from data instead of file,
	and various helpfulness to wmlsc.

	* gw/wsp.c: Use internal WMLScript compiler.

Tue Jan 18 12:55:36 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Use WMLScript compiler as an external process. This
	works, the internal one has problems (or else I have problems
	using it).

	* gw/wsp_state-decl.h: Commented out, at least temporarily, rows
	that handle method invocations before session has been opened.

Mon Jan 17 17:47:37 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Added WMLScript compilation (untested, though), and
	fixed server transaction ID generation (they weren't generated,
	nor used properly).

2000-01-17 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: Removed goto branches made unnecessary by introduction of
	gw_malloc. Unused variables removed, too.

	* Segmentation work began.

Mon Jan 17 15:38:15 2000  Lars Wirzenius  <liw@wapit.com>

	* AUTHORS, wmlscript/*, configure.in, Makefile.in: Added WMLScript
	compiler from Marko Rossi.

Mon Jan 17 14:42:50 2000  Lars Wirzenius  <liw@wapit.com>

	* wapbox.c: Added signal handlers for SIGINT, SIGHUP, and SIGPIPE.

Mon Jan 17 11:33:22 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in, configure.in, configure: Added support docdir and
	"make install-docs".

	* gwlib/getnameinfo.h: Define NI_ macros unless they're already
	defined.

2000-01-14    <rpr@rpr.wapit.com>

	* gw/*box.c: Added SIGPIPE as ignored signal

Thu Jan 13 19:12:11 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c: Renamed memory_error to pdu_too_short error, since it
	wasn't a memory allocation error. Changed the user visible error
	message also.

Thu Jan 13 18:39:46 2000  Lars Wirzenius  <liw@wapit.com>

	* Makefile.in: Added stuff to compile documents.

	* configure.in, configure: Added stuff to check for jade and docbook
	stuff.

	* doc/*/Makefile: Removed.

Thu Jan 13 17:28:50 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Enabled code to use external WML compiler. Name of
	compiler is "./test_wml" or given in the TEST_WML environment
	variable.

	This is a temporary solution until the new compiler works.

	* Makefile.in: Added (trivial) install target.

2000-01-13    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: added XML getstatus cgi-bin - many fields
	missing, but basic data should be available

Thu Jan 13 12:19:15 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/bearerbox.c, gw/msg.c, gw/smsbox_req.c, gw/wtp_send.c,
	gwlib/octstr.c, gwlib/octstr.h, gw/wtp_state-decl.h, gw/wsp.c:
	Removed some now unnecessary error checking.  Since we use
	gw_malloc, octet string functions (among others) won't fail,
	so there's no need to check and handle that. This simplifies
	code a bit.

	* gw/wsp.c: Added (currently commented out) code to run WML
	compiler as a separate process, to work around a bug that crashes
	it sometimes when compiling several pages during a session.
	(New compiler being written from scratch, so I didn't want to
	debug the current one too much.)

	* gwlib/thread.h: Added "include #config.h"" so that we a
	definition for HAVE_PTHREAD_H is included properly. This fixes
	the bug that reported thread id always is 0.

2000-01-12    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: added some usleeps

Wed Jan 12 16:06:01 2000  Lars Wirzenius  <liw@wapit.com>

	* Making release 0.2.2.

Wed Jan 12 15:16:49 2000  Lars Wirzenius  <liw@wapit.com>

	* lots of small changes in lots of files: Changed the gateway
	to systematically use gw_malloc and friends instead of malloc
	and friends directly. It shall henceforth be considered an
	error for anything but gwlib/gwmem.c to call malloc or friends
	directly. (Six unchecked malloc calls found during this cleanup.)

	This does mean that the gateway won't report an out-of-memory
	condition to the phone, but at this point that's a better option
	than randomly using or not using gw_malloc and randomly checking
	or not checking whether it succeeded.

2000-01-11    <rpr@rpr.wapit.com>

	* gw/wsp.c|h: capabilities client|server SDU size, method|push MOR
	and protocol options (partially) now supported. Note tested, and I
	think that rest of the system ignores SDU settings, fix that later.

2000-01-10    <rpr@rpr.wapit.com>

	* gw/wsp.*: continued capability work

2000-01-10 Aarno Syvnen <syvanen@wapit.com>

	* wtp_events-decl.h: added user_data to primitive TRAbort (WSP
	PDU will use it).

        * wtp_send.c: Corresponding change to function pack_abort. Module
	reorganised by adding static functions tell_send_error, insert_pdu_
	type, indicate_simple_message, insert_tid, insert_rid, insert_abort_
	type, insert_ack_type

	* wtp.c: Function wtp_machine_find_or_create reorganised. Now it can
        handle event RcvAbort, too.  Function wtp_unpack_wdp_datagram
	reorganised by adding static functions deduce_tid, message_header_
	fixed, deduce_pdu_type, single_message, protocol_version, unpack_ack,
	unpack_abort, unpack_invoke and tell_about_error.


Mon Jan 10 15:48:17 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wml.c: Applied patch from Petri Ahonen <peahonen@ahonen.net>
	with fixes to WML encoding.

Mon Jan 10 11:02:33 2000  Lars Wirzenius  <liw@wapit.com>

	* config.h.in, gw/bearerbox.c, gw/smsc_emi.c, gw/smsc_smpp.c,
	gw/wapbox.c, gw/wsp.c, gwlib/thread.c: Silenced compiler warnings
	when compiling with -Wall.

Mon Jan 10 10:10:22 2000  Lars Wirzenius  <liw@wapit.com>

	* Removed automake. Automake makes huge, complicated Makefiles
	that I am rather reluctant to decipher, and I would have had to
	do that to incorporate WMLScript compiler source. So I removed
	the Makefile.am's and made a Makefile.in by hand.

Mon Jan 10 07:36:36 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Fixed function wsp_http_thread so that is handles
	WBMP images correctly (i.e., sends them to the phone).

2000-01-07    <rpr@rpr.wapit.com>

	* gw/wsp*.c: initial code to handle capabilities. Not finished.

	* gw/wapbox.c: removed double logging (use log-file in
	configuration)

	* gw/bearerbox.c: fixed WAP routing (no more crashes because of
	WAP traffic while connected to SMSC)

Fri Jan  7 18:06:38 2000  Lars Wirzenius  <liw@wapit.com>

	* gw/boxc.c, gwlib/http.c, gw/wapbox.c, gw/wtp.c: Made sure
	variables are initialized (compiled with gcc -Wall -O2, which
	hasn't been done for a while), or removed unused variables.

	* gw/wsp_events-decl.h, gw/wsp_state-decl.h: Added response_type
	member to SMethodResultRequest so that the Content-Type header
	can be communicated to the phone.

	* gw/wsp.c: Set response_type according to what the HTTP server
	returns as Content-Type. Also, don't blindly assume everything
	is WML.

Fri Jan  7 14:47:09 2000  Lars Wirzenius  <liw@wapit.com>

	* Making release 0.2.

Fri Jan  7 12:01:09 2000  Lars Wirzenius  <liw@wapit.com>

	* AUTHORS, NEWS, README, Release-0.2, VERSION, gw/bearerbox.conf:
	Preparing for release.

	* Makefile.am, Makefile.in: Removed stuff from EXTRA_DIST.

	* doc/fakewap-packets.txt: Wrote. This explains the packets that
	the upcoming fakewap program will use.

2000-01-05    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: fixed memmove calls (thanks to Yuri for pointing
	them out)

2000-01-04    <rpr@rpr.wapit.com>

	* gw/wapbox.c: removed automatic logfile opening and instead added
	configuration variable log-file and log-level. Also added standard
	command line options identical to smsbox and bearerbox.

	* gw/wml.c: removed duplicate of 'write_variable_value' function
	(original in gwlib/utils.c)

2000-01-03    <rpr@rpr.wapit.com>

	* gw/wapbox.c (send_heartbeat): added heartbeat sending. And
	changed bearerbox port and host information to default values,
	not undefined. Patvched some files to make it work

Thu Dec 30 17:51:28 1999  Patrick Schaaf  <bof@bof.de>

	* gw/boxc.c, gwlib/http.c, gwlib/socket.{c,h}: reverted
	introduction of gw_getnameinfo() in favour of getnameinfo,
	which is now "emulated" properly.

Thu Dec 30 18:47:19 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: WML page is now fetched from the URL specifed in the
	Get PDU and compiled, then sent to phone. Is this a WAP gateway
	yet?

Thu Dec 30 17:55:22 1999  Lars Wirzenius  <liw@wapit.com>

	* Makefile, */Makefile: Removed from CVS, since they're supposed
	to be generated, and not included in the distribution.

1999-12-30    <rpr@rpr.wapit.com>

	* gw/smsbox.smsconf: improved documentation

	* gw/bearerbox.conf: ditto

Thu Dec 30 17:04:40 1999  Lars Wirzenius  <liw@wapit.com>

	* */Makefile, configure: Ran automake and autoconf and configure,
	thus some file re-generated.

	* NEWS, AUTHORS: Added empty ones. automake requires them.

Thu Dec 30 16:57:50 1999  Lars Wirzenius  <liw@wapit.com>

	* Applied patch from bof@bof.de for autoconf support. Renamed
	LICENSE to COPYING, and various other similar minor changes.

1999-12-30    <rpr@rpr.wapit.com>

	* gwlib/socket.c: added that missing reuseaddr to
	connect_with_port

	* gw/smsbox_req.c: oops, did not return all working code, now it
	should work as it did earlier

	* gw/smsc_emi.c: some little fixes to udh messages

1999-12-30    <bof@bof.de>

	* more autoconf: compiles on libc5 and libc6 Linux,
	  and Solaris 2.6 with gcc. See README.autoconf

1999-12-29    <bof@bof.de>

	* converted to use automake/autoconf: ./configure && make

Wed Dec 29 22:06:22 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Three bugs in Reply PDU fixed: status code should
	be encoded (200 is encoded as 0x20); the length of the content
	type field should be included; and the high bit of the octet
	that tells the content type should be set.

	After these modifications, a trivial "Hello, world" WML page is
	now successfully transferred to a 7110 phone. Yesh. Any year
	now we will really have a WAP gateway.

1999-12-29 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c, wtp_send.c: Added label WTP and function names in error
	messages.

	* wtp_state-decl.h: More rows added. Now all events expect timer and
	error are handled.

	* wtp_send.c: Added abort_type in the argument list of the function
	send_abort.

	* wsp_state-decl.h: Added rows for handling Get and Disconnect PDUs
	when the state is NULL_STATE (these are needed for restarting the
	wapbox.

1999-12-28    <rpr@rpr.wapit.com>

	* gwlib/log.*: added log level 'forced' and updated documentary in
	header file.

1999-12-28 Aarno Syvnen <syvanen@wapit.com>

	* wtp_send.c: bug fixing in functions send_ack and send_abort

1999-12-22 Aarno Syvnen <syvanen@wapit.com>

	* spaces around assignment operators added

	* wtp.c: function machine_find_or_create rewritten. We should not
	create a new machine when we are not receiving an invoke pdu.

	* wtp.c, wtp_events-decl.h: TRResult has now wsp_tid amongst its
	attributes

	* wsp_events-decl.h: Superflous events removed

	* wtp_send.c: Internal function wtp_add_datagram_address added, send*
	functions changed respectively. Added functions send_ack and
	send_abort

        * wtp_machine-decl.h: added attribute tid_ve, which tells are we
	doing tid verification or normal acknowledgement

	* wtp_state-decl.h: added rows for handling receiving invoke pdu, when
	state is result_wait

1999-12-22    <rpr@rpr.wapit.com>

	* gw/smsc.c, conf-files: changed SMSC configuration vairable
	username and password into smsc-username and smsc-password with
	future HTTP adminstration in mind.

1999-12-22    <rpr@rpr.wapit.com>

	* gw/smsbox_req.c (do_split_send): returned old code until Mikael
	fixes his new one.

1999-12-21    <rpr@rpr.wapit.com>

	* gw/smsbox_req.c: fixed default username printing problem. Still
	waiting for Mikael to fix that split_send, it is not working
	properly right now.

	* gw/bearerbox.c: little modifications to debug output

Tue Dec 21 15:17:32 1999  Lars Wirzenius  <liw@wapit.com>

	* README.docbook: Wrote. Includes instructions for getting Docbook
	working (on Debian and Red Hat; patches for other systems most
	welcome).

	* gw/wml.c, gw/wml.h, test/test_wml.c: Added to gateway module
	from old smsgateway module. Code written by Peter Grnholm.
	Implements WML compiler.

	* gw/msg.c, gw/wsp.c, gw/wtp.c: Dumping function only prints
	out the relevant parts of the structure, not all fields.

	* gw/anything-related-to-wapbox-wtp-or-wsp: Removed
	extra debugging stuff to make log files more readable even during
	debugging. (Put'em back if you need'em.)

	* gw/wapbox.c: Emptying the queue of message going to the bearer
	box is in its own thread.

	* gw/wsp.c, gw/wsp_events-decl.h, gw/wsp_state-decl.h: Implemented
	some more of the WSP. Now a Get PDU is parsed and a new thread
	is spawned to do the HTTP fetch (which at the moment just reads
	from a hardcoded file, but that's trivially fixable later). The
	thread then sends back a Reply PDU with the contents of the
	(compiled) WML page. However, the phone doesn't accept it yet,
	something strange is going on.

	* gwlib/octstr.[ch]: Wrote function octstr_read_file, which reads
	the contents of a file into an octet string.

1999-12-20    <rpr@rpr.wapit.com>

	* gwlib/socket.*: added function connect_to_server_with_port which
	binds our end of the socket to given port number.

	* gw/smsc_emi.c, gw/smsc.c: added 'our-port' configuration
	variable to the EMI IP code.

1999-20-12	Mikael Gueck <mikael.gueck@wapit.com>

	* gw/smsbox_req.c: Dropped in a replacement for split_send()
	still without the vital UDH part. Hopefully didn't miss any
	features.

Fri Dec 17 20:08:56 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp_state-decl.h: State RESULT_RESP_WAIT actually sends the
	TRResultConfirmation event to WSP.

	* gw/wsp_state-decl.h: State CONNECTING_2 implemented. This required
	rather a little work, since there is no action. :-)

	* gw/wsp_state-decl.h: State CONNECTED implemented, sort of. Well,
	not really. What happens is that the phone sends a Get PDU, and
	we receive it and unpack it in this state, do the http_get call,
	and dump with debug() the result to the log file. This is enough
	to make sure that the PDU is unpacked correctly and the protocol
	works well enough that the phone thinks the session is open and
	it can make S-MethodInvokes. Whee.

	The next step is to implement things correctly, so that events
	are handled while the URL fetch is happening, and so on.

	* gw/wsp.c: Fixed unpack_octstr (it used offset 0, instead of
	what it got as an argument). Changed wsp_dispatch_event so that
	it tries to find an existing, correct WSPMachine instead of always
	creating a new one. Made wsp_unpack_connect_pdu an internal
	function, since it's not going to be used from outside wsp.c.

Fri Dec 17 17:25:18 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: use TID of the machine that receives the event,
	instead of generating a new one.

1999-16-12 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: Fixing still wtp_machine_find_create. Now it can handle many
	  events.

Wed Dec 15 18:43:27 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wapbox.c: Dump message to be sent to bearerbox, for debugging.

	* gw/wsp.c: Fixed generation of variable length integers for
	WSP PDU's.  Old code didn't even resemble correct working.

1999-14-12 Aarno Syvnen <syvanen@wapit.com>

	* wtp_send.c: in function wtp_pack_result, fix errors in packing wtp
	pdu fields.

Tue Dec 14 17:05:05 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp_send.c: Set destination address as the phone, not the
	gateway (and source address as the gateway, not the phone) when
	sending a message to the phone.

Tue Dec 14 16:34:39 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wtp.c: Fixed calls to mytex_try_lock (which
	returns -1, not EBUSY, when the lock failed).

Mon Dec 13 20:47:28 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/bb_msg.c, gw/bb_msg.h, gw/bearerbox.c, gw/smsbox.c,
	gw/smsc.c, gw/smsc_p.h, gw/wapbox.c, gw/wsp.c, gw/wsp.h,
	gw/wsp_machine-decl.h, gw/wtp.c, gw/wtp.h, gw/wtp_machine-decl.h,
	gwlib/thread.c, gwlib/thread.h: Replaced pthread_mutex_t with
	Mutex (defined in gwlib/thread.h), so that the evil kludge to work
	around pthread_mutex_trylock can be hidden inside gwlib/thread.c.
	This required touching lightly lots of code, but it should
	work now. Sorry if I broke anything.

Mon Dec 13 19:31:56 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wapbox.c, gw/wapbox.h (new file): Wrote functions for
	keeping a queue of messages to be sent to the bearer box.

	* gw/wtp_send.c: Made use of the message enqueueing function.

Mon Dec 13 18:43:54 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: WSPMachine now remembers its own address and port as
	well as the client's; also added session_id field.

	* gw/wsp.c: Wrote code for creating WSP PDU's. Now creates a
	trivial ConnectionReply PDU.

	* gw/wsp_events-decl.h, gw/wsp_state-decl.h: Added field `machine'
	to SConnectResponse event to store the machine to which the
	SConnectResponse handler should send WTP requests. This is
	a kludge but it was (temporarily) easier to do than fixing
	wtp_find_or_create_machine.

	* gw/wsp_state-decl.h: Implemented most of SConnectResponse.

	* gw/wtp.c, gw/wtp.h: : Wrote function wtp_machine_create, which
	gets all relevant information via the argument list. This is
	mostly just reorganizing and renaming the internal name_machine
	function.  This involved changing wtp_machine_find_or_create
	as well.

	* gw/wtp.c: Removed locking of WTPMachine list, since it was
	incorrect and needs to be re-done in a different way. The current
	code has no locking, but at least it works if we're really,
	really careful.

	* gw/wtp_send.c: Commented away the calls to msg_destroy and
	octstr_destroy, since they caused segmentation faults (free
	called to often, or too early). This means yet another memory
	leak, but that's OK for now. We'll have to design a sensible
	way of dealing with memory de-allocation anyway.

Mon Dec 13 16:36:34 1999  Lars Wirzenius  <liw@wapit.com>

	* Makefile: test programs are also removed by "make clean".

	* gw/wapbox.c: Uses a log file (wapbox.log). Debug messages tweaked.

	* gw/wtp.c: Minor tweaking and bug fixing. Fixed wtp_next_tid:
	It shouldn't get the next or current tid as its argument,
	but use a static variable instead.  wtp_event_destroy is
	commented out to avoid problems with freeing things too early.
	wtp_event_dump output tweaked so it's clearer.	All debug messages
	say they come from WTP now; this helps reading long log files.
	WTPMachine.tcl is now set. Log file functions now don't get
	`errno' as their argument when it's not relevant (this cleans
	up log files quite a bit). New debugging message sprinkled
	all over the code. Added kludge to wtp_handle_event to avoid
	problem with pthread_mutex_trylock (see comment). Fixed problem
	wtp_handle_event so it uses machine->state and event->type
	(instead of separate variables that need to be kept up to date
	separately).

	* gw/wtp.h: Fixed prototype for wtp_tid_next.

	* gw/wtp_state-decl.h, state LISTEN: Actually sends the WSPEvent
	it generates to WSP, using wsp_dispatch_event (new function,
	see below).

	* gw/wtp_machine-decl.h: Added field `locker' as part of kludge
	for pthread_mutex_trylock.

	* gw/wsp.c: Lots of changes. Keeps list of WSPMachines (but
	doesn't use it yet). WSPEvent dumping improved. Wrote function
	wsp_dispatch_event to make it simpler for WTP to send events
	(current version doesn't yet try to find the correct WSPMachine,
	but always creates a new one). Lots of debugging messages
	sprinkled throughout the code. Added similar pthread_mutex_trylock
	kludge as for WTP in wsp_handle_event. Fixed bug in identifying
	the type of a WSP packet (got 0 and 1 wrong, stupid me).

	* gw/wsp.h: Added prototype for wsp_dispatch_event and missing
	#defines for WSPMachine definition.

	* gw/wsp_events-decl.h: Added event SConnectResponse.

	* gw/wsp_state-decl.h: NULL_STATE now implemented (only a lot of
	states more...).

	* gw/wsp_machine-decl.h: Added new fields for client address
	and port (for wsp_dispatch_event routing), locker (for kludge)
	and next (for keeping a list of WSPMachines).

	* gwlib/thread.c: Removed unnecessary empty lines from end.

1999-07-12 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: fixed locking bugs in functions wtp_machine_*

	* wtp.c, wtp.h, wtp_state-decl.h: fixed wsp handle

	* changing debugging functions all the time

1999-03-12 Aarno Syvnen <syvanen@wapit.com>

	* gwlib/thread.c: added function mutex_destroy

	* wtp.c: Added (uncommented) list locks in functions wtp_machine_*.
	Now these functions panic when mutexes are not iniatilized.

	* wtp.h: updated external function comments

1999-01-12 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: fixed a bug in wtp_machine_find (now it actually does find
	a machine)

	* wtp.c: implemented wtp_tid_next and added global variable gen_tid
	(it is used as a transaction handle).

	* purely estetical changes everywhere (prettier comments, etc.)

1999-30-11 Aarno Syvnen <syvanen@wapit.com>

	* wtp_state-decl.h: added event receive abort pdu

Tue Nov 30 17:37:58 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c: Replaced call to malloc with call to gw_malloc.

Tue Nov 30 17:13:36 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.c, gw/wtp.h, gw/wtp_machine-decl.h: Added event queues
	to WTPMachine and wtp_handle_event.

Tue Nov 30 16:33:29 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wsp.c, gw/wsp.h: Implemented wsp_handle_event (doesn't really
	work yet, needs wsp_state-decl.h first).

	* gwlib/thread.[ch]: Added mutex_try_lock.

Tue Nov 30 14:51:01 1999  Lars Wirzenius  <liw@wapit.com>

	* Makefile: fixed "make depend" to add the directory of the object
	file to the .depends file.

1999-11-30 Aarno Syvnen <syvanen@wapit.com>

	* wsp_events-decl.h: added fields for wsp pdu type and event handle
	(unnecessary but mandatory). WSPEvent data structure represents both
	WTP primitive and WSP event.

Mon Nov 29 19:33:42 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wtp.h: wtp_handle_event will call wsp_handle_event (not yet
	written) instead of returning the WSPEvent, changed the return type
	to void. Moved WTPTimer definition back to wtp_timer.h. Simplified
	code by only using the pthreads version places where there was a
	choice. Added wtp_machine_create and wtp_tid_next prototypes.

	* gw/wtp.c, gw/wtp_timer.h, gw/wapbox.c, gw/wtp_machine-decl.h:
	Related changes.

	* gw/wtp_send.c: Added static to local function.

	* gw/wsp_state-decl.h: Replaced pseudo code function with more
	detailed code to generate events for WTP.

1999-11-29    <rpr@rpr.wapit.com>

	* gw/smsbox_req.c: added that 'return' to smsbox request if
	max-messages was set to '0'

Mon Nov 29 17:17:44 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/bearerbox.conf: Replaced interface-name's IP number with *,
	so that it works on other machines as well.

	* gw/wsp.c, gw/wsp.h, gw/wsp_machine-decl.h, gw/wsp_state-decl.h:
	Wrote.

	* gw/wtp.c, gw/wtp.h: Moved and renamed things for wsp stuff.

	*

1999-11-29 Aarno Syvnen <syvanen@wapit.cm>

	*header files reorganized so that (most) types are defined in wtp.h

	*wtp_send.c: added a prototype result PDU packing function

1999-11-29    <rpr@rpr.wapit.com>

	* gwlib/octstr.c, gw/*box.c: modified octstr_recv to return 1 for
	data and 0 for EOF. Changed boxes accordingly

1999-11-29    <rpr@rpr.wapit.com>

	* gwlib/*: renamed gwlog as log and separated socket functions to
	own module 'socket.c'. Renamed remaining wapitlib as 'utils'

	* */*.c, */*.h: removed last wapitlib.h references

1999-11-29    <rpr@rpr.wapit.com>

	* gw/smsbox_req.c: added sender username for sendsms request log
	output

	* gw/urltrans.c: fixed swapped receiver and sender

	* gwlib/*.*: split wapitlib into several parts, some splitting
	still possibly. All projects should work but those including
	wapitlib.h should be converted to use gwlib.h instead

1999-11-26    <rpr@rpr.wapit.com>

	* gwlib/gwmem.*, gwlib/gwlib.h: Added new dynamic memory handling
	functions. All programs should be modified to use these. They
	simply PANIC if the allocation fails, so need to check their
	return value.

1999-11-26  Aarno Syvnen <syvanen@wapit.com>

	*wtp_state-decl.h: Added new rows in the state table (enough to run
	wtp proto).

1999-11-25  Aarno Syvnen <syvanen@wapit.com>

	*wtp.c: Fixed another bug in the function handle_event. No it
	generates only one indication, even though it receives many
	invoke messages.

1999-11-25    <rpr@rpr.wapit.com>

	* gwlib/gwlib.h: added general gwlib header, which includes all
	parts of gwlib

	* */*.c: modified most of the modules to use new gwlib.h. Old ones
	still work

Thu Nov 25 15:49:13 1999  Lars Wirzenius  <liw@iki.fi>

	* gw/smsc_p.h: Added a missing include for signal.h to get the
	sig_atomic_t typedef.

1999-11-24    <rpr@rpr.wapit.com>

	* gw/smsc.c: delayed re-open calls, with panic-option

	* gw/bearerbox.c: added load of mutex lockings

	* gw/smsbox_req.c, gw/urltrans.*: added 'footer' and 'header'
	service configurations

	* utils/makedist: partial update

1999-11-24 Mikael Gueck <mikael@wapit.com>

	* gw/csdr.c, gw/boxc.c: Solaris compatibility hack, later
	  to wapitlib.c.

Wed Nov 24 13:31:44 1999  Lars Wirzenius  <liw@wapit.com>

	* Makefile, Rules.mk, doc/*/Makefile: Modifications so it works
	on Red Hat and gets timestamps OK.

Wed Nov 24 12:30:46 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/wapbox.c: wapbox.conf renamed to wapbox.wapconf.

1999-11-23 Aarno Syvnen <syvanen@wapit.com>

	* header files: fixed few bugs in files wtp_machine-decl.h and
	wtp_state-decl.h

	* wtp.c: fixed bugs in various functions

Tue Nov 23 12:07:03 1999  Lars Wirzenius  <liw@wapit.com>

	* Makefile: Added more stuff for docs.

	* Rules.mk, doc/*/Makefile: Moved common stuff to new Rules.mk,
	which is included by the individual makefiles.

	* doc/*/*.xml: Converted to use the SGML identifier of DocBook,
	instead of the XML one, because we have the SGML version of
	DocBook on Red Hat machines.

1999-11-22    <rpr@rpr.wapit.com>

	* gwlib/wapitlib.*: added function check_ip

	* gw/bearerbox.*, gw/boxc.*, gw/smsbox.*: added configuration
	strings allowed-hosts, denied-hosts, http-allowed-hosts and
	http-denied-hosts.

	* gw/bearerbox.c, gw/smsc.*: added 'bacup' default router to
	SMSCes, and set that non-answering SMSC gets back in line - in
	time.

	* gw/bb.h: changed default heartbeat-frequency to 30 seconds.

Mon Nov 22 11:37:39 1999  Lars Wirzenius  <liw@wapit.com>

	* doc/userguide: Wrote draft outline of user's guide.

	* Makefile: Added stuff for docs.

1999-11-19 Aarno Syvnen <syvanen@wapit.com>

	* header files: add header files for wsp events and wtp state machine

	* wtp.c: add wsp event manipulating  functions and a wtp state machine
	handling function

1999-11-19    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: separated 'sendsms' to port of the internal SMS
	Box, if any. And fixed number normalization, it failed in some
	cases. (MG: does CIMD strip the first character in receiever number?)

1999-11-19    <rpr@rpr.wapit.com>

	* gw/smsbox_req.c: returned info about new service starting, fixed
	some bugs

	* gw/bearerbox.c: fixed mutex deadlock in internal sms box and
	heartbeat bug in sms and wap boxes.

	* gw/boxc.c: commented ack/nack things out as they are not
	currently supported

1999-11-19    <rpr@rpr.wapit.com>

	* gw/smsc_*.*: removed last submit_smsmessage and
	receive_smsmessages. The EMI code still needs some fixing but
	should work now.

	* gw/bb_msg.*: removed client_data as it is not ever used.

	* gw/smsc.c, gw/bearerbox.c: fixed reconnecting procedures.

1999-11-19    <rpr@rpr.wapit.com>

	* gw/csdr.c, gw/csdr.h: modified to add 'routing_info' for
	received messages, and to save own IP and port when started. All
	other gethostyname-calls removed. Not tested, however.

1999-11-19    <rpr@rpr.wapit.com>

	* gw/smsbox_req.c, gw/smsbox_re.h, gw/smsbox.c: Did some bugfixing
	and updated header file comments (documentation)

Fri Nov 19 11:13:17 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/msg.c: msg_pack and msg_unpack handle NULL octstr-fields.

1999-11-19    <mikael@wapit.com>

	* gw/csdr.(c|h): added csdr_is_to_us to check whether a
	wdp_datagram should be routed through a specific CSDRouter.

1999-11-18    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: added wdp_datagram routing functions, and means
	to get rid of old information and simple re-routing for messages
	after a wap box fails

	* gw/bb_msg.c, gw/bb_msg.h: added function rq_change_destination
	for wdp_datagram routing use

1999-11-18    <mikael@wapit.com>

	* gwlib/http.c, gw/smsbox_req.c: Content-Type fetching
	in http_get works, interface changed.

1999-11-18    <rpr@rpr.wapit.com>

	* gw/smsbox_req.c, gw/smsbox.c: Modified send_message to use
	octstrings instead of char *. UDH part not yet ready.

	* gwlib/octstr.c, gwlib/octstr.h: Added function octstr_truncate

Thu Nov 18 15:13:44 1999  Lars Wirzenius  <liw@wapit.com>

	* doc/arch/arch-smsbox.xml: Fixed DocBook syntax errors.

	* gw/msg.c, gw/msg.h, test/test_msg.c: Wrote function msg_duplicate.

	* Makefile: Fixed typo in libtest.a rule.

1999-11-17 Aarno Syvnen <syvanen@wapit.com>

	* wtp.c: some bug fixing in function wtp_unpack_wdp_datagram

1999-11-17    <rpr@rpr.wapit.com>

	* wapitlib.c, wapitlib.h: added functions mutex_lock and
	mutex_unlock, which loack/unlock given mutex and panic if fail -
	as panic is acceptable as mutex fails only because of coding error
	(too early call or out-of-sequence call)

	* bearerbox.c, smsbox.c, bb_msg.c: modified to use new mutex_lock
	and unlock functions

1999-11-17    <rpr@rpr.wapit.com>

	* gw/bearerbox.c: fixed heartbeat bug

	* gw/smsbox.c: added debug information

1999-11-17    <rpr@rpr.wapit.com>

	* gwlib/wapitlib.c: catched signal interrupts in read

	* gw/bearerbox.c: internal sms box implemented. Still some
	problems when the system wents down

	* gw/boxc.c, gw/smsbox_rew.c: updates

	* gw/smsc_cimd.c: quick hack to connect CIMD 1.37. Partial. MG,
	fix this.

1999-11-17    <rpr@rpr.wapit.com>

	* smsbox_req.c: added username 'default', which is used, if no
	username is specified in 'sendsms' http-request

	* smsbox.smsconf: documentation updated accordingly

Tue Nov 16 17:32:34 1999  Lars Wirzenius  <liw@wapit.com>

	* gw/csdr.c: Fixed bug that prevented client address from being
	queryed. (Server address still isn't set correctly.)

1999-11-16    <rpr@rpr.wapit.com>

	* doc/arch/arch-bearerbox.xml: updated to reflect current version

Tue Nov 16 15:40:59 1999  Lars Wirzenius  <liw@wapit.com>

	* Makefile: Added compilation of test programs.

	* test/test_msg.c: Added a call to msg_dump.c.

Tue Nov 16 14:57:55 1999  Lars Wirzenius  <liw@wapit.com>

	* Moved a number of files from smsgateway here.

Tue Nov 16 13:11:13 1999  Lars Wirzenius  <liw@wapit.com>

	* Massive reorganization of the directory tree. Almost all files
	moved to subdirectories. Makefile somewhat rewritten.

1999-11-16    <rpr@rpr.wapit.com>

	* bearerbox.c, boxc.c, smsbox.c, smsbox_req.c, smsbox_rq.h,
	Makefile: Preparing bearerbox for internal SMS Box.

Tue Nov 16 12:21:41 1999  Lars Wirzenius  <liw@wapit.com>

	* Makefile, fakesmsc.c, http.c, wapitlib.h: Solaris support
	modified from patch by Steve Kennedy <steve-wapgateway@gbnet.net>.

1999-11-16    <rpr@rpr.wapit.com>

	* smsbox_req.c, smsbox_reg.h, smsbox.c, Makefile: separated
	request handling to own module so that it can be used as thread
	in bearerbox (implemented later)

	* bearerbox.c: someone has messed with print_threads

1999-11-15    <mikael@wapit.com>

	* smsc*.(c|h), *box.c: getting rid of the SMSMessage structure
	and pending_* plus adding better UDH support. However, I'm
	having second thoughts about having two sms types...

1999-11-15    <rpr@rpr.wapit.com>

	* bearerbox.c, control.html, bearerbox.conf: added new
	adminstration command 'disconnect'

	* boxc.c, boxc.h: added 'client_ip' information

1999-11-15    <rpr@rpr.wapit.com>

	* control.html: added simple control tool

	* bearerbox.c, bearerbox.conf, fake.conf: added simple
	HTTP-adminstration and watching routines

	* smsbox.c: updated comments

1999-11-15    <rpr@rpr.wapit.com>

	* bearerbox.c, boxc.c: Basic routing for WAP messages. Does not
	work with connectioned sessions, if there are more than one WAP
	BOX. Tough. Fixed later.

	* bb_msg.c, bb_msg.h: initiated better routing systems for
	WAP-messages, but implementation not ready

	* smsbox.c: file urltrans-request fixed.

1999-11-15 Mikael Gueck <mikael.gueck@wapit.com>

	* csdr.c: send and receive UDP datagrams.

	* smsc_smpp.c: 8bit receive related fixes.

1999-11-15    <rpr@rpr.wapit.com>

	* smsbox.smsconf, simple.smsconf: renamed previous smsbox.conf as
	.smsconf so that they are distinguished from bearerbox
	configuration

	* smsbox.c: fixing 'file' urltransh-requests. Still some bugs

	* bearerbox.c: WAP-packets are sent onward.. routing still missing

Mon Nov 15 12:04:37 1999  Lars Wirzenius  <liw@wapit.com>

	* wapbox.c, wapbox.conf: Wrote. This is the main module of
	the WAP box.

	* wapbox_feeder.c: Trivial test program for wapbox.c.

	* Makefile: related changes.

	* octstr.c: removed debugging message telling argument was NULL.
	Now a NULL argument is silently ignored.

	* msg.c: Added name of message type to message dump.

1999-11-12    <rpr@rpr.wapit.com>

	* bearerbox.c, boxc.c: ready for WAP invasion (ok, still missing
	routing functions and sending is currently set off)

Fri Nov 12 17:30:08 1999  Lars Wirzenius  <liw@wapit.com>

	* Makefile: added "make depend". This only works with GNU make,
	shame on me.

1999-11-12    <rpr@rpr.wapit.com>

	* html.c: modified html_strip_suffix_and_prefix to use
	str_case-str

	* urltrans.c, smsbox.c: fixed aliases

	* wapitlib.c, bearerbox.c: modified select to understand certain
	signals

Fri Nov 12 17:06:52 1999  Lars Wirzenius  <liw@wapit.com>

	* wapitlib.c and .h: Added str_case_str.

1999-11-12    <rpr@rpr.wapit.com>

	* smsc.h, smsc.c, bearerbox.c: added re-connecting functions to
	smsc_get_message, and changed interface a bit

	* smsbox.c, smsbox.conf: fixed multiple sms sending. Changed that
	when 'split-chars' are used, the splitting character is included
	in previous part, not the following one.

	* simple.conf: two sample sendsms users

1999-11-12    <rpr@rpr.wapit.com>

	* bb_msg.h, bb_msg.c: added functions _last_mod and
	_oldest_message for better queue control, and total number of
	added messages to queue length

	* bearerbox.c, boxc.c: some performance fixes

1999-11-12    <rpr@rpr.wapit.com>

	* Release-0.1: added file to list modifications to SMSGateway 0.6
	This is updated as the gateway is improved.

	* octstr.c, octstr.h: added function octstr_replace, so that
	unnecessary destroy/create can be avoided

Fri Nov 12 02:00:00 1999  Mikael Gueck  <mikael.gueck@wapit.com>

	* http.(c|h), *box.c: httpserver_get_request now returns
	the client IP.

	* lots of other unspecified stuff

1999-11-11    <rpr@rpr.wapit.com>

	* octstr.c, octstr.h: added octstr_create_limited

	* many modules: changed bearerbox and smsbox to use Msg instead
	of SMSMessage. As these are not quite perfect currently, the
	system does not work well right now. Waiting for patches from
	other participants.

Thu Nov 11 19:41:40 1999  Lars Wirzenius  <liw@wapit.com>

	* msg.c: Fixed warning of unused variable and erroneous packing of
	of strings. Wrote msg_dump.

	* octstr.c: octstr_dump can be called with a NULl argument.

1999-11-11    <rpr@rpr.wapit.com>

	* msg.h, msg.c: added function msg_type.

	* octstr.h, octstr.c: functions octstr_duplicate, octstr_send ja
	octstr_recv added.

	* unlimited number of improvements, bugfixing and enhancements in
	other modules. Too many.

1999-11-09    <rpr@rpr.wapit.com>

	* initial release. Copied several files from old smsgateway
	project, added new protypes and commented thigns out so that
	they can be compiled. This does NOT do anything, yet.

	* VERSION: version 0.1 set
