Tweaking based on feedback: default_interface gets a more appropriate name and
sigar_get_default_gateway now gathers both pieces of information.
This commit is contained in:
		
							parent
							
								
									d9f37b39a4
								
							
						
					
					
						commit
						4fdcee3635
					
				| @ -936,7 +936,7 @@ use vars qw(%classes %cmds); | |||||||
|          plat => '' |          plat => '' | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|          name => 'default_interface', type => 'String', |          name => 'default_gateway_interface', type => 'String', | ||||||
|          desc => '', |          desc => '', | ||||||
|          plat => '' |          plat => '' | ||||||
|       }, |       }, | ||||||
|  | |||||||
| @ -527,7 +527,7 @@ typedef struct { | |||||||
| 
 | 
 | ||||||
| typedef struct { | typedef struct { | ||||||
|     char default_gateway[SIGAR_INET6_ADDRSTRLEN]; |     char default_gateway[SIGAR_INET6_ADDRSTRLEN]; | ||||||
|     char default_interface[16]; |     char default_gateway_interface[16]; | ||||||
|     char host_name[SIGAR_MAXHOSTNAMELEN]; |     char host_name[SIGAR_MAXHOSTNAMELEN]; | ||||||
|     char domain_name[SIGAR_MAXDOMAINNAMELEN]; |     char domain_name[SIGAR_MAXDOMAINNAMELEN]; | ||||||
|     char primary_dns[SIGAR_INET6_ADDRSTRLEN]; |     char primary_dns[SIGAR_INET6_ADDRSTRLEN]; | ||||||
|  | |||||||
							
								
								
									
										39
									
								
								src/sigar.c
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								src/sigar.c
									
									
									
									
									
								
							| @ -1236,7 +1236,7 @@ int sigar_who_list_get(sigar_t *sigar, | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| static int sigar_get_default_gateway(sigar_t *sigar, | static int sigar_get_default_gateway(sigar_t *sigar, | ||||||
|                                      char *gateway) |                                      sigar_net_info_t *netinfo) | ||||||
| { | { | ||||||
|     int status, i; |     int status, i; | ||||||
|     sigar_net_route_list_t routelist; |     sigar_net_route_list_t routelist; | ||||||
| @ -1252,7 +1252,11 @@ static int sigar_get_default_gateway(sigar_t *sigar, | |||||||
|         { |         { | ||||||
|             sigar_net_address_to_string(sigar, |             sigar_net_address_to_string(sigar, | ||||||
|                                         &routelist.data[i].gateway, |                                         &routelist.data[i].gateway, | ||||||
|                                         gateway); |                                         netinfo->default_gateway); | ||||||
|  | 
 | ||||||
|  |             SIGAR_STRNCPY(netinfo->default_gateway_interface, | ||||||
|  |                           routelist.data[i].ifname, | ||||||
|  |                           sizeof(netinfo->default_gateway_interface)); | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @ -1262,33 +1266,6 @@ static int sigar_get_default_gateway(sigar_t *sigar, | |||||||
|     return SIGAR_OK; |     return SIGAR_OK; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int sigar_get_default_interface(sigar_t *sigar, |  | ||||||
|                                      char *interface, int interfacelen) |  | ||||||
| { |  | ||||||
|     int status, i; |  | ||||||
|     char *ifname; |  | ||||||
|     sigar_net_route_list_t routelist; |  | ||||||
| 
 |  | ||||||
|     status = sigar_net_route_list_get(sigar, &routelist); |  | ||||||
|     if (status != SIGAR_OK) { |  | ||||||
|         return status; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     for (i=0; i<routelist.number; i++) { |  | ||||||
|         if ((routelist.data[i].flags & SIGAR_RTF_GATEWAY) && |  | ||||||
|             (routelist.data[i].destination.addr.in == 0)) |  | ||||||
|         { |  | ||||||
|             SIGAR_STRNCPY(interface, routelist.data[i].ifname, interfacelen); |  | ||||||
|             break; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     sigar_net_route_list_destroy(sigar, &routelist); |  | ||||||
| 
 |  | ||||||
|     return SIGAR_OK; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| int sigar_net_info_get(sigar_t *sigar, | int sigar_net_info_get(sigar_t *sigar, | ||||||
|                        sigar_net_info_t *netinfo) |                        sigar_net_info_t *netinfo) | ||||||
| { | { | ||||||
| @ -1343,9 +1320,7 @@ int sigar_net_info_get(sigar_t *sigar, | |||||||
|         netinfo->domain_name[0] = '\0'; |         netinfo->domain_name[0] = '\0'; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     sigar_get_default_gateway(sigar, netinfo->default_gateway); |     sigar_get_default_gateway(sigar, netinfo); | ||||||
|     sigar_get_default_interface(sigar, netinfo->default_interface, |  | ||||||
|                                 sizeof(netinfo->default_interface)); |  | ||||||
| 
 | 
 | ||||||
|     return SIGAR_OK; |     return SIGAR_OK; | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Matthew Kent
						Matthew Kent