tools: move lxc-checkpoint to API symbols only

Closes #2073.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
Christian Brauner 2018-01-12 14:02:10 +01:00
parent 6a342cab36
commit 78485176fd
No known key found for this signature in database
GPG Key ID: 8EB056D53EECB12D
3 changed files with 23 additions and 8 deletions

View File

@ -1,5 +1,4 @@
/* /*
*
* Copyright © 2014 Tycho Andersen <tycho.andersen@canonical.com>. * Copyright © 2014 Tycho Andersen <tycho.andersen@canonical.com>.
* Copyright © 2014 Canonical Ltd. * Copyright © 2014 Canonical Ltd.
* *
@ -17,19 +16,18 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#include <stdio.h> #define _GNU_SOURCE
#include <errno.h> #include <errno.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h> #include <unistd.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/wait.h> #include <sys/wait.h>
#include <lxc/lxccontainer.h> #include <lxc/lxccontainer.h>
#include "log.h"
#include "config.h"
#include "lxc.h"
#include "arguments.h" #include "arguments.h"
#include "utils.h" #include "tool_utils.h"
static char *checkpoint_dir = NULL; static char *checkpoint_dir = NULL;
static bool stop = false; static bool stop = false;
@ -253,8 +251,6 @@ int main(int argc, char *argv[])
if (lxc_log_init(&log)) if (lxc_log_init(&log))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
lxc_log_options_no_override();
/* REMOVE IN LXC 3.0 */ /* REMOVE IN LXC 3.0 */
setenv("LXC_UPDATE_CONFIG_FORMAT", "1", 0); setenv("LXC_UPDATE_CONFIG_FORMAT", "1", 0);

View File

@ -276,6 +276,24 @@ out:
#endif #endif
int wait_for_pid(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;
if (!WIFEXITED(status) || WEXITSTATUS(status) != 0)
return -1;
return 0;
}
int lxc_wait_for_pid_status(pid_t pid) int lxc_wait_for_pid_status(pid_t pid)
{ {
int status, ret; int status, ret;

View File

@ -123,6 +123,7 @@ static inline int lxc_caps_init(void) {
} }
#endif #endif
extern int wait_for_pid(pid_t pid);
extern int lxc_wait_for_pid_status(pid_t pid); extern int lxc_wait_for_pid_status(pid_t pid);
extern int lxc_safe_int(const char *numstr, int *converted); extern int lxc_safe_int(const char *numstr, int *converted);
extern int lxc_safe_long(const char *numstr, long int *converted); extern int lxc_safe_long(const char *numstr, long int *converted);