]> arthur.barton.de Git - netatalk.git/commitdiff
Remove TimeMachine volume used size FCE event
authorFrank Lahm <franklahm@googlemail.com>
Thu, 8 Nov 2012 10:39:13 +0000 (11:39 +0100)
committerFrank Lahm <franklahm@googlemail.com>
Thu, 8 Nov 2012 10:39:13 +0000 (11:39 +0100)
bin/misc/fce.c
etc/afpd/fce_api.c
etc/afpd/volume.c
etc/afpd/volume.h
include/atalk/fce_api.h
man/man5/afp.conf.5.tmpl

index d69699079ff99c63df589f5450fbddc226f3ee3f..dc58602ee8c69ef6abca408f71721cb4293336d8 100644 (file)
@@ -27,8 +27,7 @@ static char *fce_ev_names[] = {
     "FCE_FILE_DELETE",
     "FCE_DIR_DELETE",
     "FCE_FILE_CREATE",
-    "FCE_DIR_CREATE",
-    "FCE_TM_SIZE"
+    "FCE_DIR_CREATE"
 };
 
 // get sockaddr, IPv4 or IPv6:
@@ -134,13 +133,6 @@ int main(void)
         if (memcmp(packet.magic, FCE_PACKET_MAGIC, sizeof(packet.magic)) == 0) {
 
             switch (packet.mode) {
-            case FCE_TM_SIZE:
-                memcpy(&tmsize, packet.data, sizeof(uint64_t));
-                tmsize = ntoh64(tmsize);
-                printf("ID: %" PRIu32 ", Event: %s, Volume: %s, TM used size: %" PRIu64 " \n",
-                       packet.event_id, fce_ev_names[packet.mode], packet.data + sizeof(uint64_t), tmsize);
-                break;
-
             case FCE_CONN_START:
                 printf("FCE Start\n");
                 break;
index bb42bb1e42e228e08ef99fa7defcf8e9bddb108a..7be4336a20bba7887cb9742ca3d569a47e29453c 100644 (file)
@@ -70,7 +70,6 @@ static unsigned long fce_ev_enabled =
     (1 << FCE_FILE_CREATE) |
     (1 << FCE_DIR_CREATE);
 
-static uint64_t tm_used;          /* used for passing to event handler */
 #define MAXIOBUF 1024
 static char iobuf[MAXIOBUF];
 static const char *skip_files[] = 
@@ -86,8 +85,7 @@ static char *fce_event_names[] = {
     "FCE_FILE_DELETE",
     "FCE_DIR_DELETE",
     "FCE_FILE_CREATE",
-    "FCE_DIR_CREATE",
-    "FCE_TM_SIZE",
+    "FCE_DIR_CREATE"
 };
 
 /*
@@ -190,19 +188,7 @@ static ssize_t build_fce_packet( struct fce_packet *packet, char *path, int mode
     /* This is the payload len. Means: the packet has len bytes more until packet is finished */
     data_len = FCE_PACKET_HEADER_SIZE + pathlen;
 
-    switch (mode) {
-    case FCE_TM_SIZE:
-        t = (uint64_t *)packet->data;
-        *t = hton64(tm_used);
-        memcpy(packet->data + sizeof(tm_used), path, pathlen);
-        
-        packet->datalen = pathlen + sizeof(tm_used);
-        data_len += sizeof(tm_used);
-        break;
-    default:
-        memcpy(packet->data, path, pathlen);
-        break;
-    }
+    memcpy(packet->data, path, pathlen);
 
     /* return the packet len */
     return data_len;
@@ -401,12 +387,11 @@ static int register_fce(const char *u_name, int is_dir, int mode)
        }
 
 
+    /* FIXME: use fullpathname() for path? */
        char full_path_buffer[MAXPATHLEN + 1] = {""};
        const char *cwd = getcwdpath();
 
-    if (mode == FCE_TM_SIZE) {
-        strlcpy(full_path_buffer, u_name, MAXPATHLEN);
-    } else if (!is_dir || mode == FCE_DIR_DELETE) {
+    if (!is_dir || mode == FCE_DIR_DELETE) {
                if (strlen( cwd ) + strlen( u_name) + 1 >= MAXPATHLEN) {
                        LOG(log_error, logtype_fce, "FCE file name too long: %s/%s", cwd, u_name );
                        return AFPERR_PARAM;
@@ -421,14 +406,11 @@ static int register_fce(const char *u_name, int is_dir, int mode)
        }
 
        /* Can we ignore this event based on type or history? */
-       if (!(mode & FCE_TM_SIZE) && fce_handle_coalescation( full_path_buffer, is_dir, mode ))
-       {
+       if (fce_handle_coalescation(full_path_buffer, is_dir, mode)) {
                LOG(log_debug9, logtype_fce, "Coalesced fc event <%d> for <%s>", mode, full_path_buffer );
                return AFP_OK;
        }
 
-       LOG(log_debug9, logtype_fce, "Detected fc event <%d> for <%s>", mode, full_path_buffer );
-
     if (mode & FCE_FILE_MODIFY) {
         save_close_event(full_path_buffer);
         return AFP_OK;
@@ -462,7 +444,6 @@ static void check_saved_close_events(int fmodwait)
 
 void fce_pending_events(AFPObj *obj)
 {
-    vol_fce_tm_event();
     check_saved_close_events(obj->options.fce_fmodwait);
 }
 
@@ -540,22 +521,6 @@ int fce_register_file_modification( struct ofork *ofork )
     
     return ret;    
 }
-
-int fce_register_tm_size(const char *vol, size_t used)
-{
-    int ret = AFP_OK;
-
-    if (vol == NULL)
-        return AFPERR_PARAM;
-
-    if (!(fce_ev_enabled & (1 << FCE_TM_SIZE)))
-        return ret;
-
-    tm_used = used;             /* oh what a hack */
-    ret = register_fce(vol, false, FCE_TM_SIZE);
-
-    return ret;
-}
 #endif
 
 /*
@@ -601,8 +566,6 @@ int fce_set_events(const char *events)
             fce_ev_enabled |= (1 << FCE_FILE_CREATE);
         } else if (strcmp(p, "dcre") == 0) {
             fce_ev_enabled |= (1 << FCE_DIR_CREATE);
-        } else if (strcmp(p, "tmsz") == 0) {
-            fce_ev_enabled |= (1 << FCE_TM_SIZE);
         }
     }
 
index 7e70c65de9b036a967aaa3bf52977f9dea3c93a6..61d8b4086b8a6670959ff51c1dcb157a8ce562c2 100644 (file)
@@ -264,22 +264,6 @@ getvolspace_done:
     return( AFP_OK );
 }
 
-#define FCE_TM_DELTA 10  /* send notification every 10 seconds */
-void vol_fce_tm_event(void)
-{
-    static time_t last;
-    time_t now = time(NULL);
-    struct vol  *vol = getvolumes();
-
-    if ((last + FCE_TM_DELTA) < now) {
-        last = now;
-        for ( ; vol; vol = vol->v_next ) {
-            if (vol->v_flags & AFPVOL_TM)
-                (void)fce_register_tm_size(vol->v_path, vol->v_tm_used + vol->v_appended);
-        }
-    }
-}
-
 /* -----------------------
  * set volume creation date
  * avoid duplicate, well at least it tries
index 3bca88214bfee50687bc7dc052d5e70a9bb8c948..a8bd2b8bad453a6b51de78a8f90dad5ee8026257 100644 (file)
@@ -19,7 +19,6 @@ extern int              ustatfs_getvolspace (const struct vol *,
                                              uint32_t *);
 extern void             setvoltime (AFPObj *, struct vol *);
 extern int              pollvoltime (AFPObj *);
-extern void             vol_fce_tm_event(void);
 
 /* FP functions */
 int afp_openvol      (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
index b76c06cbe11dfd0f6036721c6e47c1c2f8eb0c99..211921b72e9301ef6ee34d71b66528d71cd48104 100755 (executable)
 #define FCE_DIR_DELETE      3
 #define FCE_FILE_CREATE     4
 #define FCE_DIR_CREATE      5
-#define FCE_TM_SIZE         6
 #define FCE_CONN_START     42
 #define FCE_CONN_BROKEN    99
 
 #define FCE_FIRST_EVENT     FCE_FILE_MODIFY /* keep in sync with last file event above */
-#define FCE_LAST_EVENT      FCE_TM_SIZE     /* keep in sync with last file event above */
+#define FCE_LAST_EVENT      FCE_DIR_CREATE  /* keep in sync with last file event above */
 
 /* fce_packet.fce_magic */
 #define FCE_PACKET_MAGIC  "at_fcapi"
@@ -53,11 +52,10 @@ int fce_register_delete_dir( char *name );
 int fce_register_new_dir( struct path *path );
 int fce_register_new_file( struct path *path );
 int fce_register_file_modification( struct ofork *ofork );
-int fce_register_tm_size(const char *vol, size_t used);
 
 int fce_add_udp_socket(const char *target );  // IP or IP:Port
 int fce_set_coalesce(const char *coalesce_opt ); // all|delete|create
-int fce_set_events(const char *events);     /* fmod,fdel,ddel,fcre,dcre,tmsz (default is all except tmsz) */
+int fce_set_events(const char *events);     /* fmod,fdel,ddel,fcre,dcre */
 
 #define FCE_DEFAULT_PORT 12250
 #define FCE_DEFAULT_PORT_STRING "12250"
index b915b7791f02ab2833a8922647fa645e8c0ec57b..0e0bc653610ae67101fc1d75c98de1ab98e31506 100644 (file)
@@ -624,7 +624,7 @@ Enables sending FCE events to the specified
 is 12250 if not specified\&. Specifying mutliple listeners is done by having this option once for each of them\&.
 .RE
 .PP
-fce events = \fIfmod,fdel,ddel,fcre,dcre,tmsz\fR \fB(G)\fR
+fce events = \fIfmod,fdel,ddel,fcre,dcre\fR \fB(G)\fR
 .RS 4
 Speficies which FCE events are active, default is
 \fIfmod,fdel,ddel,fcre,dcre\fR\&.