Re: [PATCH 09/15] service: Leverage 'service_set_proxy_method'.
Denis Kenzior <[email protected]>
| Newsgroups | dev.linux.lists.connman |
|---|---|
| Message-ID | <[email protected]> |
Hi Grant,
On 2/21/25 9:56 AM, Grant Erickson wrote:
> Leverage 'service_set_proxy_method' for
> '__connman_service_set_proxy_autoconfig', the second of two call
> sites.
> ---
> src/service.c | 49 ++++++++++++++++++++++++++++++++-----------------
> 1 file changed, 32 insertions(+), 17 deletions(-)
>
> diff --git a/src/service.c b/src/service.c
> index 5c94c2962de8..d2d8e7cea065 100644
> --- a/src/service.c
> +++ b/src/service.c
> @@ -5662,32 +5662,47 @@ const char *connman_service_get_proxy_url(const struct connman_service *service)
> return service->pac;
> }
>
> -void __connman_service_set_proxy_autoconfig(struct connman_service *service,
> - const char *url)
> +static bool service_set_proxy_method_auto_handler(
> + struct connman_service *service,
> + enum connman_service_proxy_method method,
> + const void *context)
> {
> - const bool dochanged = true;
> -
> - if (!service || service->hidden)
> - return;
> -
> - service_set_pac(service, url, !dochanged);
> -
> - service->proxy = CONNMAN_SERVICE_PROXY_METHOD_AUTO;
> + const char * const url = context;
>
> if (service->ipconfig_ipv4) {
> if (__connman_ipconfig_set_proxy_autoconfig(
> - service->ipconfig_ipv4, url) < 0)
> - return;
> + service->ipconfig_ipv4, url) < 0)
> + return false;
> } else if (service->ipconfig_ipv6) {
> if (__connman_ipconfig_set_proxy_autoconfig(
> - service->ipconfig_ipv6, url) < 0)
> - return;
> + service->ipconfig_ipv6, url) < 0)
> + return false;
> } else
> - return;
> + return false;
>
> - proxy_changed(service);
> + return true;
> +}
> +
> +void __connman_service_set_proxy_autoconfig(struct connman_service *service,
> + const char *url)
> +{
> + const bool dochanged = true;
> + const bool donotifier = true;
> + const void *context = url;
Why are these needed?
>
> - __connman_notifier_proxy_changed(service);
> + DBG("service %p (%s) url %p (%s)",
> + service,
> + connman_service_get_identifier(service),
> + url,
> + url ? url : "<null>");
> +
> + service_set_pac(service, url, !dochanged);
> +
> + service_set_proxy_method(service,
> + CONNMAN_SERVICE_PROXY_METHOD_AUTO,
> + donotifier,
> + service_set_proxy_method_auto_handler,
> + context);
Conversion from any pointer type to void * is automatic in C; using 'url' would
be just fine here?
> }
>
> const char *connman_service_get_proxy_autoconfig(struct connman_service *service)
Regards,
-Denis