2001-03-27 Richard Braakman * Making release 1.0.3. 2001-03-21 Tuomas Luttinen * configure.in, configure: Added the xml2-config that libxml-2.3.* and newer want instead of xml-config. Tested with libxml-2.2.11 and 2.3.4. 2001-03-16 Nick Clarey * gw/smsc_at.c: Repaired a bug in at_reopen which would cause failed smsc_at connections to be reopened continuously, and repaired a bug in at_close which could possibly cause memory leakage. Also fixed bugs in both which didn't reset the smsc's file descriptor correctly in case of failed closes. 2001-03-12 Lars Wirzenius * doc/userguide/userguide.xml: Removed reference to HTTP Basic Authentication, since it isn't implemented in the code. 2001-02-28 Kalle Marjola * gw/bb_udp.c: 'bugfix': modified so that all errors just make receiver to continue, instead of exiting loop 2001-02-28 Richard Braakman * gw/smsc_at.c: Made pdu_extract deal with the SMSC address field possibly being bad or too short. Also made hexchar() take an int as argument, instead of char (which might be signed). 2001-02-26 Richard Braakman * Making release 1.0.2. 2001-02-23 Peter Grönholm * userguide: Wrote section "Setting up a dial-up line" 2001-02-22 Richard Braakman * gw/wap-appl.c: Suppress server-generated error pages if they are in a format (i.e. text/html) that the client does not accept. 2001-02-21 Richard Braakman * gw/wap-appl.c: When suppressing an HTTP result body because it is too long for the client, also adjust the Content-Length header. 2001-02-20 Peter Grönholm * userguide: Updated section "Installing Kannel from RPM packages" 2001-02-20 Richard Braakman * userguide: Explained more about syslog-level. 2001-02-16 Richard Braakman * userguide: Describe when prefix and suffix are used. * userguide: Improve description of "omit-empty". (Suggested by Gildas Perrot.) 2001-02-15 Tuomas Luttinen * gw/wml_compiler.c (set_charset): bug reported by Aymerick Jéhanne fixed so no more 2*encoding in the XML-header. 2001-02-13 Richard Braakman * Making release 1.0.1. 2001-02-13 Richard Braakman * gw/wml_definitions.h: Applied patch from Aymerick Jéhanne to correct encodings for "ordered true" and "ordered false". 2001-02-12 Lars Wirzenius * Makefile.in: Moved -I. to before other -I options (before @CFLAGS@) so that Kannel's config.h is found before any config.h that might be a system header file. 2001-02-07 Kalle Marjola * doc/userguide/userguide.xml: made it clearer that sms-service is selected by keyword and number of parameters 2001-02-05 Richard Braakman * gwlib/octstr.c: Fixed off-by-one error in octstr_case_search(), reported by Vjacheslav Chekushin. 2001-02-04 Richard Braakman * wmlscript/wsasm.c: Avoid generating 0-length functions, because not all clients can handle them. * gw/wap-appl.c: If the response body does not fit in the client SDU size, generate status code 502 ("Bad Gateway") instead of 413 ("Request Entity Too Large"). 413 is definitely the wrong code because it refers to the request, not the response. 502 means the gateway received an invalid response from the server, which is pretty close. Also, do not touch the status code at all if it already indicates an error. The upstream error is more interesting to the user than knowing that the error page didn't fit. * gwlib/http.[ch]: Add http_status_class() function to distinguish success codes (2xx) from error codes. 2001-01-31 Peter Grönholm * doc/userguide/userguide.xml: Wrote section 'Using pre-compiled binary packages'. 2001-01-25 Uoti Urpala * gw/smsc_cimd.c: Fixed a possible NULL reference. 2001-01-19 Tuomas Luttinen * gw/wml_compiler.c: Added function set_charset to fix bug with the character set read from the http-headers. 2001-01-12 Tuomas Luttinen * gw/wml_compiler.c: Now compiler can handle a libxml compiled with -DXML_USE_BUFFER_CONTENT. The content of the node is converted into an octet string with a macro. 2001-01-12 Richard Braakman * gwlib/charset.c: Translate u-dieresis correctly from latin1 to GSM. (It does exist in GSM Default, so it doesn't have to be approximated.) 2001-01-11 Lars Wirzenius * gwlib/octstr.c: octstr_copy_real: Changed the code that checks whether the length of the part to be copied is too long so that it can deal with integer overflows (assuming they wrap around). 2001-01-08 Richard Braakman * Making release 1.0. 2000-12-21 Richard Braakman * Making release 0.12.4. 2000-12-21 Richard Braakman * gw/smsc_emi.c: Don't panic is allow_ip is NULL. 2000-12-18 Peter Grönholm * gw/wml_definitions.h, fixed attribute name, "accept_charset" is now "accept-charset". 2000-12-11 Richard Braakman * gw/smsc_smpp.c: Fixed two memory leaks. 2000-12-11 Lars Wirzenius * debian/*: Updated for Debian packaging. See debian/changelog for details. 2000-12-08 Richard Braakman * Making release 0.12.3 2000-12-08 Richard Braakman * gw/bb_smsc.c, function sms_receiver: Made the increase in sleep times much slower (multiply by 2 instead of by 100). This avoids having the bearerbox sleep a whole second just because the SMSC took longer than 0.01 seconds. This scenario is pretty common on dialup links. 2000-12-07 Richard Braakman * gw/smsc_smpp.c: Don't crash if a message with a data coding and esm class that we don't handle arrives. 2000-12-07 Lars Wirzenius * gw/smskannel.conf: Removed the "www" example service, since people seem not to remove it from production installations. They should, since it's potentially a security problem. 2000-12-06 Richard Braakman * gw/smsc_smpp.c: Fixed memory leak in data_receive(), spotted by Milko Videv. 2000-12-04 Lars Wirzenius * doc/userguide/userguide.xml: Explain the syslog-level variable for wapbox. 2000-12-01 Lars Wirzenius * configure.in: Accept libxml 2.2.10. (Untested, since I don't have 2.2.10 yet.) 2000-11-27 Kalle Marjola * doc/userguide/userguide.xml: corrected explanation of smsc-id in sendsms interface chapter 2000-11-08 Richard Braakman * gw/html.c, convert_html_entity(): Made conversion of entities like Ӓ work. 2000-11-08 Richard Braakman * gw/wap-appl.c: Deal with client_SDU_size being 0, which means there is no limit. Thanks to Ruud Schramp for pointing this out. Also made connectionless mode set it to 0 instead of an arbitrary value. 2000-11-08 Kalle Marjola * gw/bb_boxc.c: fixed error that caused bearerbox to possibly segfault when connection from illegal IP was tried. 2000-11-08 Richard Braakman * Making release 0.12.2. 2000-11-07 Tuomas Luttinen * gwlib/octstr.c: Added some protection against endless loops in strip-functions for special cases. * gw/wml_compiler.c: Memory leak with malformed variable fixed. Also fixed the bug that reserved words cannot be variable names, eg $(password). 2000-11-06 Tuomas Luttinen * gw/wml_compiler.c: Variables with syntax errors are now discarded with warning instead giving up with the whole WML source. Some memory leak still exists. Also an unknown tag produces a warning in the log. 2000-11-03 Tuomas Luttinen * gw/wml_compiler.c: A conformance patch: card and template elements cannot have 2 or more do elements of the same name, PI are ignored, unknown tags and CDATA are now processed. Also some code was cleaned into the new coding standard. 2000-11-03 Richard Braakman * gw/wsp_headers.c: If an Expires header has an invalid date, then encode it as a date far in the past. We can't just skip the header because RFC2068 says such a response should be treated as already expired, and we have to tell the client to do that. * gw/wsp_headers.c: Make sure that a Multi-octet-integer is always at least one octet long, even if its value is 0. 2000-11-01 Kalle Marjola * gwlib/conffile.c (config_sanity_check): fixed that 'otaconfig' is accepted, too, thanks to Philip Psiloinis for pointing this out * gw/bb_smsc.c: make sure that lists are emptied 2000-11-01 Yann Muller * gw/smsc_at.c: handles message lengths of 8*n+1 properly. Added comments to encode7bituncompressed(). 2000-10-30 Richard Braakman * gw/wap-appl.c: Support for X-WAP.TOD header, needed for WAP 1.1 conformance. (requirement UACache-0010) * gw/wsp_headers.c: Special encoding for X-WAP.TOD, which is an application-specific header with a field encoding that does not match the application-specific-value rule. (This is a contradiction in the spec). * gwlib/http.[ch]: Make http_header_remove_all report how many headers it removed. 2000-10-27 Richard Braakman * Making release 0.12.1. 2000-10-26 Richard Braakman * gw/wap-appl.c: Use http_header_combine instead of http_append_headers to combine session and request headers, to get the semantics right according to WAE section 8. * gwlib/http.c: Implemented http_header_combine. * test/test_headers.c: Added a test of http_header_combine. 2000-10-25 Richard Braakman * wmlscript/wsstree.[ch], wmlscript/wslexer.c: Fix parsing of integer literal -2147483648. 2000-10-24 Kalle Marjola * doc/userguide/userguide.xml: filled SMPP smsc group fields, thanks for Mikael Gueck for patch. 2000-10-24 Kalle Marjola * gw/urltrans.c: added missing (disappeared?) room reservation for %q and %Q in get_pattern, and added note why sender and receiver is switched. Thanks for Juho-Pekka Virolainen for noticing this. * gw/urltrans.c: oops, forgot to switch reservations. 2000-10-23 Kalle Marjola * doc/userguide/userguide.xml: added missing EMI variable connect-allow-ip. 2000-10-23 Aarno Syvänen * gw/wtp_resp_state-decl.h: Spec does not say what to do when state is RESULT_RESP_WAIT and event receiving an invoke. Yet 0.12 logs already have these events. Handled event same way when state is RESULT_WAIT. 2000-10-23 Richard Braakman * Bugfix: HTTP POST requests have a Content-Length again. Thanks to Stipe Tolj for spotting the problem. 2000-10-20 Kalle Marjola * doc/userguide/userguide.xml: wrote appendix B, using fake SMS center. 2000-10-19 Kalle Marjola * doc/userguide/userguide.xml: added notes on 'required components' for SMS gateways * gw/wapbox.c: modified send_heartbeat to use gwthread_sleep instead of ordinary sleep, so we can use gwthread_wakeup to wake it up when wapbox is killed - now wapbox dies when it catches kill, not after 0-30 seconds. * gw/wapbox.c: send that wakeup when bearerbox exits, too. 2000-10-18 Richard Braakman * gw/bb_udp.c, gwlib/http.c: Corrected some stray free() calls to gw_free(). 2000-10-18 Lars Wirzenius * gw/urltrans.c: Fix off-by-one error in is_safe array size in encode_for_url(). 2000-10-24 Richard Braakman * wmlscript/wsstdlib.c: Corrected "Phonebook" to "PhoneBook". 2000-10-24 Richard Braakman * Corrected misapplication of urltrans patch. Oops. 2000-10-17 Richard Braakman * Making release 0.12 2000-10-17 Tuomas Luttinen * gw/urltrans.c: Changed the logic in the encode_for_url so that the safe ones are listed and the safe characters being alphanums and marks "-", "_", ".", "!", "~", "*", "'", "(", ")". Also UTF-8 with full spectrum of Unicode should work now. 2000-10-17 Kalle Marjola * gw/smsbox.c: Added requested event of sent message 2000-10-16 Aarno Syvänen * gw/wtp_resp_state-decl.h: Removed newline inside a string. 2000-10-13 Tuomas Luttinen * gw/wml_compiler.c: parse_entities added as a fast patch to fullfill WAP 1.1 conformance with WML entities. 2000-10-12 Kalle Marjola * doc/userguide/userguide.xml: added new example: multi-operator SMS Kannel. 2000-10-12 Richard Braakman * gwlib/gwassert.h: Added parentheses around the panic(...), 0 expressions in the assert macros, to get the originally intended meaning. 2000-10-12 Kalle Marjola * gw/bearerbox.c, gw/bb_boxc.c, gw/bb_udp.c, gw/bb_smsc.c: Startup improved; not based on 'hopefully they will get up by that time' system but inter-thread wakeup call. Now the bearerbox starts up very quickly. 2000-10-11 Richard Braakman * wmlscript/wserror.c: Corrected a stray va_arg(ap, char). (va_arg should always get the type as it is after promotion, and char is promoted to int.) 2000-10-11 Tuomas Luttinen * gw/wml_compiler.c (string_table_apply): Fixed a bug where an extra string end was added in a case that two (or more) substrings are replaced with the 2nd (3rd...) being the first to be replaced. 2000-10-11 Aarno Syvänen * gw/wapbox.c: Separate conditions event == NULL and event_is_for_ responder in code selecting to which wtp process an incoming event belongs. 2000-10-11 Peter Gronholm * gw/control.html: Updated the example file to reflect the new http interface administration commands. 2000-10-11 Kalle Marjola * gw/bb_http.c: fixed that query parsing value '0' is not accepted, only '1' * doc/userguide/userguide.xml: added notes about sms-service 'default' 2000-10-10 Kalle Marjola * Typographic fix in userguide.xml. 2000-10-10 Richard Braakman * wmlscript/{ws.c, wsgram.y, wsstree.[ch]}: Remove WsPair and replace it with more specific types WsVarDec and WsFormalParm. This gets rid of an assumption that a long will fit in a (void *) field, which tends not to be true on 64-bit platforms. 2000-10-10 Richard Braakman * wmlscript/wsencode.c: Fix va_arg type bug for all platforms, not just sparc. Removed SPARC_ABI conditionals. 2000-10-10 Lars Wirzenius * debian/postinst: Don't use /var/log/kannel as home directory for user kannel. 2000-10-10 Lars Wirzenius * debian/postinst: Now updates rc.d links and starts Kannel. * debian/postrm: Wrote. Removes rc.d links. 2000-10-10 Richard Braakman * gw/wsp-method-state.h: Fixed state transition for TR-Abort.Ind, in state REPLYING. Thanks to Aymerick Jéhann for noticing. 2000-10-10 Lars Wirzenius * debian/rules: "clean" doesn't run "make clean" unless Makefile exists. 2000-10-10 Lars Wirzenius * debian/init: start kannel boxes as user "kannel" instead of root. run_kannel_box needs to run as root to create the pid file. * debian/postinst: Wrote. Creates user kannel and make /var/log/kannel be owned by kannel. * utils/run_kannel_box.c: Added --no-extra-args option, so that we can run other programs than Kannel boxes (su, in this case, to switch users). 2000-10-10 Aarno Syvanen * gw/wtp_init_state-decl.h: Prevent RCR growing greater than its maximum allowed value. 2000-10-10 Kalle Marjola * gwlib/octstr.c: fixed bug in octstr_str_compare 2000-10-10 Lars Wirzenius * gwlib/gwthread.h: Removed unnecessary and bad ## operator from gwthread_create wrapper macro. 2000-10-09 Richard Braakman * wmlscript/wsstree.c: Always convert the result of an && or || operator to boolean, because the spec requires it for typeof(). * wmlscript/wsopt.c: Add an optimization to remove useless tobool conversions. * wmlscript/wsgram.y: Compile unary + such that it performs the required type conversions. * wmlscript/wsasm.c: Fixed error in jump distance calculation when jumping backward over a forward jump. This messed up "continue" statements among other things. 2000-10-09 Aarno Syvänen * gw/wtp_init.c, wtp_resp.c: When the state machines cannot handle an event, we ignore it and log an error message. Timer will abort this transaction. 2000-10-09 Aarno Syvänen * gw/wtp_state-decl.h: Incorporated CR-Nokia-WTP-20-March-2000/2. In plain words, when load is heavy, Ack(TidOK) may be delayed so much that initiator will retransmit it and the responder will re- ceive the original when its state is RESULT_WAIT. This Ack must be ignored. This corrects bug reported by David. 2000-10-06 Richard Braakman * gw/smsc.c: Reactivate the code that sets the timestamp on an sms message, if the SMSC didn't set it. Thanks to Jarkko Kovala for noticing. 2000-10-06 Richard Braakman * Making release 0.11.3 2000-10-06 Richard Braakman * doc/userguide/userguide.xml: Terminate OTA CGI table so that it compiles. * gw/smsbox.c, gw_smsbox_req.[ch]: Give smsbox_req_sendota() a "client_ip" parameter so that it can call authorise_user correctly. * gw/smsbox_req.c: smsbox_req_sendota(): Remove unused variables. Use octstr_create("") instead of the no longer existing octstr_create_empty(). * gw/bb_boxc.c: Fix memory leak in route_msg() when routing WAP packet but no wapboxes are connected. * gwlib/http.c: Fixed silly bug in http_remove_hop_headers that would make the wapbox panic if a server used the Connection: header. Fixed memory leak in same function. 2000-10-05 Yann Muller * gw/smsbox_req.c/h: added smsbox_req_sendota() to send OTA config messages. * smsbox.c: calls smsbox_req_sendota() if cgi address matches '/cgi-bin/sendota'. * doc/userguide/userguide.xml: added info about config and usage of OTA. * gwlib/octstr.c/h: added octstr_append_from_hex(). 2000-10-05 Kalle Marjola * doc/userguide/userguide.xml: language corrected. 2000-10-05 Richard Braakman * Added seems_valid assertion to end of octstr_format(). * gw/wap-appl.c: Fixed silly mistake that caused random panics. 2000-10-05 Richard Braakman * gw/wap-appl.c: Bugfix, don't panic if resp_headers is NULL (i.e. the HTTP request failed). * gw/fakewap.c: Correctly encode requests with urls longer than 128 bytes. 2000-10-05 Kalle Marjola * test/fakesmsc.c: use info level to inform that all messages have been sent. 2000-10-05 Richard Braakman * wmlscript/*: Reformatted. 2000-10-05 Kalle Marjola * gw/smsbox_req.c: made sure that when max_msgs == 0 then no messages are sent. 2000-10-05 Richard Braakman * gw/wsp_headers.c: Bugfix in pack_integer_string, use ULONG_MAX instead of UINT_MAX and include the right header file. 2000-10-04 Richard Braakman * gw/wap-appl.c: Pass the status code we really got from the server to the client, instead of only accepting code 200 (HTTP_OK). Use 502 (Bad Gateway) if the actual lookup failed. Use http_get and http_post instead of http_get_real and http_post_real. Together with the header encoding patch earlier today, these changes allow HTTP redirection to work. * gw/wap-appl.c, gwlib/http.h: Use symbolic names for HTTP status codes. * gw/wsp_headers.c: Correct small bug that made wsp_headers_pack encode the content-type twice if separate_content_type was on. 2000-10-04 Richard Braakman * gwlib/gwmem.h, gwlib/gwmem-check.c: Let gw_claim_area return the pointer it gets, and let it accept NULL pointers. This makes it easier to use in wrapper macros. * gwlib/octstr.[ch]: Wrap octstr_create, octstr_create_from_data, octstr_copy, and octstr_duplicate so that they "claim" the Octstr they return for their caller. This information will show up in the gw_check_leaks() output, making memory leaks much easier to trace. * gw/wsp_headers.c, gwlib/http.c: Fix memory leaks found this way. 2000-10-04 Richard Braakman * Encode response headers and send them to the client: * gw/wsp_headers.[ch]: Added wsp_headers_pack. Fixed some bugs in wsp_headers_unpack. Replaced a few magic numbers with names. Reformatted. * checks/check_headers.sh, test/test_headers.c, test/header_test: New files. Exercise header code by packing and unpacking a set of headers that try to cover all possibilities. * test/fakewap.c: Be less strict in checking Reply packet, because it can no longer assume the response headers are empty. (Implementing full parsing wouldn't be worth the effort.) * gw/wap-appl.c: Added http_remove_hop_headers and used it to delete hop-by-hop headers when forwarding HTTP headers to client or server. (The hop-by-hop headers are for one connection only, for example Transfer-Encoding.) * gw/wap-appl.c: When applying a content converter to the response body, update the response headers to reflect this. * gw/wap-appl.c: Fill in the response_headers field of S_MethodResult_Req and S_Unit_MethodResult_Req events, now that they're used. * gw/wap-events-def: In the S_MethodResult_Req, response_headers is a HTTPHEADER, not an OCTSTR. Removed response_type field from the MethodResult events, it's not used and the information is present in response_headers. * gw/wsp-method-state.h, gw/wsp-session-state.h, gw/wsp-unit.c: Renamed unpack_headers to wsp_headers_unpack to match function naming convention. Use wsp_headers_pack instead of wsp_encode_http_headers. * gw/wsp-strings.def: Introduce some new tables used for header encoding. * gw/wsp.c, gw/wsp.h: Deleted wsp_encode_http_headers, it's obsoleted by wsp_headers_pack. * gw/wsp.c: Changed wsp_convert_http_status_to_wsp_status to handle all defined status values. * gwlib/http.[ch]: Added several utility functions used by header packing. Minor formatting corrections. * gwlib/octstr.c: Added assertions to octstr_append* functions to prevent segfault. 2000-10-04 Kalle Marjola * gwlib/conffile.c|h: added new function 'config_sanity_check' to check configuration files for basic errors (like empty lines in the middle of groups). * gw/*box.c: modified to use that new function 2000-10-04 Kalle Marjola * gw/smsc.c, gw/smsc_p.h, gw/smsc_emi.c: added configuration variable 'connect-allow-ip' currently used by emi_ip in certain situations - banned connect from other IPs, so you have to set this variable if you still want to use emi_ip with receive port. * gwlib/socket.c: removed loist of 'errno' from error, to minimize double system error outputs. 2000-10-03 Kalle Marjola * gw/smsbox.c: Fixed that we tried to close non-opened http-server-socket, which caused PANIC. 2000-10-03 Kalle Marjola * gw/bb_smsc.c: Fixed a nice bug that appeared only with severe load. 2000-10-03 Kalle Marjola * gw/bb-smsc.c: added SMS multi-send. This is achieved via multiple phone numbers at 'to' field in send-SMS request, each separated with space (currently, possibly changed later). This is not a complete multi-send at SMSC protocol level - the message is splitted into several ones in bearerbox before sending it to SMSC. Note that 'preferred-prefix' and 'denied-prefix' only care about the FIRST phone number in such a message (anyway, use smsc ID instead) * doc/userguide/userguide.xml: added notes on multi-send 2000-10-03 Lars Wirzenius * debian/changelog: Added new entry for newer upstream version number. * debian/copyright: fixed spelling of Wapit (used to be WapIT). * debian/conffiles: New file, lists the files in the Debian package that are marked as configuration files. * debian/init: No longer automatically copied from utils/kannel-init.d, since we can't guarantee that would be the right thing to do for a Debian package. Updated to work on Debian (box path was wrong). * debian/kannel.conf: Re-wrote to work with newer config file syntax. * debian/kannel.wapconf: Removed, no longer needed. * debian/rules: fixed so it works with current Kannel. Also added manual page installation, etc. * gw/kannel.8, utils/run_kannel_box.8, utils/seewbmp.1, wmlscript/wmlsc.1, wmlscript/wmlsdasm.1: Wrote skeletal manual pages for various parts of Kannel that are installed by the Debian package. 2000-10-03 Richard Braakman * gw/wsp_headers.c: Bugfix in multi_octet_integer for integers exactly as large as a long. * gwlib/date.c: Bugfixes for parsing non-recommended (but still standard) date formats. * gwlib/parse.c: Bugfixes in parse_peek_char and parse_get_uintvar. * utils/run-checks: Don't report success if a test failed silently. Add the name of the failing check to check.log. 2000-10-03 Tuomas Luttinen * gw/wml_definitions.h: some data types unified. * gw/wml_compiler.c: Code updated to the new coding style. Old character set conversion code mostly removed, some skeletons still in the closet. Hash table code added, wml_init and wml_shutdown written, but not yet used or tested. * gwlib/octstr.[ch]: octstr_hash_key-function added. 2000-10-03 Kalle Marjola * test/fakesmsc.c: Updated to use general Kannel command line interface - now use options -p, -i and -m to set various fakesmsc settings. Also changed messages to 'debug' level so that there is some use for -v argument. 2000-10-03 Richard Braakman * gw/wsp-strings.c: Correct silly mistake in string_to_number. 2000-10-03 Kalle Marjola * gw/smsbox.c, gw/smsbox_req.c|h: added new smsbox configuration variable 'sendsms-chars' which is used to prevent garbage requests. NOTE: if you are running SMS services, you should check this out! (see user guide) * gw/smsbox_req.c: allowed 'user' and 'password' in place of 'username' and 'password' in sendsms request. * doc/userguide/userguide.xml: userguide upgraded to reflect these. 2000-10-02 Paul Keogh * gw/cookies.c: Updated comment and fixed bug in get_cookies() 2000-10-02 Kalle Marjola * gw/smsbox_req.c: fixed possible crash (panic) with malformed http request 2000-10-02 Kalle Marjola * doc/userguide/userguide.xml: added 'pin' to GSM Phone smsc, did some output formatting. 2000-10-02 Richard Braakman * doc/userguide/userguide.xml: Explained CIMD2 keepalive option. 2000-10-02 Kalle Marjola * README: updated. Removed old references to test_wml, ooutdated libxml version etc. * doc/userguide/userguide.xml: some fix 2000-09-30 Kalle Marjola * doc/userguide/userguide.xml: some update 2000-09-30 Kalle Marjola * doc/userguide/userguide.xml: little update for SMS center groups. Still missing values and meanings for some attributes. 2000-09-29 Richard Braakman * gw/wtp_init.c, gw/wtp_resp.c: Fixed some compiler warnings. 2000-09-29 Kalle Marjola * doc/userguide/userguide.xml: It has been done. Now (practically) all data is rendered into XML and there is list of examples and other things. However, we are missing settings for some SMS centers and their exact names and things like that, help needed. 2000-09-29 Kalle Marjola * doc/userguide/userguide.xml: rest of the newconf.txt moved into this, and some of it edited to XML * doc/userguide/newconf.txt: removed 2000-09-29 Kalle Marjola * doc/userguide/userguide.xml: moved rest of the newconf.txt main things into it, but not yet formatted. 2000-09-29 Richard Braakman * doc/*: Ran spelling checker over most documents. 2000-09-29 Kalle Marjola * doc/userguide/userguide.xml: updating, moved all data from newbb.txt into this and did some reorganisating. Started to insert entire newconf.txt into this. * doc/userguide/newconf.txt: some data already moved to User Guide * doc/userguide/newbb.txt: removed * gw/*kannel.conf, README: updated file references 2000-09-28 Kalle Marjola * doc/userguide/userguide.xml: fixed mismatch and put some extra words about 'my_conf.conf'. More update coming tomorrow... 2000-09-28 Aarno Syvänen * gw/wsp-session.c: Calling wtp_resp_dispatch event and wtp_resp_get_ address_tuple * gw/wsp-session|method-state.h : Calling wtp_resp_dispatch_event * gw/wap-events-def.h: Added event TR-Invoke.cnf * gw/wtp.c|h: Added new external function wtp_event_id_for_responder. This checks first bit of tid. Added helper functions unpack_invoke, unpack_ack and unpack_abort. * gw/wtp_resp.c|h, gw/wtp.c|h: Transferring responder machine code to a separate module (we have an iniator, too). * gw/wtp_resp.c: Most error checking transferred to the function rep_machine_find_or_create. Refer to WTP, 10.2, table 33 when comment- ing. * gw/wtp_init.c|h, gw/init_state-decl.h, gw/init_machine-decl.h: Wrote code for wtp iniator (for classes 0 and 1). * gw/wapbox.c: Sending incoming message to the iniator or the responder, depending on the first bit of the tid. Shutting down and iniating the iniator and responder, too. * gw/wtp_send.c|h: New functions add_responder_address and add_ iniator_address (to avoid void pointer). In functions, use field of a machine type instead of the machine itself, if possible. Added function wtp_send_invoke to the interface, removed do_not_start * gw/wtp_resp_state-decl.h: Renamed wtp_state-decl.h. Reformatted comments. Use variable name resp_machine instead of machine every- where. Make use of the new wtp_send interface. Do not turn u_ack flag, but ack_pdu_sent (this bug is pointed out out by Huang Li), when ack pdu was send. Used constant ACKNOWLEDGEMENT everywhere in wtp_send_calls. Noticed invalid use of 'resent' in the specs. Rid-flag is not turned when ack is sended, because the iniator does not use this flag (only rid of result message is used by it. This is pointed out by Huang Li, too). * gw/wtp_tid.c|h: Used variable resp_machine (and corresponding type) everywhere 2000-09-29 Richard Braakman * checks/check_date.c: Wrote. * checks/test_dates: Test material for testing dates. * gwlib/date.[ch]: Added date_parse_http(). Fixed some bugs in date_format_http() uncovered by check_date. 2000-09-28 Lars Wirzenius * gwlib/socket.c: udp_bind: Recognize interf "*" as an alias for INADDR_ANY, so that Kannel again follows documentation. 2000-09-27 Richard Braakman * gw/wsp-strings.c: Changed everything in order to get case-insensitive string lookup working right. Converted to new formatting rules. * gw/wsp-strings.h, gw/wsp-strings.def: Improved comments. 2000-09-27 Lars Wirzenius * gw/wtp_state-decl.h: Removed handling of event RcvInvoke in state RESULT_RESP_WAIT, since that was neither in the spec and seems to do nothing useful. 2000-09-27 Lars Wirzenius * gw/smsbox.c, gw/wapbox.c, doc/userguide/newconf.txt: Added configuration variable http-proxy-exceptions. 2000-09-27 Tuomas Luttinen * configure[.in]: Support for libxml1 removed, only 2.2.0 and up now. 2000-09-27 Richard Braakman * gw/smsc_emi.c: Correct calculation of message length for UDH messages. 2000-09-27 Lars Wirzenius * gw/wapbox.c: moved http-proxy-host and http-proxy-port into "core" from "wapbox" section. (That's where they were for the smsbox as well.) Also added the code that actually makes use of the proxy support, by calling http_use_proxy. * gwlib/http.c: Allow the list of exceptions to be NULL, to simplify the case when no exceptions are wanted. Also report when a proxy is being used. 2000-09-27 Richard Braakman * gw/wsp.c: Encode all known content types, not just the most common ones. * gw/wsp-strings.def: s/applicatoin/application in one of the content types. 2000-09-26 Lars Wirzenius * gw/wap-appl.c: Added Via header to HTTP requests. * gwlib/socket.[ch]: Wrote function get_official_name. * gwlib/octstr.c: Don't call gwlib_assert_init, instead assert that octstr itself has been initialized. This is necessary because socket.c now needs to use octet strings before gwlib has been fully initialized. 2000-09-26 Richard Braakman * Making release 0.11.2. 2000-09-26 Lars Wirzenius * gw/smsbox_req.c: smsbox used to dump core if the sendsms username was incorrect, now it correctly returned authorization failure. Fixes bug report 105 from Paul Keogh. 2000-09-26 Lars Wirzenius * test/fakesmsc.c: Initialize the third parameter to accept correctly. I wonder why this has ever worked. 2000-09-26 Kalle Marjola * gw/smsbox_req.c, gw/urltrans.c: set so that message without any content is passed to default service group, not ignored. Fixed request count, too. 2000-09-25 Richard Braakman * gwlib/conn.c: Make conn_read_line() work more than once. Thanks to mulix@actcom.co.il for reporting this. * gw/wtp_send.[ch], gw/wtp_state-decl.h: Removed "event" parameter from wtp_send_abort and wtp_send_ack. There were assertions for this (otherwise unused) parameter which caused the function to fail if the event was for example a timeout. 2000-09-25 Lars Wirzenius * checks/check_http.sh: Check for "ERROR:" in log file. * gw/html.h: Include gwlib/gwlib.h, not octstr.h. * test/test_http.c: Add -q option. * gwlib/http.c: Bugfix. Format string said %s when it should have said %S. 2000-09-25 Kalle Marjola * gw/smsbox*.*: activated sendsms-user allow/deny-ip strings * gw/urltrans.c|h: appropriate modifications to that file * doc/userguide/userguide.xml: started to write a new chapter about SMS Kannel setup 2000-09-25 Kalle Marjola * gw/bb_udp.c, gwlib/socket.c|h, test/test_udp.c: inserted interface-name patch by Andreas Fink. 2000-09-25 Lars Wirzenius * doc/userguide/newconf.txt: Added slightly better descriptions from Paul Keogh for SMS2000 config variables. 2000-09-25 Kalle Marjola * doc/userguide/userguide.xml, doc/userguide/newconf.txt: updated to include notes about SMSC ID use. * gw/bb_smsc.c, gw/smsc.c|h, gw/smsc_p.h: added preferred-id and denied-id configuration variable for SMS routing 2000-09-25 Kalle Marjola * gwlib/utils.c: added str_find_substr * gw/urltrans.c|h: added 'smsc' to find_translations, and forced-smsc, default-smsc and accepted-smsc for translation groups. Accepted-smsc is now in full use, so if you need sms-services linked to used SMSC, use it (and smsc-id for corresponding SMSC) * gw/smsbox_req.c: set smsc_id for send-sms requests * doc/userguide/newconf.txt: added new attributes here 2000-09-25 Kalle Marjola * gwlib/utils.c (get_and_set_debugs): fixed '--' parsing 2000-09-22 Kalle Marjola * gwlib/utils.c: set that command line option '--' ends option parsing. Thanks to Kari Lempiainen for finding this, although I added one 'break' to it, too. 2000-09-22 Richard Braakman * gw/timers.c: Correctly record elapse-event in gwtimer_start. Oops. This also fixes a memory leak. 2000-09-22 Richard Braakman * gwlib/protected.[ch]: Removed gw_getlocale(). Despite protection, toggling locale settings is inherently not thread-safe. * gwlib/date.[ch]: Started file for date handling functions. Contains date_format_http(). It is a reimplementation of rfc2068_date_format() but does not use setlocale trickery. * Removed rfc2068_date_format() from gwlib/utils.[ch] and made gw/wsp_headers.c call the new function. 2000-09-22 Richard Braakman * gw/wsp-session.c: Corrected capabilities negotiation. This is not the promised rewrite, and its replies are still longer than they need to be, but it follows the standard now. * gw/wsp_caps.[ch]: Added helper function wsp_cap_get_server_sdu. 2000-09-22 Kalle Marjola * gw/smsbox_req.c: edited access log entries, now the HTTP request status is logged etc. 2000-09-22 Kalle Marjola * gw/smsbox.c: added opening/closing of access log * gw/smsbox_req.c: added access log entries for requests (send-sms and MO), and modified the entire MO SMS lifetime so that 'request failed' replies to max-messages = 0 translations still get that answer * gw/smsc.c|h: changed so that smsc_send_message does not destroy the msg * gw/bb_smsc.c: updated access log entry * doc/userguide/newconf.txt: added access-log into variables. Still missing smsc-id, as the implementation is not finalized. 2000-09-21 Kalle Marjola * gwlib/accesslog.c|h: added first version of access log system * smsc.c|h: added SMSC Id (a bit like name but user defined) * gw/msg-decl.h: added SMSC Id to SMS messages * gw/bb_smsc.c, gw/bearerbox.c: added access log entries for incoming/outgoing SMS messages * gw/smsbox_req.c: added 'smsc' entry for send-sms interface, but not yet supported. 2000-09-21 Lars Wirzenius * gwlib/http.c: Use octstr_case_search instead of octstr_convert_range and octstr_search to check whether a URL begins with "http://". 2000-09-21 Lars Wirzenius * checks/check_octstr.c: Wrote. * gwlib/octstr.[ch]: Wrote new function octstr_case_search. 2000-09-21 Lars Wirzenius * gwlib/octstr.c: octstr_compare: Fixed behavior when either argument was a zero length octet string. It used to always return zero, now it returns -1 or 1 if the other argument is not a zero length octet string. * gwlib/octstr.[ch]: Wrote octstr_case_compare. 2000-09-21 Lars Wirzenius * gwlib/octstr.c: Reformatted to new code layout. 2000-09-21 Lars Wirzenius * gw/wapbox.c: Start the WAP application layer before the heartbeat thread. This prevents a race condition at startup. 2000-09-21 Richard Braakman * gw/timers.c: In TimerHeap struct, rename "heap" field to "tab". There's something confusing about heap->heap[index]. * gw/timers.c: Simplified main loop in the timer thread. Made it process all elapsed timers before releasing its lock -- should be faster if a bunch of timers elapse at once. 2000-09-20 Richard Braakman * gw/wsp_headers.c: Try to skip over unknown code pages more intelligently. 2000-09-20 Richard Braakman * gw/timers.[ch], gw/wtp.c: Renamed timer_* to gwtimer_* to avoid name conflict with system functions. Sigh. 2000-09-20 Richard Braakman * gw/timers.c: Reformatted according to new layout standard. 2000-09-20 Richard Braakman * gw/timers.c: Implement the heap structure using a C array, instead of using List. This has less overhead and removes the need for list_swap. * gw/list.[ch]: Remove list_swap. 2000-09-20 Richard Braakman * gw/timers.[ch]: Removed timersets from the interface. The choice of what timers should be handled by a single thread is a performance issue, not an interface issue. All timers are now handled by a single timer thread. The choice of output list is now specified per timer, instead of per timer set. Added timer_init and timer_shutdown functions that should be called before creating any timers. * gw/wapbox.c, gw/wtp.c: Adjust to new timers interface. 2000-09-19 Richard Braakman * gw/timers.c, gw/timers.h: New timers. Faster, better, and they actually time out. * gw/wtp_timer.c, gw/wtp_timer.h: Removed. (Remnants of old timer code). * gw/wapbox.c: Removed references to old timer code. It's now completely hidden in the wtp layer. Other layers can get their own timers. * gw/wtp.c: Use new timers. Added some convenience functions (start_timer_A and start_timer_R). Handle TimerTO_* events. There's no start_timer_W yet because we don't use it yet. * gw/wtp.h: Use new timers. * gw/wap-events-def.h: TimerTO_* events get a machine handle instead of a dummy field, so that the WTP layer knows which machine timed out. * gw/wtp_state-decl.h: Use new timers, by calling the convenience functions. There's no real timer code left in the state machines. * gw/list.c, gw/list.h: Made list_delete_matching and list_delete_equal return the count of items deleted. Getting that info from an atomic operation is useful for the timer code. Also added list_swap function. 2000-09-19 Richard Braakman * gw/wtp.[ch], gw/wtp_machine_decl.h: Removed unused field type LIST from state machines. 2000-09-19 Lars Wirzenius * gwlib/list.[ch]: Removed list_cat function, as it is now unused. 2000-09-19 Tuomas Luttinen * gw/wml_compiler.c: Added wml_init and wml_shutdown that do nothing yet, removed call to list_cat. * gw/wml_compiler.h: Added prototypes for wml_init and wml_shutdown. 2000-09-18 Richard Braakman * gw/smsc_smpp.c: Make charset_iso_to_smpp and charset_smpp_to_iso work with character values > 128. Bugfix suggested by Philip Chr. Psiloinis. 2000-09-18 Lars Wirzenius * doc/CodingStyle: Added example of coding style. 2000-09-18 Lars Wirzenius * ChangeLog, debian/init, gw/bb_boxc.c, gw/bb_http.c, gw/html.h, gw/msg.c, gw/urltrans.c, gwlib/conffile.c, gwlib/conffile.h, gwlib/gwassert.h, gwlib/gwstr.h, gwlib/gwthread-pthread.c, gwlib/http.c, gwlib/http.h, gwlib/list.c, gwlib/list.h, gwlib/log.h, gwlib/octstr.c, gwlib/octstr.h, gwlib/socket.c, gwlib/thread.c, gwlib/thread.h, gwlib/utils.c: Folded some long lines (see utils/find-long-lines). 2000-09-18 Lars Wirzenius * gwlib/octstr.c: Shut up char/unsigned char implicit conversion warning by adding a cast. 2000-09-18 Derry Hamilton * gwlib/thread.h: changed the call to mutex_init_static_real to actually pass the mutex when MUTEX_STATS are required. 2000-09-18 Kalle Marjola * gwlib/utils.c (get_and_set_debugs): PANIC if unknown option is encountered, to avoid misuse of options. 2000-09-18 Kalle Marjola * gw/bb_http.c (httpd_serve): when receiving an unknown command, tells the received url back to caller 2000-09-18 Kalle Marjola * gw/smsbox.c (init_smsbox): fixed bug reported by Paul Keogh. * gw/bearerbox.c: some fix to shutdown order 2000-09-14 Lars Wirzenius * utils/source-stats: Wrote. 2000-09-14 Lars Wirzenius * config.h.in, configure.in, configure, gwlib/socket.[ch], gwlib/getnameinfo.h: Killed the getnameinfo implementation. Yet another non-standard function that we don't even refer to anymore. 2000-09-14 Lars Wirzenius * gwlib/log.[ch]: Removed the `forced' log level, since it is pointless and unused. 2000-09-14 Lars Wirzenius * config.h.in, configure, configure.in, gwlib/utils.[ch]: Always use kannel_cfmakeraw, instead of the libc one. This simplifies configuration, and lets us not have to worry about having another cfmakeraw in a non-glibc library that does something else than the glibc one. Or about the glibc one changing behavior sometime in the future. (Oh the joys of using extensions to the standard libraries...) 2000-09-14 Lars Wirzenius * gw/wap-appl.c, gw/wsp.h: Added function wap_appl_get_load, which gives a current load average for the application layer (which is essentially the only sensible place to look for load averages), defined as the sum of the length of request queue and number of HTTP fetches that are currently happening. The old getloadavg method is deleted, but if this one proves to be completely unworkable, we can always salvage the code from CVS. On the other hand, this method actually works on systems that don't have a getloadavg, and works even on systems where getloadavg is defined differently (imagine running two different wapboxes). * gw/wapbox.c: Use wap_appl_get_load instead of getloadavg. * configure{,.in}: Removed checks for getloadavg. 2000-09-14 Lars Wirzenius * gwlib/http.c: Ran through astyle to get formatting right. 2000-09-14 Lars Wirzenius * gwlib/http.c: Removed internal function octstr_str_ncompare, replacing it with calls to octstr_search and octstr_create_immutable. Die *_cstr, die! 2000-09-14 Lars Wirzenius * gwlib/octstr.[ch]: Added `pos' argument to octstr_search to let caller specify from where the search in the haystack starts. Also, octstr_format now understands %c. * gw/html.c, gw/smsc_at.c, gw/wap-appl.c, gw/wsp_headers.c, gwlib/http.c, gwlib/octstr.c, test/drive_wapbox.c, test/test_cimd2.c: Use octstr_search instead of octstr_search_cstr and various functions instead of octstr_append_cstr. * gw/wml_compiler.c: Fix call to octstr_search. 2000-09-14 Lars Wirzenius * gwlib/octstr.[ch]: Removed the octstr_create_limited, because it had so limited use. 2000-09-14 Lars Wirzenius * test/test_http_server.c: Catch SIGTERM and die immediately. * checks/check_http.sh: Wrote. 2000-09-14 Lars Wirzenius * gw/smsbox.c, gw/wapbox.c, doc/userguide/newconf.txt: Added HTTP proxy support to configuration files. No way to test it, right now, but will eagerly await bug reports. 2000-09-14 Lars Wirzenius * gwlib/list.c: Don't do the atomic operation locks for list_lock and list_unlock: they're unnecessary for atomicity and cause deadlocks. Thanks to Kalle Sandström for noting this. * gwlib/octstr.c: Silence compiler warning regarding using a plain char as an index to an array (in reality, argument to isdigit), by typecasting a pointer. If we used fewer C strings, this would be less of a problem... 2000-09-11 Lars Wirzenius * README: Fixed download URL, re-formatted and removed the outdated claim that it is a very raw draft. * doc/CodingStyle: Added note about the official formatting style, as discussed on devel@kannel.org. Also added a note about memory allocation policy as far as function interfaces are concerned, a note to avoid #if, and something about abstract data types and naming conventions related to that. * doc/dialup.txt, Makefile.in, configure.in, doc/arch/arch-bearerbox.xml, doc/arch/arch-bib.xml, doc/arch/arch.xml: Shortened long lines. * gwlib/list.[ch]: Changed the interface of the list_destroy function by adding a second argument, which is a pointer to an item destroying function. * checks/check_list.c, gw/cookies.c, gw/bb_boxc.c, gw/bb_smsc.c, gw/bearerbox.c, gw/numhash.c, gw/smsbox.c, gw/smsbox_req.c, gw/smsc.c, gw/smsc_cimd2.c, gw/urltrans.c, gw/wap-appl.c, gw/wapbox.c, gw/wml_compiler.c, gw/wsp-session.c, gw/wsp-unit.c, gw/wsp_caps.c, gw/wtp.c, gw/wtp_pdu.c, gw/wtp_tid.c, gw/wtp_timer.c, gwlib/http.c, gwlib/parse.c, test/drive_wapbox.c, test/test_cimd2.c, test/test_http.c, test/test_http_server.c: Updated calls to list_destroy to work with its new interface. * gw/msg.[ch], gw/wap-events.[ch]: Added functions *_destroy_item, for use with new list_destroy. * gw/wap-appl.c: Add X-WAP-Client-SDU-Size header. * gwlib/octstr.[ch]: Added functions octstr_format and octstr_format_append. Also added "immutable octet strings", for wrapping around C string literals, which required adding octstr_init and octstr_shutdown. See the header for more info. Also added some consts here and there. * gwlib/gwlib.c: Call octstr_init and octstr_shutdown. * test/test_octstr_format.c, test/test_octstr_immutables.c: New test programs. 2000-09-04 Richard Braakman * gw/wapbox.c, gw/smsbox.c, gw/bearerbox.c: Handle only signals for the main thread, so that each signal is received exactly once. 2000-09-04 Richard Braakman * Changes prompted by code review: * gwlib/gwthread.h, gwlib/gwthread-pthread.h: Rename Threadfunc to gwthread_func_t. * gwlib/parse.h, gwlib/parse.c, gw/wsp_headers.c: Rename Context to ParseContext. * gwlib/gwmem-check.c: Give symbolic names to the memory-filling patterns it uses. * gwlib/conn.h: Improve comments. 2000-09-04 Richard Braakman * Making release 0.11.1. 2000-09-04 Derry Hamilton * gw/wml_compiler.c: reformatted my earlier patch. 2000-09-03 Lars Wirzenius * gw/wml_compiler.c: Removed unnecessary call to gw_assert: list_create is defined as always returning non-NULL, so it's not necessary to check it. (Or if we do, we should check it everywhere.) * gwlib/list.c: Removed unused variable from lock(). Also re-did the change to list_len in my own coding style, just to be pedantic. * I assume these were leftovers from Derry's debugging. 2000-09-01 Derry Hamilton * gwlib/list.c: Added a test for NULL list to list_len since some things want the length of NULL lists. * gw/wml_compiler.c: string_table_build no longer tries to add strings to the stringtable if the list is NULL. 2000-08-31 Lars Wirzenius * wmlscript/wsencode.c: Added a typecast to convert a va_arg call that fetches an int to convert the value to an unsigned char *. 2000-08-31 Lars Wirzenius * gwlib/http.c: Improved (but still did not write properly) HTTP Content-Type header parsing. Fix suggested by Joerg Pommnitz, though re-did the patch to add some error checking. * test/test_http.c: Parse and report Content-Type. Also, http_get_real now wants a non-NULL request header list. Give it that. * test/test_http_server.c: Report a character set (UTF-8, though it doesn't really matter) so that the parsing can be tested. 2000-08-31 Lars Wirzenius * configure.in: Tweaked the libxml checking. It should now be slightly cleaner and should work with upcoming 2.2.x versions of the library without changing configure.in. Thanks to Geir Johannessen, whose mail prompted me to look at this, even though I didn't use his patch directly. 2000-08-31 Lars Wirzenius * gw/wsp.[ch]: Minor cleanups: Removed unused constants, added a comment for assertions, etc. 2000-08-31 Lars Wirzenius * gw/wapbox.[ch]: Moved WB_DEFAULT_TIMER_TICK and CONNECTIONLESS_PORT defines from .h to .c, since they're only used inside .c. * gw/wsp-method-state.h: Formatting change (comments should be indented similarly to the code they describe). Also, bug fixes: several comparisons had a single equals (i.e., assignment) instead of two (i.e., comparison). 2000-08-31 Lars Wirzenius * gw/wapbox.c, gw/log.c: Moved syslog opening internals to log.c, where it belongs. Introduced new function set_syslog to do this. * gw/log.c: Cleaned up formatting, etc, a bit. syslog support (internals of kannel_syslog (now static, btw)) is compiled on all platforms, not just SunOS. * gw/log.h: Added note that opening and closing of log files is not thread safe. 2000-08-31 Lars Wirzenius * gwlib/list.[ch]: Some further cleanups: - list_delete_all and list_extract_all were named in a misleading way; renamed to *_matching instead, and all calls fixed as well; argument `cmp' renamed to `matches' for clarity's sake - some assertions uncommented and fixed to compare a pointer explicity to NULL, instead of implicitly - code changed to call delete_items_from_list, instead of doing the same thing manually - list_lock and list_unlock use the single-operation lock * checks/check_list.c, gwlib/http.c: Related changes. 2000-08-31 Lars Wirzenius * gwlib/list.c: list_len is now protected by locks. 2000-08-31 Lars Wirzenius * test/test_list.c: Removed. * checks/check_list.c: Wrote. 2000-08-30 Lars Wirzenius * gw/bb_udp.c, gw/cookies.c, gw/html.c, gw/msg.c, gw/smsbox_req.c, gw/smsc_at.c, gw/smsc_cimd2.c, gw/smsc_ois.c, gw/smsc_sema.c, gw/smsc_smpp.c, gw/wap-appl.c, gw/wml_compiler.c, gw/wsp-session.c, gw/wsp-unit.c, gw/wsp.c, gw/wsp_caps.c, gw/wsp_headers.c, gw/wsp_pdu.c, gw/wtp_pdu.c, gwlib/conn.c, gwlib/http.c, gwlib/http.h, gwlib/octstr.c, gwlib/octstr.h, gwlib/parse.c, gwlib/socket.c, test/fakewap.c, test/test_cimd2.c: Cleanups based on a (brief) code review. Lots of small changes pretty much everywhere, but nothing really big. * Renamed octstr_search_*_from to octstr_search_*, because there's no point in having two almost equivalent functions. * Renamed octstr_*_blank to octstr_*_blanks, to be grammattically correct. * Killed octstr_create_empty, replaced it with octstr_create(""). * Other minor differences, see the diff if you're interested. 2000-08-30 Tuomas Luttinen * gw/wml_compiler.c: The octet string memory leaks in the string table code plugged. 2000-08-29 Tuomas Luttinen * gw/wml_compiler.c: Plugging the huge memory leaks of the string table code started. No more leaks due lists or mutexes. Some leaks with octstr:s also plugged, some still remain. 2000-08-28 Tuomas Luttinen * gw/wml_compiler.c: The patch by Aarno was removed because it caused problems like "WARNING: WSP: All converters for `text/vnd.wap.wml' failed.", segmentation fault on variables and maybe others. 2000-08-26 Derry Hamilton * solaris/mk-solaris-package.sh: Now compiles for a bare Solaris 7 box, doesn't assume LD_LIBRARY_PATH 2000-08-24 Kalle Marjola * gw/bb_udp.c (udp_receiver): trap ECONNREFUSED too (hey it was missing from Man page) and just continue * gw/bb_boxc.c: extend wapbox_list lock to prevent packet routing to exiting wapboxes 2000-08-23 Richard Braakman * gw/wap-appl.c: Make sure content.url and content.body have valid values even if request method is not supported. * gw/wsp_pdu.c, gw/wtp_pdu.c: Make sure REST fields are always filled, even if packet contains bad length info. This fixes a crashing bug discovered by OUSPG. * test/fakewap.c: Fix small memory leak. * test/udpfeed.c: New test program, reads a bunch of files and sends each in a single UDP packet. Useful for feeding OUSPG's test set to Kannel. * gw/wapbox.c: Catch SIGQUIT and use it to report memory usage. Useful for detecting memory leaks. * gw/gwmem-check.c: Bugfix to allow gw_check_leaks() to be called multiple times in one run. * gw/wsp-unit.c: Fix memory leaks. 2000-08-22 Aarno Syvänen * gw/wml_compiler.c: Fixed some memory leaks 2000-08-22 Derry Hamilton * solaris/etc/kannel.conf: By default do not permit admin connections Mon Aug 21 18:39:30 2000 Lars Wirzenius * test/test_counter.c: Removed, as this is now replaced by chec/check_counter.c. Mon Aug 21 18:32:04 2000 Lars Wirzenius * README, Makefile.in: Added some automatic checking as "make check". See the README for more info. * utils/run-checks, checks/*: New files. 2000-08-21 Paul Keogh * gwlib/counter.[ch]: Added counter_set method. 2000-08-18 Richard Braakman * gwlib/gwthread-pthread.c: In gwthread_shutdown, don't delete the tsd_key. It's still needed by gwthread_self(), which can still be called. This might fix the problem of wapboxes that refuse to die. * gw/wsp-strings.c: Make wsp_##name##_to_string not crash if the string was not found. * gw/wsp_headers.c: Have unpack_all_parameters() stop at the end of its string, rather than reporting a bogus error. Also fixed a memory leak in header unpacking. 2000-08-18 Derry Hamilton * solaris/mk-solaris-package.sh: Changed default optimisation level. * solaris/etc/kannel.conf: Kannel needs an admin port to start 2000-08-16 Derry Hamilton * solaris/*: Added packaging information for Solaris 2000-08-14 Peter Grönholm * gw/wml-definitions.h: A typo corrected in URL value code table. Now URLs ending with .net/ work, too. Two other typos: Content- Type and Expires use capital letters. 2000-08-10 Tuomas Luttinen * gw/wml_compiler.c (check_variable_syntax): Escaping now possible with one letter acronyms 'e', 'u' and 'n'. 2000-08-07 Tuomas Luttinen * gw/wml_compiler.c: A little bit of code cleaning, changing return types to null where a status is not needed. 2000-08-06 Derry Hamilton * config.h.in, wmlscript/wsencode.c: Fixed the WMLScript compiler errors under Solaris SPARC. The SPARC ABI requires that function parameters be int aligned. 2000-08-04 Tuomas Luttinen * test/decompile.[ch]: A patch by Chris Wulff applied. * gw/wml_definitions.h: STRING_TABLE_MIN defined * gw/wml_compiler.c: The first attemp to use string table more efficiently. For a reason or another hangs up when compiled with checking-malloc on the check phase into a allocation lock. * gw/wml_compiler.c: The patch to fix a bug in the libxml-1.8.6 is removed. * configure[.in]: The flag HAVE_LIBXML_1_8_6 is removed, now takes only 1.8.7 and up. 2000-08-04 Richard Braakman * gw/wap-appl.c: In X-WAP-Gateway header, use "Kannel/0.11" instead of "Kannel 0.11", to comply with HTTP/1.1 recommendations for version strings. 2000-08-02 Richard Braakman * Making development release 0.11. 2000-08-02 Richard Braakman * Applied Joerg Pommnitz's patch for Crypto library support in the WMLScript compiler. 2000-08-02 Richard Braakman * Folded in POST_SUPPORT. Duplication of code is Bad. 2000-08-01 Richard Braakman * gw/smsc_cimd2.c: Be forgiving of cimd2 calls while the socket is not open. This is necessary because of the changed thread structure in the new bearerbox. 2000-08-01 Richard Braakman * gw/smsbox_req.c: When logging "message sent", use errno 0 instead of 1. (?) * doc/userguide/newconf.txt: Change recommended unified-prefix string for Finland, because smscenters no longer accept "00" prefix as of today. 2000-08-01 Richard Braakman * gw/smsc_cimd2.c: When complaining about format of sender number, actually log the sender number rather than the receiver number. 2000-07-27 Richard Braakman * gw/smsc_cimd2.c: When pending_smsmessage receives an unexpected response packet, report it instead of crashing. 2000-07-24 Richard Braakman * gw/wsp_headers.c: Mostly rewritten. Now decodes all header types defined by WSP 1.1. This means that the headers sent by the phone are all passed to the HTTP server. Previously, only a few commonly-appearing ones were (partially) decoded. Uses wsp-strings.def instead of inlined string tables. Uses new gwlib parse module to scan octstr contents. "Works for me" status. Will be more thoroughly tested after the decoding code is complete. * gw/wsp_headers.h: Changed interface of unpack_headers. It now takes a content_type_present flag parameter, instead of having a separate unpack_post_headers function. * gw/wsp-strings.c: Support for NUMBERED tables, which assign non-sequential numbers to the strings in a table. * gw/wsp-strings.h: Support for NAMED tables, which assign an enum value to each entry in a string table. * gw/wsp-strings.def: Define lots of new string tables, for use by the wsp_header module. * gw/wapbox.c: Init and shutdown newly used wsp-strings module. * gw/wsp-method-state.h, gw/wsp-session-state.h, gw/wsp-unit.c: Use new unpack_headers interface. * gwlib/octstr.c: In octstr_insert, assert that ostr2 is not inserted past the end of ostr1. (This assumption was already there; it's just made explicit now.) Removed unused octstr_get_digit_from function. octstr_parse_long does the same thing. New octstr_append_decimal function. * gwlib/protected.c, gwlib/protected.h: Added gw_getlocale, for use by rfc2068_date_format function. * gwlib/utils.c, gwlib/utils.c: New rfc2068_date_format function, to convert a unix timeval to a common textual format. (The RFC2068 format also fits the RFC822 format). * gwlib/parse.c, gwlib/parse.h: New module to make it easier to parse octstrs without passing lots of length and offset variables around. * gwlib/gwlib.h: Include new parse.h. Move inclusion of protected.h to end, so that it can use Octstr in its function prototypes. 2000-07-24 Tuomas Luttinen * gw/smsbox_req.c: Removed function smsbox_req_sendota that used nonexistent octstr-function so that the CVS version didn't compile. 2000-07-23 Tuomas Luttinen * configure.[in]: libxml 2.2.1 added. 2000-07-21 Paul Keogh * gw/bb_udp.c: Added check for NULL ptr return from udpc_create() in function add_service() to prevent subsequent NULL dereference and crash. 2000-07-21 Yann Muller * gw/smsbox_req.c, smsbox_req.h: messages with or without UDH are now handled in the same way, they can all be sent as multiple messages or concatenated messages if too long. * gw/smsc_at.c: Receiver address fix by Paul Keogh and Marcus Shawcroft. Better support for UDH. * gw/urltrans.c, urltrans.h: Added the concatenation option for SMS messages. * doc/userguide/newconf.txt, userguide.xml: Added a note about the concatenation and removed the limitation about UDH. 2000-07-20 Richard Braakman * gw/wtp.c: Fixed memory leak in wtp_unpack_wdp_datagram. Simplified the code a bit. * gw/wtp.c: Made wtp_unpack_wdp_datagram_real not crash when receiving an invalid PDU. * gw/wtp_pdu.c: In wtp_pdu_unpack, simply free a PDU with unknown type instead of trying to destroy it. None of its fields were set anyway. * test/fakewap.c: Actually test separation when -s flag is given. The test is wrong, though, it sends bad packets. Not going to fix that now. 2000-07-19 Tuomas Luttinen * configure[.in]: libxml 1.8.9 and 2.2.0 added. Fixes bug #97. 2000-07-18 Richard Braakman * gw/html.c: Fix skipping of quoted strings (bug #89, reported by Paul Keogh). * gw/smsbox.c: Avoid memory leak in http_request_thread(). Fixes bug#101, reported by Paul Keogh. 2000-07-18 Richard Braakman * gw/smsc_ois.c: Fixed some warnings. 2000-07-18 Kalle Marjola * gwlib/gwthread-pthread.c, gwlib/http.c: Fized bugs #98 and #100 reported by Paul Keogh. 2000-07-18 Paul Keogh * gw/urltrans.c: Fixed memory leak in destroy_onetrans(). 2000-07-17 Paul Keogh * gwlib/counter.[ch]: Added counter_decrease() function. 2000-07-15 Derry Hamilton * config.h.in,configure,configure.in: Removed checks for integer lengths as it broke more than it might have fixed. 2000-07-14 Paul Keogh * gwlib/http.c: Fixed a bug in the HTTP POST which prevented interop with some versions of Apache and ultimately crashed. 2000-07-13 Derry Hamilton * gw/wapbox.c,gw/wapkannel.conf,gwlib/log.c: first implementation of syslog support under Solaris. 2000-07-13 Kalle Marjola * */*: Making out release 0.10.2 2000-07-13 Tuomas Luttinen * gw/wml_compiler.c (wml_compile): Compiler now checks that the output from libxml is not a NULL pointer. 2000-07-13 Derry Hamilton * config.h.in,configure,configure.in: configure now checks for the 32-bit type and defines kint32 and kuint32 as appropriate in preparation for 64-bit kannel on Alpha and UltraSPARC since the compiler types int32 and uint32 are not supported everywhere. * gwlib/http.h: Added the function definition for http_charset_accepted rather than leaving it to be implicitly defined. 2000-07-13 Yann Muller * gw/smsc_at.c: removed two unused variables. 2000-07-12 Tuomas Luttinen * gw/wml_compiler.c: Little bug fixes with variables: - no more empty string before variable reference to string table - double $ won't eat a character after them, fixes #94 - a little memory leak mentioned below corrected 2000-07-12 Kalle Marjola * gw/bb_http.c: oops, return value for HTTP admin was not checked, now fixed * gw/bearerbox.c: added compiler options KANNEL_NO_SMS and KANNEL_NO_WAP 2000-07-11 Tuomas Luttinen * gw/wml_compiler.c: Bug #86 fixed. A memory leak with $ characters fixed. Another one still remains with mix of $ characters and variables. 2000-07-11 Yann Muller * doc/userguide/newconf.txt: Added configuration information to use a GSM modem as an SMSC. 2000-07-10 Yann Muller * gw/smsc_at.c: now removes SMSC address at beginning of PDU sent by the Wavecom. Better handling of messages with UDH (no 7bit encoding of UDH yet). 2000-07-10 Kalle Marjola * gw/urltrans.c (find_translation): fixed string matching of sms-services. 2000-07-07 Tuomas Luttinen * configure: Now support for libxml 1.8.8 and 2.1.1. * gw/wml_compiler.c: Support for libxml version 2 and above now ready. * gw/wml_compiler.c (parse_attribute): Patch by Holger Casties applied to eliminate a segmentation fault with NULL pointer passed as a second argument to strcmp. 2000-07-07 Kalle Marjola * doc/dialup.txt: updated to reflect current configuration, and added data on how to get it work with Siemens S25i from Matthias Wutke 2000-07-07 Aarno Syvänen * gw/wtp.c: Bugfixes in the separation code * test/fakewap.c: Added sending of a concatenated message, for testing separation. 2000-07-07 Kalle Marjola * gw/bb_boxc.c: hopefully fixed a little bug/feature in connection closing 2000-07-06 Richard Braakman * Making release 0.10.1. * Extended NEWS. Removed NEWS.devel, we won't need it until we start on 0.11. 2000-07-06 Kalle Marjola * gw/smsc_ois.c: (hopefully) fixed warnings from FreeBSD 2000-07-06 Kalle Marjola * gw/bearerbox.c: added --suspended and --isolated command-line option names (same as -S and -I) * gw/smsbox.c: fix in command line parsing * doc/userguide/newbb.conf: added data on those new options 2000-07-06 Kalle Marjola * gw/smsbox.c: modified so that if the HTTP-sendsms interface is defined, the smsbox won't start if it fails to init it. Use new command line option -H or --tryhttp to override this feature 2000-07-05 Kalle Marjola * doc/userguide/newconf.txt: oops, forgot admin-username. And returned sample smsc-groups * gw/smsc.c, gw/smsc_p.h, gw/smsc_ois.c: Added support for SEMA SMS2000 (G6.0) OIS 5.0 over X.25, under name OIS, by Jouko Koski. 2000-07-03 Richard Braakman * gw/wml_definitions.h: Applied patch by brennon loh york hong to fix compilation of pages with multiselect. 2000-07-03 Paul Keogh * gwlib/http.c,gwlib/http.h,gw/wsp_headers.h,gw/wsp_headers.c, gw/wsp_unit.c,gw/wsp_session_state.h,gw/wsp_method_state.h, gw/wap-appl.c: Added support for HTTP POST under #ifdef POST_SUPPORT. Also enabled runtime cookies under #ifdef COOKIE_SUPPORT. 2000-06-30 Aarno Syvänen * wsp-unit.c: Fixed some memory leaks 2000-06-30 Aarno Syvänen * wtp_tid.c|h, wtp_state-decl.h: Tid was not cached when tid verification was invoked because of a failed tid validation test. So after every validation all following tids were verified. Added to the the module wtp_tid an external function wtp_tid_set_by machine, which stored tid after validation. 2000-06-30 Richard Braakman * gw/wml_compiler.c: In parse_octet_string, one extra byte was skipped after a variable reference, including the special "$$" sequence. Fixed. 2000-06-30 Richard Braakman * gwlib/http.c: Change some of the locking according to Joerg Pommnitz's suggestions, to deal more smoothly with slow connects. 2000-06-30 Derry Hamilton * Makefile.in: made .depend depend on config.h. This should allow changing between checked and unchecked malloc without manual intervention. 2000-06-30 Richard Braakman * gwlib/gwmem-check.c: Fix call to free() in drop_from_free_ring(). This fixes a memory leak. 2000-06-29 Paul Keogh * gwlib/list.c: Removed unnecessary calls to lock() and unlock() in the list_cat() function as the called functions do the required locking. Locking the same lock twice causes a panic(). 2000-06-29 Richard Braakman * gw/wsp-session.c: Fixed memory leak in new capability code. 2000-06-29 Richard Braakman * gw/wap-appl.c: Applied fix suggested by Lim YoungLan, to make sure S-MethodInvoke.res is sent before any S-MethodResult, even if fetch_thread() is very fast. 2000-06-28 Richard Braakman * wmlscript/wsstdlib.c: Applied Joerg Pommnitz's patch to support WTAI standard library function calls, after converting it to the local indentation style. 2000-06-27 Kalle Marjola * doc/userguide/userguide.xml: did some updating, still needs to integrate newconf.txt and newbb.txt into it, but that some other day 2000-06-27 Paul Keogh * gw/cookies.c: Added a check for valid WSP session machine to prevent possible crash. 2000-06-26 Derry Hamilton * gw/cookies.c: casted char to int for several isspace() etc. calls. Stops the compiler complaining under Solaris. 2000-06-26 Kalle Marjola * Making out stable release 0.10, branched as 'release_0_10' 2000-06-26 Kalle Marjola * gw/smsc_smpp.c: small fix by Mikael Gueck 2000-06-21 Kalle Marjola * gw/bb_boxc.c: added on-line information about connected boxes in status query 2000-06-20 Kalle Marjola * README: added notes of what need to be done if Kannel version is upgraded from some old version 2000-06-20 Kalle Marjola * Making out development release 0.9.3, canditate as production release 0.10 2000-06-20 Kalle Marjola * gwlib/utils.c, gwlib/utils.h: moved #ifdef of cfmakeraw into header file so that it will compile in (my) system with cfmakeraw * gw/bb_boxc.c: updated output information of bocx_status * gw/bb_smsc.c: fixed compiler warning 2000-06-19 Kalle Marjola * gw/bb_boxc.c: fixed one very-infrequently striking lockout during shutdown * README.docbook: user --disable-docs, not --without-docs 2000-06-19 Derry Hamilton * gw/wsp-session.c: included limits.h to get LONG_MAX * gwlib/utils.c,gwlib/utils.h: created kannel_cfmakeraw() * gw/smsc_emi.c: removed cfmakeraw stub * gw/smsc_emi.c,gw/smsc_at.c,gw/smsc_sema.c: converted calls to cfmakeraw to kannel_cfmakeraw. 2000-06-19 Kalle Marjola * gw/wsp-session.c, gw/wsp_pdu.c: inserted patch from Joerg Pommnitz, now Kannel hopefully works better with Motorola Timeport. 2000-06-19 Kalle Marjola * gwlib/http.c: parse_url() modified to change start of the url tolower() so that comprasion to http:// succeeds even with HTTP:// 2000-06-19 Kalle Marjola * gw/bb_smsc.c: added suspend-mode to sms_router to synchronize start-up 2000-06-19 Yann Muller * gw/smsc.c, gw/smsc_p.h, gw/smsc_at.c: Applied Denis Hennessy's patch to support Siemens M20: connect at 19200 baud, added a 'pin = xxxx' entry to the conf file, fixed missing trailing null char in encode_pdu, added a dummy receiver address since smsbox requires one, added the dummy "00" SC prefix for the M20 (like the wavecom). 2000-06-17 Richard Braakman * Replaced capabilities parsing. New file gw/wsp_caps.[ch] defines a structure to represent capabilities, and some operations on it. WSP layer passes capability requests up to the Application layer, which can respond to some and ignore others. WSP layer then completes the capabilities reply when it generates the ConnectReply PDU. See negotiate_capabilities() function in wap-appl.c for more info. * Added CAPABILITIES type to wap-events and wsp-session-machine. * Added request_caps and reply_caps fields to WSP session machine, removed most of the other capability-related fields except client_SDU_size and MOR_push (which are the only ones we support and need to remember). * gwlib/octstr.[ch]: New function octstr_extract_uintvar. * gw/wsp-session.c: unpack_caps, unpack_uint8, and unpack_uintvar removed. * Removed unused SESSION_MACHINE type from wap-events. * test/drive_wapbox: Supply the same capability values as the Motorola Timeport does, for testing. * Corrected: gw/cookies.c:88: warning: char format, Octstr arg (arg 3) 2000-06-17 Richard Braakman * test/drive_wapbox.c: Defined wtp_types enum, because we can no longer steal the values we need from wtp.h. 2000-06-16 Aarno Syvänen * wtp.c: Fixed bug pointed out by Joerg Pommnitz * removed debug functions * wtp.c | wapbox.c: Code for separation added. Must test it ... 2000-06-16 Kalle Marjola * gw/cookies.c: changed strnicmp to strcasecmp, as nicmp is not supported in standard C libraries * gw/urltrans.c: fixed find-operations * gw/bb_smsc.c: added smsc_status 2000-06-16 Yann Muller * gw/smsc.c, gw/smsc_p.h: Added modemtype configuration parameter for the AT SMSC. * gw/smsc_at.c: Added support for Nokia PremiCell GSM modem. The parameter modemtype in kannel.conf can be set to 'wavecom' or 'premicell'. 2000-06-16 Paul Keogh * gw/cookies.c: updates after review by Richard Braakman. Also some additional includes. * gw/cookies.h: As for cookies.c * gw/wsp-session-machine.h: Added COOKIES field to session MACHINE * gw/wsp-session.c: Added cookie support to machine_create(), machine_destroy (). Also added id_belongs_to_session() function for use by cookie functions. * gw/wsp.h: Added cookie support to struct WSPMachine. 2000-06-15 Kalle Marjola * gw/smsbox_req.c: fixed bug in http2-conversion, and set that 'request failed' is send back to the phone (no more 'nothing') 2000-06-15 Richard Braakman * gw/wsp-strings.*: Interface for tables of constant strings defined in WSP. Not used yet. * gw/wsp-session.c: Got rid of append_uint8 and append_octstr; use basic octstr functions instead. 2000-06-15 Richard Braakman * gw/wap-appl.c: In fetch_thread(), explicitly set content.charset to an empty octstr if the http fetch failed, otherwise it remains uninitialized and causes a crash when octstr_destroy is called on it. Thanks to Paul Keogh for finding this. * gw/wsp-session.c: In wsp_disconnect_other_sessions(), use "Disconnect_Event" instead of "Disconnect". The latter is a PDU type, not an event type. Thanks to Paul Keogh for finding this. 2000-06-15 Aarno Syvänen * wtp.c: Bugfixes in error handlin * wtp_pdu.c: wtp_pdu_unpack must return NULL when header is not valid 2000-06-14 Richard Braakman * Filled in WSP state tables. Defined lots of new events. Sanitized event routing: WTP to WSP events get an addr_tuple. WSP to WTP events get a "handle" (as defined in the spec) which happens to be equal to the mid. WSP to APPL events contain the session id, and possibly a transaction id (as defined in the spec), which can be returned in the APPL to WSP events. No more mid or msmid fields. The transaction id is set equal to the handle gotten from the WTP layer, because that one's already unique. * Still missing: Push and Suspend/Resume. * gw/wap-appl.c: Handle all the new S- events and send back the proper replies. * gw/wsp-session.c: Moved method machines into the session machines. They can only be addressed via a session id and transaction id. The session machine can send events to all its method machines. Also added support functions for the WSP state tables. Implemented pre- and post- state machine checks, for more accurate handling of events without sessions, etc. * gw/wsp.h: Defined an enum for all the possible abort values. * test/drive_wapbox.c: Really disconnect clients after the right number of page fetches. (Used to do this only once per client.) 2000-06-14 Yann Muller * smsc_at.c: Fixed a memory leak in pdu_extract. Removed unused variables. 2000-06-14 Kalle Marjola * gw/html.c: fixed parsing bug in html_to_sms * utils/kannel-init.d: made to worship new configuration files 2000-06-14 Aarno Syvänen * wtp_send.c|h: wtp_do_not_send uses WAPAddrTuple type, too * wtp.c: Reimplement error handling 2000-06-14 Kalle Marjola * gw/smsbox_req.c: fixed split-send Octstr-wise, now it should work with CIMD2, too (and other new SMSC protocols?) 2000-06-14 Kalle Marjola * gw/bb_smsc.c: modified sleep in smsc receive to variable length, to increase performance 2000-06-14 Yann Muller * smsc_at.c: New SMSC for wireless modems (AT commands). * smsc.c, smsc_p.h: Added support for new AT SMSC. 2000-06-13 Kalle Marjola * gw/bb_boxc.c: (somehow) fixed pointer error pointed out by Paul Keogh. 2000-06-13 Richard Braakman * gw/wap-appl.c: Query list of charsets from the WML compiler, and use that instead of accessing the table as an extern. * gw/wml_compiler.[ch]: Added wml_charsets function. * gw/wap-appl.c: Continued simplifying fetch_thread, broke out a number of smaller functions. Made converters table only list actual converters, eliminated convert_to_self. * gw/wap-events-def.h: Made response_type an octstr. Convert it to the WSP encoding in the WSP layer, not the application layer. Moved encode_content_type function to wml.c. * gwlib/http.c: Reindented http_something_accepted and istrdup to fit with the rest of the code. * gwlib/http.h: Added prototype for http_charset_accepted. * gw/wap-appl.c: Created "content" struct to describe content body and meta-info. Made convert functions use it. Split off content conversion into a separate function that uses the table. 2000-06-12 Richard Braakman * Started simplifying fetch_thread function. * Add "X-WAP-Gateway: Kannel XXX" to requests, where XXX is the version number. 2000-06-12 Richard Braakman * Renamed http2 to http everywhere, because the old http code is completely gone. Removed --with-http2 configuration option. 2000-06-12 Tuomas Luttinen * gw/wml_compiler.c: Character set and string table length changed from chars to uintvars. Now WML compiler can handle string table length greater than 127. 2000-06-12 Richard Braakman * Making development release 0.9.2. * Commented-out some excessive logging. 2000-06-12 Aarno Syvänen * wtp_state-decl.h: TR-Abort.ind when timer counter has expired 2000-06-10 Richard Braakman * gwlib/gwmem-check.c: New implementation. This fixes the speed bottleneck that the old gwmem-check was, and it provides better checking and some extra features. * gwlib/gwmem.h: Slight changes for the new gwmem-check. New functions gw_check_area_size and gw_check_claim_area, which do not have macro wrappers yet. * gwlib/thread.[ch]: Add support for statically allocated Mutex structures. They are needed to break some dependency loops between the various wrappers (log.c needed protected.c, protected.c needed Mutex, Mutex needed gwmem, gwmem needed log.c) which made it impossible to shut them down correctly. * gwlib/protected.c, gwlib/gwmem-check.c: Use the new static mutexes. 2000-06-09 Tuomas Luttinen * gwlib/http2.c: A http request headers patch applied. * gw/wap-appl.c: A http request headers patch applied. * gw/wml_definitions.c: Character set conversion pathes added, see below. * gw/utf8map_iso8859-7.h: A conversion table for greek character set. * gw/utf8map_win1253.h: A character set added. * gw/utf8map_win1251.h: A russian character set added. * gw/utf8map_koi8r.h: A russian character set added. * gw/wml_compiler.c: A memory allocation loop removed from parse_attribute. 2000-06-09 Richard Braakman * gw/wap-appl.c: In fetch_thread, also clean up "url" octstr. This fixes the last big memory leak. I now get only a handful of leaked areas after 100 requests. 2000-06-09 Richard Braakman * gw/wsp-session.c: Fixed two of the memory leaks, still hunting for others. 2000-06-09 Richard Braakman * gwlib/http2.c: Fixed header_is_called() to return 0 for no match and 1 for match; simplified it in the process. I think this was the original intent, and it matches the function name. By a roundabout path this fixes the lack of "Accept: text/vnd.wap.wml" and such in the HTTP request headers Kannel generates. Adapted http2_header_find_first() to the new interface of header_is_called(). 2000-06-09 Richard Braakman * gw/wsp_pdu.c: Allow REST fields to be NULL when packing (treat them as length 0 strings). This was already done for OCTSTR fields. Thanks to Paul Keogh for fixing this. * gw/wtp_pdu.c: Make the same change for REST and OCTSTR fields as above. It's going to be difficult to keep this code in sync. 2000-06-09 Richard Braakman * gwlib/socket.c: Make read_available assert that fd >= 0, because otherwise it just segfaults. * gwlib/http2.c: Make pool_socket_is_alive return "not alive" for sockets < 0. This does not fix the whole problem but it keeps the wapbox from crashing here. * gwlib/list.c: Fix bug in delete_items_from_list which would corrupt the list in some cases. 2000-06-09 Kalle Marjola > * gw/bb_*.c: removed START and EXIT debug info as they are in new thread wrapper, too * gw/bb_boxc.c: fixed bugs in wdp-router and wapbox quit, and re-synchronized shutdown * gw/bearerbox.c, gw/bb_http.c: removed core_threads as new thread wrapper can be used to handle that. Fri Jun 9 08:31:18 2000 Lars Wirzenius * Separated the method state machine from the session state machine, to keep state tables in the source closer to the spec and to allow multiple fetches per client. * gw/wsp-method-machine.h, gw/wsp-session-machine.h: Split out from gw/wsp_machine-decl.h, now removed. * gw/wsp-method-state.h, gw/wsp-session-state.h: Split out from gw/wsp_state-decl.h, now removed. * gw/wsp-session.c: Added handling of WSPMethodMachines and correct routing of WAPEvents between the session and method state machines. This is a bit ugly, though. * gw/wap-appl.c, gw/wap-events-def.h, gw/wsp.h, gw/wtp.c: Related changes. Fri Jun 9 06:20:12 2000 Lars Wirzenius * gw/wtp.c: Combined wtp_machine_create and wtp_machine_create_empty. Fri Jun 9 05:39:06 2000 Lars Wirzenius * gw/wsp-session.c, gw/wsp_machine-decl.h, gw/wsp_state-decl.h: Removed `unused' field from WSPMachine, using state == NULL_STATE instead. Fri Jun 9 05:32:38 2000 Lars Wirzenius * gw/wap-events-def.h, gw/wtp.c, gw/wsp_state-decl.h: Removed unused exit_info and exit_info_present fields from WAPEvents. Fri Jun 9 05:28:12 2000 Lars Wirzenius * gw/wtp_state-decl.h: Enabled sending of TR-Abort.ind events to WSP. * gw/wtp.c: Removed (now unused) variable current_primitive. Fri Jun 9 05:18:07 2000 Lars Wirzenius * gw/wap-events-def.h: Finished breaking up pack_wsp_event into smaller functions. Fri Jun 9 05:10:20 2000 Lars Wirzenius * gw/wtp.c, gw/wap-events-def.h: Removed event TR_Invoke_Cnf since it wasn't used and is only generated on the client side. Fri Jun 9 04:58:02 2000 Lars Wirzenius * gw/wap-events-def.h, gw/wtp.c: Removed unused fields wsp_pdu and wsp_tid from various events. Then removed code that set and copied them between events. Fri Jun 9 07:44:25 2000 Lars Wirzenius * gw/wtp.c, gw/wtp_state-decl.h: Beginning the breaking up of pack_wsp_event function into smaller, more well defined ones. Fri Jun 9 06:48:42 2000 Lars Wirzenius * gw/wap-appl.c: Combine headers for HTTP request after the actual list of headers has been collected. Fri Jun 9 02:58:00 2000 Lars Wirzenius * Implemented WSP connectionless service. This meant moving things around a bit. The basic approach is to treat connectionless mode as a level in the protocol stack that is parallel to WTP and session oriented WSP. That is, connectionless mode gets events directly from wapbox.c and feeds them to wap-appl.c, and vice versa for replies. * gw/bb_udp.c: Read from port 9200 as well. * gw/wap-events-def.h: Added events S_Unit_MethodInvoke_Ind and S_Unit_MethodResult_Req. * gw/wapbox.c: Deal with connectionless packets as well. Feed them to wsp-unit.c. Also: trace packets received and sent, except for heartbeat packets. * wsp-session.c: The session oriented mode of WSP. I just moved relevants parts of wsp.c here and renamed them to use the wsp_session prefix. * gw/wsp-unit.c: The connectionless mode of WSP. * gw/wsp.c: Kept only stuff shared by wsp-session and wsp-unit. * gw/wap-appl.c: Deal with both S-MethodInvoke.ind and S-Unit-MethodInvoke.ind events. Fri Jun 9 02:46:53 2000 Lars Wirzenius * gw/wap-events.[ch]: Changed the WAPEvent sub-structures to be held inside a union, to reduce amount of space used. Related changes everywhere WAPEvents are used. 2000-06-08 Richard Braakman * test/drive_wapbox.c: Added option -g N to try more than one page fetch per WSP session. Improved tid checking so that it will catch the tid inversion bug (fixed below) in the future. * gw/wapbox.c: Make wap_addr_tuple_duplicate handle a NULL argument by returning NULL, like most other _duplicate functions. * gwlib/http2.c: Make http2_append_headers copy the headers it appends, so that http2_destroy_headers can safely be called on the result. 2000-08-07 Aarno Syvänen * wtp_state-decl.h: Removed machine_mark_unused calls 2000-06-07 Richard Braakman * gw/wtp_send.c: Invert the MSB of the received tid when sending, to comply with WTP 8.8.1. This fixes a bug introduced two days ago. 2000-06-07 Richard Braakman * gw/wtp.c: Also destroy the event queue at shutdown. 2000-06-07 Richard Braakman * gwlib/gwthread-pthread.c: Fixed silly bug in yesterday's patch. 2000-06-07 Derry Hamilton * test/fakewap.c: Running fakewap too quickly messes up thread-control signal handling under Solaris. Ignore SIGALRMs, they are not meant for us. 2000-06-06 Richard Braakman * gwlib/gwthread-pthread.c: Information for main thread is now allocated statically, so that we don't have to deallocate it at shutdown. This way we can keep it around so that gwthread_self continues to work as expected even during shutdown. 2000-06-06 Richard Braakman * Making development release 0.9.1. 2000-06-06 Richard Braakman * gwlib/gwlib.c: Patch gwlib_assert_init so that it works if NDEBUG is on. * gwlib/octstr.c: Patch seems_valid macro so that it does nothing if NDEBUG is on. 2000-06-06 Tuomas Luttinen * gw/wsp.c: append_uintvar removed, calls to it were changed to octstr_append_uintvar. * gw/utf8map_win1257.h: A new file from the Latvian localisation patch. * utils/win1257unicode.txt: A new file from the Latvian localisation patch. * utils/utf8map.pl: A new file from the Latvian localisation patch. * gw/wml_definitions.h: Latvian localisation patch applied. * gw/wml_compiler.c: Latvian localisation patch applied. Tue Jun 6 15:43:31 2000 Lars Wirzenius * gw/wsp_state-decl.h: Bugfix. The mid for a S_MethodInvoke_Ind was copied from a tid. Oops. Tue Jun 6 15:11:14 2000 Lars Wirzenius * wap-events-def.h, gw/wsp.c, gw/wtp.c: Some events are generated by WTP immediately before it kills the WTPMachine. We used to fetch the address information for those WTP transactions from the WTPMachine after the machine had been killed. This was a bug. I changed the relevant events to supply the necessary information in the event, so that the WTPMachine is no longer needed. Tue Jun 6 12:28:48 2000 Lars Wirzenius * gw/wap-appl.c, gw/wap-events-def.h, gw/wap-events.c, gw/wap-events.h, gw/wapbox.c, gw/wapbox.h, gw/wsp.h, gw/wsp_machine-decl.h, gw/wtp.c, gw/wtp.h, gw/wtp_machine-decl.h, gw/wtp_send.c, gw/wtp_tid.c: Made more use of WAPAddrTuple. Tue Jun 6 11:37:22 2000 Lars Wirzenius * gw/wap-appl.c, gw/wap-events-def.h, gw/wap-events.[ch]: Replaced member `machine' (a pointer to a WTPMachine) to `mid' and `tid' (integers), so as to remove direct references to WTPMachines from outside the WTP layer. * gw/wtp.[ch]: Added function wtp_get_address_of for finding the address of a machine given its id (mid). * gw/wapbox.[ch]: Added data types WAPAddr and WAPAddrTuple, for holding addresses of phone and gateway, and functions for creating and destroying them. * gw/wsp_state-decl.h: Made use of mid instead of machine. * gw/wsp.c: Made light use of WAPAddrTuple. Made use of mid everywhere, instead of pointers to WTPMachines. Tue Jun 6 08:44:13 2000 Lars Wirzenius * test/decompile.c: Added return type (void) to function OutputEncodedString. 2000-06-05 Richard Braakman * gw/wsp_pdu.[ch]: Added wtp_pdu_append_tpi function. * gw/wtp_send.c: Continued conversion to use of wtp_pdu. Next step is to handle resends better, but that requires changes to the state machines. 2000-06-05 Richard Braakman * gwlib/conn.[ch]: Change conn_flush interface so that it can block, and tries to send all queued output. This makes it more useful for threads that only want to do output and do not want to wake up for input. * gwlib/gwthread-pthread.c: Make gwthread_pollfd return -1 when poll() fails with EINTR, instead of 0, so that 0 can be relied on to mean timeout. 2000-06-05 Richard Braakman * gwlib/conn.c: Implemented conn_open_tcp(). Fixed conn_read_withlen, which I broke a few days ago. * gwlib/conn.c: Split the single Connection lock into two locks, one for reading and one for writing. This allows reader and writer threads to work without fighting over one lock. Only conn_wait needs both locks. * test/drive_wapbox.c: Take advantage of some new octstr functions. 2000-06-05 Richard Braakman * gwlib/gwthread.h, gwlib/gwthread-pthread.c: Renamed gwthread_join_all to gwthread_join_every, and added a gwthread_join_all that joins ALL threads. Added gwthread_wakeup_all to match. * gwlib/gwthread-pthread.c: Fix use of pipe(); reading and writing fd's were reversed. 2000-06-05 Richard Braakman * gw/wsp.c: Installed Joerg Pommnitz's patch for correct parsing of WSP capabilities. 2000-06-05 Tuomas Luttinen * test/decompile.[ch]: A WML decompiler by Chris Wulff, Vanteon. * test/wml_tester.c: A patch by Chris Wulff, Vanteon added to produce pure binary files. A little cleanup. 2000-06-05 > * gw/bb_smsc.c: changed sleep(1) to usleep. A bit more busier loop, that new interface is really needed * gw/numhash.c: removed some warnings Mon Jun 5 10:32:41 2000 Lars Wirzenius * gw/wtp.c: Fixed bug that was caused by not duplicating an octet string while copying it. Also fixed a memory leak. * gw/wtp_pdu.[ch]: Added function wtp_pdu_create. Also added wrappers around wtp_pdu.h to prevent problems when including many times, and added an include for gwlib/gwlib.h, so that the caller does not have to deal with that. * gw/wtp_send.c: Started conversion to using wtp_pdu.c instead of packing everything by hand. The basic PDUs are now converted. The negative ACK and some other ones are not, because I wasn't certain how they work, right now, and am too tired to understand the spec (probably too tired to hack, but I ran a fakewap test after each change to make sure I didn't break things too badly). Sun Jun 4 07:32:59 2000 Lars Wirzenius * Re-vamped the WTP layer to use a thread structure similar to WSP. All code referring to segmentation and re-assembly has been deleted (this was simpler for me - it wasn't used anyway, and we can dig it out of CVS if we want it later). Error handling also suffered, but on the other hand, the current structure should be easier to make robust. * gw/wap-events-def.h: Events generated from PDUs now have the address of the client and the gateway included in the event. This means we can use a trivial wtp_dispatch_event function interface, without having to carry around the addressing information separately. Other events that the WTP layer may receive include a `mid' (machine id) field for finding the correct WTPMachine. The ultimate goal it so make the WTPMachine data type hidden within WTP, so that there are no direct pointers to the machines. * gw/wapbox.c, gw/wsp.c, gw/wsp_state-decl.h: Use wtp_dispatch_event to send an event. * gwlib/gwthread-pthread.c: Commented out call to pthread_setspecific that was hanging shutdown. The real reason is probably somewhere else, but I didn't find it, so this workaround is used to make things at least seemingly work. Sun Jun 4 04:38:02 2000 Lars Wirzenius * gw/wsp.c, gw/wsp_state-decl.h: Use WSP_PDU's, instead of packing things ourselves, as far is possible. Some fields have special packing encodings, those we do partly ourselves still. * gw/wsp_pdu.c: Don't crash if OCTSTR field is NULL, just ignore it. Sun Jun 4 03:45:45 2000 Lars Wirzenius * gw/wap-events.c: wap_event_dump now reports name of Octstr fields. * gw/wsp_pdu.c: bit position is advanced correctly when unpacking a Uintvar. Also, dump tells when the dump ends. * gw/wsp_state-decl.h: Duplicate the URL octet string. Sun Jun 4 02:36:10 2000 Lars Wirzenius * gw/wsp_pdu.[ch]: Added function wsp_pdu_create, which creates an (empty) PDU of the desired type. Made the warning about an unknown PDU type in wsp_pdu_destroy be a panic instead. * gw/wsp.c, gw/wsp_state-decl.h: Converted to use wsp_pdu.[ch] for unpacking. We have issues with packing: at least some fields need to be packed in a special way, and this needs to be handled in a clean way. Sun Jun 4 01:03:55 2000 Lars Wirzenius * gwlib/protected.[ch]: Added wrapper for gethostbyname. * gwlib/socket.c: Made use of wrapper. Sun Jun 4 00:52:22 2000 Lars Wirzenius * gwlib/protected.[ch]: Wrote thread-safe wrappers around standard library functions gmtime, localtime, and rand. Note that this is just a beginning, we should wrap many more functions. * gw/urltrans.c, gwlib/gwlib.[ch], gwlib/log.c: Made use of the wrappers. Sun Jun 4 00:20:19 2000 Lars Wirzenius * gw/numhash.c: Added typecasts to silence compiler warnings. Kalle, please fix it properly so it uses unsigned chars. Sun Jun 4 00:06:23 2000 Lars Wirzenius * gw/wap-events.c: Added assertions to wap_event_name. Added calls to wap_event_assert. Event duplication now also works for NULL arguments. Fixed wap_event_assert (i.e., reduced the number of checks it makes - it was overly aggressive). * gw/wsp.c: Added calls to wap_event_assert. 2000-06-03 Richard Braakman * gwlib/octstr.[ch]: Added octstr_append_uintvar. * gw/wsp_pdu.[ch], gw/wsp_pdu.def: Do the same for WSP PDU's. * gw/wtp_pdu.c: Bugfixes. * test/test_pdu.c: Test WSP data too. 2000-05-31 Richard Braakman * gwlib/octstr.[ch]: Added octstr_get_bits and octstr_set_bits. * gw/wtp_pdu.[ch], gw/wtp_pdu.def: Deliberate preprocessor abuse to automate PDU packing and unpacking. First draft; works for simple test cases, needs more documentation. Not used by anything else yet. * test/test_pdu.c: Test program for above. 2000-05-31 Tuomas Luttinen * gw/wml_compiler.c (string_table_add): A bug fixed. The string didn't match any in the table, since it didn't have a termination character at the end of it as those in the table. Also string has to be destroyed if it has already a duplicate in the table. 2000-05-30 Kalle Marjola * gw/bb_smsc.c: added white and black lists. * doc/userguide/newconf.txt: added 'documentation' about white and black lists 2000-05-30 Kalle Marjola * gw/numhash.h|c: exported numhash from old smsgateway and edited it to work with new http2 and Octstrings, plus removed some functions. Next: implement white/black-list 2000-05-29 Richard Braakman * gw/smsbox_req.c: Fixed silly mistake. 2000-05-29 Richard Braakman * gwlib/conn.c: Implemented conn_read_packet(). 2000-05-29 Richard Braakman * gw/bb_boxc.c: If listening socket cannot be opened, handle it by panicking rather than segfaulting. 2000-05-29 Tuomas Luttinen * gw/wml_compiler.c: #ifdefs added to supprt libxml2. Does compile, but does not work with it, yet. WapIT -> Wapit * gw/wml_definitions.h: WapIT -> Wapit * gw/wml_compiler.h: WapIT -> Wapit * configure.in: libxml2 added. 2000-05-29 Richard Braakman * gw/smsc.c: Made bearerbox not crash if "smsc" field is missing from smsc config. * gwlib/gwthread-pthread.c: Comment around previous change was inaccurate; it was an fd leak on Linux too. 2000-05-29 Derry Hamilton * gwlib/gwthread-pthread.c: Added some system cleanups to delete_threadinfo. Threads are not always processes! 2000-05-29 Kalle Marjola * gw/bb_boxc.c: fixed possible problem in box shutdown and added multiple wapbox routing. It is, however, not done according to load levels, just random distribution. Load balancing later. 2000-05-29 Richard Braakman * test/fakewap.c: Use gwthread_join_all to wait for client threads to terminate. 2000-05-29 Richard Braakman * gwlib/gwthread-pthread.c: In new_thread, free its argument a bit earlier, to avoid a race with gw_check_leaks. (This caused seemingly random memory leak reports). * gwlib/conn.c: Use gwthread_pollfd instead of calling poll directly. 2000-05-29 Richard Braakman * gwlib/gwthread-pthread.c: Made gwthread_create fail gracefully if there are more active threads than the module can handle, rather than panicking. Sat May 27 06:39:51 2000 Lars Wirzenius * gw/wap-events.[ch]: Added wap_event_assert function. Sat May 27 02:50:09 2000 Lars Wirzenius * gwlib/gwthread.[ch]: Added function gwthread_join_all, which joins all threads running a specific function. * gw/wap-appl.c, gw/wapbox.c, gw/wsp.c: Use gwthread_join_all to synchronize shutdown properly. Sat May 27 02:05:41 2000 Lars Wirzenius * gw/wap-events.c: Only the fields for the correct event type are dumped by wap_event_dump. * gw/wapbox.c: Uncommented code to get heartbeat-freq setting from config. Added some shutdown code. NOTE: The wapbox does not currently shutdown correctly. Thread termination synchronization is not done and this causes a segfault at the end. Will hack that next. * gw/wap-appl.c: Event queue is emptied and destroyed at shutdown. * gw/wsp.c, gw/wsp_state-decl.h, gw/wtp_state-decl.h: Work started on making a global event queue for all WSPMachines. wsp_dispatch_event now the only external method for sending events to WSP. Its interface has been changed so that it only gets the event and will look inside the event to find addressing info - the WTPMachine is no longer needed to be given as the argument for this. A number of previously available functions are now static and must only be used from within the WSP layer. Sat May 27 02:02:33 2000 Lars Wirzenius * gwlib/gwthread.h, gwlib/gwthread-pthread.c: Name of function made as the name of the thread. Fri May 26 21:05:29 2000 Lars Wirzenius * utils/start-stop-daemon.c: Added pid_is_cmd for FreeBSD. Fri May 26 21:01:41 2000 Lars Wirzenius * gwlib/http2.c: Compare header names case-insensitively. Fri May 26 20:47:06 2000 Lars Wirzenius * gw/wap-appl.h: Moved to gw/wsp.h. Don't want a zillion small .h files, after all. * gw/wsp.h: Added prototypes for the application layer. 2000-05-26 Richard Braakman * gwlib/conn.c: Converted conn_claim() stuff to use new thread interface. * gwlib/gwthread-pthread.c: Bugfix, make sure the main thread can still safely call gwthread_self after shutdown, so that gwmem layer can log stuff. * gwlib/thread.c: Converted mutex->owner to use new thread interface. Fri May 26 20:34:01 2000 Lars Wirzenius * gw/wap-appl.[ch]: Wrote. This is the new application layer. This version is ugly - essentially I just moved code in here from the old wsp_http.c - but I want to clean it up before I break it further. * gw/wsp_state-decl.h: Use S_MethodInvoke_Ind instead of S_MethodInvoke_Res and wap_appl_dispatch instead of wsp_http_thread. * gw/wap-events-def.h: Added S_MethodInvoke_Ind, removed most fields from S_MethodInvoke_Res, since they're now unnecessary. * gw/wapbox.c: Starts the application layer. * gw/wsp.c: Added #include for wap-appl.h. * gw/wsp.h: Removed prototype for wsp_http_thread. * gw/wsp_http.c: Removed. Fri May 26 19:05:09 2000 Lars Wirzenius * gw/wap-events.[ch], gw/wap-events-def.h: Combined WTPEvent and WSPEvent into a unified WAPEvent. This makes it slightly easier to find the events (no need to wonder whether a TR-Invoke.ind is a WTP or WSP event, for example), and reduces code duplication a bit. * gw/wsp_events-decl.h, gw/wtp_events-decl.h: Removed. * Lots of files: WTPEvent and WSPEvent and related function calls changed to WAPEvent and its functions. * gwlib/http2.c: http2_header_dump works now even with a NULL argument. 2000-05-26 Richard Braakman * gwlib/gwthread.h: New thread interface. Encapsulates thread creation, and provides features for interruptible sleeping and blocking. Can eventually be extended to wrap all of pthreads, if desired. * gwlib/gwthread-pthread.c: Implementation of thread interface with pthreads. * gwlib/gwlib.h: Include gwthread.h too. * gwlib/gwlib.c: Initialize and shut down gwthread module along with the rest. * gw/bb_boxc.c, gw/bb_http.c, gw/bb_smsc.c, gw/bb_udp.c, gw/bearerbox.c, gw/smsbox.c, gw/smsbox_req.[ch], gw/wapbox.c, gw/wsp.h, gw/wsp_http.c, gw/wsp_state-decl.h, test/drive_wapbox.c, test/fakewap.c, test/test_counter.c, test/test_http2.c, test/test_http2_server.c, test/test_list.c: Use gwthread_create instead of start_thread. Thread functions are now void functions instead of (void *) functions, so removed all the "return NULL" and changed the declarations. Use long instead of pthread_t as the thread identifier. Use gwthread_join instead of pthread_join. * gwlib/log.c: Use gwthread_self() instead of pthread_self() to get the thread number to log. * gwlib/thread.[ch]: Removed start_thread function. Fri May 26 17:14:18 2000 Lars Wirzenius * doc/arch/wapbox-arch.fig: New figure showing the planned wapbox architecture. (Not visible in the actual documentation yet, though.) Fri May 26 16:59:03 2000 Lars Wirzenius * gwlib/http2.c: Destroy temporary header list in http2_type_accepted. Thu May 25 21:46:04 2000 Lars Wirzenius * gwlib/http.[ch], test/test_http.c: Removed. * gwlib/http2.[ch]: Added a number of header handling functions. Also added many assertions. * gw/wsp.[ch], gw/wsp_headers.[ch], gw/wsp_http.c, gw/wsp_state-decl.h: Converted to use http2 instead of http for header handling. 2000-05-25 Kalle Marjola * gw/bb_smsc.c: fixed some lock-ups during violent shutdown 2000-05-25 Richard Braakman * test/fakewap.c: Sanitized tid handling. It's now local to the client thread, rather than global. Each client should have its own tid space anyway. Thu May 25 18:45:15 2000 Lars Wirzenius * gwlib/gwlib.[ch]: gwlib_shutdown now always calls gw_check_leaks, to check for memory leaks. Added function gwlib_assert_init, to allow gwlib code to verify that gwlib has been initialized. * gw/bearerbox.c, gw/smsbox.c, gw/wapbox.c, test/drive_wapbox.c, test/fakesmsc.c, test/fakewap.c, test/test_cimd2.c, test/test_counter.c, test/test_http.c, test/test_http2.c, test/test_http2_server.c, test/test_list.c, test/test_mem.c, test/test_msg.c, test/test_udp.c, test/test_urltrans.c, test/wml_tester.c: Fixed to call gwlib_init and gwlib_shutdown instead of gw_init_mem and gw_check_leaks. * gwlib/octstr.c: Call gwlib_assert_init in seems_valid. Thu May 25 16:52:22 2000 Lars Wirzenius * gw/bb_smsc.c: Removed unused variable `ret'. 2000-05-25 Kalle Marjola * gw/smsc.c, gw/smsc.h, gw/smsc_p.h, gw/bb_smsc.c: removed old dial-prefix (use global unified-prefix) and route-prefix, and added new denied-prefix and preferred-prefix, see details from documentation * doc/userguide/newconf.txt: added notes of preferred-preix and denied-prefix 2000-05-25 Kalle Marjola * gw/smsc.h|c: got rid of bb_msg * gw/bb_smsc.c: modified to use just plain Msg * gw/bb_msg.*, gw/boxc.*, gw/wdp_udp.*: removed, not used anymore 2000-05-25 Kalle Marjola * gw/bb_smsc.c: added number normalization/unifying, via configuration variable unified-prefix. * doc/userguide/newconf.txt: added explanation of unified-prefix 2000-05-25 > * gw/*box.c: changed default configuration file to be kannel.conf. Please note that there is NO such file, but two sample files, smskannel.conf and wapkannel.conf 2000-05-24 > * doc/userguide/userguide.xml: Removed old configuration file things, read the newconf.txt file. Did same to HTTP adminstration notes, read file newbb.txt * doc/arch/arch-bearerbox.xml: Rewrote to reflect the new bearerbox. Have to do it a bit more deeply someday, however. And pictures, too. * gw/wsp.c: Applied a short WSP header patch by Joerg Pommnitz to handle broken headers from Timeport * test/simple.smsconf: removed 2000-05-24 Richard Braakman * gw/wsp_http.c: Fixed Accept header scanning in wsp_http_thread. 2000-05-24 > * doc/userguide/newconf.txt: added documentation about new configuration file * doc/userguide/newbb.txt: added documentation about new bearerbox * gw/bearerbox.c: moved new bearerbox into final name, old bearerbox removed from the project * gw/smskannel.conf, gw/wapkannel.conf: added new sample configurations * gw/kannel.*conf: removed old configuration defination files * test/sample.*conf: removed old sample configurations * gw/smsbox.c, gw/urltrans.c, gw/wapbox.c: edited to use new configuration file * README: updated 2000-05-24 Richard Braakman * test/test_cimd2.c: Written a while ago, added to CVS today. Might be useful for people doing speed tests of sms handling. 2000-05-23 > * gwlib/http2.c|h: moved destroying functions here, and changed so that http2_socket_host does not duplicate the octstr but returns reference * gw/bb_http.c: check for password of the admin * gw/smsbox*.c moved cgi and destroy functions to http2 2000-05-23 > * gw/bb_http.c: check for allow/deny IP for http admin 2000-05-23 > * gwlib/socket.h|c: added host_ip to get, well, host IP. That needed mutex because ntoa operation is not thread-safe, so added socket_init and shutdown, too * gwlib/gwlib.c: calls to socket_init and shutdown * gwlib/http2.c: get client host IP * gwlib/utils.c|h: added is_allowed_ip function * gw/bb_core.c: options -S and -I to start new bearerbox in suspended or isolated state * gw/bb_boxc.c: check for client allowed/denied IP 2000-05-23 Richard Braakman * test/drive_wapbox.c: Fix free-port-hunting code for fake httpd. 2000-05-23 Richard Braakman * gw/smsc_cimd2.c: The maximum message length was always set to 140. It should be 160 for normal (non-UDH, non-8bit) messages. Fixed. 2000-05-22 > * gwlib/utils.c|h, gw/bearerbox.c: moved normalize_number to utils module from old bearerbox * gwlib/http2.h|c: first version of http2_socket_ip, although not yet working with servers, beware 2000-05-22 Richard Braakman * gwlib/conn.h, gwlib/conn.c: Made output buffering explicit instead of hidden in the interface. (We can't hide it with 100% correctness if there are multiple threads using the Connection, not all of which are in a conn_wait loop). Added conn_output_buffering and conn_flush functions. * test/drive_wapbox.c: Made the fake httpd return a real wml page, for better testing. (This exercises the WML compiler). Cleaned up some memory leaks. 2000-05-22 Richard Braakman * gwlib/conn.h, gwlib/conn.c: Extended to handle end-of-file better. Added conn_eof function. * test/drive_wapbox.c: Use conn_eof. 2000-05-22 Richard Braakman * test/drive_wapbox.c: Make setting the U/P flag optional, with the -U flag, because Kannel no longer (erroneously) requires it. Also have its internal httpd supply a Content-Type header. 2000-05-22 > * gwlib/http2.c|h: implemented function http2_destroy_headers * gw/bb_core.c: some update to status information * gw/bb_http.c: fixed last memory leaks, now the new system should not leak memory at all. Still misses cgibin arguments because of the lack of operations in http2. 2000-05-18 Richard Braakman * wmlscript/wsfalloc.c: Make ws_f_malloc return blocks aligned to sizeof(long), to prevent unaligned accesses. This should fix the bug reported by Lim YoungLan, but I can't test that here. 2000-05-17 > * gwlib/counter.c|h: renamed counter_get as counter_increase and added function counter_value. * test/test_*.c, gw/wsp.c: changed counter functions * gw/smsc.c, gw/smsc_fake.c: started a project that smsc_close will eventually free all memory it has reserved. Fake does this already, rest do not, and close is a bit weird for those right now. * gw/bb_*.c: added counters for messages, fixed some timing problems. 2000-05-17 Tuomas Luttinen * gw/wml_compiler.c: Now variables use the string table. Some fixing for reducing numbers of the memory allocations and reallocations is needed. 2000-05-17 > * gw/bb_*.c: Some final cleanup added * gw/smsc_fake.c: smsc_close now destroyes eveyrhing. Should add this functionality to other SMSCes, too, and rename it as _destroy 2000-05-17 Richard Braakman * test/drive_wapbox.c: Memory leak now fixed. Added includes needed by accept(). 2000-05-17 Aarno Syvänen * wtp_state-decl.h: Two bugfixes: rid to 0, when the result is sended first time (thanks to Oliver Lau), conditions checking whether u/p-flag is up corrected. 2000-05-16 > * gwlib/list.c|h: added function list_producer_count * gw/bb_*.c: smsc thingies are now somehow working. Does not work very well with multiple smsces, however. 2000-05-16 Tuomas Luttinen * gw/wml_compiler.c: Memory leaks with variables removed. String table code mostly done, nrext thing is to start to use it. * gwlib/octstr.[ch]: octstr_create_tolower removed as unnecessary. 2000-05-15 Richard Braakman * gwlib/conn.[ch]: Found some more things to fix while writing drive_wapbox. Interface is almost stable now. * gwlib/thread.c: Added some assertions for mutex not being NULL. 2000-05-15 Richard Braakman * test/drive_wapbox.c: A tool to run the wapbox in isolation, for easy profiling. 2000-05-15 > * gw/bb_*.c: Now most memory leaks are fixed, the new bearerbox dies quite nicely and can handle exiting wapboxes and new connections. Still needs much testing and there is some mysterios things not freed at the end, so back to work. Mon May 15 16:07:00 2000 Lars Wirzenius * gw/wsp_http.c: Report character set when fetch is successful. * gwlib/http2.c: Fix parsing of character set from Content-Type. * test/test_http2.c: Report reply headers. Mon May 15 15:59:32 2000 Lars Wirzenius * gw/wsp_http.c: Do not require resp_headers to be non-NULL. Instead, only destroy it if it is non-NULL. Fixes bug #69 by Kalle Marjola. Mon May 15 15:06:16 2000 Lars Wirzenius * gw/wsp_http.c: Undid broken changes to how HTTP headers are generated. * gwlib/http2.c: Dump to log file the headers used in the request. 2000-05-15 Richard Braakman * wsp_http.c: octstr_destroy(key_os) and (value_os) moved into the loop, so that it's not a memory leak. 2000-05-11 Aarno Syvänen * wsp_http.c: Using octstr_compare instead of strstr in conditional header addition. There was some curious problem with strstrs. * wsp.c: Changed Can't handle event error code to 0xEO. This is user protoerr. Fri May 12 Derry Hamilton * fakewap.c: Added -F switch which enables continue on fail rather than exit on fail. (Stress testing) 2000-05-11 > * gw/bb_*.c: suspend and isolate status now in work. System still leaks memory somewhere and some things are missing, but WAP browsing works fine with new bearerbox. 2000-05-11 Richard Braakman * configure.in, configure: Made it not look for getloadavg.c on systems that have no getloadavg(). 2000-05-11 > * gw/bb_http.c: Oooops, added * gw/bb_*.c: added signal trapping and (shutdown) flow-control. Still need some new List operations to free all memory while exiting. 2000-05-10 > * gw/bb_*.c: and more, now some HTTP adminstration 'works' (implementation partial in other modules) Tue May 9 Derry Hamilton * gw/wapbox.c,configure.in,configure: Updated getloadavg bits to search for getloadavg, rather than just assume that it exists on Solaris. * utils/start-stop-daemon.c: Fixed typo. Tue May 9 23:03:26 2000 Lars Wirzenius * gwlib/gwmem-check.c: Fixed so that fill doesn't have a pointer alignment bug. Tue May 9 22:53:22 2000 Lars Wirzenius * gwlib/http2.c: Bugfix. Host header should include port number if the URL had a non-default one. Tue May 9 20:53:25 2000 Lars Wirzenius * gw/wsp_http.c: Report status code returned by http2_get_real if it fails. * gwlib/http2.c: Added includes for sys/types.h and sys/socket.h. This should silence warnings about accept being undeclared. Tue May 9 20:01:45 2000 Lars Wirzenius * configure.in: Make it allow random junk before the version number in the output of xml-config. Based on patch from Gus . 000-05-09 Derry Hamilton * gwlib/socket.c: Changed the calls to info to calls to error when something has gone wrong. * gwlib/list.c: Added gw_asserts to some of the list functions. The problem is higher up, though. * gw/wsp_http.c: Added gw_asserts to some of the URL handling a call to an invalid protocol causes problems. Tue May 9 19:31:44 2000 Lars Wirzenius * utils/start-stop-daemon.c: Hand-applied patch from David Reid for FreeBSD support. No way to test if I did it correctly, hopefully kannel-nag or a FreeBSD user will complain. 2000-05-09 Richard Braakman * gw/smsc.c: system-type and address-range are also required for SMPP configurations. 2000-05-09 > * gw/bb_*.c: something new, many things still missing 2000-05-09 Richard Braakman * gwlib/conn.c, gwlib/conn.h: Added octstr_read_withlen and octstr_write_withlen. Also fixed errors in unlocked_get(). 2000-05-09 Derry Hamilton * gw/wapbox.c, configure.in, configure, utils/start-stop-daemon.c: Cleaned up SunOS definition 2000-05-08 Derry Hamilton * gw/wapbox.c: Implemented load reporting for Solaris 2000-05-08 Richard Braakman * Made all sig_atomic_t variables volatile, because there is no reason to use sig_atomic_t otherwise. 2000-05-08 Richard Braakman * gwlib/conn.c: Commented static functions. Added unlocked_outbuf_len and unlocked_inbuf_len helper functions. Added unlocked_try_write helper function, to implement output buffering. Implemented conn_wait. 2000-05-08 Richard Braakman * test/fakewap.c: Fixed -n flag. 2000-05-07 Derry Hamilton * gwlib/socket.c: Fixed tv_usec > 1000000 handling. 2000-05-05 > * gw/bb_smsc.c: Now it is half done. However, the old smsc_interface should be redone, now idea to use old rq-items anymore in new design. Back to work on Monday * gw/bb_*.c: fixed some places causing warnings 2000-05-05 Aarno Syvänen * wtp_tid.c|h: Module now uses list standard functions * wtp_state-decl.h: Commented 2000-05-04 > * gw/bb_core.c: logfiles * gw/bb_boxc.c: added basic routing thingies, now it only needs some load balancing to wap side, otherwise this module is about complete.. oh I forgot the dynamic configuration, but that later - the old one does not have it either * gw/bb_udp.c: added routing, now this function is about ready, except dynamic configuration and some testing etc. 2000-05-04 Richard Braakman * gwlib/conn.c, gwlib/conn.h: Got rid of network_long functions. The interface is so awkward that it's just as easy for the caller to fill a 4-octet buffer and provide that. * gwlib/octstr.h, gwlib/octstr.c: Added functions octstr_write_data and octstr_append, used by the new Connection code. * gwlib/http2.c: Removed static octstr_append, superseded by the one in the octstr module. * gwlib/conn.c, gwlib/conn.h: conn_read interface was not useful. Renamed to conn_read_fixed(), made it return exactly the number of bytes specified. * gwlib/conn.c code fleshed out some more, but several functions still not implemented. 2000-05-04 Richard Braakman * gw/wsp_http.c: In wsp_http_thread(), do not destroy charset until after it is used by the converters. Thu May 4 18:35:24 2000 Lars Wirzenius * 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 can be compiled. This does NOT do anything, yet. * VERSION: version 0.1 set