summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/ng_mppc.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2007-05-04 16:20:47 +0000
committermav <mav@FreeBSD.org>2007-05-04 16:20:47 +0000
commite650654da1b35d538be4bbece824d0d83a3eff42 (patch)
treeb4adf8e588413455e88395fd57837b606404ad49 /sys/netgraph/ng_mppc.c
parentf6fc3acc90589066f5c653a82ff5aa5105e99303 (diff)
downloadFreeBSD-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.c12
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 */
OpenPOWER on IntegriCloud