Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 May 2008 20:20:04 GMT
From:      "Joost Bekkers" <joost@jodocus.org>
To:        freebsd-ipfw@FreeBSD.org
Subject:   Re: kern/117234: [ipfw] [patch] ipfw send_pkt() and ipfw_tick()  don't seem to support IPV6
Message-ID:  <200805192020.m4JKK4Cd063838@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/117234; it has been noted by GNATS.

From: "Joost Bekkers" <joost@jodocus.org>
To: bug-followup@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@.
 
 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--
 
 



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