summaryrefslogtreecommitdiff
path: root/lib/igt_chamelium.c
diff options
context:
space:
mode:
authorPetri Latvala <petri.latvala@intel.com>2020-09-30 14:53:07 +0300
committerPetri Latvala <petri.latvala@intel.com>2020-10-06 14:38:12 +0300
commit0e4fbc60ca5ad6585e642d2ddf8313f3c738426e (patch)
tree4a65d44727628b2c3c9a18f8d8e71a537e482969 /lib/igt_chamelium.c
parent1fbd127bd4e1652f142b68f98d953a91a9daaa68 (diff)
lib/igt_chamelium: Use curl timeout for xmlrpc calls
Use of timeouts everywhere is meaningless if xmlrpc calls are allowed to be blocking forever. v2: Use milliseconds correctly (Juha-Pekka) Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Kunal Joshi <kunal1.joshi@intel.com> Cc: Arkadiusz Hiler <arek@hiler.eu> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Diffstat (limited to 'lib/igt_chamelium.c')
-rw-r--r--lib/igt_chamelium.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index d9fab902..585fdfa8 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -2427,11 +2427,22 @@ void chamelium_deinit_rpc_only(struct chamelium *chamelium)
struct chamelium *chamelium_init_rpc_only(void)
{
struct chamelium *chamelium = malloc(sizeof(struct chamelium));
+ struct xmlrpc_clientparms clientparms;
+ struct xmlrpc_curl_xportparms curlparms;
if (!chamelium)
return NULL;
memset(chamelium, 0, sizeof(*chamelium));
+ memset(&clientparms, 0, sizeof(clientparms));
+ memset(&curlparms, 0, sizeof(curlparms));
+
+ /* curl's timeout is in milliseconds */
+ curlparms.timeout = _RECEIVER_RESPONSIVE_AFTER_RESET_SECONDS * 1000;
+
+ clientparms.transport = "curl";
+ clientparms.transportparmsP = &curlparms;
+ clientparms.transportparm_size = XMLRPC_CXPSIZE(timeout);
chamelium->drm_fd = -1;
@@ -2439,7 +2450,7 @@ struct chamelium *chamelium_init_rpc_only(void)
xmlrpc_env_init(&chamelium->env);
xmlrpc_client_setup_global_const(&chamelium->env);
xmlrpc_client_create(&chamelium->env, XMLRPC_CLIENT_NO_FLAGS, PACKAGE,
- PACKAGE_VERSION, NULL, 0, &chamelium->client);
+ PACKAGE_VERSION, &clientparms, 0, &chamelium->client);
if (chamelium->env.fault_occurred) {
igt_debug("Failed to init xmlrpc: %s\n",
chamelium->env.fault_string);