Enlightenment CVS committal
Author : cedric
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_con
Modified Files:
Ecore_Con.h ecore_con_url.c
Log Message:
Add FTP upload support for Ecore_Con from Massimiliano Calamelli.
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_con/Ecore_Con.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- Ecore_Con.h 26 May 2008 05:16:33 -0000 1.38
+++ Ecore_Con.h 28 May 2008 09:02:39 -0000 1.39
@@ -212,7 +212,8 @@
EAPI int ecore_con_dns_lookup(const char *name,
void (*done_cb)(void *data,
struct hostent *hostent),
void *data);
-
+
+ EAPI int ecore_con_url_ftp_upload(Ecore_Con_Url *url_con, char
*filename, char *user, char *pass, char *uploadas);
#ifdef __cplusplus
}
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_con/ecore_con_url.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- ecore_con_url.c 13 Mar 2008 09:26:24 -0000 1.21
+++ ecore_con_url.c 28 May 2008 09:02:39 -0000 1.22
@@ -33,7 +33,7 @@
* ecore_con_url_url_set(url_con, "ftp://ftp.example.com/pub/myfile");
* ecore_con_url_send(url, NULL, 0, NULL);
*
- * FIXME: Support more CURL features: Authentication, FTP upload, Progress
callbacks and more...
+ * FIXME: Support more CURL features: Authentication, Progress callbacks and
more...
*/
#include "Ecore.h"
#include "ecore_private.h"
@@ -41,6 +41,7 @@
#include "ecore_con_private.h"
#include <errno.h>
+#include <sys/stat.h>
/**
* @defgroup Ecore_Con_Url_Group Ecore URL Connection Functions
@@ -491,6 +492,55 @@
content_type = NULL;
#endif
}
+
+/**
+ * Makes a FTP upload
+ * @return FIXME: To be documented.
+ * @ingroup Ecore_Con_Url_Group
+ */
+EAPI int
+ecore_con_url_ftp_upload(Ecore_Con_Url *url_con, char *filename, char *user,
char *pass, char *uploadas)
+{
+#ifdef HAVE_CURL
+ char url[4096];
+ char userpwd[4096];
+ FILE *fd;
+ struct stat file_info;
+
+ if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
+ {
+ ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL,
"ecore_con_url_ftp_upload");
+ return 0;
+ }
+
+ if (url_con->active) return 0;
+ if (!url_con->url) return 0;
+
+ if (filename)
+ {
+ if (stat(filename, &file_info)) return 0;
+ fd = fopen(filename, "rb");
+ snprintf(url, sizeof(url), "ftp://%s/%s", url_con->url,
basename(filename));
+ snprintf(userpwd, sizeof(userpwd), "%s:%s", user, pass);
+ curl_easy_setopt(url_con->curl_easy, CURLOPT_VERBOSE, 1);
+ curl_easy_setopt(url_con->curl_easy, CURLOPT_USERPWD, userpwd);
+ curl_easy_setopt(url_con->curl_easy, CURLOPT_UPLOAD, 1);
+ curl_easy_setopt(url_con->curl_easy, CURLOPT_READDATA, fd);
+ ecore_con_url_url_set(url_con, url);
+
+ return _ecore_con_url_perform(url_con);
+ fclose(fd);
+ }
+#else
+ return 0;
+ url_con = NULL;
+ filename = NULL;
+ user = NULL;
+ pass = NULL;
+ uploadas = NULL;
+#endif
+}
+
#ifdef HAVE_CURL
static int
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs