- cmdline_parser(argc, argv, &args_info);
- if (!args_info.user_given)
- args_info.user_arg = para_logname();
- if (!args_info.key_file_given) {
- home = para_homedir();
- sprintf(default_key_file, "%s/.paraslash/key.%s", home,
- args_info.user_arg);
- free(home);
- }
- if (!args_info.config_file_given) {
- home = para_homedir();
- sprintf(default_config_file, "%s/.paraslash/client.conf",
- home);
- free(home);
- }
- if (!args_info.config_file_given)
- *config_file = default_config_file;
- else
- *config_file = args_info.config_file_arg;
- ret = stat(*config_file, &statbuf);
- if (ret && args_info.config_file_given) {
- fprintf(stderr, "can not stat config file %s\n",
- args_info.config_file_arg);
- exit(EXIT_FAILURE);
+ p->fd = -1;
+ cmdline_parser(argc, argv, &p->conf);
+ ret = - E_CLIENT_SYNTAX;
+ if (!p->conf.inputs_num)
+ goto out;
+ p->user = p->conf.user_given?
+ para_strdup(p->conf.user_arg) : para_logname();
+
+ p->key_file = p->conf.key_file_given?
+ para_strdup(p->conf.key_file_arg) :
+ make_message("%s/.paraslash/key.%s", home, p->user);
+
+ p->config_file = p->conf.config_file_given?
+ para_strdup(p->conf.config_file_arg) :
+ make_message("%s/.paraslash/client.conf", home);
+ ret = stat(p->config_file, &statbuf);
+ if (ret && p->conf.config_file_given) {
+ ret = -E_NO_CONFIG;
+ goto out;