start unix net_info impl
This commit is contained in:
		
							parent
							
								
									66a262afa8
								
							
						
					
					
						commit
						6077527e24
					
				
							
								
								
									
										47
									
								
								src/sigar.c
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								src/sigar.c
									
									
									
									
									
								
							@ -750,6 +750,12 @@ SIGAR_DECLARE(int) sigar_who_list_get(sigar_t *sigar,
 | 
				
			|||||||
    return SIGAR_ENOTIMPL;
 | 
					    return SIGAR_ENOTIMPL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SIGAR_DECLARE(int) sigar_net_info_get(sigar_t *sigar,
 | 
				
			||||||
 | 
					                                      sigar_net_info_t *netinfo)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return SIGAR_ENOTIMPL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SIGAR_DECLARE(int) sigar_resource_limit_get(sigar_t *sigar,
 | 
					SIGAR_DECLARE(int) sigar_resource_limit_get(sigar_t *sigar,
 | 
				
			||||||
                                            sigar_resource_limit_t *rlimit)
 | 
					                                            sigar_resource_limit_t *rlimit)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -836,6 +842,47 @@ int sigar_who_list_get(sigar_t *sigar,
 | 
				
			|||||||
    return SIGAR_OK;
 | 
					    return SIGAR_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int sigar_net_info_get(sigar_t *sigar,
 | 
				
			||||||
 | 
					                       sigar_net_info_t *netinfo)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char buffer[BUFSIZ], *ptr;
 | 
				
			||||||
 | 
					    FILE *fp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!(fp = fopen("/etc/resolv.conf", "r"))) {
 | 
				
			||||||
 | 
					        return errno;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SIGAR_ZERO(netinfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while ((ptr = fgets(buffer, sizeof(buffer), fp))) {
 | 
				
			||||||
 | 
					        int len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        SIGAR_SKIP_SPACE(ptr);
 | 
				
			||||||
 | 
					        if (!(ptr = strstr(ptr, "nameserver "))) {
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        ptr += 11;
 | 
				
			||||||
 | 
					        SIGAR_SKIP_SPACE(ptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        len = strlen(ptr);
 | 
				
			||||||
 | 
					        ptr[len-1] = '\0'; /* chop \n */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!netinfo->primary_dns[0]) {
 | 
				
			||||||
 | 
					            SIGAR_SSTRCPY(netinfo->primary_dns, ptr);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (!netinfo->secondary_dns[0]) {
 | 
				
			||||||
 | 
					            SIGAR_SSTRCPY(netinfo->secondary_dns, ptr);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fclose(fp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return SIGAR_OK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <sys/resource.h>
 | 
					#include <sys/resource.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define OffsetOf(structure, field) \
 | 
					#define OffsetOf(structure, field) \
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user