Commit Graph
100 Commits
Author SHA1 Message Date
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
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
Ian Gulliver f36642b823 Split out hex 2016-02-22 16:36:27 -08:00
Ian Gulliver 21536eee33 Move retry delay calculation into wakeup, since it's only used there. 2016-02-22 16:33:00 -08:00
Ian Gulliver d6a629fa7e Switch to an internal implementation of uuid generation, so we can use the randomness pool. 2016-02-22 16:27:44 -08:00
Ian Gulliver d03590439f Pool randomness. 2016-02-22 14:57:27 -08:00
Ian Gulliver 16685b8d05 Split out rand 2016-02-22 14:45:18 -08:00
Ian Gulliver f255170967 Move wakeup into the main thread to remove complexity. Looks like CLOCK_MONOTONIC_COARSE doesn't need a syscall. 2016-02-22 14:37:00 -08:00
Ian Gulliver 70cfaa94aa Human time for max backoff 2016-02-21 16:57:42 -08:00
Ian Gulliver a48c4a24f5 Avoid a spinloop waiting for zero ms. 2016-02-21 16:55:31 -08:00
Ian Gulliver c5a87e89a4 Restore airspy_adsb 2016-02-21 16:52:36 -08:00
Ian Gulliver d48016fecb Apparently not deprecated. 2016-02-21 16:48:34 -08:00
Ian Gulliver 8f36ad0db8 Wakeup/delay fixes, and actually add retries for incoming and outgoing. 2016-02-21 16:47:27 -08:00
Ian Gulliver 835a144d6e Genericize the rand code. 2016-02-21 15:56:07 -08:00
Ian Gulliver 6384e0f20d Wakeup actually working (probably), add delay calculator. 2016-02-21 15:51:38 -08:00
Ian Gulliver ec79ba0da1 Much closer to complete cleanup before exit. 2016-02-21 13:57:35 -08:00
Ian Gulliver 71413f97e5 More structure for wakeup. 2016-02-20 23:56:40 -08:00
Ian Gulliver 0e8dd4007c Factor out more common code in opts parsing. 2016-02-20 23:31:57 -08:00
Ian Gulliver 9df778a88a Factor out opts parsing, clean up shutdown. 2016-02-20 23:22:00 -08:00
Ian Gulliver fe5fa29abf Explain line endings and naming in raw doc. 2016-02-18 17:07:48 -08:00
Ian Gulliver ec4ac3df3a Support multiple line endings in raw format. 2016-02-18 17:06:20 -08:00
Ian Gulliver bca84394ce Remove airspy_adsb, as it's no longer used by upstream 2016-02-18 17:00:33 -08:00
Ian Gulliver 52ce6767c0 Style 2016-02-18 16:59:04 -08:00
Ian Gulliver 0b9e9fe8f0 Mark airspy_adsb deprecated 2016-02-18 16:58:35 -08:00
Ian Gulliver 11eeb26b9a Detect timestamp regression. 2016-02-18 10:45:04 -08:00
Ian Gulliver e3cd9d4b36 Newline after output 2016-02-18 10:22:42 -08:00
Ian Gulliver 2024bdc880 Add simple lib, utility to check mhz. 2016-02-18 10:10:47 -08:00
Ian Gulliver 4ca9fbeb4a Move gitignore into subdir. 2016-02-18 09:37:53 -08:00
Ian Gulliver cf6eef6118 Move adsbus into its own dir. 2016-02-18 09:36:53 -08:00
Ian Gulliver 6ac29e9704 Start of wakeup framework. 2016-02-18 09:33:32 -08:00
Ian Gulliver 820d5d6192 Switch to more consistently setting sockets non-blocking. 2016-02-17 22:22:14 -08:00
Ian Gulliver 4398deb2d4 Working model for triggering reconnects on outgoing connections. 2016-02-17 22:14:04 -08:00
Ian Gulliver ff1a77f22b Stop disconnecting send clients if we get data from them. 2016-02-17 22:00:05 -08:00
Ian Gulliver 1bc8d49d38 Implement airspy_adsb send support. 2016-02-17 21:53:34 -08:00
Ian Gulliver 236f058654 Stop trying to filter incoming blank RSSI; it looks the same as real data. 2016-02-17 21:53:08 -08:00
Ian Gulliver 83f95ca252 Minor help text fix. 2016-02-17 20:15:56 -08:00
Ian Gulliver 3801b2c9ce Raw send support. 2016-02-17 20:14:44 -08:00
Ian Gulliver 7d39421966 Clarify some log messages. 2016-02-17 18:02:56 -08:00
Ian Gulliver 44cb3fb122 Beast send support. 2016-02-17 18:01:39 -08:00
Ian Gulliver 5671f37f8a Split backend and outgoing. Rename backend -> receive, client -> send. 2016-02-17 17:19:57 -08:00