diff options
author | Jan Lipovsky <janlipovsky@gmail.com> | 2010-04-21 16:32:18 +0200 |
---|---|---|
committer | Jan Lipovsky <janlipovsky@gmail.com> | 2010-04-21 16:32:18 +0200 |
commit | 6c262474707c3a63e0395d424e3758a3043ac99b (patch) | |
tree | 2f2801e0fe784ecf327e9146986107ad80b7680a /sfshare-daemon | |
parent | aa7ffad7d63b0ed92c1a20f1a8ec4eec8688aec5 (diff) | |
download | sfshare-6c262474707c3a63e0395d424e3758a3043ac99b.tar.gz sfshare-6c262474707c3a63e0395d424e3758a3043ac99b.tar.xz sfshare-6c262474707c3a63e0395d424e3758a3043ac99b.zip |
Code clean, gui ui, deamon send errors
Diffstat (limited to 'sfshare-daemon')
-rw-r--r-- | sfshare-daemon/src/dbus_service.c | 4 | ||||
-rw-r--r-- | sfshare-daemon/src/samba_share.c | 28 | ||||
-rw-r--r-- | sfshare-daemon/src/sfshare_errors.h | 1 |
3 files changed, 31 insertions, 2 deletions
diff --git a/sfshare-daemon/src/dbus_service.c b/sfshare-daemon/src/dbus_service.c index c81006d..e65aded 100644 --- a/sfshare-daemon/src/dbus_service.c +++ b/sfshare-daemon/src/dbus_service.c @@ -102,6 +102,10 @@ get_error_msg (Error err) errmsg = g_strdup ("Read only is same as writable"); break; + case ERROR_SHARE_NAME_EXIST: + errmsg = g_strdup ("Share name already exist"); + break; + default: errmsg = g_strdup ("Unknow error type"); break; diff --git a/sfshare-daemon/src/samba_share.c b/sfshare-daemon/src/samba_share.c index 5bfd97d..d2ccac5 100644 --- a/sfshare-daemon/src/samba_share.c +++ b/sfshare-daemon/src/samba_share.c @@ -416,6 +416,27 @@ TSmbConfItem *is_shared_item(GPtrArray *shared_items, const gchar *path) /* +* True if share name exist +*/ +gboolean +share_name_exist (GPtrArray *shared_items, const gchar *sharename) +{ + TSmbConfItem *tmp; + int i; + for(i = 0; i < shared_items->len; i++) + { + tmp = g_ptr_array_index(shared_items,i); + if(strstr(tmp->name->str,sharename)) + { + return TRUE; + } + } + + return FALSE; +} + + +/* * Write new share section or change chare section defined by share parameter */ gint @@ -434,13 +455,16 @@ write_share(GPtrArray *shared_items, TSmbConfItem *share) gboolean change = FALSE; gboolean found = FALSE; - item = is_shared_item(shared_items, share->path->str); /* If item is not shared we just append it to end of smb.conf */ if(!item) - new_share = TRUE; + { + if(share_name_exist(shared_items, share->name->str)) + return ERROR_SHARE_NAME_EXIST; + new_share = TRUE; + } /* smb.conf - File exist test */ if(!g_file_test(smb_conf_path, G_FILE_TEST_EXISTS)) diff --git a/sfshare-daemon/src/sfshare_errors.h b/sfshare-daemon/src/sfshare_errors.h index c1a5b3c..2656717 100644 --- a/sfshare-daemon/src/sfshare_errors.h +++ b/sfshare-daemon/src/sfshare_errors.h @@ -17,6 +17,7 @@ typedef enum ERROR_WRONG_NAME, ERROR_WRONG_PATH, ERROR_READONLY_WRITABLE, + ERROR_SHARE_NAME_EXIST, NUM_ERRORS } Error; |