#include "column.h"
#include "command-line.h"
#include "daemon.h"
+#include "dirs.h"
#include "file.h"
#include "json.h"
#include "jsonrpc.h"
VLOG_DEFINE_THIS_MODULE(ovsdb_server);
-#if HAVE_OPENSSL
/* SSL configuration. */
static char *private_key_file;
static char *certificate_file;
static char *ca_cert_file;
static bool bootstrap_ca_cert;
-#endif
static unixctl_cb_func ovsdb_server_exit;
static unixctl_cb_func ovsdb_server_compact;
if (error) {
ovs_fatal(0, "%s", ovsdb_error_to_string(error));
}
+ free(file_name);
jsonrpc = ovsdb_jsonrpc_server_create(db);
reconfigure_from_db(jsonrpc, db, &remotes);
const union ovsdb_atom *atom;
atom = read_column(row, column_name, OVSDB_TYPE_STRING);
- *stringp = atom ? atom->string : 0;
+ *stringp = atom ? atom->string : NULL;
return atom != NULL;
}
ovsdb_jsonrpc_server_set_remotes(jsonrpc, &resolved_remotes);
shash_destroy_free_data(&resolved_remotes);
-#if HAVE_OPENSSL
/* Configure SSL. */
stream_ssl_set_key_and_cert(query_db_string(db, private_key_file),
query_db_string(db, certificate_file));
stream_ssl_set_ca_cert_file(query_db_string(db, ca_cert_file),
bootstrap_ca_cert);
-#endif
}
static void
DAEMON_OPTION_ENUMS
};
static struct option long_options[] = {
- {"remote", required_argument, 0, OPT_REMOTE},
- {"unixctl", required_argument, 0, OPT_UNIXCTL},
- {"run", required_argument, 0, OPT_RUN},
- {"help", no_argument, 0, 'h'},
- {"version", no_argument, 0, 'V'},
+ {"remote", required_argument, NULL, OPT_REMOTE},
+ {"unixctl", required_argument, NULL, OPT_UNIXCTL},
+ {"run", required_argument, NULL, OPT_RUN},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
DAEMON_LONG_OPTIONS,
VLOG_LONG_OPTIONS,
LEAK_CHECKER_LONG_OPTIONS,
-#ifdef HAVE_OPENSSL
- {"bootstrap-ca-cert", required_argument, 0, OPT_BOOTSTRAP_CA_CERT},
- {"private-key", required_argument, 0, 'p'},
- {"certificate", required_argument, 0, 'c'},
- {"ca-cert", required_argument, 0, 'C'},
-#endif
- {0, 0, 0, 0},
+ {"bootstrap-ca-cert", required_argument, NULL, OPT_BOOTSTRAP_CA_CERT},
+ {"private-key", required_argument, NULL, 'p'},
+ {"certificate", required_argument, NULL, 'c'},
+ {"ca-cert", required_argument, NULL, 'C'},
+ {NULL, 0, NULL, 0},
};
char *short_options = long_options_to_short_options(long_options);
DAEMON_OPTION_HANDLERS
LEAK_CHECKER_OPTION_HANDLERS
-#ifdef HAVE_OPENSSL
case 'p':
private_key_file = optarg;
break;
ca_cert_file = optarg;
bootstrap_ca_cert = true;
break;
-#endif
case '?':
exit(EXIT_FAILURE);
argc -= optind;
argv += optind;
- if (argc > 1) {
+ switch (argc) {
+ case 0:
+ *file_namep = xasprintf("%s/openvswitch/conf.db", ovs_sysconfdir());
+ break;
+
+ case 1:
+ *file_namep = xstrdup(argv[0]);
+ break;
+
+ default:
ovs_fatal(0, "database file is only non-option argument; "
"use --help for usage");
- } else if (argc < 1) {
- ovs_fatal(0, "missing database file argument; use --help for usage");
}
-
- *file_namep = argv[0];
}
static void