Peter Conrad
5377b45d97
Fixed signedness, simplified word-shift
2015-07-30 14:58:35 +02:00
Peter Conrad
d67c18f6c3
Fixed shift in hashes + more tests
2015-07-29 23:22:34 +02:00
Peter Conrad
ef92e68146
Created + added test vectors, various fixes - working!
2015-07-29 21:00:08 +02:00
Peter Conrad
622de81402
Added tests, fixes (sig format, canonicalization)
2015-07-29 21:00:08 +02:00
Peter Conrad
56e98e136a
Initial blinding implementation, untested
2015-07-29 21:00:08 +02:00
Peter Conrad
5ecdcba4b6
Some refactoring
2015-07-29 21:00:08 +02:00
Peter Conrad
0f67ca751e
Implemented extended keys
2015-07-29 20:59:32 +02:00
Vikram Rajkumar
088dadd124
Merge pull request #47 from pmconrad/testing
...
Testing
2015-07-29 13:29:22 -04:00
theoreticalbts
d11b48a015
exception.hpp: Implement exception constructors for const log_messages&
2015-07-28 17:01:59 -04:00
Peter Conrad
0878e7f8f8
Tested + fixed more cases
2015-07-27 22:22:20 +02:00
Peter Conrad
fe0ec4a42d
Added FC_ASSERT to prevent buffer overflow
2015-07-27 21:23:15 +02:00
Peter Conrad
0e681dfb1c
Added tests for base_n encodings, fixed base32 + base36
2015-07-27 21:23:15 +02:00
Eric Frias
a31f0f503d
Fix compile error when readline not available
2015-07-27 12:08:28 -04:00
Daniel Larimer
e9eeb3300c
adding tab completion to CLI
2015-07-27 09:11:20 -04:00
Daniel Larimer
d79855b491
Websocket shouldn't cleanup default_io_service, that should only happen ONE time when main exits.
2015-07-24 08:32:38 -04:00
Daniel Larimer
d76a15ec89
adding child key derivation for ecc keys
2015-07-23 18:45:35 -04:00
Nathan Hourt
17b64bb38f
Resolve cryptonomex/graphene/issues/146
2015-07-22 12:11:04 -04:00
theoreticalbts
5f43c06bae
uint128: Implement popcount()
2015-07-13 17:01:11 -04:00
Vikram Rajkumar
0391665471
Fix and cleanup safe spec; cryptonomex/graphene#10
2015-07-13 14:28:44 -04:00
theoreticalbts
787e4abf3f
exception.hpp: Allow enable/disable assert trip notifications with only one dirty file
2015-07-07 21:50:26 -04:00
Scott Howard
153d3f0433
Fix cryptonomex/graphene#107 : Define char as signed when comparing against EOF
2015-07-05 15:44:32 -04:00
Eric Frias
d462be0e92
Quiet harmless compiler warnings
2015-07-01 11:21:15 -04:00
theoreticalbts
7bd47af88e
rpc: Move many method implementations from headers to cpp files
2015-06-30 15:54:29 -04:00
Vikram Rajkumar
701b9ac00c
Remove problematic easylzma
2015-06-23 16:19:36 -04:00
Vikram Rajkumar
943fe5150e
Remove unused salsa20
...
See https://github.com/bitshares/bitshares/issues/1089
2015-06-23 15:43:36 -04:00
Vikram Rajkumar
43f3aff577
Remove unused scrypt-jane
...
See https://github.com/bitshares/bitshares/issues/1016
2015-06-23 15:34:28 -04:00
Peter Conrad
8ff0f3e764
Dont ignore EOF because users cannot distinguish EOF and empty input line
2015-06-21 15:33:50 +02:00
Vikram Rajkumar
c09035dba0
Merge pull request #41 from emfrias/json_parser_mods
...
Json parser mods
2015-06-15 15:30:35 -04:00
Eric Frias
10e747409c
Fix FC win32 compiling (secp256k1 related errors)
2015-06-15 14:38:33 -04:00
Eric Frias
c2451f30f1
Add a new mode to the variant->json generator to restore the normal
...
behavior of writing numbers out as numbers instead of strings
2015-06-12 11:05:58 -04:00
Eric Frias
e5a5323642
When formatting doubles as strings, use 17 digits of precision to ensure they are read back in without loss (up from 12 digits).
...
Add a mode to the JSON parser to parse all real numbers into strings, so we can later parse them into doubles or another fixed/floating point format to preserve as much precision as needed
2015-06-12 11:05:52 -04:00
Daniel Larimer
8087aa66d0
removing AGPL code
2015-06-11 09:10:12 -04:00
Daniel Larimer
a824aa04a9
Mapping blinding crypto to fc ecc api
2015-06-10 18:34:19 -04:00
Daniel Larimer
01445529f0
handle messages async
2015-05-29 12:11:21 -04:00
Nathan Hourt
83d5bcb147
Mark websockets as logging to rpc
2015-05-27 15:04:34 -04:00
Nathan Hourt
8012ab4705
Fix crash on exit with websocket_client
2015-05-27 14:54:11 -04:00
Eric Frias
043ead5579
Fix compile with microsoft c++ which still doesn't support noexcept
2015-05-22 16:15:00 -04:00
Daniel Larimer
ccd14c7260
Merge pull request #4 from pmconrad/libsecp256k1
...
fc::ecc implementations based on libsecp256k1
2015-05-20 10:30:05 -04:00
Daniel Larimer
71cca4559c
adding quotes around large integers
2015-05-18 15:05:25 -04:00
Daniel Larimer
a3c284408e
make CLI prompt configurable
2015-05-18 13:40:01 -04:00
Daniel Larimer
135949ee19
large integers are converted to strings in JSON printing
2015-05-15 15:58:47 -04:00
Daniel Larimer
9ef91e2245
partial fixes to crashing on websocket client close
2015-05-12 17:15:00 -04:00
Daniel Larimer
c28ed38f1a
adding support for secure websocket client
2015-05-12 16:16:10 -04:00
Daniel Larimer
fb62b6421c
adding ssl support to websocket
2015-05-12 14:50:08 -04:00
Daniel Larimer
812b42dbe6
adding default
2015-05-12 12:59:14 -04:00
Daniel Larimer
4f0919c493
adding sanity checks to string->json parsing
2015-05-12 12:58:47 -04:00
Peter Conrad
d9f6b7a526
Rebase + upgrade to latest libsecp256k1 API
2015-05-07 15:59:21 +02:00
Peter Conrad
a164a55c86
Fixed move constructor + assignment
2015-05-07 14:51:03 +02:00
Peter Conrad
5782fd42af
Added missing constructors + pubkey::valid
2015-05-07 14:51:03 +02:00
Peter Conrad
05dee8669f
Much refactoring
...
Fixed Move semantics in openssl impl
Use in-place construction for secp256k1
Swapped implementations in mixed - sign with libsecp256k1, verify with openssl
2015-05-07 14:51:03 +02:00
Peter Conrad
10897adf1e
Hopefully this is more thread-safe
2015-05-07 14:51:03 +02:00
Peter Conrad
d69e67c032
Work around too deterministic nonce
2015-05-07 14:51:03 +02:00
Peter Conrad
1de9a3ba87
Bugfix
2015-05-07 14:51:03 +02:00
Peter Conrad
abab7617c8
Minor fixes
2015-05-07 14:51:02 +02:00
Peter Conrad
2f383f078f
More refactoring
2015-05-07 14:51:02 +02:00
Peter Conrad
bab3864437
Added mixed implementation, fixed interop test script
2015-05-07 14:51:02 +02:00
Peter Conrad
55f9cf5e16
Added mixed implementation, fixed interop test script
2015-05-07 14:51:02 +02:00
Peter Conrad
414617d8e3
Refactoring, step 2
2015-05-07 14:51:02 +02:00
Peter Conrad
55c5773a46
Started refactoring
2015-05-07 14:51:02 +02:00
Peter Conrad
7b15098f3a
Woot!
2015-05-07 14:49:52 +02:00
Peter Conrad
34af5d98ec
Intermediate version
2015-05-07 14:49:52 +02:00
Peter Conrad
f17444d90b
Added ECC_IMPL switch + interop test
2015-05-07 14:48:00 +02:00
Peter Conrad
8bcaa01541
Mark internal helper functions as static
2015-05-07 14:48:00 +02:00
Daniel Larimer
4df08d8efe
fix crash in websocket
2015-05-06 16:34:55 -04:00
Daniel Larimer
3599850bb9
Merge commit '72288a2'
2015-05-04 14:07:51 -04:00
Daniel Larimer
72288a25b1
making sure getline doesn't blog
2015-05-04 14:07:22 -04:00
Eric Frias
e9824e1740
Add missing include for isatty on win32
2015-05-04 13:36:15 -04:00
theoreticalbts
80de0987d7
Add readline support to fc::rpc::cli
2015-04-29 16:37:54 -04:00
Daniel Larimer
c8200afade
better close notification and error handling
2015-04-01 10:25:57 -04:00
Daniel Larimer
8b5e2e7613
adding helper to get a list of variants from a string
2015-03-31 18:46:05 -04:00
Daniel Larimer
55ee57040a
added support for unhandled extension and mapping the first registered API to global namespace
2015-03-31 17:45:01 -04:00
Daniel Larimer
1fb31737a7
RPC now supports remote callbacks
...
to_variant now skips null optional members on reflected objects.
2015-03-31 11:31:56 -04:00
Daniel Larimer
e506e4f4be
added listen on a specific endpoint/port pair
2015-03-30 16:56:28 -04:00
Daniel Larimer
74b707999c
fix bugs with websocket and integrate API support
2015-03-27 16:29:33 -04:00
Daniel Larimer
b8d7d3012d
abstracting rpc state
2015-03-26 18:17:47 -04:00
Daniel Larimer
41fedc14f3
Merge branch 'master' of github.com:BitShares/fc
2015-03-26 16:51:15 -04:00
Daniel Larimer
4ce26f068f
implement simple websocket wrapper ontop of websocketpp
2015-03-26 16:51:10 -04:00
Vikram Rajkumar
3d17836a1e
Remove extraneous log config setting
2015-03-25 20:07:19 -04:00
Nathan Hourt
4194a609c2
Allow hashing of uint128
2015-03-06 16:41:52 -05:00
Daniel Larimer
73c2c1de90
fix static_variant to/from variant
2015-03-05 09:54:33 -05:00
Daniel Larimer
374f141f0a
Merge branch 'master' of github.com:BitShares/fc
2015-02-23 14:02:06 -05:00
Daniel Larimer
537029f09f
fix build
2015-02-23 14:01:58 -05:00
Vikram Rajkumar
c3bc573af7
Fix Mac build
2015-02-23 11:08:55 -05:00
SynaptiCAD User
42fcebd473
Remove unnecessary locking around log sending
2015-02-22 14:07:27 -05:00
SynaptiCAD User
30e52b6b01
Fix GELF logging to split long messages, use compression
2015-02-22 14:07:05 -05:00
Daniel Larimer
ec66863902
added type for safe int ops
2015-02-19 11:39:17 -05:00
Daniel Larimer
cf4ed08d4b
Merge branch 'master' of github.com:BitShares/fc
2015-02-17 09:55:36 -05:00
Daniel Larimer
93a789891e
Adding is_utf8 call and making enum_type cast explicit
2015-02-17 09:55:31 -05:00
Nathan Hourt
c7de8954fb
Merge branch 'master' of github.com:bitshares/fc
2015-02-12 10:55:12 -05:00
Nathan Hourt
de2000795d
Fix crashes when destroying json_connection, tcp_socket
...
Also, create on_close callback on json_connection, so clients can
know when the connection has failed.
2015-02-12 10:54:18 -05:00
Vikram Rajkumar
ee370dd5a8
Define sha256::hash( sha256 )
2015-02-11 18:58:19 -05:00
Nathan Hourt
13430fce12
Revert "Dumb hack that seems to prevent crashing when destroying json_connection"
...
This reverts commit b068865eb5 .
Caused crashes elsewhere.
2015-02-11 17:20:58 -05:00
Nathan Hourt
b068865eb5
Dumb hack that seems to prevent crashing when destroying json_connection
2015-02-10 18:35:50 -05:00
Vikram Rajkumar
9c5450185a
Revert "Pretty-print objects in log messages"
...
This reverts commit 41630e7629 .
2015-02-05 18:52:59 -05:00
Vikram Rajkumar
41630e7629
Pretty-print objects in log messages
2015-02-04 18:05:28 -05:00
Vikram Rajkumar
43659333d3
Fix compiler warning
2015-02-03 18:12:37 -05:00
theoretical
323d59b054
real128: Rename PRECISION to FC_REAL128_PRECISION and expose it globally
2015-02-03 11:31:20 -05:00
theoretical
51033bcb12
real128: Implement from_fixed() to initialize real128 from fixed point value
2015-02-03 11:23:22 -05:00
theoretical
4b8c211629
uint128: Check for large shift count before truncating in << and >>
...
- Correctly handle very large shift counts
- uint128(1) << (uint64_t(1) << 32) should now be 0 as expected
2015-01-30 13:19:01 -05:00
Nathan Hourt
ac197311ca
json_connection: save and cancel a future
...
Hopefully this will fix a crash on exit.
2015-01-30 10:23:33 -05:00
theoretical
d963c6482a
Protect flush() with lock in json_connection.cpp
...
- Maybe fixes https://github.com/BitShares/bitshares/issues/1323
2015-01-29 12:55:34 -05:00
Eric Frias
a33bb60cf6
Add a simplified lock file class to use to prevent two applications from using the same resource
2015-01-21 19:29:38 -05:00
theoretical
0642eb63d3
Throw more appropriate exception type in from_base58
2015-01-21 14:57:04 -05:00
SynaptiCAD User
859282305d
Better format log message context
2015-01-21 09:50:14 -05:00
Eric Frias
f3065b367e
Add log appender that sends logs in GrayLog Extended Log Format
2015-01-20 16:13:26 -05:00
Vikram Rajkumar
e1678b1801
Add missing default HTTP response
2015-01-19 17:38:28 -05:00
theoretical
64c6c01b80
more efficient uint128 multiplication algorithm (measured 29.23x speedup)
2015-01-07 14:57:45 -05:00
theoretical
6ecb55ac2e
Implement full product for uint128 * uint128 -> 256-bit result
2015-01-07 11:20:34 -05:00
drltc
40943808d0
Initial implementation of relaxed JSON parser (not fully tested)
2015-01-02 10:37:16 -05:00
theoretical
524093ce1e
Implement chmod function (no-op on Windows)
2014-12-31 14:42:36 -05:00
Eric Frias
5a91c4f118
Virtualize a few functions in istream to allow them to be overridden in derived classes
2014-12-22 17:56:30 -05:00
drltc
594ef43f76
Wrap boost exceptions thrown by to_int64, to_uint64, to_double
2014-12-15 15:40:35 -05:00
drltc
43e02caa79
Fix typo in 64-bit integer variant constructor on Linux
2014-12-15 15:40:21 -05:00
Vikram Rajkumar
36baae683e
Minor spelling fix
2014-12-11 19:16:02 -05:00
Daniel Larimer
cb66666edd
Merge branch 'master' of github.com:BitShares/fc
2014-12-10 22:58:53 -08:00
Daniel Larimer
a4a90fac05
Update to elliptic curve signature verification
2014-12-10 22:43:37 -08:00
drltc
16c0709500
Increase stack size to 2MB
2014-11-19 11:27:22 -05:00
Vikram Rajkumar
e29438461e
Revert "Temporarily revert timestamp serialization change to upgrade in phases"
...
This reverts commit c38479c6ae .
2014-11-12 14:12:56 -05:00
Daniel Larimer
e6b43a6149
adding support for 10 arg rpc calls
2014-11-10 18:29:05 -05:00
dnotestein
27ac054883
Log thread creation and destruction
2014-11-03 16:59:19 -05:00
dnotestein
13d536c119
Prevent crash at shutdown by shutting down rate_limiting asyncs before boost filesystem global constructors execute.
2014-10-31 17:54:14 -04:00
Vikram Rajkumar
c38479c6ae
Temporarily revert timestamp serialization change to upgrade in phases
2014-10-29 15:01:24 -04:00
Vikram Rajkumar
f948bd759d
Use ISO standard delimited timestamp string serialization
2014-10-28 18:54:49 -04:00
Eric Frias
307252e23a
Call fc: 🧵 :quit() on thread destruction, and remove code that explicitly terminates threads from the destructors of the objects that own those threads.
...
Fix fc::thread to set the thread name in the Debugger when the name is set after thread construction.
When terminating a thread, cancel any tasks that have been schedule()d or async()ed but have not yet started executing.
When canceling a task blocked on a fc::mutex, notify the thread to reschedule the task to allow it to clean up the mutex's block list.
Fix a bug in managing the recursive lock count when tasks block on a fc::mutex
Reorder the code that manages the hard links for log files to avoid an exception generated by unlinking a locked file on Windows.
2014-10-21 10:25:28 -04:00
Nathan Hourt
c1eca45ef1
More fixes in json_connection
2014-10-20 12:52:47 -04:00
Eric Frias
891e880ad1
When the HTTP server asyncs a handler for a request, keep a future for that async and cancel any running asyncs when the HTTP server destructs
2014-10-17 16:18:55 -04:00
Nathan Hourt
fadc0512a1
Merge branch 'master' of github.com:InvictusInnovations/fc
2014-10-17 13:43:46 -04:00
Nathan Hourt
502a3c653c
Fix yield in catch block
2014-10-17 13:43:40 -04:00
Vikram Rajkumar
7ddf882459
Fix linux build
2014-10-17 13:23:51 -04:00
Eric Frias
b026e82451
Remove task priority hack that is no longer needed
2014-10-17 12:04:21 -04:00
Eric Frias
227767a425
Fix type of PRECISION
2014-10-16 19:00:30 -04:00
Eric Frias
b34a222dc5
Remove #ifdefed-out code
2014-10-16 17:50:58 -04:00
Eric Frias
e5666cca54
Convert ready_head (list of fibers able to run immediately) into a priority heap
2014-10-16 16:26:19 -04:00
Eric Frias
95eb84e62d
Add missing include
2014-10-16 16:25:12 -04:00
Eric Frias
1af4ac6a5c
Schedule fibers in the order they are asynced or unblocked. Earlier behavior was always to start newly-asycned tasks before resuming existing tasks, so existing tasks could be starved if there was a steady stream of new tasks created. Now all tasks are started or resumed in the order they are created or unblocked.
2014-10-16 15:25:31 -04:00
Eric Frias
a426bf9710
whitespace and spelling fixes, no functional changes
2014-10-16 15:25:31 -04:00
Daniel Larimer
dfe67a4494
adding blob type to variant
2014-10-15 23:32:37 -04:00
Daniel Larimer
ec9e85d268
fix fixed point math
2014-10-15 20:46:24 -04:00
Nathan Hourt
c3a6b40188
Test and bugfix real128
2014-10-15 17:53:50 -04:00
Daniel Larimer
b55ae3431a
adding real 128 for fixed point 64.64 math
2014-10-15 17:00:49 -04:00
Nathan Hourt
1a78fd2931
Add directory_size call
...
Recursively iterate the specified directory, summing up the files
inside, and return the total size.
2014-10-13 15:17:14 -04:00
Eric Frias
b63e6a8b81
Allow recursive fc::mutexes
2014-10-12 17:28:41 -04:00
Eric Frias
4e83427df0
Improvements for handling unicode filenames on Windows. When converting fc::path to/from fc::variant, use utf8 encoding. Replace several places where we use a std::ifstream and open it with a char* filename with a boost::filesystem::ifstream and open it with a boost::filesystem::path, which does unicode correctly.
2014-10-09 16:21:52 -04:00
Eric Frias
06ca6d8981
Fix bug that was causing NTP to fail to update after the first check
2014-10-07 11:49:35 -04:00
Eric Frias
82dd74add0
Retry NTP requests more frequently if we don't receive a (valid) reply
2014-10-07 11:10:27 -04:00
Eric Frias
0d61966a1c
Improve NTP math
2014-10-07 10:31:19 -04:00
Eric Frias
5a615e6b21
Execute async tasks in the order they were asynced (this only changes the behavior of tasks that hadn't started executing yet, it doesn't change anything about the order blocked tasks unblock)
2014-10-03 16:53:14 -04:00
Eric Frias
256df78fc6
Allow binaries compiled on a system that doesn't support SO_REUSEPORT to use the option
...
on systems that do support it
2014-10-02 14:49:38 -04:00
dnotestein
c4e814d7de
Added more logging to ntp and fixed code indentation.
2014-09-30 10:53:23 -04:00
dnotestein
53196706f0
Add some more logging to ntp time synchronization code.
2014-09-29 18:55:35 -04:00
Eric Frias
8def04f341
Add a path::preferred_string() function that generates a string in the platform's preferred format, using backslashes on win32 (uses boost::filesystem::path::make_preferred()).
...
Modify the log file configuration and rotating code to call to_native_ansi_path() and do more paths manipulation in fc::path objects and less in std::strings, in an attempt to improve BitShares/bitshares_toolkit#791
2014-09-25 08:57:31 -04:00
Eric Frias
6cddd42cfe
On windows, change the method we use for getting the home directory and app data directory to get it in unicode form. Partial fix for BitShares/bitshares_toolkit#791
2014-09-20 19:15:28 -04:00
Eric Frias
2f066e4adf
Fix a crash in fc::process when not capturing all three stdin/out/err
...
Quiet a few 64-bit warnings.
2014-09-18 11:17:41 -04:00
Daniel Brockman
bd846576f6
Compare HTTP headers case-insensitively
...
See <https://groups.google.com/d/msg/nodejs/XIU55IYtfJo/feUp9Fz7p14J >
2014-09-17 22:50:47 +02:00
Nathan Hourt
07e3947ed4
Fix bug in json pretty printer which broke formatting and possibly
...
corrupted json
2014-09-17 13:27:37 -04:00
Eric Frias
7966587021
Wrap a few boost asio exceptions in fc exceptions
2014-09-16 09:33:51 -04:00
Daniel Brockman
7b8394a781
Use set_reuse_addr in http_server
2014-09-15 20:30:31 +02:00
Nikolai Mushegian
60781c532b
Revert "Set SO_REUSEADDR to avoid having to wait for network ports to be released when restarting the client"
2014-09-15 14:06:37 -04:00
Daniel Brockman
9ba96f9dcf
Set SO_REUSEADDR
2014-09-15 20:02:27 +02:00
Eric Frias
b5414af3ce
Restore an accidentally-commented-out line that was preventing NTP from restarting after encountering an error.
2014-09-14 19:53:08 -04:00
Eric Frias
3ee5f756fb
Fix a yield-during-catch bug in udp_socket, and add a shared_ptr version of udp_socket::send_to() which will avoid reading from uninitialized memory in the face of cancellation.
2014-09-12 19:42:25 -04:00
Eric Frias
1daaab43ac
Add assert to catch any time we yield during a catch{} block
2014-09-12 14:28:56 -04:00
Eric Frias
751777e754
Fix more locations where we were making boost::asio calls with buffers declared on the stack which could cause problems when the calling tasks were canceled.
2014-09-11 16:30:03 -04:00
Nathan
55e7a073cf
Fix build error in salsa20.cpp
2014-09-09 16:09:49 -04:00
Eric Frias
aa6882b3b7
Allow us to safely cancel tasks that are executing asynchronous network reads
...
and writes. This was previously unsafe because we almost always passed read/write
buffers to boost that were on the stack. Canceling the task deleted the stack and
therefore the buffer, but couldn't reliably prevent boost from writing to the buffer
if data came in after the cancel. This commit adds variants of the read and write
functions that take a shared_ptr<char> instead of a raw char* as the buffer, and
these variants will ensure the shared_ptr will outlive the boost::asio read/write.
2014-09-09 11:10:37 -04:00
Eric Frias
db8eb2e5d4
Revert "Instead of canceling the read_loop, close the socket and wait for the read_loop to finish as a result. This prevents the receive_from from writing into the buffer (which is on the stack!) after the task is canceled. This caused nasty intermittent exception stack unwind errors."
...
This reverts commit c79cbdae8e .
2014-09-09 11:08:27 -04:00
dnotestein
c79cbdae8e
Instead of canceling the read_loop, close the socket and wait for the read_loop to finish as a result. This prevents the receive_from from writing into the buffer (which is on the stack!) after the task is canceled. This caused nasty intermittent exception stack unwind errors.
2014-09-08 17:23:03 -04:00
Eric Frias
881903c1be
Wrap boost::exception with fc::exception in fc::ip::endpoint::from_string()
...
Restructure udp_socket::receive_from() to something functionally identical, but has one less exception handler on the stack which I hope would make it easier to debug strange exception-handling errors encountered on win64
2014-09-08 16:10:42 -04:00
dnotestein
10fdbcf5b3
Dequeue a thread from a blocking promise's notify list when the all the thread's tasks that are waiting on that promise are canceled. This prevents a crash when the promise is fulfilled after the thread is destroyed.
...
Re-organize read-loop execution to avoid crashes in read_loop on Win32 when ntp object destructs. Call quit on ntp_thread when ntp object destructs to free up thread (eventually we need to make fc::threads call quit in their destructor, but more work is required to make that work properly).
~fc::udp_socket now closes socket on destruction (consider doing this for tcp sockets as well).
2014-09-08 15:31:13 -04:00
dnotestein
1360eabd8c
Merge branch 'master' of https://github.com/InvictusInnovations/fc
2014-09-08 10:47:16 -04:00
Eric Frias
130da3623e
Allow fibers to be canceled while they're sleeping or blocked on promises
2014-09-08 10:41:59 -04:00
Eric Frias
454573e048
Add support for boost 1.56.
2014-09-08 10:41:59 -04:00
Nathan Hourt
9b6facea3f
Make the JSON parser less fragile
2014-09-08 10:12:42 -04:00
dnotestein
b6e38cd5ec
Eliminate unnecessary cast in endpoint::from_string
2014-09-08 10:10:19 -04:00
Eric Frias
3222dc7c0b
When reusing a context, re-initialize most of its fields. This fixes at least two errors:
...
- we were canceling tasks that hadn't been canceled, because the canceled flag was left set to true and the next task assigned to the context then became canceled as soon as it yielded
- we were resumeing blocked tasks before they should have resumed, because their blocking_promises list wasn't cleared and they were unblocking because the erroneous promises were fulfilled
As a debugging aid, we also record the cancellation reason whenever a task is canceled, and include that in the canceled_exception (this is only enabled in debug builds)
2014-08-28 15:43:26 -04:00
Eric Frias
f8472af119
Change fc::canceled_exceptions thrown due to a socket operation being canceled into regular fc::exceptions -- we're reserving canceled_exception for canceling async tasks
2014-08-28 15:34:04 -04:00
Eric Frias
ac385d1f6b
Allow the user to supply a reason string when canceling a task (useful for debugging)
2014-08-27 14:07:44 -04:00
Eric Frias
8841f5e271
Import thread/task_specific variables
2014-08-27 12:20:19 -04:00
Eric Frias
d9e6a9e568
When a task is canceled while blocking on a mutex, fix the code that removes it from the mutex's block list to null out its "next" pointer, which is assumed to be null whenever not blocked on a mutex
2014-08-27 11:55:14 -04:00
Eric Frias
976bbce668
When locking a mutex, ensure the task has a context before attempting to lock.
2014-08-25 18:44:15 -04:00
Eric Frias
d188b138d6
Allow fc::canceled_exception to pass through places where we were catching and ignoring all fc::exceptions
2014-08-25 18:43:12 -04:00
Eric Frias
27096f15a7
Log the names of tasks to the log file (now contains thread_name:task_name}
2014-08-24 18:33:05 -04:00
Eric Frias
198d858d59
Wrap boost exceptions in fc exceptions for a few socket operations that can throw
2014-08-24 14:47:01 -04:00
Eric Frias
578527626c
Support GNTP password authentication
2014-08-21 19:32:56 -04:00
Eric Frias
156a7cc4b4
Allow setting hostname
2014-08-21 16:14:08 -04:00
Eric Frias
362884fc52
Import GNTP notification code
2014-08-21 15:21:48 -04:00
Nathan Hourt
9e75d47ba3
Fix to an issue causing a thread to exit if any fiber therein self-cancels
2014-08-21 14:36:29 -04:00
Daniel Larimer
8468f392ce
default to_string conversion is now fixed
2014-08-13 16:06:42 -04:00
Eric Frias
92d29ac657
Prevent crash at shutdown rescheduling NTP task
2014-08-12 15:19:44 -04:00
Eric Frias
978de7885a
Add a macro to check if a task that shouldn't yield actually yields.
2014-08-02 19:43:28 -04:00
Daniel Larimer
6e31ffd963
Merge branch 'master' of https://github.com/InvictusInnovations/fc
2014-08-01 17:21:24 -04:00
dnotestein
7cc69f3bb7
Set canceled flag in task's context object so that we cancel out of active tasks when they try to resume. Wrap a try-catch block around tcp and udp resolve requests to convert any non-fc exceptions to fc exceptions. Minor change to clarify design intent that request_time_task should always be running in _ntp_thread.
2014-08-01 11:31:36 -04:00
PaulEU
eae493a8c1
Remove unnecessary code from init_openssl after update new OpenSSL package.
2014-07-29 23:44:47 +02:00
Daniel Larimer
3ccbe26dd5
adding aes exception
2014-07-29 13:54:50 -04:00
Vikram Rajkumar
a23f3a86be
Add missing integer variant conversions
2014-07-28 22:36:47 -04:00
Eric Frias
d847f6469a
Allow us to require assigning descriptions to all async tasks to aid in debugging
2014-07-27 17:37:21 -04:00
dnotestein
9e320a3db8
Add descriptions for a bunch of async tasks, remove logging during thread::quit to avoid crashes for now until we cleanup thread quit code
2014-07-27 00:09:15 -04:00
Vikram Rajkumar
3be05ef822
Merge branch 'master' of github.com:InvictusInnovations/fc
2014-07-26 22:29:22 -04:00
Vikram Rajkumar
48837f3116
Add time_point_sec::to_iso_{extended_}string()
2014-07-26 21:05:11 -04:00
Eric Frias
b460fd6b41
Cleanup all async tasks on exit, thread safety, work in progress.
2014-07-26 18:22:38 -04:00
Eric Frias
600ae24657
separate one try/catch into two blocks during file_appender destructor
2014-07-26 15:05:26 -04:00
Eric Frias
c208a968b2
Fix ntp on win32
2014-07-25 14:40:47 -04:00
dnotestein
34296fbb4a
Eliminate local variable that was shadowing data member variable stack_ctx in context object, which resulted in an assert when the context object was destructed.
2014-07-24 15:18:53 -04:00
Nathan Hourt
a254e5ff28
Merge branch 'master' of github.com:InvictusInnovations/fc
2014-07-23 11:59:48 -04:00
Nathan Hourt
523fa56d88
Bugfix: Incorrect ordering of newline and carriage return in HTTP server
...
The HTTP server was printing "\n\r" at the end of lines in the response
headers, which is invalid and caused some HTTP clients to detect an end
to the headers after the first header line.
The server now prints the proper "\r\n" sequence, which is parsed
correctly by clients.
2014-07-23 11:56:57 -04:00
PaulEU
4890351b34
Added OpenSSL configuration file path. (qt_wallet issue #10 Some clients on Windows 7 quit/crash on start)
2014-07-23 00:18:09 +02:00
Daniel Larimer
6ef73a4198
reduce default stack size by 50% to 4x default from 8x
2014-07-17 23:03:23 -04:00
Daniel Larimer
eed62c8338
sockets now wait for any pending write or read operations to finish before destructing
2014-07-17 17:03:25 -04:00
Daniel Larimer
01202aa709
adding space to exception message
2014-07-16 14:20:36 -04:00
Eric Frias
b6f8570c35
Lock mutex during more of the log rotation process (attempting to prevent crashes that have been seen while logging at the same time as log rotation)
2014-07-16 13:39:14 -04:00
grzegorzs
06fe9e0303
[GS] Fix types u_int32_t to uint32_t etc. - continued
2014-07-15 14:20:42 +02:00
Vikram Rajkumar
e442b29f6e
Fix scrypt
2014-07-14 13:40:33 -04:00
Eric Frias
a034239313
Add missing include
2014-07-07 12:36:34 -04:00
Eric Frias
62ea4ae9c3
Add mutexes to make OpenSSL thread safe
2014-07-07 12:22:01 -04:00
Vikram Rajkumar
18611eccb9
Fix log rotation scheduling bug
2014-07-05 16:22:25 -04:00
Daniel Larimer
ace06d775c
support for 8 param rpc calls
2014-07-04 17:23:47 -04:00
Vikram Rajkumar
c9c56ffbb6
Merge branch 'master' of https://github.com/InvictusInnovations/fc
2014-07-03 17:24:14 -04:00
Vikram Rajkumar
e9b1b8ec2e
Use a separate thread for log compression
2014-07-03 17:24:06 -04:00
Eric Frias
c020913cb8
Make process::exec take an 'int' for the bitmask of launch options instead of an enum to make it more clear that it's a bitmask (and avoid a cast)
2014-07-03 09:30:50 -04:00
Vikram Rajkumar
adf8c10ee5
Fix Linux compilation
2014-07-03 02:55:30 -04:00
Vikram Rajkumar
223f0005f5
Hardlink from most recent log to original filename during rotation
2014-07-03 02:55:30 -04:00
Vikram Rajkumar
b522f12a0e
Use ISO format timestamps for rotated log files
2014-07-03 02:17:03 -04:00
Vikram Rajkumar
b1e677bcee
Implement optional LZMA compression for rotated logs
2014-07-03 01:27:58 -04:00
Vikram Rajkumar
cc1ef61cd6
Logs are now rotated on startup if rotation is enabled
2014-07-03 01:16:46 -04:00
Vikram Rajkumar
39c7f05ea9
Implement LZMA file decompression
2014-07-03 00:01:02 -04:00
Vikram Rajkumar
f56dd6d208
Implement LZMA file compression
2014-07-02 23:28:43 -04:00
Vikram Rajkumar
c0187865ea
Implement log file rotation
2014-07-02 17:36:21 -04:00
Daniel Larimer
aab316d190
update time pretty print, adding space after year
2014-07-01 15:20:58 -04:00
Daniel Larimer
13da4b0d6a
improve socket error handling
2014-06-30 10:50:50 -04:00
Eric Frias
160da5dbb9
Fix invalid iterator comparison in process_canceled_tasks when canceling the only task in task_sch_queue
2014-06-29 18:50:05 -04:00
Daniel Larimer
c33acad0ab
fix udt sockets, actually enable non blocking operation
2014-06-29 01:38:46 -04:00
Daniel Larimer
892df5c0b7
canceled scheduled tasks return immediately when waited upon
2014-06-28 21:46:10 -04:00
Daniel Larimer
ffa617183e
if a task is canceled before it is run, then it will throw a canceled exception
2014-06-28 21:08:15 -04:00
Daniel Larimer
d2072e9d3a
updates to thread / udt socket
2014-06-26 20:10:56 -04:00
Daniel Larimer
8670a4722f
Merge branch 'master' of https://github.com/InvictusInnovations/fc
2014-06-26 20:10:37 -04:00
Eric Frias
560b107e58
Fix signed/unsigned warnings
2014-06-26 15:51:01 -04:00
Eric Frias
862e7bb5d3
fix a few 64-bit to 32-bit conversion warnings
2014-06-26 15:50:40 -04:00
Daniel Larimer
bb40828953
Merge branch 'master' of https://github.com/InvictusInnovations/fc
2014-06-26 11:25:12 -04:00
Daniel Larimer
5529b300d9
implemented working UDT socket/server
2014-06-26 11:25:07 -04:00
Eric Frias
21d1ce2067
Merge branch 'phoenix'
2014-06-26 10:03:42 -04:00
Eric Frias
78af258510
Remove include that's missing from win32
2014-06-26 10:03:02 -04:00
Daniel Larimer
5c98d7864f
Merge branch 'phoenix' of https://github.com/InvictusInnovations/fc
2014-06-26 08:48:12 -04:00
Daniel Larimer
456c81df27
fix potential errors in NTP caused by running in main thread
2014-06-25 23:32:09 -04:00
Daniel Larimer
d20b9d049b
start work on udt socket class for fc
2014-06-25 18:34:04 -04:00
Eric Frias
2c5c1655a6
Add counters to the TCP rate limiter to measure actual upload and download speed, and allow the caller to set how bursty they want the connection to be.
2014-06-25 18:16:58 -04:00
dnotestein
87a93940d0
Display times in UTC for fc logging.
2014-06-24 16:29:59 -04:00
Daniel Larimer
4c59f48aa1
fix log_message variant conversion bug that stomped methodname
2014-06-24 12:12:30 -04:00
Eric Frias
331e6aac7d
Convert networking exceptions to fc::exceptions to properly catch them in NTP code (fixes at least some of the shutdown crashes)
2014-06-20 12:22:37 -04:00
Eric Frias
2b3728af37
Add -> for directory_iterator
2014-06-20 10:38:21 -04:00
Daniel Larimer
c7013d3eea
update log_message to take std::string rather than const char*
2014-06-19 11:29:57 -04:00