ftp/ftps.c
changeset 0 30d751ac6d49
child 1 47438813ede2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ftp/ftps.c	Mon Jan 18 14:10:13 2010 +0530
@@ -0,0 +1,53 @@
+#include <rpc/rpc.h>
+#include <stdio.h>
+#include "ftp.h"
+
+extern __thread int errno;
+
+readfile_res* retrieve_file_1_svc(request *req, struct svc_req *rqstp)
+{
+	FILE *file;
+	char data[1024];
+	int bytes;
+	static readfile_res res;
+
+    file = fopen(req->name, "r");
+	if (file == NULL) {
+		res.errno = errno;
+		return (&res);
+    }
+
+    xdr_free((xdrproc_t)xdr_readfile_res, (char *)&res);
+
+    fseek (file, req->start, SEEK_SET);
+	bytes = fread(data, 1, MAXLEN, file);
+    res.readfile_res_u.chunk.data = data;
+	res.readfile_res_u.chunk.bytes = bytes;
+
+	/*
+     * Return the result
+     */
+    res.errno = 0;
+    fclose(file);
+	return (&res);
+}
+
+int* send_file_1_svc(chunksend *rec, struct svc_req *rqstp)
+{
+	FILE *file;
+    int write_bytes;
+    static int result;
+
+	file = fopen(rec->name, "a");
+	if (file == NULL) {
+		result = errno;
+		return &result;
+	}
+
+    write_bytes = fwrite(rec->data, 1, rec->bytes, file);
+	fclose(file);
+
+    result = 0;
+    return &result;
+}
+