1 /*============================================================================
2 Act like a CGI script -- read POST data from Standard Input, interpret
3 it as an XML-RPC call, and write an XML-RPC response to Standard Output.
5 This is for use by a test program.
6 ============================================================================*/
13 #include "xmlrpc_config.h"
15 #include "xmlrpc-c/base.h"
16 #include "xmlrpc-c/server.h"
17 #include "xmlrpc-c/server_cgi.h"
28 sample_add(xmlrpc_env * const env,
29 xmlrpc_value * const param_array,
30 void * const user_data ATTR_UNUSED) {
34 /* Parse our argument array. */
35 xmlrpc_decompose_value(env, param_array, "(ii)", &x, &y);
36 if (env->fault_occurred)
39 /* Add our two numbers. */
42 /* Return our result. */
43 return xmlrpc_build_value(env, "i", z);
49 main(int argc ATTR_UNUSED,
50 char ** argv ATTR_UNUSED) {
53 xmlrpc_registry * registryP;
54 xmlrpc_value * argArrayP;
56 xmlrpc_env_init(&env);
58 registryP = xmlrpc_registry_new(&env);
59 TEST(registryP != NULL);
62 xmlrpc_registry_add_method(&env, registryP, NULL, "sample.add",
66 argArrayP = xmlrpc_build_value(&env, "(ii)",
67 (xmlrpc_int32) 25, (xmlrpc_int32) 17);
70 /* The following reads from Standard Input and writes to Standard
73 xmlrpc_server_cgi_process_call(registryP);
75 xmlrpc_DECREF(argArrayP);
76 xmlrpc_registry_free(registryP);