Commit Graph

444 Commits

Author SHA1 Message Date
Joris Vink 47ad4fbc28 Have "kore build" generate temp certs as well 2014-08-01 17:10:47 +02:00
Joris Vink 448f1a7912 Don't run cli_cleanup_files() in cli_fatal if theres no rootdir 2014-08-01 16:39:12 +02:00
Joris Vink 5fa964c5c0 gettimeofday() requires sys/time.h 2014-08-01 16:10:37 +02:00
Joris Vink 67c3bd84ba Make cli compile under freebsd 2014-08-01 16:01:33 +02:00
Joris Vink e29a5461ca Allow kore build to compile static files 2014-08-01 15:55:09 +02:00
Joris Vink 61f56b8da0 Bump copyright 2014-08-01 14:14:46 +02:00
Joris Vink 5d8c29af13 Allow kore build to take compiler via KORE_COMPILER 2014-08-01 14:09:57 +02:00
Joris Vink ea5b89d20b Move orbit functionality into kore directly.
Makes more sense and reads easier:

kore create myapp
kore build myapp
kore run myapp

Note that kore retains its cli options (if no command was given),
meaning you can still start kore in the traditional way as well.

The command options are simply to make development easier.
2014-08-01 13:59:47 +02:00
Joris Vink 818dd84acd No longer generate .objs as a default for orbit create. 2014-08-01 12:45:31 +02:00
Joris Vink e57a91a4e0 Create .objs when doing orbit build if it doesnt exist 2014-08-01 12:40:37 +02:00
Joris Vink 0c21c08b6d Hook orbit into the build 2014-08-01 10:46:50 +02:00
Joris Vink a2a87adf19 Euhm, revert last commit. 2014-08-01 10:33:26 +02:00
Joris Vink cee7d34020 Properly check for EWOULDBLOCK as well 2014-08-01 10:32:31 +02:00
Joris Vink a047758df1 Note the BENCHMARK option in README 2014-08-01 10:30:29 +02:00
Joris Vink c2e4d55235 Add a BENCHMARK compile option which compiles without OpenSSL.
Personally use this for testing Kore its performance without
letting the OpenSSL stack get in the way too much.

Note that it leaves data structures as is, and just removes
any calls to OpenSSL (and removes the linking vs OpenSSL).
2014-08-01 10:22:32 +02:00
Joris Vink 8ff870a352 Remove the ability to pass libs on the cli again.
Sorry, this no longer makes sense in terms of what
orbit is suppose to be doing.
2014-08-01 09:39:09 +02:00
Joris Vink d6f0b8f8fe Start kore from inside the rootdir when doing orbit run 2014-08-01 09:05:14 +02:00
Joris Vink 65a28e3db3 Allow orbit to build things under OSX 2014-07-31 23:19:18 +02:00
Joris Vink 7a038fce91 Add initial orbit code.
Orbit is a tool used to create/build/run kore code
in a more straight forward way.

Right now, orbit can do the following:

orbit create myapp
orbit build myapp
orbit run myapp

All in the motivation of making it easier to get
started with building Kore libraries and making
life easier on the people hacking Kore things.
2014-07-31 23:12:14 +02:00
Joris Vink b17eefde1f Allow developers to pass the lib to load on the cli.
When running in -f (foreground) you can now specify
the library Kore needs to load on the command line:

kore -fnc module.conf myapp.so

This has the benefit that your configuration file no
longer needs the load directive when hacking on your code.

Note that you can still specify load in your config file
regardless, if you so chose.

All of this is being done in order to try and move away
from the backwards way of getting up and running with Kore.
2014-07-31 17:15:51 +02:00
Joris Vink 105fb272a0 In foreground mode don't show kore_log() in fatal 2014-07-31 15:12:05 +02:00
Joris Vink 20e2447c90 When running Kore in foreground mode, log to stdout 2014-07-31 14:26:51 +02:00
Joris Vink ef49a0d4e1 Don't use pidfile if we're in foreground mode 2014-07-31 14:02:33 +02:00
Joris Vink a664e2a655 Make some configuration options fallback to defaults.
* If no runas_user is given, use current user.
* If no chroot path is given, don't complain if -n
* If no workers is set, use the default 1.
2014-07-31 13:59:42 +02:00
Joris Vink 2d9940e197 Add foreground 2014-07-31 13:43:37 +02:00
Joris Vink 9b76afc5fb Whoops, remove KORE_BENCHMARK that sneaked in 2014-07-31 13:35:39 +02:00
Joris Vink 8812d6989a Allow Kore to be started in foreground mode (-f)
Sending SIGINT or Ctrl-c will reap all workers and
exit again. Useful for development.
2014-07-31 13:27:04 +02:00
Joris Vink 9c4e7c888f kill newline 2014-07-31 12:27:41 +02:00
Joris Vink 7fd936bb94 Add coverity badge, cause why not 2014-07-31 10:41:30 +02:00
Joris Vink 22e1e1c425 Add worker_rlimit_nofiles as a configurable option. 2014-07-31 09:14:03 +02:00
Joris Vink 26d4d5d63b Rework the accept lock.
Kore no longer passes the accept lock to the "next in line"
worker but instead all workers will attempt to grab the lock
if they can.

Also remember if we had the lock previous iteration of the
event loop and don't constantly disable/enable the accepting sockets.

Makes Kore scale even better across multiple cpu's.
2014-07-30 15:20:09 +02:00
Joris Vink 83f890e89e No longer preallocate worker_max_connections for the http pools.
Instead use 10% of worker_max_connections up to a maximum of 1000.
2014-07-30 13:20:27 +02:00
Joris Vink e1dff2e051 We've become a framework really 2014-07-30 09:43:29 +02:00
Joris Vink 9b13f57711 Add 1.2 release date + spelling 2014-07-30 09:14:36 +02:00
Joris Vink efe732cc1f Update readme 2014-07-30 09:12:59 +02:00
Joris Vink cb3322cd9f Make accesslogs optional 2014-07-30 09:11:21 +02:00
Joris Vink 3f853a79ce Add example configuration under conf/ 2014-07-30 09:02:34 +02:00
Joris Vink a895250e97 Make sure l and c are initialized 2014-07-30 09:00:19 +02:00
Joris Vink fe0149ad24 Have workers always pass the accept lock after handling their events.
Provides a nice performance boost when scaling across multiple cpu's.
2014-07-29 13:14:34 +02:00
Joris Vink 478c008c99 Missing parts from last commit 2014-07-28 23:35:12 +02:00
Joris Vink 8313a31eba If we do not own the accept lock, reduce timeout for platform wait.
This way multiple workers won't stall when passing the accept lock
around for at maximum 100 ms (time spent in epoll/kqueue waits).
2014-07-28 23:27:58 +02:00
Joris Vink ea07ddef34 Properly send out early HTTP errors via the appropriate SPDY stream 2014-07-27 21:59:25 +02:00
Joris Vink c1bc0ce13f Check return value for pthread_mutex_init() 2014-07-27 21:47:18 +02:00
Joris Vink 257486d74a Remove req from http_requests before other things 2014-07-27 21:01:14 +02:00
Joris Vink 8c22f0f004 In http_request_free() remove the req from the owner connection. 2014-07-27 21:00:17 +02:00
Joris Vink c9f39c9c9d Set module->ocb to NULL 2014-07-22 10:47:12 +02:00
Joris Vink fbfabf6f04 Add missing stdint.h header 2014-07-22 09:53:44 +02:00
Joris Vink 341a111a2f Rework kore_strtonum64() so we can catch overflows for u_int64_t.
Seems that strtoull() if a negative string is supplied rather just
wraps the value, which I don't want here.
2014-07-21 01:51:51 +02:00
Joris Vink 25cf8dc659 Wrong comparison in kore_strtonum64(), fix. 2014-07-21 01:19:39 +02:00
Joris Vink d4cec3427e Properly convert 64bit parameters.
Introduces kore_strtonum64() for just this purpose as to
not taint kore_strtonum() too much.
2014-07-21 01:16:03 +02:00