I've for now pushed a fix where the detection that ARM is running isn't done in PROGRAM_run() or SERVICE_run() but specifically by the programs where we know that they need it, so in
$ gnunet-arm -e and $ gnunet-gns The test (was/is) written to be synchronous, so if it is needed/desired elsewhere, it can easily be done by calling GNUNET_CLIENT_test (cfg, "arm"); (code works for other services, but I don't quite see how this can be used usefully for anything but "arm"). It was a bit more complicated than expected, as I had to add signaling from gnunet-service-arm to "gnunet-arm -s" to signal when gnunet-service-arm is finished opening the listen socket. This is now done by passing over a pipe *hacking/abusing* the mechanism we previously used for listen socket passing from ARM to *its* child services. Basically, when the ARM service inherits listen socket(s), it just closes them _after_ opening its listen sockets, while all other services would use these _as_ their listen socket(s). On 9/27/19 2:25 PM, Schanzenbach, Martin wrote: > Right now, my best idea is to modify GNUNET_PROGRAM_run() to detect "is > ARM running" by asking it which services are running, and if we fail to > detect the ARM listen socket, we give up hard. Furthermore, we could > pass information to GNUNET_PROGRAM_run() which subset of services ARM > must support (via autostart or have launched), and again give up if the > required service(s) are not in the set.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ GNUnet-developers mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnunet-developers
