Commit Graph

70 Commits

Author SHA1 Message Date
Ian Gulliver e3a372e1ea Hex parsing hardening. 2016-02-26 14:09:37 -08:00
Ian Gulliver e89d30af24 Two more AFL source files. 2016-02-26 13:57:12 -08:00
Ian Gulliver 9f5ad1518a Fixes from american fuzzy lop testing. 2016-02-26 13:56:52 -08:00
Ian Gulliver 8d9a11076b Add an always trigger list, so we can handle non-socket IO properly. 2016-02-26 11:12:45 -08:00
Ian Gulliver 680cce544f Centralized list implementation. 2016-02-26 10:30:18 -08:00
Ian Gulliver 7e91e3e21d Add some test cases for the plain-text formats. 2016-02-25 23:55:53 -08:00
Ian Gulliver d985503e8b Avoid default behavior of make. 2016-02-25 23:47:33 -08:00
Ian Gulliver 19a9d498bd Enable -Weverything, fix a ton of bugs. 2016-02-25 23:37:37 -08:00
Ian Gulliver fe2486c398 Enable shadow warnings, fix one case. 2016-02-25 21:24:10 -08:00
Ian Gulliver 092764bf7e Fix send behavior, again, to not use read as a proxy for write. 2016-02-25 21:22:59 -08:00
Ian Gulliver 2ff838a0f1 Expect sockets always. 2016-02-25 17:33:14 -08:00
Ian Gulliver 99882bc5c7 Enable socket keepalives. 2016-02-25 17:27:07 -08:00
Ian Gulliver 3235211bc2 More sensible cleanup ordering. 2016-02-25 16:48:51 -08:00
Ian Gulliver 3155381678 Shut down if we run out of inputs or outputs. 2016-02-25 16:33:58 -08:00
Ian Gulliver a9dc7c25db Switch back to write(), since we have non-sockets. 2016-02-25 16:33:47 -08:00
Ian Gulliver 5e604f0596 In/out reference counting. 2016-02-25 16:17:25 -08:00
Ian Gulliver aa940137c1 Move proto into its own dir. 2016-02-25 15:22:57 -08:00
Ian Gulliver 3816be8b3d Fix leak of second+ receive/send object. 2016-02-25 15:17:45 -08:00
Ian Gulliver 4f14845c75 Rename --dump to --stdout. Add --stdin. 2016-02-25 15:12:16 -08:00
Ian Gulliver 46fd0c3c8b Tear down resolver before others. 2016-02-25 11:57:23 -08:00
Ian Gulliver 6f082ecf32 Use send(MSG_NOSIGNAL) instead of write() in one other place. 2016-02-25 11:56:51 -08:00
Ian Gulliver b4171c971a Avoid double call of send_del() on write failure and from epoll loop. 2016-02-24 21:30:39 -08:00
Ian Gulliver a408ddba2d Switch from shutdown(SHUT_RD) to EPOLLIN to detect send <-> send misconfigurations. 2016-02-24 21:21:14 -08:00
Ian Gulliver 4a83b453bb Ask for SIGPIPE not to be sent, instead of ignoring it. 2016-02-24 20:28:48 -08:00
Ian Gulliver 3e2c426e95 Fix --connect-send. Half-close connections so we can detect two read sockets talking to each other. 2016-02-24 20:25:31 -08:00
Ian Gulliver 1635534243 Switch from sketchy dup() juggling to callbacks to retry outgoing connection. 2016-02-24 20:15:09 -08:00
Ian Gulliver 63f5313b96 Set EPOLL_CLOEXEC 2016-02-23 22:24:03 -08:00
Ian Gulliver 025d14c6a6 Add framing to proto, since it isn't built in to protobuf. 2016-02-23 21:30:29 -08:00
Ian Gulliver c70886e55c Proto parsing working. 2016-02-23 19:46:42 -08:00
Ian Gulliver 4f48153d4f More proto parsing. 2016-02-23 16:43:36 -08:00
Ian Gulliver a33808cb33 Fix stats counting overflow. 2016-02-23 16:30:30 -08:00
Ian Gulliver 819518e402 Proto serialization support. 2016-02-23 16:13:11 -08:00
Ian Gulliver a98eeec91e Proto protocol structure. 2016-02-23 15:19:56 -08:00
Ian Gulliver 606a2029ee Clean up json parsing more, add a magic value just in case. 2016-02-23 14:27:54 -08:00
Ian Gulliver 6d7c236cb9 Clean up json parsing. 2016-02-23 13:56:54 -08:00
Ian Gulliver d2e521e90c json input support, some shutdown fixes. json needs cleanup. 2016-02-23 13:49:23 -08:00
Ian Gulliver 07d273236d Fix endless loop inside incoming handler. 2016-02-23 12:31:48 -08:00
Ian Gulliver 49edb43232 Close stdout and stderr before exit, to make valgrind output easier reading. 2016-02-23 12:11:07 -08:00
Ian Gulliver ab6b8cd5e9 Track and clean up receive objects. 2016-02-23 12:08:53 -08:00
Ian Gulliver 77ee1422c1 Sprinkle CLOEXEC around. 2016-02-23 12:00:17 -08:00
Ian Gulliver f676cc531a Fix fd leak. 2016-02-23 11:57:40 -08:00
Ian Gulliver 289dcdbb54 Change resolution to use a single resolve thread, and to clean up after itself. 2016-02-23 11:53:17 -08:00
Ian Gulliver c6a2150a7d Initial pass at async resolving. This is ugly and leaks memory and I hate it, so dedicated thread incoming. 2016-02-23 10:46:40 -08:00
Ian Gulliver ebdb3f9dc0 Pass source ID through to JSON output. 2016-02-22 22:00:49 -08:00
Ian Gulliver bccdc212f2 More info in JSON header. 2016-02-22 21:55:45 -08:00
Ian Gulliver bc9219b4a8 Split server out. 2016-02-22 21:53:25 -08:00
Ian Gulliver c6e1eb9d42 Switch stats to use CLOCK_MONOTONIC_COARSE 2016-02-22 16:59:42 -08:00
Ian Gulliver 2ce2ed5bf5 Split out packet. Delete common. 2016-02-22 16:58:13 -08:00
Ian Gulliver b5ab0cb0a6 Split out peer 2016-02-22 16:49:43 -08:00
Ian Gulliver b5219d9c1a Split out buf 2016-02-22 16:41:34 -08:00