poser
A C framework for POsix SERvices
|
A resolver to do a batch of reverse DNS lookups. More...
#include <poser/core/resolver.h>
Public Member Functions | |
PSC_Resolver * | PSC_Resolver_create (void) |
PSC_Resolver default constructor. | |
int | PSC_Resolver_addAddr (PSC_Resolver *self, const PSC_IpAddr *addr) |
Add an address. | |
int | PSC_Resolver_resolve (PSC_Resolver *self, int forceAsync) |
Start resolving. | |
PSC_Event * | PSC_Resolver_done (PSC_Resolver *self) |
Resolving finished. | |
const PSC_List * | PSC_Resolver_entries (const PSC_Resolver *self) |
List of addresses and resolved names. | |
void | PSC_Resolver_destroy (PSC_Resolver *self) |
PSC_Resolver destructor. | |
A resolver to do a batch of reverse DNS lookups.
The resolver allows adding PSC_IpAddr instances and offers a method to do reverse lookups for all of them in a batch, preferably using a thread job.
int PSC_Resolver_addAddr | ( | PSC_Resolver * | self, |
const PSC_IpAddr * | addr | ||
) |
Add an address.
Add an address to the list of addresses to be resolved. Fails if a resolver job is already running.
self | the PSC_Resolver |
addr | the address to add |
PSC_Resolver * PSC_Resolver_create | ( | void | ) |
void PSC_Resolver_destroy | ( | PSC_Resolver * | self | ) |
PSC_Resolver destructor.
Destroys the PSC_Resolver instance. If a resolve job is currently running, this job is canceled and destructions only completes after the canceled job actually stopped. Avoid doing this, it can't be 100% reliable.
self | the PSC_Resolver |
PSC_Event * PSC_Resolver_done | ( | PSC_Resolver * | self | ) |
Resolving finished.
This event fires when resolving is completed. Register at least one handler for this event before calling PSC_Resolver_resolve().
self | the PSC_Resolver |
const PSC_List * PSC_Resolver_entries | ( | const PSC_Resolver * | self | ) |
List of addresses and resolved names.
This list contains PSC_ResolverEntry instances for every PSC_IpAddr added, with the corresponding names if successfully resolved.
self | the PSC_Resolver |
int PSC_Resolver_resolve | ( | PSC_Resolver * | self, |
int | forceAsync | ||
) |
Start resolving.
Starts batch resolving, prefers to do this on a thread job, but does it synchronously if the thread pool is not available or the job can't be enqueued. Fails if a resolver job is already running or there are no addresses added to the resolver.
self | the PSC_Resolver |
forceAsync | if set to 1, fails when resolving can't be done on a thread job |