[lxc-devel] [PATCH 14/21] Make utmpx.h optional

Stéphane Graber stgraber at ubuntu.com
Fri Jan 4 19:28:31 UTC 2013


On 01/03/2013 04:18 PM, Serge Hallyn wrote:
> Quoting Stéphane Graber (stgraber at ubuntu.com):
>> This adds code detecting the presence of utmpx.h and in its absence, turns the
>> utmp related functions into no-ops.
>>
>> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
>> ---
>>  configure.ac   | 2 +-
>>  src/lxc/utmp.c | 7 +++++++
>>  src/lxc/utmp.h | 9 +++++++++
>>  3 files changed, 17 insertions(+), 1 deletion(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 2905aee..5b7573a 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -211,7 +211,7 @@ AM_CONDITIONAL([IS_BIONIC], [test "x$libc_type" = "xbionic"])
>>  AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
>>  
>>  # Check for some headers
>> -AC_CHECK_HEADERS([sys/signalfd.h sys/personality.h sys/capability.h pty.h])
>> +AC_CHECK_HEADERS([sys/signalfd.h sys/personality.h sys/capability.h pty.h utmpx.h])
>>  
>>  # Check for some functions
>>  AC_CHECK_FUNCS([getline fgetln openpty setns pivot_root sethostname unshare])
>> diff --git a/src/lxc/utmp.c b/src/lxc/utmp.c
>> index a7b9b52..16d1b5d 100644
>> --- a/src/lxc/utmp.c
>> +++ b/src/lxc/utmp.c
>> @@ -21,6 +21,10 @@
>>   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
>>   */
>>  
>> +#include "config.h"
>> +
>> +#ifdef HAVE_UTMPX_H
>> +
>>  #include <stdio.h>
>>  #include <unistd.h>
>>  #include <errno.h>
>> @@ -37,6 +41,7 @@
>>  #include "mainloop.h"
>>  #include "lxc.h"
>>  #include "log.h"
>> +
>>  #define __USE_GNU
>>  #include <utmpx.h>
>>  #undef __USE_GNU
>> @@ -410,3 +415,5 @@ int lxc_utmp_del_timer(struct lxc_epoll_descr *descr,
>>  	else
>>  		return 0;
>>  }
>> +
>> +#endif
>> diff --git a/src/lxc/utmp.h b/src/lxc/utmp.h
>> index ac3eee4..ad4a8ab 100644
>> --- a/src/lxc/utmp.h
>> +++ b/src/lxc/utmp.h
>> @@ -21,8 +21,17 @@
>>   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
>>   */
>>  
>> +#include "config.h"
>> +
>>  struct lxc_handler;
>>  struct lxc_epoll_descr;
>>  
>> +#ifdef HAVE_UTMPX_H
>>  int lxc_utmp_mainloop_add(struct lxc_epoll_descr *descr,
>>  			  struct lxc_handler *handler);
>> +#else
>> +static inline int lxc_utmp_mainloop_add(struct lxc_epoll_descr *descr,
>> +			  struct lxc_handler *handler) {
>> +		return 0;
> 
> Would it be better to return -1 here?  This will only be called if
> the containerized reboot isn't available, in which case not having
> the utmp watcher to fall back on rather sucks.
> 
> I guess it's not that big a deal, just makes reboot/shutdown in
> the container not work...

Fixed, thanks.

>> +}
>> +#endif
>> -- 
>> 1.8.0
>>
>>
>> ------------------------------------------------------------------------------
>> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
>> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
>> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
>> MVPs and experts. ON SALE this month only -- learn more at:
>> http://p.sf.net/sfu/learnmore_122712
>> _______________________________________________
>> Lxc-devel mailing list
>> Lxc-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/lxc-devel


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 899 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20130104/c377c911/attachment.pgp>


More information about the lxc-devel mailing list