diff options
author | Petri Latvala <petri.latvala@intel.com> | 2020-09-30 14:53:07 +0300 |
---|---|---|
committer | Petri Latvala <petri.latvala@intel.com> | 2020-10-06 14:38:12 +0300 |
commit | 0e4fbc60ca5ad6585e642d2ddf8313f3c738426e (patch) | |
tree | 4a65d44727628b2c3c9a18f8d8e71a537e482969 /lib/igt_chamelium.c | |
parent | 1fbd127bd4e1652f142b68f98d953a91a9daaa68 (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.c | 13 |
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); |