summaryrefslogtreecommitdiff
path: root/server/dispatch.c
diff options
context:
space:
mode:
authorGravatar Jeffrey Hutzelman <jhutz@cmu.edu>2013-02-11 23:39:44 -0500
committerGravatar Jeffrey Hutzelman <jhutz@cmu.edu>2013-02-14 19:57:32 -0500
commitf473694b272b517e13d14d85916c43c6b03ddda4 (patch)
treedd5593ef3e13cca0a5aeced07497b1f888289a23 /server/dispatch.c
parentf8fd0932c84b1642a71f78ad72e87d1842a1d2ab (diff)
server: Don't check auth on client acks
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
Diffstat (limited to 'server/dispatch.c')
-rw-r--r--server/dispatch.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/server/dispatch.c b/server/dispatch.c
index 256a786..9981581 100644
--- a/server/dispatch.c
+++ b/server/dispatch.c
@@ -205,6 +205,12 @@ handle_packet(void)
whence = &whoisit;
}
+ /* Don't bother checking authentication on client ACKs */
+ if (new_notice.z_kind == CLIENTACK) {
+ nack_cancel(&new_notice, &whoisit);
+ return;
+ }
+
/* Clients don't check auth of acks, nor do we make it so they
can in general, so this is safe. */
if (new_notice.z_kind == SERVACK || new_notice.z_kind == SERVNAK) {