2013-10-17 05:18:36 +04:00
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
/***
This file is part of systemd .
Copyright 2013 Tom Gundersen < teg @ jklm . no >
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 "sd-event.h"
2013-11-23 05:47:12 +04:00
# include "sd-daemon.h"
2013-10-17 05:18:36 +04:00
# include "networkd.h"
int main ( int argc , char * argv [ ] ) {
2013-11-27 19:28:54 +04:00
_cleanup_manager_free_ Manager * m = NULL ;
2013-10-17 05:18:36 +04:00
int r ;
log_set_target ( LOG_TARGET_AUTO ) ;
log_parse_environment ( ) ;
log_open ( ) ;
umask ( 0022 ) ;
if ( argc ! = 1 ) {
log_error ( " This program takes no arguments. " ) ;
2013-11-23 05:07:08 +04:00
r = - EINVAL ;
goto out ;
2013-10-17 05:18:36 +04:00
}
r = manager_new ( & m ) ;
if ( r < 0 )
2013-11-23 05:07:08 +04:00
goto out ;
2013-10-17 05:18:36 +04:00
2013-11-25 02:37:56 +04:00
r = manager_load_config ( m ) ;
if ( r < 0 )
return EXIT_FAILURE ;
2013-10-17 05:18:36 +04:00
r = manager_udev_listen ( m ) ;
if ( r < 0 )
2013-11-23 05:07:08 +04:00
goto out ;
2013-10-17 05:18:36 +04:00
r = manager_udev_enumerate_links ( m ) ;
if ( r < 0 )
2013-11-23 05:07:08 +04:00
goto out ;
2013-10-17 05:18:36 +04:00
2013-11-14 19:22:51 +04:00
r = manager_rtnl_listen ( m ) ;
if ( r < 0 )
2013-11-23 05:07:08 +04:00
goto out ;
2014-01-06 02:01:10 +04:00
/* write out empty resolv.conf to avoid a
* dangling symlink */
r = manager_update_resolv_conf ( m ) ;
if ( r < 0 )
goto out ;
2013-11-23 05:07:08 +04:00
sd_notify ( false ,
" READY=1 \n "
" STATUS=Processing requests... " ) ;
2013-11-14 19:22:51 +04:00
2013-10-17 05:18:36 +04:00
r = sd_event_loop ( m - > event ) ;
if ( r < 0 )
2013-11-23 05:07:08 +04:00
goto out ;
out :
sd_notify ( false ,
" STATUS=Shutting down... " ) ;
2013-10-17 05:18:36 +04:00
2013-11-23 05:07:08 +04:00
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS ;
2013-10-17 05:18:36 +04:00
}