| 
					
				 | 
			
			
				@@ -298,13 +298,18 @@ update_socket_info_impl, (socket_table_ent_t *ent)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  fallback: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* If all of a sudden we don't have kist support, we just zero out all the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * variables for this socket since we don't know what they should be. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * We also effectively allow the socket write as much as it wants to the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * kernel, effectively returning it to vanilla scheduler behavior. Writes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * are still limited by the lower layers of Tor: socket blocking, full 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * outbuf, etc. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * variables for this socket since we don't know what they should be. We 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * also allow the socket to write as much as it can from the estimated 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * number of cells the lower layer can accept, effectively returning it to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * Vanilla scheduler behavior. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ent->cwnd = ent->unacked = ent->mss = ent->notsent = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ent->limit = INT_MAX; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* This function calls the specialized channel object (currently channeltls) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * and ask how many cells it can write on the outbuf which we then multiply 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * by the size of the cells for this channel. The cast is because this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * function requires a non-const channel object, meh. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ent->limit = channel_num_cells_writeable((channel_t *) ent->chan) * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (get_cell_network_size(ent->chan->wide_circ_ids) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TLS_PER_CELL_OVERHEAD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* Given a socket that isn't in the table, add it. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -398,6 +403,11 @@ update_socket_info(socket_table_t *table, const channel_t *chan) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return; // Whelp. Entry didn't exist for some reason so nothing to do. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   update_socket_info_impl(ent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  log_debug(LD_SCHED, "chan=%" PRIu64 " updated socket info, limit: %" PRIu64 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      ", cwnd: %" PRIu32 ", unacked: %" PRIu32 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      ", notsent: %" PRIu32 ", mss: %" PRIu32, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ent->chan->global_identifier, ent->limit, ent->cwnd, ent->unacked, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ent->notsent, ent->mss); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* Increment the channel's socket written value by the number of bytes. */ 
			 |