]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/cnid/cnid.c
Merge branch 'v3-cleanup' into tmp/v3.0.4-alex
[netatalk.git] / libatalk / cnid / cnid.c
index fae5067cd4a50447de5b0a58a1225b50411b6cc9..021cecfbfa35ac6425ef9afbde9b61273458fe6f 100644 (file)
@@ -47,7 +47,7 @@ void cnid_register(struct _cnid_module *module)
     /* Check if our module is already registered. */
     list_for_each(ptr, &modules)
         if (0 == strcmp(list_entry(ptr, cnid_module, db_list)->name, module->name)) {
-        LOG(log_error, logtype_afpd, "Module with name [%s] is already registered !", module->name);
+        LOG(log_error, logtype_afpd, "Module with name [%s] is already registered!", module->name);
         return;
     }
 
@@ -162,7 +162,7 @@ struct _cnid_db *cnid_open(const char *volpath, mode_t mask, char *type, int fla
 }
 
 /* ------------------- */
-static void block_signal( u_int32_t flags)
+static void block_signal(uint32_t flags)
 {
     if ((flags & CNID_FLAG_BLOCK)) {
         pthread_sigmask(SIG_BLOCK, &sigblockset, NULL);
@@ -170,7 +170,7 @@ static void block_signal( u_int32_t flags)
 }
 
 /* ------------------- */
-static void unblock_signal(u_int32_t flags)
+static void unblock_signal(uint32_t flags)
 {
     if ((flags & CNID_FLAG_BLOCK)) {
         pthread_sigmask(SIG_UNBLOCK, &sigblockset, NULL);
@@ -200,10 +200,10 @@ static cnid_t valide(cnid_t id)
 /* Closes CNID database. Currently it's just a wrapper around db->cnid_close(). */
 void cnid_close(struct _cnid_db *db)
 {
-u_int32_t flags;
+    uint32_t flags;
 
     if (NULL == db) {
-        LOG(log_error, logtype_afpd, "Error: cnid_close called with NULL argument !");
+        LOG(log_error, logtype_afpd, "Error: cnid_close called with NULL argument!");
         return;
     }
     /* cnid_close free db */
@@ -217,7 +217,10 @@ u_int32_t flags;
 cnid_t cnid_add(struct _cnid_db *cdb, const struct stat *st, const cnid_t did, 
                 const char *name, const size_t len, cnid_t hint)
 {
-cnid_t ret;
+    cnid_t ret;
+
+    if (len == 0)
+        return CNID_INVALID;
 
     block_signal(cdb->flags);
     ret = valide(cdb->cnid_add(cdb, st, did, name, len, hint));
@@ -335,3 +338,15 @@ cnid_t ret;
     unblock_signal(cdb->flags);
     return ret;
 }
+
+/* --------------- */
+int cnid_wipe(struct _cnid_db *cdb)
+{
+    int ret = 0;
+
+    block_signal(cdb->flags);
+    if (cdb->cnid_wipe)
+        ret = cdb->cnid_wipe(cdb);
+    unblock_signal(cdb->flags);
+    return ret;
+}