]> arthur.barton.de Git - netatalk.git/commitdiff
ad_size: if it's a symlink don't use fstat
authordidg <didg>
Fri, 26 Feb 2010 14:13:16 +0000 (14:13 +0000)
committerdidg <didg>
Fri, 26 Feb 2010 14:13:16 +0000 (14:13 +0000)
libatalk/adouble/ad_size.c

index b2b29caeae6254fbf5459b2a3d4c47b2d024a7eb..0b45babdb954f6342721e4ba7093ea598590e6d8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: ad_size.c,v 1.7 2006-09-29 09:39:16 didg Exp $
+ * $Id: ad_size.c,v 1.8 2010-02-26 14:13:16 didg Exp $
  *
  * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
  * All rights reserved. See COPYRIGHT.
@@ -11,6 +11,7 @@
 #include "config.h"
 #endif /* HAVE_CONFIG_H */
 
+#include <string.h>
 #include <atalk/logger.h>
 #include <atalk/adouble.h>
 
@@ -18,7 +19,10 @@ off_t ad_size(const struct adouble *ad, const u_int32_t eid)
 {
   if (eid == ADEID_DFORK) {
     struct stat st;
-    
+
+    if (ad->ad_data_fork.adf_syml) 
+        return strlen(ad->ad_data_fork.adf_syml);
+
     if (fstat(ad_data_fileno(ad), &st) < 0)
       return 0;
     return st.st_size;