Commit Graph

237 Commits (master)

Author SHA1 Message Date
Brian Jack 946dc682bb ... 2014-12-01 19:51:46 -08:00
Brian Jack 236ef6720d minor build efficiency stuff... 2014-12-01 19:50:27 -08:00
Brian Jack a84743f4d2 trying to keep stuff documented as I go... 2014-12-01 19:34:27 -08:00
Brian Jack 1d9dd688b7 working on database stuff
the initialization/shutdown code mainly.
2014-12-01 19:15:02 -08:00
Brian Jack fc70734403 prettying 2014-12-01 16:52:03 -08:00
Brian Jack 5623b5c618 more db work... 2014-12-01 16:50:43 -08:00
Brian Jack 6f4ac8b7f3 ... 2014-12-01 12:37:39 -08:00
Brian Jack f7ef0eabf9 slowly working out sqlite glue stuff 2014-12-01 12:36:32 -08:00
Brian Jack 9d96ec3324 upgrading to c++11 semantics 2014-12-01 08:29:45 -08:00
Brian Jack be7943d534 dox should be good for now... 2014-11-30 13:28:05 -08:00
Brian Jack 5d817589d1 more work with dox... sigh... 2014-11-30 12:07:08 -08:00
Brian Jack 63f9248f39 ick this is fussy in git doing the dox... :( 2014-11-30 11:57:19 -08:00
Brian Jack 4afc5bb287 more work with dox... 2014-11-30 11:56:06 -08:00
Brian Jack 760468ab36 ok the docs are in the 3rd party stuff is excluded 2014-11-30 11:16:53 -08:00
Brian Jack f976e6f668 I am trying to keep this thing documented
since that makes it easier to get help from other developers :)
2014-11-30 10:36:33 -08:00
Brian Jack 27150bbf69 forgot to ignore doxygen's temp files 2014-11-30 10:15:04 -08:00
Brian Jack 2cb324ed4e docs are good but...
The settings are there for doxygen to make the docs and eventually I
will unignore the docs (html) dir when I figure out how to have it not
trying to document things like the RSA and sqlite (HUUUUGE!) embedded
libs.
2014-11-30 10:12:46 -08:00
Brian Jack 70fcdc5380 account/db/login 2014-11-30 10:04:19 -08:00
Brian Jack 66dce8521c moved cout lock stuff to common 2014-11-29 19:19:09 -08:00
Brian Jack 3cb9acf0fe account/db/login 2014-11-29 18:29:44 -08:00
Brian Jack 850b70cce4 login method work
this begins the work on the actual user account logon procedure.  three
cases: 1. create unused account when client does not currently own an
account, 2. log in to client's own account, 3. log in to account not
owned by client but linked from another account (whitelisted for log in
by this client) using a password
2014-11-29 17:27:28 -08:00
Brian Jack 683f2b89aa session remembers client validity
session object remembers validity of client when successful answer to
challenge received
2014-11-29 04:54:36 -08:00
Brian Jack 4b09691987 switched over to boost threading
platform independence is back!
2014-11-29 04:27:07 -08:00
Brian Jack 0a2fdca402 updated C::B project to use mingw48
It looks like I can get away with the precompiled GCC irrlicht binary.
Also, boost.thread finally works!
2014-11-29 00:04:23 -08:00
gau-veldt f94a8223ff upgrading sqlite to latest 3.8.7.1 2014-11-17 17:18:03 -08:00
gau-veldt de17b2f54f account/database
begin to write useraccount login and database code
2014-11-17 16:44:14 -08:00
gau-veldt 9e0e18d01d stuff... 2014-11-16 16:17:20 -08:00
gau-veldt e2c3c8d77a challenges generated with ND randomness
That ugly "TODO message" challenge has been replaced with 192-bit (32
printable characters) challenge strings generated with boosts's ND
randomness source to avoid seed-guessing and similar exploits attacking
pseudorandom generation.
2014-11-16 00:37:41 -08:00
gau-veldt c03edd8ba3 client auth code implemented
not the nicest in the world and this RSA code is dog slow but it works
2014-11-15 07:56:47 -08:00
gau-veldt 71ef5f0236 more auth stuff... getting there... 2014-11-14 18:12:45 -08:00
gau-veldt 4ac07e0d1e starting session/authentication stuff
generate private/public keys for authenticating with server
2014-11-14 12:54:54 -08:00
gau-veldt 873ecba44c method calls now utilize async/callback pattern
similar to boost::asio async methods (that post to a callback) the
call_method method of sessions now uses a similar callback mechanism to
report methodcall completions.
2014-11-14 08:06:20 -08:00
gau-veldt 99678780b0 added object proxy cache
added object proxy cache to cache objectrefs and handle death messages
(remove from cache)
2014-11-13 21:05:44 -08:00
gau-veldt af9e7daa60 made death and method call protocol-atomic
in this case atomic means the receiver of a method call or death message
expects the operands before further processing (such as placing things
onto argument stack).  prior the primitive types were using the argument
stack with objectrefs but this behavior is not well defined if the
stream lags before the method call or death message opcodes arrive and
the receiver potentially processes input as a naked objectref (not
knowing the future to expect an incoming . or ~) resulting in a data
race within the protocol (if one end is expecting a value on the
argument stack at same time other end sends a death message or object
part of method call the data race has begun)
2014-11-13 20:42:03 -08:00
gau-veldt 45c092115c protocol method calls are implemented 2014-11-13 17:34:54 -08:00
gau-veldt 580dfbca30 more toughening... 2014-11-13 01:15:28 -08:00
gau-veldt 231f47dd99 lil bit 'o hardening 2014-11-13 00:53:58 -08:00
gau-veldt 7aa5ac505b ... 2014-11-12 22:14:39 -08:00
gau-veldt 4d72336537 testing fluff 2014-11-12 22:07:58 -08:00
gau-veldt 0aa23c4299 ... 2014-11-12 22:06:48 -08:00
gau-veldt 7dc3d7e17c minor testing stuff 2014-11-12 22:05:47 -08:00
gau-veldt ab82e0d64b ensure only one async_read pending when polling
when polling during the renderloop async_reads were stacking (one per
frame!) up to wait  for the same input byte.  about 10-12 seconds of
this mega-leak was enough for the system to complain with an eventual
10055 (buffers full).  a flag is used per session (thread-local) to
ensure this no longer happens.  a new reader job is no longer posted
until the previous reader job completed.  the session's run method
should not have this problem but just to be safe it used the flag also.
along the way I also made all the names of io_service's unique as part
of the check to make sure each thread (including server connection
slaves) has a unique io_service object (otherwise jobs are shared across
threads and that would be crossing the streams and bad and all that
stuff)
2014-11-12 21:26:42 -08:00
gau-veldt c672246ccc protocol mostly done except method calls 2014-11-12 15:55:09 -08:00
gau-veldt 92529579b9 needed a linefeed... 2014-11-12 08:32:33 -08:00
gau-veldt ddb0614d51 finally work starts on actual protocol handling
bootstrap part is done and object refs are handled
2014-11-12 08:29:17 -08:00
gau-veldt 67f3823e4b provisional input handling for server 2014-11-11 20:29:26 -08:00
gau-veldt 658e8cad8c wonder why wingit made this a separate commit... 2014-11-11 14:38:41 -08:00
gau-veldt dbfe4b8de6 clean standalone client/server shutdown code
cleaned up shutdown handling for clean thread shutdown (not the ugly
force-termination I had before).  also finally found a solution to make
irrlicht's logging messages use the locking macros
2014-11-11 14:33:47 -08:00
gau-veldt 705820a543 server and client establish connection
almost ready to implement bootstrap and main protocol
2014-11-09 14:51:49 -08:00
gau-veldt abc5286b8e server: create threads for new sessions
VERY evil code in standalone mode to kill the server thread on exit.
Needs something much cleaner.  Nuff said.
2014-11-09 10:58:34 -08:00