Commit Graph

58 Commits

Author SHA1 Message Date
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
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