Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Oct 2006 13:00:41 GMT
From:      "ghozzy _" <ghozzy@gmail.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   [patch] Re: kern/77958: [smbfs] can't delete read-only files via smbfs
Message-ID:  <200610291300.k9TD0fRx066362@freefall.freebsd.org>

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

From: "ghozzy _" <ghozzy@gmail.com>
To: bug-followup@FreeBSD.org, is@sozvezdie.biz
Cc:  
Subject: [patch] Re: kern/77958: [smbfs] can't delete read-only files via smbfs
Date: Sun, 29 Oct 2006 15:54:43 +0300

 ------=_Part_127649_20161043.1162126483941
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline
 
 These patches implement manipulating windows readonly bit with unix
 write bit(s) over smbfs.
 With these patches applied it's possible to make
 "chmod +w file" to reset or "chmod -w file" to set readonly bit over smbfs.
 
 I used these patches on several 4.x, 5.x and 6.x  versions for about a
 year with no problems.
 I didn't test CURRENT though, but as the same patch from 6.x applies
 absolutely cleanly to HEAD,
 it makes me believe it will work as intended.
 
 The following file versions were used to make patches against:
 
 RELENG_4:
 /smbfs_node.c/1.2.2.5/
 /smbfs_smb.c/1.1.2.4/
 /smbfs_vnops.c/1.2.2.11/
 
 RELENG_5:
 /smbfs_node.c/1.20.2.3/
 /smbfs_smb.c/1.12.2.1/
 /smbfs_vnops.c/1.46.2.2/
 
 RELENG_6:
 /smbfs_node.c/1.28.2.1/
 /smbfs_smb.c/1.15/
 /smbfs_vnops.c/1.61.2.2/
 
 HEAD:
 /smbfs_node.c/1.30/
 /smbfs_smb.c/1.16/
 /smbfs_vnops.c/1.62/
 
 ------=_Part_127649_20161043.1162126483941
 Content-Type: application/octet-stream; name=smbfs_4.patch
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_etvf5281
 Content-Disposition: attachment; filename="smbfs_4.patch"
 
 ZGlmZiAtdXIgc3JjL3N5cy9mcy9zbWJmcy9zbWJmc19ub2RlLmMgc3JjL3N5cy9mcy9zbWJmcy1w
 YXRjaGVkL3NtYmZzX25vZGUuYwotLS0gc3JjL3N5cy9mcy9zbWJmcy9zbWJmc19ub2RlLmMJU3Vu
 IE9jdCAyOSAxMzo1OTozNiAyMDA2CisrKyBzcmMvc3lzL2ZzL3NtYmZzLXBhdGNoZWQvc21iZnNf
 bm9kZS5jCVdlZCBBdWcgMzEgMTE6Mjc6MzEgMjAwNQpAQCAtNDUsNiArNDUsNyBAQAogLyojaW5j
 bHVkZSA8dm0vdm1fcGFnZS5oPgogI2luY2x1ZGUgPHZtL3ZtX29iamVjdC5oPiovCiAjaW5jbHVk
 ZSA8c3lzL3F1ZXVlLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KIAogI2luY2x1ZGUgPG5ldHNt
 Yi9zbWIuaD4KICNpbmNsdWRlIDxuZXRzbWIvc21iX2Nvbm4uaD4KQEAgLTQxNSw2ICs0MTYsOCBA
 QAogCXZhLT52YV90eXBlID0gdnAtPnZfdHlwZTsJCS8qIHZub2RlIHR5cGUgKGZvciBjcmVhdGUp
 ICovCiAJaWYgKHZwLT52X3R5cGUgPT0gVlJFRykgewogCQl2YS0+dmFfbW9kZSA9IHNtcC0+c21f
 YXJncy5maWxlX21vZGU7CS8qIGZpbGVzIGFjY2VzcyBtb2RlIGFuZCB0eXBlICovCisJCWlmIChu
 cC0+bl9kb3NhdHRyICYgU01CX0ZBX1JET05MWSkKKwkJCXZhLT52YV9tb2RlICY9IH4oU19JV1VT
 UnxTX0lXR1JQfFNfSVdPVEgpOwogCX0gZWxzZSBpZiAodnAtPnZfdHlwZSA9PSBWRElSKSB7CiAJ
 CXZhLT52YV9tb2RlID0gc21wLT5zbV9hcmdzLmRpcl9tb2RlOwkvKiBmaWxlcyBhY2Nlc3MgbW9k
 ZSBhbmQgdHlwZSAqLwogCX0gZWxzZQpkaWZmIC11ciBzcmMvc3lzL2ZzL3NtYmZzL3NtYmZzX3Nt
 Yi5jIHNyYy9zeXMvZnMvc21iZnMtcGF0Y2hlZC9zbWJmc19zbWIuYwotLS0gc3JjL3N5cy9mcy9z
 bWJmcy9zbWJmc19zbWIuYwlTdW4gT2N0IDI5IDEzOjU5OjM4IDIwMDYKKysrIHNyYy9zeXMvZnMv
 c21iZnMtcGF0Y2hlZC9zbWJmc19zbWIuYwlXZWQgQXVnIDMxIDExOjI3OjMyIDIwMDUKQEAgLTUx
 Miw5ICs1MTIsMTAgQEAKIAkJbWJfcHV0X3VpbnQ4KG1icCwgMCk7CiAJCXNtYl9ycV9iZW5kKHJx
 cCk7CiAJCWVycm9yID0gc21iX3JxX3NpbXBsZShycXApOwotCQlTTUJFUlJPUigiJWRcbiIsIGVy
 cm9yKTsKLQkJaWYgKGVycm9yKQorCQlpZiAoZXJyb3IpIHsKKwkJCVNNQkVSUk9SKCJzbWJfcnFf
 c2ltcGxlKHJxcCkgPT4gZXJyb3IgJWRcbiIsIGVycm9yKTsKIAkJCWJyZWFrOworCQl9CiAJfSB3
 aGlsZSgwKTsKIAlzbWJfcnFfZG9uZShycXApOwogCXJldHVybiBlcnJvcjsKZGlmZiAtdXIgc3Jj
 L3N5cy9mcy9zbWJmcy9zbWJmc192bm9wcy5jIHNyYy9zeXMvZnMvc21iZnMtcGF0Y2hlZC9zbWJm
 c192bm9wcy5jCi0tLSBzcmMvc3lzL2ZzL3NtYmZzL3NtYmZzX3Zub3BzLmMJU3VuIE9jdCAyOSAx
 Mzo1OTo0MCAyMDA2CisrKyBzcmMvc3lzL2ZzL3NtYmZzLXBhdGNoZWQvc21iZnNfdm5vcHMuYwlT
 dW4gT2N0IDI5IDEzOjUxOjMzIDIwMDYKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxzeXMv
 dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3lzL3Zub2RlLmg+CiAjaW5jbHVkZSA8c3lzL2xvY2tmLmg+
 CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KIAogI2luY2x1ZGUgPG1hY2hpbmUvbGltaXRzLmg+CiAK
 QEAgLTMzMiw2ICszMzMsNyBAQAogCXN0cnVjdCBzbWJfdmMgKnZjcCA9IFNTVE9WQyhzc3ApOwog
 CXVfcXVhZF90IHRzaXplID0gMDsKIAlpbnQgaXNyZWFkb25seSwgZG9jbG9zZSwgZXJyb3IgPSAw
 OworCWludCBvbGRfbl9kb3NhdHRyOwogCiAJU01CVkRFQlVHKCJcbiIpOwogCWlmICh2YXAtPnZh
 X2ZsYWdzICE9IFZOT1ZBTCkKQEAgLTM3Nyw2ICszNzksMTggQEAKIAkJCXJldHVybiBlcnJvcjsK
 IAkJfQogICAJfQorCWlmICh2YXAtPnZhX21vZGUgIT0gKG1vZGVfdClWTk9WQUwpIHsKKwkJb2xk
 X25fZG9zYXR0ciA9IG5wLT5uX2Rvc2F0dHI7CisJCWlmICh2YXAtPnZhX21vZGUgJiBTX0lXVVNS
 KQorCQkJbnAtPm5fZG9zYXR0ciAmPSB+U01CX0ZBX1JET05MWTsKKwkJZWxzZQorCQkJbnAtPm5f
 ZG9zYXR0ciB8PSBTTUJfRkFfUkRPTkxZOworCQlpZiAobnAtPm5fZG9zYXR0ciAhPSBvbGRfbl9k
 b3NhdHRyKSB7CisJCQllcnJvciA9IHNtYmZzX3NtYl9zZXRwYXR0cihucCwgbnAtPm5fZG9zYXR0
 ciwgTlVMTCwgJnNjcmVkKTsKKwkJCWlmIChlcnJvcikKKwkJCQlyZXR1cm4gZXJyb3I7CisJCX0K
 Kwl9CiAJbXRpbWUgPSBhdGltZSA9IE5VTEw7CiAJaWYgKHZhcC0+dmFfbXRpbWUudHZfc2VjICE9
 IFZOT1ZBTCkKIAkJbXRpbWUgPSAmdmFwLT52YV9tdGltZTsK
 ------=_Part_127649_20161043.1162126483941
 Content-Type: application/octet-stream; name=smbfs_5.patch
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_etvf5d35
 Content-Disposition: attachment; filename="smbfs_5.patch"
 
 ZGlmZiAtdXIgc3JjL3N5cy9mcy9zbWJmcy9zbWJmc19ub2RlLmMgc3JjL3N5cy9mcy9zbWJmcy1w
 YXRjaGVkL3NtYmZzX25vZGUuYwotLS0gc3JjL3N5cy9mcy9zbWJmcy9zbWJmc19ub2RlLmMJV2Vk
 IEF1ZyAzMSAxMToyMzo1NCAyMDA1CisrKyBzcmMvc3lzL2ZzL3NtYmZzLXBhdGNoZWQvc21iZnNf
 bm9kZS5jCVdlZCBBdWcgMzEgMjE6NTA6NDEgMjAwNQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1
 ZGUgPHN5cy9tb3VudC5oPgogI2luY2x1ZGUgPHN5cy9wcm9jLmg+CiAjaW5jbHVkZSA8c3lzL3F1
 ZXVlLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CiAj
 aW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDxzeXMvdm5vZGUuaD4KQEAgLTQxOCw2ICs0
 MTksOCBAQAogCXZhLT52YV90eXBlID0gdnAtPnZfdHlwZTsJCS8qIHZub2RlIHR5cGUgKGZvciBj
 cmVhdGUpICovCiAJaWYgKHZwLT52X3R5cGUgPT0gVlJFRykgewogCQl2YS0+dmFfbW9kZSA9IHNt
 cC0+c21fYXJncy5maWxlX21vZGU7CS8qIGZpbGVzIGFjY2VzcyBtb2RlIGFuZCB0eXBlICovCisJ
 CWlmIChucC0+bl9kb3NhdHRyICYgU01CX0ZBX1JET05MWSkKKwkJCXZhLT52YV9tb2RlICY9IH4o
 U19JV1VTUnxTX0lXR1JQfFNfSVdPVEgpOwogCX0gZWxzZSBpZiAodnAtPnZfdHlwZSA9PSBWRElS
 KSB7CiAJCXZhLT52YV9tb2RlID0gc21wLT5zbV9hcmdzLmRpcl9tb2RlOwkvKiBmaWxlcyBhY2Nl
 c3MgbW9kZSBhbmQgdHlwZSAqLwogCX0gZWxzZQpkaWZmIC11ciBzcmMvc3lzL2ZzL3NtYmZzL3Nt
 YmZzX3NtYi5jIHNyYy9zeXMvZnMvc21iZnMtcGF0Y2hlZC9zbWJmc19zbWIuYwotLS0gc3JjL3N5
 cy9mcy9zbWJmcy9zbWJmc19zbWIuYwlXZWQgQXVnIDMxIDExOjIzOjU0IDIwMDUKKysrIHNyYy9z
 eXMvZnMvc21iZnMtcGF0Y2hlZC9zbWJmc19zbWIuYwlXZWQgQXVnIDMxIDExOjI5OjMzIDIwMDUK
 QEAgLTUxMiw5ICs1MTIsMTAgQEAKIAkJbWJfcHV0X3VpbnQ4KG1icCwgMCk7CiAJCXNtYl9ycV9i
 ZW5kKHJxcCk7CiAJCWVycm9yID0gc21iX3JxX3NpbXBsZShycXApOwotCQlTTUJFUlJPUigiJWRc
 biIsIGVycm9yKTsKLQkJaWYgKGVycm9yKQorCQlpZiAoZXJyb3IpIHsKKwkJCVNNQkVSUk9SKCJz
 bWJfcnFfc2ltcGxlKHJxcCkgPT4gZXJyb3IgJWRcbiIsIGVycm9yKTsKIAkJCWJyZWFrOworCQl9
 CiAJfSB3aGlsZSgwKTsKIAlzbWJfcnFfZG9uZShycXApOwogCXJldHVybiBlcnJvcjsKZGlmZiAt
 dXIgc3JjL3N5cy9mcy9zbWJmcy9zbWJmc192bm9wcy5jIHNyYy9zeXMvZnMvc21iZnMtcGF0Y2hl
 ZC9zbWJmc192bm9wcy5jCi0tLSBzcmMvc3lzL2ZzL3NtYmZzL3NtYmZzX3Zub3BzLmMJU3VuIE9j
 dCAyOSAxNDowOTo0NyAyMDA2CisrKyBzcmMvc3lzL2ZzL3NtYmZzLXBhdGNoZWQvc21iZnNfdm5v
 cHMuYwlTdW4gT2N0IDI5IDE0OjE3OjQ2IDIwMDYKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRl
 IDxzeXMvdm5vZGUuaD4KICNpbmNsdWRlIDxzeXMvbGltaXRzLmg+CiAjaW5jbHVkZSA8c3lzL2xv
 Y2tmLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KIAogI2luY2x1ZGUgPHZtL3ZtLmg+CiAjaW5j
 bHVkZSA8dm0vdm1fZXh0ZXJuLmg+CkBAIC0zMTksNiArMzIwLDcgQEAKIAlzdHJ1Y3Qgc21iX3Zj
 ICp2Y3AgPSBTU1RPVkMoc3NwKTsKIAl1X3F1YWRfdCB0c2l6ZSA9IDA7CiAJaW50IGlzcmVhZG9u
 bHksIGRvY2xvc2UsIGVycm9yID0gMDsKKwlpbnQgb2xkX25fZG9zYXR0cjsKIAogCVNNQlZERUJV
 RygiXG4iKTsKIAlpZiAodmFwLT52YV9mbGFncyAhPSBWTk9WQUwpCkBAIC0zNjQsNiArMzY2LDE4
 IEBACiAJCQlyZXR1cm4gZXJyb3I7CiAJCX0KICAgCX0KKwlpZiAodmFwLT52YV9tb2RlICE9ICht
 b2RlX3QpVk5PVkFMKSB7CisJCW9sZF9uX2Rvc2F0dHIgPSBucC0+bl9kb3NhdHRyOworCQlpZiAo
 dmFwLT52YV9tb2RlICYgU19JV1VTUikKKwkJCW5wLT5uX2Rvc2F0dHIgJj0gflNNQl9GQV9SRE9O
 TFk7CisJCWVsc2UKKwkJCW5wLT5uX2Rvc2F0dHIgfD0gU01CX0ZBX1JET05MWTsKKwkJaWYgKG5w
 LT5uX2Rvc2F0dHIgIT0gb2xkX25fZG9zYXR0cikgeworCQkJZXJyb3IgPSBzbWJmc19zbWJfc2V0
 cGF0dHIobnAsIG5wLT5uX2Rvc2F0dHIsIE5VTEwsICZzY3JlZCk7CisJCQlpZiAoZXJyb3IpCisJ
 CQkJcmV0dXJuIGVycm9yOworCQl9CisJfQogCW10aW1lID0gYXRpbWUgPSBOVUxMOwogCWlmICh2
 YXAtPnZhX210aW1lLnR2X3NlYyAhPSBWTk9WQUwpCiAJCW10aW1lID0gJnZhcC0+dmFfbXRpbWU7
 Cg==
 ------=_Part_127649_20161043.1162126483941
 Content-Type: application/octet-stream; name=smbfs_6_and_HEAD.patch
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_etvf5hed
 Content-Disposition: attachment; filename="smbfs_6_and_HEAD.patch"
 
 ZGlmZiAtdXIgc3JjL3N5cy9mcy9zbWJmcy9zbWJmc19ub2RlLmMgc3JjL3N5cy9mcy9zbWJmcy1w
 YXRjaGVkL3NtYmZzX25vZGUuYwotLS0gc3JjL3N5cy9mcy9zbWJmcy9zbWJmc19ub2RlLmMJU3Vu
 IE9jdCAyOSAxNDoyMTozNSAyMDA2CisrKyBzcmMvc3lzL2ZzL3NtYmZzLXBhdGNoZWQvc21iZnNf
 bm9kZS5jCVN1biBPY3QgMjkgMTQ6MjI6MzIgMjAwNgpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1
 ZGUgPHN5cy9tb3VudC5oPgogI2luY2x1ZGUgPHN5cy9wcm9jLmg+CiAjaW5jbHVkZSA8c3lzL3F1
 ZXVlLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CiAj
 aW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDxzeXMvdm5vZGUuaD4KQEAgLTQyMSw2ICs0
 MjIsOCBAQAogCXZhLT52YV90eXBlID0gdnAtPnZfdHlwZTsJCS8qIHZub2RlIHR5cGUgKGZvciBj
 cmVhdGUpICovCiAJaWYgKHZwLT52X3R5cGUgPT0gVlJFRykgewogCQl2YS0+dmFfbW9kZSA9IHNt
 cC0+c21fZmlsZV9tb2RlOyAvKiBmaWxlcyBhY2Nlc3MgbW9kZSBhbmQgdHlwZSAqLworCQlpZiAo
 bnAtPm5fZG9zYXR0ciAmIFNNQl9GQV9SRE9OTFkpCisJCQl2YS0+dmFfbW9kZSAmPSB+KFNfSVdV
 U1J8U19JV0dSUHxTX0lXT1RIKTsKIAl9IGVsc2UgaWYgKHZwLT52X3R5cGUgPT0gVkRJUikgewog
 CQl2YS0+dmFfbW9kZSA9IHNtcC0+c21fZGlyX21vZGU7CS8qIGZpbGVzIGFjY2VzcyBtb2RlIGFu
 ZCB0eXBlICovCiAJfSBlbHNlCmRpZmYgLXVyIHNyYy9zeXMvZnMvc21iZnMvc21iZnNfc21iLmMg
 c3JjL3N5cy9mcy9zbWJmcy1wYXRjaGVkL3NtYmZzX3NtYi5jCi0tLSBzcmMvc3lzL2ZzL3NtYmZz
 L3NtYmZzX3NtYi5jCVdlZCBNYXkgIDQgMTk6MDU6NDYgMjAwNQorKysgc3JjL3N5cy9mcy9zbWJm
 cy1wYXRjaGVkL3NtYmZzX3NtYi5jCVdlZCBBdWcgMzEgMTE6MzA6NDQgMjAwNQpAQCAtNTEyLDkg
 KzUxMiwxMCBAQAogCQltYl9wdXRfdWludDgobWJwLCAwKTsKIAkJc21iX3JxX2JlbmQocnFwKTsK
 IAkJZXJyb3IgPSBzbWJfcnFfc2ltcGxlKHJxcCk7Ci0JCVNNQkVSUk9SKCIlZFxuIiwgZXJyb3Ip
 OwotCQlpZiAoZXJyb3IpCisJCWlmIChlcnJvcikgeworCQkJU01CRVJST1IoInNtYl9ycV9zaW1w
 bGUocnFwKSA9PiBlcnJvciAlZFxuIiwgZXJyb3IpOwogCQkJYnJlYWs7CisJCX0KIAl9IHdoaWxl
 KDApOwogCXNtYl9ycV9kb25lKHJxcCk7CiAJcmV0dXJuIGVycm9yOwpkaWZmIC11ciBzcmMvc3lz
 L2ZzL3NtYmZzL3NtYmZzX3Zub3BzLmMgc3JjL3N5cy9mcy9zbWJmcy1wYXRjaGVkL3NtYmZzX3Zu
 b3BzLmMKLS0tIHNyYy9zeXMvZnMvc21iZnMvc21iZnNfdm5vcHMuYwlTdW4gT2N0IDI5IDE0OjIx
 OjM2IDIwMDYKKysrIHNyYy9zeXMvZnMvc21iZnMtcGF0Y2hlZC9zbWJmc192bm9wcy5jCVN1biBP
 Y3QgMjkgMTQ6MjI6MzUgMjAwNgpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHN5cy92bm9k
 ZS5oPgogI2luY2x1ZGUgPHN5cy9saW1pdHMuaD4KICNpbmNsdWRlIDxzeXMvbG9ja2YuaD4KKyNp
 bmNsdWRlIDxzeXMvc3RhdC5oPgogCiAjaW5jbHVkZSA8dm0vdm0uaD4KICNpbmNsdWRlIDx2bS92
 bV9leHRlcm4uaD4KQEAgLTMwMSw2ICszMDIsNyBAQAogCXN0cnVjdCBzbWJfdmMgKnZjcCA9IFNT
 VE9WQyhzc3ApOwogCXVfcXVhZF90IHRzaXplID0gMDsKIAlpbnQgaXNyZWFkb25seSwgZG9jbG9z
 ZSwgZXJyb3IgPSAwOworCWludCBvbGRfbl9kb3NhdHRyOwogCiAJU01CVkRFQlVHKCJcbiIpOwog
 CWlmICh2YXAtPnZhX2ZsYWdzICE9IFZOT1ZBTCkKQEAgLTM0Niw2ICszNDgsMTggQEAKIAkJCXJl
 dHVybiBlcnJvcjsKIAkJfQogICAJfQorCWlmICh2YXAtPnZhX21vZGUgIT0gKG1vZGVfdClWTk9W
 QUwpIHsKKwkJb2xkX25fZG9zYXR0ciA9IG5wLT5uX2Rvc2F0dHI7CisJCWlmICh2YXAtPnZhX21v
 ZGUgJiBTX0lXVVNSKQorCQkJbnAtPm5fZG9zYXR0ciAmPSB+U01CX0ZBX1JET05MWTsKKwkJZWxz
 ZQorCQkJbnAtPm5fZG9zYXR0ciB8PSBTTUJfRkFfUkRPTkxZOworCQlpZiAobnAtPm5fZG9zYXR0
 ciAhPSBvbGRfbl9kb3NhdHRyKSB7CisJCQllcnJvciA9IHNtYmZzX3NtYl9zZXRwYXR0cihucCwg
 bnAtPm5fZG9zYXR0ciwgTlVMTCwgJnNjcmVkKTsKKwkJCWlmIChlcnJvcikKKwkJCQlyZXR1cm4g
 ZXJyb3I7CisJCX0KKwl9CiAJbXRpbWUgPSBhdGltZSA9IE5VTEw7CiAJaWYgKHZhcC0+dmFfbXRp
 bWUudHZfc2VjICE9IFZOT1ZBTCkKIAkJbXRpbWUgPSAmdmFwLT52YV9tdGltZTsK
 ------=_Part_127649_20161043.1162126483941--



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