Files
m241Neelima/components/ip_net2-6.9/ipdhcps6/src/ipdhcps6_host.h
T
2026-07-30 11:19:44 +05:30

130 lines
3.9 KiB
C

/*
******************************************************************************
* INTERPEAK API HEADER FILE
*
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipdhcps6_host.h,v $ $Revision: 1.7.18.1 $
* $Source: /home/interpeak/CVSRoot/ipdhcps6/src/ipdhcps6_host.h,v $
* $Author: ulf $ $Date: 2011-11-16 10:33:28 $
* $State: Exp $ $Locker: $
*
* INTERPEAK_COPYRIGHT_STRING
* Design and implementation by Kenneth Jonsson <kenneth@interpeak.se>
******************************************************************************
*/
#ifndef IPDHCPS6_HOST_H
#define IPDHCPS6_HOST_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
#include "ipdhcps6_config.h"
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#include <ipcom_type.h>
#include <ipcom_cstyle.h>
#include <ipcom_netif.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
struct Ipdhcps6_active_lease_addr_struct;
typedef struct Ipdhcps6_fqdn
{
char fullName[255];
Ip_bool ptr_status;
/*Ptr update successfully or not*/
Ip_bool aaaa_status;
/*AAAA update successfully or not*/
Ip_bool agent;
Ip_bool oro;
struct Ip_in6_addr addr;
} Ipdhcps6_fqdn;
/* DHCP host structure */
typedef struct Ipdhcps6_host_struct
{
/* The client ID for this host */
Ipdhcps6_option *duid;
/* The currently leased by a client with this host */
Ipcom_list leases_head;
/* The interface used to communicate with this host */
int ifindex;
/* The unicast address for this host */
struct Ip_sockaddr_in6 addr;
/* Last time this host contacted the DHCP server */
Ip_time_t last_servered;
/* Is IP_TRUE if a Server Unicast Option has been sent to this host */
Ip_bool is_allowed_to_use_unicast;
/* Options for this host */
Ipcom_hash *options;
/* User associated with this host, ipcom_strlen(user.name) != 0 only if the user is known */
Ipdhcps6_user user;
Ipdhcps6_fqdn fqdn;
}
Ipdhcps6_host;
/*
****************************************************************************
* 6 FUNCTIONS
****************************************************************************
*/
IP_GLOBAL Ipdhcps6_host *
ipdhcps6_host_new(Ipdhcps6_option *duid, struct Ip_sockaddr_in6 *addr);
IP_GLOBAL Ipdhcps6_host *
ipdhcps6_host_get(Ipdhcps6_option *duid);
IP_GLOBAL Ipcom_hash *
ipdhcps6_host_new_db(void);
IP_GLOBAL void
ipdhcps6_host_delete_db(Ipcom_hash *hosts);
IP_GLOBAL Ip_bool
ipdhcps6_host_has_prefix(const Ipdhcps6_host *host);
IP_GLOBAL void
ipdhcps6_host_try_get_user(Ipdhcps6_host *host, Ipcom_netif *netif);
#ifdef __cplusplus
}
#endif
#endif
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/