Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Jan 2014 15:36:40 +0000
From:      Roy Marples <roy@marples.name>
To:        freebsd-net@freebsd.org
Subject:   IPv6: report address flag changes to userland
Message-ID:  <b9c07882a45edb3ad04b9f9ad092b268@mail.marples.name>

next in thread | raw e-mail | index | archive | help
--=_e87c2615c7ad8fd96c87aab790f1c042
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=UTF-8;
 format=flowed

Hi List

There is zero point as I see it in announcing newly added tentative 
addresses to userland.
It's not as if userland can actually use the address at this point.
However, there is immense benefit in announcing address flag changes, 
such as removal of tentative, or addition of the other flags.

The main benefit for this patch is so that dhcpcd(8) listen for when the 
kernel has completed DAD and has announced the result.
dhcpcd can then react immediately instead of having to wait for the full 
time as dictated by the RFC.

The attached patch addresses the above and was cut from FreeBSD-9 - 
there is a small adjustment needed for -current which is noted in the 
patch.
The patch is based on the work I did in NetBSD a few months ago 
documented here:
http://netbsd.2816.n7.nabble.com/PATCH-to-only-announce-RTM-NEWADDR-once-IPv6-DAD-completes-tp281110.html

Comments?

Roy
--=_e87c2615c7ad8fd96c87aab790f1c042
Content-Transfer-Encoding: base64
Content-Type: text/x-diff;
 name=freebsd-ipv6-tentative.diff
Content-Disposition: attachment;
 filename=freebsd-ipv6-tentative.diff;
 size=8768

SW5kZXg6IHN5cy9uZXRpbmV0Ni9pbjYuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0aW5ldDYvaW42
LmMJKHJldmlzaW9uIDI1NTIzNSkKKysrIHN5cy9uZXRpbmV0Ni9pbjYuYwkod29ya2luZyBjb3B5
KQpAQCAtMTQwLDggKzE0MCw5IEBACiAjZGVmaW5lIGlhNjJpZmEoaWE2KQkoJigoaWE2KS0+aWFf
aWZhKSkKIAogdm9pZAotaW42X2lmYWRkbG9vcChzdHJ1Y3QgaWZhZGRyICppZmEpCitpbjZfaWZk
b2xvb3Aoc3RydWN0IGlmYWRkciAqaWZhLCBpbnQgbGxmbGFncykKIHsKKwlpbnQgYW5ub3VuY2lu
ZzsKIAlzdHJ1Y3Qgc29ja2FkZHJfZGwgZ2F0ZXdheTsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW42IG1h
c2ssIGFkZHI7CiAJc3RydWN0IHJ0ZW50cnkgcnQ7CkBAIC0xNTEsNzMgKzE1Miw2MyBAQAogCiAJ
aWEgPSBpZmEyaWE2KGlmYSk7CiAJaWZwID0gaWZhLT5pZmFfaWZwOwotCUlGX0FGREFUQV9MT0NL
KGlmcCk7Ci0JaWZhLT5pZmFfcnRyZXF1ZXN0ID0gTlVMTDsKLQotCS8qIFhYWCBRTAotCSAqIHdl
IG5lZWQgdG8gcmVwb3J0IHJ0X25ld2FkZHJtc2cKLQkgKi8KLQlsbiA9IGxsYV9sb29rdXAoTExU
QUJMRTYoaWZwKSwgKExMRV9DUkVBVEUgfCBMTEVfSUZBRERSIHwKLQkgICAgTExFX0VYQ0xVU0lW
RSksIChzdHJ1Y3Qgc29ja2FkZHIgKikmaWEtPmlhX2FkZHIpOwotCUlGX0FGREFUQV9VTkxPQ0so
aWZwKTsKLQlpZiAobG4gIT0gTlVMTCkgewotCQlsbi0+bGFfZXhwaXJlID0gMDsgIC8qIGZvciBJ
UHY2IHRoaXMgbWVhbnMgcGVybWFuZW50ICovCi0JCWxuLT5sbl9zdGF0ZSA9IE5ENl9MTElORk9f
UkVBQ0hBQkxFOwotCQkvKgotCQkgKiBpbml0aWFsaXplIGZvciBydG1zZyBnZW5lcmF0aW9uCi0J
CSAqLworCS8qIERvbid0IHJlcG9ydCBuZXcgdGVudGF0aXZlIGFkZHJlc3NlcyB0byB0aGUgcm91
dGluZyBzb2NrZXQgKi8KKwlhbm5vdW5jaW5nID0gKGxsZmxhZ3MgJiBMTEVfREVMRVRFIHx8CisJ
ICAgICgoaWEtPmlhNl9mbGFncyAmIElONl9JRkZfVEVOVEFUSVZFKSA9PSAwKSk7CisJaWYgKGFu
bm91bmNpbmcpIHsKKwkJbWVtY3B5KCZhZGRyLCAmaWEtPmlhX2FkZHIsIHNpemVvZihpYS0+aWFf
YWRkcikpOworCQltZW1jcHkoJm1hc2ssICZpYS0+aWFfcHJlZml4bWFzaywgc2l6ZW9mKGlhLT5p
YV9wcmVmaXhtYXNrKSk7CiAJCWJ6ZXJvKCZnYXRld2F5LCBzaXplb2YoZ2F0ZXdheSkpOwogCQln
YXRld2F5LnNkbF9sZW4gPSBzaXplb2YoZ2F0ZXdheSk7CiAJCWdhdGV3YXkuc2RsX2ZhbWlseSA9
IEFGX0xJTks7CiAJCWdhdGV3YXkuc2RsX25sZW4gPSAwOwotCQlnYXRld2F5LnNkbF9hbGVuID0g
NjsKLQkJbWVtY3B5KGdhdGV3YXkuc2RsX2RhdGEsICZsbi0+bGxfYWRkci5tYWNfYWxpZ25lZCwK
LQkJICAgIHNpemVvZihsbi0+bGxfYWRkcikpOwotCQlMTEVfV1VOTE9DSyhsbik7CisJCWJ6ZXJv
KCZydCwgc2l6ZW9mKHJ0KSk7CisJCXJ0LnJ0X2dhdGV3YXkgPSAoc3RydWN0IHNvY2thZGRyICop
JmdhdGV3YXk7CisJCXJ0LnJ0X2ZsYWdzID0gUlRGX0hPU1QgfCBSVEZfU1RBVElDOworCQlydF9t
YXNrKCZydCkgPSAoc3RydWN0IHNvY2thZGRyICopJm1hc2s7CisJCXJ0X2tleSgmcnQpID0gKHN0
cnVjdCBzb2NrYWRkciAqKSZhZGRyOwogCX0KIAotCWJ6ZXJvKCZydCwgc2l6ZW9mKHJ0KSk7Ci0J
cnQucnRfZ2F0ZXdheSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikmZ2F0ZXdheTsKLQltZW1jcHkoJm1h
c2ssICZpYS0+aWFfcHJlZml4bWFzaywgc2l6ZW9mKGlhLT5pYV9wcmVmaXhtYXNrKSk7Ci0JbWVt
Y3B5KCZhZGRyLCAmaWEtPmlhX2FkZHIsIHNpemVvZihpYS0+aWFfYWRkcikpOwotCXJ0X21hc2so
JnJ0KSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikmbWFzazsKLQlydF9rZXkoJnJ0KSA9IChzdHJ1Y3Qg
c29ja2FkZHIgKikmYWRkcjsKLQlydC5ydF9mbGFncyA9IFJURl9VUCB8IFJURl9IT1NUIHwgUlRG
X1NUQVRJQzsKLQlydF9uZXdhZGRybXNnKFJUTV9BREQsIGlmYSwgMCwgJnJ0KTsKLX0KKwlpZiAo
bGxmbGFncyAmIExMRV9ERUxFVEUpIHsKKwkJbGx0YWJsZV9wcmVmaXhfZnJlZShBRl9JTkVUNiwg
KHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyLAorCQkgICAgKHN0cnVjdCBzb2NrYWRkciAqKSZtYXNr
LCBMTEVfU1RBVElDKTsKKwkJZ2F0ZXdheS5zZGxfYWxlbiA9IGlmcC0+aWZfYWRkcmxlbjsKKwl9
IGVsc2UgeworCQlsbGZsYWdzIHw9IExMRV9JRkFERFI7CisJCUlGX0FGREFUQV9MT0NLKGlmcCk7
CisJCWlmIChsbGZsYWdzICYgTExFX0NSRUFURSkgeworCQkJbGxmbGFncyB8PSBMTEVfRVhDTFVT
SVZFOworCQkgICAgICAgIGlmYS0+aWZhX3J0cmVxdWVzdCA9IE5VTEw7IC8vIC1jdXJyZW50IHVz
ZSBuZDZfcnRyZXF1ZXN0CisJCX0KKwkJbG4gPSBsbGFfbG9va3VwKExMVEFCTEU2KGlmcCksIGxs
ZmxhZ3MsCisJCSAgICAoc3RydWN0IHNvY2thZGRyICopJmlhLT5pYV9hZGRyKTsKKwkJSUZfQUZE
QVRBX1VOTE9DSyhpZnApOworCQlpZiAobG4gIT0gTlVMTCkgeworCQkJaWYgKGxsZmxhZ3MgJiBM
TEVfQ1JFQVRFKSB7CisJCQkJbG4tPmxhX2V4cGlyZSA9IDA7ICAvKiBwZXJtYW5lbnQgKi8KKwkJ
CQlsbi0+bG5fc3RhdGUgPSBORDZfTExJTkZPX1JFQUNIQUJMRTsKKwkJCX0KKwkJCWlmIChhbm5v
dW5jaW5nKSB7CisJCQkJZ2F0ZXdheS5zZGxfYWxlbiA9IDY7CisJCQkJbWVtY3B5KGdhdGV3YXku
c2RsX2RhdGEsCisJCQkJICAgICZsbi0+bGxfYWRkci5tYWNfYWxpZ25lZCwKKwkJCQkgICAgc2l6
ZW9mKGxuLT5sbF9hZGRyKSk7CisJCQl9CisJCQlpZiAobGxmbGFncyAmIExMRV9FWENMVVNJVkUp
CisJCQkJTExFX1dVTkxPQ0sobG4pOworCQkJZWxzZQorCQkJCUxMRV9SVU5MT0NLKGxuKTsKKwkJ
fQorCX0KIAotdm9pZAotaW42X2lmcmVtbG9vcChzdHJ1Y3QgaWZhZGRyICppZmEpCi17Ci0Jc3Ry
dWN0IHNvY2thZGRyX2RsIGdhdGV3YXk7Ci0Jc3RydWN0IHNvY2thZGRyX2luNiBtYXNrLCBhZGRy
OwotCXN0cnVjdCBydGVudHJ5IHJ0MDsKLQlzdHJ1Y3QgaW42X2lmYWRkciAqaWE7Ci0Jc3RydWN0
IGlmbmV0ICppZnA7Ci0KLQlpYSA9IGlmYTJpYTYoaWZhKTsKLQlpZnAgPSBpZmEtPmlmYV9pZnA7
Ci0JSUZfQUZEQVRBX0xPQ0soaWZwKTsKLQlsbGFfbG9va3VwKExMVEFCTEU2KGlmcCksIChMTEVf
REVMRVRFIHwgTExFX0lGQUREUiksCi0JICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikmaWEtPmlhX2Fk
ZHIpOwotCUlGX0FGREFUQV9VTkxPQ0soaWZwKTsKLQotCS8qCi0JICogaW5pdGlhbGl6ZSBmb3Ig
cnRtc2cgZ2VuZXJhdGlvbgotCSAqLwotCWJ6ZXJvKCZnYXRld2F5LCBzaXplb2YoZ2F0ZXdheSkp
OwotCWdhdGV3YXkuc2RsX2xlbiA9IHNpemVvZihnYXRld2F5KTsKLQlnYXRld2F5LnNkbF9mYW1p
bHkgPSBBRl9MSU5LOwotCWdhdGV3YXkuc2RsX25sZW4gPSAwOwotCWdhdGV3YXkuc2RsX2FsZW4g
PSBpZnAtPmlmX2FkZHJsZW47Ci0JYnplcm8oJnJ0MCwgc2l6ZW9mKHJ0MCkpOwotCXJ0MC5ydF9n
YXRld2F5ID0gKHN0cnVjdCBzb2NrYWRkciAqKSZnYXRld2F5OwotCW1lbWNweSgmbWFzaywgJmlh
LT5pYV9wcmVmaXhtYXNrLCBzaXplb2YoaWEtPmlhX3ByZWZpeG1hc2spKTsKLQltZW1jcHkoJmFk
ZHIsICZpYS0+aWFfYWRkciwgc2l6ZW9mKGlhLT5pYV9hZGRyKSk7Ci0JcnRfbWFzaygmcnQwKSA9
IChzdHJ1Y3Qgc29ja2FkZHIgKikmbWFzazsKLQlydF9rZXkoJnJ0MCkgPSAoc3RydWN0IHNvY2th
ZGRyICopJmFkZHI7Ci0JcnQwLnJ0X2ZsYWdzID0gUlRGX0hPU1QgfCBSVEZfU1RBVElDOwotCXJ0
X25ld2FkZHJtc2coUlRNX0RFTEVURSwgaWZhLCAwLCAmcnQwKTsKKwlpZiAoYW5ub3VuY2luZykg
eworCQlpZiAobGxmbGFncyAmIExMRV9ERUxFVEUpCisJCQlydF9uZXdhZGRybXNnKFJUTV9ERUxF
VEUsIGlmYSwgMCwgJnJ0KTsKKwkJZWxzZSB7CisJCQlydC5ydF9mbGFncyB8PSBSVEZfVVA7CisJ
CQlydF9uZXdhZGRybXNnKFJUTV9BREQsIGlmYSwgMCwgJnJ0KTsKKwkJfQorCX0KIH0KIAogaW50
CkBAIC0xMDIxLDEwICsxMDEyLDYgQEAKIAl9IGVsc2UKIAkJaWEtPmlhNl9saWZldGltZS5pYTZ0
X3ByZWZlcnJlZCA9IDA7CiAKLQkvKiByZXNldCB0aGUgaW50ZXJmYWNlIGFuZCByb3V0aW5nIHRh
YmxlIGFwcHJvcHJpYXRlbHkuICovCi0JaWYgKChlcnJvciA9IGluNl9pZmluaXQoaWZwLCBpYSwg
JmlmcmEtPmlmcmFfYWRkciwgaG9zdElzTmV3KSkgIT0gMCkKLQkJZ290byB1bmxpbms7Ci0KIAkv
KgogCSAqIGNvbmZpZ3VyZSBhZGRyZXNzIGZsYWdzLgogCSAqLwpAQCAtMTA1MCw2ICsxMDM3LDEw
IEBACiAJaWYgKE5EX0lGSU5GTyhpZnApLT5mbGFncyAmIE5ENl9JRkZfSUZESVNBQkxFRCkKIAkJ
aWEtPmlhNl9mbGFncyB8PSBJTjZfSUZGX1RFTlRBVElWRTsKIAorCS8qIHJlc2V0IHRoZSBpbnRl
cmZhY2UgYW5kIHJvdXRpbmcgdGFibGUgYXBwcm9wcmlhdGVseS4gKi8KKwlpZiAoKGVycm9yID0g
aW42X2lmaW5pdChpZnAsIGlhLCAmaWZyYS0+aWZyYV9hZGRyLCBob3N0SXNOZXcpKSAhPSAwKQor
CQlnb3RvIHVubGluazsKKwogCS8qCiAJICogV2UgYXJlIGRvbmUgaWYgd2UgaGF2ZSBzaW1wbHkg
bW9kaWZpZWQgYW4gZXhpc3RpbmcgYWRkcmVzcy4KIAkgKi8KQEAgLTE4ODUsNiArMTg3Niw4IEBA
CiAJLyogQWRkIG93bmFkZHIgYXMgbG9vcGJhY2sgcnRlbnRyeSwgaWYgbmVjZXNzYXJ5IChleC4g
b24gcDJwIGxpbmspLiAqLwogCWlmIChuZXdob3N0KQogCQlpbjZfaWZhZGRsb29wKCYoaWEtPmlh
X2lmYSkpOworCWVsc2UKKwkJbmQ2X25ld2FkZHJtc2coJihpYS0+aWFfaWZhKSk7CiAKIAlyZXR1
cm4gKGVycm9yKTsKIH0KSW5kZXg6IHN5cy9uZXRpbmV0Ni9pbjZfdmFyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gc3lzL25ldGluZXQ2L2luNl92YXIuaAkocmV2aXNpb24gMjU1MjM1KQorKysgc3lzL25ldGlu
ZXQ2L2luNl92YXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzc1LDggKzc3NSw5IEBACiBpbnQJaW42
X3ByZWZpeF9hZGRfaWZpZCBfX1AoKGludCwgc3RydWN0IGluNl9pZmFkZHIgKikpOwogdm9pZAlp
bjZfcHJlZml4X3JlbW92ZV9pZmlkIF9fUCgoaW50LCBzdHJ1Y3QgaW42X2lmYWRkciAqKSk7CiB2
b2lkCWluNl9wdXJnZXByZWZpeCBfX1AoKHN0cnVjdCBpZm5ldCAqKSk7Ci12b2lkCWluNl9pZnJl
bWxvb3Aoc3RydWN0IGlmYWRkciAqKTsKLXZvaWQJaW42X2lmYWRkbG9vcChzdHJ1Y3QgaWZhZGRy
ICopOwordm9pZAlpbjZfaWZkb2xvb3Aoc3RydWN0IGlmYWRkciAqLCBpbnQpOworI2RlZmluZQlp
bjZfaWZhZGRsb29wKGlmYSkJaW42X2lmZG9sb29wKChpZmEpLCBMTEVfQ1JFQVRFKQorI2RlZmlu
ZQlpbjZfaWZyZW1sb29wKGlmYSkJaW42X2lmZG9sb29wKChpZmEpLCBMTEVfREVMRVRFKQogCiBp
bnQJaW42X2lzX2FkZHJfZGVwcmVjYXRlZCBfX1AoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikpOwog
c3RydWN0IGlucGNiOwpJbmRleDogc3lzL25ldGluZXQ2L25kNi5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5
cy9uZXRpbmV0Ni9uZDYuYwkocmV2aXNpb24gMjU1MjM1KQorKysgc3lzL25ldGluZXQ2L25kNi5j
CSh3b3JraW5nIGNvcHkpCkBAIC02MzIsNyArNjMyLDEwIEBACiAJCX0gZWxzZSBpZiAoSUZBNl9J
U19ERVBSRUNBVEVEKGlhNikpIHsKIAkJCWludCBvbGRmbGFncyA9IGlhNi0+aWE2X2ZsYWdzOwog
Ci0JCQlpYTYtPmlhNl9mbGFncyB8PSBJTjZfSUZGX0RFUFJFQ0FURUQ7CisJCQlpZiAoKG9sZGZs
YWdzICYgSU42X0lGRl9ERVBSRUNBVEVEKSA9PSAwKSB7CisJCQkJaWE2LT5pYTZfZmxhZ3MgfD0g
SU42X0lGRl9ERVBSRUNBVEVEOworCQkJCW5kNl9uZXdhZGRybXNnKChzdHJ1Y3QgaWZhZGRyICop
aWE2KTsKKwkJCX0KIAogCQkJLyoKIAkJCSAqIElmIGEgdGVtcG9yYXJ5IGFkZHJlc3MgaGFzIGp1
c3QgYmVjb21lIGRlcHJlY2F0ZWQsCkBAIC02NjMsNyArNjY2LDEwIEBACiAJCQkgKiBBIG5ldyBS
QSBtaWdodCBoYXZlIG1hZGUgYSBkZXByZWNhdGVkIGFkZHJlc3MKIAkJCSAqIHByZWZlcnJlZC4K
IAkJCSAqLwotCQkJaWE2LT5pYTZfZmxhZ3MgJj0gfklONl9JRkZfREVQUkVDQVRFRDsKKwkJCWlm
IChpYTYtPmlhNl9mbGFncyAmIElONl9JRkZfREVQUkVDQVRFRCkgeworCQkJCWlhNi0+aWE2X2Zs
YWdzICY9IH5JTjZfSUZGX0RFUFJFQ0FURUQ7CisJCQkJbmQ2X25ld2FkZHJtc2coKHN0cnVjdCBp
ZmFkZHIgKilpYTYpOworCQkJfQogCQl9CiAJfQogCkluZGV4OiBzeXMvbmV0aW5ldDYvbmQ2LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gc3lzL25ldGluZXQ2L25kNi5oCShyZXZpc2lvbiAyNTUyMzUpCisrKyBz
eXMvbmV0aW5ldDYvbmQ2LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyOCw2ICs0MjgsNyBAQAogdm9p
ZCBuZDZfbnNfb3V0cHV0IF9fUCgoc3RydWN0IGlmbmV0ICosIGNvbnN0IHN0cnVjdCBpbjZfYWRk
ciAqLAogCWNvbnN0IHN0cnVjdCBpbjZfYWRkciAqLCBzdHJ1Y3QgbGxlbnRyeSAqLCBpbnQpKTsK
IGNhZGRyX3QgbmQ2X2lmcHRvbWFjIF9fUCgoc3RydWN0IGlmbmV0ICopKTsKKyNkZWZpbmUgbmQ2
X25ld2FkZHJtc2coaWZhKQlpbjZfaWZkb2xvb3AoKGlmYSksIDApCiB2b2lkIG5kNl9kYWRfc3Rh
cnQgX19QKChzdHJ1Y3QgaWZhZGRyICosIGludCkpOwogdm9pZCBuZDZfZGFkX3N0b3AgX19QKChz
dHJ1Y3QgaWZhZGRyICopKTsKIHZvaWQgbmQ2X2RhZF9kdXBsaWNhdGVkIF9fUCgoc3RydWN0IGlm
YWRkciAqKSk7CkluZGV4OiBzeXMvbmV0aW5ldDYvbmQ2X25ici5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5
cy9uZXRpbmV0Ni9uZDZfbmJyLmMJKHJldmlzaW9uIDI1NTIzNSkKKysrIHN5cy9uZXRpbmV0Ni9u
ZDZfbmJyLmMJKHdvcmtpbmcgY29weSkKQEAgLTEyMTgsMTQgKzEyMTgsMTEgQEAKIAkJCWlmYS0+
aWZhX2lmcCA/IGlmX25hbWUoaWZhLT5pZmFfaWZwKSA6ICI/Pz8iKTsKIAkJcmV0dXJuOwogCX0K
LQlpZiAoaWEtPmlhNl9mbGFncyAmIElONl9JRkZfQU5ZQ0FTVCkgeworCWlmIChpYS0+aWE2X2Zs
YWdzICYgSU42X0lGRl9BTllDQVNUIHx8ICFWX2lwNl9kYWRfY291bnQpIHsKIAkJaWEtPmlhNl9m
bGFncyAmPSB+SU42X0lGRl9URU5UQVRJVkU7CisJCW5kNl9uZXdhZGRybXNnKGlmYSk7CiAJCXJl
dHVybjsKIAl9Ci0JaWYgKCFWX2lwNl9kYWRfY291bnQpIHsKLQkJaWEtPmlhNl9mbGFncyAmPSB+
SU42X0lGRl9URU5UQVRJVkU7Ci0JCXJldHVybjsKLQl9CiAJaWYgKGlmYS0+aWZhX2lmcCA9PSBO
VUxMKQogCQlwYW5pYygibmQ2X2RhZF9zdGFydDogaWZhLT5pZmFfaWZwID09IE5VTEwiKTsKIAlp
ZiAoIShpZmEtPmlmYV9pZnAtPmlmX2ZsYWdzICYgSUZGX1VQKSkgewpAQCAtMTM4Myw2ICsxMzgw
LDcgQEAKIAkJCSAqIE5vIGR1cGxpY2F0ZSBhZGRyZXNzIGZvdW5kLgogCQkJICovCiAJCQlpYS0+
aWE2X2ZsYWdzICY9IH5JTjZfSUZGX1RFTlRBVElWRTsKKwkJCW5kNl9uZXdhZGRybXNnKGlmYSk7
CiAKIAkJCW5kNmxvZygoTE9HX0RFQlVHLAogCQkJICAgICIlczogREFEIGNvbXBsZXRlIGZvciAl
cyAtIG5vIGR1cGxpY2F0ZXMgZm91bmRcbiIsCkBAIC0xNDMyLDYgKzE0MzAsOSBAQAogCWxvZyhM
T0dfRVJSLCAiJXM6IG1hbnVhbCBpbnRlcnZlbnRpb24gcmVxdWlyZWRcbiIsCiAJICAgIGlmX25h
bWUoaWZwKSk7CiAKKwkvKiBJbmZvcm0gdGhlIHJvdXRpbmcgc29ja2V0IHRoYXQgREFEIGhhcyBj
b21wbGV0ZWQgKi8KKwluZDZfbmV3YWRkcm1zZyhpZmEpOworCiAJLyoKIAkgKiBJZiB0aGUgYWRk
cmVzcyBpcyBhIGxpbmstbG9jYWwgYWRkcmVzcyBmb3JtZWQgZnJvbSBhbiBpbnRlcmZhY2UKIAkg
KiBpZGVudGlmaWVyIGJhc2VkIG9uIHRoZSBoYXJkd2FyZSBhZGRyZXNzIHdoaWNoIGlzIHN1cHBv
c2VkIHRvIGJlCkluZGV4OiBzeXMvbmV0aW5ldDYvbmQ2X3J0ci5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5
cy9uZXRpbmV0Ni9uZDZfcnRyLmMJKHJldmlzaW9uIDI1NTIzNSkKKysrIHN5cy9uZXRpbmV0Ni9u
ZDZfcnRyLmMJKHdvcmtpbmcgY29weSkKQEAgLTE1MjUsOSArMTUyNSwxNSBAQAogCQkJCQlpZmEt
PmlhNl9mbGFncyAmPSB+SU42X0lGRl9ERVRBQ0hFRDsKIAkJCQkJaWZhLT5pYTZfZmxhZ3MgfD0g
SU42X0lGRl9URU5UQVRJVkU7CiAJCQkJCW5kNl9kYWRfc3RhcnQoKHN0cnVjdCBpZmFkZHIgKilp
ZmEsIDApOworCQkJCQkvKiBXZSB3aWxsIG5vdGlmeSB0aGUgcm91dGluZyBzb2NrZXQgb2YKKwkJ
CQkJICogdGhlIERBRCByZXN1bHQsIHNvIG5vIG5lZWQgdG8KKwkJCQkJICogaGVyZSAqLwogCQkJ
CX0KIAkJCX0gZWxzZSB7Ci0JCQkJaWZhLT5pYTZfZmxhZ3MgfD0gSU42X0lGRl9ERVRBQ0hFRDsK
KwkJCQlpZiAoKGlmYS0+aWE2X2ZsYWdzICYgSU42X0lGRl9ERVRBQ0hFRCkgPT0gMCkgeworCQkJ
CQlpZmEtPmlhNl9mbGFncyB8PSBJTjZfSUZGX0RFVEFDSEVEOworCQkJCQluZDZfbmV3YWRkcm1z
Zygoc3RydWN0IGlmYWRkciAqKWlmYSk7CisJCQkJfQogCQkJfQogCQl9CiAJfQo=
--=_e87c2615c7ad8fd96c87aab790f1c042--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b9c07882a45edb3ad04b9f9ad092b268>