Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Mar 2012 22:00:36 GMT
From:      Mark Johnston <markjdb@gmail.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/143017: watch(8): fatal: cannot attach to tty
Message-ID:  <201203122200.q2CM0awj082150@freefall.freebsd.org>

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

From: Mark Johnston <markjdb@gmail.com>
To: Ed Schouten <ed@80386.nl>
Cc: bug-followup@freebsd.org, dummy@smtp.ru
Subject: Re: bin/143017: watch(8): fatal: cannot attach to tty
Date: Mon, 12 Mar 2012 17:54:01 -0400

 --20cf307d0576be5e4204bb12c767
 Content-Type: text/plain; charset=ISO-8859-1
 
 On Mon, Mar 12, 2012 at 5:52 PM, Mark Johnston <markjdb@gmail.com> wrote:
 > On Mon, Mar 12, 2012 at 5:27 PM, Ed Schouten <ed@80386.nl> wrote:
 >> Sure, but in that case you can simply use isatty() to distinguish the
 >> special treatment. What I mean is that you can only call watch(8) by
 >> passing the TTY used on the command line.
 >
 > Ok, fair enough. I replaced opt_interactive with isatty(std_out)
 > checks. One check was unnecessary - the line with a FD_ISSET check. I
 > also added a check in unset_tty() so that the terminal doesn't break
 > if we bail with ^C.
 >
 > So the difference now is that in non-interactive mode, we're not
 > interested in stdin, and the tty has to be passed on the command line.
 >
 >> Also I see you've simplified the code that dynamically scales the input
 >> buffer size. Though I think that's a good idea, I do think we should
 >> increase BUF_SIZE to something higher. Setting it to 4 KB or something
 >> shouldn't harm, right?
 >
 > Yeah, good point. I've attached the regenerated patch.
 
 ...
 
 --20cf307d0576be5e4204bb12c767
 Content-Type: text/plain; charset=US-ASCII; name="watch_cleanup.patch.txt"
 Content-Disposition: attachment; filename="watch_cleanup.patch.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_gzq1uetj0
 
 ZGlmZiAtLWdpdCBhL3Vzci5zYmluL3dhdGNoL3dhdGNoLjggYi91c3Iuc2Jpbi93YXRjaC93YXRj
 aC44CmluZGV4IDk5YzZiNmYuLjc0NzQzZTkgMTAwNjQ0Ci0tLSBhL3Vzci5zYmluL3dhdGNoL3dh
 dGNoLjgKKysrIGIvdXNyLnNiaW4vd2F0Y2gvd2F0Y2guOApAQCAtNTMsMTMgKzUzLDYgQEAgV2l0
 aG91dCB0aGlzIG9wdGlvbiwKIHdpbGwgYXR0ZW1wdCB0byBmaW5kIHRoZSBuZXh0IGF2YWlsYWJs
 ZQogLlhyIHNucCA0CiBkZXZpY2UuCi0uSXQgRmwgaQotRm9yY2UgaW50ZXJhY3RpdmUgbW9kZS4K
 LUludGVyYWN0aXZlIG1vZGUgaXMgYSBkZWZhdWx0IGlmCi0uTm0KLWlzIHN0YXJ0ZWQgZnJvbSBh
 IHR0eS4KLUlmIG91dHB1dCBpcyByZWRpcmVjdGVkIHRvIGEgZmlsZSwgaW50ZXJhY3RpdmUgbW9k
 ZSBjYW4gc3RpbGwgYmUgcmVxdWVzdGVkCi1ieSBzcGVjaWZ5aW5nIHRoaXMgb3B0aW9uLgogLkl0
 IEZsIG4KIERpc2FibGUgdGhlIGFiaWxpdHkgdG8gc3dpdGNoIHRoZSB3YXRjaGVkIHR0eSBpbnRl
 cmFjdGl2ZWx5LgogVGhpcyBkaXNhYmxlcwpkaWZmIC0tZ2l0IGEvdXNyLnNiaW4vd2F0Y2gvd2F0
 Y2guYyBiL3Vzci5zYmluL3dhdGNoL3dhdGNoLmMKaW5kZXggZTY5NTM0ZC4uMDQ4ZTM3MiAxMDA2
 NDQKLS0tIGEvdXNyLnNiaW4vd2F0Y2gvd2F0Y2guYworKysgYi91c3Iuc2Jpbi93YXRjaC93YXRj
 aC5jCkBAIC00NSw3ICs0NSw3IEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsKICNkZWZpbmUgTVNH
 X05PV1JJVEUJIlNub29wIGRldmljZSBjaGFuZ2UgZHVlIHRvIHdyaXRlIGZhaWx1cmUuIgogCiAj
 ZGVmaW5lIERFVl9OQU1FX0xFTgkxMDI0CS8qIGZvciAvZGV2L3R0eVhYKysgKi8KLSNkZWZpbmUg
 TUlOX1NJWkUJMjU2CisjZGVmaW5lIEJVRl9TSVpFCTQwOTYKIAogI2RlZmluZSBDSFJfU1dJVENI
 CTI0CS8qIEN0cmwrWAkgKi8KICNkZWZpbmUgQ0hSX0NMRUFSCTIzCS8qIEN0cmwrVgkgKi8KQEAg
 LTU1LDcgKzU1LDYgQEAgc3RhdGljIHZvaWQJdGltZXN0YW1wKGNvbnN0IGNoYXIgKik7CiBzdGF0
 aWMgdm9pZAlzZXRfdHR5KHZvaWQpOwogc3RhdGljIHZvaWQJdW5zZXRfdHR5KHZvaWQpOwogc3Rh
 dGljIHZvaWQJZmF0YWwoaW50LCBjb25zdCBjaGFyICopOwotc3RhdGljIGludAlvcGVuX3NucCh2
 b2lkKTsKIHN0YXRpYyB2b2lkCWNsZWFudXAoaW50KTsKIHN0YXRpYyB2b2lkCXVzYWdlKHZvaWQp
 IF9fZGVhZDI7CiBzdGF0aWMgdm9pZAlzZXR1cF9zY3Iodm9pZCk7CkBAIC02Niw3ICs2NSw2IEBA
 IHN0YXRpYyB2b2lkCWFza19kZXYoY2hhciAqLCBjb25zdCBjaGFyICopOwogCiBpbnQJCW9wdF9y
 ZWNvbm5fY2xvc2UgPSAwOwogaW50CQlvcHRfcmVjb25uX29mbG93ID0gMDsKLWludAkJb3B0X2lu
 dGVyYWN0aXZlID0gMTsKIGludAkJb3B0X3RpbWVzdGFtcCA9IDA7CiBpbnQJCW9wdF93cml0ZSA9
 IDA7CiBpbnQJCW9wdF9ub19zd2l0Y2ggPSAwOwpAQCAtMTM0LDggKzEzMiw4IEBAIHNldF90dHko
 dm9pZCkKIHN0YXRpYyB2b2lkCiB1bnNldF90dHkodm9pZCkKIHsKLQotCXRjc2V0YXR0cihzdGRf
 aW4sIFRDU0FOT1csICZvdHR5KTsKKwlpZiAoaXNhdHR5KHN0ZF9vdXQpKQorCQl0Y3NldGF0dHIo
 c3RkX2luLCBUQ1NBTk9XLCAmb3R0eSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xNDksMjYgKzE0
 Nyw2IEBAIGZhdGFsKGludCBlcnJvciwgY29uc3QgY2hhciAqYnVmKQogCQlleGl0KGVycm9yKTsK
 IH0KIAotc3RhdGljIGludAotb3Blbl9zbnAodm9pZCkKLXsKLQlpbnQJCWYsIG1vZGU7Ci0KLQlp
 ZiAob3B0X3dyaXRlKQotCQltb2RlID0gT19SRFdSOwotCWVsc2UKLQkJbW9kZSA9IE9fUkRPTkxZ
 OwotCi0JaWYgKG9wdF9zbnBkZXYgPT0gTlVMTCkKLQkJZiA9IG9wZW4oX1BBVEhfREVWICJzbnAi
 LCBtb2RlKTsKLQllbHNlCi0JCWYgPSBvcGVuKG9wdF9zbnBkZXYsIG1vZGUpOwotCWlmIChmID09
 IC0xKQotCQlmYXRhbChFWF9PU0ZJTEUsICJjYW5ub3Qgb3BlbiBzbm9vcCBkZXZpY2UiKTsKLQot
 CXJldHVybiAoZik7Ci19Ci0KIHN0YXRpYyB2b2lkCiBjbGVhbnVwKGludCBzaWdubyBfX3VudXNl
 ZCkKIHsKQEAgLTE5Myw3ICsxNzEsNyBAQCBzZXR1cF9zY3Iodm9pZCkKIHsKIAljaGFyCQkqY2J1
 ZiA9IGdidWYsICp0ZXJtOwogCi0JaWYgKCFvcHRfaW50ZXJhY3RpdmUpCisJaWYgKCFpc2F0dHko
 c3RkX291dCkpCiAJCXJldHVybjsKIAlpZiAoKHRlcm0gPSBnZXRlbnYoIlRFUk0iKSkpCiAJCWlm
 ICh0Z2V0ZW50KHRidWYsIHRlcm0pID09IDEpCkBAIC0yMDYsMjUgKzE4NCwzMyBAQCBzZXR1cF9z
 Y3Iodm9pZCkKIHN0YXRpYyB2b2lkCiBkZXRhY2hfc25wKHZvaWQpCiB7Ci0JaW50CQlmZDsKIAot
 CWZkID0gLTE7Ci0JaW9jdGwoc25wX2lvLCBTTlBTVFRZLCAmZmQpOworCWNsb3NlKHNucF9pbyk7
 CiB9CiAKIHN0YXRpYyB2b2lkCiBhdHRhY2hfc25wKHZvaWQpCiB7Ci0JaW50CQlzbnBfdHR5Owor
 CWludCBzbnBfdHR5LCBtb2RlOworCisJaWYgKG9wdF93cml0ZSkKKwkJbW9kZSA9IE9fUkRXUjsK
 KwllbHNlCisJCW1vZGUgPSBPX1JET05MWTsKKworCWlmIChvcHRfc25wZGV2ID09IE5VTEwpCisJ
 CXNucF9pbyA9IG9wZW4oX1BBVEhfREVWICJzbnAiLCBtb2RlKTsKKwllbHNlCisJCXNucF9pbyA9
 IG9wZW4ob3B0X3NucGRldiwgbW9kZSk7CisJaWYgKHNucF9pbyA9PSAtMSkKKwkJZmF0YWwoRVhf
 T1NGSUxFLCAiY2Fubm90IG9wZW4gc25vb3AgZGV2aWNlIik7CiAKIAlzbnBfdHR5ID0gb3Blbihk
 ZXZfbmFtZSwgT19SRE9OTFkgfCBPX05PTkJMT0NLKTsKLQlpZiAoc25wX3R0eSA8IDApCisJaWYg
 KHNucF90dHkgPT0gLTEpCiAJCWZhdGFsKEVYX0RBVEFFUlIsICJjYW4ndCBvcGVuIGRldmljZSIp
 OwogCWlmIChpb2N0bChzbnBfaW8sIFNOUFNUVFksICZzbnBfdHR5KSAhPSAwKQogCQlmYXRhbChF
 WF9VTkFWQUlMQUJMRSwgImNhbm5vdCBhdHRhY2ggdG8gdHR5Iik7CiAJY2xvc2Uoc25wX3R0eSk7
 Ci0JaWYgKG9wdF90aW1lc3RhbXApCi0JCXRpbWVzdGFtcCgiTG9nZ2luZyBTdGFydGVkLiIpOwog
 fQogCiBzdGF0aWMgdm9pZApAQCAtMjY5LDcgKzI1NSw3IEBAIGFza19kZXYoY2hhciAqZGJ1Ziwg
 Y29uc3QgY2hhciAqbXNnKQogCWVsc2UKIAkJcHJpbnRmKCJFbnRlciBkZXZpY2UgbmFtZToiKTsK
 IAotCWlmIChmZ2V0cyhidWYsIERFVl9OQU1FX0xFTiAtIDEsIHN0ZGluKSkgeworCWlmIChmZ2V0
 cyhidWYsIERFVl9OQU1FX0xFTiwgc3RkaW4pKSB7CiAJCWxlbiA9IHN0cmxlbihidWYpOwogCQlp
 ZiAoYnVmW2xlbiAtIDFdID09ICdcbicpCiAJCQlidWZbbGVuIC0gMV0gPSAnXDAnOwpAQCAtMjg1
 LDE4ICsyNzEsMTIgQEAgaW50CiBtYWluKGludCBhYywgY2hhciAqYXZbXSkKIHsKIAlpbnQJCWNo
 LCByZXMsIHJ2LCBucmVhZDsKLQlzaXplX3QJCWJfc2l6ZSA9IE1JTl9TSVpFOwotCWNoYXIJCSpi
 dWYsIGNoYltSRUFEQl9MRU5dOworCWNoYXIJCWJ1ZltCVUZfU0laRV0sIGNoYltSRUFEQl9MRU5d
 OwogCWZkX3NldAkJZmRfczsKIAogCSh2b2lkKSBzZXRsb2NhbGUoTENfVElNRSwgIiIpOwogCi0J
 aWYgKGlzYXR0eShzdGRfb3V0KSkKLQkJb3B0X2ludGVyYWN0aXZlID0gMTsKLQllbHNlCi0JCW9w
 dF9pbnRlcmFjdGl2ZSA9IDA7Ci0KLQl3aGlsZSAoKGNoID0gZ2V0b3B0KGFjLCBhdiwgIldjaW90
 bmY6IikpICE9IC0xKQorCXdoaWxlICgoY2ggPSBnZXRvcHQoYWMsIGF2LCAiV2NvdG5mOiIpKSAh
 PSAtMSkKIAkJc3dpdGNoIChjaCkgewogCQljYXNlICdXJzoKIAkJCW9wdF93cml0ZSA9IDE7CkBA
 IC0zMDQsOSArMjg0LDYgQEAgbWFpbihpbnQgYWMsIGNoYXIgKmF2W10pCiAJCWNhc2UgJ2MnOgog
 CQkJb3B0X3JlY29ubl9jbG9zZSA9IDE7CiAJCQlicmVhazsKLQkJY2FzZSAnaSc6Ci0JCQlvcHRf
 aW50ZXJhY3RpdmUgPSAxOwotCQkJYnJlYWs7CiAJCWNhc2UgJ28nOgogCQkJb3B0X3JlY29ubl9v
 ZmxvdyA9IDE7CiAJCQlicmVhazsKQEAgLTMyNCw0MyArMzAxLDM5IEBAIG1haW4oaW50IGFjLCBj
 aGFyICphdltdKQogCQkJdXNhZ2UoKTsKIAkJfQogCisJaWYgKGFjIC0gb3B0aW5kID4gMSkKKwkJ
 dXNhZ2UoKTsKKwogCWlmIChtb2RmaW5kKCJzbnAiKSA9PSAtMSkKIAkJaWYgKGtsZGxvYWQoInNu
 cCIpID09IC0xIHx8IG1vZGZpbmQoInNucCIpID09IC0xKQogCQkJd2Fybigic25wIG1vZHVsZSBu
 b3QgYXZhaWxhYmxlIik7CiAKIAlzaWduYWwoU0lHSU5ULCBjbGVhbnVwKTsKIAotCXNucF9pbyA9
 IG9wZW5fc25wKCk7CiAJc2V0dXBfc2NyKCk7CiAKIAlpZiAoKihhdiArPSBvcHRpbmQpID09IE5V
 TEwpIHsKLQkJaWYgKG9wdF9pbnRlcmFjdGl2ZSAmJiAhb3B0X25vX3N3aXRjaCkKKwkJaWYgKGlz
 YXR0eShzdGRfb3V0KSAmJiAhb3B0X25vX3N3aXRjaCkKIAkJCWFza19kZXYoZGV2X25hbWUsIE1T
 R19JTklUKTsKIAkJZWxzZQotCQkJZmF0YWwoRVhfREFUQUVSUiwgIm5vIGRldmljZSBuYW1lIGdp
 dmVuIik7CisJCQllcnJ4KEVYX0RBVEFFUlIsICJubyBkZXZpY2UgbmFtZSBnaXZlbiIpOwogCX0g
 ZWxzZQogCQlzdHJuY3B5KGRldl9uYW1lLCAqYXYsIERFVl9OQU1FX0xFTik7Ci0KIAlzZXRfZGV2
 KGRldl9uYW1lKTsKIAotCWlmICghKGJ1ZiA9IChjaGFyICopIG1hbGxvYyhiX3NpemUpKSkKLQkJ
 ZmF0YWwoRVhfVU5BVkFJTEFCTEUsICJtYWxsb2MgZmFpbGVkIik7CisJaWYgKG9wdF90aW1lc3Rh
 bXApCisJCXRpbWVzdGFtcCgiTG9nZ2luZyBTdGFydGVkLiIpOwogCiAJRkRfWkVSTygmZmRfcyk7
 CiAKIAlmb3IgKDs7KSB7Ci0JCWlmIChvcHRfaW50ZXJhY3RpdmUpCisJCWlmIChpc2F0dHkoc3Rk
 X291dCkpCiAJCQlGRF9TRVQoc3RkX2luLCAmZmRfcyk7CiAJCUZEX1NFVChzbnBfaW8sICZmZF9z
 KTsKIAkJcmVzID0gc2VsZWN0KHNucF9pbyArIDEsICZmZF9zLCBOVUxMLCBOVUxMLCBOVUxMKTsK
 LQkJaWYgKG9wdF9pbnRlcmFjdGl2ZSAmJiBGRF9JU1NFVChzdGRfaW4sICZmZF9zKSkgewotCi0J
 CQlpZiAoKHJlcyA9IGlvY3RsKHN0ZF9pbiwgRklPTlJFQUQsICZucmVhZCkpICE9IDApCi0JCQkJ
 ZmF0YWwoRVhfT1NFUlIsICJpb2N0bChGSU9OUkVBRCkiKTsKLQkJCWlmIChucmVhZCA+IFJFQURC
 X0xFTikKLQkJCQlucmVhZCA9IFJFQURCX0xFTjsKLQkJCXJ2ID0gcmVhZChzdGRfaW4sIGNoYiwg
 bnJlYWQpOwotCQkJaWYgKHJ2ID09IC0xIHx8IHJ2ICE9IG5yZWFkKQorCQlpZiAoRkRfSVNTRVQo
 c3RkX2luLCAmZmRfcykpIHsKKwkJCXJ2ID0gcmVhZChzdGRfaW4sIGNoYiwgUkVBREJfTEVOKTsK
 KwkJCWlmIChydiA9PSAtMSkKIAkJCQlmYXRhbChFWF9JT0VSUiwgInJlYWQgKHN0ZGluKSBmYWls
 ZWQiKTsKIAogCQkJc3dpdGNoIChjaGJbMF0pIHsKQEAgLTM3Niw4ICszNDksOCBAQCBtYWluKGlu
 dCBhYywgY2hhciAqYXZbXSkKIAkJCQl9CiAJCQlkZWZhdWx0OgogCQkJCWlmIChvcHRfd3JpdGUp
 IHsKLQkJCQkJcnYgPSB3cml0ZShzbnBfaW8sIGNoYiwgbnJlYWQpOwotCQkJCQlpZiAocnYgPT0g
 LTEgfHwgcnYgIT0gbnJlYWQpIHsKKwkJCQkJcnYgPSB3cml0ZShzbnBfaW8sIGNoYiwgcnYpOwor
 CQkJCQlpZiAocnYgPT0gLTEpIHsKIAkJCQkJCWRldGFjaF9zbnAoKTsKIAkJCQkJCWlmIChvcHRf
 bm9fc3dpdGNoKQogCQkJCQkJCWZhdGFsKEVYX0lPRVJSLApAQCAtMzkyLDE0ICszNjUsMTQgQEAg
 bWFpbihpbnQgYWMsIGNoYXIgKmF2W10pCiAJCWlmICghRkRfSVNTRVQoc25wX2lvLCAmZmRfcykp
 CiAJCQljb250aW51ZTsKIAotCQlpZiAoKHJlcyA9IGlvY3RsKHNucF9pbywgRklPTlJFQUQsICZu
 cmVhZCkpICE9IDApCisJCWlmIChpb2N0bChzbnBfaW8sIEZJT05SRUFELCAmbnJlYWQpICE9IDAp
 CiAJCQlmYXRhbChFWF9PU0VSUiwgImlvY3RsKEZJT05SRUFEKSIpOwogCiAJCXN3aXRjaCAobnJl
 YWQpIHsKIAkJY2FzZSBTTlBfT0ZMT1c6CiAJCQlpZiAob3B0X3JlY29ubl9vZmxvdykKIAkJCQlh
 dHRhY2hfc25wKCk7Ci0JCQllbHNlIGlmIChvcHRfaW50ZXJhY3RpdmUgJiYgIW9wdF9ub19zd2l0
 Y2gpIHsKKwkJCWVsc2UgaWYgKGlzYXR0eShzdGRfb3V0KSAmJiAhb3B0X25vX3N3aXRjaCkgewog
 CQkJCWFza19kZXYoZGV2X25hbWUsIE1TR19PRkxPVyk7CiAJCQkJc2V0X2RldihkZXZfbmFtZSk7
 CiAJCQl9IGVsc2UKQEAgLTQwOSwzMCArMzgyLDE4IEBAIG1haW4oaW50IGFjLCBjaGFyICphdltd
 KQogCQljYXNlIFNOUF9UVFlDTE9TRToKIAkJCWlmIChvcHRfcmVjb25uX2Nsb3NlKQogCQkJCWF0
 dGFjaF9zbnAoKTsKLQkJCWVsc2UgaWYgKG9wdF9pbnRlcmFjdGl2ZSAmJiAhb3B0X25vX3N3aXRj
 aCkgeworCQkJZWxzZSBpZiAoaXNhdHR5KHN0ZF9vdXQpICYmICFvcHRfbm9fc3dpdGNoKSB7CiAJ
 CQkJYXNrX2RldihkZXZfbmFtZSwgTVNHX0NMT1NFRCk7CiAJCQkJc2V0X2RldihkZXZfbmFtZSk7
 CiAJCQl9IGVsc2UKIAkJCQljbGVhbnVwKC0xKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJ
 aWYgKG5yZWFkIDwgKGJfc2l6ZSAvIDIpICYmIChiX3NpemUgLyAyKSA+IE1JTl9TSVpFKSB7Ci0J
 CQkJZnJlZShidWYpOwotCQkJCWlmICghKGJ1ZiA9IChjaGFyICopIG1hbGxvYyhiX3NpemUgLyAy
 KSkpCi0JCQkJCWZhdGFsKEVYX1VOQVZBSUxBQkxFLCAibWFsbG9jIGZhaWxlZCIpOwotCQkJCWJf
 c2l6ZSA9IGJfc2l6ZSAvIDI7Ci0JCQl9Ci0JCQlpZiAobnJlYWQgPiBiX3NpemUpIHsKLQkJCQli
 X3NpemUgPSAobnJlYWQgJSAyKSA/IChucmVhZCArIDEpIDogKG5yZWFkKTsKLQkJCQlmcmVlKGJ1
 Zik7Ci0JCQkJaWYgKCEoYnVmID0gKGNoYXIgKikgbWFsbG9jKGJfc2l6ZSkpKQotCQkJCQlmYXRh
 bChFWF9VTkFWQUlMQUJMRSwgIm1hbGxvYyBmYWlsZWQiKTsKLQkJCX0KLQkJCXJ2ID0gcmVhZChz
 bnBfaW8sIGJ1ZiwgbnJlYWQpOwotCQkJaWYgKHJ2ID09IC0xIHx8IHJ2ICE9IG5yZWFkKQorCQkJ
 cnYgPSByZWFkKHNucF9pbywgYnVmLCBCVUZfU0laRSk7CisJCQlpZiAocnYgPT0gLTEpCiAJCQkJ
 ZmF0YWwoRVhfSU9FUlIsICJyZWFkIGZhaWxlZCIpOwotCQkJcnYgPSB3cml0ZShzdGRfb3V0LCBi
 dWYsIG5yZWFkKTsKLQkJCWlmIChydiA9PSAtMSB8fCBydiAhPSBucmVhZCkKKwkJCXJ2ID0gd3Jp
 dGUoc3RkX291dCwgYnVmLCBydik7CisJCQlpZiAocnYgPT0gLTEpCiAJCQkJZmF0YWwoRVhfSU9F
 UlIsICJ3cml0ZSBmYWlsZWQiKTsKIAkJfQogCX0JCQkvKiBXaGlsZSAqLwo=
 --20cf307d0576be5e4204bb12c767--



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