Commit Graph
100 Commits
Author SHA1 Message Date
Ian Gulliver eae1924c5c Fix corruption when we parse multiple packets form a single buffer. 2016-03-02 12:45:37 -08:00
Ian Gulliver 630d16451a Rename files to sensible names 2016-03-02 11:26:06 -08:00
Ian Gulliver 627a98c3b4 Merge branch 'master' of github.com:flamingcowtv/adsb-tools 2016-03-02 11:22:09 -08:00
Ian Gulliver d17bfaef6a AFL-discovered testcase files. 2016-03-02 11:21:52 -08:00
Ian Gulliver 761460886a Sync with upstream 2016-03-01 20:17:58 -08:00
Ian Gulliver adfc23cba7 Split out generic resolver functions. 2016-03-01 19:43:11 -08:00
Ian Gulliver 1a45e4361a Finally find a clean ownership solution for resolve(). 2016-02-29 22:37:41 -08:00
Ian Gulliver b6a582e95a Do flow-specific setsockopt() before accept() 2016-02-29 22:17:37 -08:00
Ian Gulliver a093b8a1b6 Switch from dup() + fcntl(F_SETFL, FD_CLOEXEC) to fcntl(F_DUPFD_CLOEXEC) to save a second syscall. 2016-02-29 22:03:04 -08:00
Ian Gulliver b106887617 Clean up file and hello messes. 2016-02-29 20:49:36 -08:00
Ian Gulliver 90de5b80bc Hide more interfaces behind the flow code. 2016-02-29 20:16:57 -08:00
Ian Gulliver 3fb3c02cf5 Encapsulate flow descriptions inside a struct. 2016-02-29 17:12:06 -08:00
Ian Gulliver 3539f9d640 Call less syscalls after each accept() 2016-02-29 15:22:10 -08:00
Ian Gulliver e44edeba53 A word 2016-02-28 23:07:02 -08:00
Ian Gulliver 2e9582d822 New feature addition. 2016-02-28 23:04:12 -08:00
Ian Gulliver d842ad65bb More limits to damage done by write <-> write and disconnected hsots. 2016-02-28 23:03:18 -08:00
Ian Gulliver 5c7bf0b395 If we get a write <-> write connection, don't waste space buffering data we won't use. 2016-02-28 22:50:26 -08:00
Ian Gulliver 49b6b0083b Fix misunderstanding of sendto(MSG_FASTOPEN) 2016-02-28 22:34:53 -08:00
Ian Gulliver aa11eea121 Move more socket code into socket.c 2016-02-28 22:21:07 -08:00
Ian Gulliver 669b289e84 Data flow hype 2016-02-28 21:49:29 -08:00
Ian Gulliver 31aa3fa9a3 Minor fixes 2016-02-28 21:44:21 -08:00
Ian Gulliver 8285011efd PR 2016-02-28 21:41:35 -08:00
Ian Gulliver a3d6adb73b Fix null node name for incoming socket. 2016-02-28 21:23:43 -08:00
Ian Gulliver 0b2a8469ce Formatting 2016-02-28 20:05:40 -08:00
Ian Gulliver 35d5a1f883 More formatting. 2016-02-28 20:05:02 -08:00
Ian Gulliver 31dd90fea2 Layout cleanup. 2016-02-28 20:03:25 -08:00
Ian Gulliver 68fbe187b1 More protocol docs. 2016-02-28 19:59:04 -08:00
Ian Gulliver 5f99768ab3 Update build instructions. 2016-02-28 19:49:06 -08:00
Ian Gulliver 388741d3e0 Proto definition. 2016-02-28 19:16:13 -08:00
Ian Gulliver 1c9eec7cf7 Minor cleanups. 2016-02-28 19:02:12 -08:00
Ian Gulliver 4f9d9af660 JSON protocol description start. 2016-02-28 18:56:37 -08:00
Ian Gulliver 05a67df06f Clearer language about hex string lengths. 2016-02-28 18:36:12 -08:00
Ian Gulliver 6bee996d5a Trace children in valgrind. 2016-02-28 15:58:11 -08:00
Ian Gulliver 58a8576da8 Add --exec-{send,receive} 2016-02-28 15:53:55 -08:00
Ian Gulliver 29d0b33161 Set FD_CLOEXEC after dup() 2016-02-28 13:15:12 -08:00
Ian Gulliver b9d179b957 Largefile support. 2016-02-28 13:11:32 -08:00
Ian Gulliver e86ea97671 --file-{read,write,append} 2016-02-28 13:08:04 -08:00
Ian Gulliver fdafe2e055 Convenience function for simple hello. 2016-02-28 12:45:00 -08:00
Ian Gulliver 161ea56d45 Corral the last setsockopt() call into one place. 2016-02-28 12:34:43 -08:00
Ian Gulliver 9e591904ac Better cleanup rule. 2016-02-27 22:55:48 -08:00
Ian Gulliver 98c1a5c458 Fix length tracking for parsing. 2016-02-27 22:53:57 -08:00
Ian Gulliver 0e35f24476 Line endings and byte count clarification. 2016-02-27 22:50:56 -08:00
Ian Gulliver b183cd9904 More spiffy test rule stuff. 2016-02-27 22:46:54 -08:00
Ian Gulliver 86a3a64be6 Add make test rule. 2016-02-27 22:44:19 -08:00
Ian Gulliver 4414337f2e Move fuzz script into makefile. 2016-02-27 22:25:25 -08:00
Ian Gulliver c79beb441f Same math problem in parsing. 2016-02-27 22:21:09 -08:00
Ian Gulliver 31d11a63bd New test cases. 2016-02-27 22:19:14 -08:00
Ian Gulliver 66d21dcad9 Bad math calculating overlay start. 2016-02-27 22:19:02 -08:00
Ian Gulliver 4237f4f8c0 Segfault in serialize code. 2016-02-27 22:11:28 -08:00
Ian Gulliver 153544c8b2 Fix crash sending protocols without a greeting. 2016-02-27 22:03:56 -08:00
Ian Gulliver 4f0b2c82e9 Write header to stdout target. 2016-02-27 21:56:37 -08:00
Ian Gulliver 92334724f0 Add mode AC handling, and clean up the parsers and serializers to avoid duplication. 2016-02-27 21:50:15 -08:00
Ian Gulliver b7e32d1b48 Change proto protocol so the whole stream is also decodable as a proto. 2016-02-27 19:14:04 -08:00
Ian Gulliver 071613d061 Use static greeting buffers. 2016-02-27 16:23:26 -08:00
Ian Gulliver 8d9b40e954 Minor hello cleanups. 2016-02-27 12:48:01 -08:00
Ian Gulliver 2c5b6419d6 Working TCP fastopen for connect-send. 2016-02-27 12:41:56 -08:00
Ian Gulliver 79fc645fa0 Start of fastopen support. 2016-02-27 10:12:48 -08:00
Ian Gulliver 675fb51282 More afl fixes. 2016-02-26 23:36:05 -08:00
Ian Gulliver c315de6354 JSON: check the source id, not the server id. 2016-02-26 21:14:28 -08:00
Ian Gulliver 7d83d122df Fix server_id overflow due to utf8 blowup in json. 2016-02-26 20:58:23 -08:00
Ian Gulliver d6cb3afd9d Centralize packet sanity checks, and bound one value that was overflowing. 2016-02-26 14:55:43 -08:00
Ian Gulliver 207cd1e3a1 Add fuzzing script. 2016-02-26 14:34:53 -08:00
Ian Gulliver a9cfb590e1 Fix some messy shutdown. 2016-02-26 14:31:35 -08:00
Ian Gulliver 8ed1f152a6 Support both types of line endings in airspy_adsb. Fix a bug in raw line ending handling that could delay packets. 2016-02-26 14:18:28 -08:00
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