Back to index

php5  5.3.10
Classes | Defines | Typedefs | Enumerations | Functions
xmlrpc.h File Reference
#include "xml_element.h"
#include <time.h>
#include "xmlrpc_introspection.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _xmlrpc_request_output_options
struct  _xmlrpc_request_input_options
struct  _xmlrpc_error

Defines

#define XMLRPC_LIB_VERSION   "0.51"
#define XMLRPC_API_NO   20020623
#define XMLRPC_VERSION_STR   "xmlrpc-epi v. " XMLRPC_LIB_VERSION
#define XMLRPC_HOME_PAGE_STR   "http://xmlprc-epi.sourceforge.net/"
#define xmlrpc_error_parse_xml_syntax_str   "parse error. not well formed."
#define xmlrpc_error_parse_unknown_encoding_str   "parse error. unknown encoding"
#define xmlrpc_error_parse_bad_encoding_str   "parse error. invalid character for encoding"
#define xmlrpc_error_invalid_xmlrpc_str   "server error. xml-rpc not conforming to spec"
#define xmlrpc_error_unknown_method_str   "server error. method not found."
#define xmlrpc_error_invalid_params_str   "server error. invalid method parameters"
#define xmlrpc_error_internal_server_str   "server error. internal xmlrpc library error"
#define xmlrpc_error_application_str   "application error."
#define xmlrpc_error_system_str   "system error."
#define xmlrpc_error_transport_str   "transport error."
#define XMLRPC_DEFAULT_ID_CASE   XMLRPC_GetDefaultIdCase()
#define XMLRPC_DEFAULT_ID_CASE_SENSITIVITY   XMLRPC_GetDefaultIdCaseComparison()
#define XMLRPC_SetValueID(value, id, len)   XMLRPC_SetValueID_Case(value, id, len, XMLRPC_DEFAULT_ID_CASE)
#define XMLRPC_VectorAppendString(vector, id, s, len)   XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueString(id, s, len))
#define XMLRPC_VectorAppendBase64(vector, id, s, len)   XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueBase64(id, s, len))
#define XMLRPC_VectorAppendDateTime(vector, id, time)   XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueDateTime(id, time))
#define XMLRPC_VectorAppendDateTime_ISO8601(vector, id, s)   XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueDateTime_ISO8601(id, s))
#define XMLRPC_VectorAppendDouble(vector, id, f)   XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueDouble(id, f))
#define XMLRPC_VectorAppendInt(vector, id, i)   XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueInt(id, i))
#define XMLRPC_VectorAppendBoolean(vector, id, i)   XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueBoolean(id, i))
#define XMLRPC_VectorGetValueWithID(vector, id)   XMLRPC_VectorGetValueWithID_Case(vector, id, XMLRPC_DEFAULT_ID_CASE_SENSITIVITY)
#define XMLRPC_VectorGetStringWithID(vector, id)   XMLRPC_GetValueString(XMLRPC_VectorGetValueWithID(vector, id))
#define XMLRPC_VectorGetBase64WithID(vector, id)   XMLRPC_GetValueBase64(XMLRPC_VectorGetValueWithID(vector, id))
#define XMLRPC_VectorGetDateTimeWithID(vector, id)   XMLRPC_GetValueDateTime(XMLRPC_VectorGetValueWithID(vector, id))
#define XMLRPC_VectorGetDoubleWithID(vector, id)   XMLRPC_GetValueDouble(XMLRPC_VectorGetValueWithID(vector, id))
#define XMLRPC_VectorGetIntWithID(vector, id)   XMLRPC_GetValueInt(XMLRPC_VectorGetValueWithID(vector, id))
#define XMLRPC_VectorGetBooleanWithID(vector, id)   XMLRPC_GetValueBoolean(XMLRPC_VectorGetValueWithID(vector, id))

Typedefs

typedef enum _XMLRPC_VALUE_TYPE XMLRPC_VALUE_TYPE
typedef enum _XMLRPC_VECTOR_TYPE XMLRPC_VECTOR_TYPE
typedef enum
_XMLRPC_VALUE_TYPE_EASY 
XMLRPC_VALUE_TYPE_EASY
typedef enum _xmlrpc_request_type XMLRPC_REQUEST_TYPE
typedef enum _xmlrpc_error_code XMLRPC_ERROR_CODE
typedef enum _xmlrpc_version XMLRPC_VERSION
typedef struct
_xmlrpc_request_output_options 
STRUCT_XMLRPC_REQUEST_OUTPUT_OPTIONS
typedef struct
_xmlrpc_request_output_options
XMLRPC_REQUEST_OUTPUT_OPTIONS
typedef struct
_xmlrpc_request_input_options 
STRUCT_XMLRPC_REQUEST_INPUT_OPTIONS
typedef struct
_xmlrpc_request_input_options
XMLRPC_REQUEST_INPUT_OPTIONS
typedef struct _xmlrpc_error STRUCT_XMLRPC_ERROR
typedef struct _xmlrpc_errorXMLRPC_ERROR
typedef enum
_xmlrpc_case_comparison 
XMLRPC_CASE_COMPARISON
typedef enum _xmlrpc_case XMLRPC_CASE
typedef struct _xmlrpc_requestXMLRPC_REQUEST
typedef struct _xmlrpc_serverXMLRPC_SERVER
typedef struct _xmlrpc_valueXMLRPC_VALUE
typedef XMLRPC_VALUE(* XMLRPC_Callback )(XMLRPC_SERVER server, XMLRPC_REQUEST input, void *userData)

Enumerations

enum  _XMLRPC_VALUE_TYPE {
  xmlrpc_none, xmlrpc_empty, xmlrpc_base64, xmlrpc_boolean,
  xmlrpc_datetime, xmlrpc_double, xmlrpc_int, xmlrpc_string,
  xmlrpc_vector
}
enum  _XMLRPC_VECTOR_TYPE { xmlrpc_vector_none, xmlrpc_vector_array, xmlrpc_vector_mixed, xmlrpc_vector_struct }
enum  _XMLRPC_VALUE_TYPE_EASY {
  xmlrpc_type_none, xmlrpc_type_empty, xmlrpc_type_base64, xmlrpc_type_boolean,
  xmlrpc_type_datetime, xmlrpc_type_double, xmlrpc_type_int, xmlrpc_type_string,
  xmlrpc_type_array, xmlrpc_type_mixed, xmlrpc_type_struct
}
enum  _xmlrpc_request_type { xmlrpc_request_none, xmlrpc_request_call, xmlrpc_request_response }
enum  _xmlrpc_error_code {
  xmlrpc_error_none = 0, xmlrpc_error_parse_xml_syntax = -32700, xmlrpc_error_parse_unknown_encoding = -32701, xmlrpc_error_parse_bad_encoding = -32702,
  xmlrpc_error_invalid_xmlrpc = -32600, xmlrpc_error_unknown_method = -32601, xmlrpc_error_invalid_params = -32602, xmlrpc_error_internal_server = -32603,
  xmlrpc_error_application = -32500, xmlrpc_error_system = -32400, xmlrpc_error_transport = -32300
}
enum  _xmlrpc_version {
  xmlrpc_version_none = 0, xmlrpc_version_1_0 = 1, xmlrpc_version_simple = 2, xmlrpc_version_danda = 2,
  xmlrpc_version_soap_1_1 = 3
}
enum  _xmlrpc_case_comparison { xmlrpc_case_insensitive, xmlrpc_case_sensitive }
enum  _xmlrpc_case { xmlrpc_case_exact, xmlrpc_case_lower, xmlrpc_case_upper }

Functions

XMLRPC_CASE XMLRPC_GetDefaultIdCase (void)
XMLRPC_CASE XMLRPC_SetDefaultIdCase (XMLRPC_CASE id_case)
XMLRPC_CASE_COMPARISON XMLRPC_GetDefaultIdCaseComparison (void)
XMLRPC_CASE_COMPARISON XMLRPC_SetDefaultIdCaseComparison (XMLRPC_CASE_COMPARISON id_case)
int XMLRPC_VectorSize (XMLRPC_VALUE value)
XMLRPC_VALUE XMLRPC_VectorRewind (XMLRPC_VALUE value)
XMLRPC_VALUE XMLRPC_VectorNext (XMLRPC_VALUE value)
int XMLRPC_SetIsVector (XMLRPC_VALUE value, XMLRPC_VECTOR_TYPE type)
int XMLRPC_AddValueToVector (XMLRPC_VALUE target, XMLRPC_VALUE source)
int XMLRPC_AddValuesToVector (XMLRPC_VALUE target,...)
int XMLRPC_VectorRemoveValue (XMLRPC_VALUE vector, XMLRPC_VALUE value)
XMLRPC_VALUE XMLRPC_VectorGetValueWithID_Case (XMLRPC_VALUE vector, const char *id, XMLRPC_CASE_COMPARISON id_case)
XMLRPC_VALUE XMLRPC_CreateValueBoolean (const char *id, int truth)
XMLRPC_VALUE XMLRPC_CreateValueBase64 (const char *id, const char *s, int len)
XMLRPC_VALUE XMLRPC_CreateValueDateTime (const char *id, time_t time)
XMLRPC_VALUE XMLRPC_CreateValueDateTime_ISO8601 (const char *id, const char *s)
XMLRPC_VALUE XMLRPC_CreateValueDouble (const char *id, double f)
XMLRPC_VALUE XMLRPC_CreateValueInt (const char *id, int i)
XMLRPC_VALUE XMLRPC_CreateValueString (const char *id, const char *s, int len)
XMLRPC_VALUE XMLRPC_CreateValueEmpty (void)
XMLRPC_VALUE XMLRPC_CreateVector (const char *id, XMLRPC_VECTOR_TYPE type)
void XMLRPC_CleanupValue (XMLRPC_VALUE value)
XMLRPC_VALUE XMLRPC_RequestSetError (XMLRPC_REQUEST request, XMLRPC_VALUE error)
XMLRPC_VALUE XMLRPC_RequestGetError (XMLRPC_REQUEST request)
XMLRPC_VALUE XMLRPC_CopyValue (XMLRPC_VALUE value)
XMLRPC_VALUE XMLRPC_DupValueNew (XMLRPC_VALUE xSource)
void XMLRPC_SetValueDateTime (XMLRPC_VALUE value, time_t time)
void XMLRPC_SetValueDateTime_ISO8601 (XMLRPC_VALUE value, const char *s)
void XMLRPC_SetValueDouble (XMLRPC_VALUE value, double val)
void XMLRPC_SetValueInt (XMLRPC_VALUE value, int val)
void XMLRPC_SetValueBoolean (XMLRPC_VALUE value, int val)
const char * XMLRPC_SetValueString (XMLRPC_VALUE value, const char *s, int len)
void XMLRPC_SetValueBase64 (XMLRPC_VALUE value, const char *s, int len)
const char * XMLRPC_SetValueID_Case (XMLRPC_VALUE value, const char *id, int len, XMLRPC_CASE id_case)
const char * XMLRPC_GetValueString (XMLRPC_VALUE value)
int XMLRPC_GetValueStringLen (XMLRPC_VALUE value)
int XMLRPC_GetValueInt (XMLRPC_VALUE value)
int XMLRPC_GetValueBoolean (XMLRPC_VALUE value)
double XMLRPC_GetValueDouble (XMLRPC_VALUE value)
const char * XMLRPC_GetValueBase64 (XMLRPC_VALUE value)
time_t XMLRPC_GetValueDateTime (XMLRPC_VALUE value)
const char * XMLRPC_GetValueDateTime_ISO8601 (XMLRPC_VALUE value)
const char * XMLRPC_GetValueID (XMLRPC_VALUE value)
XMLRPC_VALUE_TYPE XMLRPC_GetValueType (XMLRPC_VALUE v)
XMLRPC_VALUE_TYPE_EASY XMLRPC_GetValueTypeEasy (XMLRPC_VALUE v)
XMLRPC_VECTOR_TYPE XMLRPC_GetVectorType (XMLRPC_VALUE v)
XMLRPC_REQUEST XMLRPC_REQUEST_FromXML (const char *in_buf, int len, XMLRPC_REQUEST_INPUT_OPTIONS in_options)
XMLRPC_VALUE XMLRPC_VALUE_FromXML (const char *in_buf, int len, XMLRPC_REQUEST_INPUT_OPTIONS in_options)
char * XMLRPC_REQUEST_ToXML (XMLRPC_REQUEST request, int *buf_len)
char * XMLRPC_VALUE_ToXML (XMLRPC_VALUE val, int *buf_len)
const char * XMLRPC_RequestSetMethodName (XMLRPC_REQUEST request, const char *methodName)
const char * XMLRPC_RequestGetMethodName (XMLRPC_REQUEST request)
XMLRPC_REQUEST XMLRPC_RequestNew (void)
void XMLRPC_RequestFree (XMLRPC_REQUEST request, int bFreeIO)
XMLRPC_REQUEST_OUTPUT_OPTIONS XMLRPC_RequestSetOutputOptions (XMLRPC_REQUEST request, XMLRPC_REQUEST_OUTPUT_OPTIONS output)
XMLRPC_REQUEST_OUTPUT_OPTIONS XMLRPC_RequestGetOutputOptions (XMLRPC_REQUEST request)
XMLRPC_VALUE XMLRPC_RequestSetData (XMLRPC_REQUEST request, XMLRPC_VALUE data)
XMLRPC_VALUE XMLRPC_RequestGetData (XMLRPC_REQUEST request)
XMLRPC_REQUEST_TYPE XMLRPC_RequestSetRequestType (XMLRPC_REQUEST request, XMLRPC_REQUEST_TYPE type)
XMLRPC_REQUEST_TYPE XMLRPC_RequestGetRequestType (XMLRPC_REQUEST request)
XMLRPC_SERVER XMLRPC_ServerCreate (void)
XMLRPC_SERVER XMLRPC_GetGlobalServer (void)
void XMLRPC_ServerDestroy (XMLRPC_SERVER server)
int XMLRPC_ServerRegisterMethod (XMLRPC_SERVER server, const char *name, XMLRPC_Callback cb)
XMLRPC_Callback XMLRPC_ServerFindMethod (XMLRPC_SERVER server, const char *callName)
XMLRPC_VALUE XMLRPC_ServerCallMethod (XMLRPC_SERVER server, XMLRPC_REQUEST request, void *userData)
int XMLRPC_ValueIsFault (XMLRPC_VALUE value)
int XMLRPC_ResponseIsFault (XMLRPC_REQUEST response)
int XMLRPC_GetValueFaultCode (XMLRPC_VALUE value)
int XMLRPC_GetResponseFaultCode (XMLRPC_REQUEST response)
const char * XMLRPC_GetValueFaultString (XMLRPC_VALUE value)
const char * XMLRPC_GetResponseFaultString (XMLRPC_REQUEST response)
XMLRPC_VALUE XMLRPC_UtilityCreateFault (int fault_code, const char *fault_string)
void XMLRPC_Free (void *mem)
const char * XMLRPC_GetVersionString (void)

Class Documentation

struct _xmlrpc_request_output_options

Definition at line 213 of file xmlrpc.h.

Collaboration diagram for _xmlrpc_request_output_options:
Class Members
XMLRPC_VERSION version
STRUCT_XML_ELEM_OUTPUT_OPTIONS xml_elem_opts
struct _xmlrpc_request_input_options

Definition at line 230 of file xmlrpc.h.

Collaboration diagram for _xmlrpc_request_input_options:
Class Members
STRUCT_XML_ELEM_INPUT_OPTIONS xml_elem_opts
struct _xmlrpc_error

Definition at line 242 of file xmlrpc.h.

Collaboration diagram for _xmlrpc_error:
Class Members
XMLRPC_ERROR_CODE code
STRUCT_XML_ELEM_ERROR xml_elem_error

Define Documentation

#define XMLRPC_API_NO   20020623

Definition at line 50 of file xmlrpc.h.

Definition at line 283 of file xmlrpc.h.

Definition at line 284 of file xmlrpc.h.

#define xmlrpc_error_application_str   "application error."

Definition at line 177 of file xmlrpc.h.

#define xmlrpc_error_internal_server_str   "server error. internal xmlrpc library error"

Definition at line 176 of file xmlrpc.h.

#define xmlrpc_error_invalid_params_str   "server error. invalid method parameters"

Definition at line 175 of file xmlrpc.h.

#define xmlrpc_error_invalid_xmlrpc_str   "server error. xml-rpc not conforming to spec"

Definition at line 173 of file xmlrpc.h.

#define xmlrpc_error_parse_bad_encoding_str   "parse error. invalid character for encoding"

Definition at line 172 of file xmlrpc.h.

#define xmlrpc_error_parse_unknown_encoding_str   "parse error. unknown encoding"

Definition at line 171 of file xmlrpc.h.

#define xmlrpc_error_parse_xml_syntax_str   "parse error. not well formed."

Definition at line 170 of file xmlrpc.h.

#define xmlrpc_error_system_str   "system error."

Definition at line 178 of file xmlrpc.h.

#define xmlrpc_error_transport_str   "transport error."

Definition at line 179 of file xmlrpc.h.

#define xmlrpc_error_unknown_method_str   "server error. method not found."

Definition at line 174 of file xmlrpc.h.

#define XMLRPC_HOME_PAGE_STR   "http://xmlprc-epi.sourceforge.net/"

Definition at line 56 of file xmlrpc.h.

#define XMLRPC_LIB_VERSION   "0.51"

Definition at line 46 of file xmlrpc.h.

#define XMLRPC_SetValueID (   value,
  id,
  len 
)    XMLRPC_SetValueID_Case(value, id, len, XMLRPC_DEFAULT_ID_CASE)

Definition at line 354 of file xmlrpc.h.

#define XMLRPC_VectorAppendBase64 (   vector,
  id,
  s,
  len 
)    XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueBase64(id, s, len))

Definition at line 428 of file xmlrpc.h.

#define XMLRPC_VectorAppendBoolean (   vector,
  id,
 
)    XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueBoolean(id, i))

Definition at line 433 of file xmlrpc.h.

Definition at line 429 of file xmlrpc.h.

Definition at line 430 of file xmlrpc.h.

#define XMLRPC_VectorAppendDouble (   vector,
  id,
 
)    XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueDouble(id, f))

Definition at line 431 of file xmlrpc.h.

#define XMLRPC_VectorAppendInt (   vector,
  id,
 
)    XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueInt(id, i))

Definition at line 432 of file xmlrpc.h.

#define XMLRPC_VectorAppendString (   vector,
  id,
  s,
  len 
)    XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueString(id, s, len))

Definition at line 427 of file xmlrpc.h.

Definition at line 438 of file xmlrpc.h.

Definition at line 442 of file xmlrpc.h.

Definition at line 439 of file xmlrpc.h.

Definition at line 440 of file xmlrpc.h.

#define XMLRPC_VectorGetIntWithID (   vector,
  id 
)    XMLRPC_GetValueInt(XMLRPC_VectorGetValueWithID(vector, id))

Definition at line 441 of file xmlrpc.h.

Definition at line 437 of file xmlrpc.h.

Definition at line 436 of file xmlrpc.h.

#define XMLRPC_VERSION_STR   "xmlrpc-epi v. " XMLRPC_LIB_VERSION

Definition at line 53 of file xmlrpc.h.


Typedef Documentation

typedef XMLRPC_VALUE(* XMLRPC_Callback)(XMLRPC_SERVER server, XMLRPC_REQUEST input, void *userData)

Definition at line 303 of file xmlrpc.h.

typedef enum _xmlrpc_case XMLRPC_CASE
typedef struct _xmlrpc_error * XMLRPC_ERROR

Definition at line 287 of file xmlrpc.h.

typedef struct _xmlrpc_server* XMLRPC_SERVER

Definition at line 288 of file xmlrpc.h.

typedef struct _xmlrpc_value* XMLRPC_VALUE

Definition at line 289 of file xmlrpc.h.


Enumeration Type Documentation

Enumerator:
xmlrpc_case_exact 
xmlrpc_case_lower 
xmlrpc_case_upper 

Definition at line 275 of file xmlrpc.h.

                          {
   xmlrpc_case_exact,            /* leave case alone             */
   xmlrpc_case_lower,            /* lower-case id                */
   xmlrpc_case_upper             /* upper-case id                */
} XMLRPC_CASE;
Enumerator:
xmlrpc_case_insensitive 
xmlrpc_case_sensitive 

Definition at line 259 of file xmlrpc.h.

                                     {
   xmlrpc_case_insensitive,      /* use case-insensitive compare */
   xmlrpc_case_sensitive         /* use case-sensitive compare   */
} XMLRPC_CASE_COMPARISON;
Enumerator:
xmlrpc_error_none 
xmlrpc_error_parse_xml_syntax 
xmlrpc_error_parse_unknown_encoding 
xmlrpc_error_parse_bad_encoding 
xmlrpc_error_invalid_xmlrpc 
xmlrpc_error_unknown_method 
xmlrpc_error_invalid_params 
xmlrpc_error_internal_server 
xmlrpc_error_application 
xmlrpc_error_system 
xmlrpc_error_transport 

Definition at line 155 of file xmlrpc.h.

Enumerator:
xmlrpc_request_none 
xmlrpc_request_call 
xmlrpc_request_response 

Definition at line 139 of file xmlrpc.h.

                                  {
   xmlrpc_request_none,          /* not a valid request            */
   xmlrpc_request_call,          /* calling/invoking a method      */
   xmlrpc_request_response,      /* responding to a method call    */
} XMLRPC_REQUEST_TYPE;
Enumerator:
xmlrpc_none 
xmlrpc_empty 
xmlrpc_base64 
xmlrpc_boolean 
xmlrpc_datetime 
xmlrpc_double 
xmlrpc_int 
xmlrpc_string 
xmlrpc_vector 

Definition at line 70 of file xmlrpc.h.

                                {
   xmlrpc_none,                   /* not a value                    */
   xmlrpc_empty,                  /* empty value, eg NULL           */
   xmlrpc_base64,                 /* base64 value, eg binary data   */
   xmlrpc_boolean,                /* boolean  [0 | 1]               */
   xmlrpc_datetime,               /* datetime [ISO8601 | time_t]    */
   xmlrpc_double,                 /* double / floating point        */
   xmlrpc_int,                    /* integer                        */
   xmlrpc_string,                 /* string                         */
   xmlrpc_vector                  /* vector, aka list, array        */
} XMLRPC_VALUE_TYPE;
Enumerator:
xmlrpc_type_none 
xmlrpc_type_empty 
xmlrpc_type_base64 
xmlrpc_type_boolean 
xmlrpc_type_datetime 
xmlrpc_type_double 
xmlrpc_type_int 
xmlrpc_type_string 
xmlrpc_type_array 
xmlrpc_type_mixed 
xmlrpc_type_struct 

Definition at line 112 of file xmlrpc.h.

                                     {
   xmlrpc_type_none,               /* not a value                    */
   xmlrpc_type_empty,              /* empty value, eg NULL           */
   xmlrpc_type_base64,             /* base64 value, eg binary data   */
   xmlrpc_type_boolean,            /* boolean  [0 | 1]               */
   xmlrpc_type_datetime,           /* datetime [ISO8601 | time_t]    */
   xmlrpc_type_double,             /* double / floating point        */
   xmlrpc_type_int,                /* integer                        */
   xmlrpc_type_string,             /* string                         */
/* -- IMPORTANT: identical to XMLRPC_VALUE_TYPE to this point. --   */
       xmlrpc_type_array,              /* vector array                   */
       xmlrpc_type_mixed,              /* vector mixed                   */
       xmlrpc_type_struct              /* vector struct                  */
} XMLRPC_VALUE_TYPE_EASY;
Enumerator:
xmlrpc_vector_none 
xmlrpc_vector_array 
xmlrpc_vector_mixed 
xmlrpc_vector_struct 

Definition at line 94 of file xmlrpc.h.

                                 {
   xmlrpc_vector_none,            /* not an array                   */
   xmlrpc_vector_array,           /* no values may have key names   */
   xmlrpc_vector_mixed,           /* some values may have key names */
   xmlrpc_vector_struct           /* all values must have key names */
} XMLRPC_VECTOR_TYPE;
Enumerator:
xmlrpc_version_none 
xmlrpc_version_1_0 
xmlrpc_version_simple 
xmlrpc_version_danda 
xmlrpc_version_soap_1_1 

Definition at line 193 of file xmlrpc.h.

                             {
   xmlrpc_version_none = 0,      /* not a recognized vocabulary    */ 
   xmlrpc_version_1_0 = 1,       /* xmlrpc 1.0 standard vocab      */ 
   xmlrpc_version_simple = 2,    /* alt more readable vocab        */ 
   xmlrpc_version_danda = 2,     /* same as simple. legacy         */
       xmlrpc_version_soap_1_1 = 3 /* SOAP. version 1.1              */
} XMLRPC_VERSION;

Function Documentation

int XMLRPC_AddValuesToVector ( XMLRPC_VALUE  target,
  ... 
)

Definition at line 1211 of file xmlrpc.c.

                                                       {
   int iRetval = 0;

   if(target) {
      if(target->type == xmlrpc_vector) {
         XMLRPC_VALUE v = NULL;
         va_list vl;

         va_start(vl, target);

         do {
            v = va_arg(vl, XMLRPC_VALUE);
            if(v) {
               if(!XMLRPC_AddValueToVector(target, v)) {
                  iRetval = 0;
                  break;
               }
            }
                     }
                     while (v);

         va_end(vl);

         if(NULL == v) {
            iRetval = 1;
         }
      }
   }
   return iRetval;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1148 of file xmlrpc.c.

                                                                      {
   if(target && source) {
      if(target->type == xmlrpc_vector && target->v && 
         target->v->q && target->v->type != xmlrpc_vector_none) {

         /* guard against putting value of unknown type into vector */
         switch(source->type) {
            case xmlrpc_empty:
            case xmlrpc_base64:
            case xmlrpc_boolean:
            case xmlrpc_datetime:
            case xmlrpc_double:
            case xmlrpc_int:
            case xmlrpc_string:
            case xmlrpc_vector:
               /* Guard against putting a key/val pair into an array vector */
               if( !(source->id.len && target->v->type == xmlrpc_vector_array) ) {
                                   if (isDuplicateEntry (target, source)
                                           || Q_PushTail (target->v->q, XMLRPC_CopyValue (source))) {
                     return 1;
                  }
               }
               else {
                                   /* fprintf (stderr,
                                                        "xmlrpc: attempted to add key/val pair to vector of type array\n"); */
               }
               break;
            default:
                            /* fprintf (stderr,
                                                 "xmlrpc: attempted to add value of unknown type to vector\n"); */
               break;
         }
      }
   }
   return 0;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1437 of file xmlrpc.c.

                                             {
   if(value) {
      if(value->iRefCount > 0) {
         value->iRefCount --;
      }

#ifdef XMLRPC_DEBUG_REFCOUNT
      if(value->id.str) {
                     printf ("decremented refcount of %s, now %i\n", value->id.str,
                                     value->iRefCount);
      }
      else {
                     printf ("decremented refcount of 0x%x, now %i\n", value,
                                     value->iRefCount);
      }
#endif

      if(value->type == xmlrpc_vector) {
         if(value->v) {
            if(value->iRefCount == 0) {
               XMLRPC_VALUE cur = (XMLRPC_VALUE)Q_Head(value->v->q);
               while( cur ) {
                  XMLRPC_CleanupValue(cur);
   
                  /* Make sure some idiot didn't include a vector as a child of itself
                   * and thus it would have already free'd these.
                   */
                  if(value->v && value->v->q) {
                     cur = Q_Next(value->v->q);
                  }
                  else {
                     break;
                  }
               }

               Q_Destroy(value->v->q);
               my_free(value->v->q);
               my_free(value->v);
            }
         }
      }


      if(value->iRefCount == 0) {

         /* guard against freeing invalid types */
         switch(value->type) {
            case xmlrpc_empty:
            case xmlrpc_base64:
            case xmlrpc_boolean:
            case xmlrpc_datetime:
            case xmlrpc_double:
            case xmlrpc_int:
            case xmlrpc_string:
            case xmlrpc_vector:
#ifdef XMLRPC_DEBUG_REFCOUNT
               if(value->id.str) {
                  printf("free'd %s\n", value->id.str);
               }
               else {
                  printf("free'd 0x%x\n", value);
               }
#endif 
               simplestring_free(&value->id);
               simplestring_free(&value->str);

               memset(value, 0, sizeof(STRUCT_XMLRPC_VALUE));
               my_free(value);
               break;
            default:
                            /* fprintf (stderr,
                                                 "xmlrpc: attempted to free value of invalid type\n"); */
               break;
         }
      }
   }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1576 of file xmlrpc.c.

                                                  {
   if(value) {
      value->iRefCount ++;
#ifdef XMLRPC_DEBUG_REFCOUNT
      if(value->id.str) {
                     printf ("incremented refcount of %s, now %i\n", value->id.str,
                                     value->iRefCount);
              }
              else {
                     printf ("incremented refcount of 0x%x, now %i\n", value,
                                     value->iRefCount);
      }
#endif
   }
   return value;
}

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_CreateValueBase64 ( const char *  id,
const char *  s,
int  len 
)

Definition at line 1825 of file xmlrpc.c.

                                                                              {
   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
   if(val) {
      XMLRPC_SetValueBase64(val, s, len);
      if(id) {
         XMLRPC_SetValueID(val, id, 0);
      }
   }
   return val;
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_CreateValueBoolean ( const char *  id,
int  truth 
)

Definition at line 1397 of file xmlrpc.c.

                                                              {
   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
   if(val) {
      XMLRPC_SetValueBoolean(val, i);
      if(id) {
         XMLRPC_SetValueID(val, id, 0);
      }
   }
   return val;
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_CreateValueDateTime ( const char *  id,
time_t  time 
)

Definition at line 1683 of file xmlrpc.c.

                                                                     {
   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
   if(val) {
      XMLRPC_SetValueDateTime(val, time);
      if(id) {
         XMLRPC_SetValueID(val, id, 0);
      }
   }
   return val;
}

Here is the call graph for this function:

XMLRPC_VALUE XMLRPC_CreateValueDateTime_ISO8601 ( const char *  id,
const char *  s 
)

Definition at line 1756 of file xmlrpc.c.

                                                                               {
   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
   if(val) {
      XMLRPC_SetValueDateTime_ISO8601(val, s);
      if(id) {
         XMLRPC_SetValueID(val, id, 0);
      }
   }
   return val;
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_CreateValueDouble ( const char *  id,
double  f 
)

Definition at line 1883 of file xmlrpc.c.

                                                                {
   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
   if(val) {
      XMLRPC_SetValueDouble(val, d);
      if(id) {
         XMLRPC_SetValueID(val, id, 0);
      }
   }
   return val;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 856 of file xmlrpc.c.

                                       {
   XMLRPC_VALUE v = calloc(1, sizeof(STRUCT_XMLRPC_VALUE));
   if(v) {
#ifdef XMLRPC_DEBUG_REFCOUNT
              printf ("calloc'd 0x%x\n", v);
#endif
      v->type = xmlrpc_empty;
      simplestring_init(&v->id);
      simplestring_init(&v->str);
   }
   return v;
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_CreateValueInt ( const char *  id,
int  i 
)

Definition at line 1365 of file xmlrpc.c.

                                                          {
   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
   if(val) {
      XMLRPC_SetValueInt(val, i);
      if(id) {
         XMLRPC_SetValueID(val, id, 0);
      }
   }
   return val;
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_CreateValueString ( const char *  id,
const char *  s,
int  len 
)

Definition at line 1330 of file xmlrpc.c.

                                                                                {
   XMLRPC_VALUE value = NULL;
   if(val) {
      value = XMLRPC_CreateValueEmpty();
      if(value) {
         XMLRPC_SetValueString(value, val, len);
         if(id) {
            XMLRPC_SetValueID(value, id, 0);
         }
      }
   }
   return value;
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_CreateVector ( const char *  id,
XMLRPC_VECTOR_TYPE  type 
)

Definition at line 1089 of file xmlrpc.c.

                                                                          {
   XMLRPC_VALUE val = NULL;

   val = XMLRPC_CreateValueEmpty();
   if(val) {
      if(XMLRPC_SetIsVector(val, type)) {
         if(id) {
            const char *pSVI = NULL;

            pSVI = XMLRPC_SetValueID(val, id, 0);
            if(NULL == pSVI) {
               val = NULL;
            }
         }
      }
      else {
         val = NULL;
      }
   }
   return val;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1618 of file xmlrpc.c.

                                                       {
       XMLRPC_VALUE xReturn = NULL;
       if (xSource) {
              xReturn = XMLRPC_CreateValueEmpty ();
              if (xSource->id.len) {
                     XMLRPC_SetValueID (xReturn, xSource->id.str, xSource->id.len);
              }

              switch (xSource->type) {
              case xmlrpc_int:
              case xmlrpc_boolean:
                     XMLRPC_SetValueInt (xReturn, xSource->i);
                     break;
              case xmlrpc_string:
              case xmlrpc_base64:
                     XMLRPC_SetValueString (xReturn, xSource->str.str, xSource->str.len);
                     break;
              case xmlrpc_datetime:
                     XMLRPC_SetValueDateTime (xReturn, xSource->i);
                     break;
              case xmlrpc_double:
                     XMLRPC_SetValueDouble (xReturn, xSource->d);
                     break;
              case xmlrpc_vector:
                     {
                            q_iter qi = Q_Iter_Head_F (xSource->v->q);
                            XMLRPC_SetIsVector (xReturn, xSource->v->type);

                            while (qi) {
                                   XMLRPC_VALUE xIter = Q_Iter_Get_F (qi);
                                   XMLRPC_AddValueToVector (xReturn, XMLRPC_DupValueNew (xIter));
                                   qi = Q_Iter_Next_F (qi);
                            }
                     }
                     break;
              default:
                     break;
              }
       }
       return xReturn;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void XMLRPC_Free ( void *  mem)

Definition at line 2976 of file xmlrpc.c.

                            {
   my_free(mem);
}

Definition at line 2628 of file xmlrpc.c.

Here is the call graph for this function:

Definition at line 2679 of file xmlrpc.c.

Here is the call graph for this function:

Definition at line 2352 of file xmlrpc.c.

                                       {
   static XMLRPC_SERVER xsServer = 0;
   if(!xsServer) {
      xsServer = XMLRPC_ServerCreate();
   }
   return xsServer;
}

Here is the call graph for this function:

Definition at line 2905 of file xmlrpc.c.

Here is the call graph for this function:

const char* XMLRPC_GetResponseFaultString ( XMLRPC_REQUEST  response)

Definition at line 2948 of file xmlrpc.c.

Here is the call graph for this function:

const char* XMLRPC_GetValueBase64 ( XMLRPC_VALUE  value)

Definition at line 2033 of file xmlrpc.c.

                                                      {
    return ((value && value->type == xmlrpc_base64) ? value->str.str : 0);
}

Here is the caller graph for this function:

Definition at line 1984 of file xmlrpc.c.

                                               {
    return ((value && value->type == xmlrpc_boolean) ? value->i : 0);
}

Here is the caller graph for this function:

Definition at line 2058 of file xmlrpc.c.

                                                   {
    return (time_t)((value && value->type == xmlrpc_datetime) ? value->i : 0);
}

Here is the caller graph for this function:

Definition at line 2081 of file xmlrpc.c.

                                                                {
    return ((value && value->type == xmlrpc_datetime) ? value->str.str : 0);
}

Here is the caller graph for this function:

Definition at line 2008 of file xmlrpc.c.

                                                 {
    return ((value && value->type == xmlrpc_double) ? value->d : 0);
}

Here is the caller graph for this function:

Definition at line 2882 of file xmlrpc.c.

                                                  {
   return XMLRPC_VectorGetIntWithID(value, "faultCode");
}

Here is the caller graph for this function:

const char* XMLRPC_GetValueFaultString ( XMLRPC_VALUE  value)

Definition at line 2927 of file xmlrpc.c.

                                                            {
   return XMLRPC_VectorGetStringWithID(value, "faultString");
}

Here is the caller graph for this function:

const char* XMLRPC_GetValueID ( XMLRPC_VALUE  value)

Definition at line 2105 of file xmlrpc.c.

                                                  {
    return (const char*)((value && value->id.len) ? value->id.str : 0);
}

Here is the caller graph for this function:

Definition at line 1960 of file xmlrpc.c.

                                           {
    return ((value && value->type == xmlrpc_int) ? value->i : 0);
}

Here is the caller graph for this function:

const char* XMLRPC_GetValueString ( XMLRPC_VALUE  value)

Definition at line 1913 of file xmlrpc.c.

                                                      {
    return ((value && value->type == xmlrpc_string) ? value->str.str : 0);
}

Here is the caller graph for this function:

Definition at line 1936 of file xmlrpc.c.

                                                 {
    return ((value) ? value->str.len : 0);
}

Here is the caller graph for this function:

Definition at line 2215 of file xmlrpc.c.

                                                          {
   return value ? value->type : xmlrpc_empty;
}

Here is the caller graph for this function:

Definition at line 2269 of file xmlrpc.c.

                                                                    {
       if (value) {
              switch (value->type) {
              case xmlrpc_vector:
                     switch (value->v->type) {
                     case xmlrpc_vector_none:
                            return xmlrpc_type_none;
                     case xmlrpc_vector_struct:
                            return xmlrpc_type_struct;
                     case xmlrpc_vector_mixed:
                            return xmlrpc_type_mixed;
                     case xmlrpc_vector_array:
                            return xmlrpc_type_array;
                     }
              default:
                     /* evil cast, but we know they are the same */
                     return(XMLRPC_VALUE_TYPE_EASY) value->type;
              }
       }
       return xmlrpc_none;
}

Here is the caller graph for this function:

Definition at line 2243 of file xmlrpc.c.

                                                            {
   return(value && value->v) ? value->v->type : xmlrpc_none;
}

Here is the caller graph for this function:

const char* XMLRPC_GetVersionString ( void  )

Definition at line 2997 of file xmlrpc.c.

                                       {
   return XMLRPC_VERSION_STR;
}

Here is the caller graph for this function:

XMLRPC_REQUEST XMLRPC_REQUEST_FromXML ( const char *  in_buf,
int  len,
XMLRPC_REQUEST_INPUT_OPTIONS  in_options 
)

Definition at line 797 of file xmlrpc.c.

                                                                                                                                    {
   XMLRPC_REQUEST request = XMLRPC_RequestNew();
   STRUCT_XML_ELEM_ERROR error = {0};

   if(request) {
              xml_element *root_elem =
              xml_elem_parse_buf (in_buf, len,
                                                          (in_options ? &in_options->xml_elem_opts : NULL),
                                                          &error);

      if(root_elem) {
         if(!strcmp(root_elem->name, "simpleRPC")) {
            request->output.version = xmlrpc_version_simple;
            xml_element_to_DANDARPC_REQUEST(request, root_elem);
         }
                     else if (!strcmp (root_elem->name, "SOAP-ENV:Envelope")) {
                            request->output.version = xmlrpc_version_soap_1_1;
                            xml_element_to_SOAP_REQUEST (request, root_elem);
                     }
         else {
            request->output.version = xmlrpc_version_1_0;
            xml_element_to_XMLRPC_REQUEST(request, root_elem);
         }
         xml_elem_free(root_elem);
      }
      else {
         if(error.parser_error) {
                            XMLRPC_RequestSetError (request, map_expat_errors (&error));
         }
      }
   }

   return request;
}

Here is the call graph for this function:

Here is the caller graph for this function:

char* XMLRPC_REQUEST_ToXML ( XMLRPC_REQUEST  request,
int buf_len 
)

Definition at line 690 of file xmlrpc.c.

                                                                 {
      char* pRet = NULL;
       if (request) {
              xml_element *root_elem = NULL;
              if (request->output.version == xmlrpc_version_simple) {
                     root_elem = DANDARPC_REQUEST_to_xml_element (request);
              }
              else if (request->output.version == xmlrpc_version_1_0 ||
                                   request->output.version == xmlrpc_version_none) {
                     root_elem = XMLRPC_REQUEST_to_xml_element (request);
              }
              else if (request->output.version == xmlrpc_version_soap_1_1) {
                     root_elem = SOAP_REQUEST_to_xml_element (request);
              }

      if(root_elem) {
                     pRet =
                     xml_elem_serialize_to_string (root_elem,
                                                                                           &request->output.xml_elem_opts,
                                                                                           buf_len);
         xml_elem_free(root_elem);
      }
   }
       return pRet;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void XMLRPC_RequestFree ( XMLRPC_REQUEST  request,
int  bFreeIO 
)

Definition at line 328 of file xmlrpc.c.

                                                             {
   if(request) {
      simplestring_free(&request->methodName);

      if(request->io && bFreeIO) {
         XMLRPC_CleanupValue(request->io);
      }
      if(request->error) {
         XMLRPC_CleanupValue(request->error);
      }
      my_free(request);
   }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 505 of file xmlrpc.c.

                                                           {
   return request ? request->io : NULL;
}

Here is the caller graph for this function:

Definition at line 561 of file xmlrpc.c.

                                                             {
       return request ? request->error : NULL;
}

Here is the caller graph for this function:

const char* XMLRPC_RequestGetMethodName ( XMLRPC_REQUEST  request)

Definition at line 387 of file xmlrpc.c.

                                                                {
   return request ? request->methodName.str : NULL;
}

Here is the caller graph for this function:

Definition at line 620 of file xmlrpc.c.

                                                                                     {
   return request ? &request->output : NULL;
}

Here is the caller graph for this function:

Definition at line 443 of file xmlrpc.c.

                                                                         {
   return request ? request->request_type : xmlrpc_request_none;
}

Here is the caller graph for this function:

Definition at line 303 of file xmlrpc.c.

                                   {
   XMLRPC_REQUEST xRequest = calloc(1, sizeof(STRUCT_XMLRPC_REQUEST));
   if(xRequest) {
      simplestring_init(&xRequest->methodName);
   }
   return xRequest;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 473 of file xmlrpc.c.

                                                                              {
   if(request && data) {
              if (request->io) {
                     XMLRPC_CleanupValue (request->io);
              }
      request->io = XMLRPC_CopyValue(data);
      return request->io;
   }
   return NULL;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 530 of file xmlrpc.c.

                                                                                 {
       if (request && error) {
              if (request->error) {
                     XMLRPC_CleanupValue (request->error);
              }
              request->error = XMLRPC_CopyValue (error);
              return request->error;
       }
       return NULL;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const char* XMLRPC_RequestSetMethodName ( XMLRPC_REQUEST  request,
const char *  methodName 
)

Definition at line 361 of file xmlrpc.c.

                                                                                        {
   if(request) {
      simplestring_clear(&request->methodName);
      simplestring_add(&request->methodName, methodName);
      return request->methodName.str;
   }
   return NULL;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 589 of file xmlrpc.c.

                                                                                                                           {
   if(request && output) {
              memcpy (&request->output, output,
                              sizeof (STRUCT_XMLRPC_REQUEST_OUTPUT_OPTIONS));
      return &request->output;
   }
   return NULL;
}

Here is the caller graph for this function:

Definition at line 412 of file xmlrpc.c.

                                                                                                                                            {
   if(request) {
      request->request_type = type;
      return request->request_type;
   }
   return xmlrpc_request_none;
}

Here is the caller graph for this function:

Definition at line 2859 of file xmlrpc.c.

                                                    {
   return XMLRPC_ValueIsFault( XMLRPC_RequestGetData(response) );
}

Here is the call graph for this function:

XMLRPC_VALUE XMLRPC_ServerCallMethod ( XMLRPC_SERVER  server,
XMLRPC_REQUEST  request,
void *  userData 
)

Definition at line 2560 of file xmlrpc.c.

                                                                                                   {
   XMLRPC_VALUE xReturn = NULL;

   /* check for error set during request parsing / generation */
   if(request && request->error) {
      xReturn = XMLRPC_CopyValue(request->error);
   }
       else if (server && request) {
              XMLRPC_Callback cb =
              XMLRPC_ServerFindMethod (server, request->methodName.str);
      if(cb) {
         xReturn = cb(server, request, userData);
      }
      else {
                     xReturn =
                     XMLRPC_UtilityCreateFault (xmlrpc_error_unknown_method,
                                                                                    request->methodName.str);
      }
   }
   return xReturn;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 2317 of file xmlrpc.c.

                                    {
   XMLRPC_SERVER server = calloc(1, sizeof(STRUCT_XMLRPC_SERVER));
   if(server) {
      Q_Init(&server->methodlist);
      Q_Init(&server->docslist);

      /* register system methods */
      xsm_register(server);
   }
   return server;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 2379 of file xmlrpc.c.

                                                {
   if(server) {
      doc_method* dm = Q_Head(&server->docslist);
      server_method* sm = Q_Head(&server->methodlist);
      while( dm ) {
         my_free(dm);
         dm = Q_Next(&server->docslist);
      }
      while( sm ) {
         if(sm->name) {
            my_free(sm->name);
         }
         if(sm->desc) {
            XMLRPC_CleanupValue(sm->desc);
         }
         my_free(sm);
         sm = Q_Next(&server->methodlist);
      }
      if(server->xIntrospection) {
         XMLRPC_CleanupValue(server->xIntrospection);
      }

      Q_Destroy(&server->methodlist);
      Q_Destroy(&server->docslist);
      my_free(server);
   }
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_Callback XMLRPC_ServerFindMethod ( XMLRPC_SERVER  server,
const char *  callName 
)

Definition at line 2518 of file xmlrpc.c.

                                                                                    {
   if(server && callName) {
      q_iter qi = Q_Iter_Head_F(&server->methodlist);
      while( qi ) {
         server_method* sm = Q_Iter_Get_F(qi);
         if(sm && !strcmp(sm->name, callName)) {
            return sm->method;
         }
         qi = Q_Iter_Next_F(qi);
      }
   }
   return NULL;
}

Here is the caller graph for this function:

int XMLRPC_ServerRegisterMethod ( XMLRPC_SERVER  server,
const char *  name,
XMLRPC_Callback  cb 
)

Definition at line 2432 of file xmlrpc.c.

                                                                                            {
   if(server && name && cb) {

      server_method* sm = malloc(sizeof(server_method));
      
      if(sm) {
         sm->name = strdup(name);
         sm->method = cb;
         sm->desc = NULL;

         return Q_PushTail(&server->methodlist, sm);
      }
   }
   return 0;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 2653 of file xmlrpc.c.

                                                         {
   XMLRPC_OPTIONS options = XMLRPC_GetDefaultOptions();
   options->id_case = id_case;
   return options->id_case;
}

Here is the call graph for this function:

Definition at line 2704 of file xmlrpc.c.

                                                                                                 {
   XMLRPC_OPTIONS options = XMLRPC_GetDefaultOptions();
   options->id_case_compare = id_case_compare;
   return options->id_case_compare;
}

Here is the call graph for this function:

Definition at line 1036 of file xmlrpc.c.

                                                                    {
   int bSuccess = 0;

       if (value) {
              /* we can change the type so long as nothing is currently stored. */
              if(value->type == xmlrpc_vector) {
                     if(value->v) {
                            if(!Q_Size(value->v->q)) {
                                   value->v->type = type;
                            }
                     }
              }
              else {
      value->v = calloc(1, sizeof(STRUCT_XMLRPC_VECTOR));
      if(value->v) {
         value->v->q = (queue*)malloc(sizeof(queue));
         if(value->v->q) {
            Q_Init(value->v->q);
            value->v->type = type;
            value->type = xmlrpc_vector;
            bSuccess = 1;
         }
      }
   }
       }

   return bSuccess;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void XMLRPC_SetValueBase64 ( XMLRPC_VALUE  value,
const char *  s,
int  len 
)

Definition at line 1792 of file xmlrpc.c.

                                                                       {
   if(value && s) {
      simplestring_clear(&value->str);
      (len > 0) ? simplestring_addn(&value->str, s, len) :
                  simplestring_add(&value->str, s);
      value->type = xmlrpc_base64;
   }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void XMLRPC_SetValueBoolean ( XMLRPC_VALUE  value,
int  val 
)

Definition at line 1004 of file xmlrpc.c.

                                                         {
   if(value) {
      value->type = xmlrpc_boolean;
      value->i = val ? 1 : 0;
   }
}

Here is the caller graph for this function:

void XMLRPC_SetValueDateTime ( XMLRPC_VALUE  value,
time_t  time 
)

Definition at line 1537 of file xmlrpc.c.

                                                              {
   if(value) {
      char timeBuf[30];
      value->type = xmlrpc_datetime;
      value->i = time;

      timeBuf[0] = 0;

      date_to_ISO8601(time, timeBuf, sizeof(timeBuf));

      if(timeBuf[0]) {
         XMLRPC_SetValueDateTime_ISO8601 (value, timeBuf);
      }
   }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void XMLRPC_SetValueDateTime_ISO8601 ( XMLRPC_VALUE  value,
const char *  s 
)

Definition at line 1720 of file xmlrpc.c.

                                                                        {
   if(value) {
      time_t time_val = 0;
      if(s) {
         value->type = xmlrpc_datetime;
         date_from_ISO8601(s, &time_val);
         value->i = time_val;
         simplestring_clear(&value->str);
         simplestring_add(&value->str, s);
      }
   }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void XMLRPC_SetValueDouble ( XMLRPC_VALUE  value,
double  val 
)

Definition at line 1856 of file xmlrpc.c.

                                                           {
   if(value) {
      value->type = xmlrpc_double;
      value->d = val;
   }
}

Here is the caller graph for this function:

const char* XMLRPC_SetValueID_Case ( XMLRPC_VALUE  value,
const char *  id,
int  len,
XMLRPC_CASE  id_case 
)

Definition at line 892 of file xmlrpc.c.

                                                                                                     {
   const char* pRetval = NULL;
   if(value) {
      if(id) {
         simplestring_clear(&value->id);
         (len > 0) ? simplestring_addn(&value->id, id, len) :
                     simplestring_add(&value->id, id);

         /* upper or lower case string in place if required. could be a seperate func. */
         if(id_case == xmlrpc_case_lower || id_case == xmlrpc_case_upper) {
            int i;
            for(i = 0; i < value->id.len; i++) {
                                   value->id.str[i] =
                                   (id_case ==
                                    xmlrpc_case_lower) ? tolower (value->id.
                                                                                                          str[i]) : toupper (value->
                                                                                                                                                     id.
                                                                                                                                                     str[i]);
            }
         }

         pRetval = value->id.str;

#ifdef XMLRPC_DEBUG_REFCOUNT
         printf("set value id: %s\n", pRetval);
#endif 
      }
   }

   return pRetval;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void XMLRPC_SetValueInt ( XMLRPC_VALUE  value,
int  val 
)

Definition at line 978 of file xmlrpc.c.

                                                     {
   if(value) {
      value->type = xmlrpc_int;
      value->i = val;
   }
}

Here is the caller graph for this function:

const char* XMLRPC_SetValueString ( XMLRPC_VALUE  value,
const char *  s,
int  len 
)

Definition at line 946 of file xmlrpc.c.

                                                                                {
   char *pRetval = NULL;
   if(value && val) {
      simplestring_clear(&value->str);
      (len > 0) ? simplestring_addn(&value->str, val, len) :
                  simplestring_add(&value->str, val);
      value->type = xmlrpc_string;
      pRetval = (char *)value->str.str;
   }

   return pRetval;
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_UtilityCreateFault ( int  fault_code,
const char *  fault_string 
)

Definition at line 2755 of file xmlrpc.c.

                                                                                 {
   XMLRPC_VALUE xOutput = NULL;

   char* string = NULL;
   simplestring description;
   simplestring_init(&description);

   switch (fault_code) {
       case xmlrpc_error_parse_xml_syntax:
              string = xmlrpc_error_parse_xml_syntax_str;
              break;
       case xmlrpc_error_parse_unknown_encoding:
              string = xmlrpc_error_parse_unknown_encoding_str;
              break;
       case xmlrpc_error_parse_bad_encoding:
              string = xmlrpc_error_parse_bad_encoding_str;
              break;
       case xmlrpc_error_invalid_xmlrpc:
              string = xmlrpc_error_invalid_xmlrpc_str;
              break;
       case xmlrpc_error_unknown_method:
              string = xmlrpc_error_unknown_method_str;
              break;
       case xmlrpc_error_invalid_params:
              string = xmlrpc_error_invalid_params_str;
              break;
       case xmlrpc_error_internal_server:
              string = xmlrpc_error_internal_server_str;
              break;
       case xmlrpc_error_application:
              string = xmlrpc_error_application_str;
              break;
       case xmlrpc_error_system:
              string = xmlrpc_error_system_str;
              break;
       case xmlrpc_error_transport:
              string = xmlrpc_error_transport_str;
              break;
   }

   simplestring_add(&description, string);

   if(string && fault_string) {
      simplestring_add(&description, "\n\n");
   }
   simplestring_add(&description, fault_string);


   if(description.len) {
      xOutput = XMLRPC_CreateVector(NULL, xmlrpc_vector_struct);

              XMLRPC_VectorAppendString (xOutput, "faultString", description.str,
                                                                             description.len);
      XMLRPC_VectorAppendInt(xOutput, "faultCode", fault_code);
   }

   simplestring_free(&description);

   return xOutput;
}

Here is the call graph for this function:

Here is the caller graph for this function:

XMLRPC_VALUE XMLRPC_VALUE_FromXML ( const char *  in_buf,
int  len,
XMLRPC_REQUEST_INPUT_OPTIONS  in_options 
)

Definition at line 738 of file xmlrpc.c.

                                                                                                         {
   XMLRPC_VALUE xResponse = NULL;
   XMLRPC_REQUEST req = XMLRPC_REQUEST_FromXML(in_buf, len, in_options);

   if(req) {
      xResponse = req->io;
      XMLRPC_RequestFree(req, 0);
   }
   return xResponse;
}

Here is the call graph for this function:

char* XMLRPC_VALUE_ToXML ( XMLRPC_VALUE  val,
int buf_len 
)

Definition at line 656 of file xmlrpc.c.

                                                         {
   xml_element *root_elem = XMLRPC_VALUE_to_xml_element(val);
   char* pRet = NULL;

   if(root_elem) {
      pRet = xml_elem_serialize_to_string(root_elem, NULL, buf_len);
      xml_elem_free(root_elem);
   }
   return pRet;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 2834 of file xmlrpc.c.

                                             {
   if( XMLRPC_VectorGetValueWithID(value, "faultCode") &&
       XMLRPC_VectorGetValueWithID(value, "faultString") ) {
      return 1;
   }
   return 0;
}

Here is the caller graph for this function:

Definition at line 1264 of file xmlrpc.c.

                                                                                                                                           {
   if(vector && vector->v && vector->v->q) {
       q_iter qi = Q_Iter_Head_F(vector->v->q);

       while(qi) {
          XMLRPC_VALUE xIter = Q_Iter_Get_F(qi);
          if(xIter && xIter->id.str) {
             if(id_case == xmlrpc_case_sensitive) {
                if(!strcmp(xIter->id.str, id)) {
                   return xIter;
                }
             }
             else if(id_case == xmlrpc_case_insensitive) {
                if(!strcasecmp(xIter->id.str, id)) {
                   return xIter;
                }
             }
          }
          qi = Q_Iter_Next_F(qi);
       }
   }
   return NULL;
}

Definition at line 2184 of file xmlrpc.c.

                                                   {
   XMLRPC_VALUE xReturn = NULL;
   if(value && value->type == xmlrpc_vector && value->v) {
      xReturn = (XMLRPC_VALUE)Q_Next(value->v->q);
   }
   return xReturn;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1292 of file xmlrpc.c.

                                                                      {
   if(vector && vector->v && vector->v->q && value) {
       q_iter qi = Q_Iter_Head_F(vector->v->q);

       while(qi) {
          XMLRPC_VALUE xIter = Q_Iter_Get_F(qi);
          if(xIter == value) {
             XMLRPC_CleanupValue(xIter);
             Q_Iter_Del(vector->v->q, qi);
             return 1;
          }
          qi = Q_Iter_Next_F(qi);
       }
   }
   return 0;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 2158 of file xmlrpc.c.

                                                     {
   XMLRPC_VALUE xReturn = NULL;
   if(value && value->type == xmlrpc_vector && value->v) {
      xReturn = (XMLRPC_VALUE)Q_Head(value->v->q);
   }
   return xReturn;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 2130 of file xmlrpc.c.

                                          {
   int size = 0;
   if(value && value->type == xmlrpc_vector && value->v) {
      size = Q_Size(value->v->q);
   }
   return size;
}

Here is the call graph for this function:

Here is the caller graph for this function: