darwin/bsd tcp_stat impl
This commit is contained in:
		
							parent
							
								
									c61e7a78b6
								
							
						
					
					
						commit
						b19b26392d
					
				| @ -2152,7 +2152,26 @@ SIGAR_DECLARE(int) | |||||||
| sigar_tcp_stat_get(sigar_t *sigar, | sigar_tcp_stat_get(sigar_t *sigar, | ||||||
|                    sigar_tcp_stat_t *tcpstat) |                    sigar_tcp_stat_t *tcpstat) | ||||||
| { | { | ||||||
|     return SIGAR_ENOTIMPL; |     struct tcpstat mib; | ||||||
|  |     int var[4] = { CTL_NET, PF_INET, IPPROTO_TCP, TCPCTL_STATS }; | ||||||
|  |     size_t len = sizeof(mib); | ||||||
|  | 
 | ||||||
|  |     if (sysctl(var, NMIB(var), &mib, &len, NULL, 0) < 0) { | ||||||
|  |         return errno; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     tcpstat->max_conn = -1; | ||||||
|  |     tcpstat->active_opens = mib.tcps_connattempt; | ||||||
|  |     tcpstat->passive_opens = mib.tcps_accepts; | ||||||
|  |     tcpstat->attempt_fails = mib.tcps_conndrops; | ||||||
|  |     tcpstat->estab_resets = mib.tcps_drops; | ||||||
|  |     tcpstat->curr_estab = 0; /*XXX*/ | ||||||
|  |     tcpstat->in_segs = mib.tcps_rcvtotal; | ||||||
|  |     tcpstat->out_segs = mib.tcps_sndtotal - mib.tcps_sndrexmitpack; | ||||||
|  |     tcpstat->retrans_segs = mib.tcps_sndrexmitpack; | ||||||
|  |     tcpstat->out_rsts = mib.tcps_sndctrl - mib.tcps_closed; | ||||||
|  | 
 | ||||||
|  |     return SIGAR_OK; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef __FreeBSD__ | #ifdef __FreeBSD__ | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Doug MacEachern
						Doug MacEachern