Commit Graph

35 Commits

Author SHA1 Message Date
Nicolas Williams 98809e86ce Move base into lib
This involves reverting dd267e8fc3,
    but that gets lost in the move.

    This builds on Ubuntu and Windows at this time.
2012-06-20 19:32:08 -05:00
Nicolas Williams f4ba41ebdd Pluggable libheimbase interface for DBs and misc libheimbase enhancements
[Code reviewed by Love Hörnquist Åstrand <lha@kth.se>]

    Added heim_db_*() entry points for dealing with databases, and
    make krb5_aname_to_localname() use it.

    The following enhancements to libheimbase are included:

     - Add heim_data_t and heim_string_t "reference" variants to
       avoid memory copies of potentially large data/strings.

       See heim_data_ref_create() and heim_string_ref_create().

     - Added enhancements to heim_array_t to allow their use for
       queues and stacks, and to improve performance.  See
       heim_array_insert_value().

     - Added XPath-like accessors for heim_object_t.  See
       heim_path_get(), heim_path_copy(), heim_path_create(), and
       heim_path_delete().  These are used extensively in the DB
       framework's generic composition of ACID support and in the
       test_base program

     - Made libheimbase more consistent with Core Foundation naming
       conventions.  See heim_{dict, array}_{get, copy}_value() and
       heim_path_{get, copy}().

     - Added functionality to and fixed bugs in base/json.c:
        - heim_serialize();
        - depth limit for JSON parsing (for DoS protection);
        - pretty-printing;
        - JSON compliance (see below);
        - flag options for parsing and serializing; these are needed
          because of impedance mismatches between heim_object_t and
          JSON (e.g., heim_dict_t allows non-string keys, but JSON
          does not; heimbase supports binary data, while JSON does
          not).

     - Added heim_error_enomem().

     - Enhanced the test_base program to test new functionality and
       to use heim_path*() to better test JSON encoding.  This
       includes some fuzz testing of JSON parsing, and running the
       test under valgrind.

     - Started to add doxygen documentation for libheimbase (but doc
       build for libheimbase is still incomplete).

    Note that there's still some incomplete JSON support:

     - JSON string quoting is not fully implemented;

     - libheimbase lacks support for real numbers, while JSON has
       it -- otherwise libheimbase is a superset of JSON,
       specifically in that any heim_object_t can be a key for an
       associative array.

    The following DB backends are supported natively:

     - "sorted-text", a binary search of sorted (in C locale), flat
       text files;

     - "json", a backend that stores DB contents serialized as JSON
       (this is intended for configuration-like contents).

    The DB framework supports:

     - multiple key/value tables per-DB
     - ACID transactions

    The DB framework also natively implements ACID transactions for
    any DB backends that a) do not provide transactions natively, b)
    do provide lock/unlock/sync methods (even on Windows).  This
    includes autocommit of DB updates outside transactions.

    Future DB enhancements may include:

     - add backends for various DB types (BDB, CDB, MDB, ...);

     - make libhdb use heim_db_t;

     - add a command-line tool for interfacing to databases via
       libheimbase (e.g., to get/set/delete values, create/copy/
       backup DBs, inspect history, check integrity);

     - framework-level transaction logging (with redo and undo
       logging), for generic incremental replication;

     - framework-level DB integrity checking.

       We could store a MAC of the XOR of a hash function applied to
       {key, value} for every entry in the DB, then use this to check
       DB integrity incrementally during incremental replication, as
       well as for the whole DB.
2012-02-05 16:26:32 -06:00
Love Hörnquist Åstrand 7aaba443bc add NTMakefile and windows directories 2011-07-17 12:16:59 -07:00
Love Hörnquist Åstrand ec35b8d4a2 add option to disable --disable-heimdal-documentation 2011-06-14 20:33:44 -07:00
Love Hornquist Astrand 8ddc462ec1 Add heimbase 2010-10-18 15:00:34 -07:00
Love Hörnquist Åstrand 248e5f127b SUBDIRS += po
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23811 ec53bebd-3082-4978-b11e-865c3cabbd6b
2008-09-08 20:16:20 +00:00
Love Hörnquist Åstrand bb3a8ae89e remove check-symbols.sh
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22497 ec53bebd-3082-4978-b11e-865c3cabbd6b
2008-01-21 12:12:23 +00:00
Love Hörnquist Åstrand 38cd509202 Add some extra cf/*.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22302 ec53bebd-3082-4978-b11e-865c3cabbd6b
2007-12-14 12:16:44 +00:00
Love Hörnquist Åstrand f1e35b91a2 TODO-1.0
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21650 ec53bebd-3082-4978-b11e-865c3cabbd6b
2007-07-18 08:34:38 +00:00
Love Hörnquist Åstrand 5667e53d9a More files in EXTRA
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21011 ec53bebd-3082-4978-b11e-865c3cabbd6b
2007-06-08 04:01:03 +00:00
Love Hörnquist Åstrand 203e486c81 (print-distdir): print name of dist
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21007 ec53bebd-3082-4978-b11e-865c3cabbd6b
2007-06-08 02:56:42 +00:00
Love Hörnquist Åstrand 858996bd48 SUBDIRS += etc
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20567 ec53bebd-3082-4978-b11e-865c3cabbd6b
2007-04-27 13:56:50 +00:00
Love Hörnquist Åstrand aed24fa912 include packages/mac and all related files
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20379 ec53bebd-3082-4978-b11e-865c3cabbd6b
2007-04-17 21:48:49 +00:00
Love Hörnquist Åstrand 66917e3fde remove valgrind target, it doesn't belong here.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18836 ec53bebd-3082-4978-b11e-865c3cabbd6b
2006-10-22 16:45:58 +00:00
Love Hörnquist Åstrand 411c05107d Add target for valgrind debugging
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18835 ec53bebd-3082-4978-b11e-865c3cabbd6b
2006-10-22 16:43:08 +00:00
Love Hörnquist Åstrand 4d27a506a5 add cf/install-catman.sh
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18683 ec53bebd-3082-4978-b11e-865c3cabbd6b
2006-10-20 18:56:24 +00:00
Love Hörnquist Åstrand 0379745c2a more files
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18676 ec53bebd-3082-4978-b11e-865c3cabbd6b
2006-10-20 18:32:33 +00:00
Love Hörnquist Åstrand 68675cb4bb Split long line
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16366 ec53bebd-3082-4978-b11e-865c3cabbd6b
2005-12-12 11:57:45 +00:00
Luke Howard 4408d496c6 Add kcm
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14542 ec53bebd-3082-4978-b11e-865c3cabbd6b
2005-02-03 08:18:22 +00:00
Assar Westerlund b95e4fd627 (SUBDIRS: add tools
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9179 ec53bebd-3082-4978-b11e-865c3cabbd6b
2000-11-15 22:54:15 +00:00
Johan Danielsson b912c38dfd set ACLOCAL_AMFLAGS
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8690 ec53bebd-3082-4978-b11e-865c3cabbd6b
2000-07-17 18:07:22 +00:00
Assar Westerlund dcfa788616 (ACLOCAL): just use `cf', this variable is only used when the current
directory is $(top_srcdir) anyways and having $(top_srcdir) there
breaks if it's a relative path


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6793 ec53bebd-3082-4978-b11e-865c3cabbd6b
1999-08-12 02:21:43 +00:00
Johan Danielsson 0f23e17f6f fix broken checkin
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5652 ec53bebd-3082-4978-b11e-865c3cabbd6b
1999-03-20 13:58:20 +00:00
Johan Danielsson f919586780 include Makefile.am.common
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5590 ec53bebd-3082-4978-b11e-865c3cabbd6b
1999-03-18 11:15:25 +00:00
Assar Westerlund 78dd2268d5 send -I to aclocal
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4923 ec53bebd-3082-4978-b11e-865c3cabbd6b
1998-05-23 17:11:26 +00:00
Johan Danielsson 192688e7db libtoolize
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4914 ec53bebd-3082-4978-b11e-865c3cabbd6b
1998-05-23 14:23:28 +00:00
Johan Danielsson 8117fe3d71 kadmin
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3799 ec53bebd-3082-4978-b11e-865c3cabbd6b
1997-11-06 00:06:44 +00:00
Assar Westerlund c0241158ef add passwd
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2426 ec53bebd-3082-4978-b11e-865c3cabbd6b
1997-07-18 00:52:52 +00:00
Assar Westerlund 98f39a2397 standardise
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2377 ec53bebd-3082-4978-b11e-865c3cabbd6b
1997-07-16 19:36:07 +00:00
Assar Westerlund 0bffe4dacc Add appl
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1936 ec53bebd-3082-4978-b11e-865c3cabbd6b
1997-06-30 04:07:49 +00:00
Assar Westerlund b10c6034e4 Added admin
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1562 ec53bebd-3082-4978-b11e-865c3cabbd6b
1997-04-13 22:08:56 +00:00
Johan Danielsson 74f1321edf Add kdc.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1307 ec53bebd-3082-4978-b11e-865c3cabbd6b
1997-03-08 10:41:56 +00:00
Assar Westerlund 2512f4b1bc ansi2knr?
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1220 ec53bebd-3082-4978-b11e-865c3cabbd6b
1997-02-08 15:02:46 +00:00
Johan Danielsson fad81ed299 Lots of random changes.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1107 ec53bebd-3082-4978-b11e-865c3cabbd6b
1996-12-15 21:30:34 +00:00
Johan Danielsson 6e3511d151 Reorganized file tree.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@877 ec53bebd-3082-4978-b11e-865c3cabbd6b
1996-10-22 22:25:20 +00:00