Commit Graph

365 Commits

Author SHA1 Message Date
Joe Bryan
85f8b10ca7 fixes memory leak on proxy reverse connection failure 2018-06-15 14:16:17 -04:00
Joe Bryan
b59bdb217c fixes use-after-free on proxy reverse connection failure 2018-06-15 14:16:17 -04:00
Joe Bryan
8835510aeb refactors proxy server startup to better handle EADDRINUSE 2018-06-15 14:16:17 -04:00
Joe Bryan
5dfb51b1dd updates SNI parsing to not fail on valid ClientHello without SNI 2018-06-15 14:16:17 -04:00
Joe Bryan
55b7b30329 refactors proxy peek parsing, again 2018-06-15 14:16:17 -04:00
Joe Bryan
12da824716 refactors libuv read_cb error handling, adds _proxy_write() 2018-06-15 14:16:17 -04:00
Joe Bryan
84b1dd7628 connection close debugging, TODO comments 2018-06-15 14:16:17 -04:00
Joe Bryan
52503a2add updates proxy to always allocate 4K buffers on socket read 2018-06-15 14:16:17 -04:00
Joe Bryan
ad424fcbda binds proxies on ports 80/443, or 9090/9443 then ascending 2018-06-15 14:16:17 -04:00
Joe Bryan
06259e2d7d adds SNI parser (commented out pending build decision) 2018-06-15 14:16:17 -04:00
Joe Bryan
fb8b24259a refactors proxy peeking to support multiple reads 2018-06-15 14:16:17 -04:00
Joe Bryan
e2565e4b87 refactors proxy peek parsing 2018-06-15 14:16:17 -04:00
Joe Bryan
40f7e683fc refactors proxy listener startup to support multiple 2018-06-15 14:16:17 -04:00
Joe Bryan
7dcf91e689 removes the upstream/downstream read_cb buffer copies 2018-06-15 14:16:17 -04:00
Joe Bryan
040e162176 checks return code on uv_tcp_connect 2018-06-15 14:16:17 -04:00
Joe Bryan
90603f5bbb copies read_cb buffers before writes 2018-06-15 14:16:17 -04:00
Joe Bryan
eeb0536ab9 wires up reverse proxy notification effect %that
works!
2018-06-15 14:16:17 -04:00
Joe Bryan
9c08361cf8 use domain from -H instead of hardcoding urbit.org 2018-06-15 14:16:17 -04:00
Joe Bryan
f9618b1587 adds client for ship-specific reverse proxy, comments throughout 2018-06-15 14:16:17 -04:00
Joe Bryan
4792466ed5 implements reverse listener and "should-proxy" predicate, refactors loopback 2018-06-15 14:16:17 -04:00
Joe Bryan
2eb44fd326 adds http request parser for host header 2018-06-15 14:16:17 -04:00
Joe Bryan
65ac6dd5e0 refactors loopback proxy and connection structs, corrects close/free lifecycle 2018-06-15 14:16:17 -04:00
Joe Bryan
3c24756d28 looks up the correct loopback port by server struct 2018-06-15 14:16:17 -04:00
Joe Bryan
e1b5ab35cd adds proxy listener and connection structs, refactors loopback proxy 2018-06-15 14:16:17 -04:00
Joe Bryan
c4928a7f3b adds initial, leaky tcp loopback proxy 2018-06-15 14:16:17 -04:00
Joe Bryan
59a049b170 removes tabs from http.c 2018-06-11 10:41:48 -04:00
Joe Bryan
0f80535867 removes orphaned telnet constants and forward declarations 2018-06-11 10:41:48 -04:00
Keaton Dunsford
41d89f30af Version the bootstrap.urbit.org boot pill URL
This way, between continuity breaches, we can update the old pills,
adding printf's to them that will trigger upon `~zod is not responding`
messages such as urbit/arvo@c83fb6e23e,
telling people to pull the latest Vere. And upon breaches, we
can update these bootstrap links. This is a simple/hacky yet reasonably
effective way to help get more people on the same page as it relates to
handling users running different Veres with breaking changes.
2018-06-08 19:26:29 -07:00
Paul Driver
da051310df Merge branch 'master' into hashboard 2018-06-04 14:15:53 -07:00
Joe Bryan
cfe3779fc0 updates ames to resolve galaxy addresses asynchronously 2018-05-22 15:05:03 -07:00
Joe Bryan
ad4f76a431 adds state enum to u3_hreq, ignores attempts to send duplicate http responses 2018-05-04 15:49:44 -04:00
Paul Driver
002a1d8996 Merge branch 'master' into c-sites 2018-04-30 11:48:53 -07:00
Paul Driver
b7e0dc4651 merge conflict 2018-04-30 11:42:24 -07:00
Joe Bryan
38f9c546c4
Merge pull request #972 from joemfb/ames-f-n
allows imperial addresses in the absence of -N (fix -F)
2018-04-25 14:45:00 -07:00
Joe Bryan
2b3554a845 refactors _http_req_respond to use the h2o memory pool and defer cleanup
possibly fixing a use after free
2018-04-25 16:14:59 -04:00
Joe Bryan
dcc5eb521d fixes memory leak in ames fuzz-mode canceled requests 2018-04-24 15:28:35 -04:00
Joe Bryan
4466119b2e allows imperial addresses in the absence of -N 2018-04-24 15:27:04 -04:00
Joe Bryan
2a10000a67 fixes improper null-termination in cttp header buffers 2018-04-16 15:14:49 -04:00
Joe Bryan
0588a3c7fd updates "secure server not started" msg to be friendlier 2018-04-11 13:57:14 -07:00
Joe Bryan
3ee0c7605c removes client request debug printf 2018-04-11 12:23:42 -07:00
Joe Bryan
70cb696559 terminates all strings in headers and body buffers 2018-04-10 17:04:21 -07:00
Joe Bryan
a62d59edf0 cleans up http headers, incorporate review feedback 2018-04-10 17:04:21 -07:00
Joe Bryan
05339a771e adds extra newline between headers and body 2018-04-10 12:55:44 -07:00
Joe Bryan
b745cb83bc updates cttp.c to allocate header struct and members separately 2018-04-10 12:55:44 -07:00
Joe Bryan
6c36594f6f Merge branch 'master' into libh2o
* master: (124 commits)
  use compile-time assertion to check for unsigned char
  Don't build libuv in travis if it is now submoduled.
  Rebuild the scripts without PKG_CONFIG_PATH hacks.
  Remove manual PKG_CONFIG_PATH configuration.
  Enable fallback libuv bundle
  Bundle libuv.
  adds a cell check for the sample of the +roll gate
  Add missing flags fixing the markdown parser bug #951
  Revert "Merge pull request #952 from eglaysher/revert-meson"
  Revert "Merge pull request #949 from eglaysher/meson-build-clean"
  Revert "The -C flag was added for exactly this case."
  The -C flag was added for exactly this case.
  Take ownership of the submodule repositories.
  Revert "Revert "Merge pull request #941 from frodwith/runtime-overflows""
  Add legacy meson instructions to README
  Fix new meson version check
  Fix legacy meson version detection.
  Universal meson build.
  change overflow check to short
  do the don trick for jam
  ...
2018-04-09 19:49:40 -07:00
Keaton Dunsford
87e28fb787
Merge pull request #953 from eglaysher/reapply-meson
Reapply meson
2018-04-09 19:14:55 -07:00
Joseph Bryan
2caa2bc6bd use compile-time assertion to check for unsigned char 2018-04-09 18:22:48 -07:00
Paul Driver
a61ed7df17 fix compile errors 2018-03-30 11:49:18 -07:00
Elliot Glaysher
0f09810dd7 Revert "Merge pull request #952 from eglaysher/revert-meson"
This reverts commit 9978ad8b72, reversing
changes made to a85369fa1f.
2018-03-20 10:16:16 -07:00
Elliot Glaysher
e6f6315691 Revert "Merge pull request #949 from eglaysher/meson-build-clean"
This reverts commit 9f795b535f, reversing
changes made to d5c7b3b932.
2018-03-19 15:13:19 -07:00
Elliot Glaysher
b9432b4d57
Merge pull request #930 from joemfb/sav-mkdirp
recursively mkdir in u3_walk_save
2018-03-19 14:36:57 -07:00
Elliot Glaysher
9f795b535f
Merge pull request #949 from eglaysher/meson-build-clean
Meson build clean
2018-03-19 11:14:53 -07:00
Joseph Bryan
a23d708dae reorder, rename, refactor, comment 2018-03-15 22:56:05 -04:00
Joseph Bryan
f4e60f604a cleans up server SSL_CTX, saves pointer on u3_Host 2018-03-15 22:55:51 -04:00
Joseph Bryan
419a634ad9 cleans up client SSL_CTX initialization 2018-03-14 17:02:06 -04:00
Joseph Bryan
63081c94e5 updates cancellation to properly handle async address resolution 2018-03-14 13:21:20 -04:00
Joseph Bryan
f6c0ec399f comments cttp.c for functions duplicated from http.c 2018-03-14 13:21:20 -04:00
Joseph Bryan
234ef5d109 replaces local h2hed struct with updated u3_hhed in http.c 2018-03-14 13:21:15 -04:00
Joseph Bryan
828c73c7e9 adds nam_w and val_w to u3_hhed, updates cttp appropriately 2018-03-14 13:21:10 -04:00
Joseph Bryan
cf47c0a2b8 implements request cancellation, cleans up success/failure handling 2018-03-14 11:33:59 -04:00
Joseph Bryan
221207053d resolves ip addresses explicitly, enables https requests 2018-03-14 11:33:58 -04:00
Joseph Bryan
a0bf822036 attaches response headers 2018-03-14 11:33:58 -04:00
Joseph Bryan
09585f73a9 switches cttp to be request-oriented, removes u3_ccon and jhttp
still buggy
2018-03-14 11:33:53 -04:00
Joseph Bryan
157fc2c7bb sends cttp responses to %eyre (buggy) 2018-03-12 21:09:38 -04:00
Joseph Bryan
97caea778b ghetto libh2o client 2018-03-12 21:09:37 -04:00
Joseph Bryan
50b06e1ec6 sets Server header to urbit/vere-$VERSION 2018-03-12 21:09:37 -04:00
Joseph Bryan
01bedc86f5 moves openssl init and prng seeding to main.c 2018-03-12 12:19:00 -04:00
Joseph Bryan
27da6091ea prints libh2o version in urbit -R 2018-03-12 12:10:23 -04:00
Joseph Bryan
04dde536f9 makes pointer sanity-check safe for tls, removes unnecessary malloc 2018-03-12 12:01:29 -04:00
Joseph Bryan
c01609b290 disables automatic chunked transfer-encoding
by setting content-length before start_response
2018-03-08 15:28:47 -05:00
Shaun Kerr
9592f0315d Updated key generation message. Fixes #876 2018-03-06 13:39:21 +13:00
Joseph Bryan
4222bd24fb generalizes _http_rec_fail 2018-03-05 13:40:23 -05:00
Joseph Bryan
0a74b9d272 adds pointer sanity check to struct cast in _http_rec_accept 2018-03-05 13:40:23 -05:00
Joseph Bryan
a3a7bd9f97 switches to stack allocation in _http_vec_from_octs 2018-03-05 13:40:17 -05:00
Joseph Bryan
40a588889c refactor, reorder, rename 2018-03-05 10:36:35 -05:00
Joseph Bryan
159d586e67 writes only successfully started servers to .http.ports 2018-03-05 10:36:35 -05:00
Joseph Bryan
a0b19f125f cleanup 2018-03-05 10:36:35 -05:00
Joseph Bryan
54fcac2b92 asan fix: initialize host before linking config to accept_ctx
and adds hostname(s) TODO
2018-03-05 10:36:34 -05:00
Joseph Bryan
fdafc30ee8 set HTTP response content length 2018-03-05 10:36:34 -05:00
Joseph Bryan
2f5623c3d4 skip starting secure server if no tls 2018-03-05 10:36:34 -05:00
Joseph Bryan
75b027bdd7 makes h2o_globalconf_t per server in u3_http 2018-03-05 10:36:34 -05:00
Joseph Bryan
c7b7a5fb17 refactors _http_respond() 2018-03-05 10:36:34 -05:00
Joseph Bryan
0451ebc81c print unknown request methods (debug only) 2018-03-05 10:36:34 -05:00
Joseph Bryan
d8c16add85 print error on uv_listen failure 2018-03-05 10:36:34 -05:00
Joseph Bryan
5f843afb65 bail on massive octs (??) 2018-03-05 10:36:34 -05:00
Joseph Bryan
f74c20473d updates vere.h with new server/connection/request structs 2018-03-05 10:36:33 -05:00
Joseph Bryan
79a13059bd cleanup from review 2018-03-05 10:36:33 -05:00
Joseph Bryan
9693794afc ghetto tls 2018-03-05 10:36:33 -05:00
Joseph Bryan
86ec59f86d start all 3 servers 2018-03-05 10:36:33 -05:00
Joseph Bryan
d2edbb116d perhaps we should pass the query parameters ... 2018-03-05 10:36:33 -05:00
Joseph Bryan
f62a117741 restore host header to make %eyre happy 2018-03-05 10:36:33 -05:00
Joseph Bryan
6a9e13eb79 adds real %eyre integration, removes jhttp 2018-03-05 10:36:33 -05:00
Joseph Bryan
24dd4e92ac stop leaking headers 2018-03-05 10:36:33 -05:00
Joseph Bryan
ed8c902b4a refactors meth 2018-03-05 10:36:33 -05:00
Joseph Bryan
18c4f09bcc ghetto eyre integration works! (errs in ++emule) 2018-03-05 10:36:32 -05:00
Joseph Bryan
28022ddca8 refactors response headers 2018-03-05 10:36:32 -05:00
Joseph Bryan
79fa28df98 better names 2018-03-05 10:36:32 -05:00
Joseph Bryan
fbfb1c4186 print ip 2018-03-05 10:36:32 -05:00
Joseph Bryan
e65fa24fca adds trivial libh2o integration 2018-03-05 10:36:32 -05:00
Joseph Bryan
ebbbf6cf0c recursively mkdir in u3_walk_save 2018-03-02 17:39:08 -05:00
mikolajp
4ba14cb4bc Fix UV__* for new libuv 2018-02-25 16:02:18 +08:00
mikolajp
94ac10e29e Remove telnet. Remove batz 2018-02-25 14:12:44 +08:00
Steven Dee
35bbba7b28 Fix uv error code reference 2018-02-24 21:40:34 -05:00
cgyarvin
91f2eaadaf
Merge pull request #919 from urbit/ames-straitjacket
Enforce -F / -N network options in Ames
2018-02-23 10:36:58 -08:00
cgyarvin
285c6d2ad2
Merge pull request #928 from joemfb/ctlc-pro
forwardports #813 (show prompt after ctrl-c)
2018-02-23 10:36:05 -08:00
Joseph Bryan
4db7eb4d60 maintains cursors position on %clr 2018-02-21 23:10:41 -05:00
Ted Blackman
c1725e2cf2 Prevent Ames from sending and receiving remote packets if remote networking is disabled 2018-01-29 12:03:37 -08:00
Ted Blackman
87e250e90f help text: added -N and removed -L 2018-01-29 10:21:46 -08:00
Joseph Bryan
23d878f0b8 show prompt after ctrl-c 2018-01-15 22:29:36 -05:00
Ted Blackman
49a3bc4ffa added -H ames bootstrap domain 2017-12-13 15:13:44 -08:00
Ted Blackman
ea2adb6e22 typo 2017-11-29 17:26:01 -08:00
Ted Blackman
9044de04cf Print out localhost-only message on ames init 2017-11-29 17:18:34 -08:00
Ted Blackman
48c98653a7 cool it with the 'ames: czar: localhost-only' messages 2017-11-29 17:13:42 -08:00
C. Guy Yarvin
057b866b17 Add terminal printers. 2017-11-08 14:37:39 -08:00
Ted Blackman
2a75beaf8e -L -> -N, allow remote networking in -F mode 2017-10-30 17:41:48 -07:00
Ted Blackman
4843234a78 check for -A 2017-10-30 03:43:03 -07:00
Ted Blackman
e852389fd2 -s pill from arvo's git hash and branch 2017-10-30 03:17:14 -07:00
Ted Blackman
bef3f128b4 _arvo_hash() function works 2017-10-27 17:12:57 -07:00
Ted Blackman
cda959fa26 tabs 2017-10-27 09:44:37 -07:00
Ted Blackman
ae142e0b07 better default behavior for -u; also, whitespace 2017-10-27 09:32:48 -07:00
Ted Blackman
36e775b938 -u <pill url> command-line option 2017-10-27 09:19:39 -07:00
Ted Blackman
721b048f42 more sorting 2017-10-27 09:17:19 -07:00
Ted Blackman
1a67685913 sort command-line options 2017-10-26 14:31:22 -07:00
Ted Blackman
67f8cae687 Verbose command-line help 2017-10-26 14:12:02 -07:00
Matthew Levan
4417b1c6fe *Removed* line 1521 to remove default header 2017-10-25 14:22:13 -07:00
Matthew Levan
e228dcd822 Commented out 1521 to remove default header 2017-10-25 14:06:36 -07:00
C. Guy Yarvin
9253613738 Let's not encrypt (because encryption is now in zuse). 2017-09-27 17:28:11 -07:00
C. Guy Yarvin
497b1ffb7f Fix crash when error delivery fails. 2017-07-27 15:27:53 -07:00
John Franklin
79f8e67a0c Call u3a_free() in _http_release_ports_file(). Addresses https://github.com/urbit/urbit/issues/835. 2017-06-27 06:02:08 -05:00
Raymond Pasco
311931d04a Merge branches 'u3x_hext' and 'andthus' into maint-0.4 2017-06-24 11:40:02 -04:00
C. Guy Yarvin
97ee2dcd22 Issue 504 to requester when socket breaks. 2017-06-24 11:39:15 -04:00
s-ol
531a4786f0 Suicide prevention with corrupt Lockfile 2017-04-04 16:19:10 +02:00
Raymond Pasco
39e8fa0216 Don't give up on trying to find czar IPs
If they're not found, "not found" has a 5 minute TTL - and if there was
already an IP for that czar, keep using it for 5 more minutes.
2016-12-16 12:12:50 -08:00
Raymond Pasco
b7036d60ca #define _WITH_DPRINTF for BSD systems 2016-12-13 05:43:53 -08:00
Raymond Pasco
c0b9da9eda _http_write_ports_file(): remove indirect C malloc 2016-12-13 05:32:23 -08:00
Raymond Pasco
f72515618f Remove stray debug printf 2016-12-12 15:43:15 -08:00
Raymond Pasco
187d844cad Merge branch 'back-http-ports' into maint-0.4
Backport of .http.ports feature
2016-12-12 15:06:49 -08:00
Raymond Pasco
5ab32ac055 Use assumed-secure for the "secure" port 2016-12-12 15:06:13 -08:00
Raymond Pasco
8535def3b2 Write .http.ports file 2016-12-12 15:06:13 -08:00
C. Guy Yarvin
cbfc627d17 Don't print czar ip unless it changes. 2016-11-01 12:58:48 -04:00
Raymond Pasco
3c86f46df5 Merge branches 'czar-expire' and 'version-scaffolding', remote-tracking branches 'joemfb/line-eating' and 'ohAitch/flag-g-generator'
Expire czar IPs after 5 minutes
Version number scaffolding for release
Fix line-munching term.c bug
Add -G to ease scripted creation of live galaxies
2016-10-25 11:02:59 -04:00
Raymond Pasco
6d2c60aa7a Version #define scaffolding 2016-10-25 10:54:00 -04:00
Raymond Pasco
d06bdd5ad1 Time out czar IPs after 5 minutes 2016-10-25 10:51:10 -04:00
Anton Dyudin
eb69bf45d2 fix -t error message 2016-10-24 17:23:43 -07:00
Anton Dyudin
3b1b0181ce add -G 0w-ca.rrier.-gene.rator flag 2016-10-24 11:56:44 -07:00
Joseph Bryan
2b9f103a0d updates _term_it_show_clear() to use ESC[K instead of ESC[J 2016-10-19 00:00:25 -04:00
Joseph Bryan
99dde17893 removes obsolete history-eating bug-fix from _term_it_show_clear() 2016-10-19 00:00:19 -04:00
Raymond Pasco
3400efdcea Remove redundant check for existing pier
that breaks non-galaxy startup...
2016-08-30 20:14:44 -04:00
Raymond Pasco
b8dcc5f17d Fetch pill from bootstrap site if not specified 2016-08-29 15:30:27 -04:00
Raymond Pasco
3434f2bd9c Move pier directory creation to beginning of boot
This is the smallest refactor that works.
2016-08-29 14:12:27 -04:00
Raymond Pasco
a7e32f3359 Add usage info for -A and -B options 2016-08-29 13:11:10 -04:00
Raymond Pasco
228b0fb20d Add -A option to locate initial galaxy sync files 2016-08-29 13:04:57 -04:00
Raymond Pasco
b03519f64f Delete giant commented-out mess mentioning U3_LIB
We have version control so we don't have to comment out things that
we've refactored into another function.

This is mainly to get rid of the false positive when I grep for U3_LIB.
2016-08-28 14:49:56 -04:00
Raymond Pasco
7291f72f59 Use pil_c rather than U3_LIB to boot pill 2016-08-28 13:12:49 -04:00
Raymond Pasco
25b2c007db Use pil_c rather than U3_LIB to copy pill 2016-08-28 13:12:34 -04:00
Raymond Pasco
1f8050aede Don't check U3_LIB for pills 2016-08-28 13:12:14 -04:00
Raymond Pasco
30f590c7a8 Remove unused u3_System global variable 2016-08-28 12:39:22 -04:00
Raymond Pasco
59cfe3303e Double entropy pool size 2016-08-11 10:22:26 -07:00
Raymond Pasco
983c2132ce Read in events only up to the last checkpoint 2016-08-03 17:30:28 -07:00
Raymond Pasco
a05a424053 Merge remote-tracking branches 'asgardiator/master', 'cgyarvin/slowcheck', 'joemfb/meta-keys' and 'philipcmonk/link-fix'
Update reference to urbit-meta to use dozbud
Tone down checkpointing frequency to every 2 minutes
Add term.c support for M-. and M-backspace
Update install instructions web link
2016-07-11 23:40:27 -07:00
Joseph Bryan
166431ed99 adds term support for meta-. and meta-backspace 2016-07-02 22:49:40 -04:00
C. Guy Yarvin
3947088354 Change checkpointing from 15 to 120 seconds. 2016-07-01 10:10:41 -07:00
John Franklin
fc06bec143 Call uv_close() on UV_EOF in _cttp_ccon_kick_read_cryp_cb() and _cttp_ccon_kick_read_clyr_cb(). This addresses https://github.com/urbit/urbit/issues/254. 2016-06-07 18:28:34 -05:00
Philip C Monk
ea3cbd5474 remove "connection to x.x.x.x" printf 2016-04-18 18:38:27 -04:00
Raymond Pasco
be4678ff0a Merge remote-tracking branches 'philipcmonk/new-lens' and 'galenwp/arch'
http.c changes for urbctl API
add Arch linux to readme
2016-04-14 15:09:15 -04:00
Max G
9d221ddebd Fixed pipelining on incoming http requests
Associated http-parser with connection instead of request; fixed queuing bug
2016-04-07 21:27:53 +03:00
Anton Dyudin
3d05538f75 add %chis for local-request backwards compatibility 2016-03-31 10:36:58 -07:00
Philip C Monk
37223edb4b loopback fix 2016-03-09 14:19:11 -05:00
Dan Haffey
26144fedde Shorter spinner delay after previous spinful event. 2016-02-20 14:35:06 -08:00
C. Guy Yarvin
6a72b535a9 Don't unlock mutex when exiting; it crashes for some reason. 2016-02-19 14:03:32 -05:00
Raymond Pasco
81ba11cd7d Merge branch 'pills'
Work correctly in refactored repository
NB: partially unfinished
2016-02-15 06:10:43 -05:00
Raymond Pasco
eb350a7e17 Merge branch 'switch-on-crub'
Accept more characters for carrier generator, in preparation for crub
2016-02-15 06:08:19 -05:00
Raymond Pasco
bb5e995202 Look for pill in build dir, arvo in arvo/
also .gitignore them
BUG: length of arvo sources directory is hardcoded!
2016-02-15 06:06:56 -05:00
Philip C Monk
27c10801c6 checkpoint 2016-02-11 14:44:28 -05:00
Raymond Pasco
101673f511 Merge tag 'hoon-151' into pills
Hoon 151 merge
2016-02-10 15:16:45 -05:00
Raymond Pasco
aa4eab1375 accept more characters in _sist_text() 2016-02-08 19:48:04 -05:00
C. Guy Yarvin
35a385e81c Fully shifted over to modern typed namespace. 2016-02-03 20:51:01 -08:00
Raymond Pasco
282b933882 support only U3_LIB, no hardcoded urb/ 2016-02-03 14:31:29 -05:00
Raymond Pasco
fda8ff38a4 support U3_LIB define 2016-01-28 08:28:13 -05:00
Raymond Pasco
71d8f1228d Make sure specified pill exists 2016-01-26 16:36:22 -05:00
Raymond Pasco
02f656b233 sanity check -B option 2016-01-26 16:31:26 -05:00
Raymond Pasco
c9c09bf99e Stub in -B bootstrap location option 2016-01-26 12:50:32 -05:00
Dan Haffey
5a23bbfda1 No signals on the spinner thread. 2015-12-16 23:40:34 -08:00
Dan Haffey
0ab8ad4ff5 No spinner delay for %ret. 2015-12-13 13:20:56 -08:00
Dan Haffey
2acf161381 Cursor spinner while processing events for more than 500ms. (#599)
The spinner is a simple |/-\ at the current cursor position. For non-terminal
events, the root of the event's wire is also displayed to the right of the
spinner to give some indication of what's causing an unresponsive terminal.

I used the simplest synchronization strategy I could think of: u3_utat.mex_u is
a mutex that serializes access to a terminal's state. The main thread holds it
at all times except when processing events. When a terminal receives a %bee blit
with a non-nul bulb (the event ovum), it releases the mutex to let the spinner
thread do its thing. A %bee with a nul bulb halts the spinner by grabbing the
mutex and refreshing the input line.

Off-thread console writes are directly against the underlying fd to avoid
trashing non-thread-safe libuv state. Given the simple locking pattern, calling
libuv from the spinner thread might be fine, but I didn't feel like auditing
vere to rule out concurrent calls. It worked when I tried it, but... threads.

I didn't look into supporting anything other than the main terminal, so
currently it's the only one that receives %bee blits. In daemon mode, the
spinner is disabled entirely and no additional thread is started.
2015-12-12 20:42:33 -08:00
Dan Haffey
d2391e78f8 Restore terminal line length and cursor position on refresh.
This keeps printfs from blowing away the line state (M-m M-m
won't erase your prompt).
2015-12-07 20:48:39 -08:00
C. Guy Yarvin
9083af04df Terminate on SIGTSTP. 2015-11-27 10:52:24 -08:00
C. Guy Yarvin
69b8603fa2 URL printing; doc and usability fixes. 2015-11-20 18:10:45 -05:00
Raymond Pasco
2830d2cddb Allow optional pier directory argument with -w -t 2015-11-19 16:01:58 -05:00
Charlie Cummings
66e2eb985e ignore dropped requests 2015-11-18 21:36:38 -05:00
John Franklin
1d79185707 Print libuv version in report(). 2015-11-16 17:34:49 -05:00
John Franklin
8201592594 Add command line option to report urbit build info. 2015-11-16 17:34:49 -05:00
Charlie Cummings
82359145dd more args 2015-11-16 17:34:49 -05:00
John Franklin
48c0e6e149 Print normal usage command when trying to create an existing planet/comet. 2015-11-10 15:12:03 -05:00
vere
7f1b5d2ae8 Proper double-word merge. 2015-11-06 22:08:58 +00:00
C. Guy Yarvin
1fedcb9b72 Profiling fix 2015-10-26 17:51:46 -04:00
C. Guy Yarvin
1ba234cee2 Fix typos. 2015-10-19 13:59:09 -07:00
C. Guy Yarvin
04d916aa59 Eliminate hasty chroot. 2015-10-17 20:29:59 -07:00
C. Guy Yarvin
1a47b2d5b8 Merge cgyarvin fixes into test. 2015-10-17 13:01:38 -07:00
John Franklin
d73fdfae61 Generalize the message if trying to use -c or -w on an existing pier. 2015-10-12 23:32:16 -05:00