- 29 Jan, 2017 1 commit
-
-
Michael Lee authored
Summary: The forward declaration of `extern char ** environ` is inconsistent on some platforms. Reviewed By: strager, Orvid Differential Revision: D4474856 fbshipit-source-id: c73a7c7d5a247e962fab06aeb65df7815f0e3bcb
-
- 28 Jan, 2017 2 commits
-
-
Jason Rahman authored
Summary: For debugging purposes, it's often extremely useful to have the duration of the expired timeout in the exception message (in case the timeout was excessively low, or to understand exactly how long the operation ran before failing due to timeout). Here we make a best effort to include the timeout when possible. Reviewed By: yfeldblum Differential Revision: D4476038 fbshipit-source-id: f2d0aa5e1f6367a3cfe20579c27577ab91fd8d9c
-
Christopher Dykes authored
Summary: Adjusting the iteration count significantly reduces the runtime of the `TLRefCount.Stress` test to ~5 seconds. Working with that same timeframe, we can get away with increasing the iteration count of the (now tested) `RCURefCount.Stress` test to 100k, up from it's previous 10k. Reviewed By: markisaa Differential Revision: D4477750 fbshipit-source-id: 6a89dbb65f460655db0cb33926cc331dc1904f1c
-
- 27 Jan, 2017 4 commits
-
-
Phil Willoughby authored
Summary: `folly::literals` is to `folly` what `std::literals` is to `std`. More importantly we should be consitent; snake_case is how other folly sub-namespaces are named, such as: `array_detail` `apply_tuple` `format_value` `threadlocal_detail` `recordio_helpers` `exception_tracer` Reviewed By: ericniebler Differential Revision: D4468281 fbshipit-source-id: de10bec74c9a38f387d62bd55da947291c23970b
-
Angelo Failla authored
Summary: It is possible to extract a MAC address from a link-local IPv6 address. This diff provides the logic for it. Reviewed By: simpkins Differential Revision: D4461970 fbshipit-source-id: cb4a5d774c3b4a20716d1742c961e02952ddf80d
-
Christopher Dykes authored
Summary: This completely kills the environment portability header, which was among the earliest, and was created before the general convention of splitting based on the header they are in, in the standard library, existed. The functions that were defined in it are expected to be in stdlib, so move them there. Reviewed By: mzlee Differential Revision: D4462502 fbshipit-source-id: c4549b9d1ea623644223db4365b81507f443ad5e
-
Christopher Dykes authored
Summary: This makes a large number of implicit truncations and sign conversions into explicit casts, in preparation for eventually enabling `-Wconversion` on Folly. This set of changes should have zero semantic change. This focuses on the core of Folly and leaves the tests alone for the most part. A future diff will cleanup the warnings in the tests as well. Reviewed By: yfeldblum Differential Revision: D4454096 fbshipit-source-id: af1e1831675a804ec5679266c30c1fae62e8c35c
-
- 26 Jan, 2017 1 commit
-
-
Christopher Dykes authored
Summary: HHVM uses this heavily in it's ARM JIT, so provide an implementation. With GCC & Clang this function is a no-op on x86_64 where the requirement doesn't exist, so do the same in the portability header. This doesn't include the Windows portability header on x64 specifically because it is a very heavy header and this is currently very lightweight. Reviewed By: yfeldblum Differential Revision: D4451032 fbshipit-source-id: 0af57448577635f9cd690ea9b09ce46a244191e1
-
- 25 Jan, 2017 6 commits
-
-
Daniel Sommermann authored
Summary: This is needed if you want to test other scenarios where the server has other OpenSSL settings. Differential Revision: D4463587 fbshipit-source-id: ffd4019e921649dee703363b2ff028b4d8063210
-
Michael Lee authored
Summary: `setenv`/`unsetenv` is not always declared the same way on all of the places folly is compiled. Reviewed By: matbd Differential Revision: D4462056 fbshipit-source-id: 6dd68f6fc5a6a435f145cbaa43bee02b5fa7170c
-
Daniel Sommermann authored
Summary: The TestSSLServer is useful to have on its own for reuse. This diff separates it out to make reuse possible. Reviewed By: yfeldblum Differential Revision: D4457976 fbshipit-source-id: 1fe6b71e930859ef04487e29047dcf603a79834b
-
Christopher Dykes authored
Summary: HHVM compiles without `folly-config.h`, so this was preventing us from updating to the newest version of Folly. Reviewed By: yfeldblum Differential Revision: D4456890 fbshipit-source-id: ed118ff0cf7f254a5f99be68f171d1b34ebf5c5c
-
Petr Lapukhov authored
Summary: Similar to AsyncSocket, allow setting reserved sockopt after bind(). This will be recognized by intercepted accept4() call and forked sockets will properly have the TLS flag disabled. Reviewed By: djwatson Differential Revision: D4458831 fbshipit-source-id: fa753b9d849bd661563364d36229113f7abb0ee0
-
Christopher Dykes authored
Summary: It wasn't actually SFINAE the way it was setup previously, which meant it was just a hard error under MSVC. Whoops. Reviewed By: yfeldblum Differential Revision: D4453702 fbshipit-source-id: 5be600fb5ecdc8255795fefbd37c1fe26e7266dd
-
- 24 Jan, 2017 3 commits
-
-
Mathieu Baudet authored
Summary: Found with our include analysis tool. I had to tweak `portability/Environment.h` to avoid a false positive breaking win32. Reviewed By: yfeldblum, Orvid Differential Revision: D4452463 fbshipit-source-id: e2e862e204892037ddde8815218e4deab1bfbb06
-
Ryan Wilson authored
Summary: This patch adds a function to AsyncSSLSocket, so the user can check if the peer cert should be verified. This allows the user to implement custom logic for peer cert validation. Reviewed By: Orvid Differential Revision: D4456402 fbshipit-source-id: 2f8a5c932d0341d6c9290bcb52264dd4fa174263
-
Christopher Dykes authored
Summary: Because OpenSSL is evil to Windows, and you have to forcefully include winsock2 before winsock. Reviewed By: yfeldblum Differential Revision: D4453742 fbshipit-source-id: 3b1b5b1f999722559693164148245f52b1e94104
-
- 20 Jan, 2017 6 commits
-
-
Igor Zinkovsky authored
Summary: see title Reviewed By: meyering Differential Revision: D4441266 fbshipit-source-id: 4a8f589e2995a463e54b3979035a623824acf39e
-
Maged Michael authored
Summary: As suggested by the C++ committee in November 2016, made atomics generic to allow other atomic types (e.g., folly::DeterministicAtomic<T*>), Also removed obsolete comments. Reviewed By: davidtgoldblatt Differential Revision: D4443355 fbshipit-source-id: d9e21a959f2c7e3dd07c0ed4808236da80ef6dcd
-
Christopher Dykes authored
Summary: It's the exact same as `PF_LOCAL`, and is used interchangibly. Reviewed By: yfeldblum Differential Revision: D4439558 fbshipit-source-id: fd1ff813db5349369fc77888dfd854fc36a2a3be
-
Kyle Nekritz authored
Summary: SSL_CTX_load_verify_locations interally end up using X509_load_cert_crt_file, which has an unchecked call to X509_STORE_add_cert. This can fail and add an error to the error stack without causing SSL_CTX_load_verify_locations to return an error. Reviewed By: siyengar Differential Revision: D4442017 fbshipit-source-id: a4cf7f5ee2c18d90d5d61baf3acb99ffca6b8af0
-
Luca Niccolini authored
Summary: This reverts commit 12da254d6b281c2b9d522ba19999b2489c0083a2 Differential Revision: D4389970 fbshipit-source-id: 7651425adcf3b86c066d657308af1a0aa6bce5dd
-
Maxim Georgiev authored
Summary: EOR flag was hardcoded to "false" in folly::AsyncSocket. This diff enables changing EOR flag using AsyncSocket::setEorTracking() method. Reviewed By: yfeldblum Differential Revision: D4421966 fbshipit-source-id: 2e1b9b19ced6555845396ec33bfd3d5feb710640
-
- 19 Jan, 2017 2 commits
-
-
Phil Willoughby authored
Summary: Changes nothing fundamental, just makes it easier to work on in the future. Reviewed By: yfeldblum Differential Revision: D4435805 fbshipit-source-id: 725944a12922abde137bb7e21726c97beb558b5f
-
Andrii Grynenko authored
Summary: Limits number of fibers printed for each FiberManager. Reviewed By: yfeldblum Differential Revision: D4432488 fbshipit-source-id: 1791c2bfe6d5b0c2f54142dc068b473fd72f5d5d
-
- 18 Jan, 2017 2 commits
-
-
Maxim Georgiev authored
Summary: There is "operator|()" defined for folly::WriteFlags enum class, but no "operator=|()". Because of that adding a new flag to an existing set of flags looks awkward. Adding the missing operator. Reviewed By: yfeldblum Differential Revision: D4421892 fbshipit-source-id: a053a8cc5b1d07579c233d19029a9801b8188413
-
Eric Niebler authored
Summary: 'Nuf said. Depends on D4413112 Reviewed By: yfeldblum, spacedentist Differential Revision: D4425605 fbshipit-source-id: a7c98867cfa5c859a1b4d2eb78724710c4f1115f
-
- 16 Jan, 2017 3 commits
-
-
Christopher Dykes authored
Summary: It was killed in an earlier diff. Reviewed By: yfeldblum Differential Revision: D4418832 fbshipit-source-id: c9a5134fa100b24a3394607dea20e6e8a8d341e1
-
Christopher Dykes authored
Summary: Pthread is currently a dependency of Folly that is not really necessary on Windows, or even with standard C++ for the most part, so start work on killing it in Folly. This switches EventBase to using `std::thread::id`'s instead, which also means we aren't reliant on the implementation detail that thread id 0 is invalid. Well, we are, but it's now the standard library's fault not ours. Reviewed By: yfeldblum Differential Revision: D4418128 fbshipit-source-id: a9c95ac6c7305c960156a4ad684b6db89b5856d9
-
Christopher Dykes authored
Summary: It's possible via some hackery, so wrap it up nicely into the API. Reviewed By: yfeldblum Differential Revision: D4418728 fbshipit-source-id: f00aed95cdbdc3cc83a0ab96565117cd01141c2e
-
- 14 Jan, 2017 1 commit
-
-
Igor Sugak authored
Summary: Our internal version of boost contains a patch that reverts the following commit to boost filesystem module: https://github.com/boostorg/program_options/commit/88dea3c6fdea8c9ea894911897b1770599c383e4 It was done due to a breaking change that disallows the use of "--key value" for implicit options, allowing only "--key=value" style syntax. Since there are too many tests to fix, and it's probably going to be reverted in the upstream as well (see below), removing the `override` keyword here to fix folly build. https://github.com/boostorg/program_options/issues/25 Reviewed By: meyering Differential Revision: D4415347 fbshipit-source-id: c215331338b3aa218d26890a83aa0b363514fe79
-
- 13 Jan, 2017 4 commits
-
-
Marcus Holland-Moritz authored
Summary: While running a UBSan enabled binary, I got: folly/io/IOBuf.cpp:671:15: runtime error: null pointer passed as argument 2, which is declared to never be null This change protects all calls to memcpy from passing `nullptr`. Reviewed By: pixelb Differential Revision: D4415355 fbshipit-source-id: a27ba74244abcca8cd4e106967222890a67f5b6d
-
Jim Meyering authored
Summary: This started when many fbvector-related tests began failing with reports of ASAN-detected heap abuse (usually invalid free of an address 16 bytes into an already-freed buffer). It was very specific, though. The bug struck only when: - gcc-5-based platform - compiling with clang (~3.8) and GCC5's libstdc++, not gcc - strings were short enough to reside within an in-situ std::string Why? because FBVector.h:1588's conditional: if (folly::IsRelocatable<T>::value && usingStdAllocator::value) { was true for clang (erroneously), but false for gcc. The difference was in `IsRelocatable<std::string>::value`. However, manual tests showed that each component from the definition of `IsRelocatable` were the same for both gcc and clang. Then Jay Feldblum realized that we'd probably specialized that trait for `std::string`, and sure enough, I found the culprit: ``` FOLLY_ASSUME_FBVECTOR_COMPATIBLE_3(std::basic_string) ``` Reviewed By: pixelb Differential Revision: D4414159 fbshipit-source-id: 60e3fb4b096ec77cbd2b48c561e5c6ec8f128fff
-
Eric Niebler authored
Summary: prefer creating an exception_wrapper with a reference to the active exception Depends on D4410421 Reviewed By: spacedentist Differential Revision: D4410455 fbshipit-source-id: d6b6aeb5fa72782e31d754a0b853514af5fdb8cd
-
Dave Watson authored
Summary: Folly parts of D4383906. Reviewed By: plapukhov Differential Revision: D4387254 fbshipit-source-id: 3c039720c88c91b7292d60a85272dd1978510296
-
- 11 Jan, 2017 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Slight simplification of `exception_wrapper` constructor. Reviewed By: ericniebler Differential Revision: D4391899 fbshipit-source-id: ddb066723bcd10abb0dbbaeab12b1e9be4f39acc
-
Subodh Iyengar authored
Summary: Normally clearing out the error before calling into an openssl method is a bad idea. However there might be other code outside AsyncSSLSocket calling into openssl in the same thread that doesn't use openssl correctly. This allows users of AsyncSSLSocket to safeguard themselves from such code. Reviewed By: anirudhvr Differential Revision: D4389970 fbshipit-source-id: 12da254d6b281c2b9d522ba19999b2489c0083a2
-
- 10 Jan, 2017 3 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Fix an inefficiency in json-serializing a `dynamic` with sorted keys. The inefficiency is that, at each level of the `dynamic` which is map-typed, we effectively make a full copy of the `dynamic` object. This can be expensive. Reviewed By: Gownta Differential Revision: D4389671 fbshipit-source-id: 223739397f913d3e65a421a9a4dcb089ec757ec6
-
kumagi authored
Summary: `unitialized` seems to be typo. Closes https://github.com/facebook/folly/pull/538 Reviewed By: igorsugak Differential Revision: D4397318 Pulled By: yfeldblum fbshipit-source-id: a2e6c665b4dfe95d769430405886b0725423aac2
-
Yedidya Feldblum authored
Summary: [Folly] Rename `exception_wrapper::getExceptionPtr` to `to_exception_ptr`. Make it clear that this will sometimes be an expensive operation. Using the word `to` evokes the possibility of an expensive conversion, while using the word `get` implies cheap access. Reviewed By: djwatson Differential Revision: D4391621 fbshipit-source-id: 33ca051d9be5a6050ba9f30b20faee35b7e58afb
-