00001 /* @file dhcp6_nic.c 00002 * 00003 * Network Interface Configurator for the DHCPv6 IPv6 DHCP client library. 00004 * 00005 * @author Jason Vas Dias<jvdias@redhat.com> 00006 * 00007 */ 00008 /* 00009 * Copyright(C) Jason Vas Dias <jvdias@redhat.com> Red Hat Inc. May 2006 00010 * 00011 * This program is free software; you can redistribute it and/or modify 00012 * it under the terms of the GNU General Public License as published by 00013 * the Free Software Foundation at 00014 * http://www.fsf.org/licensing/licenses/gpl.txt 00015 * and included in this software distribution as the "LICENSE" file. 00016 * 00017 * This program is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00020 * GNU General Public License for more details. 00021 */ 00022 #include <libdhcp.h> 00023 #include <dhcp6_lease.h> 00024 #include <nic.h> 00025 #include <stdarg.h> 00026 00027 /** 00028 * @addtogroup DHCPv6 00029 * @{ 00030 */ 00031 typedef 00032 struct dhcp6_nic_s 00033 { 00034 NLH_t nh; 00035 NIC_t nic; 00036 IPaddr_list_t address_list; 00037 IProute_list_t route_list; 00038 IPaddr_list_t dns_list; 00039 char *search_list; 00040 char *host_name; 00041 DHCPv6_lease *lease; 00042 char *name; 00043 } DHCPv6_nic; 00044 00045 extern 00046 DHCPv6_nic *do_dhcpv6( LIBDHCP_Control *, NLH_t nh, char *if_name ); 00047 00048 extern 00049 DHCPv6_nic *dhcp6_nic_from_lease( LIBDHCP_Control *ctl, NLH_t nh, DHCPv6_lease *lease, NIC_t nic); 00050 00051 extern 00052 int dhcp6_process_lease( LIBDHCP_Control *ctl, DHCPv6_nic *nic ); 00053 00054 extern 00055 NIC_Res_t dhcpv6_nic( DHCPv6_nic* ); 00056 00057 extern 00058 int dhcp6_nic_callback 00059 ( LIBDHCP_Control *control, 00060 DHCP_State state, 00061 void *arg 00062 ); 00063 00064 void dhcpv6_nic_free( DHCPv6_nic* ); 00065 00066 /**@}*/