1. 31 May, 2009 1 commit
  2. 06 Nov, 2006 1 commit
    • Per Cederqvist's avatar
      Introduce datafile format version 3. A textstat contains · c1ef8d5b
      Per Cederqvist authored
      "generation" and "reclamation" fields.
      * src/include/kom-types.h (Text_stat): Added fields generation
      and reclamation.
      * src/server/simple-cache.c (cached_get_text): Handle text file
      generation 0 in the old-fashioned way.  Added a #warning about
      other generations.  Check return value of fseek.
      (cached_create_text): Added a #warning about nonzero generations
      of the text file.
      (cached_create_text): Initialize generation and reclamation.
      (save_one_conf): Do a file copy only if the formats of file A and
      B are the same.  Otherwise, parse the object into a temporary
      object and re-serialize it.
      (save_one_pers): Ditto.
      (save_one_text): Ditto.
      (init_cache): Handle data file format 3.
      * src/server/ram-parse.c (fparse_text_stat_3): New static function.
      (fparse_text_stat_2): Set generation and reclamation to 0.
      (fparse_text_stat_0): Ditto.
      (fparse_info): Handle data file format 3.
      (fparse_conference): Ditto.
      (fparse_person): Ditto.
      (fparse_membership): Ditto.
      (fparse_membership_list): Ditto.
      (fparse_text_stat): Ditto.
      (fparse_member): Ditto.
      * src/server/ram-output.c (foutput_info): Handle data file format 3.
      (foutput_text_stat_3): New static function.
      (foutput_person): Ditto.
      (foutput_conference): Ditto.
      (foutput_text_stat): Ditto.
      (foutput_membership): Ditto.
      (foutput_membership_list): Ditto.
      (foutput_member): Ditto.
      (foutput_conf_type): Ditto.
      * src/server/ram-io.c (output_format): Initialize it to 3.
      (dbfile_open_read): Handle data file format 3.
      * src/server/memory.c (copy_text_stat): Handle generation and
      reclamation.
      (init_text_stat): Initialize generation and reclamation.
      * src/server/membership.c (read_ranges_postcondition): Use data
      file format 3 when dumping a membership to stderr.
      * src/server/dbck.c (main): Handle data file format 3.
      * src/server/dbck-cache.c (cached_get_text): Handle text file
      generation 0 in the old-fashioned way.  Added a #warning about
      other generations.
      (cached_flush_text): Flush a generation 0 text file.  Added a
      #warning about other generations.
      (sync_output_header): Handle data file format 3.
      (cache_sync_all): Ditto.
      (init_cache): Ditto.
      * src/server/testsuite/test-l2g.c (main): Use data
      file format 3 when reading an Local2Global structure from stdin,
      or writing it to stdout.
      c1ef8d5b
  3. 20 Oct, 2006 1 commit
    • Per Cederqvist's avatar
      Wrap all file pointers that refer to the database files inside a · 554e4c59
      Per Cederqvist authored
      "struct dbfile".  Add a database version field to that struct, and
      remove the global database format variables.  This allows lyskomd
      to have files in different versions open at the same time, so that
      it can convert format X to format X+1 on the fly.  (This is more
      preparation for bug 1616.)
      * src/server/ram-io.h (struct dbfile): New struct.
      (dbfile_delete): New function.
      (set_output_format): New function.
      (dbfile_open_write): New function.
      (dbfile_open_read): New function.
      (dump_dbfile_stats): New function.
      (dbfile_ftell): The argument is now a struct dbfile*, not FILE*.
      (dbfile_getc): Ditto.
      (dbfile_ungetc): Ditto.
      * src/server/ram-io.c (output_format): Moved from ram-output.c and
      made static variable.  This defines the output format of all
      struct dbfile objects created after a change to the variable.
      (nr_dbfile_objects): New static statistics variable.
      (nr_dbfile_files): New static statistics variable.
      (dbfile_new): New static function.
      (dbfile_delete): New function.
      (set_output_format): Moved from ram-output.c.
      (get_version): Moved from simple-cache.c.  Changed return type to
      int.  The argument is an open dbfile, not a file name.  Use
      dbfile_getc() instead of getc().
      (dbfile_open_read): New function.
      (dbfile_open_write): New function.
      (dump_dbfile_stats): New function.
      (dbfile_ftell): The argument is now a struct dbfile*, not FILE*.
      (dbfile_getc): Ditto.
      (dbfile_ungetc): Ditto.
      * src/server/conference.c: Include ram-io.h, since
      local-to-global.h needs it.
      * src/server/memory.c: Ditto.
      * src/server/person.c: Ditto.
      * src/server/prot-a-output.c: Ditto.
      * src/server/text.c: Ditto.
      * src/server/membership.c: Include ram-io.h.
      (read_ranges_postcondition): Set up a dbfile wrapper around stderr
      for the report created if check_membership() fails.
      * src/server/local-to-global.h, src/server/local-to-global.c
      (l2g_read): The fp argument is now a struct dbfile*, not a FILE*.
      * src/server/dbck.c (oformat): Removed.  The format is stored
      inside the dbfile struct instead.
      (main): Report an error message if an attempt to use an undefined
      output format is detected.
      * src/server/dbck-cache.c: Change all FILE* that refer to the
      status files to struct dbfile* in all functions, and made
      appropriate changes.  Use fp->format instead of the global
      variable oformat or data_file_version.
      (get_version): Moved to ram-io.c.
      (sync_output_header): Removed the oformat argument.  Use
      fp->format instead.  All callers updated.
      (cache_sync_all): Use dbfile_open_write() instead of i_fopen(),
      and dbfile_delete() instead of i_fclose().
      (init_cache): Removed the data_file_version variable, as the
      format is now stored inside the dbfile struct.  Use
      dbfile_open_read() instead of i_fopen(), and dbfile_delete()
      instead of i_fclose().
      * doc/lyskomd.texi (Modifying Stored Types): The default database
      format is now defined in ram-io.c, and nowhere else.  It is
      preferrable if lyskomd is able to convert an old format to a new
      one after an upgrade.
      * src/server/testsuite/test-l2g.c (main): Added a dbfile wrapper
      around stdin in call to l2g_read(), and another around stderr in
      call to l2g_write().
      * src/server/testsuite/Makefile.am (test_l2g_LDADD): Include
      libeintr.a.
      * src/server/simple-cache.c: Change all FILE* that refer to the
      status files to struct dbfile* in all functions, and made
      appropriate changes.
      (pre_sync): Use dbfile_delete() instead of i_fclose(), and
      dbfile_open_write() instead of i_fopen().
      (post_sync): Use dbfile_delete() instead of i_fclose(), and
      dbfile_open_read() instead of i_fopen().
      (save_one_text): Use dbfile_delete() instead of i_fclose(), and
      dbfile_open_read() instead of i_fopen().
      (sync_part): Use dbfile_delete() instead of i_fclose().
      (init_cache): Removed local variable datafile_version; use
      fp->format instead.  Use dbfile_open_read() instead of i_fopen().
      Removed call to set_input_format(), as dbfile_open_read() does
      the same thing.
      (free_all_cache): Use dbfile_delete() instead of i_fclose().
      * src/server/ramkomd.c (dump_exit_statistics): Dump dbfile stats.
      * src/server/ram-parse.h, src/server/ram-parse.c: Change all
      FILE* that refer to the status files to struct dbfile* in all
      functions, and made appropriate changes.
      (set_input_format): Removed.
      * src/server/ram-parse.c (input_format): Removed.  All users
      changed to use fp->format instead, so that lyskomd can read files
      with different versions at the same time.
      (fparse_text_stat_2): Code cleanup.
      (fparse_text_stat_0): Use dbfile_ungetc() instead of ungetc().
      * src/server/ram-output.h, src/server/ram-output.c: Change all
      FILE* that refer to the status files to struct dbfile* in all
      functions, and made appropriate changes.
      (output_format): Moved to ram-io.c and made static.
      (set_output_format): Moved to ram-io.c.
      554e4c59
  4. 17 Oct, 2006 1 commit
    • Per Cederqvist's avatar
      Added functions wrapper functions around a few stdio functions, · d7498aeb
      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.
      d7498aeb
  5. 28 Aug, 2003 2 commits
  6. 23 Aug, 2003 1 commit
  7. 16 Aug, 2003 1 commit
  8. 12 Jul, 2003 1 commit
  9. 12 Jan, 2003 1 commit
  10. 12 Nov, 2002 1 commit
  11. 11 Nov, 2002 1 commit
  12. 06 Nov, 2002 1 commit
  13. 06 Sep, 2002 1 commit
  14. 29 Mar, 2002 1 commit
  15. 01 Jan, 2002 1 commit
  16. 28 Dec, 2001 3 commits
  17. 04 Nov, 2001 2 commits
  18. 03 Nov, 2001 1 commit
  19. 05 Jul, 1999 1 commit
  20. 26 Jun, 1999 1 commit
  21. 03 Jun, 1999 1 commit
  22. 24 May, 1999 3 commits
  23. 21 May, 1999 1 commit
    • David Byers's avatar
      Memory management · 53acf950
      David Byers authored
              Free everything on exit
              The server should now exit with zero allocated strings and
              zero allocated blocks.
      
      Test cases
              Added a few test cases for improved coverage and recently
              fixed bugs.
      53acf950
  24. 12 May, 1999 1 commit
    • David Byers's avatar
      New RPC calls: · e6dca4a9
      David Byers authored
              set-pers-flags
      
      Modified RPC calls
              create-person (new parameter pers-flags)
      
      Removed several hard-coded constants and paths.
              Max texts
              Max conferences
              Nologin file
      
      Support for aux-item validation functions (not just regexps.)
      Support for aux-items that can only be created by the server
      Support for linking pairs of aux items
      
      Added test cases to improve code coverage
      
      Renamed log to kom_log to avoid conflicts with math function log.
      
      Several bug fixes (code and documentation)
      e6dca4a9
  25. 31 Mar, 1999 1 commit
  26. 13 Jan, 1999 1 commit
  27. 26 Dec, 1998 1 commit
  28. 26 Jul, 1998 1 commit
  29. 08 Jul, 1998 1 commit
    • Per Cederqvist's avatar
      (rcsid): Added a missing const. · aa3c79db
      Per Cederqvist authored
      (fparse_info_0): Now static.
      (fparse_info_2): Likewise.
      (fparse_conference_2): Likewise.
      (fparse_conference_0): Likewise.
      (fparse_person_0): Likewise.
      (fparse_person_2): Likewise.
      (fparse_text_stat_2): Likewise.
      (fparse_text_stat_0): Likewise.
      (fparse_conf_list): Changed type of local variable "i" from int to
      	unsigned long.
      (fparse_text_list): Likewise.
      aa3c79db
  30. 14 Jun, 1998 1 commit
  31. 13 Sep, 1997 1 commit
    • David Byers's avatar
      Documentation: Protocol-A.texi is now nearly complete. · ff7ebeaa
      David Byers authored
                     Documented the aux-item definition file format.
                     Updated the database format documentation.
      
      Server:        Implemented aux-items.
                     Checked error returns and set error-status to something
                         useful in most cases.
                     New RPC calls:
                         create-text
                         create-anonymous-text
                         create-conf
                         create-person
                         get-text-stat
                         get-conf-stat
                         modify-text-info
                         modify-conf-info
                         get-info
                         modify-server-info
                         get-collate-table
                         set-expire
                         query-unread-texts
                     New asynchronous messages:
                         new-text
                         deleted-text
      ff7ebeaa
  32. 03 Aug, 1996 2 commits
  33. 28 Jul, 1996 1 commit