facebook / wdt

Warp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths.
https://www.facebook.com/WdtOpenSource
Other
2.86k stars 392 forks source link

Set file creation to default to respect umask #235

Open lithorus opened 1 year ago

lithorus commented 1 year ago

This is to make sure that file creation respects umask.

Previously it would always create with permission of 0644 which implices a umask of 022.

facebook-github-bot commented 1 year ago

Hi @lithorus!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

facebook-github-bot commented 1 year ago

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

ldemailly commented 1 year ago

do you have test / demonstration of what this fixes (a before/after)

because 644 seems a reasonable default

lithorus commented 1 year ago

The reason is that 644 should be default is only because umask 022 is default. If the default umask is changed (eg. 000) it will still be 0644, which is not what is expected by any software unless umask is transfered/copied from the source (which it is not in this case).

Here is a test :

umask 022 # Default umask
touch test022
ls -la test022 # mode should be 0644
(wdt command)
ls -la wdt022 # All files should be 0644

umask 000 # Change umask to 000
touch test000
ls -la test000 # mode should be 0666
(wdt command)
ls -la wdt000 # All files should be 0666 (but are not)