summaryrefslogtreecommitdiff
path: root/server/dispatch.c
diff options
context:
space:
mode:
authorGravatar Greg Hudson <ghudson@mit.edu>2001-03-05 17:21:43 +0000
committerGravatar Greg Hudson <ghudson@mit.edu>2001-03-05 17:21:43 +0000
commit73358fd9104689e120ac0e1194455b95e72b1359 (patch)
treefefcf62cee4433196dfdb664c0d9809aa144886d /server/dispatch.c
parent3136c7a82f39c2d461b473b3fc7f014c61021681 (diff)
Revert last change; we're not ready to start enforcing checksums on
all operations yet.
Diffstat (limited to 'server/dispatch.c')
-rw-r--r--server/dispatch.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/server/dispatch.c b/server/dispatch.c
index 493fcd4..f762926 100644
--- a/server/dispatch.c
+++ b/server/dispatch.c
@@ -257,7 +257,20 @@ dispatch(notice, auth, who, from_server)
char dbg_buf[BUFSIZ];
#endif
- authflag = (auth == ZAUTH_YES);
+ /* Set "authflag" to 1 or 0 for handler functions. Treat
+ * ZAUTH_CKSUM_FAILED as authentic except for sendit(), which is
+ * handled below. */
+ switch (auth) {
+ case ZAUTH_YES:
+ case ZAUTH_CKSUM_FAILED:
+ authflag = 1;
+ break;
+ case ZAUTH_FAILED:
+ case ZAUTH_NO:
+ default:
+ authflag = 0;
+ break;
+ }
if ((int) notice->z_kind < (int) UNSAFE ||
(int) notice->z_kind > (int) CLIENTACK) {
@@ -311,6 +324,8 @@ dispatch(notice, auth, who, from_server)
admin_notices.val++;
status = server_adispatch(notice, authflag, who, me_server);
} else {
+ if (auth == ZAUTH_CKSUM_FAILED)
+ authflag = 0;
if (!realm_bound_for_realm(ZGetRealm(), notice->z_recipient)) {
cp = strchr(notice->z_recipient, '@');
if (!cp ||