On Mi, Dez 30, 2020 at 19:14, Baptiste Jonglez <bapti...@bitsofnetworks.org> wrote:
Following the discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2020-November/032297.html

There are basically two options to implement persistent connections in opkg:

1) keep calling "wget", but pass the list of all packages to download at
   once.  On the host, wget already implements persistent connections.
   For devices, we would need to implement persistent connections in
   uclient-fetch (which is what "wget" actually points to).

2) switch to using a HTTP library (libuclient or libcurl), so that we can
   keep some TCP/TLS/HTTP context between downloads.

The first solution has a major drawback on devices: all packages would
need to be downloaded to /tmp, which will consume memory. Currently, opkg processes packages individually, so only one package at a time is stored
in /tmp.

The second solution adds a new library dependency, and we need to make
sure that it works both on the host and on targets. Currently, we don't
make libuclient available to the host build system.  We would need to
build it for the host and link opkg statically against it (like it's done
for libubox).

Overall, I think the second solution makes more sense and is easier to integrate.
I would go with libuclient because we already have it available on
devices.

Any thoughts?

I agree that the second solution sounds better! Thanks for tackling that. Based on your recent uclient-fetch patch I'm assuming you're already looking for a possible implementation?


Thanks,
Baptiste
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to