|
|
c7c078c |
Add additional #include directives for more function prototypes,
|
|
|
c7c078c |
to avoid implicit function declarations. Declare appledouble_write,
|
|
|
c7c078c |
cmdline_afp_setup_client in the appropriate header files.
|
|
|
c7c078c |
|
|
|
c7c078c |
These changes expose an argument type mismatch in the function
|
|
|
c7c078c |
appledouble_truncate, in the calls to remove_opened_fork. This may
|
|
|
c7c078c |
or may have not worked before, depending on how the ABI implements
|
|
|
c7c078c |
passing this struct by value.
|
|
|
c7c078c |
|
|
|
c7c078c |
The use of basename in start_afpfsd is suspect; this should probaby use
|
|
|
c7c078c |
dirname instead.
|
|
|
c7c078c |
|
|
|
c7c078c |
Submitted upstream: <https://sourceforge.net/p/afpfs-ng/patches/5/>
|
|
|
c7c078c |
|
|
|
c7c078c |
diff --git a/cmdline/cmdline_afp.h b/cmdline/cmdline_afp.h
|
|
|
c7c078c |
index ebdf357fc952972c..e0ec4570f69b71ec 100644
|
|
|
c7c078c |
--- a/cmdline/cmdline_afp.h
|
|
|
c7c078c |
+++ b/cmdline/cmdline_afp.h
|
|
|
c7c078c |
@@ -28,5 +28,6 @@ int com_disconnect(char * arg);
|
|
|
c7c078c |
void cmdline_afp_exit(void);
|
|
|
c7c078c |
|
|
|
c7c078c |
int cmdline_afp_setup(int recursive, char * url_string);
|
|
|
c7c078c |
+void cmdline_afp_setup_client(void);
|
|
|
c7c078c |
|
|
|
c7c078c |
#endif
|
|
|
c7c078c |
diff --git a/cmdline/cmdline_main.c b/cmdline/cmdline_main.c
|
|
|
c7c078c |
index ffb39ebacb8f262c..deccf8a4cc342bf0 100644
|
|
|
c7c078c |
--- a/cmdline/cmdline_main.c
|
|
|
c7c078c |
+++ b/cmdline/cmdline_main.c
|
|
|
c7c078c |
@@ -17,6 +17,7 @@
|
|
|
c7c078c |
#include <getopt.h>
|
|
|
c7c078c |
#include <ctype.h>
|
|
|
c7c078c |
#include <signal.h>
|
|
|
c7c078c |
+#include "afp.h"
|
|
|
c7c078c |
#include "cmdline_afp.h"
|
|
|
c7c078c |
#include "cmdline_testafp.h"
|
|
|
c7c078c |
|
|
|
c7c078c |
diff --git a/fuse/client.c b/fuse/client.c
|
|
|
c7c078c |
index d19e9efb2dcb60b7..beceaa5594a89b80 100644
|
|
|
c7c078c |
--- a/fuse/client.c
|
|
|
c7c078c |
+++ b/fuse/client.c
|
|
|
c7c078c |
@@ -10,6 +10,7 @@
|
|
|
c7c078c |
#include <unistd.h>
|
|
|
c7c078c |
#include <errno.h>
|
|
|
c7c078c |
#include <grp.h>
|
|
|
c7c078c |
+#include <libgen.h>
|
|
|
c7c078c |
|
|
|
c7c078c |
#include "config.h"
|
|
|
c7c078c |
#include <afp.h>
|
|
|
c7c078c |
diff --git a/fuse/daemon.c b/fuse/daemon.c
|
|
|
c7c078c |
index 8b3b8d9146633518..abf6c02e390142b2 100644
|
|
|
c7c078c |
--- a/fuse/daemon.c
|
|
|
c7c078c |
+++ b/fuse/daemon.c
|
|
|
c7c078c |
@@ -23,6 +23,8 @@
|
|
|
c7c078c |
#include <signal.h>
|
|
|
c7c078c |
#include <sys/socket.h>
|
|
|
c7c078c |
|
|
|
c7c078c |
+#include <fuse.h>
|
|
|
c7c078c |
+
|
|
|
c7c078c |
#include "afp.h"
|
|
|
c7c078c |
|
|
|
c7c078c |
#include "dsi.h"
|
|
|
c7c078c |
diff --git a/lib/dsi.c b/lib/dsi.c
|
|
|
c7c078c |
index 8a469794542ec447..3fd10fb24c770ca8 100644
|
|
|
c7c078c |
--- a/lib/dsi.c
|
|
|
c7c078c |
+++ b/lib/dsi.c
|
|
|
c7c078c |
@@ -27,6 +27,7 @@
|
|
|
c7c078c |
#include "libafpclient.h"
|
|
|
c7c078c |
#include "afp_internal.h"
|
|
|
c7c078c |
#include "afp_replies.h"
|
|
|
c7c078c |
+#include "codepage.h"
|
|
|
c7c078c |
|
|
|
c7c078c |
/* define this in order to get reams of DSI debugging information */
|
|
|
c7c078c |
#undef DEBUG_DSI
|
|
|
c7c078c |
diff --git a/lib/lowlevel.c b/lib/lowlevel.c
|
|
|
c7c078c |
index f3b632c2ae2da763..1edc9cdce5cc8429 100644
|
|
|
c7c078c |
--- a/lib/lowlevel.c
|
|
|
c7c078c |
+++ b/lib/lowlevel.c
|
|
|
c7c078c |
@@ -25,6 +25,8 @@
|
|
|
c7c078c |
#include "utils.h"
|
|
|
c7c078c |
#include "did.h"
|
|
|
c7c078c |
#include "users.h"
|
|
|
c7c078c |
+#include "midlevel.h"
|
|
|
c7c078c |
+#include "forklist.h"
|
|
|
c7c078c |
|
|
|
c7c078c |
static void set_nonunix_perms(unsigned int * mode, struct afp_file_info *fp)
|
|
|
c7c078c |
{
|
|
|
c7c078c |
diff --git a/lib/proto_files.c b/lib/proto_files.c
|
|
|
c7c078c |
index 933956da6a6d2ce6..d2acd562a2671869 100644
|
|
|
c7c078c |
--- a/lib/proto_files.c
|
|
|
c7c078c |
+++ b/lib/proto_files.c
|
|
|
c7c078c |
@@ -14,6 +14,7 @@
|
|
|
c7c078c |
#include "dsi_protocol.h"
|
|
|
c7c078c |
#include "afp_protocol.h"
|
|
|
c7c078c |
#include "afp_internal.h"
|
|
|
c7c078c |
+#include "afp_replies.h"
|
|
|
c7c078c |
|
|
|
c7c078c |
/* afp_setfileparms, afp_setdirparms and afpsetfiledirparms are all remarkably
|
|
|
c7c078c |
similiar. We abstract them to afp-setparms_lowlevel. */
|
|
|
c7c078c |
diff --git a/lib/proto_replyblock.c b/lib/proto_replyblock.c
|
|
|
c7c078c |
index f66791614a52ca3d..c59629b24ab83cec 100644
|
|
|
c7c078c |
--- a/lib/proto_replyblock.c
|
|
|
c7c078c |
+++ b/lib/proto_replyblock.c
|
|
|
c7c078c |
@@ -10,6 +10,7 @@
|
|
|
c7c078c |
#include "afp.h"
|
|
|
c7c078c |
#include "utils.h"
|
|
|
c7c078c |
#include "afp_internal.h"
|
|
|
c7c078c |
+#include "afp_replies.h"
|
|
|
c7c078c |
|
|
|
c7c078c |
|
|
|
c7c078c |
/* FIXME: should do bounds checking */
|
|
|
c7c078c |
diff --git a/lib/resource.c b/lib/resource.c
|
|
|
c7c078c |
index 6be4a5b1de51fec5..fb39889f0d7702c0 100644
|
|
|
c7c078c |
--- a/lib/resource.c
|
|
|
c7c078c |
+++ b/lib/resource.c
|
|
|
c7c078c |
@@ -8,6 +8,7 @@
|
|
|
c7c078c |
#include "lowlevel.h"
|
|
|
c7c078c |
#include "did.h"
|
|
|
c7c078c |
#include "midlevel.h"
|
|
|
c7c078c |
+#include "forklist.h"
|
|
|
c7c078c |
|
|
|
c7c078c |
#define appledouble ".AppleDouble"
|
|
|
c7c078c |
#define finderinfo_string ".finderinfo"
|
|
|
c7c078c |
@@ -362,12 +363,12 @@ int appledouble_truncate(struct afp_volume * volume, const char * path, int offs
|
|
|
c7c078c |
ret=ll_zero_file(volume,fp.forkid,0);
|
|
|
c7c078c |
if (ret<0) {
|
|
|
c7c078c |
afp_closefork(volume,fp.forkid);
|
|
|
c7c078c |
- remove_opened_fork(volume,fp);
|
|
|
c7c078c |
+ remove_opened_fork(volume,&fp);
|
|
|
c7c078c |
free(newpath);
|
|
|
c7c078c |
return ret;
|
|
|
c7c078c |
}
|
|
|
c7c078c |
afp_closefork(volume,fp.forkid);
|
|
|
c7c078c |
- remove_opened_fork(volume,fp);
|
|
|
c7c078c |
+ remove_opened_fork(volume,&fp);
|
|
|
c7c078c |
|
|
|
c7c078c |
return 1;
|
|
|
c7c078c |
case AFP_META_APPLEDOUBLE:
|
|
|
c7c078c |
diff --git a/lib/resource.h b/lib/resource.h
|
|
|
c7c078c |
index 6a0d38a6275dd6f5..2efff106c94e6637 100644
|
|
|
c7c078c |
--- a/lib/resource.h
|
|
|
c7c078c |
+++ b/lib/resource.h
|
|
|
c7c078c |
@@ -31,6 +31,9 @@ int appledouble_read(struct afp_volume * volume, struct afp_file_info *fp,
|
|
|
c7c078c |
|
|
|
c7c078c |
int appledouble_close(struct afp_volume * volume, struct afp_file_info * fp);
|
|
|
c7c078c |
|
|
|
c7c078c |
+int appledouble_write(struct afp_volume * volume, struct afp_file_info *fp,
|
|
|
c7c078c |
+ const char *data, size_t size, off_t offset, size_t *totalwritten);
|
|
|
c7c078c |
+
|
|
|
c7c078c |
int appledouble_chmod(struct afp_volume * volume, const char * path, mode_t mode);
|
|
|
c7c078c |
|
|
|
c7c078c |
int appledouble_unlink(struct afp_volume * volume, const char *path);
|
|
|
c7c078c |
diff --git a/lib/server.c b/lib/server.c
|
|
|
c7c078c |
index 977c418efccae88b..93400dd92a4c0af6 100644
|
|
|
c7c078c |
--- a/lib/server.c
|
|
|
c7c078c |
+++ b/lib/server.c
|
|
|
c7c078c |
@@ -7,6 +7,7 @@
|
|
|
c7c078c |
|
|
|
c7c078c |
#include <string.h>
|
|
|
c7c078c |
#include <time.h>
|
|
|
c7c078c |
+#include <sys/time.h>
|
|
|
c7c078c |
|
|
|
c7c078c |
#include "afp.h"
|
|
|
c7c078c |
#include "dsi.h"
|