[mapserver-commits] r10889 - trunk/mapserver
svn at osgeo.org
svn at osgeo.org
Sat Jan 22 12:25:28 EST 2011
Author: assefa
Date: 2011-01-22 09:25:28 -0800 (Sat, 22 Jan 2011)
New Revision: 10889
Added:
trunk/mapserver/maphttp.h
Modified:
trunk/mapserver/maphttp.c
trunk/mapserver/mapows.c
trunk/mapserver/mapows.h
trunk/mapserver/nmake.opt
Log:
maphttp.c function only depend on curl (#3661)
Modified: trunk/mapserver/maphttp.c
===================================================================
--- trunk/mapserver/maphttp.c 2011-01-21 20:57:41 UTC (rev 10888)
+++ trunk/mapserver/maphttp.c 2011-01-22 17:25:28 UTC (rev 10889)
@@ -30,11 +30,11 @@
* This should be changed to a test on the presence of libcurl which
* is really what the real dependency is.
*/
-#if defined(USE_WMS_LYR) || defined(USE_WFS_LYR)
+#if defined(USE_CURL)
#include "mapserver.h"
+#include "maphttp.h"
#include "maperror.h"
-#include "mapows.h"
#include "mapthread.h"
MS_CVSID("$Id$")
Added: trunk/mapserver/maphttp.h
===================================================================
--- trunk/mapserver/maphttp.h (rev 0)
+++ trunk/mapserver/maphttp.h 2011-01-22 17:25:28 UTC (rev 10889)
@@ -0,0 +1,122 @@
+/******************************************************************************
+ * $Id: $
+ *
+ * Project: MapServer
+ * Purpose: http requests related functions
+ * Author: MapServer team.
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2005 Regents of the University of Minnesota.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ ****************************************************************************/
+
+#ifndef MAPHTTP_H
+#define MAPHTTP_H
+
+
+
+#include "mapprimitive.h"
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MS_HTTP_SUCCESS(status) (status == 200 || status == 242)
+
+enum MS_HTTP_PROXY_TYPE
+{
+ MS_HTTP,
+ MS_SOCKS5
+};
+
+enum MS_HTTP_AUTH_TYPE
+{
+ MS_BASIC,
+ MS_DIGEST,
+ MS_NTLM,
+ MS_ANY,
+ MS_ANYSAFE
+};
+
+typedef struct http_request_info
+{
+ int nLayerId;
+ char *pszGetUrl;
+ char *pszOutputFile;
+ int nTimeout;
+ rectObj bbox;
+ int width;
+ int height;
+ int nStatus; /* 200=success, value < 0 if request failed */
+ char *pszContentType; /* Content-Type of the response */
+ char *pszErrBuf; /* Buffer where curl can write errors */
+ char *pszPostRequest; /* post request content (NULL for GET) */
+ char *pszPostContentType;/* post request MIME type */
+ char *pszUserAgent; /* User-Agent, auto-generated if not set */
+ char *pszHTTPCookieData; /* HTTP Cookie data */
+
+ char *pszProxyAddress; /* The address (IP or hostname) of proxy svr */
+ long nProxyPort; /* The proxy's port */
+ enum MS_HTTP_PROXY_TYPE eProxyType; /* The type of proxy */
+ enum MS_HTTP_AUTH_TYPE eProxyAuthType; /* Auth method against proxy */
+ char *pszProxyUsername; /* Proxy authentication username */
+ char *pszProxyPassword; /* Proxy authentication password */
+
+ enum MS_HTTP_AUTH_TYPE eHttpAuthType; /* HTTP Authentication type */
+ char *pszHttpUsername; /* HTTP Authentication username */
+ char *pszHttpPassword; /* HTTP Authentication password */
+
+ /* For debugging/profiling */
+ int debug; /* Debug mode? MS_TRUE/MS_FALSE */
+
+ /* Private members */
+ void * curl_handle; /* CURLM * handle */
+ FILE * fp; /* FILE * used during download */
+
+ char * result_data; /* output if pszOutputFile is NULL */
+ int result_size;
+ int result_buf_size;
+
+} httpRequestObj;
+
+#ifdef USE_CURL
+
+int msHTTPInit(void);
+void msHTTPCleanup(void);
+
+void msHTTPInitRequestObj(httpRequestObj *pasReqInfo, int numRequests);
+void msHTTPFreeRequestObj(httpRequestObj *pasReqInfo, int numRequests);
+int msHTTPExecuteRequests(httpRequestObj *pasReqInfo, int numRequests,
+ int bCheckLocalCache);
+int msHTTPGetFile(const char *pszGetUrl, const char *pszOutputFile,
+ int *pnHTTPStatus, int nTimeout, int bCheckLocalCache,
+ int bDebug);
+
+#endif /*USE_CURL*/
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+
+#endif /* MAPHTTP_H */
Modified: trunk/mapserver/mapows.c
===================================================================
--- trunk/mapserver/mapows.c 2011-01-21 20:57:41 UTC (rev 10888)
+++ trunk/mapserver/mapows.c 2011-01-22 17:25:28 UTC (rev 10889)
@@ -1463,7 +1463,7 @@
int nStatus, iReq;
/* Execute requests */
-#if defined(USE_WMS_LYR) || defined(USE_WFS_LYR)
+#if defined(USE_CURL)
nStatus = msHTTPExecuteRequests(pasReqInfo, numRequests, bCheckLocalCache);
#else
msSetError(MS_WMSERR, "msOWSExecuteRequests() called apparently without libcurl configured, msHTTPExecuteRequests() not available.",
Modified: trunk/mapserver/mapows.h
===================================================================
--- trunk/mapserver/mapows.h 2011-01-21 20:57:41 UTC (rev 10888)
+++ trunk/mapserver/mapows.h 2011-01-22 17:25:28 UTC (rev 10889)
@@ -31,6 +31,7 @@
#ifndef MAPOWS_H
#define MAPOWS_H
+#include "maphttp.h"
#include <time.h>
/* This is the URL to the official OGC Schema Repository. We use it by
@@ -40,67 +41,9 @@
#define OWS_DEFAULT_SCHEMAS_LOCATION "http://schemas.opengis.net"
/*====================================================================
- * maphttp.c
+ * mapows.c
*====================================================================*/
-#define MS_HTTP_SUCCESS(status) (status == 200 || status == 242)
-
-enum MS_HTTP_PROXY_TYPE
-{
- MS_HTTP,
- MS_SOCKS5
-};
-
-enum MS_HTTP_AUTH_TYPE
-{
- MS_BASIC,
- MS_DIGEST,
- MS_NTLM,
- MS_ANY,
- MS_ANYSAFE
-};
-
-typedef struct http_request_info
-{
- int nLayerId;
- char *pszGetUrl;
- char *pszOutputFile;
- int nTimeout;
- rectObj bbox;
- int width;
- int height;
- int nStatus; /* 200=success, value < 0 if request failed */
- char *pszContentType; /* Content-Type of the response */
- char *pszErrBuf; /* Buffer where curl can write errors */
- char *pszPostRequest; /* post request content (NULL for GET) */
- char *pszPostContentType;/* post request MIME type */
- char *pszUserAgent; /* User-Agent, auto-generated if not set */
- char *pszHTTPCookieData; /* HTTP Cookie data */
-
- char *pszProxyAddress; /* The address (IP or hostname) of proxy svr */
- long nProxyPort; /* The proxy's port */
- enum MS_HTTP_PROXY_TYPE eProxyType; /* The type of proxy */
- enum MS_HTTP_AUTH_TYPE eProxyAuthType; /* Auth method against proxy */
- char *pszProxyUsername; /* Proxy authentication username */
- char *pszProxyPassword; /* Proxy authentication password */
-
- enum MS_HTTP_AUTH_TYPE eHttpAuthType; /* HTTP Authentication type */
- char *pszHttpUsername; /* HTTP Authentication username */
- char *pszHttpPassword; /* HTTP Authentication password */
-
- /* For debugging/profiling */
- int debug; /* Debug mode? MS_TRUE/MS_FALSE */
-
- /* Private members */
- void * curl_handle; /* CURLM * handle */
- FILE * fp; /* FILE * used during download */
-
- char * result_data; /* output if pszOutputFile is NULL */
- int result_size;
- int result_buf_size;
-
-} httpRequestObj;
-
typedef struct
{
char *pszVersion;
@@ -160,21 +103,8 @@
char *httpcookiedata;
} wmsParamsObj;
-int msHTTPInit(void);
-void msHTTPCleanup(void);
-void msHTTPInitRequestObj(httpRequestObj *pasReqInfo, int numRequests);
-void msHTTPFreeRequestObj(httpRequestObj *pasReqInfo, int numRequests);
-int msHTTPExecuteRequests(httpRequestObj *pasReqInfo, int numRequests,
- int bCheckLocalCache);
-int msHTTPGetFile(const char *pszGetUrl, const char *pszOutputFile,
- int *pnHTTPStatus, int nTimeout, int bCheckLocalCache,
- int bDebug);
-
-/*====================================================================
- * mapows.c
- *====================================================================*/
MS_DLL_EXPORT int msOWSDispatch(mapObj *map, cgiRequestObj *request, int ows_mode);
MS_DLL_EXPORT const char * msOWSLookupMetadata(hashTableObj *metadata,
@@ -294,8 +224,10 @@
int nVersion, hashTableObj *metadata,
const char *namespaces );
int msOWSGetLayerExtent(mapObj *map, layerObj *lp, const char *namespaces, rectObj *ext);
+
int msOWSExecuteRequests(httpRequestObj *pasReqInfo, int numRequests,
mapObj *map, int bCheckLocalCache);
+
void msOWSProcessException(layerObj *lp, const char *pszFname,
int nErrorCode, const char *pszFuncName);
char *msOWSBuildURLFilename(const char *pszPath, const char *pszURL,
Modified: trunk/mapserver/nmake.opt
===================================================================
--- trunk/mapserver/nmake.opt 2011-01-21 20:57:41 UTC (rev 10888)
+++ trunk/mapserver/nmake.opt 2011-01-22 17:25:28 UTC (rev 10889)
@@ -512,6 +512,7 @@
# You may also need to the full path to the windows socket library.
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#WMSCLIENT= -DUSE_WMS_LYR
+#CURL=-DUSE_CURL
#CURL_DIR=$(MS_BASE)\..\curl-7.19.4
#WINSOCK_LIB ="C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib\WS2_32.Lib"
#WINSOCK_LIB ="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\WS2_32.Lib"
@@ -899,7 +900,7 @@
$(WFS) $(WFSCLIENT) $(WCS) $(PDF) $(EGIS) \
$(USE_GD_ANTIALIAS) $(ORACLE) $(MING_VERSION) \
$(SDE_OPT) $(ICONV) $(GEOS) $(ZLIB) $(SOS) $(XML2_ENABLED) $(AGG) \
- $(OGL) $(CAIRO) $(RGBA_PNG_ENABLED) $(FRIBIDI) $(AGG_SVG_SYMBOLS) $(KML) $(GIF)
+ $(OGL) $(CAIRO) $(RGBA_PNG_ENABLED) $(FRIBIDI) $(AGG_SVG_SYMBOLS) $(KML) $(GIF) $(CURL)
!IFDEF WIN64
MS_CFLAGS=$(INCLUDES) $(MS_DEFS) -DWIN32 -D_WIN32 -DUSE_GENERIC_MS_NINT
More information about the mapserver-commits
mailing list