]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
fix tty creation using confdir
authorDaniel Lezcano <dlezcano@fr.ibm.com>
Fri, 9 Oct 2009 09:38:39 +0000 (11:38 +0200)
committerDaniel Lezcano <dlezcano@fr.ibm.com>
Fri, 9 Oct 2009 09:38:39 +0000 (11:38 +0200)
tty_create uses the old conf directory, fixing this.

Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
src/lxc/conf.c
src/lxc/conf.h
src/lxc/start.c

index 0fb3c32ac192d70215fe2cfabf810bb4caf018de..725d8e16054b7fd1a24cba1b36ec8676002a83b5 100644 (file)
@@ -107,32 +107,6 @@ static struct mount_opt mount_opt[] = {
        { NULL,         0, 0              },
 };
 
-static int read_info(const char *path, const char *file, char *info, size_t len)
-{
-       int fd, ret = -1;
-       char f[MAXPATHLEN], *token;
-
-       snprintf(f, MAXPATHLEN, "%s/%s", path, file);
-       fd = open(f, O_RDONLY);
-       if (fd < 0) {
-               if (errno == ENOENT)
-                       ret = 1;
-               goto out;
-       }
-
-       ret = read(fd, info, len);
-       if (ret < 0)
-               goto out;
-
-       token = strstr(info, "\n");
-       if (token)
-               *token = '\0';
-       ret = 0;
-out:
-       close(fd);
-       return ret;
-}
-
 static int delete_info(const char *path, const char *file)
 {
        char info[MAXPATHLEN];
@@ -1152,25 +1126,16 @@ int lxc_assign_network(struct lxc_list *network, pid_t pid)
        return 0;
 }
 
-int lxc_create_tty(const char *name, struct lxc_tty_info *tty_info)
+int lxc_create_tty(const char *name, struct lxc_conf *conf)
 {
-       char path[MAXPATHLEN];
-       char tty[4];
+       struct lxc_tty_info *tty_info = &conf->tty_info;
        int i, ret = -1;
 
-       tty_info->nbtty = 0;
-
-       if (!conf_has_tty(name))
+       /* no tty in the configuration */
+       if (!conf->tty)
                return 0;
 
-       snprintf(path, MAXPATHLEN, LXCPATH "/%s", name);
-
-       if (read_info(path, "tty", tty, sizeof(tty)) < 0) {
-               SYSERROR("failed to read tty info");
-               goto out;
-       }
-
-       tty_info->nbtty = atoi(tty);
+       tty_info->nbtty = conf->tty;
        tty_info->pty_info =
                malloc(sizeof(*tty_info->pty_info)*tty_info->nbtty);
 
index 57964bbcf9869981e89583a718580a47e25cf8c3..f72e5f5d49094a17582d3056a71ec3437187f158 100644 (file)
@@ -159,7 +159,7 @@ extern int lxc_unconfigure(const char *name);
 extern int lxc_create_network(struct lxc_list *networks);
 extern int lxc_assign_network(struct lxc_list *networks, pid_t pid);
 
-extern int lxc_create_tty(const char *name, struct lxc_tty_info *tty_info);
+extern int lxc_create_tty(const char *name, struct lxc_conf *conf);
 extern void lxc_delete_tty(struct lxc_tty_info *tty_info);
 
 /*
index aaeda55be5e2ed31ec2e89b8b02de327f29e013e..42745bc85389eafbccce391b1624a82bbe64e728 100644 (file)
@@ -276,7 +276,7 @@ struct lxc_handler *lxc_init(const char *name)
                goto out_aborting;
        }
 
-       if (lxc_create_tty(name, &handler->conf.tty_info)) {
+       if (lxc_create_tty(name, &handler->conf)) {
                ERROR("failed to create the ttys");
                goto out_aborting;
        }