]> git.tuebingen.mpg.de Git - adu.git/commitdiff
Merge commit 'fml/master'
authorAndre Noll <maan@systemlinux.org>
Tue, 10 Feb 2009 22:08:20 +0000 (23:08 +0100)
committerAndre Noll <maan@systemlinux.org>
Tue, 10 Feb 2009 22:08:20 +0000 (23:08 +0100)
Conflicts:
adu.ggo
user.c

1  2 
interactive.c
user.c

diff --combined interactive.c
index 08f700f7a6cd2d423d0a37e84e9ee09727536745,913d3f06308fed446b72ce67510c2288eab13e53..1c7562271a0948941c8b5e5ba41f8826dec1d7e9
@@@ -12,7 -12,6 +12,7 @@@
  #include "format.h"
  #include "user.h"
  #include "string.h"
 +#include "cmdline.h"
  #include "select.cmdline.h"
  #include "select.h"
  #include "error.h"
@@@ -214,13 -213,14 +214,14 @@@ int com_interactive(void
        ret = parse_select_options(NULL, NULL, &admissible_uids, &fi);
        if (ret< 0)
                return ret;
-       ret = read_uid_file(conf.database_dir_arg);
+       ret = read_uid_file();
        if (ret < 0)
                return ret;
        while (read_input_line(line, sizeof(line)) >= 0) {
                ret = exec_interactive_command(line);
                if (ret < 0)
                        printf("%s\n", adu_strerror(-ret));
+               fflush(NULL);
        }
        return ret;
  }
diff --combined user.c
index dfa1c103a9211e1a78e5e0502b0537e4a22cb885,2ed3d471bf9227424993383ac4e314aeedbf5b48..0ae4a6c9af04fe3eab521f38f9c14b74e4f69a8c
--- 1/user.c
--- 2/user.c
+++ b/user.c
@@@ -10,6 -10,7 +10,6 @@@
  #include <dirent.h> /* readdir() */
  #include <sys/types.h>
  #include <pwd.h>
 -#include "cmdline.h" /* TODO: This file should be independent of command line options */
  #include "user.h"
  #include "fd.h"
  #include "string.h"
@@@ -257,7 -258,7 +257,7 @@@ static inline int ui_admissible(struct 
        return ui->flags & UI_FL_ADMISSIBLE;
  }
  
- static int open_user_table(const char *dirname, struct user_info *ui, int create)
+ static int open_user_table(struct user_info *ui, int create)
  {
        int ret;
        struct passwd *pw;
        ui->desc->num_columns = NUM_UT_COLUMNS;
        ui->desc->flags = 0;
        ui->desc->column_descriptions = user_table_cols;
-       ui->desc->dir = adu_strdup(dirname);
+       ui->desc->dir = adu_strdup(database_dir);
        ui->desc->name = make_message("%u", (unsigned)ui->uid);
        pw = getpwuid(ui->uid);
        if (pw && pw->pw_name)
@@@ -435,8 -436,7 +435,7 @@@ static struct user_info *lookup_uid(uin
   *
   * \return Standard.
   */
- int create_user_table(const char *dirname, uint32_t uid,
-               struct user_info **ui_ptr)
+ int create_user_table(uint32_t uid, struct user_info **ui_ptr)
  {
        struct user_info *ui = lookup_uid(uid);
  
                return 1;
        ui->uid = uid;
        ui->flags |= UI_FL_SLOT_USED;
-       return open_user_table(dirname, ui, 1);
+       return open_user_table(ui, 1);
  }
  
- static char *get_uid_list_name(const char *dirname)
+ static char *get_uid_list_name(void)
  {
-       return make_message("%s/uid_list", dirname);
+       return make_message("%s/uid_list", database_dir);
  }
  /**
   * Open the osl tables for all admissible uids.
   *
   * \return Stamdard.
   */
- int open_admissible_user_tables(const char *dirname,
-               struct uid_range *admissible_uids)
+ int open_admissible_user_tables(struct uid_range *admissible_uids)
  {
        struct user_info *ui;
  
                ui->flags |= UI_FL_ADMISSIBLE;
                if (ui->table)
                        continue;
-               ret = open_user_table(dirname, ui, 0);
+               ret = open_user_table(ui, 0);
                if (ret < 0)
                        return ret;
        }
   *
   * \return Standard.
   */
- int read_uid_file(const char *dirname)
+ int read_uid_file(void)
  {
        size_t size;
        uint32_t n;
-       char *filename = get_uid_list_name(dirname), *map;
+       char *filename = get_uid_list_name(), *map;
        int ret = mmap_full_file(filename, O_RDONLY, (void **)&map, &size, NULL);
        unsigned bits;
  
@@@ -562,7 -561,7 +560,7 @@@ out
   *
   * \return Standard.
   */
- int write_uid_file(const char *dirname)
+ int write_uid_file(void)
  {
        char *buf, *p, *filename;
        size_t size = num_uids * sizeof(uint32_t);
                write_u32(p, ui->uid);
                p += sizeof(uint32_t);
        }
-       filename = get_uid_list_name(dirname);
+       filename = get_uid_list_name();
        ret = adu_write_file(filename, buf, size);
        free(filename);
        free(buf);