- 17 Oct, 2006 1 commit
-
-
Per Cederqvist authored
and use them when accessing database files. This is a preparatory step for introducing "struct dbfile", which will enable lyskomd to manipulate more than one database file format at the same time. That ability is needed for solving bug 1616. * src/server/ram-io.c, src/server/ram-io.h: New files. (dbfile_ftell): New function. (dbfile_getc): New function. (dbfile_ungetc): New function. * src/server/Makefile.am (libcheck_a_SOURCES): Added ram-io.c. (lyskomd_SOURCES): Added ram-io.h and ram-io.c. (DBCK): Added ram-io.h and ram-io.c. * src/server/simple-cache.c (read_person): Check the return value from fparse_set_pos(). (read_conference): Ditto. (read_text_stat): Ditto. (write_conf): New static function. (save_one_conf): Use it to simplify code. (write_text): New static function. (save_one_text): Use it to simplify code. * src/server/ram-parse.h, src/server/ram-parse.c (fparse_set_pos): New function. * src/server/ram-output.c: Include ram-io.h. (foutput_space): New static function. Use it where appropriate. (foutput_bool): Ditto. (foutput_array_start): Ditto. (foutput_array_end): Ditto. (foutput_array_nodata): Ditto. * src/server/ram-output.h, src/server/ram-output.c (foutput_atsign): New function. (foutput_newline): New function. * src/server/dbck-cache.c: Include ram-io.h. Use dbfile_getc() instead of getc(), dbfile_ungetc() instead of ungetc(), and dbfile_ftell() instead of ftell(), when accessing the database file. Use foutput_atsign and foutput_newline when appropriate. * src/server/local-to-global.c: Ditto. * src/server/ram-parse.c: Ditto. * src/server/simple-cache.c: Ditto.
-
- 01 Oct, 2006 1 commit
-
-
Per Cederqvist authored
size. (Bug 168). * src/server/simple-cache.c (read_person): Sanitycheck the supplied size.
-
- 29 Sep, 2006 1 commit
-
-
Per Cederqvist authored
size. (Bug 169). * src/server/simple-cache.c (read_conference): Sanitycheck the supplied size.
-
- 28 Sep, 2006 1 commit
-
-
Per Cederqvist authored
Added error code 62=aux-exists, 63=aux-bad-object, 64=illegal-aux-data, 65=aux-create-only, 66=aux-modify-only, 67=aux-server-only, 68=aux-data-exists and 69=aux-no-such-text. Return proper error codes. (Bug 192). * doc/Protocol-A.texi (Predefined Aux-Item Types): Renamed the error code illegal-aux-item to illegal-aux-item-tag. (create-text): Updated the error code section to mention the aux-related error codes illegal-aux-item-tag, aux-item-permission, aux-exists, aux-bad-object, illegal-aux-data, aux-modify-only, aux-server-only, aux-data-exists and aux-no-such-text instead of only illegal-aux-item and aux-item-permission. Refer to the "Error Codes" node instead of duplicating the reasons here. (create-anonymous-text): Ditto. (create-conf): Ditto. (create-person): Ditto. (modify-text-info): Ditto, but with aux-create-only instead of aux-modify-only. (modify-conf-info): Ditto. (modify-system-info): Ditto. (Error Codes): Renamed error code 48 from illegal-aux-item to illegal-aux-item-tag, and redefine it to not include errors in the data. Added error code 62=aux-exists, 63=aux-bad-object, 64=illegal-aux-data, 65=aux-create-only, 66=aux-modify-only, 67=aux-server-only, 68=aux-data-exists and 69=aux-no-such-text. * doc/Makefile.am (check-doc): Replaced the error code illegal-aux-item with illegal-aux-item-tag and illegal-aux-item-data. * src/include/kom-errno.h (enum kom_err): Renamed KOM_ILL_AUX to KOM_ILL_AUX_TAG. Added KOM_AUX_EXISTS, KOM_AUX_BAD_OBJECT, KOM_ILL_AUX_DATA, KOM_AUX_CREATE_ONLY, KOM_AUX_MODIFY_ONLY, KOM_AUX_SERVER_ONLY, KOM_AUX_DATA_EXISTS and KOM_AUX_NO_SUCH_TEXT. * src/server/aux-items.c (aux_item_validate): Doc added. Added missing punctuation in comments. Set kom_errno to KOM_ILL_AUX_DATA instead of KOM_ILL_AUX when a regexp cannot be compiled or doesn't match an entry, or when a validator fails. (aux_item_add_perm): Document that kom_errno is set on failure. Do not modify kom_errno on success. Track name change of KOM_ILL_AUX_TAG. Set KOM_AUX_MODIFY_ONLY, KOM_AUX_CREATE_ONLY, KOM_AUX_SERVER_ONLY when appropriate (used to be KOM_AUX_PERM). Don't override the error code set by aux_item_check_unique() or aux_item_validate() when any of those check fails. (aux_item_check_unique): Set kom_errno to KOM_AUX_EXISTS or KOM_AUX_DATA_EXISTS on failure (used to sometimes be KOM_ILL_AUX). (text_stat_check_add_aux_item_list): Track name change of KOM_ILL_AUX_TAG. Set kom_errno to KOM_AUX_BAD_OBJECT if the aux-item is not allowed on the active object (used to be KOM_AUX_PERM). (conf_stat_check_add_aux_item_list): Ditto. (system_check_add_aux_item_list): Ditto. (aux_item_validate_existing_text): Set kom_errno to KOM_AUX_NO_SUCH_TEXT instead of NO_SUCH_TEXT. Set it to KOM_ILL_AUX_DATA if the text number is non-numeric. * src/server/testsuite/lyskomd.0/00.exp: Updated the expected error codes for aux-item-related errors. * src/server/testsuite/lyskomd.0/03.exp: Ditto. * src/server/testsuite/lyskomd.0/04.exp: Ditto. * src/server/testsuite/lyskomd.0/14.exp: Ditto. * src/server/testsuite/lyskomd.0/17.exp: Ditto. * src/server/testsuite/lyskomd.0/55.exp: Ditto. * src/server/testsuite/lyskomd.0/aux-items-cov.exp: Ditto. * src/server/testsuite/lyskomd.0/bug-572.exp: Ditto. * src/server/testsuite/lyskomd.0/20.exp: Ditto. Remove the want_illegal_aux_item proc and simplify the code that checks the error codes. * src/server/testsuite/lyskomd.0/23.exp: Ditto. * src/server/testsuite/lyskomd.0/26.exp: Ditto. * src/server/testsuite/lyskomd.0/28.exp: Ditto. Added test cases for handling duplicate faq-text aux-items. * src/server/testsuite/lyskomd.0/21.exp: Added new tests that attempt to set duplicate faq-text aux-items on a conference in various ways, and removing it and re-adding it. Also test adding two different faq-text aux-items at the same time.
-
- 11 Sep, 2006 1 commit
-
-
Per Cederqvist authored
* src/libraries/libcommon/misc-parser.c (parse_next_misc): Initialize bcc_recipient, received_at and is_sent. This gets rid of a gcc-4.1.1 warning. * src/libraries/libcommon/parser.c (parse): Always initialize answer.arguments and answer.indexes, to get rid of a gcc-4.1.1 warning.
-
- 03 Sep, 2006 1 commit
-
-
Per Cederqvist authored
(Preparation for solving bug 327). * doc/lyskomd.texi (Aux-Item Definition File): Renamed the "unique" field to "one-per-person", and clarify what it means. * src/server/aux-item-def-parse.y: Track the name change of the "one-per-person" aux-item field. (parse_aux_item_definitions): Ditto. * run-support/aux-items.conf: Ditto. * src/server/testsuite/leaks.0/lots-aux-items.conf: Ditto. * src/server/testsuite/lyskomd.0/aux-items.conf: Ditto. * src/server/testsuite/lyskomd.0/bug-64.aux: Ditto.
-
- 06 Aug, 2006 17 commits
-
-
Per Cederqvist authored
* src/server/testsuite/l2g.0/09.exp: Added test cases for copying a Local_to_global where the last entry (or entries) has been deleted.
-
Per Cederqvist authored
* src/server/testsuite/lyskomd.0/55.exp: Added test cases for adding an aux-item to the wrong type of of object.
-
Per Cederqvist authored
can be set. * src/server/testsuite/lyskomd.0/55.exp: New file. Test creation of aux-items that are only allowed to be set when modifying or creating an object. * src/server/testsuite/lyskomd.0/aux-items-55.conf: New file, used by 55.exp.
-
Per Cederqvist authored
* src/server/aux-items.c (aux_item_validate): Fixed a typo in a comment.
-
Per Cederqvist authored
* src/server/testsuite/lyskomd.0/person-cov.exp: Handle the new message when a person is deleted, even when debug calls are enabled.
-
Per Cederqvist authored
* src/server/aux-items.c (aux_item_check_unique): Removed bogus code that find_aux_item_definitions to be needlessly called. Force the caller to supply the definition, as all callers already do.
-
Per Cederqvist authored
* src/server/aux-items.c (aux_item_link_items): Removed assignment to a local variable that is not used after the assignment.
-
Per Cederqvist authored
* src/server/testsuite/lyskomd.0/aux-items-cov.exp: Fixed typo in comment.
-
Per Cederqvist authored
* src/server/aux-items.c (aux_item_link_items): Removed FIXME comment about bug 141. Bug 141 is invalid. The call to mark_text_as_changed is not redundant, since we must mark both the source and destination item as changed.
-
Per Cederqvist authored
* doc/lyskomd.texi (local-to-global): Translated old Swedish text that describes the reasoning behind the local-to-global structure, and update it to match the current implementation.
-
Per Cederqvist authored
* doc/lyskomd.texi (The Database): Translated old Swedish text that describes how the database is implemented to English. Updated the description to match the current implementation.
-
Per Cederqvist authored
* src/server/conference.c: Don't include s-string.h twice, but do include string-malloc.h. (change_name): Log the old and new name, and the user that changes it. * src/server/testsuite/lyskomd.0/03.exp: Be prepared for the new log message. * src/server/testsuite/lyskomd.0/06.exp: Ditto. * src/server/testsuite/lyskomd.0/13.exp: Ditto. * src/server/testsuite/lyskomd.0/send-async-cov.exp: Ditto.
-
Per Cederqvist authored
* doc/lyskomd.texi (Parameters): Document "Max mark_as_read chunks" and "Max super_conf loop".
-
Per Cederqvist authored
* src/server/conf-file.c (check_trailer): New function. (convert_to_long): Use it to simplify the code. (convert_to_ulong): Ditto.
-
Per Cederqvist authored
warning. (Bug 143). * src/server/conf-file.c (convert_to_ulong): New function. (assign_text_no): Use it instead of convert_to_long to get rid of a compiler warning. (assign_ulong): Use convert_to_ulong instead of atol. (assign_uint): Ditto. Check for overflow.
-
Per Cederqvist authored
* src/server/conf-file.c (convert_to_long): New function. (assign_text_no): Use it instead of using atol. Check for overflow. (assign_conf_no): Ditto. (assign_int): Ditto.
-
Per Cederqvist authored
* src/server/conference.c (delete_conf): Log a message when a conference is deleted, which includes the name of the conference and the user ID of the person that performs the deletion. * src/server/testsuite/config/prot-a.exp (kom_delete_conf): Expect the above message. * src/server/testsuite/lyskomd.0/03.exp: Ditto. * src/server/testsuite/lyskomd.0/13.exp: Ditto. * src/server/testsuite/lyskomd.0/32.exp: Ditto. * src/server/testsuite/lyskomd.0/conference-cov.exp: Ditto. * src/server/testsuite/lyskomd.0/person-cov.exp: Ditto.
-
- 02 May, 2006 1 commit
-
-
Per Cederqvist authored
-
- 24 Apr, 2006 1 commit
-
-
Per Cederqvist authored
* src/server/testsuite: Ignore core and vgcore.*. Replaced the "Client host" and "Client port" configuration file parameters with "Listen", and allow lyskomd to listen to more than one port. * doc/lyskomd.texi (Parameters): Replaced "Client host" and "Client port" with "Listen". * src/server/ramkomd.c (start_listen_sockets): New static function. Listen to all the ports specified by the "Listen:" parameter. (server_init): Use start_listen_sockets() instead of calling isc_listentcp(). Removed the host and client_port arguments. All callers updated. * src/server/testsuite/lyskomd.0/54.exp: New test suite. * src/server/conf-file.c (ctor_ipport_list): New static function. (dtor_ipport_list): New static function. (assign_ipport_list): New static function. (cf_ipport_list): New constant. * src/server/conf-file.h (struct ipport_entry): New struct. (struct ipport_list): New struct. (cf_ipport_list): New constant. * src/server/param.h (struct kom_par): Replaced "ip_client_host" and "ip_client_port" with "listen". * src/server/server-config.c (parameters): Ditto. * src/server/prot-a-parse-arg-c.awk: Include "conf-file.h" from the generated files. * src/server/admin.c: Include "conf-file.h". * src/server/aux-items.c: Ditto. * src/server/checkkomspace.c: Ditto. * src/server/conference.c: Ditto. * src/server/connections.c: Ditto. * src/server/dbck-cache.c: Ditto. * src/server/dbck.c: Ditto. * src/server/disk-end-of-atomic.c: Ditto. * src/server/komrunning.c: Ditto. * src/server/lockdb.c: Ditto. * src/server/membership.c: Ditto. * src/server/person.c: Ditto. * src/server/prot-a-output.c: Ditto. * src/server/prot-a-parse.c: Ditto. * src/server/prot-a.c: Ditto. * src/server/regex-match.c: Ditto. * src/server/rfc931.c: Ditto. * src/server/send-async.c: Ditto. * src/server/session.c: Ditto. * src/server/simple-cache.c: Ditto. * src/server/splitkomdb.c: Ditto. * src/server/text-garb.c: Ditto. * src/server/text.c: Ditto. * src/server/updateLysKOM.c: Ditto. * run-support/config: Removed the "Client port" setting. Adjust the test suite for the above change. * src/server/testsuite/lyskomd.0/bug-64.exp: Expect memory leaks due to bug 1599. * src/server/testsuite/lyskomd.0/53.exp: Expect a more informative error message when isc_listentcp fails. * src/server/testsuite/lyskomd.0/11.exp: Expect an IP address in the "Listening for clients" log message. * src/server/testsuite/config/unix.exp (clientport_2): New constant. (clientport_3): New constant. (lyskomd_start): New argument: listen_messages. Use "Listen:" instead of "Client port:". (lyskomd_fail_start): Use "Listen:" instead of "Client port:". (client_start): New optional argument: port.
-
- 09 Feb, 2006 1 commit
-
-
Per Cederqvist authored
* src/server/testsuite/lyskomd.supp (aid_lexer_opt): New suppression. (aid_lexer_2_opt): Ditto. New test case: start lyskomd while the socket is bound. * src/server/testsuite/lyskomd.0/53.exp: New test case. Test startup when the socket is already bound by another process. This exposed a memory leak in libisc which is also fixed in this commit. * src/server/testsuite/tcpbind.py: New helper script. Bind a tcp port, so that it is occupied. Used by 53.exp. * src/server/testsuite/config/unix.exp (lyskomd_fail_start): New optional argument. expected_leaks. Fix database setup. Remove the server from expect_after and expect_always once it has failed. (utility_start): New function. (utility_death): New function. (talk_to): Handle talking to utilities. Use strerror() instead of logging a plain errno integer. * src/server/lockdb.c (lock_db): Use strerror() to get a human-readable error message. Fixed a memory leak. * src/libraries/libisc-new/src/isc_tcp.c (mkaddr_and_bind): New static function, extracted from isc_bindtcp(). Don't leak the isc_address if bind() fails. (isc_bindtcp): Moved some code to mkaddr_and_bind().
-
- 02 Feb, 2006 2 commits
-
-
Per Cederqvist authored
* src/server/testsuite/locksuite.py (now): New function. (main): Include a timestamp in the "locked" and "bye" messages. * src/server/testsuite/config/unix.exp (obtain_lock): Log when the lock is obtained. Log a warning if the expect statement should be exited for unexpected reasons. (release_lock): Log when the lock is released. Fix a minor memory leak. * src/server/conf-file.c (read_config): Fix a memory leak when the config file was not found.
-
Per Cederqvist authored
* src/server/server-config.c (dump_cfg_timevals): Updated to the changes in struct datatype introduced yesterday.
-
- 01 Feb, 2006 5 commits
-
-
Per Cederqvist authored
* src/server/conf-file.h (struct datatype): Replaced the freer attribute with ctor and dtor attributes. All users updated. Added some documentation. (free_config): New function. * src/server/conf-file.c (init_init): Call the constructors for all parameters. (free_config): New function, that calls the destructors for all parameters. (ctor_string): New static function. (dtor_string): New static function, which replaces unassign_string. (assign_string): Expect the object to already be constructed. (unassign_string): Removed. (cf_string): Use ctor_string and dtor_string. * src/server/server-config.c (cf_log_param): Updated for new struct datatype. (cf_jubel): Ditto. (cf_ident_param): Ditto. (free_configuration): Use free_config to do the work.
-
Per Cederqvist authored
* src/server/conf-file.c: Moved all struct datatype objects to the end of the file, to avoid having to forward-declare all of the static functions mentioned below. (assign_text_no): Now static. (assign_conf_no): Ditto. (assign_int): Ditto. (assign_ulong): Ditto. (assign_uint): Ditto. (assign_string): Ditto. (assign_bool): Ditto. (assign_double): Ditto. (assign_timeval): Ditto. (unassign_string): Ditto. * src/server/conf-file.h: Don't declare the above functions, which are now static.
-
Per Cederqvist authored
having separate "assigner" and "freer" fields in the parameter definition table. * src/server/conf-file.h (struct datatype): New struct. (struct parameter): Move the assigner and freer fields to struct datatype, and include a pointer to a const struct datatype. * src/server/conf-file.c, src/server/conf-file.h (cf_text_no): New constant struct. (cf_conf_no): Ditto. (cf_int): Ditto. (cf_ulong): Ditto. (cf_uint): Ditto. (cf_string): Ditto. (cf_bool): Ditto. (cf_double): Ditto. (cf_timeval): Ditto. * src/server/conf-file.c (assign_defaults): Handle configuration datatypes. (configure_line): Ditto. * src/server/server-config.c (assign_path): Removed. (unassign_path): Removed. (cf_path): New. Replaces assign_path and unassign_path. (cf_log_param): New const struct. (cf_jubel): New const struct. (cf_ident_param): New const struct. (parameters): Replaced all assigners and freers with the pointers to the proper datatype structs. (free_configuration): Handle configuration datatypes.
-
Per Cederqvist authored
* HACKING: Refer to kom.lysator.liu.se instead of u137 (which has been replaced by compulsion for some time).
-
Per Cederqvist authored
* scripts/xenofarm.sh: Don't create the makeinfo.txt file. The information in it was already present in the id_txlog.txt file created by id_tx.
-
- 03 Jan, 2006 3 commits
-
-
Per Cederqvist authored
be triggered by a broken aux-item definition file, so it was mostly harmless. * src/server/aux-item-def-parse.y (aux_item_def_check_validate): Don't free a string before using it.
-
Per Cederqvist authored
be triggered by a broken aux-item definition file, so it was mostly harmless. * src/server/aux-item-def-parse.y (aux_item_def_check_trigger): Don't free a string before using it.
-
Per Cederqvist authored
valgrind. * src/server/testsuite/lyskomd.supp: Added aid_lexer_2. * src/server/testsuite/lyskomd.0/regexp-match-cov.exp (shutdown): Don't expect any suppressed leaked blocks. * src/server/testsuite/lyskomd.0/aux-items-cov.exp: Expect less suppressed leaked blocks. * src/server/testsuite/lyskomd.0/37.exp: Adjusted to new report format when configuration errors are found. * src/server/testsuite/lyskomd.0/conf-file-cov.exp: Ditto. * src/server/simple-cache.c (free_all_cache): Close text_file and file_a. * src/server/testsuite/lyskomd.supp: Removed i_fopen-2.3.1 and i_fopen-2.3.5, which were actually caused by the above problem. * src/server/server-config.c (read_configuration): Check the return value of read_config(). Free the configuration before calling restart_kom if there are any problems with the configuration. Report the name of the configuation file if problems are found. * src/server/ramkomd.c (dump_exit_statistics): Call clear_info() instead of free_kom_info. (free_kom_info): Removed. The new clear_info() function contains a better implementation, with less code duplication. * src/server/memory.c, src/server/kom-memory.h (clear_info): New function. * src/server/dbck.c (free_person_scratchpad): New static function. (free_person_scratch): Ditto. (main): Call free_person_scratch(), clear_info(), free_configuration() and free_all_dbck_cache() when terminating to make it possible to check for leaks with valgrind. * src/server/dbck-cache.c, src/server/dbck-cache.h (free_all_dbck_cache): New function. * src/server/conf-file.c, src/server/conf-file.h (read_config): Changed return type from void to Success. Return FAILURE instead of calling restart_kom when configuration errors are found.
-
- 02 Jan, 2006 3 commits
-
-
Per Cederqvist authored
-
Per Cederqvist authored
* src/libraries/adns/src/event.c (adns_processreadable): udpaddrlen should be a socklen_t, not int.
-
Per Cederqvist authored
* src/libraries/adns/src/check.c: Include <stdlib.h>, which is needed since abort() is used here. * scripts/warnings.sed: gcc 3.4.3 uses 'foo' instead of `foo' to mark identifiers. Adjusted a few warnings that were found by various Xenofarm machines.
-
- 01 Jan, 2006 1 commit
-
-
Per Cederqvist authored
-