kern/117234: [ipfw] [patch] ipfw send_pkt() and ipfw_tick()
don't seem to support IPV6
Joost Bekkers
joost at jodocus.org
Mon May 19 20:20:04 UTC 2008
The following reply was made to PR kern/117234; it has been noted by GNATS.
From: "Joost Bekkers" <joost at jodocus.org>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: kern/117234: [ipfw] [patch] ipfw send_pkt() and ipfw_tick()
don't seem to support IPV6
Date: Mon, 19 May 2008 22:15:20 +0200 (CEST)
------=_20080519221520_63844
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
Found the problem. Two hton() statements went missing with the original
patch from mlaier at .
I've attatched a corrected version of the original diff and one against 7.0R
------=_20080519221520_63844
Content-Type: application/octet-stream; name="ipfw_v6send.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ipfw_v6send.diff"
SW5kZXg6IGlwX2Z3Mi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9u
ZXRpbmV0L2lwX2Z3Mi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE3NQpkaWZmIC11IC1yMS4x
NzUgaXBfZncyLmMKLS0tIGlwX2Z3Mi5jCTcgT2N0IDIwMDcgMjA6NDQ6MjMgLTAwMDAJMS4xNzUK
KysrIGlwX2Z3Mi5jCTE5IE9jdCAyMDA3IDEyOjM4OjE2IC0wMDAwCkBAIC05OCw2ICs5OCw3IEBA
CiAjaW5jbHVkZSA8bmV0aW5ldC9pcDYuaD4KICNpbmNsdWRlIDxuZXRpbmV0L2ljbXA2Lmg+CiAj
aWZkZWYgSU5FVDYKKyNpbmNsdWRlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+CiAjaW5jbHVkZSA8bmV0
aW5ldDYvc2NvcGU2X3Zhci5oPgogI2VuZGlmCiAKQEAgLTI0MSw2ICsyNDIsOSBAQAogI2RlZmlu
ZQlJUEZXX0RZTl9VTkxPQ0soKQltdHhfdW5sb2NrKCZpcGZ3X2R5bl9tdHgpCiAjZGVmaW5lCUlQ
RldfRFlOX0xPQ0tfQVNTRVJUKCkJbXR4X2Fzc2VydCgmaXBmd19keW5fbXR4LCBNQV9PV05FRCkK
IAorc3RhdGljIHN0cnVjdCBtYnVmICpzZW5kX3BrdChzdHJ1Y3QgbWJ1ZiAqLCBzdHJ1Y3QgaXBm
d19mbG93X2lkICosCisgICAgdV9pbnQzMl90LCB1X2ludDMyX3QsIGludCk7CisKIC8qCiAgKiBU
aW1lb3V0cyBmb3IgdmFyaW91cyBldmVudHMgaW4gaGFuZGluZyBkeW5hbWljIHJ1bGVzLgogICov
CkBAIC02NzEsNjcgKzY3NSwyNSBAQAogfQogCiBzdGF0aWMgdm9pZAotc2VuZF9yZWplY3Q2KHN0
cnVjdCBpcF9md19hcmdzICphcmdzLCBpbnQgY29kZSwgdV9pbnQgaGxlbiwgc3RydWN0IGlwNl9o
ZHIgKmlwNikKK3NlbmRfcmVqZWN0NihzdHJ1Y3QgaXBfZndfYXJncyAqYXJncywgaW50IGNvZGUs
IHVfaW50IGhsZW4sCisgICAgc3RydWN0IGlwNl9oZHIgKmlwNikKIHsKIAlzdHJ1Y3QgbWJ1ZiAq
bTsKIAogCW0gPSBhcmdzLT5tOwogCWlmIChjb2RlID09IElDTVA2X1VOUkVBQ0hfUlNUICYmIGFy
Z3MtPmZfaWQucHJvdG8gPT0gSVBQUk9UT19UQ1ApIHsKIAkJc3RydWN0IHRjcGhkciAqdGNwOwot
CQl0Y3Bfc2VxIGFjaywgc2VxOwotCQlpbnQgZmxhZ3M7Ci0JCXN0cnVjdCB7Ci0JCQlzdHJ1Y3Qg
aXA2X2hkciBpcDY7Ci0JCQlzdHJ1Y3QgdGNwaGRyIHRoOwotCQl9IHRpOwogCQl0Y3AgPSAoc3Ry
dWN0IHRjcGhkciAqKSgoY2hhciAqKWlwNiArIGhsZW4pOwogCi0JCWlmICgodGNwLT50aF9mbGFn
cyAmIFRIX1JTVCkgIT0gMCkgewotCQkJbV9mcmVlbShtKTsKLQkJCWFyZ3MtPm0gPSBOVUxMOwot
CQkJcmV0dXJuOwotCQl9Ci0KLQkJdGkuaXA2ID0gKmlwNjsKLQkJdGkudGggPSAqdGNwOwotCQl0
aS50aC50aF9zZXEgPSBudG9obCh0aS50aC50aF9zZXEpOwotCQl0aS50aC50aF9hY2sgPSBudG9o
bCh0aS50aC50aF9hY2spOwotCQl0aS5pcDYuaXA2X254dCA9IElQUFJPVE9fVENQOwotCi0JCWlm
ICh0aS50aC50aF9mbGFncyAmIFRIX0FDSykgewotCQkJYWNrID0gMDsKLQkJCXNlcSA9IHRpLnRo
LnRoX2FjazsKLQkJCWZsYWdzID0gVEhfUlNUOwotCQl9IGVsc2UgewotCQkJYWNrID0gdGkudGgu
dGhfc2VxOwotCQkJaWYgKChtLT5tX2ZsYWdzICYgTV9QS1RIRFIpICE9IDApIHsKLQkJCQkvKgot
CQkJCSAqIHRvdGFsIG5ldyBkYXRhIHRvIEFDSyBpczoKLQkJCQkgKiB0b3RhbCBwYWNrZXQgbGVu
Z3RoLAotCQkJCSAqIG1pbnVzIHRoZSBoZWFkZXIgbGVuZ3RoLAotCQkJCSAqIG1pbnVzIHRoZSB0
Y3AgaGVhZGVyIGxlbmd0aC4KLQkJCQkgKi8KLQkJCQlhY2sgKz0gbS0+bV9wa3RoZHIubGVuIC0g
aGxlbgotCQkJCQktICh0aS50aC50aF9vZmYgPDwgMik7Ci0JCQl9IGVsc2UgaWYgKGlwNi0+aXA2
X3BsZW4pIHsKLQkJCQlhY2sgKz0gbnRvaHMoaXA2LT5pcDZfcGxlbikgKyBzaXplb2YoKmlwNikg
LQotCQkJCSAgICBobGVuIC0gKHRpLnRoLnRoX29mZiA8PCAyKTsKLQkJCX0gZWxzZSB7Ci0JCQkJ
bV9mcmVlbShtKTsKLQkJCQlyZXR1cm47Ci0JCQl9Ci0JCQlpZiAodGNwLT50aF9mbGFncyAmIFRI
X1NZTikKLQkJCQlhY2srKzsKLQkJCXNlcSA9IDA7Ci0JCQlmbGFncyA9IFRIX1JTVHxUSF9BQ0s7
CisJCWlmICgodGNwLT50aF9mbGFncyAmIFRIX1JTVCkgPT0gMCkgeworCQkJc3RydWN0IG1idWYg
Km0wOworCQkJbTAgPSBzZW5kX3BrdChhcmdzLT5tLCAmKGFyZ3MtPmZfaWQpLAorCQkJCW50b2hs
KHRjcC0+dGhfc2VxKSwgbnRvaGwodGNwLT50aF9hY2spLAorCQkJCXRjcC0+dGhfZmxhZ3MgfCBU
SF9SU1QpOworCQkJaWYgKG0wICE9IE5VTEwpCisJCQkJaXA2X291dHB1dChtMCwgTlVMTCwgTlVM
TCwgMCwgTlVMTCwgTlVMTCwgTlVMTCk7CiAJCX0KLQkJYmNvcHkoJnRpLCBpcDYsIHNpemVvZih0
aSkpOwotCQkvKgotCQkgKiBtIGlzIG9ubHkgdXNlZCB0byByZWN5Y2xlIHRoZSBtYnVmCi0JCSAq
IFRoZSBkYXRhIGluIGl0IGlzIG5ldmVyIHJlYWQgc28gd2UgZG9uJ3QgbmVlZAotCQkgKiB0byBj
b3JyZWN0IHRoZSBvZmZzZXRzIG9yIGFueXRoaW5nCi0JCSAqLwotCQl0Y3BfcmVzcG9uZChOVUxM
LCBpcDYsIHRjcCwgbSwgYWNrLCBzZXEsIGZsYWdzKTsKKwkJbV9mcmVlbShtKTsKIAl9IGVsc2Ug
aWYgKGNvZGUgIT0gSUNNUDZfVU5SRUFDSF9SU1QpIHsgLyogU2VuZCBhbiBJQ01QdjYgdW5yZWFj
aC4gKi8KICNpZiAwCiAJCS8qCkBAIC0xNjA5LDEzICsxNTcxLDE2IEBACiAgICAgdV9pbnQzMl90
IGFjaywgaW50IGZsYWdzKQogewogCXN0cnVjdCBtYnVmICptOwotCXN0cnVjdCBpcCAqaXA7Ci0J
c3RydWN0IHRjcGhkciAqdGNwOworCWludCBsZW4sIGRpcjsKKwlzdHJ1Y3QgaXAgKmggPSBOVUxM
OwkJLyogc3R1cGlkIGNvbXBpbGVyICovCisjaWZkZWYgSU5FVDYKKwlzdHJ1Y3QgaXA2X2hkciAq
aDYgPSBOVUxMOworI2VuZGlmCisJc3RydWN0IHRjcGhkciAqdGggPSBOVUxMOwogCiAJTUdFVEhE
UihtLCBNX0RPTlRXQUlULCBNVF9EQVRBKTsKLQlpZiAobSA9PSAwKQorCWlmIChtID09IE5VTEwp
CiAJCXJldHVybiAoTlVMTCk7Ci0JbS0+bV9wa3RoZHIucmN2aWYgPSAoc3RydWN0IGlmbmV0ICop
MDsKIAogI2lmZGVmIE1BQwogCWlmIChyZXBseXRvICE9IE5VTEwpCkBAIC0xNjI2LDY3ICsxNTkx
LDExOCBAQAogCSh2b2lkKXJlcGx5dG87CQkvKiBkb24ndCB3YXJuIGFib3V0IHVudXNlZCBhcmcg
Ki8KICNlbmRpZgogCi0JbS0+bV9wa3RoZHIubGVuID0gbS0+bV9sZW4gPSBzaXplb2Yoc3RydWN0
IGlwKSArIHNpemVvZihzdHJ1Y3QgdGNwaGRyKTsKKwlzd2l0Y2ggKGlkLT5hZGRyX3R5cGUpIHsK
KwljYXNlIDQ6CisJCWxlbiA9IHNpemVvZihzdHJ1Y3QgaXApICsgc2l6ZW9mKHN0cnVjdCB0Y3Bo
ZHIpOworCQlicmVhazsKKyNpZmRlZiBJTkVUNgorCWNhc2UgNjoKKwkJbGVuID0gc2l6ZW9mKHN0
cnVjdCBpcDZfaGRyKSArIHNpemVvZihzdHJ1Y3QgdGNwaGRyKTsKKwkJYnJlYWs7CisjZW5kaWYK
KwlkZWZhdWx0OgorCQkvKiBYWFg6IGxvZyBtZT8hPyAqLworCQltX2ZyZWVtKG0pOworCQlyZXR1
cm4gKE5VTEwpOworCX0KKwlkaXIgPSAoKGZsYWdzICYgKFRIX1NZTiB8IFRIX1JTVCkpID09IFRI
X1NZTik7CisKIAltLT5tX2RhdGEgKz0gbWF4X2xpbmtoZHI7CisJbS0+bV9mbGFncyB8PSBNX1NL
SVBfRklSRVdBTEw7CisJbS0+bV9wa3RoZHIubGVuID0gbS0+bV9sZW4gPSBsZW47CisJbS0+bV9w
a3RoZHIucmN2aWYgPSBOVUxMOworCWJ6ZXJvKG0tPm1fZGF0YSwgbGVuKTsKKworCXN3aXRjaCAo
aWQtPmFkZHJfdHlwZSkgeworCWNhc2UgNDoKKwkJaCA9IG10b2QobSwgc3RydWN0IGlwICopOwor
CisJCS8qIHByZXBhcmUgZm9yIGNoZWNrc3VtICovCisJCWgtPmlwX3AgPSBJUFBST1RPX1RDUDsK
KwkJaC0+aXBfbGVuID0gaHRvbnMoc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpKTsKKwkJaWYgKGRpcikg
eworCQkJaC0+aXBfc3JjLnNfYWRkciA9IGh0b25sKGlkLT5zcmNfaXApOworCQkJaC0+aXBfZHN0
LnNfYWRkciA9IGh0b25sKGlkLT5kc3RfaXApOworCQl9IGVsc2UgeworCQkJaC0+aXBfc3JjLnNf
YWRkciA9IGh0b25sKGlkLT5kc3RfaXApOworCQkJaC0+aXBfZHN0LnNfYWRkciA9IGh0b25sKGlk
LT5zcmNfaXApOworCQl9CiAKLQlpcCA9IG10b2QobSwgc3RydWN0IGlwICopOwotCWJ6ZXJvKGlw
LCBtLT5tX2xlbik7Ci0JdGNwID0gKHN0cnVjdCB0Y3BoZHIgKikoaXAgKyAxKTsgLyogbm8gSVAg
b3B0aW9ucyAqLwotCWlwLT5pcF9wID0gSVBQUk9UT19UQ1A7Ci0JdGNwLT50aF9vZmYgPSA1Owot
CS8qCi0JICogQXNzdW1lIHdlIGFyZSBzZW5kaW5nIGEgUlNUIChvciBhIGtlZXBhbGl2ZSBpbiB0
aGUgcmV2ZXJzZQotCSAqIGRpcmVjdGlvbiksIHN3YXAgc3JjIGFuZCBkZXN0aW5hdGlvbiBhZGRy
ZXNzZXMgYW5kIHBvcnRzLgotCSAqLwotCWlwLT5pcF9zcmMuc19hZGRyID0gaHRvbmwoaWQtPmRz
dF9pcCk7Ci0JaXAtPmlwX2RzdC5zX2FkZHIgPSBodG9ubChpZC0+c3JjX2lwKTsKLQl0Y3AtPnRo
X3Nwb3J0ID0gaHRvbnMoaWQtPmRzdF9wb3J0KTsKLQl0Y3AtPnRoX2Rwb3J0ID0gaHRvbnMoaWQt
PnNyY19wb3J0KTsKLQlpZiAoZmxhZ3MgJiBUSF9SU1QpIHsJLyogd2UgYXJlIHNlbmRpbmcgYSBS
U1QgKi8KKwkJdGggPSAoc3RydWN0IHRjcGhkciAqKShoICsgMSk7CisJCWJyZWFrOworI2lmZGVm
IElORVQ2CisJY2FzZSA2OgorCQloNiA9IG10b2QobSwgc3RydWN0IGlwNl9oZHIgKik7CisKKwkJ
LyogcHJlcGFyZSBmb3IgY2hlY2tzdW0gKi8KKwkJaDYtPmlwNl9ueHQgPSBJUFBST1RPX1RDUDsK
KwkJaDYtPmlwNl9wbGVuID0gaHRvbnMoc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpKTsKKwkJaWYgKGRp
cikgeworCQkJaDYtPmlwNl9zcmMgPSBpZC0+c3JjX2lwNjsKKwkJCWg2LT5pcDZfZHN0ID0gaWQt
PmRzdF9pcDY7CisJCX0gZWxzZSB7CisJCQloNi0+aXA2X3NyYyA9IGlkLT5kc3RfaXA2OworCQkJ
aDYtPmlwNl9kc3QgPSBpZC0+c3JjX2lwNjsKKwkJfQorCisJCXRoID0gKHN0cnVjdCB0Y3BoZHIg
KikoaDYgKyAxKTsKKwkJYnJlYWs7CisjZW5kaWYKKwl9CisKKwlpZiAoZGlyKSB7CisJCXRoLT50
aF9zcG9ydCA9IGh0b25zKGlkLT5zcmNfcG9ydCk7CisJCXRoLT50aF9kcG9ydCA9IGh0b25zKGlk
LT5kc3RfcG9ydCk7CisJfSBlbHNlIHsKKwkJdGgtPnRoX3Nwb3J0ID0gaHRvbnMoaWQtPmRzdF9w
b3J0KTsKKwkJdGgtPnRoX2Rwb3J0ID0gaHRvbnMoaWQtPnNyY19wb3J0KTsKKwl9CisJdGgtPnRo
X29mZiA9IHNpemVvZihzdHJ1Y3QgdGNwaGRyKSA+PiAyOworCisJaWYgKGZsYWdzICYgVEhfUlNU
KSB7CiAJCWlmIChmbGFncyAmIFRIX0FDSykgewotCQkJdGNwLT50aF9zZXEgPSBodG9ubChhY2sp
OwotCQkJdGNwLT50aF9hY2sgPSBodG9ubCgwKTsKLQkJCXRjcC0+dGhfZmxhZ3MgPSBUSF9SU1Q7
CisJCQl0aC0+dGhfc2VxID0gaHRvbmwoYWNrKTsKKwkJCXRoLT50aF9mbGFncyA9IFRIX1JTVDsK
IAkJfSBlbHNlIHsKIAkJCWlmIChmbGFncyAmIFRIX1NZTikKIAkJCQlzZXErKzsKLQkJCXRjcC0+
dGhfc2VxID0gaHRvbmwoMCk7Ci0JCQl0Y3AtPnRoX2FjayA9IGh0b25sKHNlcSk7Ci0JCQl0Y3At
PnRoX2ZsYWdzID0gVEhfUlNUIHwgVEhfQUNLOworCQkJdGgtPnRoX2FjayA9IGh0b25sKHNlcSk7
CisJCQl0aC0+dGhfZmxhZ3MgPSBUSF9SU1QgfCBUSF9BQ0s7CiAJCX0KIAl9IGVsc2UgewogCQkv
KgotCQkgKiBXZSBhcmUgc2VuZGluZyBhIGtlZXBhbGl2ZS4gZmxhZ3MgJiBUSF9TWU4gZGV0ZXJt
aW5lcwotCQkgKiB0aGUgZGlyZWN0aW9uLCBmb3J3YXJkIGlmIHNldCwgcmV2ZXJzZSBpZiBjbGVh
ci4KLQkJICogTk9URTogc2VxIGFuZCBhY2sgYXJlIGFsd2F5cyBhc3N1bWVkIHRvIGJlIGNvcnJl
Y3QKLQkJICogYXMgc2V0IGJ5IHRoZSBjYWxsZXIuIFRoaXMgbWF5IGJlIGNvbmZ1c2luZy4uLgor
CQkgKiBLZWVwYWxpdmUgLSB1c2UgY2FsbGVyIHByb3ZpZGVkIHNlcXVlbmNlIG51bWJlcnMKIAkJ
ICovCi0JCWlmIChmbGFncyAmIFRIX1NZTikgewotCQkJLyoKLQkJCSAqIHdlIGhhdmUgdG8gcmV3
cml0ZSB0aGUgY29ycmVjdCBhZGRyZXNzZXMhCi0JCQkgKi8KLQkJCWlwLT5pcF9kc3Quc19hZGRy
ID0gaHRvbmwoaWQtPmRzdF9pcCk7Ci0JCQlpcC0+aXBfc3JjLnNfYWRkciA9IGh0b25sKGlkLT5z
cmNfaXApOwotCQkJdGNwLT50aF9kcG9ydCA9IGh0b25zKGlkLT5kc3RfcG9ydCk7Ci0JCQl0Y3At
PnRoX3Nwb3J0ID0gaHRvbnMoaWQtPnNyY19wb3J0KTsKLQkJfQotCQl0Y3AtPnRoX3NlcSA9IGh0
b25sKHNlcSk7Ci0JCXRjcC0+dGhfYWNrID0gaHRvbmwoYWNrKTsKLQkJdGNwLT50aF9mbGFncyA9
IFRIX0FDSzsKKwkJdGgtPnRoX3NlcSA9IGh0b25sKHNlcSk7CisJCXRoLT50aF9hY2sgPSBodG9u
bChhY2spOworCQl0aC0+dGhfZmxhZ3MgPSBUSF9BQ0s7CisJfQorCisJc3dpdGNoIChpZC0+YWRk
cl90eXBlKSB7CisJY2FzZSA0OgorCQl0aC0+dGhfc3VtID0gaW5fY2tzdW0obSwgbGVuKTsKKwor
CQkvKiBmaW5pc2ggdGhlIGlwIGhlYWRlciAqLworCQloLT5pcF92ID0gNDsKKwkJaC0+aXBfaGwg
PSBzaXplb2YoKmgpID4+IDI7CisJCWgtPmlwX3RvcyA9IElQVE9TX0xPV0RFTEFZOworCQloLT5p
cF9vZmYgPSAwOworCQloLT5pcF9sZW4gPSBsZW47CisJCWgtPmlwX3R0bCA9IGlwX2RlZnR0bDsK
KwkJaC0+aXBfc3VtID0gMDsKKwkJYnJlYWs7CisjaWZkZWYgSU5FVDYKKwljYXNlIDY6CisJCXRo
LT50aF9zdW0gPSBpbjZfY2tzdW0obSwgSVBQUk9UT19UQ1AsIHNpemVvZigqaDYpLAorCQkgICAg
c2l6ZW9mKHN0cnVjdCB0Y3BoZHIpKTsKKworCQkvKiBmaW5pc2ggdGhlIGlwNiBoZWFkZXIgKi8K
KwkJaDYtPmlwNl92ZmMgfD0gSVBWNl9WRVJTSU9OOworCQloNi0+aXA2X2hsaW0gPSBJUFY2X0RF
RkhMSU07CisJCWJyZWFrOworI2VuZGlmCiAJfQotCS8qCi0JICogc2V0IGlwX2xlbiB0byB0aGUg
cGF5bG9hZCBzaXplIHNvIHdlIGNhbiBjb21wdXRlCi0JICogdGhlIHRjcCBjaGVja3N1bSBvbiB0
aGUgcHNldWRvaGVhZGVyCi0JICogWFhYIGNoZWNrIHRoaXMsIGNvdWxkIHNhdmUgYSBjb3VwbGUg
b2Ygd29yZHMgPwotCSAqLwotCWlwLT5pcF9sZW4gPSBodG9ucyhzaXplb2Yoc3RydWN0IHRjcGhk
cikpOwotCXRjcC0+dGhfc3VtID0gaW5fY2tzdW0obSwgbS0+bV9wa3RoZHIubGVuKTsKLQkvKgot
CSAqIG5vdyBmaWxsIGZpZWxkcyBsZWZ0IG91dCBlYXJsaWVyCi0JICovCi0JaXAtPmlwX3R0bCA9
IGlwX2RlZnR0bDsKLQlpcC0+aXBfbGVuID0gbS0+bV9wa3RoZHIubGVuOwotCW0tPm1fZmxhZ3Mg
fD0gTV9TS0lQX0ZJUkVXQUxMOworCiAJcmV0dXJuIChtKTsKIH0KIApAQCAtNDg2MCw2ICs0ODc2
LDkgQEAKIGlwZndfdGljayh2b2lkICogX191bnVzZWQgdW51c2VkKQogewogCXN0cnVjdCBtYnVm
ICptMCwgKm0sICptbmV4dCwgKiptdGFpbHA7CisjaWZkZWYgSU5FVDYKKwlzdHJ1Y3QgbWJ1ZiAq
bTYsICoqbTZfdGFpbHA7CisjZW5kaWYKIAlpbnQgaTsKIAlpcGZ3X2R5bl9ydWxlICpxOwogCkBA
IC00ODc0LDYgKzQ4OTMsMTAgQEAKIAkgKi8KIAltMCA9IE5VTEw7CiAJbXRhaWxwID0gJm0wOwor
I2lmZGVmIElORVQ2CisJbTYgPSBOVUxMOworCW02X3RhaWxwID0gJm02OworI2VuZGlmCiAJSVBG
V19EWU5fTE9DSygpOwogCWZvciAoaSA9IDAgOyBpIDwgY3Vycl9keW5fYnVja2V0cyA7IGkrKykg
ewogCQlmb3IgKHEgPSBpcGZ3X2R5bl92W2ldIDsgcSA7IHEgPSBxLT5uZXh0ICkgewpAQCAtNDg4
OSwxNCArNDkxMiwzNyBAQAogCQkJaWYgKFRJTUVfTEVRKHEtPmV4cGlyZSwgdGltZV91cHRpbWUp
KQogCQkJCWNvbnRpbnVlOwkvKiB0b28gbGF0ZSwgcnVsZSBleHBpcmVkICovCiAKLQkJCSptdGFp
bHAgPSBzZW5kX3BrdChOVUxMLCAmKHEtPmlkKSwgcS0+YWNrX3JldiAtIDEsCisJCQltID0gc2Vu
ZF9wa3QoTlVMTCwgJihxLT5pZCksIHEtPmFja19yZXYgLSAxLAogCQkJCXEtPmFja19md2QsIFRI
X1NZTik7Ci0JCQlpZiAoKm10YWlscCAhPSBOVUxMKQotCQkJCW10YWlscCA9ICYoKm10YWlscCkt
Pm1fbmV4dHBrdDsKLQkJCSptdGFpbHAgPSBzZW5kX3BrdChOVUxMLCAmKHEtPmlkKSwgcS0+YWNr
X2Z3ZCAtIDEsCisJCQltbmV4dCA9IHNlbmRfcGt0KE5VTEwsICYocS0+aWQpLCBxLT5hY2tfZndk
IC0gMSwKIAkJCQlxLT5hY2tfcmV2LCAwKTsKLQkJCWlmICgqbXRhaWxwICE9IE5VTEwpCi0JCQkJ
bXRhaWxwID0gJigqbXRhaWxwKS0+bV9uZXh0cGt0OworCisJCQlzd2l0Y2ggKHEtPmlkLmFkZHJf
dHlwZSkgeworCQkJY2FzZSA0OgorCQkJCWlmIChtICE9IE5VTEwpIHsKKwkJCQkJKm10YWlscCA9
IG07CisJCQkJCW10YWlscCA9ICYoKm10YWlscCktPm1fbmV4dHBrdDsKKwkJCQl9CisJCQkJaWYg
KG1uZXh0ICE9IE5VTEwpIHsKKwkJCQkJKm10YWlscCA9IG1uZXh0OworCQkJCQltdGFpbHAgPSAm
KCptdGFpbHApLT5tX25leHRwa3Q7CisJCQkJfQorCQkJCWJyZWFrOworI2lmZGVmIElORVQ2CisJ
CQljYXNlIDY6CisJCQkJaWYgKG0gIT0gTlVMTCkgeworCQkJCQkqbTZfdGFpbHAgPSBtOworCQkJ
CQltNl90YWlscCA9ICYoKm02X3RhaWxwKS0+bV9uZXh0cGt0OworCQkJCX0KKwkJCQlpZiAobW5l
eHQgIT0gTlVMTCkgeworCQkJCQkqbTZfdGFpbHAgPSBtbmV4dDsKKwkJCQkJbTZfdGFpbHAgPSAm
KCptNl90YWlscCktPm1fbmV4dHBrdDsKKwkJCQl9CisJCQkJYnJlYWs7CisjZW5kaWYKKwkJCX0K
KworCQkJbSA9IG1uZXh0ID0gTlVMTDsKIAkJfQogCX0KIAlJUEZXX0RZTl9VTkxPQ0soKTsKQEAg
LTQ5MDUsNiArNDk1MSwxMyBAQAogCQltLT5tX25leHRwa3QgPSBOVUxMOwogCQlpcF9vdXRwdXQo
bSwgTlVMTCwgTlVMTCwgMCwgTlVMTCwgTlVMTCk7CiAJfQorI2lmZGVmIElORVQ2CisJZm9yICht
ID0gbW5leHQgPSBtNjsgbSAhPSBOVUxMOyBtID0gbW5leHQpIHsKKwkJbW5leHQgPSBtLT5tX25l
eHRwa3Q7CisJCW0tPm1fbmV4dHBrdCA9IE5VTEw7CisJCWlwNl9vdXRwdXQobSwgTlVMTCwgTlVM
TCwgMCwgTlVMTCwgTlVMTCwgTlVMTCk7CisJfQorI2VuZGlmCiBkb25lOgogCWNhbGxvdXRfcmVz
ZXQoJmlwZndfdGltZW91dCwgZHluX2tlZXBhbGl2ZV9wZXJpb2QqaHosIGlwZndfdGljaywgTlVM
TCk7CiB9CgotLUJvdW5kYXJ5LTAwPV9vd09JSFFXSmxoOEwxNWgtLQo=
------=_20080519221520_63844
Content-Type: application/octet-stream; name="ipfw_v6send_70R.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ipfw_v6send_70R.diff"
LS0tIGlwX2Z3Mi5jLm9yaWcJMjAwOC0wMS0yOCAxNzo0NDozMC4wMDAwMDAwMDAgKzAwMDAKKysr
IGlwX2Z3Mi5jCTIwMDgtMDUtMTkgMjE6NDU6MjcuMDAwMDAwMDAwICswMDAwCkBAIC0xMDEsNiAr
MTAxLDcgQEAKICNpbmNsdWRlIDxuZXRpbmV0L2lwNi5oPgogI2luY2x1ZGUgPG5ldGluZXQvaWNt
cDYuaD4KICNpZmRlZiBJTkVUNgorI2luY2x1ZGUgPG5ldGluZXQ2L2lwNl92YXIuaD4KICNpbmNs
dWRlIDxuZXRpbmV0Ni9zY29wZTZfdmFyLmg+CiAjZW5kaWYKIApAQCAtMjQ0LDYgKzI0NSw5IEBA
CiAjZGVmaW5lCUlQRldfRFlOX1VOTE9DSygpCW10eF91bmxvY2soJmlwZndfZHluX210eCkKICNk
ZWZpbmUJSVBGV19EWU5fTE9DS19BU1NFUlQoKQltdHhfYXNzZXJ0KCZpcGZ3X2R5bl9tdHgsIE1B
X09XTkVEKQogCitzdGF0aWMgc3RydWN0IG1idWYgKnNlbmRfcGt0KHN0cnVjdCBtYnVmICosIHN0
cnVjdCBpcGZ3X2Zsb3dfaWQgKiwKKyAgICB1X2ludDMyX3QsIHVfaW50MzJfdCwgaW50KTsKKwog
LyoKICAqIFRpbWVvdXRzIGZvciB2YXJpb3VzIGV2ZW50cyBpbiBoYW5kaW5nIGR5bmFtaWMgcnVs
ZXMuCiAgKi8KQEAgLTY3NCw2NyArNjc4LDI1IEBACiB9CiAKIHN0YXRpYyB2b2lkCi1zZW5kX3Jl
amVjdDYoc3RydWN0IGlwX2Z3X2FyZ3MgKmFyZ3MsIGludCBjb2RlLCB1X2ludCBobGVuLCBzdHJ1
Y3QgaXA2X2hkciAqaXA2KQorc2VuZF9yZWplY3Q2KHN0cnVjdCBpcF9md19hcmdzICphcmdzLCBp
bnQgY29kZSwgdV9pbnQgaGxlbiwKKyAgICBzdHJ1Y3QgaXA2X2hkciAqaXA2KQogewogCXN0cnVj
dCBtYnVmICptOwogCiAJbSA9IGFyZ3MtPm07CiAJaWYgKGNvZGUgPT0gSUNNUDZfVU5SRUFDSF9S
U1QgJiYgYXJncy0+Zl9pZC5wcm90byA9PSBJUFBST1RPX1RDUCkgewogCQlzdHJ1Y3QgdGNwaGRy
ICp0Y3A7Ci0JCXRjcF9zZXEgYWNrLCBzZXE7Ci0JCWludCBmbGFnczsKLQkJc3RydWN0IHsKLQkJ
CXN0cnVjdCBpcDZfaGRyIGlwNjsKLQkJCXN0cnVjdCB0Y3BoZHIgdGg7Ci0JCX0gdGk7CiAJCXRj
cCA9IChzdHJ1Y3QgdGNwaGRyICopKChjaGFyICopaXA2ICsgaGxlbik7CiAKLQkJaWYgKCh0Y3At
PnRoX2ZsYWdzICYgVEhfUlNUKSAhPSAwKSB7Ci0JCQltX2ZyZWVtKG0pOwotCQkJYXJncy0+bSA9
IE5VTEw7Ci0JCQlyZXR1cm47Ci0JCX0KLQotCQl0aS5pcDYgPSAqaXA2OwotCQl0aS50aCA9ICp0
Y3A7Ci0JCXRpLnRoLnRoX3NlcSA9IG50b2hsKHRpLnRoLnRoX3NlcSk7Ci0JCXRpLnRoLnRoX2Fj
ayA9IG50b2hsKHRpLnRoLnRoX2Fjayk7Ci0JCXRpLmlwNi5pcDZfbnh0ID0gSVBQUk9UT19UQ1A7
Ci0KLQkJaWYgKHRpLnRoLnRoX2ZsYWdzICYgVEhfQUNLKSB7Ci0JCQlhY2sgPSAwOwotCQkJc2Vx
ID0gdGkudGgudGhfYWNrOwotCQkJZmxhZ3MgPSBUSF9SU1Q7Ci0JCX0gZWxzZSB7Ci0JCQlhY2sg
PSB0aS50aC50aF9zZXE7Ci0JCQlpZiAoKG0tPm1fZmxhZ3MgJiBNX1BLVEhEUikgIT0gMCkgewot
CQkJCS8qCi0JCQkJICogdG90YWwgbmV3IGRhdGEgdG8gQUNLIGlzOgotCQkJCSAqIHRvdGFsIHBh
Y2tldCBsZW5ndGgsCi0JCQkJICogbWludXMgdGhlIGhlYWRlciBsZW5ndGgsCi0JCQkJICogbWlu
dXMgdGhlIHRjcCBoZWFkZXIgbGVuZ3RoLgotCQkJCSAqLwotCQkJCWFjayArPSBtLT5tX3BrdGhk
ci5sZW4gLSBobGVuCi0JCQkJCS0gKHRpLnRoLnRoX29mZiA8PCAyKTsKLQkJCX0gZWxzZSBpZiAo
aXA2LT5pcDZfcGxlbikgewotCQkJCWFjayArPSBudG9ocyhpcDYtPmlwNl9wbGVuKSArIHNpemVv
ZigqaXA2KSAtCi0JCQkJICAgIGhsZW4gLSAodGkudGgudGhfb2ZmIDw8IDIpOwotCQkJfSBlbHNl
IHsKLQkJCQltX2ZyZWVtKG0pOwotCQkJCXJldHVybjsKLQkJCX0KLQkJCWlmICh0Y3AtPnRoX2Zs
YWdzICYgVEhfU1lOKQotCQkJCWFjaysrOwotCQkJc2VxID0gMDsKLQkJCWZsYWdzID0gVEhfUlNU
fFRIX0FDSzsKKwkJaWYgKCh0Y3AtPnRoX2ZsYWdzICYgVEhfUlNUKSA9PSAwKSB7CisJCQlzdHJ1
Y3QgbWJ1ZiAqbTA7CisJCQltMCA9IHNlbmRfcGt0KGFyZ3MtPm0sICYoYXJncy0+Zl9pZCksCisJ
CQkJbnRvaGwodGNwLT50aF9zZXEpLCBudG9obCh0Y3AtPnRoX2FjayksCisJCQkJdGNwLT50aF9m
bGFncyB8IFRIX1JTVCk7CisJCQlpZiAobTAgIT0gTlVMTCkKKwkJCQlpcDZfb3V0cHV0KG0wLCBO
VUxMLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKIAkJfQotCQliY29weSgmdGksIGlwNiwg
c2l6ZW9mKHRpKSk7Ci0JCS8qCi0JCSAqIG0gaXMgb25seSB1c2VkIHRvIHJlY3ljbGUgdGhlIG1i
dWYKLQkJICogVGhlIGRhdGEgaW4gaXQgaXMgbmV2ZXIgcmVhZCBzbyB3ZSBkb24ndCBuZWVkCi0J
CSAqIHRvIGNvcnJlY3QgdGhlIG9mZnNldHMgb3IgYW55dGhpbmcKLQkJICovCi0JCXRjcF9yZXNw
b25kKE5VTEwsIGlwNiwgdGNwLCBtLCBhY2ssIHNlcSwgZmxhZ3MpOworCQltX2ZyZWVtKG0pOwog
CX0gZWxzZSBpZiAoY29kZSAhPSBJQ01QNl9VTlJFQUNIX1JTVCkgeyAvKiBTZW5kIGFuIElDTVB2
NiB1bnJlYWNoLiAqLwogI2lmIDAKIAkJLyoKQEAgLTE2MTIsMTMgKzE1NzQsMTYgQEAKICAgICB1
X2ludDMyX3QgYWNrLCBpbnQgZmxhZ3MpCiB7CiAJc3RydWN0IG1idWYgKm07Ci0Jc3RydWN0IGlw
ICppcDsKLQlzdHJ1Y3QgdGNwaGRyICp0Y3A7CisJaW50IGxlbiwgZGlyOworCXN0cnVjdCBpcCAq
aCA9IE5VTEw7CQkvKiBzdHVwaWQgY29tcGlsZXIgKi8KKyNpZmRlZiBJTkVUNgorCXN0cnVjdCBp
cDZfaGRyICpoNiA9IE5VTEw7CisjZW5kaWYKKwlzdHJ1Y3QgdGNwaGRyICp0aCA9IE5VTEw7CiAK
IAlNR0VUSERSKG0sIE1fRE9OVFdBSVQsIE1UX0RBVEEpOwotCWlmIChtID09IDApCisJaWYgKG0g
PT0gTlVMTCkKIAkJcmV0dXJuIChOVUxMKTsKLQltLT5tX3BrdGhkci5yY3ZpZiA9IChzdHJ1Y3Qg
aWZuZXQgKikwOwogCiAjaWZkZWYgTUFDCiAJaWYgKHJlcGx5dG8gIT0gTlVMTCkKQEAgLTE2Mjks
NjcgKzE1OTQsMTE4IEBACiAJKHZvaWQpcmVwbHl0bzsJCS8qIGRvbid0IHdhcm4gYWJvdXQgdW51
c2VkIGFyZyAqLwogI2VuZGlmCiAKLQltLT5tX3BrdGhkci5sZW4gPSBtLT5tX2xlbiA9IHNpemVv
ZihzdHJ1Y3QgaXApICsgc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpOworCXN3aXRjaCAoaWQtPmFkZHJf
dHlwZSkgeworCWNhc2UgNDoKKwkJbGVuID0gc2l6ZW9mKHN0cnVjdCBpcCkgKyBzaXplb2Yoc3Ry
dWN0IHRjcGhkcik7CisJCWJyZWFrOworI2lmZGVmIElORVQ2CisJY2FzZSA2OgorCQlsZW4gPSBz
aXplb2Yoc3RydWN0IGlwNl9oZHIpICsgc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpOworCQlicmVhazsK
KyNlbmRpZgorCWRlZmF1bHQ6CisJCS8qIFhYWDogbG9nIG1lPyE/ICovCisJCW1fZnJlZW0obSk7
CisJCXJldHVybiAoTlVMTCk7CisJfQorCWRpciA9ICgoZmxhZ3MgJiAoVEhfU1lOIHwgVEhfUlNU
KSkgPT0gVEhfU1lOKTsKKwogCW0tPm1fZGF0YSArPSBtYXhfbGlua2hkcjsKKwltLT5tX2ZsYWdz
IHw9IE1fU0tJUF9GSVJFV0FMTDsKKwltLT5tX3BrdGhkci5sZW4gPSBtLT5tX2xlbiA9IGxlbjsK
KwltLT5tX3BrdGhkci5yY3ZpZiA9IE5VTEw7CisJYnplcm8obS0+bV9kYXRhLCBsZW4pOworCisJ
c3dpdGNoIChpZC0+YWRkcl90eXBlKSB7CisJY2FzZSA0OgorCQloID0gbXRvZChtLCBzdHJ1Y3Qg
aXAgKik7CisKKwkJLyogcHJlcGFyZSBmb3IgY2hlY2tzdW0gKi8KKwkJaC0+aXBfcCA9IElQUFJP
VE9fVENQOworCQloLT5pcF9sZW4gPSBodG9ucyhzaXplb2Yoc3RydWN0IHRjcGhkcikpOworCQlp
ZiAoZGlyKSB7CisJCQloLT5pcF9zcmMuc19hZGRyID0gaHRvbmwoaWQtPnNyY19pcCk7CisJCQlo
LT5pcF9kc3Quc19hZGRyID0gaHRvbmwoaWQtPmRzdF9pcCk7CisJCX0gZWxzZSB7CisJCQloLT5p
cF9zcmMuc19hZGRyID0gaHRvbmwoaWQtPmRzdF9pcCk7CisJCQloLT5pcF9kc3Quc19hZGRyID0g
aHRvbmwoaWQtPnNyY19pcCk7CisJCX0KIAotCWlwID0gbXRvZChtLCBzdHJ1Y3QgaXAgKik7Ci0J
Ynplcm8oaXAsIG0tPm1fbGVuKTsKLQl0Y3AgPSAoc3RydWN0IHRjcGhkciAqKShpcCArIDEpOyAv
KiBubyBJUCBvcHRpb25zICovCi0JaXAtPmlwX3AgPSBJUFBST1RPX1RDUDsKLQl0Y3AtPnRoX29m
ZiA9IDU7Ci0JLyoKLQkgKiBBc3N1bWUgd2UgYXJlIHNlbmRpbmcgYSBSU1QgKG9yIGEga2VlcGFs
aXZlIGluIHRoZSByZXZlcnNlCi0JICogZGlyZWN0aW9uKSwgc3dhcCBzcmMgYW5kIGRlc3RpbmF0
aW9uIGFkZHJlc3NlcyBhbmQgcG9ydHMuCi0JICovCi0JaXAtPmlwX3NyYy5zX2FkZHIgPSBodG9u
bChpZC0+ZHN0X2lwKTsKLQlpcC0+aXBfZHN0LnNfYWRkciA9IGh0b25sKGlkLT5zcmNfaXApOwot
CXRjcC0+dGhfc3BvcnQgPSBodG9ucyhpZC0+ZHN0X3BvcnQpOwotCXRjcC0+dGhfZHBvcnQgPSBo
dG9ucyhpZC0+c3JjX3BvcnQpOwotCWlmIChmbGFncyAmIFRIX1JTVCkgewkvKiB3ZSBhcmUgc2Vu
ZGluZyBhIFJTVCAqLworCQl0aCA9IChzdHJ1Y3QgdGNwaGRyICopKGggKyAxKTsKKwkJYnJlYWs7
CisjaWZkZWYgSU5FVDYKKwljYXNlIDY6CisJCWg2ID0gbXRvZChtLCBzdHJ1Y3QgaXA2X2hkciAq
KTsKKworCQkvKiBwcmVwYXJlIGZvciBjaGVja3N1bSAqLworCQloNi0+aXA2X254dCA9IElQUFJP
VE9fVENQOworCQloNi0+aXA2X3BsZW4gPSBodG9ucyhzaXplb2Yoc3RydWN0IHRjcGhkcikpOwor
CQlpZiAoZGlyKSB7CisJCQloNi0+aXA2X3NyYyA9IGlkLT5zcmNfaXA2OworCQkJaDYtPmlwNl9k
c3QgPSBpZC0+ZHN0X2lwNjsKKwkJfSBlbHNlIHsKKwkJCWg2LT5pcDZfc3JjID0gaWQtPmRzdF9p
cDY7CisJCQloNi0+aXA2X2RzdCA9IGlkLT5zcmNfaXA2OworCQl9CisKKwkJdGggPSAoc3RydWN0
IHRjcGhkciAqKShoNiArIDEpOworCQlicmVhazsKKyNlbmRpZgorCX0KKworCWlmIChkaXIpIHsK
KwkJdGgtPnRoX3Nwb3J0ID0gaHRvbnMoaWQtPnNyY19wb3J0KTsKKwkJdGgtPnRoX2Rwb3J0ID0g
aHRvbnMoaWQtPmRzdF9wb3J0KTsKKwl9IGVsc2UgeworCQl0aC0+dGhfc3BvcnQgPSBodG9ucyhp
ZC0+ZHN0X3BvcnQpOworCQl0aC0+dGhfZHBvcnQgPSBodG9ucyhpZC0+c3JjX3BvcnQpOworCX0K
Kwl0aC0+dGhfb2ZmID0gc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpID4+IDI7CisKKwlpZiAoZmxhZ3Mg
JiBUSF9SU1QpIHsKIAkJaWYgKGZsYWdzICYgVEhfQUNLKSB7Ci0JCQl0Y3AtPnRoX3NlcSA9IGh0
b25sKGFjayk7Ci0JCQl0Y3AtPnRoX2FjayA9IGh0b25sKDApOwotCQkJdGNwLT50aF9mbGFncyA9
IFRIX1JTVDsKKwkJCXRoLT50aF9zZXEgPSBodG9ubChhY2spOworCQkJdGgtPnRoX2ZsYWdzID0g
VEhfUlNUOwogCQl9IGVsc2UgewogCQkJaWYgKGZsYWdzICYgVEhfU1lOKQogCQkJCXNlcSsrOwot
CQkJdGNwLT50aF9zZXEgPSBodG9ubCgwKTsKLQkJCXRjcC0+dGhfYWNrID0gaHRvbmwoc2VxKTsK
LQkJCXRjcC0+dGhfZmxhZ3MgPSBUSF9SU1QgfCBUSF9BQ0s7CisJCQl0aC0+dGhfYWNrID0gaHRv
bmwoc2VxKTsKKwkJCXRoLT50aF9mbGFncyA9IFRIX1JTVCB8IFRIX0FDSzsKIAkJfQogCX0gZWxz
ZSB7CiAJCS8qCi0JCSAqIFdlIGFyZSBzZW5kaW5nIGEga2VlcGFsaXZlLiBmbGFncyAmIFRIX1NZ
TiBkZXRlcm1pbmVzCi0JCSAqIHRoZSBkaXJlY3Rpb24sIGZvcndhcmQgaWYgc2V0LCByZXZlcnNl
IGlmIGNsZWFyLgotCQkgKiBOT1RFOiBzZXEgYW5kIGFjayBhcmUgYWx3YXlzIGFzc3VtZWQgdG8g
YmUgY29ycmVjdAotCQkgKiBhcyBzZXQgYnkgdGhlIGNhbGxlci4gVGhpcyBtYXkgYmUgY29uZnVz
aW5nLi4uCisJCSAqIEtlZXBhbGl2ZSAtIHVzZSBjYWxsZXIgcHJvdmlkZWQgc2VxdWVuY2UgbnVt
YmVycwogCQkgKi8KLQkJaWYgKGZsYWdzICYgVEhfU1lOKSB7Ci0JCQkvKgotCQkJICogd2UgaGF2
ZSB0byByZXdyaXRlIHRoZSBjb3JyZWN0IGFkZHJlc3NlcyEKLQkJCSAqLwotCQkJaXAtPmlwX2Rz
dC5zX2FkZHIgPSBodG9ubChpZC0+ZHN0X2lwKTsKLQkJCWlwLT5pcF9zcmMuc19hZGRyID0gaHRv
bmwoaWQtPnNyY19pcCk7Ci0JCQl0Y3AtPnRoX2Rwb3J0ID0gaHRvbnMoaWQtPmRzdF9wb3J0KTsK
LQkJCXRjcC0+dGhfc3BvcnQgPSBodG9ucyhpZC0+c3JjX3BvcnQpOwotCQl9Ci0JCXRjcC0+dGhf
c2VxID0gaHRvbmwoc2VxKTsKLQkJdGNwLT50aF9hY2sgPSBodG9ubChhY2spOwotCQl0Y3AtPnRo
X2ZsYWdzID0gVEhfQUNLOworCQl0aC0+dGhfc2VxID0gaHRvbmwoc2VxKTsKKwkJdGgtPnRoX2Fj
ayA9IGh0b25sKGFjayk7CisJCXRoLT50aF9mbGFncyA9IFRIX0FDSzsKKwl9CisKKwlzd2l0Y2gg
KGlkLT5hZGRyX3R5cGUpIHsKKwljYXNlIDQ6CisJCXRoLT50aF9zdW0gPSBpbl9ja3N1bShtLCBs
ZW4pOworCisJCS8qIGZpbmlzaCB0aGUgaXAgaGVhZGVyICovCisJCWgtPmlwX3YgPSA0OworCQlo
LT5pcF9obCA9IHNpemVvZigqaCkgPj4gMjsKKwkJaC0+aXBfdG9zID0gSVBUT1NfTE9XREVMQVk7
CisJCWgtPmlwX29mZiA9IDA7CisJCWgtPmlwX2xlbiA9IGxlbjsKKwkJaC0+aXBfdHRsID0gaXBf
ZGVmdHRsOworCQloLT5pcF9zdW0gPSAwOworCQlicmVhazsKKyNpZmRlZiBJTkVUNgorCWNhc2Ug
NjoKKwkJdGgtPnRoX3N1bSA9IGluNl9ja3N1bShtLCBJUFBST1RPX1RDUCwgc2l6ZW9mKCpoNiks
CisJCSAgICBzaXplb2Yoc3RydWN0IHRjcGhkcikpOworCisJCS8qIGZpbmlzaCB0aGUgaXA2IGhl
YWRlciAqLworCQloNi0+aXA2X3ZmYyB8PSBJUFY2X1ZFUlNJT047CisJCWg2LT5pcDZfaGxpbSA9
IElQVjZfREVGSExJTTsKKwkJYnJlYWs7CisjZW5kaWYKIAl9Ci0JLyoKLQkgKiBzZXQgaXBfbGVu
IHRvIHRoZSBwYXlsb2FkIHNpemUgc28gd2UgY2FuIGNvbXB1dGUKLQkgKiB0aGUgdGNwIGNoZWNr
c3VtIG9uIHRoZSBwc2V1ZG9oZWFkZXIKLQkgKiBYWFggY2hlY2sgdGhpcywgY291bGQgc2F2ZSBh
IGNvdXBsZSBvZiB3b3JkcyA/Ci0JICovCi0JaXAtPmlwX2xlbiA9IGh0b25zKHNpemVvZihzdHJ1
Y3QgdGNwaGRyKSk7Ci0JdGNwLT50aF9zdW0gPSBpbl9ja3N1bShtLCBtLT5tX3BrdGhkci5sZW4p
OwotCS8qCi0JICogbm93IGZpbGwgZmllbGRzIGxlZnQgb3V0IGVhcmxpZXIKLQkgKi8KLQlpcC0+
aXBfdHRsID0gaXBfZGVmdHRsOwotCWlwLT5pcF9sZW4gPSBtLT5tX3BrdGhkci5sZW47Ci0JbS0+
bV9mbGFncyB8PSBNX1NLSVBfRklSRVdBTEw7CisKIAlyZXR1cm4gKG0pOwogfQogCkBAIC00ODYz
LDYgKzQ4NzksOSBAQAogaXBmd190aWNrKHZvaWQgKiBfX3VudXNlZCB1bnVzZWQpCiB7CiAJc3Ry
dWN0IG1idWYgKm0wLCAqbSwgKm1uZXh0LCAqKm10YWlscDsKKyNpZmRlZiBJTkVUNgorCXN0cnVj
dCBtYnVmICptNiwgKiptNl90YWlscDsKKyNlbmRpZgogCWludCBpOwogCWlwZndfZHluX3J1bGUg
KnE7CiAKQEAgLTQ4NzcsNiArNDg5NiwxMCBAQAogCSAqLwogCW0wID0gTlVMTDsKIAltdGFpbHAg
PSAmbTA7CisjaWZkZWYgSU5FVDYKKwltNiA9IE5VTEw7CisJbTZfdGFpbHAgPSAmbTY7CisjZW5k
aWYKIAlJUEZXX0RZTl9MT0NLKCk7CiAJZm9yIChpID0gMCA7IGkgPCBjdXJyX2R5bl9idWNrZXRz
IDsgaSsrKSB7CiAJCWZvciAocSA9IGlwZndfZHluX3ZbaV0gOyBxIDsgcSA9IHEtPm5leHQgKSB7
CkBAIC00ODkyLDE0ICs0OTE1LDM3IEBACiAJCQlpZiAoVElNRV9MRVEocS0+ZXhwaXJlLCB0aW1l
X3VwdGltZSkpCiAJCQkJY29udGludWU7CS8qIHRvbyBsYXRlLCBydWxlIGV4cGlyZWQgKi8KIAot
CQkJKm10YWlscCA9IHNlbmRfcGt0KE5VTEwsICYocS0+aWQpLCBxLT5hY2tfcmV2IC0gMSwKKwkJ
CW0gPSBzZW5kX3BrdChOVUxMLCAmKHEtPmlkKSwgcS0+YWNrX3JldiAtIDEsCiAJCQkJcS0+YWNr
X2Z3ZCwgVEhfU1lOKTsKLQkJCWlmICgqbXRhaWxwICE9IE5VTEwpCi0JCQkJbXRhaWxwID0gJigq
bXRhaWxwKS0+bV9uZXh0cGt0OwotCQkJKm10YWlscCA9IHNlbmRfcGt0KE5VTEwsICYocS0+aWQp
LCBxLT5hY2tfZndkIC0gMSwKKwkJCW1uZXh0ID0gc2VuZF9wa3QoTlVMTCwgJihxLT5pZCksIHEt
PmFja19md2QgLSAxLAogCQkJCXEtPmFja19yZXYsIDApOwotCQkJaWYgKCptdGFpbHAgIT0gTlVM
TCkKLQkJCQltdGFpbHAgPSAmKCptdGFpbHApLT5tX25leHRwa3Q7CisKKwkJCXN3aXRjaCAocS0+
aWQuYWRkcl90eXBlKSB7CisJCQljYXNlIDQ6CisJCQkJaWYgKG0gIT0gTlVMTCkgeworCQkJCQkq
bXRhaWxwID0gbTsKKwkJCQkJbXRhaWxwID0gJigqbXRhaWxwKS0+bV9uZXh0cGt0OworCQkJCX0K
KwkJCQlpZiAobW5leHQgIT0gTlVMTCkgeworCQkJCQkqbXRhaWxwID0gbW5leHQ7CisJCQkJCW10
YWlscCA9ICYoKm10YWlscCktPm1fbmV4dHBrdDsKKwkJCQl9CisJCQkJYnJlYWs7CisjaWZkZWYg
SU5FVDYKKwkJCWNhc2UgNjoKKwkJCQlpZiAobSAhPSBOVUxMKSB7CisJCQkJCSptNl90YWlscCA9
IG07CisJCQkJCW02X3RhaWxwID0gJigqbTZfdGFpbHApLT5tX25leHRwa3Q7CisJCQkJfQorCQkJ
CWlmIChtbmV4dCAhPSBOVUxMKSB7CisJCQkJCSptNl90YWlscCA9IG1uZXh0OworCQkJCQltNl90
YWlscCA9ICYoKm02X3RhaWxwKS0+bV9uZXh0cGt0OworCQkJCX0KKwkJCQlicmVhazsKKyNlbmRp
ZgorCQkJfQorCisJCQltID0gbW5leHQgPSBOVUxMOwogCQl9CiAJfQogCUlQRldfRFlOX1VOTE9D
SygpOwpAQCAtNDkwOCw2ICs0OTU0LDEzIEBACiAJCW0tPm1fbmV4dHBrdCA9IE5VTEw7CiAJCWlw
X291dHB1dChtLCBOVUxMLCBOVUxMLCAwLCBOVUxMLCBOVUxMKTsKIAl9CisjaWZkZWYgSU5FVDYK
Kwlmb3IgKG0gPSBtbmV4dCA9IG02OyBtICE9IE5VTEw7IG0gPSBtbmV4dCkgeworCQltbmV4dCA9
IG0tPm1fbmV4dHBrdDsKKwkJbS0+bV9uZXh0cGt0ID0gTlVMTDsKKwkJaXA2X291dHB1dChtLCBO
VUxMLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwl9CisjZW5kaWYKIGRvbmU6CiAJY2Fs
bG91dF9yZXNldCgmaXBmd190aW1lb3V0LCBkeW5fa2VlcGFsaXZlX3BlcmlvZCpoeiwgaXBmd190
aWNrLCBOVUxMKTsKIH0K
------=_20080519221520_63844--
More information about the freebsd-ipfw
mailing list