mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-05-21 14:50:16 +00:00
Fix line endings per .gitattributes
This commit is contained in:
parent
ac405bb132
commit
98168fad9f
@ -1,35 +1,35 @@
|
||||
/* This is a build of CELT */
|
||||
#define CELT_BUILD
|
||||
|
||||
/* Version extra */
|
||||
#define CELT_EXTRA_VERSION "-1"
|
||||
|
||||
/* Version major */
|
||||
#define CELT_MAJOR_VERSION 0
|
||||
|
||||
/* Version micro */
|
||||
#define CELT_MICRO_VERSION 0
|
||||
|
||||
/* Version minor */
|
||||
#define CELT_MINOR_VERSION 7
|
||||
|
||||
/* Complete version string */
|
||||
#define CELT_VERSION "0.7.0-1"
|
||||
|
||||
/* Compile as fixed-point */
|
||||
/* #undef FIXED_POINT */
|
||||
|
||||
/* Compile as floating-point */
|
||||
#define FLOATING_POINT
|
||||
|
||||
/* Make use of alloca */
|
||||
/* #undef USE_ALLOCA */
|
||||
#define USE_ALLOCA 1 /* disable this when using SSE */
|
||||
|
||||
/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
|
||||
supported. Do not define if restrict is supported directly. */
|
||||
#define restrict /* __restrict */
|
||||
|
||||
// Microsoft version of 'inline'
|
||||
#define inline __inline
|
||||
|
||||
/* This is a build of CELT */
|
||||
#define CELT_BUILD
|
||||
|
||||
/* Version extra */
|
||||
#define CELT_EXTRA_VERSION "-1"
|
||||
|
||||
/* Version major */
|
||||
#define CELT_MAJOR_VERSION 0
|
||||
|
||||
/* Version micro */
|
||||
#define CELT_MICRO_VERSION 0
|
||||
|
||||
/* Version minor */
|
||||
#define CELT_MINOR_VERSION 7
|
||||
|
||||
/* Complete version string */
|
||||
#define CELT_VERSION "0.7.0-1"
|
||||
|
||||
/* Compile as fixed-point */
|
||||
/* #undef FIXED_POINT */
|
||||
|
||||
/* Compile as floating-point */
|
||||
#define FLOATING_POINT
|
||||
|
||||
/* Make use of alloca */
|
||||
/* #undef USE_ALLOCA */
|
||||
#define USE_ALLOCA 1 /* disable this when using SSE */
|
||||
|
||||
/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
|
||||
supported. Do not define if restrict is supported directly. */
|
||||
#define restrict /* __restrict */
|
||||
|
||||
// Microsoft version of 'inline'
|
||||
#define inline __inline
|
||||
|
||||
|
@ -92,9 +92,9 @@
|
||||
|
||||
return intgr ;
|
||||
}
|
||||
#else
|
||||
#define float2int
|
||||
#endif
|
||||
#else
|
||||
#define float2int
|
||||
#endif
|
||||
|
||||
|
||||
#else
|
||||
|
@ -1 +1 @@
|
||||
#include <os.h>
|
||||
#include <os.h>
|
||||
|
@ -1,220 +1,220 @@
|
||||
/* shout.h
|
||||
*
|
||||
* API for libshout, the streaming library for icecast
|
||||
*
|
||||
* Copyright (C) 2002-2003 the Icecast team <team@icecast.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __LIBSHOUT_SHOUT_H__
|
||||
#define __LIBSHOUT_SHOUT_H__
|
||||
|
||||
#include <sys/types.h>
|
||||
#ifdef WIN32
|
||||
#include <os.h>
|
||||
# ifdef _MSC_VER
|
||||
# undef inline
|
||||
# define inline __inline
|
||||
#if (_MSC_VER >= 1400) // VC8+
|
||||
#ifndef _CRT_SECURE_NO_DEPRECATE
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
#endif
|
||||
#ifndef _CRT_NONSTDC_NO_DEPRECATE
|
||||
#define _CRT_NONSTDC_NO_DEPRECATE
|
||||
#endif
|
||||
#endif // VC8+
|
||||
# endif
|
||||
#ifndef __MINGW32__
|
||||
#define va_copy(ap1, ap2) memcpy(&ap1, &ap2, sizeof(va_list))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define SHOUTERR_SUCCESS (0)
|
||||
#define SHOUTERR_INSANE (-1)
|
||||
#define SHOUTERR_NOCONNECT (-2)
|
||||
#define SHOUTERR_NOLOGIN (-3)
|
||||
#define SHOUTERR_SOCKET (-4)
|
||||
#define SHOUTERR_MALLOC (-5)
|
||||
#define SHOUTERR_METADATA (-6)
|
||||
#define SHOUTERR_CONNECTED (-7)
|
||||
#define SHOUTERR_UNCONNECTED (-8)
|
||||
#define SHOUTERR_UNSUPPORTED (-9)
|
||||
|
||||
#define SHOUTERR_BUSY (-10)
|
||||
|
||||
#define SHOUT_FORMAT_OGG (0)
|
||||
#define SHOUT_FORMAT_MP3 (1)
|
||||
/* backward-compatibility alias */
|
||||
#define SHOUT_FORMAT_VORBIS SHOUT_FORMAT_OGG
|
||||
|
||||
#define SHOUT_PROTOCOL_HTTP (0)
|
||||
#define SHOUT_PROTOCOL_XAUDIOCAST (1)
|
||||
#define SHOUT_PROTOCOL_ICY (2)
|
||||
|
||||
#define SHOUT_AI_BITRATE "bitrate"
|
||||
#define SHOUT_AI_SAMPLERATE "samplerate"
|
||||
#define SHOUT_AI_CHANNELS "channels"
|
||||
#define SHOUT_AI_QUALITY "quality"
|
||||
|
||||
typedef struct shout shout_t;
|
||||
typedef struct _util_dict shout_metadata_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* initializes the shout library. Must be called before anything else */
|
||||
void shout_init(void);
|
||||
|
||||
/* shuts down the shout library, deallocating any global storage. Don't call
|
||||
* anything afterwards */
|
||||
void shout_shutdown(void);
|
||||
|
||||
/* returns a static version string. Non-null parameters will be set to the
|
||||
* value of the library major, minor, and patch levels, respectively */
|
||||
const char *shout_version(int *major, int *minor, int *patch);
|
||||
|
||||
/* Allocates and sets up a new shout_t. Returns NULL if it can't get enough
|
||||
* memory. The returns shout_t must be disposed of with shout_free. */
|
||||
shout_t *shout_new(void);
|
||||
|
||||
/* Free all memory allocated by a shout_t */
|
||||
void shout_free(shout_t *self);
|
||||
|
||||
/* Returns a statically allocated string describing the last shout error
|
||||
* to occur. Only valid until the next libshout call on this shout_t */
|
||||
const char *shout_get_error(shout_t *self);
|
||||
|
||||
/* Return the error code (e.g. SHOUTERR_SOCKET) for this shout instance */
|
||||
int shout_get_errno(shout_t *self);
|
||||
|
||||
/* returns SHOUTERR_CONNECTED or SHOUTERR_UNCONNECTED */
|
||||
int shout_get_connected(shout_t *self);
|
||||
|
||||
/* Parameter manipulation functions. libshout makes copies of all parameters,
|
||||
* the caller may free its copies after giving them to libshout. May return
|
||||
* SHOUTERR_MALLOC */
|
||||
|
||||
int shout_set_host(shout_t *self, const char *host);
|
||||
const char *shout_get_host(shout_t *self);
|
||||
|
||||
int shout_set_port(shout_t *self, unsigned short port);
|
||||
unsigned short shout_get_port(shout_t *self);
|
||||
|
||||
int shout_set_password(shout_t *, const char *password);
|
||||
const char *shout_get_password(shout_t *self);
|
||||
|
||||
int shout_set_mount(shout_t *self, const char *mount);
|
||||
const char *shout_get_mount(shout_t *self);
|
||||
|
||||
int shout_set_name(shout_t *self, const char *name);
|
||||
const char *shout_get_name(shout_t *self);
|
||||
|
||||
int shout_set_url(shout_t *self, const char *url);
|
||||
const char *shout_get_url(shout_t *self);
|
||||
|
||||
int shout_set_genre(shout_t *self, const char *genre);
|
||||
const char *shout_get_genre(shout_t *self);
|
||||
|
||||
int shout_set_user(shout_t *self, const char *username);
|
||||
const char *shout_get_user(shout_t *self);
|
||||
|
||||
int shout_set_agent(shout_t *self, const char *username);
|
||||
const char *shout_get_agent(shout_t *self);
|
||||
|
||||
int shout_set_description(shout_t *self, const char *description);
|
||||
const char *shout_get_description(shout_t *self);
|
||||
|
||||
int shout_set_dumpfile(shout_t *self, const char *dumpfile);
|
||||
const char *shout_get_dumpfile(shout_t *self);
|
||||
|
||||
int shout_set_audio_info(shout_t *self, const char *name, const char *value);
|
||||
const char *shout_get_audio_info(shout_t *self, const char *name);
|
||||
|
||||
int shout_set_public(shout_t *self, unsigned int make_public);
|
||||
unsigned int shout_get_public(shout_t *self);
|
||||
|
||||
/* takes a SHOUT_FORMAT_xxxx argument */
|
||||
int shout_set_format(shout_t *self, unsigned int format);
|
||||
unsigned int shout_get_format(shout_t *self);
|
||||
|
||||
/* takes a SHOUT_PROTOCOL_xxxxx argument */
|
||||
int shout_set_protocol(shout_t *self, unsigned int protocol);
|
||||
unsigned int shout_get_protocol(shout_t *self);
|
||||
|
||||
/* Instructs libshout to use nonblocking I/O. Must be called before
|
||||
* shout_open (no switching back and forth midstream at the moment). */
|
||||
int shout_set_nonblocking(shout_t* self, unsigned int nonblocking);
|
||||
unsigned int shout_get_nonblocking(shout_t *self);
|
||||
|
||||
/* Opens a connection to the server. All parameters must already be set */
|
||||
int shout_open(shout_t *self);
|
||||
|
||||
/* Closes a connection to the server */
|
||||
int shout_close(shout_t *self);
|
||||
|
||||
/* Send data to the server, parsing it for format specific timing info */
|
||||
int shout_send(shout_t *self, const unsigned char *data, size_t len);
|
||||
|
||||
/* Send unparsed data to the server. Do not use this unless you know
|
||||
* what you are doing.
|
||||
* Returns the number of bytes written, or < 0 on error.
|
||||
*/
|
||||
ssize_t shout_send_raw(shout_t *self, const unsigned char *data, size_t len);
|
||||
|
||||
/* return the number of bytes currently on the write queue (only makes sense in
|
||||
* nonblocking mode). */
|
||||
ssize_t shout_queuelen(shout_t *self);
|
||||
|
||||
/* Puts caller to sleep until it is time to send more data to the server */
|
||||
void shout_sync(shout_t *self);
|
||||
|
||||
/* Amount of time in ms caller should wait before sending again */
|
||||
int shout_delay(shout_t *self);
|
||||
|
||||
/* Sets MP3 metadata.
|
||||
* Returns:
|
||||
* SHOUTERR_SUCCESS
|
||||
* SHOUTERR_UNSUPPORTED if format isn't MP3
|
||||
* SHOUTERR_MALLOC
|
||||
* SHOUTERR_INSANE
|
||||
* SHOUTERR_NOCONNECT
|
||||
* SHOUTERR_SOCKET
|
||||
*/
|
||||
int shout_set_metadata(shout_t *self, shout_metadata_t *metadata);
|
||||
|
||||
/* Allocates a new metadata structure. Must be freed by shout_metadata_free. */
|
||||
shout_metadata_t *shout_metadata_new(void);
|
||||
|
||||
/* Free resources allocated by shout_metadata_t */
|
||||
void shout_metadata_free(shout_metadata_t *self);
|
||||
|
||||
/* Add a parameter to the metadata structure.
|
||||
* Returns:
|
||||
* SHOUTERR_SUCCESS on success
|
||||
* SHOUTERR_INSANE if self isn't a valid shout_metadata_t* or name is null
|
||||
* SHOUTERR_MALLOC if memory can't be allocated */
|
||||
int shout_metadata_add(shout_metadata_t *self, const char *name, const char *value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* --- Compiled features --- */
|
||||
|
||||
#define SHOUT_THREADSAFE @SHOUT_THREADSAFE@
|
||||
|
||||
#endif /* __LIBSHOUT_SHOUT_H__ */
|
||||
/* shout.h
|
||||
*
|
||||
* API for libshout, the streaming library for icecast
|
||||
*
|
||||
* Copyright (C) 2002-2003 the Icecast team <team@icecast.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __LIBSHOUT_SHOUT_H__
|
||||
#define __LIBSHOUT_SHOUT_H__
|
||||
|
||||
#include <sys/types.h>
|
||||
#ifdef WIN32
|
||||
#include <os.h>
|
||||
# ifdef _MSC_VER
|
||||
# undef inline
|
||||
# define inline __inline
|
||||
#if (_MSC_VER >= 1400) // VC8+
|
||||
#ifndef _CRT_SECURE_NO_DEPRECATE
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
#endif
|
||||
#ifndef _CRT_NONSTDC_NO_DEPRECATE
|
||||
#define _CRT_NONSTDC_NO_DEPRECATE
|
||||
#endif
|
||||
#endif // VC8+
|
||||
# endif
|
||||
#ifndef __MINGW32__
|
||||
#define va_copy(ap1, ap2) memcpy(&ap1, &ap2, sizeof(va_list))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define SHOUTERR_SUCCESS (0)
|
||||
#define SHOUTERR_INSANE (-1)
|
||||
#define SHOUTERR_NOCONNECT (-2)
|
||||
#define SHOUTERR_NOLOGIN (-3)
|
||||
#define SHOUTERR_SOCKET (-4)
|
||||
#define SHOUTERR_MALLOC (-5)
|
||||
#define SHOUTERR_METADATA (-6)
|
||||
#define SHOUTERR_CONNECTED (-7)
|
||||
#define SHOUTERR_UNCONNECTED (-8)
|
||||
#define SHOUTERR_UNSUPPORTED (-9)
|
||||
|
||||
#define SHOUTERR_BUSY (-10)
|
||||
|
||||
#define SHOUT_FORMAT_OGG (0)
|
||||
#define SHOUT_FORMAT_MP3 (1)
|
||||
/* backward-compatibility alias */
|
||||
#define SHOUT_FORMAT_VORBIS SHOUT_FORMAT_OGG
|
||||
|
||||
#define SHOUT_PROTOCOL_HTTP (0)
|
||||
#define SHOUT_PROTOCOL_XAUDIOCAST (1)
|
||||
#define SHOUT_PROTOCOL_ICY (2)
|
||||
|
||||
#define SHOUT_AI_BITRATE "bitrate"
|
||||
#define SHOUT_AI_SAMPLERATE "samplerate"
|
||||
#define SHOUT_AI_CHANNELS "channels"
|
||||
#define SHOUT_AI_QUALITY "quality"
|
||||
|
||||
typedef struct shout shout_t;
|
||||
typedef struct _util_dict shout_metadata_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* initializes the shout library. Must be called before anything else */
|
||||
void shout_init(void);
|
||||
|
||||
/* shuts down the shout library, deallocating any global storage. Don't call
|
||||
* anything afterwards */
|
||||
void shout_shutdown(void);
|
||||
|
||||
/* returns a static version string. Non-null parameters will be set to the
|
||||
* value of the library major, minor, and patch levels, respectively */
|
||||
const char *shout_version(int *major, int *minor, int *patch);
|
||||
|
||||
/* Allocates and sets up a new shout_t. Returns NULL if it can't get enough
|
||||
* memory. The returns shout_t must be disposed of with shout_free. */
|
||||
shout_t *shout_new(void);
|
||||
|
||||
/* Free all memory allocated by a shout_t */
|
||||
void shout_free(shout_t *self);
|
||||
|
||||
/* Returns a statically allocated string describing the last shout error
|
||||
* to occur. Only valid until the next libshout call on this shout_t */
|
||||
const char *shout_get_error(shout_t *self);
|
||||
|
||||
/* Return the error code (e.g. SHOUTERR_SOCKET) for this shout instance */
|
||||
int shout_get_errno(shout_t *self);
|
||||
|
||||
/* returns SHOUTERR_CONNECTED or SHOUTERR_UNCONNECTED */
|
||||
int shout_get_connected(shout_t *self);
|
||||
|
||||
/* Parameter manipulation functions. libshout makes copies of all parameters,
|
||||
* the caller may free its copies after giving them to libshout. May return
|
||||
* SHOUTERR_MALLOC */
|
||||
|
||||
int shout_set_host(shout_t *self, const char *host);
|
||||
const char *shout_get_host(shout_t *self);
|
||||
|
||||
int shout_set_port(shout_t *self, unsigned short port);
|
||||
unsigned short shout_get_port(shout_t *self);
|
||||
|
||||
int shout_set_password(shout_t *, const char *password);
|
||||
const char *shout_get_password(shout_t *self);
|
||||
|
||||
int shout_set_mount(shout_t *self, const char *mount);
|
||||
const char *shout_get_mount(shout_t *self);
|
||||
|
||||
int shout_set_name(shout_t *self, const char *name);
|
||||
const char *shout_get_name(shout_t *self);
|
||||
|
||||
int shout_set_url(shout_t *self, const char *url);
|
||||
const char *shout_get_url(shout_t *self);
|
||||
|
||||
int shout_set_genre(shout_t *self, const char *genre);
|
||||
const char *shout_get_genre(shout_t *self);
|
||||
|
||||
int shout_set_user(shout_t *self, const char *username);
|
||||
const char *shout_get_user(shout_t *self);
|
||||
|
||||
int shout_set_agent(shout_t *self, const char *username);
|
||||
const char *shout_get_agent(shout_t *self);
|
||||
|
||||
int shout_set_description(shout_t *self, const char *description);
|
||||
const char *shout_get_description(shout_t *self);
|
||||
|
||||
int shout_set_dumpfile(shout_t *self, const char *dumpfile);
|
||||
const char *shout_get_dumpfile(shout_t *self);
|
||||
|
||||
int shout_set_audio_info(shout_t *self, const char *name, const char *value);
|
||||
const char *shout_get_audio_info(shout_t *self, const char *name);
|
||||
|
||||
int shout_set_public(shout_t *self, unsigned int make_public);
|
||||
unsigned int shout_get_public(shout_t *self);
|
||||
|
||||
/* takes a SHOUT_FORMAT_xxxx argument */
|
||||
int shout_set_format(shout_t *self, unsigned int format);
|
||||
unsigned int shout_get_format(shout_t *self);
|
||||
|
||||
/* takes a SHOUT_PROTOCOL_xxxxx argument */
|
||||
int shout_set_protocol(shout_t *self, unsigned int protocol);
|
||||
unsigned int shout_get_protocol(shout_t *self);
|
||||
|
||||
/* Instructs libshout to use nonblocking I/O. Must be called before
|
||||
* shout_open (no switching back and forth midstream at the moment). */
|
||||
int shout_set_nonblocking(shout_t* self, unsigned int nonblocking);
|
||||
unsigned int shout_get_nonblocking(shout_t *self);
|
||||
|
||||
/* Opens a connection to the server. All parameters must already be set */
|
||||
int shout_open(shout_t *self);
|
||||
|
||||
/* Closes a connection to the server */
|
||||
int shout_close(shout_t *self);
|
||||
|
||||
/* Send data to the server, parsing it for format specific timing info */
|
||||
int shout_send(shout_t *self, const unsigned char *data, size_t len);
|
||||
|
||||
/* Send unparsed data to the server. Do not use this unless you know
|
||||
* what you are doing.
|
||||
* Returns the number of bytes written, or < 0 on error.
|
||||
*/
|
||||
ssize_t shout_send_raw(shout_t *self, const unsigned char *data, size_t len);
|
||||
|
||||
/* return the number of bytes currently on the write queue (only makes sense in
|
||||
* nonblocking mode). */
|
||||
ssize_t shout_queuelen(shout_t *self);
|
||||
|
||||
/* Puts caller to sleep until it is time to send more data to the server */
|
||||
void shout_sync(shout_t *self);
|
||||
|
||||
/* Amount of time in ms caller should wait before sending again */
|
||||
int shout_delay(shout_t *self);
|
||||
|
||||
/* Sets MP3 metadata.
|
||||
* Returns:
|
||||
* SHOUTERR_SUCCESS
|
||||
* SHOUTERR_UNSUPPORTED if format isn't MP3
|
||||
* SHOUTERR_MALLOC
|
||||
* SHOUTERR_INSANE
|
||||
* SHOUTERR_NOCONNECT
|
||||
* SHOUTERR_SOCKET
|
||||
*/
|
||||
int shout_set_metadata(shout_t *self, shout_metadata_t *metadata);
|
||||
|
||||
/* Allocates a new metadata structure. Must be freed by shout_metadata_free. */
|
||||
shout_metadata_t *shout_metadata_new(void);
|
||||
|
||||
/* Free resources allocated by shout_metadata_t */
|
||||
void shout_metadata_free(shout_metadata_t *self);
|
||||
|
||||
/* Add a parameter to the metadata structure.
|
||||
* Returns:
|
||||
* SHOUTERR_SUCCESS on success
|
||||
* SHOUTERR_INSANE if self isn't a valid shout_metadata_t* or name is null
|
||||
* SHOUTERR_MALLOC if memory can't be allocated */
|
||||
int shout_metadata_add(shout_metadata_t *self, const char *name, const char *value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* --- Compiled features --- */
|
||||
|
||||
#define SHOUT_THREADSAFE @SHOUT_THREADSAFE@
|
||||
|
||||
#endif /* __LIBSHOUT_SHOUT_H__ */
|
||||
|
@ -1,13 +1,13 @@
|
||||
#ifndef MK1MF_BUILD
|
||||
/* auto-generated by Configure for crypto/cversion.c:
|
||||
* for Unix builds, crypto/Makefile.ssl generates functional definitions;
|
||||
* Windows builds (and other mk1mf builds) compile cversion.c with
|
||||
* -DMK1MF_BUILD and use definitions added to this file by util/mk1mf.pl. */
|
||||
#error "Windows builds (PLATFORM=VC-WIN32) use mk1mf.pl-created Makefiles"
|
||||
#endif
|
||||
#ifdef MK1MF_PLATFORM_VC_WIN32
|
||||
/* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
|
||||
#define CFLAGS "cl /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_USE_APPLINK -I. /Fdout32dll -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE "
|
||||
#define PLATFORM "VC-WIN32"
|
||||
#define DATE "Sun Jun 6 23:40:23 2010"
|
||||
#endif
|
||||
#ifndef MK1MF_BUILD
|
||||
/* auto-generated by Configure for crypto/cversion.c:
|
||||
* for Unix builds, crypto/Makefile.ssl generates functional definitions;
|
||||
* Windows builds (and other mk1mf builds) compile cversion.c with
|
||||
* -DMK1MF_BUILD and use definitions added to this file by util/mk1mf.pl. */
|
||||
#error "Windows builds (PLATFORM=VC-WIN32) use mk1mf.pl-created Makefiles"
|
||||
#endif
|
||||
#ifdef MK1MF_PLATFORM_VC_WIN32
|
||||
/* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
|
||||
#define CFLAGS "cl /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_USE_APPLINK -I. /Fdout32dll -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE "
|
||||
#define PLATFORM "VC-WIN32"
|
||||
#define DATE "Sun Jun 6 23:40:23 2010"
|
||||
#endif
|
||||
|
@ -1,224 +1,224 @@
|
||||
/* opensslconf.h */
|
||||
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
||||
|
||||
/* OpenSSL was configured with the following options: */
|
||||
#ifndef OPENSSL_SYSNAME_WIN32
|
||||
# define OPENSSL_SYSNAME_WIN32
|
||||
#endif
|
||||
#ifndef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_GMP
|
||||
# define OPENSSL_NO_GMP
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_JPAKE
|
||||
# define OPENSSL_NO_JPAKE
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_KRB5
|
||||
# define OPENSSL_NO_KRB5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MD2
|
||||
# define OPENSSL_NO_MD2
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC5
|
||||
# define OPENSSL_NO_RC5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
# define OPENSSL_NO_RFC3779
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_STORE
|
||||
# define OPENSSL_NO_STORE
|
||||
#endif
|
||||
|
||||
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
||||
|
||||
#ifndef OPENSSL_THREADS
|
||||
# define OPENSSL_THREADS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_ASM
|
||||
# define OPENSSL_NO_ASM
|
||||
#endif
|
||||
|
||||
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
||||
asks for it. This is a transient feature that is provided for those
|
||||
who haven't had the time to do the appropriate changes in their
|
||||
applications. */
|
||||
#ifdef OPENSSL_ALGORITHM_DEFINES
|
||||
# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
|
||||
# define NO_GMP
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
|
||||
# define NO_JPAKE
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
|
||||
# define NO_KRB5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2)
|
||||
# define NO_MD2
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
|
||||
# define NO_RC5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
|
||||
# define NO_RFC3779
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE)
|
||||
# define NO_STORE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* crypto/opensslconf.h.in */
|
||||
|
||||
/* Generate 80386 code? */
|
||||
#undef I386_ONLY
|
||||
|
||||
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
||||
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
||||
#define ENGINESDIR "/usr/local/ssl/lib/engines"
|
||||
#define OPENSSLDIR "/usr/local/ssl"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_UNISTD
|
||||
#define OPENSSL_UNISTD <unistd.h>
|
||||
|
||||
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
#define OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
|
||||
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
||||
#define IDEA_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
||||
#define MD2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
||||
/* I need to put in a mod for the alpha - eay */
|
||||
#define RC2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_H)
|
||||
#if !defined(RC4_INT)
|
||||
/* using int types make the structure larger but make the code faster
|
||||
* on most boxes I have tested - up to %20 faster. */
|
||||
/*
|
||||
* I don't know what does "most" mean, but declaring "int" is a must on:
|
||||
* - Intel P6 because partial register stalls are very expensive;
|
||||
* - elder Alpha because it lacks byte load/store instructions;
|
||||
*/
|
||||
#define RC4_INT unsigned int
|
||||
#endif
|
||||
#if !defined(RC4_CHUNK)
|
||||
/*
|
||||
* This enables code handling data aligned at natural CPU word
|
||||
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
||||
*/
|
||||
#undef RC4_CHUNK
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
|
||||
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
||||
* %20 speed up (longs are 8 bytes, int's are 4). */
|
||||
#ifndef DES_LONG
|
||||
#define DES_LONG unsigned long
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
|
||||
#define CONFIG_HEADER_BN_H
|
||||
#define BN_LLONG
|
||||
|
||||
/* Should we define BN_DIV2W here? */
|
||||
|
||||
/* Only one for the following should be defined */
|
||||
#undef SIXTY_FOUR_BIT_LONG
|
||||
#undef SIXTY_FOUR_BIT
|
||||
#define THIRTY_TWO_BIT
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
||||
#define CONFIG_HEADER_RC4_LOCL_H
|
||||
/* if this is defined data[i] is used instead of *data, this is a %20
|
||||
* speedup on x86 */
|
||||
#define RC4_INDEX
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
||||
#define CONFIG_HEADER_BF_LOCL_H
|
||||
#undef BF_PTR
|
||||
#endif /* HEADER_BF_LOCL_H */
|
||||
|
||||
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
||||
#define CONFIG_HEADER_DES_LOCL_H
|
||||
#ifndef DES_DEFAULT_OPTIONS
|
||||
/* the following is tweaked from a config script, that is why it is a
|
||||
* protected undef/define */
|
||||
#ifndef DES_PTR
|
||||
#undef DES_PTR
|
||||
#endif
|
||||
|
||||
/* This helps C compiler generate the correct code for multiple functional
|
||||
* units. It reduces register dependancies at the expense of 2 more
|
||||
* registers */
|
||||
#ifndef DES_RISC1
|
||||
#undef DES_RISC1
|
||||
#endif
|
||||
|
||||
#ifndef DES_RISC2
|
||||
#undef DES_RISC2
|
||||
#endif
|
||||
|
||||
#if defined(DES_RISC1) && defined(DES_RISC2)
|
||||
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
|
||||
#endif
|
||||
|
||||
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
||||
* Very mucy CPU dependant */
|
||||
#ifndef DES_UNROLL
|
||||
#undef DES_UNROLL
|
||||
#endif
|
||||
|
||||
/* These default values were supplied by
|
||||
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
||||
* They are only used if nothing else has been defined */
|
||||
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
|
||||
/* Special defines which change the way the code is built depending on the
|
||||
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
||||
even newer MIPS CPU's, but at the moment one size fits all for
|
||||
optimization options. Older Sparc's work better with only UNROLL, but
|
||||
there's no way to tell at compile time what it is you're running on */
|
||||
|
||||
#if defined( sun ) /* Newer Sparc's */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#elif defined( __ultrix ) /* Older MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined( __osf1__ ) /* Alpha */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
#elif defined ( _AIX ) /* RS6000 */
|
||||
/* Unknown */
|
||||
#elif defined( __hpux ) /* HP-PA */
|
||||
/* Unknown */
|
||||
#elif defined( __aux ) /* 68K */
|
||||
/* Unknown */
|
||||
#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
|
||||
# define DES_UNROLL
|
||||
#elif defined( __sgi ) /* Newer MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#endif /* Systems-specific speed defines */
|
||||
#endif
|
||||
|
||||
#endif /* DES_DEFAULT_OPTIONS */
|
||||
#endif /* HEADER_DES_LOCL_H */
|
||||
/* opensslconf.h */
|
||||
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
||||
|
||||
/* OpenSSL was configured with the following options: */
|
||||
#ifndef OPENSSL_SYSNAME_WIN32
|
||||
# define OPENSSL_SYSNAME_WIN32
|
||||
#endif
|
||||
#ifndef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_GMP
|
||||
# define OPENSSL_NO_GMP
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_JPAKE
|
||||
# define OPENSSL_NO_JPAKE
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_KRB5
|
||||
# define OPENSSL_NO_KRB5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MD2
|
||||
# define OPENSSL_NO_MD2
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC5
|
||||
# define OPENSSL_NO_RC5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
# define OPENSSL_NO_RFC3779
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_STORE
|
||||
# define OPENSSL_NO_STORE
|
||||
#endif
|
||||
|
||||
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
||||
|
||||
#ifndef OPENSSL_THREADS
|
||||
# define OPENSSL_THREADS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_ASM
|
||||
# define OPENSSL_NO_ASM
|
||||
#endif
|
||||
|
||||
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
||||
asks for it. This is a transient feature that is provided for those
|
||||
who haven't had the time to do the appropriate changes in their
|
||||
applications. */
|
||||
#ifdef OPENSSL_ALGORITHM_DEFINES
|
||||
# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
|
||||
# define NO_GMP
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
|
||||
# define NO_JPAKE
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
|
||||
# define NO_KRB5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2)
|
||||
# define NO_MD2
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
|
||||
# define NO_RC5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
|
||||
# define NO_RFC3779
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE)
|
||||
# define NO_STORE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* crypto/opensslconf.h.in */
|
||||
|
||||
/* Generate 80386 code? */
|
||||
#undef I386_ONLY
|
||||
|
||||
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
||||
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
||||
#define ENGINESDIR "/usr/local/ssl/lib/engines"
|
||||
#define OPENSSLDIR "/usr/local/ssl"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_UNISTD
|
||||
#define OPENSSL_UNISTD <unistd.h>
|
||||
|
||||
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
#define OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
|
||||
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
||||
#define IDEA_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
||||
#define MD2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
||||
/* I need to put in a mod for the alpha - eay */
|
||||
#define RC2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_H)
|
||||
#if !defined(RC4_INT)
|
||||
/* using int types make the structure larger but make the code faster
|
||||
* on most boxes I have tested - up to %20 faster. */
|
||||
/*
|
||||
* I don't know what does "most" mean, but declaring "int" is a must on:
|
||||
* - Intel P6 because partial register stalls are very expensive;
|
||||
* - elder Alpha because it lacks byte load/store instructions;
|
||||
*/
|
||||
#define RC4_INT unsigned int
|
||||
#endif
|
||||
#if !defined(RC4_CHUNK)
|
||||
/*
|
||||
* This enables code handling data aligned at natural CPU word
|
||||
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
||||
*/
|
||||
#undef RC4_CHUNK
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
|
||||
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
||||
* %20 speed up (longs are 8 bytes, int's are 4). */
|
||||
#ifndef DES_LONG
|
||||
#define DES_LONG unsigned long
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
|
||||
#define CONFIG_HEADER_BN_H
|
||||
#define BN_LLONG
|
||||
|
||||
/* Should we define BN_DIV2W here? */
|
||||
|
||||
/* Only one for the following should be defined */
|
||||
#undef SIXTY_FOUR_BIT_LONG
|
||||
#undef SIXTY_FOUR_BIT
|
||||
#define THIRTY_TWO_BIT
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
||||
#define CONFIG_HEADER_RC4_LOCL_H
|
||||
/* if this is defined data[i] is used instead of *data, this is a %20
|
||||
* speedup on x86 */
|
||||
#define RC4_INDEX
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
||||
#define CONFIG_HEADER_BF_LOCL_H
|
||||
#undef BF_PTR
|
||||
#endif /* HEADER_BF_LOCL_H */
|
||||
|
||||
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
||||
#define CONFIG_HEADER_DES_LOCL_H
|
||||
#ifndef DES_DEFAULT_OPTIONS
|
||||
/* the following is tweaked from a config script, that is why it is a
|
||||
* protected undef/define */
|
||||
#ifndef DES_PTR
|
||||
#undef DES_PTR
|
||||
#endif
|
||||
|
||||
/* This helps C compiler generate the correct code for multiple functional
|
||||
* units. It reduces register dependancies at the expense of 2 more
|
||||
* registers */
|
||||
#ifndef DES_RISC1
|
||||
#undef DES_RISC1
|
||||
#endif
|
||||
|
||||
#ifndef DES_RISC2
|
||||
#undef DES_RISC2
|
||||
#endif
|
||||
|
||||
#if defined(DES_RISC1) && defined(DES_RISC2)
|
||||
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
|
||||
#endif
|
||||
|
||||
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
||||
* Very mucy CPU dependant */
|
||||
#ifndef DES_UNROLL
|
||||
#undef DES_UNROLL
|
||||
#endif
|
||||
|
||||
/* These default values were supplied by
|
||||
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
||||
* They are only used if nothing else has been defined */
|
||||
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
|
||||
/* Special defines which change the way the code is built depending on the
|
||||
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
||||
even newer MIPS CPU's, but at the moment one size fits all for
|
||||
optimization options. Older Sparc's work better with only UNROLL, but
|
||||
there's no way to tell at compile time what it is you're running on */
|
||||
|
||||
#if defined( sun ) /* Newer Sparc's */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#elif defined( __ultrix ) /* Older MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined( __osf1__ ) /* Alpha */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
#elif defined ( _AIX ) /* RS6000 */
|
||||
/* Unknown */
|
||||
#elif defined( __hpux ) /* HP-PA */
|
||||
/* Unknown */
|
||||
#elif defined( __aux ) /* 68K */
|
||||
/* Unknown */
|
||||
#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
|
||||
# define DES_UNROLL
|
||||
#elif defined( __sgi ) /* Newer MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#endif /* Systems-specific speed defines */
|
||||
#endif
|
||||
|
||||
#endif /* DES_DEFAULT_OPTIONS */
|
||||
#endif /* HEADER_DES_LOCL_H */
|
||||
|
@ -1,125 +1,125 @@
|
||||
Current information is in ReadMeWin32.txt.
|
||||
|
||||
What follows is previous contents of that file.
|
||||
|
||||
|
||||
|
||||
Markus Hoffrogge:
|
||||
|
||||
Compilation for WIN32 is possible now again for version 1.6.10 - non
|
||||
CPP parts only. Project files have been tested under VicualStudio
|
||||
6.0. Build project all - this will build all other projects. CPP
|
||||
code is not compiled and adopted right now.
|
||||
|
||||
This release excludes the option to compile an "http.sys" version of
|
||||
an XML-RPC server. If you do wish to build in the http.sys server, set
|
||||
the MUST_BUILD_HTTP_SYS_SERVER to 1 in the transport_config_win32.h
|
||||
and/or the transport_config.h file. Successful conpilation requires
|
||||
installation of the Microsoft Platform SDK for Windows XP SP2 (or
|
||||
later) to get the latest header and link libraries required to support
|
||||
this functionality. After installation, be sure to properly register
|
||||
the directories as documented in the Platform SDK help file topic
|
||||
"Installing the Platform SDK with Visual Studio". Download the
|
||||
Platform SDK from:
|
||||
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
||||
|
||||
To create the three headers required for Win32 WinInet compilation,
|
||||
run the ConfigureWin32.bat found in the Windows directory. If you
|
||||
wish to alter the transports that are built to include curl or libwww,
|
||||
adjust the preprocessor definitions at the top of the
|
||||
transport_config_win32.h and/or the transport_config.h files. See the
|
||||
file UsingCURLinWin32.txt for more information on using the curl
|
||||
transport.
|
||||
|
||||
To compile, open the xmlrpc.dsw file in Visual Studio 6 or greater.
|
||||
The project will convert and work fine in Visual Studio 2003 as well -
|
||||
other versions of Visual Studio were not tested.
|
||||
|
||||
NOTE: If you get an error while opening or converting the project
|
||||
files, it is likely due to using WinRar or similar to decompress the
|
||||
distribution tarball. You can use WinZip or another utility to
|
||||
correctly decompress the .tgz file.
|
||||
|
||||
Suggested testing for evaluation of the library involves a few
|
||||
projects. Here is a quick getting started guide:
|
||||
|
||||
1) Set the Active Project to query_meerkat and build it in release or
|
||||
debug modes. The dependent projects will be built automatically.
|
||||
In the project settings dialog, add the argument for what you wish
|
||||
to query meerkat for - "Windows" is a good query. Run the project.
|
||||
This will query the meerkat server for articles related to windows
|
||||
and output the results to the console.
|
||||
|
||||
2) Set the Active Project to xmlrpc_sample_add_server and build it in
|
||||
release or debug modes. The dependent projects will be built
|
||||
automatically. In the project settings dialog, add the argument
|
||||
for the port to 8080. This will run the server sample which adds
|
||||
two numbers and returns a result. You should run this from a
|
||||
command prompt instead of through Visual Studio so you may run the
|
||||
sample client as well.
|
||||
|
||||
3) Set the Active Project to xmlrpc_sample_add_sync_client or
|
||||
xmlrpc_sample_add_async_client and build it in release or debug
|
||||
modes. The dependent projects will be built automatically. This
|
||||
will run the client sample which submits two numbers to be added to
|
||||
the server application as described above and displays the result.
|
||||
Note that the client example comes in the sync and async varieties.
|
||||
|
||||
Steven Bone
|
||||
July 27, 2005
|
||||
sbone@pobox.com
|
||||
|
||||
WIN32 CHANGES
|
||||
|
||||
Changes from the 1.02 release for Win32:
|
||||
|
||||
1) Option to easily disable the http.sys server for those who do not
|
||||
need it or wish to download the Platform SDK.
|
||||
|
||||
Changes from the 1.01 -> 1.02 release for Win32:
|
||||
|
||||
1) Project files for gennmtab, xmlparse, and xmltok updated to include the
|
||||
path to the xmlrpc_config.h file.
|
||||
|
||||
2) Bugfix for WinInet authentication.
|
||||
|
||||
3) Supports xmlrpc_xportparms, xmlrpc_wininet_xportparms added
|
||||
*potential breaking change* - now by default we fail on invalid
|
||||
SSL certs, use the xmlrpc_wininet_xportparms option to enable old
|
||||
behavior.
|
||||
|
||||
4) Added project file for xmlrpc_sample_auth_client
|
||||
|
||||
5) Added project and src for a http.sys based xmlrpc-c server. See comments
|
||||
in the source files. This supports Windows XP SP2 and Windows Server
|
||||
2003 and allows other http.sys based applications to bind to the same
|
||||
port. In Server 2003, IIS uses http.sys and thus the XML-RPC server
|
||||
can be run on the standard port 80 along with IIS. The sample also
|
||||
supports https and basic authentication. It tested OK with
|
||||
http://validator.xmlrpc.com/ Note that the Platform SDK headers and
|
||||
link libraries for Windows XP SP2 or newer are required to compile
|
||||
xmlrpc-c for this module. If you are not using this server, it is
|
||||
safe to exclude the xmlrpc_server_w32httpsys.c file from the xmlrpc
|
||||
project and these dependencies will not be required. You can get the
|
||||
latest platform SDK at
|
||||
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
||||
Be sure after installation to choose the program to "register the PSDK
|
||||
directories with Visual Studio" so the newer headers are found.
|
||||
|
||||
6) Better support for libcurl. Updated project files,
|
||||
transport_config_win32.h, added documentation UsingCURLinWin32.txt.
|
||||
|
||||
Changes from the 1.00 -> 1.01 release for Win32:
|
||||
|
||||
1) Project files now reflect static linking for the expat XML library.
|
||||
|
||||
2) Example projects were created/updated to keep them in sync with the
|
||||
distribution. The project files were moved into the Windows
|
||||
directory
|
||||
|
||||
3) Projects for the rpc and cpp tests were created. The
|
||||
xmlrpc_win32_config.h defines the directory for the test files relative
|
||||
to the output directory
|
||||
|
||||
4) Major refactoring of the Wininet Transport.
|
||||
|
||||
Current information is in ReadMeWin32.txt.
|
||||
|
||||
What follows is previous contents of that file.
|
||||
|
||||
|
||||
|
||||
Markus Hoffrogge:
|
||||
|
||||
Compilation for WIN32 is possible now again for version 1.6.10 - non
|
||||
CPP parts only. Project files have been tested under VicualStudio
|
||||
6.0. Build project all - this will build all other projects. CPP
|
||||
code is not compiled and adopted right now.
|
||||
|
||||
This release excludes the option to compile an "http.sys" version of
|
||||
an XML-RPC server. If you do wish to build in the http.sys server, set
|
||||
the MUST_BUILD_HTTP_SYS_SERVER to 1 in the transport_config_win32.h
|
||||
and/or the transport_config.h file. Successful conpilation requires
|
||||
installation of the Microsoft Platform SDK for Windows XP SP2 (or
|
||||
later) to get the latest header and link libraries required to support
|
||||
this functionality. After installation, be sure to properly register
|
||||
the directories as documented in the Platform SDK help file topic
|
||||
"Installing the Platform SDK with Visual Studio". Download the
|
||||
Platform SDK from:
|
||||
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
||||
|
||||
To create the three headers required for Win32 WinInet compilation,
|
||||
run the ConfigureWin32.bat found in the Windows directory. If you
|
||||
wish to alter the transports that are built to include curl or libwww,
|
||||
adjust the preprocessor definitions at the top of the
|
||||
transport_config_win32.h and/or the transport_config.h files. See the
|
||||
file UsingCURLinWin32.txt for more information on using the curl
|
||||
transport.
|
||||
|
||||
To compile, open the xmlrpc.dsw file in Visual Studio 6 or greater.
|
||||
The project will convert and work fine in Visual Studio 2003 as well -
|
||||
other versions of Visual Studio were not tested.
|
||||
|
||||
NOTE: If you get an error while opening or converting the project
|
||||
files, it is likely due to using WinRar or similar to decompress the
|
||||
distribution tarball. You can use WinZip or another utility to
|
||||
correctly decompress the .tgz file.
|
||||
|
||||
Suggested testing for evaluation of the library involves a few
|
||||
projects. Here is a quick getting started guide:
|
||||
|
||||
1) Set the Active Project to query_meerkat and build it in release or
|
||||
debug modes. The dependent projects will be built automatically.
|
||||
In the project settings dialog, add the argument for what you wish
|
||||
to query meerkat for - "Windows" is a good query. Run the project.
|
||||
This will query the meerkat server for articles related to windows
|
||||
and output the results to the console.
|
||||
|
||||
2) Set the Active Project to xmlrpc_sample_add_server and build it in
|
||||
release or debug modes. The dependent projects will be built
|
||||
automatically. In the project settings dialog, add the argument
|
||||
for the port to 8080. This will run the server sample which adds
|
||||
two numbers and returns a result. You should run this from a
|
||||
command prompt instead of through Visual Studio so you may run the
|
||||
sample client as well.
|
||||
|
||||
3) Set the Active Project to xmlrpc_sample_add_sync_client or
|
||||
xmlrpc_sample_add_async_client and build it in release or debug
|
||||
modes. The dependent projects will be built automatically. This
|
||||
will run the client sample which submits two numbers to be added to
|
||||
the server application as described above and displays the result.
|
||||
Note that the client example comes in the sync and async varieties.
|
||||
|
||||
Steven Bone
|
||||
July 27, 2005
|
||||
sbone@pobox.com
|
||||
|
||||
WIN32 CHANGES
|
||||
|
||||
Changes from the 1.02 release for Win32:
|
||||
|
||||
1) Option to easily disable the http.sys server for those who do not
|
||||
need it or wish to download the Platform SDK.
|
||||
|
||||
Changes from the 1.01 -> 1.02 release for Win32:
|
||||
|
||||
1) Project files for gennmtab, xmlparse, and xmltok updated to include the
|
||||
path to the xmlrpc_config.h file.
|
||||
|
||||
2) Bugfix for WinInet authentication.
|
||||
|
||||
3) Supports xmlrpc_xportparms, xmlrpc_wininet_xportparms added
|
||||
*potential breaking change* - now by default we fail on invalid
|
||||
SSL certs, use the xmlrpc_wininet_xportparms option to enable old
|
||||
behavior.
|
||||
|
||||
4) Added project file for xmlrpc_sample_auth_client
|
||||
|
||||
5) Added project and src for a http.sys based xmlrpc-c server. See comments
|
||||
in the source files. This supports Windows XP SP2 and Windows Server
|
||||
2003 and allows other http.sys based applications to bind to the same
|
||||
port. In Server 2003, IIS uses http.sys and thus the XML-RPC server
|
||||
can be run on the standard port 80 along with IIS. The sample also
|
||||
supports https and basic authentication. It tested OK with
|
||||
http://validator.xmlrpc.com/ Note that the Platform SDK headers and
|
||||
link libraries for Windows XP SP2 or newer are required to compile
|
||||
xmlrpc-c for this module. If you are not using this server, it is
|
||||
safe to exclude the xmlrpc_server_w32httpsys.c file from the xmlrpc
|
||||
project and these dependencies will not be required. You can get the
|
||||
latest platform SDK at
|
||||
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
||||
Be sure after installation to choose the program to "register the PSDK
|
||||
directories with Visual Studio" so the newer headers are found.
|
||||
|
||||
6) Better support for libcurl. Updated project files,
|
||||
transport_config_win32.h, added documentation UsingCURLinWin32.txt.
|
||||
|
||||
Changes from the 1.00 -> 1.01 release for Win32:
|
||||
|
||||
1) Project files now reflect static linking for the expat XML library.
|
||||
|
||||
2) Example projects were created/updated to keep them in sync with the
|
||||
distribution. The project files were moved into the Windows
|
||||
directory
|
||||
|
||||
3) Projects for the rpc and cpp tests were created. The
|
||||
xmlrpc_win32_config.h defines the directory for the test files relative
|
||||
to the output directory
|
||||
|
||||
4) Major refactoring of the Wininet Transport.
|
||||
|
||||
|
@ -1,128 +1,128 @@
|
||||
Background:
|
||||
|
||||
Let’s say you need to have a Xmlrpc-c client running as a service.
|
||||
In this situation you cannot use WinInet. Details of the restriction
|
||||
can be found on the libcurl website or various Microsoft KB articles.
|
||||
The alternative is to use libcurl. This document describes the steps
|
||||
required to use libcurl as your client XML transport mechanism.
|
||||
|
||||
Overview:
|
||||
|
||||
The default projects in Xmlrpc-c create standalone executables that do
|
||||
not require other DLL’s (release mode). While the case can be made
|
||||
for this behavior pro and con, it is beyond this document to justify
|
||||
it. Therefore, we need to create static link libraries for libcurl
|
||||
that mimics this behavior. Once the link libraries are created, we
|
||||
can then add them (plus the requisite curl headers) into the Xmlrpc-c
|
||||
project. Finally, we enable the compilation of the curl transport
|
||||
file and tell Xmlrpc-c that we will be using curl. Lastly, we build
|
||||
and test the project.
|
||||
|
||||
Steps to use CURL with Win32 Xmlrpc-c:
|
||||
|
||||
1. Download the CURL source. In the “include” folder of the
|
||||
CURL distribution, copy the curl directory to the “lib”
|
||||
directory of xmlrpc-c. When you are done with this step, you should
|
||||
have a curl.h file located in the directory xmlrpc-c\lib\curl\. The
|
||||
xmlrpc project looks in this relative path for the necessary headers.
|
||||
|
||||
2. In the CURL distribution, lib directory, is a file called
|
||||
Makefile.vc6. Edit this file. The line starting with CCNODBG should
|
||||
be changed to:
|
||||
|
||||
CCNODBG = cl.exe /MT /O2 /DNDEBUG
|
||||
|
||||
The /MT option links with the Multithreaded non-dll version of the c
|
||||
runtime. If this change is not made, the project will not link, as
|
||||
this is the default setting for the Xmlrpc-c projects.
|
||||
|
||||
3. Open a command prompt window and run the vcvars32.bat file in your
|
||||
Visual C++ distribution. If you are using Studio 2002 or 2003, use
|
||||
the “Visual Studio Command Prompt” from the Start menu to open
|
||||
the console.
|
||||
|
||||
4. Compile release and debug mode libraries. For the purposes of this
|
||||
tutorial, we are going to build only the curl library without ssl or
|
||||
zlib compression capability. In the command prompt, navigate to the
|
||||
curl\lib directory and execute the following commands:
|
||||
|
||||
nmake -f Makefile.vc6 CFG=debug RTLIBCFG=static
|
||||
nmake -f Makefile.vc6 CFG=release RTLIBCFG=static
|
||||
|
||||
5. The above step should have generated two static link libraries in
|
||||
the curl\lib directory: libcurl.lib and libcurld.lib. Copy these
|
||||
files into the root of the xmlrpc-c\lib\ directory. This step ends
|
||||
our involvement with the actual CURL distribution. The remainder of
|
||||
the steps are for Xmlrpc-c.
|
||||
|
||||
6. Open the Xmlrpc-c Visual Studio workspace (Instructions for VC++ 6,
|
||||
other versions are slightly different). In File View, expand the
|
||||
xmlrpc project. Under "Source Files" there is an entry for
|
||||
xmlrpc_curl_transport.c This is not included in any build paths by
|
||||
default. To enable it for compilation, right click the file to change
|
||||
the settings. In the dropdown, select "All Configurations." Pick the
|
||||
General tab and uncheck the "Exclude File From Build" setting. Press
|
||||
OK to save your changes to the project.
|
||||
|
||||
7. In the "Header Files" section of the xmlrpc project is a file
|
||||
called "transport_config.h". Edit this file to set the
|
||||
MUST_BUILD_CURL_CLIENT to 1, and if you wish to change the default
|
||||
transport to curl, change the XMLRPC_DEFAULT_TRANSPORT to "curl".
|
||||
|
||||
8. Compile and test one or more of the sample client projects.
|
||||
|
||||
USING MSVC8 - 2007/11/25
|
||||
========================
|
||||
|
||||
This is for MSVC8, but most will apply to all version of Microsoft
|
||||
Visual Studio.
|
||||
|
||||
Download the CURL source. Run the buildconf.bat to generate some
|
||||
additional files. This builds a 'dummy' hugehelp.c, but it can also
|
||||
be built using the src\mkhelp.pl Perl script. You may have to build
|
||||
you own VCPROJ file for CURL, if you want to use MSVC. It does
|
||||
provide a Makefile.vc6 as mentioned above.
|
||||
|
||||
To build all the CURL library variations, use
|
||||
> nmake /nologo vc-all
|
||||
but note this will use the /MD[d] DLL runtime. Only by adding
|
||||
RTCFGLIB=static to each of the makefile commands will /MT[d] be
|
||||
used.
|
||||
|
||||
Essentially, for building the static Debug or Release CURL libraries,
|
||||
it is all the sources in the curl\lib folder. Make sure you choose /MT
|
||||
and /MTd for the runtime, and build both using say the name libcurl.lib.
|
||||
|
||||
When you have Debug\libcurl.lib and Release\libcurl.lib built, you
|
||||
are ready to build and link them with Xmlrpc-c.
|
||||
|
||||
After running xmlrpc-c\Windows\configurewin32.bat, loading xmlrpc.dsw
|
||||
will convert all the projects to VCPROJ files. In the File View, in
|
||||
the xmlrpc project, in the properties of xmlrpc_curl_transport.c,
|
||||
change 'Exclude file from build' from 'yes' to 'no', for Debug
|
||||
and Release.
|
||||
|
||||
In the 'Header Files' section, open the "transport_config.h" file,
|
||||
and change MUST_BUILD_CURL_CLIENT to 1, and the XMLRPC_DEFAULT_TRANSPORT
|
||||
to "curl", if desired.
|
||||
|
||||
As usual, for each of the 'client' projects, and rpctest, in the properties,
|
||||
Linker section, you can add the library libcurl.lib on the Input tab, and
|
||||
the relative path to the library in the General tab to something like -
|
||||
..\..\curl\Debug and ..\..\curl\Release, or where ever you built or
|
||||
copied these static libraries too.
|
||||
|
||||
Or you can adjust the Windows/curlink.h, to directly point to your
|
||||
respective Debug and Release static CURL libraries, either where you
|
||||
built them, or where you copied them too.
|
||||
|
||||
Now, Xmlrpc-c should build using the CURL transport.
|
||||
|
||||
Note, for the final linking, all RUNTIME libraries MUST be the SAME.
|
||||
A mixture of /MD and /MT will give big linkage problems. Any one project
|
||||
built with the alterate RUNTIME will show many items defined more than
|
||||
once. And of course, you can also NOT mix Debug with Release. That is
|
||||
/MDd with /MD, nor /MTd with /MT, or else there will be unresolved
|
||||
debug items.
|
||||
|
||||
EOF
|
||||
Background:
|
||||
|
||||
Let’s say you need to have a Xmlrpc-c client running as a service.
|
||||
In this situation you cannot use WinInet. Details of the restriction
|
||||
can be found on the libcurl website or various Microsoft KB articles.
|
||||
The alternative is to use libcurl. This document describes the steps
|
||||
required to use libcurl as your client XML transport mechanism.
|
||||
|
||||
Overview:
|
||||
|
||||
The default projects in Xmlrpc-c create standalone executables that do
|
||||
not require other DLL’s (release mode). While the case can be made
|
||||
for this behavior pro and con, it is beyond this document to justify
|
||||
it. Therefore, we need to create static link libraries for libcurl
|
||||
that mimics this behavior. Once the link libraries are created, we
|
||||
can then add them (plus the requisite curl headers) into the Xmlrpc-c
|
||||
project. Finally, we enable the compilation of the curl transport
|
||||
file and tell Xmlrpc-c that we will be using curl. Lastly, we build
|
||||
and test the project.
|
||||
|
||||
Steps to use CURL with Win32 Xmlrpc-c:
|
||||
|
||||
1. Download the CURL source. In the “include” folder of the
|
||||
CURL distribution, copy the curl directory to the “lib”
|
||||
directory of xmlrpc-c. When you are done with this step, you should
|
||||
have a curl.h file located in the directory xmlrpc-c\lib\curl\. The
|
||||
xmlrpc project looks in this relative path for the necessary headers.
|
||||
|
||||
2. In the CURL distribution, lib directory, is a file called
|
||||
Makefile.vc6. Edit this file. The line starting with CCNODBG should
|
||||
be changed to:
|
||||
|
||||
CCNODBG = cl.exe /MT /O2 /DNDEBUG
|
||||
|
||||
The /MT option links with the Multithreaded non-dll version of the c
|
||||
runtime. If this change is not made, the project will not link, as
|
||||
this is the default setting for the Xmlrpc-c projects.
|
||||
|
||||
3. Open a command prompt window and run the vcvars32.bat file in your
|
||||
Visual C++ distribution. If you are using Studio 2002 or 2003, use
|
||||
the “Visual Studio Command Prompt” from the Start menu to open
|
||||
the console.
|
||||
|
||||
4. Compile release and debug mode libraries. For the purposes of this
|
||||
tutorial, we are going to build only the curl library without ssl or
|
||||
zlib compression capability. In the command prompt, navigate to the
|
||||
curl\lib directory and execute the following commands:
|
||||
|
||||
nmake -f Makefile.vc6 CFG=debug RTLIBCFG=static
|
||||
nmake -f Makefile.vc6 CFG=release RTLIBCFG=static
|
||||
|
||||
5. The above step should have generated two static link libraries in
|
||||
the curl\lib directory: libcurl.lib and libcurld.lib. Copy these
|
||||
files into the root of the xmlrpc-c\lib\ directory. This step ends
|
||||
our involvement with the actual CURL distribution. The remainder of
|
||||
the steps are for Xmlrpc-c.
|
||||
|
||||
6. Open the Xmlrpc-c Visual Studio workspace (Instructions for VC++ 6,
|
||||
other versions are slightly different). In File View, expand the
|
||||
xmlrpc project. Under "Source Files" there is an entry for
|
||||
xmlrpc_curl_transport.c This is not included in any build paths by
|
||||
default. To enable it for compilation, right click the file to change
|
||||
the settings. In the dropdown, select "All Configurations." Pick the
|
||||
General tab and uncheck the "Exclude File From Build" setting. Press
|
||||
OK to save your changes to the project.
|
||||
|
||||
7. In the "Header Files" section of the xmlrpc project is a file
|
||||
called "transport_config.h". Edit this file to set the
|
||||
MUST_BUILD_CURL_CLIENT to 1, and if you wish to change the default
|
||||
transport to curl, change the XMLRPC_DEFAULT_TRANSPORT to "curl".
|
||||
|
||||
8. Compile and test one or more of the sample client projects.
|
||||
|
||||
USING MSVC8 - 2007/11/25
|
||||
========================
|
||||
|
||||
This is for MSVC8, but most will apply to all version of Microsoft
|
||||
Visual Studio.
|
||||
|
||||
Download the CURL source. Run the buildconf.bat to generate some
|
||||
additional files. This builds a 'dummy' hugehelp.c, but it can also
|
||||
be built using the src\mkhelp.pl Perl script. You may have to build
|
||||
you own VCPROJ file for CURL, if you want to use MSVC. It does
|
||||
provide a Makefile.vc6 as mentioned above.
|
||||
|
||||
To build all the CURL library variations, use
|
||||
> nmake /nologo vc-all
|
||||
but note this will use the /MD[d] DLL runtime. Only by adding
|
||||
RTCFGLIB=static to each of the makefile commands will /MT[d] be
|
||||
used.
|
||||
|
||||
Essentially, for building the static Debug or Release CURL libraries,
|
||||
it is all the sources in the curl\lib folder. Make sure you choose /MT
|
||||
and /MTd for the runtime, and build both using say the name libcurl.lib.
|
||||
|
||||
When you have Debug\libcurl.lib and Release\libcurl.lib built, you
|
||||
are ready to build and link them with Xmlrpc-c.
|
||||
|
||||
After running xmlrpc-c\Windows\configurewin32.bat, loading xmlrpc.dsw
|
||||
will convert all the projects to VCPROJ files. In the File View, in
|
||||
the xmlrpc project, in the properties of xmlrpc_curl_transport.c,
|
||||
change 'Exclude file from build' from 'yes' to 'no', for Debug
|
||||
and Release.
|
||||
|
||||
In the 'Header Files' section, open the "transport_config.h" file,
|
||||
and change MUST_BUILD_CURL_CLIENT to 1, and the XMLRPC_DEFAULT_TRANSPORT
|
||||
to "curl", if desired.
|
||||
|
||||
As usual, for each of the 'client' projects, and rpctest, in the properties,
|
||||
Linker section, you can add the library libcurl.lib on the Input tab, and
|
||||
the relative path to the library in the General tab to something like -
|
||||
..\..\curl\Debug and ..\..\curl\Release, or where ever you built or
|
||||
copied these static libraries too.
|
||||
|
||||
Or you can adjust the Windows/curlink.h, to directly point to your
|
||||
respective Debug and Release static CURL libraries, either where you
|
||||
built them, or where you copied them too.
|
||||
|
||||
Now, Xmlrpc-c should build using the CURL transport.
|
||||
|
||||
Note, for the final linking, all RUNTIME libraries MUST be the SAME.
|
||||
A mixture of /MD and /MT will give big linkage problems. Any one project
|
||||
built with the alterate RUNTIME will show many items defined more than
|
||||
once. And of course, you can also NOT mix Debug with Release. That is
|
||||
/MDd with /MD, nor /MTd with /MT, or else there will be unresolved
|
||||
debug items.
|
||||
|
||||
EOF
|
||||
|
@ -1,51 +1,51 @@
|
||||
|
||||
Using xmlrpc_cpp_proxy.dsp
|
||||
|
||||
While not included in the main xmlrpc.dsw file, this
|
||||
xmlrpc_cpp_proxy.dsp, if added as a project to the xmlrpc solution,
|
||||
will build bin\xmlrpc_cpp_proxy.exe and xmlrpc_cpp_proxyD.exe, for
|
||||
testing using the default WinINET transport.
|
||||
|
||||
After you have loaded the xmlrpc_cpp_proxy.dsp, which adds an
|
||||
xmlrpc_cpp_proxy project, it is necessary to ADD a dependance on
|
||||
the xmlrpc library, to complete the link.
|
||||
|
||||
To do this in say MSVC8, select the xmlrpc_cpp_proxy project, and right
|
||||
mouse click, and in the context menu, select 'Project Dependancies...'.
|
||||
And in the Project Dependancies dialog, check the xmlrpc proejct,
|
||||
then [Ok] ...
|
||||
|
||||
To test your xmlrpc_cpp_proxy[D].exe -
|
||||
|
||||
|
||||
1. In a console start the server, like -
|
||||
|
||||
bin/xmlrpc_sample_add_serverD 8080
|
||||
|
||||
Note, since this server opens a socket, you may have to enable it on some
|
||||
anti-virus software that detects the socket being established, and
|
||||
'Unblock' it in the Windows Security Alert system dialog that appears.
|
||||
|
||||
You can later remove this program from the Firewall exceptions, through
|
||||
Control Panel -> Windows Firewall, selecting the 'Exceptions' tab, where
|
||||
you can also disable this 'blocking' notification, but not recommended.
|
||||
|
||||
The server should start, and report -
|
||||
Running XML-RPC server...
|
||||
|
||||
|
||||
2. In another console run the cpp proxy client, with say -
|
||||
|
||||
bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 null null
|
||||
|
||||
The client should connect to the server, and output a 'null' header,
|
||||
and implementation file. If this functions, for a bigger example, try -
|
||||
|
||||
bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 system systemProxy
|
||||
|
||||
and you should see a better example of a class header, and the
|
||||
implementation code ...
|
||||
|
||||
20 December, 2007
|
||||
|
||||
EOF
|
||||
|
||||
Using xmlrpc_cpp_proxy.dsp
|
||||
|
||||
While not included in the main xmlrpc.dsw file, this
|
||||
xmlrpc_cpp_proxy.dsp, if added as a project to the xmlrpc solution,
|
||||
will build bin\xmlrpc_cpp_proxy.exe and xmlrpc_cpp_proxyD.exe, for
|
||||
testing using the default WinINET transport.
|
||||
|
||||
After you have loaded the xmlrpc_cpp_proxy.dsp, which adds an
|
||||
xmlrpc_cpp_proxy project, it is necessary to ADD a dependance on
|
||||
the xmlrpc library, to complete the link.
|
||||
|
||||
To do this in say MSVC8, select the xmlrpc_cpp_proxy project, and right
|
||||
mouse click, and in the context menu, select 'Project Dependancies...'.
|
||||
And in the Project Dependancies dialog, check the xmlrpc proejct,
|
||||
then [Ok] ...
|
||||
|
||||
To test your xmlrpc_cpp_proxy[D].exe -
|
||||
|
||||
|
||||
1. In a console start the server, like -
|
||||
|
||||
bin/xmlrpc_sample_add_serverD 8080
|
||||
|
||||
Note, since this server opens a socket, you may have to enable it on some
|
||||
anti-virus software that detects the socket being established, and
|
||||
'Unblock' it in the Windows Security Alert system dialog that appears.
|
||||
|
||||
You can later remove this program from the Firewall exceptions, through
|
||||
Control Panel -> Windows Firewall, selecting the 'Exceptions' tab, where
|
||||
you can also disable this 'blocking' notification, but not recommended.
|
||||
|
||||
The server should start, and report -
|
||||
Running XML-RPC server...
|
||||
|
||||
|
||||
2. In another console run the cpp proxy client, with say -
|
||||
|
||||
bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 null null
|
||||
|
||||
The client should connect to the server, and output a 'null' header,
|
||||
and implementation file. If this functions, for a bigger example, try -
|
||||
|
||||
bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 system systemProxy
|
||||
|
||||
and you should see a better example of a class header, and the
|
||||
implementation code ...
|
||||
|
||||
20 December, 2007
|
||||
|
||||
EOF
|
||||
|
@ -1,11 +1,11 @@
|
||||
POST /cgi-bin/sample-cgi.cgi 1.0
|
||||
Host: localhost
|
||||
Content-Type: text/xml
|
||||
Content-Length: 141
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodCall>
|
||||
<methodName>system.listMethods</methodName>
|
||||
<params>
|
||||
</params>
|
||||
</methodCall>
|
||||
POST /cgi-bin/sample-cgi.cgi 1.0
|
||||
Host: localhost
|
||||
Content-Type: text/xml
|
||||
Content-Length: 141
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodCall>
|
||||
<methodName>system.listMethods</methodName>
|
||||
<params>
|
||||
</params>
|
||||
</methodCall>
|
||||
|
@ -1,21 +1,21 @@
|
||||
ExprEval - Expression Evaluation Library
|
||||
Version 2.0
|
||||
|
||||
Copyright (C) 2004 Brian Allen Vanderburg II
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
ExprEval - Expression Evaluation Library
|
||||
Version 2.0
|
||||
|
||||
Copyright (C) 2004 Brian Allen Vanderburg II
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
|
@ -1,170 +1,170 @@
|
||||
ExprEval - A C/C++ based expression evaluation library
|
||||
Written by: Brian Allen Vanderburg II
|
||||
Licensed under the ExprEval License
|
||||
------------------------------------------------------
|
||||
ExprEval is a mostly a C based expression evaluation
|
||||
library. The only C++ part is the C++ Wrapper which
|
||||
encapsulates the complexity of the library usage.
|
||||
|
||||
ExprEval supports the parsing of multiple expressions
|
||||
in a single expression string. Each sub-expression
|
||||
must end with a semicolon. It also supports the use
|
||||
of variables, constants, and functions. Functions
|
||||
can take multiple arguments. These arguments can
|
||||
also be expressions.
|
||||
|
||||
ExprEval is very fast. It first parses the expression
|
||||
string into a tree of actions to take. After it has
|
||||
been parsed, an expression can be evaluated many times
|
||||
over an over.
|
||||
|
||||
Functions, variables, and constants are stored in
|
||||
their own seperate lists. This makes is where the
|
||||
lists can be shared among multiple expression objects.
|
||||
A function list can add all the functions needed, and
|
||||
then be added to each expression object, instead of
|
||||
added each needed function to each object. The same
|
||||
goes for constant lists. Variable lists make it where
|
||||
one expression can depend on a variable set in another.
|
||||
|
||||
|
||||
Saturday, July 1, 2006
|
||||
----------------------
|
||||
Version 2.6
|
||||
|
||||
* Added a new value list function 'exprValListGetNext' that can be used to
|
||||
enumerate the items in a value list. Any of the items not needed (name,
|
||||
value, or address) can be NULL. For example:
|
||||
|
||||
char *name;
|
||||
EXPRTYPE val;
|
||||
void *cookie;
|
||||
|
||||
cookie = exprValListGetNext(vlist, &name, &value, NULL, NULL);
|
||||
while(cookie)
|
||||
{
|
||||
/* Do something with name and value */
|
||||
cookie = exprValListGetNext(vlist, &name, &value, NULL, cookie);
|
||||
}
|
||||
|
||||
You must make sure not to actually edit the returned name, because it is a
|
||||
pointer into the value list to the name. This can also be used to have one
|
||||
value list store globals. Global variables can be added to a value list, then
|
||||
additional lists can be created, and before any variables are added
|
||||
or the expression is parsed, the global list can be enumerated for name and
|
||||
address and the exprValListAddAddress can be used to add them. This way,
|
||||
expressions can have their own private list, but some variables may be shared
|
||||
on each expression through the global list. This is useful especially if the
|
||||
globals are not known at compile time, but can be adjusted by the user.
|
||||
For example:
|
||||
|
||||
exprValList *globals;
|
||||
exprValList *v1;
|
||||
exprValList *v2;
|
||||
char *name;
|
||||
EXPRTYPE *addr;
|
||||
void *cookie;
|
||||
|
||||
exprValListCreate(&globals);
|
||||
/* Add variables to the list, perhaps read from a user file or something */
|
||||
|
||||
exprValListCreate(&v1);
|
||||
cookie = exprValListGetNext(globals, &name, NULL, &addr, NULL);
|
||||
while(cookie)
|
||||
{
|
||||
exprValListAddAddress(v1, name, addr);
|
||||
cookie = exprValListGetNext(globals, &name, NULL, &addr, cookie);
|
||||
}
|
||||
|
||||
|
||||
Friday, June 30, 2006
|
||||
---------------------
|
||||
Version 2.5
|
||||
|
||||
* Added a new value list function 'exprValListAddAddress'. This function adds
|
||||
a named value to the list, but uses the addresss of a stack variable. The
|
||||
stack variable is then used to set/get the value instead of the internal list
|
||||
value. You must ensure that the stack variable exists as long as it is used
|
||||
by the expression. This can permit, for example, a value name to be shared
|
||||
with two different value lists like such:
|
||||
|
||||
EXPRTYPE global_value;
|
||||
exprValListAddAddress(vlist, "global", &global_value);
|
||||
exprValListAddAddress(vlist2, "global", &global_value);
|
||||
|
||||
Like this, the value can be directly accessed by the application, and each
|
||||
value list will share it. This can also be used to replace code from this:
|
||||
|
||||
EXPRTYPE *a;
|
||||
exprValListAdd(vlist, "var", 0.0);
|
||||
exprValListGetAddress(vlist, "var", &a);
|
||||
|
||||
To look like this:
|
||||
|
||||
EXPRTYPE a;
|
||||
exprValListAddAddress(vlist, "var", &a);
|
||||
* Added a value list function exprValListSet to set the value of a variable
|
||||
(using the slow search method). This is because the add functions now return
|
||||
and error if the item (function/value) already exists instead of setting the
|
||||
value of the item. You can still use the fast direct access method.
|
||||
* Changed internal lists for function and value lists from binary trees to
|
||||
linked lists.
|
||||
|
||||
|
||||
|
||||
|
||||
Thursday, May 4, 2006
|
||||
---------------------
|
||||
Version 2.0
|
||||
|
||||
* All internal functions are evaluated directly in the exprEvalNode call.
|
||||
This gives some speed increase.
|
||||
* Removed parameter and reference count macros as well as functin creation
|
||||
macro. Parameter and reference count information can be set when adding
|
||||
a function solver.
|
||||
* Removed exprMsgFuncType, since it is unused by the library.
|
||||
* Changed much of the internal names from one-letter variable names to
|
||||
more meaningful names.
|
||||
|
||||
Thursday, December 1, 2005
|
||||
--------------------------
|
||||
Version 1.8
|
||||
|
||||
* Added support for the ^ operator to raise to a power.
|
||||
The pow function can still be used.
|
||||
* Moved basic math code (add,subtract,multiply,divide,negate,exponent)
|
||||
and multiple expression support from function solvers to the exprEvalNode
|
||||
function.
|
||||
|
||||
Tuesday, November 22, 2005
|
||||
--------------------------
|
||||
I still haven't been keeping up with history much.
|
||||
|
||||
* Removed < and > as comments. Instead use # as a
|
||||
comment to the end of the line
|
||||
* Added function exprGetErrorPosition to get start and
|
||||
end position of parse error.
|
||||
|
||||
Monday, May 3, 2004: Version 1.0
|
||||
---------------------------------
|
||||
This is a pretty bad time to start the history part since
|
||||
ExprEval is pretty much up and running and very operational.
|
||||
|
||||
* Added macro EXPR_MAJORVERSION
|
||||
* Added macro EXPR_MINORVERSION
|
||||
* Added function exprGetVersion
|
||||
* Added macro to make declaring functions easy:
|
||||
EXPR_FUNCTIONSOLVER(func_name)
|
||||
* Added support for passing variable references to functions
|
||||
with the ampersand. Example: minmax(1,2,3,&min,&max)
|
||||
* Added macros for reference support:
|
||||
EXPR_REQUIREREFCOUNT
|
||||
EXPR_REQUIREREFCOUNTMIN
|
||||
EXPR_REQUIREREFCOUNTMAX
|
||||
EXPR_REQUIREREFCOUNTRANGE
|
||||
* Added feature to disable assigning to a variable with the
|
||||
same name as a constant.
|
||||
* Added feature to enable applications to change the value of
|
||||
a constant while the expression can not. You must add
|
||||
any constants to the constant list BEFORE you parse the
|
||||
expression.
|
||||
ExprEval - A C/C++ based expression evaluation library
|
||||
Written by: Brian Allen Vanderburg II
|
||||
Licensed under the ExprEval License
|
||||
------------------------------------------------------
|
||||
ExprEval is a mostly a C based expression evaluation
|
||||
library. The only C++ part is the C++ Wrapper which
|
||||
encapsulates the complexity of the library usage.
|
||||
|
||||
ExprEval supports the parsing of multiple expressions
|
||||
in a single expression string. Each sub-expression
|
||||
must end with a semicolon. It also supports the use
|
||||
of variables, constants, and functions. Functions
|
||||
can take multiple arguments. These arguments can
|
||||
also be expressions.
|
||||
|
||||
ExprEval is very fast. It first parses the expression
|
||||
string into a tree of actions to take. After it has
|
||||
been parsed, an expression can be evaluated many times
|
||||
over an over.
|
||||
|
||||
Functions, variables, and constants are stored in
|
||||
their own seperate lists. This makes is where the
|
||||
lists can be shared among multiple expression objects.
|
||||
A function list can add all the functions needed, and
|
||||
then be added to each expression object, instead of
|
||||
added each needed function to each object. The same
|
||||
goes for constant lists. Variable lists make it where
|
||||
one expression can depend on a variable set in another.
|
||||
|
||||
|
||||
Saturday, July 1, 2006
|
||||
----------------------
|
||||
Version 2.6
|
||||
|
||||
* Added a new value list function 'exprValListGetNext' that can be used to
|
||||
enumerate the items in a value list. Any of the items not needed (name,
|
||||
value, or address) can be NULL. For example:
|
||||
|
||||
char *name;
|
||||
EXPRTYPE val;
|
||||
void *cookie;
|
||||
|
||||
cookie = exprValListGetNext(vlist, &name, &value, NULL, NULL);
|
||||
while(cookie)
|
||||
{
|
||||
/* Do something with name and value */
|
||||
cookie = exprValListGetNext(vlist, &name, &value, NULL, cookie);
|
||||
}
|
||||
|
||||
You must make sure not to actually edit the returned name, because it is a
|
||||
pointer into the value list to the name. This can also be used to have one
|
||||
value list store globals. Global variables can be added to a value list, then
|
||||
additional lists can be created, and before any variables are added
|
||||
or the expression is parsed, the global list can be enumerated for name and
|
||||
address and the exprValListAddAddress can be used to add them. This way,
|
||||
expressions can have their own private list, but some variables may be shared
|
||||
on each expression through the global list. This is useful especially if the
|
||||
globals are not known at compile time, but can be adjusted by the user.
|
||||
For example:
|
||||
|
||||
exprValList *globals;
|
||||
exprValList *v1;
|
||||
exprValList *v2;
|
||||
char *name;
|
||||
EXPRTYPE *addr;
|
||||
void *cookie;
|
||||
|
||||
exprValListCreate(&globals);
|
||||
/* Add variables to the list, perhaps read from a user file or something */
|
||||
|
||||
exprValListCreate(&v1);
|
||||
cookie = exprValListGetNext(globals, &name, NULL, &addr, NULL);
|
||||
while(cookie)
|
||||
{
|
||||
exprValListAddAddress(v1, name, addr);
|
||||
cookie = exprValListGetNext(globals, &name, NULL, &addr, cookie);
|
||||
}
|
||||
|
||||
|
||||
Friday, June 30, 2006
|
||||
---------------------
|
||||
Version 2.5
|
||||
|
||||
* Added a new value list function 'exprValListAddAddress'. This function adds
|
||||
a named value to the list, but uses the addresss of a stack variable. The
|
||||
stack variable is then used to set/get the value instead of the internal list
|
||||
value. You must ensure that the stack variable exists as long as it is used
|
||||
by the expression. This can permit, for example, a value name to be shared
|
||||
with two different value lists like such:
|
||||
|
||||
EXPRTYPE global_value;
|
||||
exprValListAddAddress(vlist, "global", &global_value);
|
||||
exprValListAddAddress(vlist2, "global", &global_value);
|
||||
|
||||
Like this, the value can be directly accessed by the application, and each
|
||||
value list will share it. This can also be used to replace code from this:
|
||||
|
||||
EXPRTYPE *a;
|
||||
exprValListAdd(vlist, "var", 0.0);
|
||||
exprValListGetAddress(vlist, "var", &a);
|
||||
|
||||
To look like this:
|
||||
|
||||
EXPRTYPE a;
|
||||
exprValListAddAddress(vlist, "var", &a);
|
||||
* Added a value list function exprValListSet to set the value of a variable
|
||||
(using the slow search method). This is because the add functions now return
|
||||
and error if the item (function/value) already exists instead of setting the
|
||||
value of the item. You can still use the fast direct access method.
|
||||
* Changed internal lists for function and value lists from binary trees to
|
||||
linked lists.
|
||||
|
||||
|
||||
|
||||
|
||||
Thursday, May 4, 2006
|
||||
---------------------
|
||||
Version 2.0
|
||||
|
||||
* All internal functions are evaluated directly in the exprEvalNode call.
|
||||
This gives some speed increase.
|
||||
* Removed parameter and reference count macros as well as functin creation
|
||||
macro. Parameter and reference count information can be set when adding
|
||||
a function solver.
|
||||
* Removed exprMsgFuncType, since it is unused by the library.
|
||||
* Changed much of the internal names from one-letter variable names to
|
||||
more meaningful names.
|
||||
|
||||
Thursday, December 1, 2005
|
||||
--------------------------
|
||||
Version 1.8
|
||||
|
||||
* Added support for the ^ operator to raise to a power.
|
||||
The pow function can still be used.
|
||||
* Moved basic math code (add,subtract,multiply,divide,negate,exponent)
|
||||
and multiple expression support from function solvers to the exprEvalNode
|
||||
function.
|
||||
|
||||
Tuesday, November 22, 2005
|
||||
--------------------------
|
||||
I still haven't been keeping up with history much.
|
||||
|
||||
* Removed < and > as comments. Instead use # as a
|
||||
comment to the end of the line
|
||||
* Added function exprGetErrorPosition to get start and
|
||||
end position of parse error.
|
||||
|
||||
Monday, May 3, 2004: Version 1.0
|
||||
---------------------------------
|
||||
This is a pretty bad time to start the history part since
|
||||
ExprEval is pretty much up and running and very operational.
|
||||
|
||||
* Added macro EXPR_MAJORVERSION
|
||||
* Added macro EXPR_MINORVERSION
|
||||
* Added function exprGetVersion
|
||||
* Added macro to make declaring functions easy:
|
||||
EXPR_FUNCTIONSOLVER(func_name)
|
||||
* Added support for passing variable references to functions
|
||||
with the ampersand. Example: minmax(1,2,3,&min,&max)
|
||||
* Added macros for reference support:
|
||||
EXPR_REQUIREREFCOUNT
|
||||
EXPR_REQUIREREFCOUNTMIN
|
||||
EXPR_REQUIREREFCOUNTMAX
|
||||
EXPR_REQUIREREFCOUNTRANGE
|
||||
* Added feature to disable assigning to a variable with the
|
||||
same name as a constant.
|
||||
* Added feature to enable applications to change the value of
|
||||
a constant while the expression can not. You must add
|
||||
any constants to the constant list BEFORE you parse the
|
||||
expression.
|
||||
|
Loading…
x
Reference in New Issue
Block a user