*/
#include "includes.h"
-#include "dynconfig.h"
-#include "registry.h"
-#include "lib/cmdline/popt_common.h"
-#include "gtk/common/select.h"
+#include "lib/registry/registry.h"
#include "gtk/common/gtk-smb.h"
+#include "lib/events/events.h"
+#include "lib/registry/reg_backend_rpc.h"
+#include "auth/credentials/credentials.h"
static GtkTreeStore *store_keys;
static GtkListStore *store_vals;
g_assert(k);
for(i = 0; W_ERROR_IS_OK(error = reg_key_get_subkey_by_index(mem_ctx, k, i, &sub)); i++) {
- int count;
+ uint32_t count;
/* Replace the blank child with the first directory entry
You may be tempted to remove the blank child node and then
append a new one. Don't. If you remove the blank child
switch(result) {
case GTK_RESPONSE_OK:
filename = strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION(openfilewin)));
- error = reg_open_hive(NULL, user_data, filename, NULL, &root);
+ error = reg_open_hive(NULL, user_data, filename, NULL, NULL, &root);
if(!W_ERROR_IS_OK(error)) {
gtk_show_werror(mainwin, "Error while opening hive", error);
break;
static void on_open_gconf_activate(GtkMenuItem *menuitem, gpointer user_data)
{
struct registry_key *root;
- WERROR error = reg_open_hive(NULL, "gconf", NULL, NULL, &root);
+ WERROR error = reg_open_hive(NULL, "gconf", NULL, NULL, NULL, &root);
if(!W_ERROR_IS_OK(error)) {
gtk_show_werror(mainwin, "Error while opening GConf", error);
return;
static void on_open_local_activate(GtkMenuItem *menuitem, gpointer user_data)
{
- WERROR error = reg_open_local(®istry);
+ WERROR error = reg_open_local(NULL, ®istry, NULL, NULL);
if(!W_ERROR_IS_OK(error)) {
gtk_show_werror(mainwin, "Error while opening local registry", error);
return;
cli_credentials_set_gtk_callbacks(creds);
error = reg_open_remote(®istry,
- creds,
- gtk_rpc_binding_dialog_get_binding_string(GTK_RPC_BINDING_DIALOG(rpcwin), mem_ctx));
+ NULL,
+ creds,
+ gtk_rpc_binding_dialog_get_binding_string(GTK_RPC_BINDING_DIALOG(rpcwin), mem_ctx),
+ NULL);
if(!W_ERROR_IS_OK(error)) {
gtk_show_werror(mainwin, "Error while opening remote registry", error);
}
-static void on_save_activate(GtkMenuItem *menuitem, gpointer user_data)
-{
- WERROR error = reg_save(registry, NULL);
- if(!W_ERROR_IS_OK(error)) {
- gtk_show_werror(mainwin, "Error while saving", error);
- }
-}
-
-
static void on_save_as_activate(GtkMenuItem *menuitem, gpointer user_data)
{
gint result;
- WERROR error;
+ WERROR error = WERR_OK;
GtkWidget *savefilewin = create_savefilewin();
result = gtk_dialog_run(GTK_DIALOG(savefilewin));
switch(result) {
case GTK_RESPONSE_OK:
- error = reg_save(registry, gtk_file_selection_get_filename(GTK_FILE_SELECTION(savefilewin)));
+ /* FIXME: error = reg_dump(registry, gtk_file_selection_get_filename(GTK_FILE_SELECTION(savefilewin))); */
if(!W_ERROR_IS_OK(error)) {
gtk_show_werror(mainwin, "Error while saving as", error);
}
gtk_widget_set_sensitive(entry_name, FALSE);
gtk_entry_set_text(GTK_ENTRY(entry_name), value->name);
- gtk_entry_set_text(GTK_ENTRY(entry_value), reg_val_data_string(mem_ctx, value));
+ gtk_entry_set_text(GTK_ENTRY(entry_value), reg_val_data_string(mem_ctx, value->data_type, &value->data));
gtk_combo_box_set_active(GTK_COMBO_BOX(entry_type), value->data_type);
result = gtk_dialog_run(addwin);
if (result == GTK_RESPONSE_OK)
{
WERROR error;
- struct registry_value *val;
+ DATA_BLOB data;
+ uint32_t data_type;
- reg_string_to_val(mem_ctx,str_regtype(gtk_combo_box_get_active(GTK_COMBO_BOX(entry_type))), gtk_entry_get_text(GTK_ENTRY(entry_value)), &val);
+ reg_string_to_val(mem_ctx,str_regtype(gtk_combo_box_get_active(GTK_COMBO_BOX(entry_type))), gtk_entry_get_text(GTK_ENTRY(entry_value)), &data_type, &data);
- error = reg_val_set(current_key, gtk_entry_get_text(GTK_ENTRY(entry_name)), val->data_type, val->data_blk, val->data_len);
+ error = reg_val_set(current_key, gtk_entry_get_text(GTK_ENTRY(entry_name)), data_type, data);
if (!W_ERROR_IS_OK(error)) {
gtk_show_werror(NULL, "Error while setting value", error);
if (result == GTK_RESPONSE_OK)
{
WERROR error;
- struct registry_value *val;
+ uint32_t data_type;
+ DATA_BLOB data;
- reg_string_to_val(mem_ctx,str_regtype(gtk_combo_box_get_active(GTK_COMBO_BOX(entry_type))), gtk_entry_get_text(GTK_ENTRY(entry_value)), &val);
+ reg_string_to_val(mem_ctx,str_regtype(gtk_combo_box_get_active(GTK_COMBO_BOX(entry_type))), gtk_entry_get_text(GTK_ENTRY(entry_value)), &data_type, &data);
- error = reg_val_set(current_key, gtk_entry_get_text(GTK_ENTRY(entry_name)), val->data_type, val->data_blk, val->data_len);
+ error = reg_val_set(current_key, gtk_entry_get_text(GTK_ENTRY(entry_name)), data_type, data);
if (!W_ERROR_IS_OK(error)) {
gtk_show_werror(NULL, "Error while setting value", error);
1,
str_regtype(val->data_type),
2,
- reg_val_data_string(mem_ctx, val),
+ reg_val_data_string(mem_ctx, val->data_type, &val->data),
3,
val,
-1);
gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);
gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (statusbar), FALSE);
- g_signal_connect ((gpointer) save, "activate",
- G_CALLBACK (on_save_activate),
- NULL);
g_signal_connect ((gpointer) save_as, "activate",
G_CALLBACK (on_save_as_activate),
NULL);
static int gregedit_load_defaults(void)
{
- WERROR error = reg_open_local(®istry);
+ WERROR error = reg_open_local(NULL, ®istry, NULL, NULL);
if(!W_ERROR_IS_OK(error)) {
gtk_show_werror(mainwin, "Error while loading local registry", error);
return -1;
{
int ret;
- gregedit_init_subsystems;
- lp_load(dyn_CONFIGFILE);
- load_interfaces();
+ lp_load();
setup_logging(argv[0], DEBUG_STDERR);
mem_ctx = talloc_init("gregedit");
+ registry_init();
+
gtk_init(&argc, &argv);
mainwin = create_mainwindow();
gtk_widget_show_all(mainwin);