diff --git a/.github/workflows/commits.yml b/.github/workflows/commits.yml deleted file mode 100644 index 541a8f9..0000000 --- a/.github/workflows/commits.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Commits -on: - - pull_request - -permissions: - contents: read - -jobs: - dco-check: - permissions: - pull-requests: read # for tim-actions/get-pr-commits to get list of commits from the PR - name: Signed-off-by (DCO) - runs-on: ubuntu-20.04 - steps: - - name: Get PR Commits - id: 'get-pr-commits' - uses: tim-actions/get-pr-commits@master - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Check that all commits are signed-off - uses: tim-actions/dco@master - with: - commits: ${{ steps.get-pr-commits.outputs.commits }} - - target-branch: - permissions: - contents: none - name: Branch target - runs-on: ubuntu-20.04 - steps: - - name: Check branch target - env: - TARGET: ${{ github.event.pull_request.base.ref }} - run: | - set -x - [ "${TARGET}" = "main" ] && exit 0 - - echo "Invalid branch target: ${TARGET}" - exit 1 diff --git a/ext/lxc/lxc.c b/ext/lxc/lxc.c index 6a1f394..b0ec634 100644 --- a/ext/lxc/lxc.c +++ b/ext/lxc/lxc.c @@ -41,28 +41,8 @@ extern void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1, #define RELEASING_GVL2(func, arg, killfunc, killarg) func(arg) #endif -//extern int lxc_wait_for_pid_status(pid_t pid); -#include -#include -int lxc_wait_for_pid_status(pid_t pid) -{ - int status, ret; - -again: - ret = waitpid(pid, &status, 0); - if (ret == -1) { - if (errno == EINTR) - goto again; - - return -1; - } - - if (ret != pid) - goto again; - - return status; -} -//extern long lxc_config_parse_arch(const char *arch); +extern int lxc_wait_for_pid_status(pid_t pid); +extern long lxc_config_parse_arch(const char *arch); static VALUE Container; static VALUE Error; @@ -118,24 +98,24 @@ free_c_string_array(char **arr) * "personality", either +:linux32+ or +:linux+, for the 32-bit and 64-bit * architectures, respectively. */ -//static VALUE -//lxc_arch_to_personality(VALUE self, VALUE rb_arch) -//{ -// int ret; -// char *arch; -// -// arch = StringValuePtr(rb_arch); -// ret = lxc_config_parse_arch(arch); -// -// switch (ret) { -// case PER_LINUX32: -// return SYMBOL("linux32"); -// case PER_LINUX: -// return SYMBOL("linux"); -// default: -// rb_raise(Error, "unknown personality"); -// } -//} +static VALUE +lxc_arch_to_personality(VALUE self, VALUE rb_arch) +{ + int ret; + char *arch; + + arch = StringValuePtr(rb_arch); + ret = lxc_config_parse_arch(arch); + + switch (ret) { + case PER_LINUX32: + return SYMBOL("linux32"); + case PER_LINUX: + return SYMBOL("linux"); + default: + rb_raise(Error, "unknown personality"); + } +} /* * call-seq: @@ -2147,8 +2127,8 @@ Init_lxc(void) { VALUE LXC = rb_define_module("LXC"); - //rb_define_singleton_method(LXC, "arch_to_personality", - // lxc_arch_to_personality, 1); + rb_define_singleton_method(LXC, "arch_to_personality", + lxc_arch_to_personality, 1); rb_define_singleton_method(LXC, "run_command", lxc_run_command, 1); rb_define_singleton_method(LXC, "run_shell", lxc_run_shell, 0); rb_define_singleton_method(LXC, "global_config_item",