Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Feb 2011 12:31:49 -0700
From:      Shawn Webb <lattera@gmail.com>
To:        Miroslav Lachman <000.fbsd@quip.cz>
Cc:        FreeBSD-current <freebsd-current@freebsd.org>
Subject:   Re: setfacl Recursive Functionality
Message-ID:  <AANLkTimfyhi4wz59-1pyMRkUE6K0PCZmK9br-E=9psCq@mail.gmail.com>
In-Reply-To: <4D518BC4.3080905@quip.cz>
References:  <AANLkTi=%2BWtmRz07m=Cg7hbXJGw7eWRHC1ASGeufTSLBB@mail.gmail.com> <4D518BC4.3080905@quip.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
--0016363ba6be592828049bca669c
Content-Type: text/plain; charset=ISO-8859-1

Attached is the patch. I'm also storing my FreeBSD patches at
https://github.com/lattera/patches

Thanks,

Shawn

On Tue, Feb 8, 2011 at 11:30 AM, Miroslav Lachman <000.fbsd@quip.cz> wrote:

> Shawn Webb wrote:
>
>> I've just finished a patch to add recursive functionality to setfacl.
>> Before
>> I officially submit it, I'd like a few suggestions on how to improve the
>> patch.
>>
>> The part I'm worried about involves the #define directive at top. I'm not
>> sure what ramifications using that define might have. I needed it for my
>> remove_invalid_inherit() function to work.
>>
>
> Can it be extended to getfacl too? I am waiting for recursive functionality
> for a long time. It is available on linux and maybe some other OSes.
>
> Miroslav Lachman
>

--0016363ba6be592828049bca669c
Content-Type: application/octet-stream; name="getfacl_recursive.path"
Content-Disposition: attachment; filename="getfacl_recursive.path"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gjx7hwz40

LS0tIC91c3Ivc3JjL2Jpbi9nZXRmYWNsL2dldGZhY2wuYwkyMDExLTAyLTAzIDEyOjExOjAwLjg1
MTQ5MzA2MSAtMDcwMAorKysgYmluL2dldGZhY2wvZ2V0ZmFjbC5jCTIwMTEtMDItMDggMTI6MjY6
NTIuMDcyMTg2NDgwIC0wNzAwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+
CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZGly
ZW50Lmg+CiAKIGludAltb3JlX3RoYW5fb25lID0gMDsKIApAQCAtMjYwLDggKzI2MSw1NiBAQAog
fQogCiBzdGF0aWMgaW50CityZWN1cnNlX2RpcmVjdG9yeShjaGFyICpwYXRoLCBhY2xfdHlwZV90
IHR5cGUsIGludCBoZmxhZywgaW50IGlmbGFnLAorICAgIGludCBuZmxhZywgaW50IHFmbGFnLCBp
bnQgdmZsYWcsIGludCByZmxhZykKK3sKKwlESVIgKmRpcnA7CisJc3RydWN0IGRpcmVudCAqZW50
OworCXN0cnVjdCBzdGF0IHNiOworCWNoYXIgbmV3cGF0aFtQQVRIX01BWCsxXTsKKwlpbnQJY2Fy
cmllZF9lcnJvciA9IDAsIGVycm9yOworCQorCWlmIChzdGF0KHBhdGgsICZzYikgPT0gLTEpIHsK
KwkJd2FybigiJXM6IHN0YXQoKSBmYWlsZWQiLCBwYXRoKTsKKwkJcmV0dXJuIC0xOworCX0KKwkK
KwllcnJvciA9IHByaW50X2FjbChwYXRoLCB0eXBlLCBoZmxhZywgaWZsYWcsIG5mbGFnLCBxZmxh
ZywgdmZsYWcpOworCQorCWlmIChyZmxhZyA9PSAwIHx8IFNfSVNESVIoc2Iuc3RfbW9kZSkgPT0g
MCkKKwkJcmV0dXJuIGVycm9yOworCQorCWlmIChlcnJvciA9PSAtMSkKKwkJY2FycmllZF9lcnJv
ciA9IC0xOworCQorCWRpcnAgPSBvcGVuZGlyKHBhdGgpOworCXdoaWxlICgoZW50ID0gcmVhZGRp
cihkaXJwKSkgIT0gTlVMTCkgeworCQlpZiAoc3RyY21wKGVudC0+ZF9uYW1lLCAiLiIpID09IDAg
fHwgc3RyY21wKGVudC0+ZF9uYW1lLCAiLi4iKSA9PSAwKQorCQkJY29udGludWU7CisJCQorCQlz
bnByaW50ZihuZXdwYXRoLCBQQVRIX01BWCwgIiVzLyVzIiwgcGF0aCwgZW50LT5kX25hbWUpOyAK
KwkJCisJCWlmIChzdGF0KG5ld3BhdGgsICZzYikgPT0gLTEpIHsKKwkJCXdhcm4oIiVzOiBzdGF0
KCkgZmFpbGVkIiwgbmV3cGF0aCk7CisJCQljb250aW51ZTsKKwkJfQorCQkKKwkJaWYgKFNfSVNE
SVIoc2Iuc3RfbW9kZSkpCisJCQllcnJvciA9IHJlY3Vyc2VfZGlyZWN0b3J5KG5ld3BhdGgsIHR5
cGUsIGhmbGFnLCBpZmxhZywKKwkJCSAgICBuZmxhZywgcWZsYWcsIHZmbGFnLCByZmxhZyk7CisJ
CWVsc2UKKwkJCWVycm9yID0gcHJpbnRfYWNsKG5ld3BhdGgsIHR5cGUsIGhmbGFnLCBpZmxhZywg
bmZsYWcsIHFmbGFnLCB2ZmxhZyk7CisJCWlmIChlcnJvciA9PSAtMSkKKwkJCWNhcnJpZWRfZXJy
b3IgPSAtMTsKKwl9CisJY2xvc2VkaXIoZGlycCk7CisJCisJcmV0dXJuIGNhcnJpZWRfZXJyb3I7
Cit9CisKK3N0YXRpYyBpbnQKIHByaW50X2FjbF9mcm9tX3N0ZGluKGFjbF90eXBlX3QgdHlwZSwg
aW50IGhmbGFnLCBpbnQgaWZsYWcsIGludCBuZmxhZywKLSAgICBpbnQgcWZsYWcsIGludCB2Zmxh
ZykKKyAgICBpbnQgcWZsYWcsIGludCB2ZmxhZywgaW50IHJmbGFnKQogewogCWNoYXIJKnAsIHBh
dGhuYW1lW1BBVEhfTUFYXTsKIAlpbnQJY2FycmllZF9lcnJvciA9IDA7CkBAIC0yNjksOCArMzE4
LDggQEAKIAl3aGlsZSAoZmdldHMocGF0aG5hbWUsIChpbnQpc2l6ZW9mKHBhdGhuYW1lKSwgc3Rk
aW4pKSB7CiAJCWlmICgocCA9IHN0cmNocihwYXRobmFtZSwgJ1xuJykpICE9IE5VTEwpCiAJCQkq
cCA9ICdcMCc7Ci0JCWlmIChwcmludF9hY2wocGF0aG5hbWUsIHR5cGUsIGhmbGFnLCBpZmxhZywg
bmZsYWcsCi0JCSAgICBxZmxhZywgdmZsYWcpID09IC0xKSB7CisJCWlmIChyZWN1cnNlX2RpcmVj
dG9yeShwYXRobmFtZSwgdHlwZSwgaGZsYWcsIGlmbGFnLCBuZmxhZywKKwkJICAgIHFmbGFnLCB2
ZmxhZywgcmZsYWcpID09IC0xKSB7CiAJCQljYXJyaWVkX2Vycm9yID0gLTE7CiAJCX0KIAl9CkBA
IC0yODQsMTQgKzMzMywxNSBAQAogCWFjbF90eXBlX3QJdHlwZSA9IEFDTF9UWVBFX0FDQ0VTUzsK
IAlpbnQJY2FycmllZF9lcnJvciA9IDA7CiAJaW50CWNoLCBlcnJvciwgaTsKLQlpbnQJaGZsYWcs
IGlmbGFnLCBxZmxhZywgbmZsYWcsIHZmbGFnOworCWludAloZmxhZywgaWZsYWcsIHFmbGFnLCBu
ZmxhZywgdmZsYWcsIHJmbGFnOwogCiAJaGZsYWcgPSAwOwogCWlmbGFnID0gMDsKIAlxZmxhZyA9
IDA7CiAJbmZsYWcgPSAwOwogCXZmbGFnID0gMDsKLQl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2Ms
IGFyZ3YsICJkaGlucXYiKSkgIT0gLTEpCisJcmZsYWcgPSAwOworCXdoaWxlICgoY2ggPSBnZXRv
cHQoYXJnYywgYXJndiwgIlJkaGlucXYiKSkgIT0gLTEpCiAJCXN3aXRjaChjaCkgewogCQljYXNl
ICdkJzoKIAkJCXR5cGUgPSBBQ0xfVFlQRV9ERUZBVUxUOwpAQCAtMzExLDYgKzM2MSw5IEBACiAJ
CWNhc2UgJ3YnOgogCQkJdmZsYWcgPSAxOwogCQkJYnJlYWs7CisJCWNhc2UgJ1InOgorCQkJcmZs
YWcgPSAxOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQl1c2FnZSgpOwogCQkJcmV0dXJuKC0x
KTsKQEAgLTMyMCwxOSArMzczLDE5IEBACiAKIAlpZiAoYXJnYyA9PSAwKSB7CiAJCWVycm9yID0g
cHJpbnRfYWNsX2Zyb21fc3RkaW4odHlwZSwgaGZsYWcsIGlmbGFnLCBuZmxhZywKLQkJICAgIHFm
bGFnLCB2ZmxhZyk7CisJCSAgICBxZmxhZywgdmZsYWcsIHJmbGFnKTsKIAkJcmV0dXJuKGVycm9y
ID8gMSA6IDApOwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKIAkJaWYgKCFz
dHJjbXAoYXJndltpXSwgIi0iKSkgewogCQkJZXJyb3IgPSBwcmludF9hY2xfZnJvbV9zdGRpbih0
eXBlLCBoZmxhZywgaWZsYWcsIG5mbGFnLAotCQkJICAgIHFmbGFnLCB2ZmxhZyk7CisJCQkgICAg
cWZsYWcsIHZmbGFnLCByZmxhZyk7CiAJCQlpZiAoZXJyb3IgPT0gLTEpCiAJCQkJY2FycmllZF9l
cnJvciA9IC0xOwogCQl9IGVsc2UgewotCQkJZXJyb3IgPSBwcmludF9hY2woYXJndltpXSwgdHlw
ZSwgaGZsYWcsIGlmbGFnLCBuZmxhZywKLQkJCSAgICBxZmxhZywgdmZsYWcpOworCQkJZXJyb3Ig
PSByZWN1cnNlX2RpcmVjdG9yeShhcmd2W2ldLCB0eXBlLCBoZmxhZywgaWZsYWcsIG5mbGFnLAor
CQkJICAgIHFmbGFnLCB2ZmxhZywgcmZsYWcpOwogCQkJaWYgKGVycm9yID09IC0xKQogCQkJCWNh
cnJpZWRfZXJyb3IgPSAtMTsKIAkJfQo=
--0016363ba6be592828049bca669c--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimfyhi4wz59-1pyMRkUE6K0PCZmK9br-E=9psCq>