File upload support for webternet (r=psychonic).
authorAsher Baker <asherkin@gmail.com>
Thu May 16 14:49:03 2013 +0100 (2013-05-16)
changeset 3919116256b519b5
parent 3918 312fa627bf21
child 3920 e4fa6b583893
File upload support for webternet (r=psychonic).
extensions/curl/curlapi.cpp
extensions/curl/curlapi.h
public/extensions/IWebternet.h
     1.1 --- a/extensions/curl/curlapi.cpp	Tue May 14 11:27:06 2013 -0400
     1.2 +++ b/extensions/curl/curlapi.cpp	Thu May 16 14:49:03 2013 +0100
     1.3 @@ -18,6 +18,18 @@
     1.4  	return lastError == CURL_FORMADD_OK;
     1.5  }
     1.6  
     1.7 +bool WebForm::AddFile(const char *name, const char *path)
     1.8 +{
     1.9 +	lastError = curl_formadd(&first,
    1.10 +		&last,
    1.11 +		CURLFORM_COPYNAME,
    1.12 +		name,
    1.13 +		CURLFORM_FILE,
    1.14 +		data,
    1.15 +		CURLFORM_END);
    1.16 +	return lastError == CURL_FORMADD_OK;
    1.17 +}
    1.18 +
    1.19  curl_httppost *WebForm::GetFormData()
    1.20  {
    1.21  	return first;
     2.1 --- a/extensions/curl/curlapi.h	Tue May 14 11:27:06 2013 -0400
     2.2 +++ b/extensions/curl/curlapi.h	Thu May 16 14:49:03 2013 +0100
     2.3 @@ -44,6 +44,7 @@
     2.4  	~WebForm();
     2.5  public:
     2.6  	bool AddString(const char *name, const char *data);
     2.7 +	bool AddFile(const char *name, const char *path);
     2.8  public:
     2.9  	curl_httppost *GetFormData();
    2.10  private:
     3.1 --- a/public/extensions/IWebternet.h	Tue May 14 11:27:06 2013 -0400
     3.2 +++ b/public/extensions/IWebternet.h	Thu May 16 14:49:03 2013 +0100
     3.3 @@ -40,7 +40,7 @@
     3.4   */
     3.5  
     3.6  #define SMINTERFACE_WEBTERNET_NAME		"IWebternet"
     3.7 -#define SMINTERFACE_WEBTERNET_VERSION	2
     3.8 +#define SMINTERFACE_WEBTERNET_VERSION	3
     3.9  
    3.10  namespace SourceMod
    3.11  {
    3.12 @@ -79,6 +79,17 @@
    3.13  		 * @return					True on success, false on failure.
    3.14  		 */
    3.15  		virtual bool AddString(const char *name, const char *data) = 0;
    3.16 +
    3.17 +		/**
    3.18 +		 * @brief Adds a file to the form.
    3.19 +		 *
    3.20 +		 * All data is copied locally and may go out of scope.
    3.21 +		 *
    3.22 +		 * @param name				Field name (null terminated).
    3.23 +		 * @param path				Local file path (null terminated).
    3.24 +		 * @return					True on success, false on failure.
    3.25 +		 */
    3.26 +		virtual bool AddFile(const char *name, const char *path) = 0;
    3.27  	};
    3.28  
    3.29  	/**