5 # xmlrpc-epi-php translates this into a real <fault>
6 $fault["faultCode"] = -32602;
7 $fault["faultString"] = "bad parameter";
11 # We only check the params in sum(), because that's the one that
12 # xmlrpc-test tests will fail if given bad args
14 function sum ($method_name, $params, $app_data)
16 if (xmlrpc_get_type ($params[0]) != "array")
20 foreach ($params[0] as $val) {
21 if (xmlrpc_get_type ($val) != "int")
29 function countBools ($method_name, $params, $app_data)
31 $counts["true"] = $counts["false"] = 0;
32 foreach ($params[0] as $val) {
34 $counts["true"] = $counts["true"] + 1;
36 $counts["false"] = $counts["false"] + 1;
41 function md5sum ($method_name, $params, $app_data)
43 $val = md5 ($params[0]->scalar, true);
44 xmlrpc_set_type ($val, "base64");
48 function dateChange ($method_name, $params, $app_data)
50 $date_str = $params[0]->scalar;
51 $date = strptime ($date_str, "%Y%m%dT%H:%M:%S");
53 foreach ($params[1] as $name => $val) {
59 $ret = sprintf ("%04d%02d%02dT%02d:%02d:%02d",
60 $date["tm_year"] + 1900, $date["tm_mon"] + 1,
61 $date["tm_mday"], $date["tm_hour"],
62 $date["tm_min"], $date["tm_sec"]);
63 xmlrpc_set_type ($ret, "datetime");
67 function echo_ ($method_name, $params, $app_data)
72 # Work around xmlrpc-epi-php lossage; otherwise the datetime values
73 # we return will sometimes get a DST adjustment we don't want.
76 $xmlrpc_server = xmlrpc_server_create ();
77 xmlrpc_server_register_method($xmlrpc_server, "sum", "sum");
78 xmlrpc_server_register_method($xmlrpc_server, "countBools", "countBools");
79 xmlrpc_server_register_method($xmlrpc_server, "md5sum", "md5sum");
80 xmlrpc_server_register_method($xmlrpc_server, "dateChange", "dateChange");
81 xmlrpc_server_register_method($xmlrpc_server, "echo", "echo_");
83 $response = xmlrpc_server_call_method ($xmlrpc_server,
84 implode("\r\n", file('php://input')),
85 0, array ("output_type" => "xml"));
88 xmlrpc_server_destroy ($xmlrpc_server);