Thu May 4 18:35:24 2000 Lars Wirzenius * Making *DEVELOPMENT* release 0.9. This is not stable, don't use it in production use. 2000-05-04 Kalle Marjola * 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 > * gwlib/conffile.c|h: more changes so that all functions needing ConfigGroup work with NULL argument, returning just NULL 2000-05-03 Steffen Weinreich * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gwlib/conn.h, gwlib.conn.c: Initial framework for Connection module. 2000-05-02 Richard Braakman * gw/smsc_cimd2.c: Do not specify sms sender on outgoing messages. Explanation is in the code. 2000-05-02 Aarno Syvänen * wtp.c: In function add_segment_to_message, removed a static variable. in function tell_about_error, fixed a memory leak, 2000-05-02 > * doc/userguide/userguide.xml: added notes on UDH sending 2000-05-02 Aarno Syvänen * wsp_state-decl.h: Commented how implementation state machine corresponds ones defined by the specs. 2000-05-02 > * gwlib/conffile.c|h: modified some functions to work even with NULL arguments, to reduce checking in calling functions 2000-04-27 Richard Braakman * 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 * 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 * gwlib/list.c: Make list_destroy() silently ignore a NULL argument, like all the other destroy functions. 2000-04-27 Richard Braakman * gwlib/gwmem-check.c: In fill(), do arithmetic with long * instead of void *. 2000-04-27 > * gw/smsc_sema.c: some fixes and updates by Hao Shi 2000-04-27 Richard Braakman * 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 * 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 * Making relase 0.8. Wed Apr 26 15:34:17 2000 Lars Wirzenius * 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 > * 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 * README.autoconf: Obsolete, thus removed. Sun Apr 23 23:37:40 2000 Lars Wirzenius * 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 * gw/wtp_send.c: When re-sending a message, create a duplicate of the message to be sent. Related to PR¤44 by Paul Keogh. Sun Apr 23 21:45:36 2000 Lars Wirzenius * test/wapbox_feeder.c: Obsolete, thus removed. Sat Apr 22 23:47:33 2000 Lars Wirzenius * 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 * gwlib/http2.[ch]: Implemented GET CGI argument parsing. Sat Apr 22 22:55:05 2000 Lars Wirzenius * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gw/wml_compiler.c: Now uses the struct to carry WML binary, the headers and string table. 2000-04-18 Tuomas Luttinen * gw/wml_compiler.c: type conflict with output_char corrected, calls to octstr_cat_char removed. 2000-04-18 Richard Braakman * 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 * gwlib/list.h,c Added list_cat. It joins two lists to one. Mon Apr 17 20:25:19 2000 Lars Wirzenius * test/test_list.c: Fixed more pthread_t vs long warnings. 2000-04-17 Sanna Seppanen * gwlib/octstr.h,c: Added octstr_get_digit_from(). Searches long int from octstr. Sat Apr 15 19:45:50 2000 Lars Wirzenius * utils/daily-patch: Skip changes to gateway/configure. Sat Apr 15 19:19:08 2000 Lars Wirzenius * gwlib/log.[ch]: Added function close_all_logfiles based on patch from Paul Keogh. Sat Apr 15 18:31:55 2000 Lars Wirzenius * 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 * 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 * test/test_list.c: More fixes to correct assumptions that pthread_t == long. Sat Apr 15 17:30:51 2000 Lars Wirzenius * 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 * 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 * gwlib/thread.h: Removed obsolete definitions for pthread_t etc on systems without . * 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 * Making release 0.7.1. Thu Apr 13 17:14:40 2000 Lars Wirzenius * 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 * gw/smsc_cimd.c: Fixed message text loading for messages with both UDH and normal text. 2000-04-13 > * 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 * 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 * test/fakewap.c, test/test_http.c, test/test_urltrans.c, utils/start-stop-daemon.c: Changed references to to , except in start-stop-daemon, where 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 * 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 * gwlib/socket.c, gwlib/socket.h: Added socket_query_blocking and socket_set_blocking functions. Untested. 2000-04-11 Richard Braakman * 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 * gwlib/octstr.c: Corrected off-by-one errors in octstr_convert_range and octstr_check_range. 2000-04-10 Richard Braakman * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gwlib/gwassert.h: Updated NDEBUG version of gw_asswert_place to match normal version. 2000-04-08 Richard Braakman * gw/wtp_timer.c: Removed debugging output again for normal operations. 2000-04-08 Richard Braakman * gwlib/octstr.c: More assertions. 2000-04-08 Richard Braakman * 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 * 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 * 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 * 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 Syvänen * 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 * 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 * 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 * gw/wsp_http.c: Add X_Network_Info and X-WAP-Session-ID headers. 2000-04-05 Aarno Syvänen * 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 * README.docbook: Added note about transfig being needed. Wed Apr 5 18:20:52 2000 Lars Wirzenius * csdr.[ch] renamed to wdp_udp.[ch] and other files modified accordingly. 2000-04-05 Richard Braakman * 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 Syvänen * 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 * utils/kannel-log-summary: Wrote. Requires AWK. Improvements welcome. Tue Apr 4 14:57:55 2000 Lars Wirzenius * gw/urltrans.c: Changed to use List. Tue Apr 4 14:42:54 2000 Lars Wirzenius * 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 * 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 * 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 * 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 * 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 * gwlib/gwassert.h: Remove unnecessary and disfunctional #ifndef wrapper. 2000-04-03 Richard Braakman * gwlib/octstr.c: Made octstr_write_to_socket() retry after EINTR. 2000-04-03 Richard Braakman * 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 * 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 Syvänen * wtp.c: Tell_about_error: remove debuggung statements causing segfaults. In addition, locks to serialise reassemby. 2000-03-31 Richard Braakman * gwlib/octstr.c: Made octstr_decode_url not segfault on empty octstrs. Added assertions. Fri Mar 31 04:58:20 2000 Lars Wirzenius * gwlib/gwmem.c: Formatting and other minor changes. Fri Mar 31 03:35:59 2000 Lars Wirzenius * 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 * 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 * 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 * gw/wml_compiler.c: Memory leaks stiched. * gwlib/octstr.[ch]: octstr_str_compare added. 2000-03-30 > * 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 * gwlib/socket.c: Cast sockaddr arguments for recvfrom() and sendto() to (struct sockaddr *). 2000-03-30 Richard Braakman * gwlib/socket.c: Tidied up gethostnameinfo(), removed excessive use of __ in names. 2000-03-30 > * gwlib/octstr.c: removed wrong assertion from octstr_truncate Thu Mar 30 06:51:03 2000 Lars Wirzenius * 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 * 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 * 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 * gw/wsp.c: Made use of Counters. Thu Mar 30 03:05:53 2000 Lars Wirzenius * gwlib/counter.[ch]: Wrote. * test/test_counter.c: Wrote. Thu Mar 30 02:25:51 2000 Lars Wirzenius * 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 * 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 * 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 * 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 * daily-patch: Added a summary to beginning of report. Thu Mar 30 00:01:35 2000 Lars Wirzenius * 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 * 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 * gwlib/octstr.[ch]: Added gw_asserts and cleaned up formatting. Wed Mar 29 23:01:15 2000 Lars Wirzenius * gwlib/list.c: Changed assert to gw_assert. * test/test_list.c: Cleanups. Wed Mar 29 21:59:53 2000 Lars Wirzenius * 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 * 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 * 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 * test/test_list.c: Fixed warnings. 2000-03-29 Aarno Syvänen * wtp.c: Added locks for serialising reassembly 2000-03-29 > * 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 * 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 * doc/CodingStyle: Added various stuff. 2000-03-29 Sanna Seppanen * gwlib/http.c: restored the old file to fix the GET functionality 2000-03-29 Richard Braakman * 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 * gwlib/gwmem.c: Add assertion (size > 0) to gw_malloc. 2000-03-29 > * 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 * 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 * gwlib/http.c: http_get_u() deleted a bunch of duplicate code. GET query is sent as a message body. 2000-03-28 Aarno Syvänen * wtp*, wsp*: Changed primitive names. Now they conform with ones used by the specifications. Tue Mar 28 16:14:49 2000 Lars Wirzenius * 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 Syvänen * 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 * 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 > * 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 Syvänen * 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 > * 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 * 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 * Making release 0.7. Fri Mar 24 14:52:19 2000 Lars Wirzenius * gwlib/http.c: Changed it so that binary images also work. * test/test_http.c: Wrote. 2000-03-24 Sanna Seppänen * gwlib/http.c: tested and debugged httprequest_replace_header(). Fri Mar 24 12:38:33 2000 Lars Wirzenius * configure.in, configure: Check that gnome-xml is at least 1.8.6. 2000-03-24 Sanna Seppänen * 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 * 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 * 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 * 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 * 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 *gwlib/http.c: corrected error in httprequest_add_header. hope it'll work now. Tue Mar 21 16:46:04 2000 Lars Wirzenius * doc/CodingStyle: Modified the description of using panic. 2000-03-23 * 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 * gwlib/http.c, http.h: added comments. 2000-03-22 Richard Braakman * gw/smsc_cimd.c: Removed some bogus errno values in error messages. 2000-03-22 Sanna Seppanen * gwlib/http.c: htp_get_u: After furthed investigation, zero-valued "Content-Length" header is valid, changing back. 2000-03-22 Sanna Seppanen * 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 * gwlib/http.h: Modified the definition of header_dump to match that in gwlib/http.c 2000-03-21 Sanna Seppanen * 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 * gwlib/http.c: Rewrote httprequest_get_header_value(). 2000-03-21 Sanna Seppanen * gwlib/http.c: Rewrote httprequest_remove_header(). 2000-03-21 Sanna Seppanen * gwlib/http.c: Rewrote httprequest_replace_header(). 2000-03-21 Sanna Seppanen * 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 * gw/smsc_emi.c: small changes, in preparation for large changes. 2000-03-21 Sanna Seppanen * gwlib/http.c: Changed socklen_t to int according to manual in httpserver_get_request. 2000-03-21 Tuomas Luttinen * gw/wml_compiler.c: More little fixes from the code review, also a bug fix. 2000-03-21 Richard Braakman * 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 * 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 * 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 * 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 * 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 * gw/wtp.c: Converted to use new list instead of (broken) old custom list. 2000-03-21 Richard Braakman * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gw/wsp_http.c: map-url logging tamed, minor code cleanup. Fri Mar 17 17:49:38 2000 Lars Wirzenius * Making release 0.6.1. 2000-03-17 * gw/*.*, gwlib/*.*: numerous little code lookup fixes 2000-03-17 Richard Braakman * 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 * Added .cvsignore files to all directories. 2000-03-17 Richard Braakman * 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 * 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 * wmlscript/wsopt.c: Remove dead code after returns, not just after jumps. 2000-03-16 Richard Braakman * wmlscript/*: Stylistic changes. * wmlscript/wsbc.c: Minor bugfix in verification of bytecode. 2000-03-16 Richard Braakman * utils/run_kannel_box.c: Clean up compiler warnings, fix minor bug found by rpr. 2000-03-15 Markku Rossi * wmlscript/wsopt.c: Fixed some bugs from the assembler stream handling. 2000-03-13 * README: Added notes of smsc_interface.def 2000-03-10 Tuomas Luttinen * 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 * Making release 0.6. 2000-03-10 Markku Rossi * wmlscript/: Fixed some warnings. 2000-03-10 Sanna Seppanen * 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 * 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 * 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 * configure.in: Check for xmlDocGetRootElement instead of xmlParseMemory so as to find only newer versions of libxml. (Fix from Ben Fowler .) * gwlib/conffile.c: Removed spurious Ctrl-M from end of line. (From Ben Fowler.) 2000-03-10 * gw/smsc_interface.def, gw/sms_msg.h: more data about SMSC interface 2000-03-10 * 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 * 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 * 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 * 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 * Makefile.in: Added -D_REENTRANT to CFLAGS 2000-03-09 * gwlib/octstr.c: fixed stupid error in octstr_recv Wed Mar 8 16:53:24 2000 Lars Wirzenius * 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 * gw/wml_compiler.c: Bug fix: no more squares (ie tabulator characters) in the compiler output. 2000-03-08 * 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 * 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 * 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 * 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 * gwlib/thread.c: Added missing #include for . Sun Mar 5 12:53:14 CET 2000 Patrick Schaaf * 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 * 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 * 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 * README: Added note about CFLAGS settings for development. Fri Mar 3 14:31:28 2000 Lars Wirzenius * gwlib/octstr.c, test/wml_tester.c: Minor fixes to silence warnings. Fri Mar 3 13:32:30 2000 Lars Wirzenius * 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 * gw/smsc_sema.c: fixed loads of warnings, and one suspicious looking comprasion/assignment list 2000-03-02 * 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 * doc/userguide/userguide.xml: Fixed syntax error (added missing end tags). 2000-03-01 * README: added notes of the new sample files * test/sample.*conf: new simple sample configuration files 2000-03-01 Markku Rossi * wmlscript/wslexer.c, wmlscript/wsstree.h: Fixed some warnings. * wmlscript/wsgram.y: Fixed empty statements. 2000-02-28 Tuomas Luttinen * 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 * 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 * 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 Seppänen * gwlib/http.c: modified http_post.c. Sending entity length. 2000-02-25 Tuomas Luttinen * 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 * 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 * 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 * 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 * README, doc/userguide/userguide.xml: Documented requirement to use at least version 1.8.1 of libxml. 2000-02-21 Aarno Syvänen * test/fakewap.c: commented tid verification protocol used by the program 2000-02-21 * 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 * 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 * 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 * gwlib/utils.c: Don't report debug places unless they're set. Fri Feb 18 20:05:40 2000 Lars Wirzenius * 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 * 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 * gw/wsp_http.c: Remove temporary files. Oops. 2000-02-18 Tuomas Luttinen * 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 * 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 * 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 * 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 * gw/bearerbox.c, gw/bb.h: added max thread BB_DEFAULT.. value, instead of hardcoded number 2000-02-17 Tuomas Luttinen * 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 Syvänen * wtp_tid.c : Fixed a bug in the function tid_cached. Tid_in_window rewritten for simplicity. 2000-02-16 Sanna Seppanen * 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 * gw/wsp.c (unpack_caps): fix Wed Feb 16 14:38:06 2000 Lars Wirzenius * 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 Syvänen * 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 * gw/wsp.c (unpack_caps): fixed one defination error, added extra debug for unknown capabilities Wed Feb 16 00:04:03 2000 Lars Wirzenius * doc/userguide/userguide.xml: Started filling in. Nothing useful yet, I think. Tue Feb 15 15:01:45 2000 Lars Wirzenius * 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 * 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 * 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 * gw/wml_compiler.c: #include "config.h". 2000-02-15 Tuomas Luttinen * 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 * 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 * 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 * gw/wml_compiler.c: At the moment does not accept variables at all. 2000-02-14 Aarno Syvänen * 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 * 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 * gw/wsp.c: Fixed unpack_uintvar to handle multiple bytes. This was embarrassing. 2000-02-03 Aarno Syvänen * 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 * gw/wml_compiler.c (parse_attribute): Little bug fix: end tag added to attribute lists. 2000-20-02 Sanna Seppanen * gwlib/octstr.h, gwlib/octstr.c: added search functions for given char & string. 2000-02-02 Derry Hamilton * 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 * 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 * 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 * gw/bearerbox.c: updated XML to be synchronized with Plectra 2000-01-31 Markku Rossi * 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 * 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 * 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 * 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 Syvänen * 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 * Making release 0.5. Fri Jan 28 17:10:12 2000 Lars Wirzenius * 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 * 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 *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 * 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 * gw/wml_compiler.c : some little bug fixes * test/wml_tester.c : A tester for the new WML compiler added. 2000-1-27 Aarno Syvänen * 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 * 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 . Thu Jan 27 16:19:35 2000 Lars Wirzenius * 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 * 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 * gwlib/socket.c, gwlib/thread.c: Hopefully silenced compiler warnings on non-Linux platforms. Thu Jan 27 13:47:34 2000 Lars Wirzenius * gw/msg.c, gw/wtp.h, gwlib/socket.h: Added includes for , which is required for 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 * 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 * configure.in, configure, README: Added check for zlib and documented it in README. Wed Jan 26 23:03:30 2000 Lars Wirzenius * gw/wsp.c: Mark WSPMachine unused in case of unhandled event. Wed Jan 26 22:19:21 2000 Lars Wirzenius * 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 * 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 Syvänen * 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 * 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 * 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 * 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 * 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 * 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 Syvänen * 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 * 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 * README: Added "touch .depend; make depend" to building instructions. Not all makes build missing include files automatically. 2000-01-25 * 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 * 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 * 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 * 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 * utils/seewbmp.c: Added to CVS. Simple debugging tool written by Richard Braakman. * Makefile.in: Related changes. 2000-01-25 * 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 * gw/bearerbox.c: One fix more, now the internal smsbox does not consume all the CPU it can 2000-01-25 * 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 * README: Updated a bit. Mon Jan 24 21:01:50 2000 Lars Wirzenius * Makefile.in: Fixed install target. * VERSION: Marked as non-release version. Mon Jan 24 20:53:47 2000 Lars Wirzenius * 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 *gwlib/http.h: function added: header_dump. *gwlig/http.c: implementation of header_dump Mon Jan 24 19:06:58 2000 Lars Wirzenius * configure.in, configure: Look for -lresolv if it is necessary. (From Derry Hamilton ) * 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 * 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 * 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 * 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 * configure.in, configure, Makefile.in, README.docbook: Added --enable-docs and --without-docs options. Fri Jan 21 14:18:24 2000 Lars Wirzenius * 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 * 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 * 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 * 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 * 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 * 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 * gwlib/gwlib.h: Added #include "config.h". Wed Jan 19 11:38:05 2000 Lars Wirzenius * 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 * 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 * 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 * Release 0.3. 2000-01-18 * test/fakewap.c: Added new program by Antti Saarenheimo Tue Jan 18 14:06:09 2000 Lars Wirzenius * 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 * 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 * 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 Syvänen * 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 * AUTHORS, wmlscript/*, configure.in, Makefile.in: Added WMLScript compiler from Marko Rossi. Mon Jan 17 14:42:50 2000 Lars Wirzenius * wapbox.c: Added signal handlers for SIGINT, SIGHUP, and SIGPIPE. Mon Jan 17 11:33:22 2000 Lars Wirzenius * 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 * gw/*box.c: Added SIGPIPE as ignored signal Thu Jan 13 19:12:11 2000 Lars Wirzenius * 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 * 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 * 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 * 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 * 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 * gw/bearerbox.c: added some usleeps Wed Jan 12 16:06:01 2000 Lars Wirzenius * Making release 0.2.2. Wed Jan 12 15:16:49 2000 Lars Wirzenius * 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 * 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 * gw/wsp.*: continued capability work 2000-01-10 Aarno Syvänen * 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 * gw/wml.c: Applied patch from Petri Ahonen with fixes to WML encoding. Mon Jan 10 11:02:33 2000 Lars Wirzenius * 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 * 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 * 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 * 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 * 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 * Making release 0.2. Fri Jan 7 12:01:09 2000 Lars Wirzenius * 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 * gw/bearerbox.c: fixed memmove calls (thanks to Yuri for pointing them out) 2000-01-04 * 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 * 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 * 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 * 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 * Makefile, */Makefile: Removed from CVS, since they're supposed to be generated, and not included in the distribution. 1999-12-30 * gw/smsbox.smsconf: improved documentation * gw/bearerbox.conf: ditto Thu Dec 30 17:04:40 1999 Lars Wirzenius * */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 * Applied patch from bof@bof.de for autoconf support. Renamed LICENSE to COPYING, and various other similar minor changes. 1999-12-30 * 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 * more autoconf: compiles on libc5 and libc6 Linux, and Solaris 2.6 with gcc. See README.autoconf 1999-12-29 * converted to use automake/autoconf: ./configure && make Wed Dec 29 22:06:22 1999 Lars Wirzenius * 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 Syvänen * 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 * gwlib/log.*: added log level 'forced' and updated documentary in header file. 1999-12-28 Aarno Syvänen * wtp_send.c: bug fixing in functions send_ack and send_abort 1999-12-22 Aarno Syvänen * 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 * 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 * gw/smsbox_req.c (do_split_send): returned old code until Mikael fixes his new one. 1999-12-21 * 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 * 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 Grönholm. 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 * 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 * 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 * 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 * gw/wsp.c: use TID of the machine that receives the event, instead of generating a new one. 1999-16-12 Aarno Syvänen * wtp.c: Fixing still wtp_machine_find_create. Now it can handle many events. Wed Dec 15 18:43:27 1999 Lars Wirzenius * 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 Syvänen * wtp_send.c: in function wtp_pack_result, fix errors in packing wtp pdu fields. Tue Dec 14 17:05:05 1999 Lars Wirzenius * 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 * 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 * 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 * 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 * 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 * 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 Syvänen * 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 Syvänen * 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 Syvänen * 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 Syvänen * wtp_state-decl.h: added event receive abort pdu Tue Nov 30 17:37:58 1999 Lars Wirzenius * gw/wsp.c: Replaced call to malloc with call to gw_malloc. Tue Nov 30 17:13:36 1999 Lars Wirzenius * 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 * 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 * Makefile: fixed "make depend" to add the directory of the object file to the .depends file. 1999-11-30 Aarno Syvänen * 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 * 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 * 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 * 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 Syvänen *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 * gwlib/octstr.c, gw/*box.c: modified octstr_recv to return 1 for data and 0 for EOF. Changed boxes accordingly 1999-11-29 * 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 * 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 * 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 Syvänen *wtp_state-decl.h: Added new rows in the state table (enough to run wtp proto). 1999-11-25 Aarno Syvänen *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 * 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 * gw/smsc_p.h: Added a missing include for signal.h to get the sig_atomic_t typedef. 1999-11-24 * 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 * gw/csdr.c, gw/boxc.c: Solaris compatibility hack, later to wapitlib.c. Wed Nov 24 13:31:44 1999 Lars Wirzenius * 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 * gw/wapbox.c: wapbox.conf renamed to wapbox.wapconf. 1999-11-23 Aarno Syvänen * 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 * 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 * 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 * doc/userguide: Wrote draft outline of user's guide. * Makefile: Added stuff for docs. 1999-11-19 Aarno Syvänen * 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 * 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 * 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 * 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 * 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 * 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 * gw/msg.c: msg_pack and msg_unpack handle NULL octstr-fields. 1999-11-19 * 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 * 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 * gwlib/http.c, gw/smsbox_req.c: Content-Type fetching in http_get works, interface changed. 1999-11-18 * 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 * 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 Syvänen * wtp.c: some bug fixing in function wtp_unpack_wdp_datagram 1999-11-17 * 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 * gw/bearerbox.c: fixed heartbeat bug * gw/smsbox.c: added debug information 1999-11-17 * 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 * 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 * gw/csdr.c: Fixed bug that prevented client address from being queryed. (Server address still isn't set correctly.) 1999-11-16 * doc/arch/arch-bearerbox.xml: updated to reflect current version Tue Nov 16 15:40:59 1999 Lars Wirzenius * 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 * Moved a number of files from smsgateway here. Tue Nov 16 13:11:13 1999 Lars Wirzenius * Massive reorganization of the directory tree. Almost all files moved to subdirectories. Makefile somewhat rewritten. 1999-11-16 * 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 * Makefile, fakesmsc.c, http.c, wapitlib.h: Solaris support modified from patch by Steve Kennedy . 1999-11-16 * 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 * 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 * bearerbox.c, control.html, bearerbox.conf: added new adminstration command 'disconnect' * boxc.c, boxc.h: added 'client_ip' information 1999-11-15 * 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 * 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 * csdr.c: send and receive UDP datagrams. * smsc_smpp.c: 8bit receive related fixes. 1999-11-15 * 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 * 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 * 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 * Makefile: added "make depend". This only works with GNU make, shame on me. 1999-11-12 * 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 * wapitlib.c and .h: Added str_case_str. 1999-11-12 * 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 * 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 * 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 * http.(c|h), *box.c: httpserver_get_request now returns the client IP. * lots of other unspecified stuff 1999-11-11 * 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 * 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 * 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 * initial release. Copied several files from old smsgateway project, added new protypes and commented thigns out so that they cvan be compiled. This does NOT do anything, yet. * VERSION: version 0.1 set