Skip site navigation (1)Skip section navigation (2)
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>