Commit Graph
3353 Commits
Author SHA1 Message Date
Witold Krecicki 4b8bdca210 Use multiple network event loop threads with separate data structures. 2018-11-13 19:02:36 +00:00
Witold Kręcicki 1f0cffd16f Do IO after event directly in the network thread, don't queue an event in a separate task. 2018-11-13 19:02:36 +00:00
Witold Kręcicki fd36cafe5a Remove fdwatch sockets, those are not used anywhere. 2018-11-13 19:02:35 +00:00
Witold Kręcicki 5b3798661a Fix a typo in lib/isc/unix/thread.c 2018-11-13 19:02:04 +00:00
Witold Kręcicki 3ebc29b82b Use a single wake_all_queues() function to wake all queues 2018-11-13 19:02:04 +00:00
Witold Kręcicki 757b9a5351 Switch from privileged to un-privileged mode under lock 2018-11-13 19:02:04 +00:00
Witold Kręcicki 586ab26d51 Document isc_task_sendto properly, make sure that cpu we're sending to is always sane 2018-11-13 19:02:04 +00:00
Witold Kręcicki 5418603967 Use proper memory ordering for tasks_running/tasks_ready 2018-11-13 19:02:04 +00:00
Witold Kręcicki 8ece19f681 Comment about taskmgr exclusive mode, fix a REQUIRE. 2018-11-13 19:02:04 +00:00
Witold Kręcicki 8e45de0f6f Saner exclusive task handling in taskmgr 2018-11-13 19:02:04 +00:00
Witold Kręcicki dec92aeab6 Formatting 2018-11-13 19:02:04 +00:00
Witold Kręcicki 8ddc2b0225 Get rid of isc_taskmgr_setmode, we only use it to set privileged mode 2018-11-13 19:02:04 +00:00
Witold Kręcicki 7f423f0175 Make sure all priority tasks are done before entering normal execution 2018-11-13 19:02:04 +00:00
Witold Kręcicki dccbc4086e Post shutting down tasks always to manager 0 2018-11-13 19:02:04 +00:00
Witold Kręcicki d5a3200b3d Separate structure for each thread/queue; 2-phase-locking for exclusive tasks 2018-11-13 19:02:04 +00:00
Witold Kręcicki 70f46a537a Always restart dispatchers on empty readyq 2018-11-13 19:02:04 +00:00
Witold Kręcicki 5f269f9572 Taskmgr shutdown fixes 2018-11-13 19:02:04 +00:00
Witold Kręcicki 30708dff65 Multiple worker queues 2018-11-13 19:02:04 +00:00
Witold Krecicki ff3f537167 isc_thread_setaffinity() 2018-11-13 19:02:04 +00:00
Michał KępieńandWitold Kręcicki 4aae4ac05f [squash] Rework code preparing a HTTP response for sending in lib/isc/httpd.c 2018-11-13 19:02:04 +00:00
Witold Kręcicki 3d58be4c15 Remove vector socket functions from Unix socket code and library headers
Remove the following functions in order to simplify socket code:

  - isc_socket_recvv()
  - isc_socket_sendtov()
  - isc_socket_sendtov2()
  - isc_socket_sendv()
2018-11-13 19:02:04 +00:00
Witold Kręcicki a4ec819b3f Remove vector socket functions from Windows socket code
Remove the following functions in order to simplify socket code:

  - isc_socket_recvv()
  - isc_socket_sendtov()
  - isc_socket_sendtov2()
  - isc_socket_sendv()
2018-11-13 19:02:04 +00:00
Witold Kręcicki 0fa04a2f0a Do not use vector socket functions in HTTP server code
Refactor code in lib/isc/httpd.c to no longer use isc_socket_sendv() as
this function will be removed shortly.
2018-11-13 19:02:04 +00:00
Evan HuntandWitold Kręcicki 52d63eeafc remove config.h references 2018-11-13 19:02:04 +00:00
Evan Hunt a0de6707c0 silence warning from missing print.h 2018-10-30 08:06:34 -07:00
Michał Kępień e1f0aed034 Fix isc_buffer_copyregion() for auto-reallocated buffers
While isc_buffer_copyregion() calls isc_buffer_reserve() to ensure the
target buffer will have enough available space to append the contents of
the source region to it, the variables used for subsequently checking
available space are not updated accordingly after that call.  This
prevents isc_buffer_copyregion() from working as expected for
auto-reallocated buffers: ISC_R_NOSPACE will be returned if enough space
is not already available in the target buffer before it is reallocated.
Fix by calling isc_buffer_used() and isc_buffer_availablelength()
directly instead of assigning their return values to local variables.
2018-10-30 13:33:25 +01:00
Michał Kępień 15440d8027 Add unit tests for isc_buffer_copyregion()
Add some basic checks for isc_buffer_copyregion() to ensure it behaves
as expected for both fixed-size buffers and buffers which can be
automatically reallocated.  Adjust the list of headers included by
lib/isc/tests/buffer_test.c so that it matches what that test program
really uses.
2018-10-30 13:33:25 +01:00
Mark Andrews 97a680e5ce document eol 2018-10-30 11:03:02 +11:00
Evan Hunt dfe5d3330c added stdatomic.h and md.h 2018-10-29 11:26:38 -07:00
Mark Andrews 561b780ba0 Only set IPV6_USE_MIN_MTU on IPv6. 2018-10-29 16:49:33 +11:00
Ondřej Surý d6c50674bb Remove last traces of DSA and NSEC3DSA algorithm, but restore the algnumber -> name mapping 2018-10-26 11:50:11 +02:00
Ondřej Surý 8efd394c80 Remove last bits of PKCS#11 DH support that has been already removed 2018-10-26 11:50:11 +02:00
Ondřej Surý eb603cb021 Check for individual OpenSSL functions instead of relying on version number 2018-10-26 06:15:51 +02:00
Mark Andrews 632a0ae10b EVP_CIPHER_CTX_new and EVP_CIPHER_CTX_free exist in OpenSSL 1.0.1 2018-10-26 10:01:14 +11:00
Ondřej Surý 68b49d87b2 Add md.h and md.c to Windows build files 2018-10-25 20:59:48 +02:00
Ondřej Surý 13888c93a4 Split isc_crc64 API test into separate unit test and convert it to cmocka 2018-10-25 08:16:24 +02:00
Ondřej Surý b98ac2593c Add generic hashed message authentication code API (isc_hmac) to replace specific HMAC functions hmacmd5/hmacsha1/hmacsha2... 2018-10-25 08:15:42 +02:00
Ondřej Surý 7fd3dc63de Add generic message digest API (isc_md) to replace specific MD functions md5/sha1/sha256 2018-10-25 08:15:42 +02:00
Mark Andrews afde30fe9b expand the pool then copy over the old entries so we that failures do not break the old pool; also don't leak the new pool on error 2018-10-24 22:00:08 -04:00
Ondřej Surý 4b47958163 Fix typo in isc_rwlock_pause() on sparc 2018-10-23 09:29:03 +02:00
Evan Hunt e839972ee2 address unresolved externals 2018-10-19 00:49:53 -07:00
Evan Hunt 3f35ab8567 remove references to methods and app_api.c 2018-10-19 00:28:53 -07:00
Evan Hunt c609a67ac7 change to bool constants; also fixed style error 2018-10-18 20:42:25 -07:00
Evan HuntandWitold Kręcicki 09f58ab63f retain a minimal "methods" struct in the mctx
- this enables memory to be allocated and freed in dyndb modules
  when named is linked statically. when we standardize on libtool,
  this should become unnecessary.
- also, simplified the isc_mem_create/createx API by removing
  extra compatibility functions
2018-10-18 09:19:12 +00:00
Evan HuntandWitold Kręcicki 0e86fa16e8 complete removal of a few unneeded functions
- removed register functions from isc_app, isc_timer, isc_task
- added a task_p.h header for use by unit tests
2018-10-18 09:19:12 +00:00
Witold Kręcicki 38a127c35b Remove layering from isc_task, isc_app, isc_socket, isc_timer, isc_mem 2018-10-18 09:19:12 +00:00
Witold Kręcicki cdbac34cba Get rid of isc_bind9 conditional 2018-10-18 09:19:12 +00:00
Ondřej Surý 5ccbb274d2 Remove HAVE_OPENSSL guard from openssl_shim.{c,h} and uncrustify it 2018-10-05 13:12:48 +02:00
Ondřej Surý 3994b1f9c2 Remove support for obsoleted and insecure DSA and DSA-NSEC3-SHA1 algorithms 2018-10-05 09:21:43 +02:00
Mark Andrews f723a1247f Undo implict promotion to 64 bits in our Windows implementation of atomic_load_explicit() by casting to uint_fast32_t. 2018-10-04 06:59:28 +10:00