Don't connect to ourselves or duplicates.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3641 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		
							
								
								
									
										14
									
								
								src/ssb.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								src/ssb.c
									
									
									
									
									
								
							| @@ -1700,6 +1700,20 @@ static void _tf_on_connect_getaddrinfo(uv_getaddrinfo_t* addrinfo, int result, s | ||||
|  | ||||
| void tf_ssb_connect(tf_ssb_t* ssb, const char* host, int port, const uint8_t* key) | ||||
| { | ||||
| 	for (tf_ssb_connection_t* connection = ssb->connections; connection; connection = connection->next) { | ||||
| 		if (memcmp(connection->serverpub, key, k_id_bin_len) == 0) { | ||||
| 			char id[k_id_base64_len]; | ||||
| 			tf_ssb_id_bin_to_str(id, sizeof(id), key); | ||||
| 			printf("Not connecting to %s:%d, because we are already connected to %s.", host, port, key); | ||||
| 			return; | ||||
| 		} else if (memcmp(key, ssb->pub, k_id_bin_len) == 0) { | ||||
| 			char id[k_id_base64_len]; | ||||
| 			tf_ssb_id_bin_to_str(id, sizeof(id), key); | ||||
| 			printf("Not connecting to %s:%d, because they appear to be ourselves %s.", host, port, key); | ||||
| 			return; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	connect_t* connect = malloc(sizeof(connect_t)); | ||||
| 	*connect = (connect_t) { | ||||
| 		.ssb = ssb, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user