networkd-wait-online: use automatic cleanup

This commit is contained in:
Thomas Hindoe Paaboel Andersen 2014-03-01 22:52:25 +01:00 committed by Tom Gundersen
parent abdab4f602
commit e1528e085c
3 changed files with 35 additions and 8 deletions

View file

@ -2418,7 +2418,8 @@ libsystemd_network_la_SOURCES = \
src/libsystemd-network/dhcp-internal.h \
src/libsystemd-network/dhcp-protocol.h \
src/libsystemd-network/dhcp-lease-internal.h \
src/libsystemd-network/sd-dhcp-lease.c
src/libsystemd-network/sd-dhcp-lease.c \
src/libsystemd-network/network-util.h
libsystemd_network_la_LIBADD = \
libsystemd-internal.la \

View file

@ -0,0 +1,28 @@
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
#pragma once
/***
This file is part of systemd.
Copyright 2014 Thomas Hindø Paabøl Andersen
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 "util.h"
DEFINE_TRIVIAL_CLEANUP_FUNC(sd_network_monitor*, sd_network_monitor_unref);
#define _cleanup_network_monitor_unref_ _cleanup_(sd_network_monitor_unrefp)

View file

@ -20,8 +20,10 @@
***/
#include "sd-event.h"
#include "event-util.h"
#include "sd-daemon.h"
#include "sd-network.h"
#include "network-util.h"
#include "util.h"
@ -62,9 +64,9 @@ static int event_handler(sd_event_source *s, int fd, uint32_t revents,
}
int main(int argc, char *argv[]) {
sd_event *event;
sd_event_source *event_source;
sd_network_monitor *monitor;
_cleanup_event_unref_ sd_event *event = NULL;
_cleanup_event_source_unref_ sd_event_source *event_source = NULL;
_cleanup_network_monitor_unref_ sd_network_monitor *monitor = NULL;
int r, fd, events;
log_set_target(LOG_TARGET_AUTO);
@ -129,9 +131,5 @@ out:
sd_notify(false,
"STATUS=All interfaces configured...");
sd_event_source_unref(event_source);
sd_event_unref(event);
sd_network_monitor_unref(monitor);
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}