Into configure.ac you add something like:
---
AC_ARG_ENABLE(
        [capabilities],
        [AS_HELP_STRING([--enable-capabilities],[enable Linux
capabilities @<:@disabled@:>@])],
        ,
        [enable_capabilities="no"]
)
test "${enable_capabilities}" = "yes" &&
AC_DEFINE([ENABLE_CAPABILITIES], [1], [enable Linux capabilities])
---

Then in source you test for:
#ifdef ENABLE_CAPABILITIES

Alon.


On Tue, Apr 12, 2011 at 12:03 AM, crocket <crockabisc...@gmail.com> wrote:
> How do I enable it via autoconf?
>
> On Tue, Apr 12, 2011 at 5:37 AM, Alon Bar-Lev <alon.bar...@gmail.com> wrote:
>> Usually, using cap should be enabled/disabled via autoconf.
>>
>> On Mon, Apr 11, 2011 at 11:23 PM, crocket <crockabisc...@gmail.com> wrote:
>>>
>>> diff -Naur a/init.c b/init.c
>>> --- a/init.c    2010-11-05 04:29:02.000000000 +0900
>>> +++ b/init.c    2011-04-12 05:11:43.540370471 +0900
>>> @@ -41,6 +41,10 @@
>>>
>>>  #include "occ-inline.h"
>>>
>>> +#ifdef TARGET_LINUX
>>> +#include <sys/prctl.h>
>>> +#endif
>>> +
>>>  static struct context *static_context; /* GLOBAL */
>>>
>>>  /*
>>> @@ -904,6 +908,10 @@
>>>       if (no_delay)
>>>        {
>>>          set_group (&c0->group_state);
>>> +#ifdef TARGET_LINUX
>>> +         if(prctl(PR_SET_KEEPCAPS, 1) < 0)
>>> +           msg (M_ERR, "prctl(PR_SET_KEEPCAPS, 1) failed");
>>> +#endif
>>>          set_user (&c0->user_state);
>>>          c0->uid_gid_set = true;
>>>        }
>>>
>>> The patch is above.
>>> I had been investigating why OpenVPN refused to use CAP_IPC_LOCK capability.
>>> I found out that it was because OpenVPN invoked setuid and setuid
>>> erased POSIX capabilities.
>>> prctl(PR_SET_KEEPCAPS, 1) lets OpenVPN keep capabilities after setuid
>>> invocation.
>>>
>>> Thanks in advance for considering this patch.
>>>
>>> ------------------------------------------------------------------------------
>>> Forrester Wave Report - Recovery time is now measured in hours and minutes
>>> not days. Key insights are discussed in the 2010 Forrester Wave Report as
>>> part of an in-depth evaluation of disaster recovery service providers.
>>> Forrester found the best-in-class provider in terms of services and vision.
>>> Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
>>> _______________________________________________
>>> Openvpn-devel mailing list
>>> Openvpn-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/openvpn-devel
>>
>

Reply via email to