]> arthur.barton.de Git - netatalk.git/commitdiff
Fixes
authorFrank Lahm <franklahm@googlemail.com>
Wed, 4 Jan 2012 13:40:38 +0000 (14:40 +0100)
committerFrank Lahm <franklahm@googlemail.com>
Wed, 4 Jan 2012 13:40:38 +0000 (14:40 +0100)
etc/afpd/fork.c
include/atalk/adouble.h
libatalk/adouble/ad_open.c

index 560f766b5e41e29cc21611b08c3b9db13bc37ae4..4b5a9a265eb70bc239c0c42bbee6fe11d48cc22b 100644 (file)
@@ -1353,15 +1353,14 @@ int afp_getforkparams(AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *rbu
         return( AFPERR_PARAM );
     }
 
-    if ( ad_meta_fileno( ofork->of_ad ) != -1 ) { /* META */
+    if (AD_META_OPEN(ofork->of_ad))) {
         if ( ad_refresh( ofork->of_ad ) < 0 ) {
             LOG(log_error, logtype_afpd, "getforkparams(%s): ad_refresh: %s", of_name(ofork), strerror(errno) );
             return( AFPERR_PARAM );
         }
     }
 
-    if (AFP_OK != ( ret = getforkparams( ofork, bitmap,
-                                         rbuf + sizeof( u_short ), &buflen ))) {
+    if (AFP_OK != (ret = getforkparams(ofork, bitmap, rbuf + sizeof( u_short ), &buflen ))) {
         return( ret );
     }
 
index 1b1a16fbf0746c5da93fdae7a64795ebbf18a210..d3466518f84a0507c3d876f03ea1bbbc63a4f8ed 100644 (file)
@@ -191,7 +191,7 @@ struct adouble {
                                            * adouble:ea -> ad_data_fork               */
     struct ad_fd        *ad_mdp;          /* adouble:v2 -> ad_resource_fork           *
                                            * adouble:ea -> ad_data_fork               */
-    int                 ad_flags;         /* Our adouble version info (AD_VERSION*)   */
+    int                 ad_vers;          /* Our adouble version info (AD_VERSION*)   */
     int                 ad_adflags;       /* ad_open flags adflags like ADFLAGS_DIR   */
     uint32_t            ad_inited;
     int                 ad_options;
@@ -335,6 +335,10 @@ struct adouble {
 #define ad_reso_fileno(ad)  ((ad)->ad_rfp->adf_fd)
 #define ad_meta_fileno(ad)  ((ad)->ad_mdp->adf_fd)
 
+#define AD_DATA_OPEN(ad) ((ad)->ad_adflags & ADFLAGS_DF)
+#define AD_META_OPEN(ad) ((ad)->ad_adflags & ADFLAGS_HF)
+#define AD_RSRC_OPEN(ad) ((ad)->ad_adflags & ADFLAGS_RF)
+
 #define ad_getversion(ad)   ((ad)->ad_version)
 
 #define ad_getentrylen(ad,eid)     ((ad)->ad_eid[(eid)].ade_len)
index 1c8cb294b52539fd4688503c2a2b5b31d0fac7c1..c906e07b5535e8a1cb7fcc1d5e379c28d406709b 100644 (file)
@@ -559,10 +559,10 @@ static int ad_error(struct adouble *ad, int adflags)
 {
     int err = errno;
     if ((adflags & ADFLAGS_NOHF)) { /* 1 */
-        /* FIXME double check : set header offset ?*/
+        ad->ad_adflags &= ~ADFLAGS_HF;
         return 0;
     }
-    if ((adflags & ADFLAGS_DF)) { /* 2 */
+    if ((adflags & ADFLAGS_DF) { /* 2 */
         ad_close( ad, ADFLAGS_DF );
         err = errno;
     }