diff options
author | mav <mav@FreeBSD.org> | 2007-05-04 16:20:47 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2007-05-04 16:20:47 +0000 |
commit | e650654da1b35d538be4bbece824d0d83a3eff42 (patch) | |
tree | b4adf8e588413455e88395fd57837b606404ad49 /sys/netgraph/ng_mppc.c | |
parent | f6fc3acc90589066f5c653a82ff5aa5105e99303 (diff) | |
download | FreeBSD-src-e650654da1b35d538be4bbece824d0d83a3eff42.zip FreeBSD-src-e650654da1b35d538be4bbece824d0d83a3eff42.tar.gz |
Avoid extra rc4_init() when ng_mppc_updatekey() going to do it anyway.
Approved by: glebius (mentor)
Diffstat (limited to 'sys/netgraph/ng_mppc.c')
-rw-r--r-- | sys/netgraph/ng_mppc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/netgraph/ng_mppc.c b/sys/netgraph/ng_mppc.c index 008c5ac..c955c78 100644 --- a/sys/netgraph/ng_mppc.c +++ b/sys/netgraph/ng_mppc.c @@ -545,16 +545,18 @@ ng_mppc_compress(node_p node, struct mbuf *m, struct mbuf **resultp) #ifdef NETGRAPH_MPPC_ENCRYPTION if ((d->cfg.bits & MPPE_BITS) != 0) { - /* Set header bits; need to reset key if we say we did */ + /* Set header bits */ header |= MPPC_FLAG_ENCRYPTED; - if ((header & MPPC_FLAG_FLUSHED) != 0) - rc4_init(&d->rc4, d->key, KEYLEN(d->cfg.bits)); /* Update key if it's time */ if ((d->cfg.bits & MPPE_STATELESS) != 0 || (d->cc & MPPE_UPDATE_MASK) == MPPE_UPDATE_FLAG) { - ng_mppc_updatekey(d->cfg.bits, - d->cfg.startkey, d->key, &d->rc4); + ng_mppc_updatekey(d->cfg.bits, + d->cfg.startkey, d->key, &d->rc4); + } else if ((header & MPPC_FLAG_FLUSHED) != 0) { + /* Need to reset key if we say we did + and ng_mppc_updatekey wasn't called to do it also. */ + rc4_init(&d->rc4, d->key, KEYLEN(d->cfg.bits)); } /* Encrypt packet */ |