summaryrefslogtreecommitdiff
path: root/server/dispatch.c
Commit message (Collapse)AuthorAge
* Dewarn with -DDEBUGGravatar Jeffrey Hutzelman2013-03-18
| | | | It's sort of nice to be able to build with debugging.
* server: add CLIENT_FLUSHSUBS control messageGravatar Jeffrey Hutzelman2013-02-26
| | | | | | | | | 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
* server: Don't check auth on client acksGravatar Jeffrey Hutzelman2013-02-14
| | | | | | | | Client acks don't actually include authenticators or checksums, but do claim to be authed if the original notice was. So, don't bother ever checking authentication on client acks. This fixes #93
* server: Send SERVACK in response to GIMMESUBSGravatar Jeffrey Hutzelman2013-02-14
| | | | | | | | | | When processing a request to retrieve subscriptions, we actually do need to send a SERVACK in response to the incoming notice before sending the subscription list (directly) to the client that requested it. The line that did this was inadvertently removed when the OLD_COMPAT support was removed in commit 9b709859db5310444052d13ed8ebccec6ead1669. This fixes #91
* Clean up warningsGravatar Jeffrey Hutzelman2013-02-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Inline functions should be declared staticGravatar Jeffrey Hutzelman2013-01-31
|
* Add IP-address and negative ACL entriesGravatar Jeffrey Hutzelman2013-01-19
| | | | | | | | | | | | | | | | | | | | | This allows ACLs to grant access based on the IP address of a client instead of its principal name. This is done using ACL entries with the syntax "@a.b.c.d". Currently, only IPv4 addresses are supported. A single entry may match all hosts on a particular subnet by using CIDR notation, written as @a.b.c.d/nn. If no length is given, 32 is assumed. Host and principal entries can be freely mixed within the same ACL; the ACL matches if any entry matches the client. Note that this means that ACLs can now match unauthenticated clients (however, this does not lift the general constraint that only authenticated clients can subscribe at all). Additionally, support for negative ACL entries is added. These entries are indicated by a leading '!', which may be applied to both principal and host entries. Negative entries are applied in the style of AFS ACLs; that is, a matching negative entry overrides any positive entry and thus guarantees that matching clients will be denied access. (edited slightly for style by kcr@1TS.ORG)
* Actually remove the #ifdef OLD_COMPAT and NEW_COMPAT codeGravatar Karl Ramm2012-02-11
| | | | To my knowledge, this hasn't been enabled by anyone in ages
* Try and log more on authentication failures.Gravatar Karl Ramm2012-01-25
|
* Clean up xmitGravatar Karl Ramm2010-08-24
|
* A argument for not doing a "quick change" at 3am. (braino, fixes previous)Gravatar Karl Ramm2010-08-24
|
* Don't leak memory when refragmenting sketchy packets.Gravatar Karl Ramm2010-08-24
|
* Fix some formatting, and add some paranoia about oversized headers.Gravatar Karl Ramm2010-08-22
| | | | (Thanks to nelhage@mit.edu for noticing the formatting problem)
* it is the TWENTY-FIRST CENTURY, we can STOP USING K&RGravatar Karl Ramm2009-08-09
|
* Factor out code that extacts a sockaddr_in from a notice (and stop using theGravatar Karl Ramm2009-07-29
| | | | | | | deprecated sender_addr macro.) Actually remove the code from realm.c:real_dispatch because nothing was using the result. Ran nuke-trailing-whitespace on all the files I touched, as usual.
* Refactor ZCheckRealmAuthentication into ZCheckSrvAuthentication.Gravatar Karl Ramm2009-07-27
| | | | (also fiddle around with what krb4 checksums are available in krb5-only land)
* Refactor some gratuitously duplicated code in handle_packetGravatar Karl Ramm2009-07-26
|
* zephyr.h will pull in zephyr_err.h will pull in com_err.h without having to ↵Gravatar Karl Ramm2009-07-13
| | | | figure out where it is
* For now, host managers have IPv4 addresses.Gravatar Karl Ramm2009-04-19
| | | | | | | Really, it almost terrifies me that servers have probably been sending shutdown messages to stack-garbage address families for the past two decades
* The hash function should probably be unsigned.Gravatar Karl Ramm2009-04-10
| | | | | | Also, the C preprocessor has seen enough abuse; it is the future, so we can abuse inline functions instead.
* unused static function unless DEBUGGravatar Karl Ramm2009-03-22
|
* 19 fields zephyrgramsGravatar Karl Ramm2009-03-02
|
* propagate consting of ZGetRealmGravatar Karl Ramm2008-12-22
|
* replace gratuitous use sprintf with strncpy and edifying comment. Also fix ↵Gravatar Karl Ramm2008-12-22
| | | | fencepost error.
* complicated krb4 arithmetic -> MAX_PRINCIPAL_SIZEGravatar Karl Ramm2008-12-21
| | | | | also check the size of what we're sprintfing into
* remove packet address checkGravatar Karl Ramm2008-03-24
|
* collapse state of some non-debugging #if [01]'d codeGravatar Karl Ramm2008-01-21
|
* collapse state of a bunch of #if 0 and #if 1 debugging outputGravatar Karl Ramm2008-01-21
|
* passes gcc -Wall with no warnings other than des cryppt C_block sadness and ↵Gravatar Karl Ramm2008-01-21
| | | | getsid problem
* de K&RifyGravatar Karl Ramm2008-01-21
|
* applied athena-update-branch patchGravatar Karl Ramm2007-12-25
|
* Reintroduce checksum enforcement changes.Gravatar Greg Hudson2001-04-10
|
* Revert last change; we're not ready to start enforcing checksums onGravatar Greg Hudson2001-03-05
| | | | all operations yet.
* Changes from CMU:Gravatar Garry Zacheiss2001-02-26
| | | | | | | | | | | | | | | | | | | | | | | * Better interrealm support: - Don't do unneeded check on ack authenticity. - Avoid allowing a remote realm to forge a local user sending to an acl'ed class. - Fix calling conventions. - Refragment packets if we grew them and now need to. - Avoiding failing to ack if packet grew. - Tell other realms we're shutting down. - Avoid nacking bogus packets from broken servers. * Avoid buffer overrun (in #if 0'd code) * memset 0 cleanliness.
* Remove an old compatibility compromise from back when we started requiringGravatar Greg Hudson2000-02-11
| | | | | checksums on messages. With this change, you can't fiddle with subs if you don't have a valid checksum.
* Some RCS ID cleanup: delete $Log$ and replace other RCS keywords with $Id$.Gravatar Greg Hudson1999-01-22
|
* Don't free nacked until we've finished looking at it (an alternativeGravatar Greg Hudson1998-10-16
| | | | | | would be to save nacked->client in a variable). Do make sure to remove nacked from the list before calling client_deregister(), though.
* Keep track of how responsive clients have been and don't time out good ones.Gravatar Greg Hudson1998-09-02
|
* Check in the right version of this file for the last change (oops).Gravatar Greg Hudson1998-08-21
|
* Don't penalize clients when we get an EAGAIN or ENOBUFS from sendto().Gravatar Greg Hudson1998-08-21
|
* Eliminate some cruft: nuke two unused fields in the client structureGravatar Greg Hudson1998-07-16
| | | | | and rename client_which_client() to client_find() and make the second argument a port instead of a notice.
* ZEPHYR_USES_KERBEROS -> HAVE_KRB4; ZEPHYR_USES_HESIOD -> HAVE_HESIODGravatar Greg Hudson1997-10-25
|
* Remove an unneeded ampersand which was generating compiler type warnings.Gravatar Greg Hudson1997-09-23
|
* Pull in sources from zephyr locker. See /mit/zephyr/repository forGravatar Greg Hudson1997-09-14
| | | | detailed change information.
* Support for more streamlined zephyr sending and other features.Gravatar Greg Hudson1994-10-31
|
* Use symbolic name "NOW" rather than t_localGravatar Richard Basch1994-03-15
|
* Use t_local structure, rather than calling gettimeofday()Gravatar Richard Basch1994-03-15
|
* Changed bzero/bcmp/bcopy to memset/memcmp/memcpy [ANSI]Gravatar Richard Basch1993-11-19
|
* Changed bcopy/bzero to _BCOPY/_BZERO macros (in <zephyr/zephyr_conf.h>)Gravatar Richard Basch1993-09-24
|
* Changed some of the logging levelsGravatar Richard Basch1993-03-22
|