Commit Graph
100 Commits
Author SHA1 Message Date
Benjamin Sergeant b8c397e180 add ws_chat and ws_connect sub commands to ws 2019-02-22 20:49:26 -08:00
Benjamin Sergeant 90105fa2b3 all CMakeLists are referenced by the top level one 2019-02-21 22:21:29 -08:00
Benjamin Sergeant 24859fef8a add target for building with homebrew 2019-02-21 22:05:30 -08:00
Benjamin SergeantandGitHub 73d7280723 Feature/ws cli (#15)
* New command line tool for transfering files / still very beta.

* add readme

* use cli11 for argument parsing

* json -> msgpack

* stop using base64 and use binary which can be stored in message pack
2019-02-21 21:24:53 -08:00
Benjamin SergeantandGitHub 262de49c3c Update README.md
Add note about message fragmentation.
2019-02-21 14:08:27 -08:00
Benjamin SergeantandGitHub 3a77e96a05 Feature/send large message (#14)
* introduce send fragment

* can pass a fin frame

* can send messages which are a perfect multiple of the chunk size

* set fin only for last fragment

* cleanup

* last fragment should be of type CONTINUATION

* Add simple send and receive programs

* speedups receiving + better way to wait for thing

* receive speedup by using linked list of chunks instead of large array

* document bug

* use chunks to receive data

* trailing spaces
2019-02-20 18:59:07 -08:00
Benjamin Sergeant 505dd6d50f document bug 2019-02-16 10:33:37 -08:00
Benjamin Sergeant 3f8027b65c unittest for sending large messages 2019-02-16 10:32:02 -08:00
Benjamin SergeantandGitHub 0f2c765f45 Update formatting in README.md 2019-02-05 23:04:45 -08:00
Benjamin Sergeant 49077f8f44 more conf in CI 2019-01-29 17:50:19 -08:00
Benjamin Sergeant 6a23b8530f get free port that can be used by non root users (> 1024) 2019-01-28 15:24:19 -08:00
Benjamin Sergeant ae841af91a use dynamically generated port number to configure servers in unittest 2019-01-28 15:24:19 -08:00
Benjamin SergeantandGitHub 44f38849b2 Merge pull request #13 from machinezone/user/bsergeant/poll
User/bsergeant/poll
2019-01-27 10:47:38 -08:00
Benjamin Sergeant ee12fbdb5f windows build fix 2019-01-27 10:46:02 -08:00
Benjamin Sergeant 316c630830 constexpr to declare number of fds 2019-01-26 21:01:36 -08:00
Benjamin Sergeant 1ea5db6110 linux fix 2019-01-26 20:57:48 -08:00
Benjamin Sergeant 986d9a00c0 remove shutdown call 2019-01-26 20:54:23 -08:00
Benjamin Sergeant 7a05a11014 rebase poll branch 2019-01-26 20:50:25 -08:00
Benjamin Sergeant f09434263c insensitive string compare when validating server connection header 2019-01-25 16:17:51 -08:00
Benjamin SergeantandGitHub 335f594165 Merge pull request #12 from machinezone/user/bsergeant/heart-beat
Add an optional heartbeat
2019-01-25 16:14:28 -08:00
Benjamin Sergeant fa7ef06f4d heartbeat correct 2019-01-25 16:11:39 -08:00
Benjamin Sergeant 3c9ec0aed0 close server socket on exit 2019-01-24 21:16:32 -08:00
Benjamin Sergeant c665d65cba unittest fix 2019-01-24 19:54:10 -08:00
Benjamin Sergeant 5d4e897cc4 add an heartbeat test 2019-01-24 18:50:07 -08:00
Benjamin Sergeant 05033714bf hearbeat 2019-01-24 12:42:49 -08:00
Benjamin SergeantandGitHub a02bd3f25c Update README.md 2019-01-15 09:36:43 -08:00
Benjamin Sergeant fdbd213fa2 check and validate the Connection: Upgrade header in client/server 2019-01-15 09:31:37 -08:00
Benjamin SergeantandGitHub da64d349c8 Merge pull request #10 from tonylin0826/master
Fix missing "Upgrade" header error
2019-01-15 09:22:11 -08:00
Benjamin Sergeant 79dd766fab C++14 + use make_unique and make_shared to make shared pointers 2019-01-11 21:25:06 -08:00
Benjamin Sergeant 8375b28747 add travis badge 2019-01-08 10:13:23 -08:00
Benjamin Sergeant e12551f309 travis -> osx 2019-01-08 10:04:47 -08:00
Benjamin Sergeant 6102f81710 Revert "Revert "try asan on Linux"" [Back to asan on Linux]
This reverts commit 02a704a8c7.
2019-01-07 21:13:48 -08:00
Benjamin Sergeant 9f678e5962 travis-ci: try to use clang on Linux 2019-01-07 20:49:03 -08:00
Benjamin Sergeant 02a704a8c7 Revert "try asan on Linux"
This reverts commit dd2360ed70.
2019-01-07 20:47:25 -08:00
Benjamin Sergeant dd2360ed70 try asan on Linux 2019-01-07 18:29:44 -08:00
Benjamin Sergeant c4ab996470 build with osx on travis 2019-01-07 18:16:29 -08:00
Benjamin Sergeant 6c54b07d92 fix simple compile error in test/IXTest.h 2019-01-07 18:08:11 -08:00
Benjamin Sergeant 7f9bef3b8d add a travis file for real 2019-01-07 18:05:55 -08:00
Benjamin Sergeant 12d1c5d956 add a travis file 2019-01-07 18:04:28 -08:00
Benjamin Sergeant e9a4bd5617 update test remote ws url 2019-01-07 11:28:53 -08:00
Benjamin Sergeant f34ccbfdb5 remove cmake sanitizer submodule 2019-01-07 11:26:23 -08:00
Benjamin Sergeant 1fa75d7fb2 check select errors better 2019-01-07 11:18:00 -08:00
Benjamin Sergeant 39140ef98c sanitizer cmake stuff 2019-01-06 18:54:16 -08:00
Benjamin Sergeant e30ef4a87c DNSLookup _id member does not need to be an atomic 2019-01-06 18:32:19 -08:00
Benjamin Sergeant 9fc94f0487 DNSLookup: fix #8 2019-01-06 18:27:26 -08:00
Benjamin Sergeant 121acdab6f DNSLookup: copy hostname and port instead of accessing member 2019-01-06 18:17:12 -08:00
Benjamin Sergeant 6deaa03114 return false -> return -1 2019-01-06 18:10:39 -08:00
Benjamin Sergeant f4f30686c5 add new unittest 2019-01-06 15:14:13 -08:00
Benjamin Sergeant a21aae521f remove dead file 2019-01-06 14:26:11 -08:00
Benjamin Sergeant aed2356fc1 remove openssl testing bits for apple build 2019-01-06 14:21:49 -08:00
Benjamin Sergeant a478f734f6 gcc linux compile fix 2019-01-06 12:12:39 -08:00
Benjamin Sergeant 98c579da03 make a class hierarchy for server code (IXWebSocketServer <- IXSocketServer) 2019-01-06 12:09:31 -08:00
Benjamin Sergeant e80def0cd0 add log 2019-01-05 21:16:13 -08:00
Benjamin Sergeant cc8a9e883e unittest + compiler warnings 2019-01-05 21:10:08 -08:00
Benjamin Sergeant 4d587e35d8 windows compile fix 2019-01-05 21:02:55 -08:00
Benjamin Sergeant 50f4fd1115 int -> ssize_t for socker recv and send 2019-01-05 20:53:50 -08:00
Benjamin Sergeant 06d2b68696 header refactoring 2019-01-05 20:38:43 -08:00
Benjamin Sergeant bf6f057777 windows connect (compile fix) 2019-01-05 17:35:50 -08:00
Benjamin Sergeant b57c1d69f2 windows connect potential fix 2019-01-05 17:32:21 -08:00
Benjamin Sergeant ff265d83f9 more accurate description of errors 2019-01-05 17:18:43 -08:00
Benjamin Sergeant 5b1c97b774 SocketTest / more debug info 2019-01-05 17:10:01 -08:00
Benjamin Sergeant c8c81366f7 windows (compile) fix 2019-01-05 17:04:09 -08:00
Benjamin Sergeant 9a37fd56d1 windows fix 2019-01-05 17:02:39 -08:00
Benjamin Sergeant 7ecaff8c5d test failure is not noticed 2019-01-05 16:30:22 -08:00
Benjamin Sergeant e4b0286a25 fix gcc warning 2019-01-05 16:26:11 -08:00
Benjamin Sergeant 7ae6972306 makefile tweak 2019-01-05 14:43:21 -08:00
Benjamin Sergeant 59cea0372b add dns lookup test 2019-01-05 14:40:17 -08:00
Benjamin Sergeant 78d88a8520 openssl cleanup 2019-01-05 11:42:25 -08:00
Benjamin SergeantandGitHub 273af25d57 Merge pull request #7 from bsergean/user/bsergeant/appveyor_first
unittest on appveyor
2019-01-04 17:29:23 -08:00
Benjamin Sergeant 3f5935a284 windows fixes 2019-01-04 15:23:57 -08:00
Benjamin SergeantandGitHub c236ff66e9 Merge pull request #6 from machinezone/user/bsergeant/server
Add support for writing websocket servers (IXWebSocketServer)
2019-01-03 18:47:30 -08:00
Benjamin Sergeant af3df5e519 Socket::readLine works with arbitrary long lines 2019-01-03 18:47:01 -08:00
Benjamin Sergeant d75753ec98 timeout is configurable 2019-01-03 18:33:08 -08:00
Benjamin Sergeant 332bb87231 remove useless FIXME comment 2019-01-03 18:02:03 -08:00
Benjamin Sergeant 8adbcab441 new doc 2019-01-03 18:00:48 -08:00
Benjamin Sergeant 9bc2e95196 capture path/uri when connecting, and pass it back through callbacks in the openInfo member 2019-01-03 17:44:10 -08:00
Benjamin Sergeant 30a0aa0a0f implement a max connections (default = 32) settings 2019-01-03 17:05:44 -08:00
Benjamin Sergeant 8622ea5cb2 correct validation of the request (request line + headers) 2019-01-03 13:41:06 -08:00
Benjamin Sergeant ed3a50d9b5 cancellation refactoring 2019-01-03 12:53:44 -08:00
Benjamin Sergeant df6a17dcc2 rename test file 2019-01-02 21:59:06 -08:00
Benjamin Sergeant 474985e784 split handshake code into its own files, so that Transport file is less massive 2019-01-02 20:07:54 -08:00
Benjamin Sergeant cb904416c3 server unittest for validating client request / new timeout cancellation handling (need refactoring) 2019-01-02 16:08:32 -08:00
Benjamin Sergeant 3e064ec63e add new broadcast server example 2019-01-02 08:17:03 -08:00
Benjamin Sergeant b004769552 server per message deflate support 2019-01-02 08:12:29 -08:00
Benjamin Sergeant 17270de621 echo server example is a real echo server, not a broadcast server 2019-01-02 08:10:39 -08:00
Benjamin Sergeant 239b5bc02c refactoring + cancellation was buggy during http upgrade 2019-01-02 07:45:07 -08:00
Benjamin Sergeant 6bfabd5493 use select to detect new incoming connections 2019-01-01 22:21:07 -08:00
Benjamin Sergeant 0b90f7df1b add a way to run in blocking more, which is useful for server mode to have N*thread instead of 2N*thread for N connections 2019-01-01 21:25:15 -08:00
Benjamin Sergeant 00ca7c8fb0 more named constants 2019-01-01 19:23:27 -08:00
Benjamin Sergeant a11952fe22 gitignore stuff 2019-01-01 17:14:31 -08:00
Benjamin Sergeant 06b9b2e649 linux fix + unittest works with Linux 2019-01-01 17:13:26 -08:00
Benjamin Sergeant dcfdcc3e1b unittest starts a server 2019-01-01 16:34:05 -08:00
Benjamin Sergeant b13fee16c1 crash when server failed to start 2019-01-01 16:14:46 -08:00
Benjamin Sergeant 9a7767ecb1 thread accepting connections can be cancelled/stopped externally 2019-01-01 16:11:27 -08:00
Benjamin Sergeant 9b82a33aff listen job run in its own thread, non blocking 2019-01-01 14:52:14 -08:00
Benjamin Sergeant 70ef77a5d5 (nitpick) reformat 2019-01-01 14:29:57 -08:00
Benjamin Sergeant 77903e9d90 cleanup / remove printf, add mutex, remove hardcoded values, can pass in a binding host 2019-01-01 14:28:41 -08:00
Benjamin Sergeant de66a87a7c use shared_ptr 2019-01-01 13:53:13 -08:00
Benjamin Sergeant 5ea2028c22 unittest pass 2019-01-01 13:47:25 -08:00
Benjamin Sergeant 58a68ec0be record workers in a map instead of a vector 2018-12-31 14:52:59 -08:00