2014-02-05 02:13:52 +04:00
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
# pragma once
/***
This file is part of systemd .
Copyright ( C ) 2013 Intel Corporation . All rights reserved .
Copyright ( C ) 2014 Tom Gundersen
systemd is free software ; you can redistribute it and / or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation ; either version 2.1 of the License , or
( at your option ) any later version .
systemd is distributed in the hope that it will be useful , but
WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
Lesser General Public License for more details .
You should have received a copy of the GNU Lesser General Public License
along with systemd ; If not , see < http : //www.gnu.org/licenses/>.
* * */
# include <stdint.h>
# include <linux/if_packet.h>
# include "refcnt.h"
2014-05-19 00:02:42 +04:00
# include "util.h"
2014-02-05 02:13:52 +04:00
# include "dhcp-protocol.h"
# include "sd-dhcp-client.h"
struct sd_dhcp_lease {
RefCount n_ref ;
uint32_t t1 ;
uint32_t t2 ;
uint32_t lifetime ;
be32_t address ;
be32_t server_address ;
be32_t subnet_mask ;
be32_t router ;
2014-03-03 20:13:59 +04:00
be32_t next_server ;
2014-02-05 02:13:52 +04:00
struct in_addr * dns ;
size_t dns_size ;
2014-04-29 14:17:27 +04:00
struct in_addr * ntp ;
size_t ntp_size ;
2014-02-05 02:13:52 +04:00
uint16_t mtu ;
char * domainname ;
char * hostname ;
2014-03-03 18:43:02 +04:00
char * root_path ;
2014-02-05 02:13:52 +04:00
} ;
int dhcp_lease_new ( sd_dhcp_lease * * ret ) ;
int dhcp_lease_parse_options ( uint8_t code , uint8_t len , const uint8_t * option ,
void * user_data ) ;
2014-02-27 04:24:05 +04:00
int dhcp_lease_save ( sd_dhcp_lease * lease , const char * lease_file ) ;
int dhcp_lease_load ( const char * lease_file , sd_dhcp_lease * * ret ) ;
2014-03-19 19:05:44 +04:00
int dhcp_lease_set_default_subnet_mask ( sd_dhcp_lease * lease ) ;
2014-02-05 02:13:52 +04:00
DEFINE_TRIVIAL_CLEANUP_FUNC ( sd_dhcp_lease * , sd_dhcp_lease_unref ) ;
# define _cleanup_dhcp_lease_unref_ _cleanup_(sd_dhcp_lease_unrefp)