forked from cory/tildefriends
		
	Show potential room connections differently.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4027 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		| @@ -1 +1 @@ | ||||
| {"type":"tildefriends-app","files":{"app.js":"&jLRr14wP54BEkzBMIf1vCdeylqYExD8+jnHwgsqV9a4=.sha256","lit-all.min.js":"&N4A12AsifdQgwdpII0SFtG513BfoLpmPjdJ9VTDftpg=.sha256","index.html":"&4uvb7ESTRYeImX1lsIQOWRec6HmMBaYipGgYf0EFVPY=.sha256","script.js":"&G8puK9Q4MngHy3D4ppcKyT49WKbHD2OCeUcAw2ghTDE=.sha256","lit-all.min.js.map":"&oFY9wO4MnujgfGNGv4VggHc5V5JwX4C8csqKZ6KJYbE=.sha256","tf-id-picker.js":"&9BDffV4HY9FqhL7XI4it+UQJB4cYwbDNsY3S1cxy2vw=.sha256","tf-app.js":"&qqpOZHnkJQevhLGPUEJ7br2S/LNH+nQtC91vz3CrYrE=.sha256","tf-message.js":"&VuxfyhBr0YLYydk+7Ivpr99VCJdiU0KHcN6xus0AxwU=.sha256","tf-user.js":"&bXTedgBudTQLXEBPY9R8OLfQ/ZLpo8YRU9Oq/wuGG3Y=.sha256","tf-utils.js":"&N2yKZwFnb2GbPeipgQtu6xFvezENNOgud9G7EhCQ/K0=.sha256","commonmark.min.js":"&bfBaMLU19d1p/vPBF9hlARqDX002KXG/UOfxOahZhe4=.sha256","tf-compose.js":"&ZGWHQZPTUl4QU5++WkGwGbyj+hxhQrTg9nLmZCrl/1g=.sha256","emojis.json":"&h3P4pez+AI4aYdsN0dJ3pbUEFR0276t9AM20caj/W/s=.sha256","emojis.js":"&pqYLDE/13PyEt2ceeFqvnwZ8NqWfPfpDBt4vP8SeHbs=.sha256","tf-styles.js":"&Zw90HptAvGwX/vBnEhRVfNrYjMSssFnnKpp8bzwXQH0=.sha256","tf-profile.js":"&vRKjsnYvOiHCQahzEfznCvP5YDwUPtltlpWf+pxwZ1Y=.sha256","commonmark-linkify.js":"&X+hNNkmSRvKY86khyAun+cXksquXbMakZdINbGbx30g=.sha256","tf-tab-search.js":"&ESt2vMG19sH5j6ungKua/ZuvIGslyuWyb3juXdOCecg=.sha256","tf-tab-news.js":"&SSHoFxBG2DiKUbfMNxiBjxqtAccQDSAEUTSN/IN/MlY=.sha256","tf-tab-connections.js":"&wdkYIS6cNyVlaAtSi174Jj6JyxbTwx1O/xMNckj9NcU=.sha256","tf-news.js":"&/Ij0SaBTohV2myuA1gQAPlgmyq/AmmvYIhSCm3wfmow=.sha256","tribute.css":"&9FogMzZHKXCfGb7mlh7z+/wiNZzBsOB/tKoh6MfYJno=.sha256","tribute.esm.js":"&P1wKqCfYULpR/ahSB98JP8xaxfikuZwwtT6I/SAo7/Y=.sha256"}} | ||||
| {"type":"tildefriends-app","files":{"app.js":"&jLRr14wP54BEkzBMIf1vCdeylqYExD8+jnHwgsqV9a4=.sha256","lit-all.min.js":"&N4A12AsifdQgwdpII0SFtG513BfoLpmPjdJ9VTDftpg=.sha256","index.html":"&4uvb7ESTRYeImX1lsIQOWRec6HmMBaYipGgYf0EFVPY=.sha256","script.js":"&G8puK9Q4MngHy3D4ppcKyT49WKbHD2OCeUcAw2ghTDE=.sha256","lit-all.min.js.map":"&oFY9wO4MnujgfGNGv4VggHc5V5JwX4C8csqKZ6KJYbE=.sha256","tf-id-picker.js":"&9BDffV4HY9FqhL7XI4it+UQJB4cYwbDNsY3S1cxy2vw=.sha256","tf-app.js":"&qqpOZHnkJQevhLGPUEJ7br2S/LNH+nQtC91vz3CrYrE=.sha256","tf-message.js":"&VuxfyhBr0YLYydk+7Ivpr99VCJdiU0KHcN6xus0AxwU=.sha256","tf-user.js":"&bXTedgBudTQLXEBPY9R8OLfQ/ZLpo8YRU9Oq/wuGG3Y=.sha256","tf-utils.js":"&N2yKZwFnb2GbPeipgQtu6xFvezENNOgud9G7EhCQ/K0=.sha256","commonmark.min.js":"&bfBaMLU19d1p/vPBF9hlARqDX002KXG/UOfxOahZhe4=.sha256","tf-compose.js":"&ZGWHQZPTUl4QU5++WkGwGbyj+hxhQrTg9nLmZCrl/1g=.sha256","emojis.json":"&h3P4pez+AI4aYdsN0dJ3pbUEFR0276t9AM20caj/W/s=.sha256","emojis.js":"&pqYLDE/13PyEt2ceeFqvnwZ8NqWfPfpDBt4vP8SeHbs=.sha256","tf-styles.js":"&Zw90HptAvGwX/vBnEhRVfNrYjMSssFnnKpp8bzwXQH0=.sha256","tf-profile.js":"&vRKjsnYvOiHCQahzEfznCvP5YDwUPtltlpWf+pxwZ1Y=.sha256","commonmark-linkify.js":"&X+hNNkmSRvKY86khyAun+cXksquXbMakZdINbGbx30g=.sha256","tf-tab-search.js":"&ESt2vMG19sH5j6ungKua/ZuvIGslyuWyb3juXdOCecg=.sha256","tf-tab-news.js":"&SSHoFxBG2DiKUbfMNxiBjxqtAccQDSAEUTSN/IN/MlY=.sha256","tf-tab-connections.js":"&PjreVhTR/vxlGHVKQbY0P9BuD6udtPMHDUv9HPCHuKw=.sha256","tf-news.js":"&/Ij0SaBTohV2myuA1gQAPlgmyq/AmmvYIhSCm3wfmow=.sha256","tribute.css":"&9FogMzZHKXCfGb7mlh7z+/wiNZzBsOB/tKoh6MfYJno=.sha256","tribute.esm.js":"&P1wKqCfYULpR/ahSB98JP8xaxfikuZwwtT6I/SAo7/Y=.sha256"}} | ||||
| @@ -39,11 +39,35 @@ class TfTabConnectionsElement extends LitElement { | ||||
| 	render_connection_summary(connection) { | ||||
| 		if (connection.address && connection.port) { | ||||
| 			return html`(<small>${connection.address}:${connection.port}</small>)`; | ||||
| 		} else if (connection.tunnel) { | ||||
| 			return html`(room peer)`; | ||||
| 		} else { | ||||
| 			return JSON.stringify(connection); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	render_room_peers(connection) { | ||||
| 		let self = this; | ||||
| 		let peers = this.broadcasts.filter(x => x.tunnel?.id == connection); | ||||
| 		if (peers.length) { | ||||
| 			return html` | ||||
| 				<ul> | ||||
| 					${peers.map(x => html`${self.render_broadcast(x)}`)} | ||||
| 				</ul> | ||||
| 			`; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	render_broadcast(connection) { | ||||
| 		return html` | ||||
| 			<li> | ||||
| 				<input type="button" @click=${() => tfrpc.rpc.connect(connection)} value="Connect"></input> | ||||
| 				<tf-user id=${connection.pubkey} .users=${this.users}></tf-user> | ||||
| 				${this.render_connection_summary(connection)} | ||||
| 			</li> | ||||
| 		` | ||||
| 	} | ||||
|  | ||||
| 	render() { | ||||
| 		let self = this; | ||||
| 		return html` | ||||
| @@ -52,13 +76,7 @@ class TfTabConnectionsElement extends LitElement { | ||||
| 			<input type="button" @click=${() => tfrpc.rpc.connect(self.renderRoot.getElementById('code').value)} value="Connect"></input> | ||||
| 			<h2>Broadcasts</h2> | ||||
| 			<ul> | ||||
| 				${this.broadcasts.map(x => html` | ||||
| 					<li> | ||||
| 						<input type="button" @click=${() => tfrpc.rpc.connect(x)} value="Connect"></input> | ||||
| 						<tf-user id=${x.pubkey} .users=${this.users}></tf-user> | ||||
| 						${self.render_connection_summary(x)} | ||||
| 					</li> | ||||
| 				`)} | ||||
| 				${this.broadcasts.filter(x => x.address).map(x => self.render_broadcast(x))} | ||||
| 			</ul> | ||||
| 			<h2>Connections</h2> | ||||
| 			<ul> | ||||
| @@ -66,6 +84,7 @@ class TfTabConnectionsElement extends LitElement { | ||||
| 					<li> | ||||
| 						<input type="button" @click=${() => tfrpc.rpc.closeConnection(x)} value="Close"></input> | ||||
| 						<tf-user id=${x} .users=${this.users}></tf-user> | ||||
| 						${self.render_room_peers(x)} | ||||
| 					</li> | ||||
| 				`)} | ||||
| 			</ul> | ||||
|   | ||||
| @@ -2476,7 +2476,7 @@ static void _tf_ssb_on_broadcast_listener_recv(uv_udp_t* handle, ssize_t nread, | ||||
| 	tf_free(buf->base); | ||||
| } | ||||
|  | ||||
| void tf_ssb_visit_broadcasts(tf_ssb_t* ssb, void (*callback)(const struct sockaddr_in* addr, tf_ssb_connection_t* tunnel, const uint8_t* pub, void* user_data), void* user_data) | ||||
| void tf_ssb_visit_broadcasts(tf_ssb_t* ssb, void (*callback)(const char* host, const struct sockaddr_in* addr, tf_ssb_connection_t* tunnel, const uint8_t* pub, void* user_data), void* user_data) | ||||
| { | ||||
| 	time_t now = time(NULL); | ||||
| 	tf_ssb_broadcast_t* next = NULL; | ||||
| @@ -2485,7 +2485,7 @@ void tf_ssb_visit_broadcasts(tf_ssb_t* ssb, void (*callback)(const struct sockad | ||||
| 		next = node->next; | ||||
| 		if (node->mtime - now < 60) | ||||
| 		{ | ||||
| 			callback(&node->addr, node->tunnel_connection, node->pub, user_data); | ||||
| 			callback(node->host, &node->addr, node->tunnel_connection, node->pub, user_data); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -80,7 +80,7 @@ void tf_ssb_run(tf_ssb_t* ssb); | ||||
| void tf_ssb_append_message_with_keys(tf_ssb_t* ssb, const char* author, const uint8_t* private_key, JSValue message); | ||||
| bool tf_ssb_whoami(tf_ssb_t* ssb, char* out_id, size_t out_id_size); | ||||
|  | ||||
| void tf_ssb_visit_broadcasts(tf_ssb_t* ssb, void (*callback)(const struct sockaddr_in* addr, tf_ssb_connection_t* tunnel, const uint8_t* pub, void* user_data), void* user_data); | ||||
| void tf_ssb_visit_broadcasts(tf_ssb_t* ssb, void (*callback)(const char* host, const struct sockaddr_in* addr, tf_ssb_connection_t* tunnel, const uint8_t* pub, void* user_data), void* user_data); | ||||
|  | ||||
| tf_ssb_connection_t* tf_ssb_get_connection(tf_ssb_t* ssb, const char* id); | ||||
| const char** tf_ssb_get_connection_ids(tf_ssb_t* ssb); | ||||
|   | ||||
| @@ -341,13 +341,11 @@ typedef struct _broadcasts_t | ||||
| 	int length; | ||||
| } broadcasts_t; | ||||
|  | ||||
| static void _tf_ssb_broadcasts_visit(const struct sockaddr_in* addr, tf_ssb_connection_t* tunnel, const uint8_t* pub, void* user_data) | ||||
| static void _tf_ssb_broadcasts_visit(const char* host, const struct sockaddr_in* addr, tf_ssb_connection_t* tunnel, const uint8_t* pub, void* user_data) | ||||
| { | ||||
| 	broadcasts_t* broadcasts = user_data; | ||||
| 	JSValue entry = JS_NewObject(broadcasts->context); | ||||
| 	char address[256]; | ||||
| 	char pubkey[k_id_base64_len]; | ||||
| 	uv_ip4_name(addr, address, sizeof(address)); | ||||
| 	tf_ssb_id_bin_to_str(pubkey, sizeof(pubkey), pub); | ||||
| 	if (tunnel) | ||||
| 	{ | ||||
| @@ -355,7 +353,7 @@ static void _tf_ssb_broadcasts_visit(const struct sockaddr_in* addr, tf_ssb_conn | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		JS_SetPropertyStr(broadcasts->context, entry, "address", JS_NewString(broadcasts->context, address)); | ||||
| 		JS_SetPropertyStr(broadcasts->context, entry, "address", JS_NewString(broadcasts->context, host)); | ||||
| 		JS_SetPropertyStr(broadcasts->context, entry, "port", JS_NewInt32(broadcasts->context, ntohs(addr->sin_port))); | ||||
| 	} | ||||
| 	JS_SetPropertyStr(broadcasts->context, entry, "pubkey", JS_NewString(broadcasts->context, pubkey)); | ||||
|   | ||||
| @@ -264,7 +264,7 @@ void tf_ssb_test_ssb(const tf_test_options_t* options) | ||||
| 	sqlite3_close(db1); | ||||
| } | ||||
|  | ||||
| static void _broadcasts_visit(const struct sockaddr_in* addr, tf_ssb_connection_t* tunnel, const uint8_t* pub, void* user_data) | ||||
| static void _broadcasts_visit(const char* host, const struct sockaddr_in* addr, tf_ssb_connection_t* tunnel, const uint8_t* pub, void* user_data) | ||||
| { | ||||
| 	int* count = user_data; | ||||
| 	(*count)++; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user