Page MenuHomeFreeBSD

D48568.diff
No OneTemporary

D48568.diff

diff --git a/sys/netlink/netlink_snl.h b/sys/netlink/netlink_snl.h
--- a/sys/netlink/netlink_snl.h
+++ b/sys/netlink/netlink_snl.h
@@ -240,14 +240,13 @@
static void
snl_free(struct snl_state *ss)
{
- if (ss->init_done) {
+ if (ss->init_done)
close(ss->fd);
- if (ss->buf != NULL)
- free(ss->buf);
- if (ss->lb != NULL) {
- snl_clear_lb(ss);
- lb_free(ss->lb);
- }
+ if (ss->buf != NULL)
+ free(ss->buf);
+ if (ss->lb != NULL) {
+ snl_clear_lb(ss);
+ lb_free(ss->lb);
}
}
@@ -290,6 +289,16 @@
return (true);
}
+static inline bool
+snl_clone(struct snl_state *ss, const struct snl_state *orig)
+{
+ *ss = (struct snl_state){
+ .fd = orig->fd,
+ .init_done = false,
+ };
+ return ((ss->lb = lb_init(SCRATCH_BUFFER_SIZE)) != NULL);
+}
+
static inline bool
snl_send(struct snl_state *ss, void *data, int sz)
{

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 3, 9:06 PM (21 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16020554
Default Alt Text
D48568.diff (839 B)

Event Timeline