49 #include <netlink-private/netlink.h> 51 static void ltime_cfg_destroy(
struct xfrmnl_ltime_cfg* ltime)
56 if (ltime->refcnt != 1)
58 fprintf(stderr,
"BUG: %s:%d\n", __FILE__, __LINE__);
76 struct xfrmnl_ltime_cfg* ltime;
78 ltime = calloc(1,
sizeof(
struct xfrmnl_ltime_cfg));
95 struct xfrmnl_ltime_cfg*
new;
99 memcpy ((
void*)
new, (
void*)ltime,
sizeof (
struct xfrmnl_ltime_cfg));
111 struct xfrmnl_ltime_cfg* xfrmnl_ltime_cfg_get(
struct xfrmnl_ltime_cfg* ltime)
118 void xfrmnl_ltime_cfg_put(
struct xfrmnl_ltime_cfg* ltime)
123 if (ltime->refcnt == 1)
124 ltime_cfg_destroy(ltime);
136 return ltime->refcnt > 1;
157 if ((a->soft_byte_limit != b->soft_byte_limit) ||
158 (a->soft_packet_limit != b->soft_packet_limit) ||
159 (a->hard_byte_limit != b->hard_byte_limit) ||
160 (a->hard_packet_limit != b->hard_packet_limit) ||
161 (a->soft_add_expires_seconds != b->soft_add_expires_seconds) ||
162 (a->hard_add_expires_seconds != b->hard_add_expires_seconds) ||
163 (a->soft_use_expires_seconds != b->soft_use_expires_seconds) ||
164 (a->hard_use_expires_seconds != b->hard_use_expires_seconds))
177 unsigned long long xfrmnl_ltime_cfg_get_soft_bytelimit (
struct xfrmnl_ltime_cfg* ltime)
179 return ltime->soft_byte_limit;
182 int xfrmnl_ltime_cfg_set_soft_bytelimit (
struct xfrmnl_ltime_cfg* ltime,
unsigned long long soft_byte_limit)
184 ltime->soft_byte_limit = soft_byte_limit;
189 unsigned long long xfrmnl_ltime_cfg_get_hard_bytelimit (
struct xfrmnl_ltime_cfg* ltime)
191 return ltime->hard_byte_limit;
194 int xfrmnl_ltime_cfg_set_hard_bytelimit (
struct xfrmnl_ltime_cfg* ltime,
unsigned long long hard_byte_limit)
196 ltime->hard_byte_limit = hard_byte_limit;
201 unsigned long long xfrmnl_ltime_cfg_get_soft_packetlimit (
struct xfrmnl_ltime_cfg* ltime)
203 return ltime->soft_packet_limit;
206 int xfrmnl_ltime_cfg_set_soft_packetlimit (
struct xfrmnl_ltime_cfg* ltime,
unsigned long long soft_packet_limit)
208 ltime->soft_packet_limit = soft_packet_limit;
213 unsigned long long xfrmnl_ltime_cfg_get_hard_packetlimit (
struct xfrmnl_ltime_cfg* ltime)
215 return ltime->hard_packet_limit;
218 int xfrmnl_ltime_cfg_set_hard_packetlimit (
struct xfrmnl_ltime_cfg* ltime,
unsigned long long hard_packet_limit)
220 ltime->hard_packet_limit = hard_packet_limit;
225 unsigned long long xfrmnl_ltime_cfg_get_soft_addexpires (
struct xfrmnl_ltime_cfg* ltime)
227 return ltime->soft_add_expires_seconds;
230 int xfrmnl_ltime_cfg_set_soft_addexpires (
struct xfrmnl_ltime_cfg* ltime,
unsigned long long soft_add_expires_seconds)
232 ltime->soft_add_expires_seconds = soft_add_expires_seconds;
237 unsigned long long xfrmnl_ltime_cfg_get_hard_addexpires (
struct xfrmnl_ltime_cfg* ltime)
239 return ltime->hard_add_expires_seconds;
242 int xfrmnl_ltime_cfg_set_hard_addexpires (
struct xfrmnl_ltime_cfg* ltime,
unsigned long long hard_add_expires_seconds)
244 ltime->hard_add_expires_seconds = hard_add_expires_seconds;
249 unsigned long long xfrmnl_ltime_cfg_get_soft_useexpires (
struct xfrmnl_ltime_cfg* ltime)
251 return ltime->soft_use_expires_seconds;
254 int xfrmnl_ltime_cfg_set_soft_useexpires (
struct xfrmnl_ltime_cfg* ltime,
unsigned long long soft_use_expires_seconds)
256 ltime->soft_use_expires_seconds = soft_use_expires_seconds;
261 unsigned long long xfrmnl_ltime_cfg_get_hard_useexpires (
struct xfrmnl_ltime_cfg* ltime)
263 return ltime->hard_use_expires_seconds;
266 int xfrmnl_ltime_cfg_set_hard_useexpires (
struct xfrmnl_ltime_cfg* ltime,
unsigned long long hard_use_expires_seconds)
268 ltime->hard_use_expires_seconds = hard_use_expires_seconds;
struct xfrmnl_ltime_cfg * xfrmnl_ltime_cfg_clone(struct xfrmnl_ltime_cfg *ltime)
Clone existing lifetime config object.
int xfrmnl_ltime_cfg_shared(struct xfrmnl_ltime_cfg *ltime)
Check whether an lifetime config object is shared.
struct xfrmnl_ltime_cfg * xfrmnl_ltime_cfg_alloc()
Allocate new lifetime config object.
int xfrmnl_ltime_cfg_cmp(struct xfrmnl_ltime_cfg *a, struct xfrmnl_ltime_cfg *b)
Compares two lifetime config objects.