-FILE *ask_and_open(const char *filename, const char *what, const char *mode)
-{
- FILE *r;
- char *directory;
- char *fn;
-
- /* Check stdin and stdout */
- if(!isatty(0) || !isatty(1)) {
- /* Argh, they are running us from a script or something. Write
- the files to the current directory and let them burn in hell
- for ever. */
- fn = xstrdup(filename);
- } else {
- /* Ask for a file and/or directory name. */
- fprintf(stdout, _("Please enter a file to save %s to [%s]: "),
- what, filename);
- fflush(stdout);
+bool read_server_config(void) {
+ char fname[PATH_MAX];
+ bool x;
+
+ read_config_options(config_tree, NULL);
+
+ snprintf(fname, sizeof(fname), "%s" SLASH "tinc.conf", confbase);
+ errno = 0;
+ x = read_config_file(config_tree, fname, true);
+
+ // We will try to read the conf files in the "conf.d" dir
+ if(x) {
+ char dname[PATH_MAX];
+ snprintf(dname, sizeof(dname), "%s" SLASH "conf.d", confbase);
+ DIR *dir = opendir(dname);
+
+ // If we can find this dir
+ if(dir) {
+ struct dirent *ep;