| Commit message (Collapse) | Author | Age |
|
|
|
| |
This is unlikely to ever get merged, but it'll be handy for roost.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows for authentication checking to continue working even when tickets
expire or are renewed.
Also include key expiration logic. This is possibly overly conservative and
paranoid by a couple orders of magnitude.
Intentionally do not use SERVACK because they're mildly annoying to get at and
aren't authenticated. When we receive a notice authenticated with a key, we
know the server has received it. From there, we can infer that sufficiently old
keys are stale. We can't remove stale keys immediately because some older
notices may still be in flight, but after a grace period they can go.
The timeout is set to 60 seconds, which is fairly high, but matches
Z_ReadWait's timeout.
|
|
|
|
|
|
|
| |
The start of proper session key management in libzephyr. A new Z_AuthProc is
added which appends the key into a queue. ZSubscribeTo and
ZSubscribeToSansDefaults are modified to use it. For now, it's extremely simple
and makes no attempt to expire old keys.
|
|
|
|
| |
Explicitly takes a krb5_creds as input.
|
|
|
|
|
|
|
| |
Basing it on krb4's CLOCK_SKEW value doesn't make any sense. We pick 900
because it is just over 128 + 256 + 512, the longest group of three timeouts in
the retransmit schedule used by the zephyrd. This allows us to miss two packets
in a row and still be fine.
|
|
|
|
|
|
| |
With a custom send_routine that mirrors ZSrvSendList. This allows for an
asynchronous version that replaces send_routine with non-blocking versions (and
waits for ACKs out-of-band).
|
|
|
|
|
|
|
|
| |
Provide a new zctl subcommand, flush_subs, to flush all subscriptions for
a specified recipient. This is implemented using a new library function,
ZFlushUserSubscriptions().
This is the client side of #103
|
|
|
|
|
|
|
|
|
| |
This adds support to the server for a new client control message,
CLIENT_FLUSHSUBS, which flushes all subscriptions and pending retransmits
for clients belonging to a given principal. The target principal must be
the same as the sender, unless the sender is on the opstaff ACL.
This is the server side of #103
|
|
|
|
|
|
|
|
| |
Provide a new library function, ZFlushUserLocations(), to flush locations
for a specified user. This can be called using zctl flush_locs, which
now takes an optional username parameter.
This is the client side of #102
|
|
|
|
| |
This fixes #94
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eliminate compiler warnings due to various issues (listed below). This
allows Zephyr to build cleanly under GCC versions ranging from 4.1.0 to
4.7.2 with all of the options shown below:
-g -O2 -Wall -Werror
-Wno-deprecated-declarations
-Wmissing-declarations
-Wpointer-arith
-Wstrict-prototypes
-Wshadow
-Wextra
-Wno-missing-field-initializers
-Wno-unused-parameter
and, on recent versions, -Wunreachable-code
Test builds were done
- On Ubuntu 12.10 (Quantal Quetzal) using both MIT Kerberos 1.10.1 and
Heimdal 1.6, without krb4 and both with and without C-Ares and Hesiod
- On Fedora 14 using Heimdal 0.6, without C-Ares or Hesiod and both
with and without krb4 (KTH Kerberos 1.3rc2)
- On Fedora Core 3, Fedora Core 5, Fedora 7, and Fedora 10, using
Heimdal 0.6 and without C-Ares, Hesiod, or krb4
It also allows clean builds on Solaris 10 under the Sun Studio 12 (9/07)
C compiler with the following options:
-g -fd -v -errfmt -errhdr=%user -errtags=yes -errwarn=%all
-erroff=E_OLD_STYLE_FUNC_DECL,E_ENUM_TYPE_MISMATCH_ARG,E_ARG_INCOMPATIBLE_WITH_ARG
... and under Solaris 9 with the Sun Forte 7 (3/02) C compiler with the above
options and -erroff=E_FUNC_HAS_NO_RETURN_STMT. Solaris builds were done
with Heimdal 0.6 and without C-Ares, Hesiod, or krb4.
The following types of issues are addressed in this change:
- Parameters and local variables with the same names as library functions
- Parameters and local variables with the same names as globals
- Declarations for exported global variables missing from headers
- Prototypes for exported functions missing from headers
- Missing 'static' on functions that shouldn't be exported
- Old-style function declarations
- Duplicate declarations
- Type mismatches
- Unused variables and functions
- Uninitialized variables
- Forward references to enums
- Necessary header files not included
- Violations of the aliasing rules, where GCC was able to detect them
- Missing braces on if blocks that might be empty
- Attempts to do pointer arithmetic on pointers of type void *, which
is not permitted in standard C.
- An attempt to pass a function pointer via a void * parameter, which is
not permitted in standard C. Instead, we now pass a pointer to a
structure, which then contains the required function pointer.
- Unnecessary inclusion of <krb5_err.h>, which is already included by
<krb5.h> when the former exists, and might not be protected against
double inclusion, depending on which com_err was used.
- Missing include of <com_err.h>, which was masked by the fact that it is
included by headers generated by e2fsprogs compile_et
- Use of com_err() with a non-constant value in place of the format string,
which in every case was a fixed-size buffer in which a message was built
using sprintf(!). Both the calls to sprintf and the fixed-size buffers
have been removed, in favor of just letting com_err() do the formatting.
- Various cases where X library functions expecting a parameter of type
wchar_t * were instead passed a parameter of type XChar2b *. The two
types look similar, but are not the same and are _not_ interchangeable.
- An overly-simplistic configure test which failed to detect existence of
<term.h> on Solaris, due to not including <curses.h>.
- Using the wrong type for the flags output of krb5_auth_con_getflags()
when building against Heimdal. A configure test is added to detect
the correct type.
|
|
|
|
|
| |
i.e. don't keep generated or foreign stuff in our source tree.
As a side effect, this lets us use a libtool, etc. from this century
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Since these are constants used in the protocol be explicit about what values
the C compiler is assigning them, and that they can't be arbitrarily
rearranged.
Also, since we were promising strings for describing them in zephyr.h
actually define the array.
|
|
|
|
| |
nuke-trailing-whitespace.
|
| |
|
| |
|
| |
|
|
|
|
| |
also, we probably shouldn't undefine it
|
|
|
|
|
| |
interoperability issues. But this will buy us a little bit more space for
authenticators & such.
|
|
|
|
|
|
| |
keyusage stuff
such that it actually works.
|
| |
|
| |
|
|
|
|
|
| |
It helps if you save your buffer before committing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lib/charset.c
h/zephyr/zephyr.h
Refactor ZGetCharset into ZGetCharset and a function that does
all the same defaulting but returns a string.
ZTransliterate is a zephyr-metaphor wrapper for iconv.
lib/zephyr-tests.py
Wrappers for the functions in charset.c (but not tests)
lib/zephyr_tests.txt
Tests for the functions in charset.c
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Basically, the plan is to have pointers to each header indiviual header
field in z_hdr_fields.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
checksums from a mixed server.
|
| |
|
|
|
|
|
|
|
|
|
| |
define REALM_SZ based on maximum dns name when it's not; this needs to be
split from the krb4 REALM_SZ and rethought in context of MAX_PRINCIPAL_SIZE
remove prototype macro from Z_WaitForNotice. Need to come back and do more
of that.
|
| |
|
| |
|