Date: Wed, 14 May 2008 23:14:17 -0400 From: gnn@freebsd.org To: net@freebsd.org Subject: Proposed patch to the kernel and to netstat... Message-ID: <m2hcd045ti.wl%gnn@neville-neil.com>
next in thread | raw e-mail | index | archive | help
--Multipart_Wed_May_14_23:14:17_2008-1 Content-Type: text/plain; charset=US-ASCII Howdy, I have developed the attached patch which extends the functionality of netstat (via the -x flag) to show us all the socket buffer statistics. The kernel change counts mbufs, as well as clusters (at the moment of any size) and gives output like this: Proto Recv-Q Send-Q Local Address Foreign Address R-MBUF S-MBUF R-CLUS S-CLUS R-HIWA S-HIWA R-LOWA S-LOWA R-BCNT S-BCNT R-BMAX S-BMAX (state) tcp4 0 0 127.0.0.1.6010 *.* 0 0 0 0 65536 32768 1 2048 0 0 262144 262144 LISTEN tcp6 0 0 ::1.6010 *.* 0 0 0 0 65536 32768 1 2048 0 0 262144 262144 LISTEN tcp4 0 0 172.16.186.130.22 172.16.186.1.53443 0 0 0 0 66608 33304 1 2048 0 0 262144 262144 ESTABLISHED tcp4 0 0 172.16.186.130.29178 172.16.186.1.22 0 0 0 0 0 0 0 0 0 0 0 0 TIME_WAIT tcp4 0 0 172.16.186.130.62302 69.147.83.41.22 0 0 0 0 65700 74540 1 2048 0 0 262144 262144 ESTABLISHED tcp4 0 0 127.0.0.1.62415 127.0.0.1.6010 0 0 0 0 0 0 0 0 0 0 0 0 TIME_WAIT Note you need a very wide screen to read that. The man page is also updated but the relevant bits are: The -x flag causes netstat to output all the information recorded about data stored in the socket buffers. The fields are: R-MBUF Number of mbufs in the receive queue. S-MBUF Number of mbufs in the send queue. R-CLUS Number of clusters, of any type, in the recieve queue. S-CLUS Number of clusters, of any type, in the send queue. R-HIWA Receive buffer high water mark, in bytes. S-HIWA Send buffer high water mark, in bytes. R-LOWA Receive buffer low water mark, in bytes. S-LOWA Send buffer low water mark, in bytes. R-BCNT Receive buffer byte count. S-BCNT Send buffer byte count. R-BMAX Maximum bytes that can be used in the receive buffer. S-BMAX Maximum bytes that can be used in the send buffer. Please email me comments. I'd like to commit this to HEAD soon. It can't be put into 7 without removing the cluster and mbuf counting, but I might do that as well if there is interest. Best, George --Multipart_Wed_May_14_23:14:17_2008-1 Content-Type: application/octet-stream; type=patch Content-Disposition: attachment; filename="netstat.diff" Content-Transfer-Encoding: base64 SW5kZXg6IHN5cy9rZXJuL3VpcGNfc29ja2J1Zi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21l L25jdnMvc3JjL3N5cy9rZXJuL3VpcGNfc29ja2J1Zi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjE3NgpkaWZmIC11IC1yMS4xNzYgdWlwY19zb2NrYnVmLmMKLS0tIHN5cy9rZXJuL3VpcGNfc29j a2J1Zi5jCTQgRmViIDIwMDggMTI6MjU6MTMgLTAwMDAJMS4xNzYKKysrIHN5cy9rZXJuL3VpcGNf c29ja2J1Zi5jCTE1IE1heSAyMDA4IDAyOjU0OjA4IC0wMDAwCkBAIC0xMDI3LDYgKzEwMjcsOCBA QAogCXhzYi0+c2JfY2MgPSBzYi0+c2JfY2M7CiAJeHNiLT5zYl9oaXdhdCA9IHNiLT5zYl9oaXdh dDsKIAl4c2ItPnNiX21iY250ID0gc2ItPnNiX21iY250OworCXhzYi0+c2JfbWNudCA9IHNiLT5z Yl9tY250OwkKKwl4c2ItPnNiX2NjbnQgPSBzYi0+c2JfY2NudDsKIAl4c2ItPnNiX21ibWF4ID0g c2ItPnNiX21ibWF4OwogCXhzYi0+c2JfbG93YXQgPSBzYi0+c2JfbG93YXQ7CiAJeHNiLT5zYl9m bGFncyA9IHNiLT5zYl9mbGFnczsKSW5kZXg6IHN5cy9zeXMvc29ja2V0dmFyLmgKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL3N5cy9zb2NrZXR2YXIuaCx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4xNjMKZGlmZiAtdSAtcjEuMTYzIHNvY2tldHZhci5oCi0tLSBzeXMvc3lz L3NvY2tldHZhci5oCTkgTWF5IDIwMDggMjM6MDI6NTkgLTAwMDAJMS4xNjMKKysrIHN5cy9zeXMv c29ja2V0dmFyLmgJMTUgTWF5IDIwMDggMDI6NTQ6MTggLTAwMDAKQEAgLTExMCw2ICsxMTAsOCBA QAogCQl1X2ludAlzYl9jYzsJCS8qIChjL2QpIGFjdHVhbCBjaGFycyBpbiBidWZmZXIgKi8KIAkJ dV9pbnQJc2JfaGl3YXQ7CS8qIChjL2QpIG1heCBhY3R1YWwgY2hhciBjb3VudCAqLwogCQl1X2lu dAlzYl9tYmNudDsJLyogKGMvZCkgY2hhcnMgb2YgbWJ1ZnMgdXNlZCAqLworCQl1X2ludCAgIHNi X21jbnQ7ICAgICAgICAvKiAoYy9kKSBudW1iZXIgb2YgbWJ1ZnMgaW4gYnVmZmVyICovCisJCXVf aW50ICAgc2JfY2NudDsgICAgICAgIC8qIChjL2QpIG51bWJlciBvZiBjbHVzdGVycyBpbiBidWZm ZXIgKi8KIAkJdV9pbnQJc2JfbWJtYXg7CS8qIChjL2QpIG1heCBjaGFycyBvZiBtYnVmcyB0byB1 c2UgKi8KIAkJdV9pbnQJc2JfY3RsOwkJLyogKGMvZCkgbm9uLWRhdGEgY2hhcnMgaW4gYnVmZmVy ICovCiAJCWludAlzYl9sb3dhdDsJLyogKGMvZCkgbG93IHdhdGVyIG1hcmsgKi8KQEAgLTI1OSw2 ICsyNjEsOCBAQAogCQl1X2ludAlzYl9jYzsKIAkJdV9pbnQJc2JfaGl3YXQ7CiAJCXVfaW50CXNi X21iY250OworCQl1X2ludCAgIHNiX21jbnQ7CisJCXVfaW50ICAgc2JfY2NudDsKIAkJdV9pbnQJ c2JfbWJtYXg7CiAJCWludAlzYl9sb3dhdDsKIAkJaW50CXNiX3RpbWVvOwpAQCAtMzIwLDggKzMy NCwxMSBAQAogCWlmICgobSktPm1fdHlwZSAhPSBNVF9EQVRBICYmIChtKS0+bV90eXBlICE9IE1U X09PQkRBVEEpIFwKIAkJKHNiKS0+c2JfY3RsICs9IChtKS0+bV9sZW47IFwKIAkoc2IpLT5zYl9t YmNudCArPSBNU0laRTsgXAotCWlmICgobSktPm1fZmxhZ3MgJiBNX0VYVCkgXAorCShzYiktPnNi X21jbnQgKz0gMTsgXAorCWlmICgobSktPm1fZmxhZ3MgJiBNX0VYVCkgeyBcCiAJCShzYiktPnNi X21iY250ICs9IChtKS0+bV9leHQuZXh0X3NpemU7IFwKKwkJKHNiKS0+c2JfY2NudCArPSAxOyBc CisJfSBcCiB9CiAKIC8qIGFkanVzdCBjb3VudGVycyBpbiBzYiByZWZsZWN0aW5nIGZyZWVpbmcg b2YgbSAqLwpAQCAtMzMwLDggKzMzNywxMSBAQAogCWlmICgobSktPm1fdHlwZSAhPSBNVF9EQVRB ICYmIChtKS0+bV90eXBlICE9IE1UX09PQkRBVEEpIFwKIAkJKHNiKS0+c2JfY3RsIC09IChtKS0+ bV9sZW47IFwKIAkoc2IpLT5zYl9tYmNudCAtPSBNU0laRTsgXAotCWlmICgobSktPm1fZmxhZ3Mg JiBNX0VYVCkgXAorCShzYiktPnNiX21jbnQgLT0gMTsgXAorCWlmICgobSktPm1fZmxhZ3MgJiBN X0VYVCkgeyBcCiAJCShzYiktPnNiX21iY250IC09IChtKS0+bV9leHQuZXh0X3NpemU7IFwKKwkJ KHNiKS0+c2JfY2NudCAtPSAxOyBcCisJfSBcCiAJaWYgKChzYiktPnNiX3NuZHB0ciA9PSAobSkp IHsgXAogCQkoc2IpLT5zYl9zbmRwdHIgPSBOVUxMOyBcCiAJCShzYiktPnNiX3NuZHB0cm9mZiA9 IDA7IFwKSW5kZXg6IHVzci5iaW4vbmV0c3RhdC9pbmV0LmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2hvbWUvbmN2cy9zcmMvdXNyLmJpbi9uZXRzdGF0L2luZXQuYyx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS44MgpkaWZmIC11IC1yMS44MiBpbmV0LmMKLS0tIHVzci5iaW4vbmV0c3RhdC9pbmV0LmMJ NCBKYW4gMjAwOCAwMzowOToyOCAtMDAwMAkxLjgyCisrKyB1c3IuYmluL25ldHN0YXQvaW5ldC5j CTE1IE1heSAyMDA4IDAyOjU0OjI1IC0wMDAwCkBAIC0xNDIsNiArMTQyLDggQEAKIAl4c2ItPnNi X2NjID0gc2ItPnNiX2NjOwogCXhzYi0+c2JfaGl3YXQgPSBzYi0+c2JfaGl3YXQ7CiAJeHNiLT5z Yl9tYmNudCA9IHNiLT5zYl9tYmNudDsKKwl4c2ItPnNiX21jbnQgPSBzYi0+c2JfbWNudDsKKwl4 c2ItPnNiX2NjbnQgPSBzYi0+c2JfY2NudDsKIAl4c2ItPnNiX21ibWF4ID0gc2ItPnNiX21ibWF4 OwogCXhzYi0+c2JfbG93YXQgPSBzYi0+c2JfbG93YXQ7CiAJeHNiLT5zYl9mbGFncyA9IHNiLT5z Yl9mbGFnczsKQEAgLTQwNSwxMyArNDA3LDE5IEBACiAJCQlpZiAoTGZsYWcpCiAJCQkJcHJpbnRm KCIlLTUuNXMgJS0xNC4xNHMgJS0yMi4yMnNcbiIsCiAJCQkJICAgICJQcm90byIsICJMaXN0ZW4i LCAiTG9jYWwgQWRkcmVzcyIpOworCQkJcHJpbnRmKChBZmxhZyAmJiAhV2ZsYWcpID8gCisJCQkg ICAgICAgIiUtNS41cyAlLTYuNnMgJS02LjZzICAlLTE4LjE4cyAlLTE4LjE4cyIgOgorCQkJICAg ICAgICIlLTUuNXMgJS02LjZzICUtNi42cyAgJS0yMi4yMnMgJS0yMi4yMnMiLAorCQkJICAgICAg ICJQcm90byIsICJSZWN2LVEiLCAiU2VuZC1RIiwKKwkJCSAgICAgICAiTG9jYWwgQWRkcmVzcyIs ICJGb3JlaWduIEFkZHJlc3MiKTsKKwkJCWlmICh4ZmxhZykKKwkJCQlwcmludGYoIiUtNi42cyAl LTYuNnMgJS02LjZzICUtNi42cyAlLTYuNnMgJS02LjZzICUtNi42cyAlLTYuNnMgJS02LjZzICUt Ni42cyAlLTYuNnMgJS02LjZzICVzXG4iLAorCQkJCSAgICAgICAiUi1NQlVGIiwgIlMtTUJVRiIs ICJSLUNMVVMiLCAiUy1DTFVTIiwKKwkJCQkgICAgICAgIlItSElXQSIsICJTLUhJV0EiLCAiUi1M T1dBIiwgIlMtTE9XQSIsIAorCQkJCSAgICAgICAiUi1CQ05UIiwgIlMtQkNOVCIsICJSLUJNQVgi LCAiUy1CTUFYIiwgCisJCQkJICAgICAgICIoc3RhdGUpIik7CiAJCQllbHNlCi0JCQkJcHJpbnRm KChBZmxhZyAmJiAhV2ZsYWcpID8KLQkJIiUtNS41cyAlLTYuNnMgJS02LjZzICAlLTE4LjE4cyAl LTE4LjE4cyAlc1xuIiA6Ci0JCSIlLTUuNXMgJS02LjZzICUtNi42cyAgJS0yMi4yMnMgJS0yMi4y MnMgJXNcbiIsCi0JCQkJICAgICJQcm90byIsICJSZWN2LVEiLCAiU2VuZC1RIiwKLQkJCQkgICAg IkxvY2FsIEFkZHJlc3MiLCAiRm9yZWlnbiBBZGRyZXNzIiwKLQkJCQkgICAgIihzdGF0ZSkiKTsK KwkJCQlwcmludGYoIihzdGF0ZSlcbiIpOwogCQkJZmlyc3QgPSAwOwogCQl9CiAJCWlmIChMZmxh ZyAmJiBzby0+c29fcWxpbWl0ID09IDApCkBAIC00MzgsNyArNDQ2LDggQEAKIAkJCSAgICBzby0+ c29faW5jcWxlbiwgc28tPnNvX3FsaW1pdCk7CiAJCQlwcmludGYoIiUtMTQuMTRzICIsIGJ1ZjEp OwogCQl9IGVsc2UgewotCQkJcHJpbnRmKCIlNnUgJTZ1ICAiLCBzby0+c29fcmN2LnNiX2NjLCBz by0+c29fc25kLnNiX2NjKTsKKwkJCXByaW50ZigiJTZ1ICU2dSAiLCAKKwkJCSAgICAgICBzby0+ c29fcmN2LnNiX2NjLCBzby0+c29fc25kLnNiX2NjKTsKIAkJfQogCQlpZiAobnVtZXJpY19wb3J0 KSB7CiAJCQlpZiAoaW5wLT5pbnBfdmZsYWcgJiBJTlBfSVBWNCkgewpAQCAtNDk0LDEwICs1MDMs MjkgQEAKIAkJCX0gLyogZWxzZSBub3RoaW5nIHByaW50ZWQgbm93ICovCiAjZW5kaWYgLyogSU5F VDYgKi8KIAkJfQorCQlpZiAoeGZsYWcpIHsKKwkJCWlmIChMZmxhZykKKwkJCQlwcmludGYoIiUy MXMgJTZ1ICU2dSAlNnUgJTZ1ICU2dSAlNnUgJTZ1ICU2dSAlNnUgJTZ1ICU2dSAlNnUgIiwgCisJ CQkJICAgICAgICIgIiwKKwkJCQkgICAgICAgc28tPnNvX3Jjdi5zYl9tY250LCBzby0+c29fc25k LnNiX21jbnQsCisJCQkJICAgICAgIHNvLT5zb19yY3Yuc2JfY2NudCwgc28tPnNvX3NuZC5zYl9j Y250LAorCQkJCSAgICAgICBzby0+c29fcmN2LnNiX2hpd2F0LCBzby0+c29fc25kLnNiX2hpd2F0 LAorCQkJCSAgICAgICBzby0+c29fcmN2LnNiX2xvd2F0LCBzby0+c29fc25kLnNiX2xvd2F0LAor CQkJCSAgICAgICBzby0+c29fcmN2LnNiX21iY250LCBzby0+c29fc25kLnNiX21iY250LAorCQkJ CSAgICAgICBzby0+c29fcmN2LnNiX21ibWF4LCBzby0+c29fc25kLnNiX21ibWF4KTsKKwkJCWVs c2UKKwkJCQlwcmludGYoIiU2dSAlNnUgJTZ1ICU2dSAlNnUgJTZ1ICU2dSAlNnUgJTZ1ICU2dSAl NnUgJTZ1ICIsCisJCQkJICAgICAgIHNvLT5zb19yY3Yuc2JfbWNudCwgc28tPnNvX3NuZC5zYl9t Y250LAorCQkJCSAgICAgICBzby0+c29fcmN2LnNiX2NjbnQsIHNvLT5zb19zbmQuc2JfY2NudCwK KwkJCQkgICAgICAgc28tPnNvX3Jjdi5zYl9oaXdhdCwgc28tPnNvX3NuZC5zYl9oaXdhdCwKKwkJ CQkgICAgICAgc28tPnNvX3Jjdi5zYl9sb3dhdCwgc28tPnNvX3NuZC5zYl9sb3dhdCwKKwkJCQkg ICAgICAgc28tPnNvX3Jjdi5zYl9tYmNudCwgc28tPnNvX3NuZC5zYl9tYmNudCwKKwkJCQkgICAg ICAgc28tPnNvX3Jjdi5zYl9tYm1heCwgc28tPnNvX3NuZC5zYl9tYm1heCk7CisJCX0KIAkJaWYg KGlzdGNwICYmICFMZmxhZykgewogCQkJaWYgKHRwLT50X3N0YXRlIDwgMCB8fCB0cC0+dF9zdGF0 ZSA+PSBUQ1BfTlNUQVRFUykKIAkJCQlwcmludGYoIiVkIiwgdHAtPnRfc3RhdGUpOwotICAgICAg ICAgICAgICAgICAgICAgIGVsc2UgeworCQkJZWxzZSB7CiAJCQkJcHJpbnRmKCIlcyIsIHRjcHN0 YXRlc1t0cC0+dF9zdGF0ZV0pOwogI2lmIGRlZmluZWQoVEZfTkVFRFNZTikgJiYgZGVmaW5lZChU Rl9ORUVERklOKQogCQkJCS8qIFNob3cgVC9UQ1AgYGhpZGRlbiBzdGF0ZScgKi8KQEAgLTUwNSw3 ICs1MzMsNyBAQAogCQkJCQlwdXRjaGFyKCcqJyk7CiAjZW5kaWYgLyogZGVmaW5lZChURl9ORUVE U1lOKSAmJiBkZWZpbmVkKFRGX05FRURGSU4pICovCiAJCQl9Ci0JCX0KKwkJfSAJCQogCQlwdXRj aGFyKCdcbicpOwogCX0KIAlpZiAoeGlnICE9IG94aWcgJiYgeGlnLT54aWdfZ2VuICE9IG94aWct PnhpZ19nZW4pIHsKSW5kZXg6IHVzci5iaW4vbmV0c3RhdC9tYWluLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2hvbWUvbmN2cy9zcmMvdXNyLmJpbi9uZXRzdGF0L21haW4uYyx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS44OApkaWZmIC11IC1yMS44OCBtYWluLmMKLS0tIHVzci5iaW4vbmV0c3RhdC9t YWluLmMJMiBKYW4gMjAwOCAyMzoyNjoxMSAtMDAwMAkxLjg4CisrKyB1c3IuYmluL25ldHN0YXQv bWFpbi5jCTE1IE1heSAyMDA4IDAyOjU0OjI1IC0wMDAwCkBAIC0zMzEsNiArMzMxLDcgQEAKIGlu dAlzZmxhZzsJCS8qIHNob3cgcHJvdG9jb2wgc3RhdGlzdGljcyAqLwogaW50CXRmbGFnOwkJLyog c2hvdyBpL2Ygd2F0Y2hkb2cgdGltZXJzICovCiBpbnQJV2ZsYWc7CQkvKiB3aWRlIGRpc3BsYXkg Ki8KK2ludCAgICAgeGZsYWc7ICAgICAgICAgIC8qIGV4dHJhIGluZm9ybWF0aW9uLCBpbmNsdWRl cyBhbGwgc29ja2V0IGJ1ZmZlciBpbmZvICovCiBpbnQJemZsYWc7CQkvKiB6ZXJvIHN0YXRzICov CiAKIGludAlpbnRlcnZhbDsJLyogcmVwZWF0IGludGVydmFsIGZvciBpL2Ygc3RhdHMgKi8KQEAg LTM0OSw3ICszNTAsNyBAQAogCiAJYWYgPSBBRl9VTlNQRUM7CiAKLQl3aGlsZSAoKGNoID0gZ2V0 b3B0KGFyZ2MsIGFyZ3YsICJBYUJiZGY6Z2hJOmlMbE06bU46bnA6clNzdHVXdzp6IikpICE9IC0x KQorCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwgIkFhQmJkZjpnaEk6aUxsTTptTjpu cDpyU3N0dVd3Onh6IikpICE9IC0xKQogCQlzd2l0Y2goY2gpIHsKIAkJY2FzZSAnQSc6CiAJCQlB ZmxhZyA9IDE7CkBAIC00NTYsNiArNDU3LDkgQEAKIAkJCWludGVydmFsID0gYXRvaShvcHRhcmcp OwogCQkJaWZsYWcgPSAxOwogCQkJYnJlYWs7CisJCWNhc2UgJ3gnOgorCQkJeGZsYWcgPSAxOwor CQkJYnJlYWs7CiAJCWNhc2UgJ3onOgogCQkJemZsYWcgPSAxOwogCQkJYnJlYWs7CkluZGV4OiB1 c3IuYmluL25ldHN0YXQvbmV0c3RhdC4xCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMv c3JjL3Vzci5iaW4vbmV0c3RhdC9uZXRzdGF0LjEsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTgK ZGlmZiAtdSAtcjEuNTggbmV0c3RhdC4xCi0tLSB1c3IuYmluL25ldHN0YXQvbmV0c3RhdC4xCTEw IEp1biAyMDA3IDA2OjExOjAzIC0wMDAwCTEuNTgKKysrIHVzci5iaW4vbmV0c3RhdC9uZXRzdGF0 LjEJMTUgTWF5IDIwMDggMDI6NTQ6MjUgLTAwMDAKQEAgLTQ5LDcgKzQ5LDcgQEAKIC5JdCBYbwog LkJrIC13b3JkcwogLk5tCi0uT3AgRmwgQWFMblNXCisuT3AgRmwgQWFMblNXeAogLk9wIEZsIGYg QXIgcHJvdG9jb2xfZmFtaWx5IHwgRmwgcCBBciBwcm90b2NvbAogLk9wIEZsIE0gQXIgY29yZQog Lk9wIEZsIE4gQXIgc3lzdGVtCkBAIC04NSw2ICs4NSw5IEBACiBzaG93IG5ldHdvcmsgYWRkcmVz c2VzIGFzIG51bWJlcnMgKGFzIHdpdGgKIC5GbCBuICkKIGJ1dCBzaG93IHBvcnRzIHN5bWJvbGlj YWxseS4KK0lmCisuRmwgeAoraXMgcHJlc2VudCBkaXNwbGF5IGZ1bGwgc29ja2V0IGJ1ZmZlciBz dGF0aXN0aWNzIGZvciBlYWNoIGludGVybmV0IHNvY2tldC4KIC5JdCBYbwogLkJrIC13b3Jkcwog Lk5tCkBAIC00NTQsNiArNDU3LDI2IEBACiAuUHAKIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0 IHRoZXNlIGZsYWdzLCBwbGVhc2UgcmVmZXIgdG8KIC5YciBicGYgNCAuCisuUHAKK1RoZQorLkZs IHgKK2ZsYWcgY2F1c2VzIG5ldHN0YXQgdG8gb3V0cHV0IGFsbCB0aGUgaW5mb3JtYXRpb24gcmVj b3JkZWQgYWJvdXQgZGF0YQorc3RvcmVkIGluIHRoZSBzb2NrZXQgYnVmZmVycy4gIFRoZSBmaWVs ZHMgYXJlOgorLkJsIC1jb2x1bW4gIi5MaSBSLU1CVUYiCisuSXQgTGkgUi1NQlVGIFRhIE51bWJl ciBvZiBtYnVmcyBpbiB0aGUgcmVjZWl2ZSBxdWV1ZS4KKy5JdCBMaSBTLU1CVUYgVGEgTnVtYmVy IG9mIG1idWZzIGluIHRoZSBzZW5kIHF1ZXVlLgorLkl0IExpIFItQ0xVUyBUYSBOdW1iZXIgb2Yg Y2x1c3RlcnMsIG9mIGFueSB0eXBlLCBpbiB0aGUgcmVjaWV2ZQorcXVldWUuCisuSXQgTGkgUy1D TFVTIFRhIE51bWJlciBvZiBjbHVzdGVycywgb2YgYW55IHR5cGUsIGluIHRoZSBzZW5kIHF1ZXVl LgorLkl0IExpIFItSElXQSBUYSBSZWNlaXZlIGJ1ZmZlciBoaWdoIHdhdGVyIG1hcmssIGluIGJ5 dGVzLgorLkl0IExpIFMtSElXQSBUYSBTZW5kIGJ1ZmZlciBoaWdoIHdhdGVyIG1hcmssIGluIGJ5 dGVzLgorLkl0IExpIFItTE9XQSBUYSBSZWNlaXZlIGJ1ZmZlciBsb3cgd2F0ZXIgbWFyaywgaW4g Ynl0ZXMuCisuSXQgTGkgUy1MT1dBIFRhIFNlbmQgYnVmZmVyIGxvdyB3YXRlciBtYXJrLCBpbiBi eXRlcy4KKy5JdCBMaSBSLUJDTlQgVGEgUmVjZWl2ZSBidWZmZXIgYnl0ZSBjb3VudC4KKy5JdCBM aSBTLUJDTlQgVGEgU2VuZCBidWZmZXIgYnl0ZSBjb3VudC4KKy5JdCBMaSBSLUJNQVggVGEgTWF4 aW11bSBieXRlcyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSByZWNlaXZlIGJ1ZmZlci4KKy5JdCBM aSBTLUJNQVggVGEgTWF4aW11bSBieXRlcyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBzZW5kIGJ1 ZmZlci4KKy5FbAogLlNoIFNFRSBBTFNPCiAuWHIgZnN0YXQgMSAsCiAuWHIgbmZzc3RhdCAxICwK SW5kZXg6IHVzci5iaW4vbmV0c3RhdC9uZXRzdGF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hv bWUvbmN2cy9zcmMvdXNyLmJpbi9uZXRzdGF0L25ldHN0YXQuaCx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS41MwpkaWZmIC11IC1yMS41MyBuZXRzdGF0LmgKLS0tIHVzci5iaW4vbmV0c3RhdC9uZXRz dGF0LmgJNyBGZWIgMjAwOCAyMzowMDo0MCAtMDAwMAkxLjUzCisrKyB1c3IuYmluL25ldHN0YXQv bmV0c3RhdC5oCTE1IE1heSAyMDA4IDAyOjU0OjI1IC0wMDAwCkBAIC01MSw2ICs1MSw3IEBACiBl eHRlcm4gaW50CXNmbGFnOwkvKiBzaG93IHByb3RvY29sIHN0YXRpc3RpY3MgKi8KIGV4dGVybiBp bnQJdGZsYWc7CS8qIHNob3cgaS9mIHdhdGNoZG9nIHRpbWVycyAqLwogZXh0ZXJuIGludAlXZmxh ZzsJLyogd2lkZSBkaXNwbGF5ICovCitleHRlcm4gaW50ICAgICAgeGZsYWc7ICAvKiBleHRlbmRl ZCBkaXNwbGF5LCBpbmNsdWRlcyBhbGwgc29ja2V0IGJ1ZmZlciBpbmZvICovCiBleHRlcm4gaW50 CXpmbGFnOwkvKiB6ZXJvIHN0YXRzICovCiAKIGV4dGVybiBpbnQJaW50ZXJ2YWw7IC8qIHJlcGVh dCBpbnRlcnZhbCBmb3IgaS9mIHN0YXRzICovCg== --Multipart_Wed_May_14_23:14:17_2008-1--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m2hcd045ti.wl%gnn>