Commit Graph

13 Commits

Author SHA1 Message Date
Nicolas Williams
6b45c3512e kadmin: LIST interrupt message needs no reply
The online LIST interrupt message is a NOP, but it's expected to not
have a reply (the server doesn't send one if it receives it before the
LIST finishes).

However, if the interrupt message arrives after the LIST finished, then
it does get a reply, and this causes the client to get out of step with
the server.

Fixes include:

1) flavor the interrupt NOP to make sure it never gets a reply,
2) introduce a new kadm_list_interrtupt message that is like a NOP that
   produces no reply
3) always consume -after the LIST ends- a reply to any list interrupt
   NOP on the client side.

This implements (1).
2022-03-22 17:07:34 -05:00
Nicolas Williams
ed4b1be5bb kadm5: Add online kadm5_iter_principals()
kadm5_get_principals() is not online.  If you have... many principals,
it will be slow.  At least it's no longer quadratic, but it, it's still
slow.  Time to add a version that uses a callback:

    kadm5_ret_t
    kadm5_iter_principals(void *server_handle,
                          const char *expression,
                          int (*cb)(void *, const char *),
                          void *cbdata)

The callback gets called with the given callback data and one principal
name (unparsed).

Note that the callback MUST NOT re-enter the kadm5 library with the
*same* kadm handle.  For example, the kadmin protocol doesn't really
multiplex requests well, though it could pipeline them, but it can't
pipeline when LIST is running, not with the protocol implemented here,
so a separate connection is needed, and that requires a separate kadm
handle.  We add kadm5_dup_context() to deal with this.
2022-03-20 18:27:03 -05:00
Nicolas Williams
ea83f068e9 kadm5/kadmin: Add read-only mode
Now we can have read-only kadmind instances.
2020-09-08 00:25:40 -05:00
Jeffrey Altman
db859520b4 lib/kadm5: use krb5_enomem() where possible
Change-Id: I487fbc640a8f793f0aa02ef4c94099e09241d616
2018-12-25 16:57:55 -06:00
Jeffrey Altman
50ebc1491a lib/kadm5: improve kadm_c_ error handling
Perform error checking for each function call and consistently return
errors at the point of failure.

Refactor functions to use a common exit path.  Preserve error messages
stored in the kadm5_client_context.context when appropriate.

Change-Id: I7aa04020e4de3454066f0d88ba805fed999dbd1a
2018-12-25 16:57:55 -06:00
Love Hörnquist Åstrand
2da3d041ad catch write to socket error
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@25187 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-05-06 19:02:49 +00:00
Love Hörnquist Åstrand
6937d41a02 remove trailing whitespace
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23815 ec53bebd-3082-4978-b11e-865c3cabbd6b
2008-09-13 09:21:03 +00:00
Love Hörnquist Åstrand
e172367898 switch to utf8 encoding of all files
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23814 ec53bebd-3082-4978-b11e-865c3cabbd6b
2008-09-13 08:53:55 +00:00
Love Hörnquist Åstrand
7d07ffa844 rename variable exp to expression
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15484 ec53bebd-3082-4978-b11e-865c3cabbd6b
2005-06-17 05:21:07 +00:00
Johan Danielsson
97e3bcbade call _kadm5_connect
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8655 ec53bebd-3082-4978-b11e-865c3cabbd6b
2000-07-11 16:00:19 +00:00
Johan Danielsson
c5b916ca6f remove advertising clause
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@7464 ec53bebd-3082-4978-b11e-865c3cabbd6b
1999-12-02 17:05:13 +00:00
Assar Westerlund
1bdb833b1f (kadm5_c_get_principals): new _kadm5_client_recv
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6955 ec53bebd-3082-4978-b11e-865c3cabbd6b
1999-09-13 02:56:29 +00:00
Johan Danielsson
4552019ccc Client implementation of kadm5_get_principals.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3860 ec53bebd-3082-4978-b11e-865c3cabbd6b
1997-11-09 04:04:53 +00:00