Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jun 2002 20:58:08 -0700 (PDT)
From:      Kelly Yancey <kbyanc@posi.net>
To:        freebsd-net@FreeBSD.ORG
Subject:   Request for review: patch to make netstat -rW behave as described in netstat(1)
Message-ID:  <20020603205104.T33228-200000@gateway.posi.net>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1401783618-1023163088=:33228
Content-Type: TEXT/PLAIN; charset=US-ASCII


  I would appreciate it if someone could review the attached patch which makes
netstat calculate column widths for the routing table when the -W flag is
specified rather than just picking larger arbitrary values as it does now.
Other than making -W more useful, it syncs reality to the documentation; from
netstat(1):

     -W    In certain displays, avoid truncating addresses even if this causes
           some fields to overflow.

  Basically, all the patch does is add a preliminary pass to calculate the
necessary column widths when -W is specified.  It is pretty straightforward,
but nonetheless, I'de appreciate feedback before I commit it.  Thanks,

  Kelly
  kbyanc@{posi.net,FreeBSD.org}

 * Wow, netstat is so far from WARNS-clean, it's scary.

--0-1401783618-1023163088=:33228
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="netstat.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <20020603205808.V33228@gateway.posi.net>
Content-Description: 
Content-Disposition: attachment; filename="netstat.diff"

SW5kZXg6IHVzci5iaW4vbmV0c3RhdC9yb3V0ZS5jDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvdXNyLmJpbi9u
ZXRzdGF0L3JvdXRlLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjY1DQpk
aWZmIC11IC11IC1yMS42NSByb3V0ZS5jDQotLS0gdXNyLmJpbi9uZXRzdGF0
L3JvdXRlLmMJMzEgTWF5IDIwMDIgMDQ6MzY6NTUgLTAwMDAJMS42NQ0KKysr
IHVzci5iaW4vbmV0c3RhdC9yb3V0ZS5jCTQgSnVuIDIwMDIgMDM6NDc6NTcg
LTAwMDANCkBAIC0xMjYsMTIgKzEyNiwxOCBAQA0KIGludAlOZXdUcmVlID0g
MDsNCiANCiBzdGF0aWMgc3RydWN0IHNvY2thZGRyICprZ2V0c2EgKHN0cnVj
dCBzb2NrYWRkciAqKTsNCitzdGF0aWMgdm9pZCBzaXplX2NvbHMgKGludCBl
Ziwgc3RydWN0IHJhZGl4X25vZGUgKnJuKTsNCitzdGF0aWMgdm9pZCBzaXpl
X2NvbHNfdHJlZSAoc3RydWN0IHJhZGl4X25vZGUgKnJuKTsNCitzdGF0aWMg
dm9pZCBzaXplX2NvbHNfcnRlbnRyeSAoc3RydWN0IHJ0ZW50cnkgKnJ0KTsN
CiBzdGF0aWMgdm9pZCBwX3RyZWUgKHN0cnVjdCByYWRpeF9ub2RlICopOw0K
IHN0YXRpYyB2b2lkIHBfcnRub2RlICh2b2lkKTsNCiBzdGF0aWMgdm9pZCBu
dHJlZXN0dWZmICh2b2lkKTsNCiBzdGF0aWMgdm9pZCBucF9ydGVudHJ5IChz
dHJ1Y3QgcnRfbXNnaGRyICopOw0KIHN0YXRpYyB2b2lkIHBfc29ja2FkZHIg
KHN0cnVjdCBzb2NrYWRkciAqLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgaW50LCBp
bnQpOw0KK3N0YXRpYyBjb25zdCBjaGFyICpmbXRfc29ja2FkZHIgKHN0cnVj
dCBzb2NrYWRkciAqc2EsIHN0cnVjdCBzb2NrYWRkciAqbWFzaywNCisJCQkJ
IGludCBmbGFncyk7DQogc3RhdGljIHZvaWQgcF9mbGFncyAoaW50LCBjaGFy
ICopOw0KK3N0YXRpYyBjb25zdCBjaGFyICpmbXRfZmxhZ3MoaW50IGYpOw0K
IHN0YXRpYyB2b2lkIHBfcnRlbnRyeSAoc3RydWN0IHJ0ZW50cnkgKik7DQog
c3RhdGljIHVfbG9uZyBmb3JnZW1hc2sgKHVfbG9uZyk7DQogc3RhdGljIHZv
aWQgZG9tYXNrIChjaGFyICosIHVfbG9uZywgdV9sb25nKTsNCkBAIC0xNjYs
NiArMTcyLDcgQEANCiAJCQkJCXBfdHJlZShoZWFkLnJuaF90cmVldG9wKTsN
CiAJCQkJfQ0KIAkJCX0gZWxzZSBpZiAoYWYgPT0gQUZfVU5TUEVDIHx8IGFm
ID09IGkpIHsNCisJCQkJc2l6ZV9jb2xzKGksIGhlYWQucm5oX3RyZWV0b3Ap
Ow0KIAkJCQlwcl9mYW1pbHkoaSk7DQogCQkJCWRvX3J0ZW50ID0gMTsNCiAJ
CQkJcHJfcnRoZHIoaSk7DQpAQCAtMjI0LDE3ICsyMzEsMTM0IEBADQogDQog
LyogY29sdW1uIHdpZHRoczsgZWFjaCBmb2xsb3dlZCBieSBvbmUgc3BhY2Ug
Ki8NCiAjaWZuZGVmIElORVQ2DQotI2RlZmluZQlXSURfRFNUKGFmKSAJMTgJ
Lyogd2lkdGggb2YgZGVzdGluYXRpb24gY29sdW1uICovDQotI2RlZmluZQlX
SURfR1coYWYpCTE4CS8qIHdpZHRoIG9mIGdhdGV3YXkgY29sdW1uICovDQot
I2RlZmluZQlXSURfSUYoYWYpCTYJLyogd2lkdGggb2YgbmV0aWYgY29sdW1u
ICovDQorI2RlZmluZQlXSURfRFNUX0RFRkFVTFQoYWYpIAkxOAkvKiB3aWR0
aCBvZiBkZXN0aW5hdGlvbiBjb2x1bW4gKi8NCisjZGVmaW5lCVdJRF9HV19E
RUZBVUxUKGFmKQkxOAkvKiB3aWR0aCBvZiBnYXRld2F5IGNvbHVtbiAqLw0K
KyNkZWZpbmUJV0lEX0lGX0RFRkFVTFQoYWYpCTYJLyogd2lkdGggb2YgbmV0
aWYgY29sdW1uICovDQogI2Vsc2UNCi0jZGVmaW5lCVdJRF9EU1QoYWYpIFwN
Ci0JKChhZikgPT0gQUZfSU5FVDYgPyAoV2ZsYWcgPyAzOSA6IChudW1lcmlj
X2FkZHIgPyAzMzogMTgpKSA6IDE4KQ0KLSNkZWZpbmUJV0lEX0dXKGFmKSBc
DQotCSgoYWYpID09IEFGX0lORVQ2ID8gKFdmbGFnID8gMzEgOiAobnVtZXJp
Y19hZGRyID8gMjkgOiAxOCkpIDogMTgpDQotI2RlZmluZQlXSURfSUYoYWYp
CSgoYWYpID09IEFGX0lORVQ2ID8gOCA6IDYpDQorI2RlZmluZQlXSURfRFNU
X0RFRkFVTFQoYWYpIFwNCisJKChhZikgPT0gQUZfSU5FVDYgPyAobnVtZXJp
Y19hZGRyID8gMzM6IDE4KSA6IDE4KQ0KKyNkZWZpbmUJV0lEX0dXX0RFRkFV
TFQoYWYpIFwNCisJKChhZikgPT0gQUZfSU5FVDYgPyAobnVtZXJpY19hZGRy
ID8gMjkgOiAxOCkgOiAxOCkNCisjZGVmaW5lCVdJRF9JRl9ERUZBVUxUKGFm
KQkoKGFmKSA9PSBBRl9JTkVUNiA/IDggOiA2KQ0KICNlbmRpZiAvKklORVQ2
Ki8NCiANCitzdGF0aWMgaW50IHdpZF9kc3Q7DQorc3RhdGljIGludCB3aWRf
Z3c7DQorc3RhdGljIGludCB3aWRfZmxhZ3M7DQorc3RhdGljIGludCB3aWRf
cmVmczsNCitzdGF0aWMgaW50IHdpZF91c2U7DQorc3RhdGljIGludCB3aWRf
bXR1Ow0KK3N0YXRpYyBpbnQgd2lkX2lmOw0KK3N0YXRpYyBpbnQgd2lkX2V4
cGlyZTsNCisNCitzdGF0aWMgdm9pZA0KK3NpemVfY29scyhpbnQgZWYsIHN0
cnVjdCByYWRpeF9ub2RlICpybikNCit7DQorCXdpZF9kc3QgPSBXSURfRFNU
X0RFRkFVTFQoZWYpOw0KKwl3aWRfZ3cgPSBXSURfR1dfREVGQVVMVChlZik7
DQorCXdpZF9mbGFncyA9IDY7DQorCXdpZF9yZWZzID0gNjsNCisJd2lkX3Vz
ZSA9IDg7DQorCXdpZF9tdHUgPSA2Ow0KKwl3aWRfaWYgPSBXSURfSUZfREVG
QVVMVChlZik7DQorCXdpZF9leHBpcmUgPSA2Ow0KKw0KKwlpZiAoV2ZsYWcp
DQorCQlzaXplX2NvbHNfdHJlZShybik7DQorfQ0KKw0KK3N0YXRpYyB2b2lk
DQorc2l6ZV9jb2xzX3RyZWUoc3RydWN0IHJhZGl4X25vZGUgKnJuKQ0KK3sN
CithZ2FpbjoNCisJa2dldChybiwgcm5vZGUpOw0KKwlpZiAocm5vZGUucm5f
Yml0IDwgMCkgew0KKwkJaWYgKChybm9kZS5ybl9mbGFncyAmIFJORl9ST09U
KSA9PSAwKSB7DQorCQkJa2dldChybiwgcnRlbnRyeSk7DQorCQkJc2l6ZV9j
b2xzX3J0ZW50cnkoJnJ0ZW50cnkpOw0KKwkJfQ0KKwkJaWYgKChybiA9IHJu
b2RlLnJuX2R1cGVka2V5KSkNCisJCQlnb3RvIGFnYWluOw0KKwl9IGVsc2Ug
ew0KKwkJcm4gPSBybm9kZS5ybl9yaWdodDsNCisJCXNpemVfY29sc190cmVl
KHJub2RlLnJuX2xlZnQpOw0KKwkJc2l6ZV9jb2xzX3RyZWUocm4pOw0KKwl9
DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQorc2l6ZV9jb2xzX3J0ZW50cnkoc3Ry
dWN0IHJ0ZW50cnkgKnJ0KQ0KK3sNCisJc3RhdGljIHN0cnVjdCBpZm5ldCBp
Zm5ldCwgKmxhc3RpZjsNCisJc3RydWN0IHJ0ZW50cnkgcGFyZW50Ow0KKwlz
dGF0aWMgY2hhciBidWZmZXJbMTAwXTsNCisJY29uc3QgY2hhciAqYnA7DQor
CXN0cnVjdCBzb2NrYWRkciAqc2E7DQorCXNhX3UgYWRkciwgbWFzazsNCisJ
aW50IGxlbjsNCisNCisJLyoNCisJICogRG9uJ3QgcHJpbnQgcHJvdG9jb2wt
Y2xvbmVkIHJvdXRlcyB1bmxlc3MgLWEuDQorCSAqLw0KKwlpZiAocnQtPnJ0
X2ZsYWdzICYgUlRGX1dBU0NMT05FRCAmJiAhYWZsYWcpIHsNCisJCWtnZXQo
cnQtPnJ0X3BhcmVudCwgcGFyZW50KTsNCisJCWlmIChwYXJlbnQucnRfZmxh
Z3MgJiBSVEZfUFJDTE9OSU5HKQ0KKwkJCXJldHVybjsNCisJfQ0KKw0KKwli
emVybygmYWRkciwgc2l6ZW9mKGFkZHIpKTsNCisJaWYgKChzYSA9IGtnZXRz
YShydF9rZXkocnQpKSkpDQorCQliY29weShzYSwgJmFkZHIsIHNhLT5zYV9s
ZW4pOw0KKwliemVybygmbWFzaywgc2l6ZW9mKG1hc2spKTsNCisJaWYgKHJ0
X21hc2socnQpICYmIChzYSA9IGtnZXRzYShydF9tYXNrKHJ0KSkpKQ0KKwkJ
YmNvcHkoc2EsICZtYXNrLCBzYS0+c2FfbGVuKTsNCisJYnAgPSBmbXRfc29j
a2FkZHIoJmFkZHIudV9zYSwgJm1hc2sudV9zYSwgcnQtPnJ0X2ZsYWdzKTsN
CisJbGVuID0gc3RybGVuKGJwKTsNCisJd2lkX2RzdCA9IE1BWChsZW4sIHdp
ZF9kc3QpOw0KKw0KKwlicCA9IGZtdF9zb2NrYWRkcihrZ2V0c2EocnQtPnJ0
X2dhdGV3YXkpLCBOVUxMLCBSVEZfSE9TVCk7DQorCWxlbiA9IHN0cmxlbihi
cCk7DQorCXdpZF9ndyA9IE1BWChsZW4sIHdpZF9ndyk7DQorDQorCWJwID0g
Zm10X2ZsYWdzKHJ0LT5ydF9mbGFncyk7DQorCWxlbiA9IHN0cmxlbihicCk7
DQorCXdpZF9mbGFncyA9IE1BWChsZW4sIHdpZF9mbGFncyk7DQorDQorCWlm
IChhZGRyLnVfc2Euc2FfZmFtaWx5ID09IEFGX0lORVQgfHwgV2ZsYWcpIHsN
CisJCWxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICIl
bGQiLCBydC0+cnRfcmVmY250KTsNCisJCXdpZF9yZWZzID0gTUFYKGxlbiwg
d2lkX3JlZnMpOw0KKwkJbGVuID0gc25wcmludGYoYnVmZmVyLCBzaXplb2Yo
YnVmZmVyKSwgIiVsdSIsIHJ0LT5ydF91c2UpOw0KKwkJd2lkX3VzZSA9IE1B
WChsZW4sIHdpZF91c2UpOw0KKwkJaWYgKFdmbGFnICYmIHJ0LT5ydF9ybXgu
cm14X210dSAhPSAwKSB7DQorCQkJbGVuID0gc25wcmludGYoYnVmZmVyLCBz
aXplb2YoYnVmZmVyKSwNCisJCQkJICAgICAgICIlbHUiLCBydC0+cnRfcm14
LnJteF9tdHUpOw0KKwkJCXdpZF9tdHUgPSBNQVgobGVuLCB3aWRfbXR1KTsN
CisJCX0NCisJfQ0KKwlpZiAocnQtPnJ0X2lmcCkgew0KKwkJaWYgKHJ0LT5y
dF9pZnAgIT0gbGFzdGlmKSB7DQorCQkJbGVuID0gc25wcmludGYoYnVmZmVy
LCBzaXplb2YoYnVmZmVyKSwgIiVkIiwNCisJCQkJICAgICAgIGlmbmV0Lmlm
X3VuaXQpOw0KKwkJCWtnZXQocnQtPnJ0X2lmcCwgaWZuZXQpOw0KKwkJCWty
ZWFkKCh1X2xvbmcpaWZuZXQuaWZfbmFtZSwgYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSk7DQorCQkJbGFzdGlmID0gcnQtPnJ0X2lmcDsNCisJCQlsZW4gKz0g
c3RybGVuKGJ1ZmZlcik7DQorCQkJd2lkX2lmID0gTUFYKGxlbiwgd2lkX2lm
KTsNCisJCX0NCisJCWlmIChydC0+cnRfcm14LnJteF9leHBpcmUpIHsNCisJ
CQl0aW1lX3QgZXhwaXJlX3RpbWU7DQorDQorCQkJaWYgKChleHBpcmVfdGlt
ZSA9DQorCQkJICAgIHJ0LT5ydF9ybXgucm14X2V4cGlyZSAtIHRpbWUoTlVM
TCkpID4gMCkgew0KKwkJCQlzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZm
ZXIpLCAiJWQiLA0KKwkJCQkJIChpbnQpZXhwaXJlX3RpbWUpOw0KKwkJCQl3
aWRfZXhwaXJlID0gTUFYKGxlbiwgd2lkX2V4cGlyZSk7DQorCQkJfQ0KKwkJ
fQ0KKwl9DQorfQ0KKw0KKw0KIC8qDQogICogUHJpbnQgaGVhZGVyIGZvciBy
b3V0aW5nIHRhYmxlIGNvbHVtbnMuDQogICovDQpAQCAtMjQ0LDI0ICszNjgs
MzUgQEANCiANCiAJaWYgKEFmbGFnKQ0KIAkJcHJpbnRmKCIlLTguOHMgIiwi
QWRkcmVzcyIpOw0KLQlpZiAoYWYgPT0gQUZfSU5FVCB8fCBXZmxhZykNCi0J
CWlmIChXZmxhZykNCi0JCQlwcmludGYoIiUtKi4qcyAlLSouKnMgJS02LjZz
ICU2LjZzICU4LjhzICU2LjZzICUqLipzICU2c1xuIiwNCi0JCQkJV0lEX0RT
VChhZiksIFdJRF9EU1QoYWYpLCAiRGVzdGluYXRpb24iLA0KLQkJCQlXSURf
R1coYWYpLCBXSURfR1coYWYpLCAiR2F0ZXdheSIsDQotCQkJCSJGbGFncyIs
ICJSZWZzIiwgIlVzZSIsICJNdHUiLA0KLQkJCQlXSURfSUYoYWYpLCBXSURf
SUYoYWYpLCAiTmV0aWYiLCAiRXhwaXJlIik7DQotCQllbHNlDQotCQkJcHJp
bnRmKCIlLSouKnMgJS0qLipzICUtNi42cyAlNi42cyAlOC44cyAlKi4qcyAl
NnNcbiIsDQotCQkJCVdJRF9EU1QoYWYpLCBXSURfRFNUKGFmKSwgIkRlc3Rp
bmF0aW9uIiwNCi0JCQkJV0lEX0dXKGFmKSwgV0lEX0dXKGFmKSwgIkdhdGV3
YXkiLA0KLQkJCQkiRmxhZ3MiLCAiUmVmcyIsICJVc2UiLA0KLQkJCQlXSURf
SUYoYWYpLCBXSURfSUYoYWYpLCAiTmV0aWYiLCAiRXhwaXJlIik7DQotCWVs
c2UNCi0JCXByaW50ZigiJS0qLipzICUtKi4qcyAlLTYuNnMgICU4LjhzICU2
c1xuIiwNCi0JCQlXSURfRFNUKGFmKSwgV0lEX0RTVChhZiksICJEZXN0aW5h
dGlvbiIsDQotCQkJV0lEX0dXKGFmKSwgV0lEX0dXKGFmKSwgIkdhdGV3YXki
LA0KLQkJCSJGbGFncyIsICJOZXRpZiIsICJFeHBpcmUiKTsNCisJaWYgKGFm
ID09IEFGX0lORVQgfHwgV2ZsYWcpIHsNCisJCWlmIChXZmxhZykgew0KKwkJ
CXByaW50ZigiJS0qLipzICUtKi4qcyAlLSouKnMgJSouKnMgJSouKnMgJSou
KnMgJSouKnMgJSpzXG4iLA0KKwkJCQl3aWRfZHN0LAl3aWRfZHN0LAkiRGVz
dGluYXRpb24iLA0KKwkJCQl3aWRfZ3csCQl3aWRfZ3csCQkiR2F0ZXdheSIs
DQorCQkJCXdpZF9mbGFncywJd2lkX2ZsYWdzLAkiRmxhZ3MiLA0KKwkJCQl3
aWRfcmVmcywJd2lkX3JlZnMsCSJSZWZzIiwNCisJCQkJd2lkX3VzZSwJd2lk
X3VzZSwJIlVzZSIsDQorCQkJCXdpZF9tdHUsCXdpZF9tdHUsCSJNdHUiLA0K
KwkJCQl3aWRfaWYsCQl3aWRfaWYsCQkiTmV0aWYiLA0KKwkJCQl3aWRfZXhw
aXJlLAkJCSJFeHBpcmUiKTsNCisJCX0gZWxzZSB7DQorCQkJcHJpbnRmKCIl
LSouKnMgJS0qLipzICUtKi4qcyAlKi4qcyAlKi4qcyAlKi4qcyAlKnNcbiIs
DQorCQkJCXdpZF9kc3QsCXdpZF9kc3QsCSJEZXN0aW5hdGlvbiIsDQorCQkJ
CXdpZF9ndywJCXdpZF9ndywJCSJHYXRld2F5IiwNCisJCQkJd2lkX2ZsYWdz
LAl3aWRfZmxhZ3MsCSJGbGFncyIsDQorCQkJCXdpZF9yZWZzLAl3aWRfcmVm
cywJIlJlZnMiLA0KKwkJCQl3aWRfdXNlLAl3aWRfdXNlLAkiVXNlIiwNCisJ
CQkJd2lkX2lmLAkJd2lkX2lmLAkJIk5ldGlmIiwNCisJCQkJd2lkX2V4cGly
ZSwJCQkiRXhwaXJlIik7DQorCQl9DQorCX0gZWxzZSB7DQorCQlwcmludGYo
IiUtKi4qcyAlLSouKnMgJS0qLipzICAlKi4qcyAlKnNcbiIsDQorCQkJd2lk
X2RzdCwJd2lkX2RzdCwJIkRlc3RpbmF0aW9uIiwNCisJCQl3aWRfZ3csCQl3
aWRfZ3csCQkiR2F0ZXdheSIsDQorCQkJd2lkX2ZsYWdzLAl3aWRfZmxhZ3Ms
CSJGbGFncyIsDQorCQkJd2lkX2lmLAkJd2lkX2lmLAkJIk5ldGlmIiwNCisJ
CQl3aWRfZXhwaXJlLAkJCSJFeHBpcmUiKTsNCisJfQ0KIH0NCiANCiBzdGF0
aWMgc3RydWN0IHNvY2thZGRyICoNCkBAIC00MjIsOCArNTU3LDI2IEBADQog
c3RhdGljIHZvaWQNCiBwX3NvY2thZGRyKHN0cnVjdCBzb2NrYWRkciAqc2Es
IHN0cnVjdCBzb2NrYWRkciAqbWFzaywgaW50IGZsYWdzLCBpbnQgd2lkdGgp
DQogew0KLQljaGFyIHdvcmtidWZbMTI4XSwgKmNwbGltOw0KLQlyZWdpc3Rl
ciBjaGFyICpjcCA9IHdvcmtidWY7DQorCWNvbnN0IGNoYXIgKmNwOw0KKw0K
KwljcCA9IGZtdF9zb2NrYWRkcihzYSwgbWFzaywgZmxhZ3MpOw0KKw0KKwlp
ZiAod2lkdGggPCAwICkNCisJCXByaW50ZigiJXMgIiwgY3ApOw0KKwllbHNl
IHsNCisJCWlmIChudW1lcmljX2FkZHIpDQorCQkJcHJpbnRmKCIlLSpzICIs
IHdpZHRoLCBjcCk7DQorCQllbHNlDQorCQkJcHJpbnRmKCIlLSouKnMgIiwg
d2lkdGgsIHdpZHRoLCBjcCk7DQorCX0NCit9DQorDQorc3RhdGljIGNvbnN0
IGNoYXIgKg0KK2ZtdF9zb2NrYWRkcihzdHJ1Y3Qgc29ja2FkZHIgKnNhLCBz
dHJ1Y3Qgc29ja2FkZHIgKm1hc2ssIGludCBmbGFncykNCit7DQorCXN0YXRp
YyBjaGFyIHdvcmtidWZbMTI4XTsNCisJY2hhciAqY3BsaW07DQorCWNoYXIg
KmNwID0gd29ya2J1ZjsNCiANCiAJc3dpdGNoKHNhLT5zYV9mYW1pbHkpIHsN
CiAJY2FzZSBBRl9JTkVUOg0KQEAgLTU0MiwyNyArNjk1LDI4IEBADQogCQlj
cCA9IHdvcmtidWY7DQogCSAgICB9DQogCX0NCi0JaWYgKHdpZHRoIDwgMCAp
DQotCQlwcmludGYoIiVzICIsIGNwKTsNCi0JZWxzZSB7DQotCQlpZiAobnVt
ZXJpY19hZGRyKQ0KLQkJCXByaW50ZigiJS0qcyAiLCB3aWR0aCwgY3ApOw0K
LQkJZWxzZQ0KLQkJCXByaW50ZigiJS0qLipzICIsIHdpZHRoLCB3aWR0aCwg
Y3ApOw0KLQl9DQorDQorCXJldHVybiAoY3ApOw0KIH0NCiANCiBzdGF0aWMg
dm9pZA0KIHBfZmxhZ3MoaW50IGYsIGNoYXIgKmZvcm1hdCkNCiB7DQotCWNo
YXIgbmFtZVszM10sICpmbGFnczsNCi0JcmVnaXN0ZXIgc3RydWN0IGJpdHMg
KnAgPSBiaXRzOw0KKwlwcmludGYoZm9ybWF0LCBmbXRfZmxhZ3MoZikpOw0K
K30NCisNCitzdGF0aWMgY29uc3QgY2hhciAqDQorZm10X2ZsYWdzKGludCBm
KQ0KK3sNCisJc3RhdGljIGNoYXIgbmFtZVszM107DQorCWNoYXIgKmZsYWdz
Ow0KKwlzdHJ1Y3QgYml0cyAqcCA9IGJpdHM7DQogDQogCWZvciAoZmxhZ3Mg
PSBuYW1lOyBwLT5iX21hc2s7IHArKykNCiAJCWlmIChwLT5iX21hc2sgJiBm
KQ0KIAkJCSpmbGFncysrID0gcC0+Yl92YWw7DQogCSpmbGFncyA9ICdcMCc7
DQotCXByaW50Zihmb3JtYXQsIG5hbWUpOw0KKwlyZXR1cm4gKG5hbWUpOw0K
IH0NCiANCiBzdGF0aWMgdm9pZA0KQEAgLTU3MCw4ICs3MjQsOCBAQA0KIHsN
CiAJc3RhdGljIHN0cnVjdCBpZm5ldCBpZm5ldCwgKmxhc3RpZjsNCiAJc3Ry
dWN0IHJ0ZW50cnkgcGFyZW50Ow0KLQlzdGF0aWMgY2hhciBuYW1lWzE2XTsN
Ci0Jc3RhdGljIGNoYXIgcHJldHR5bmFtZVs5XTsNCisJc3RhdGljIGNoYXIg
YnVmZmVyWzEyOF07DQorCXN0YXRpYyBjaGFyIHByZXR0eW5hbWVbMTI4XTsN
CiAJc3RydWN0IHNvY2thZGRyICpzYTsNCiAJc2FfdSBhZGRyLCBtYXNrOw0K
IA0KQEAgLTU5MCwzNiArNzQ0LDM1IEBADQogCWJ6ZXJvKCZtYXNrLCBzaXpl
b2YobWFzaykpOw0KIAlpZiAocnRfbWFzayhydCkgJiYgKHNhID0ga2dldHNh
KHJ0X21hc2socnQpKSkpDQogCQliY29weShzYSwgJm1hc2ssIHNhLT5zYV9s
ZW4pOw0KLQlwX3NvY2thZGRyKCZhZGRyLnVfc2EsICZtYXNrLnVfc2EsIHJ0
LT5ydF9mbGFncywNCi0JICAgIFdJRF9EU1QoYWRkci51X3NhLnNhX2ZhbWls
eSkpOw0KLQlwX3NvY2thZGRyKGtnZXRzYShydC0+cnRfZ2F0ZXdheSksIE5V
TEwsIFJURl9IT1NULA0KLQkgICAgV0lEX0dXKGFkZHIudV9zYS5zYV9mYW1p
bHkpKTsNCi0JcF9mbGFncyhydC0+cnRfZmxhZ3MsICIlLTYuNnMgIik7DQor
CXBfc29ja2FkZHIoJmFkZHIudV9zYSwgJm1hc2sudV9zYSwgcnQtPnJ0X2Zs
YWdzLCB3aWRfZHN0KTsNCisJcF9zb2NrYWRkcihrZ2V0c2EocnQtPnJ0X2dh
dGV3YXkpLCBOVUxMLCBSVEZfSE9TVCwgd2lkX2d3KTsNCisJc25wcmludGYo
YnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIiUlLSVkLiVkcyAiLCB3aWRfZmxh
Z3MsIHdpZF9mbGFncyk7DQorCXBfZmxhZ3MocnQtPnJ0X2ZsYWdzLCBidWZm
ZXIpOw0KIAlpZiAoYWRkci51X3NhLnNhX2ZhbWlseSA9PSBBRl9JTkVUIHx8
IFdmbGFnKSB7DQotCQlwcmludGYoIiU2bGQgJThsdSAiLCBydC0+cnRfcmVm
Y250LCBydC0+cnRfdXNlKTsNCisJCXByaW50ZigiJSpsZCAlKmx1ICIsIHdp
ZF9yZWZzLCBydC0+cnRfcmVmY250LA0KKwkJCQkgICAgIHdpZF91c2UsIHJ0
LT5ydF91c2UpOw0KIAkJaWYgKFdmbGFnKSB7DQogCQkJaWYgKHJ0LT5ydF9y
bXgucm14X210dSAhPSAwKQ0KLQkJCQlwcmludGYoIiU2bHUgIiwgcnQtPnJ0
X3JteC5ybXhfbXR1KTsNCisJCQkJcHJpbnRmKCIlKmx1ICIsIHdpZF9tdHUs
IHJ0LT5ydF9ybXgucm14X210dSk7DQogCQkJZWxzZQ0KLQkJCQlwcmludGYo
IiU2cyAiLCAiIik7DQorCQkJCXByaW50ZigiJSpzICIsIHdpZF9tdHUsICIi
KTsNCiAJCX0NCiAJfQ0KIAlpZiAocnQtPnJ0X2lmcCkgew0KIAkJaWYgKHJ0
LT5ydF9pZnAgIT0gbGFzdGlmKSB7DQogCQkJa2dldChydC0+cnRfaWZwLCBp
Zm5ldCk7DQotCQkJa3JlYWQoKHVfbG9uZylpZm5ldC5pZl9uYW1lLCBuYW1l
LCAxNik7DQorCQkJa3JlYWQoKHVfbG9uZylpZm5ldC5pZl9uYW1lLCBidWZm
ZXIsIHNpemVvZihidWZmZXIpKTsNCiAJCQlsYXN0aWYgPSBydC0+cnRfaWZw
Ow0KLQkJCXNucHJpbnRmKHByZXR0eW5hbWUsIHNpemVvZiBwcmV0dHluYW1l
LA0KLQkJCQkgIiVzJWQiLCBuYW1lLCBpZm5ldC5pZl91bml0KTsNCisJCQlz
bnByaW50ZihwcmV0dHluYW1lLCBzaXplb2YocHJldHR5bmFtZSksDQorCQkJ
CSAiJXMlZCIsIGJ1ZmZlciwgaWZuZXQuaWZfdW5pdCk7DQogCQl9DQotCQlw
cmludGYoIiUqLipzIiwgV0lEX0lGKGFkZHIudV9zYS5zYV9mYW1pbHkpLA0K
LQkJICAgIFdJRF9JRihhZGRyLnVfc2Euc2FfZmFtaWx5KSwgcHJldHR5bmFt
ZSk7DQorCQlwcmludGYoIiUqLipzIiwgd2lkX2lmLCB3aWRfaWYsIHByZXR0
eW5hbWUpOw0KIAkJaWYgKHJ0LT5ydF9ybXgucm14X2V4cGlyZSkgew0KIAkJ
CXRpbWVfdCBleHBpcmVfdGltZTsNCiANCiAJCQlpZiAoKGV4cGlyZV90aW1l
ID0NCiAJCQkgICAgcnQtPnJ0X3JteC5ybXhfZXhwaXJlIC0gdGltZSgodGlt
ZV90ICopMCkpID4gMCkNCi0JCQkJcHJpbnRmKCIgJTZkIiwgKGludClleHBp
cmVfdGltZSk7DQorCQkJCXByaW50ZigiICUqZCIsIHdpZF9leHBpcmUsIChp
bnQpZXhwaXJlX3RpbWUpOw0KIAkJfQ0KIAkJaWYgKHJ0LT5ydF9ub2Rlc1sw
XS5ybl9kdXBlZGtleSkNCiAJCQlwcmludGYoIiA9PiIpOw0K
--0-1401783618-1023163088=:33228--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




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