Portable asr. Work in progress.
Clone or download
ericfaurot Properly check for res_hnok(), res_randomid() and clock_gettime() ava…
…ilability.

Provide a simple implementation for res_randomid() if missing.
Latest commit 1a3e18a Oct 20, 2018

README.md

Description

libasr is a free, simple and portable asynchronous resolver library.

It allows to run dns queries and perform hostname resolutions in a fully asynchronous fashion. The implementation is thread-less, fork-less, and does not make use of signals or other "tricks" that might get in the developer's way. The API was initially developed for the OpenBSD operating system, where it is natively supported.

This library is intended to bring this interface to other systems. It is originally provided as a support library for the portable version of the OpenSMTPD daemon, but it can be used in any other contexts. It is known to work on the following systems:

  • Linux
  • FreeBSD
  • NetBSD
  • DragonFly
  • MacOSX

The primary source of information about libasr is the github repository.

Installation

Get the source

You can get the latest sources from github:

git clone git://github.com/OpenSMTPD/libasr.git

Tarballs for development snapshots and official releases are available on the OpenSMTPD website.

Build

All you should need is working C compiler, a C library and the autotools (autoconf,automake,libtool). Build and install using the following commands:

./bootstrap # only if building from git sources
./configure
make
sudo make install

Documentation

For documentation on using the API, please refer to the OpenBSD manpages. Note that unlike the native OpenBSD implementation, this version is not currently thread-safe.

Contact

For now, please use the OpenSMTPD mailing list for questions related to libasr. You can also get in touch with libasr developers on the "Official" IRC channel for the OpenSMTPD project at:

#OpenSMTPD @ irc.freenode.net

Bug reports must be filed on the project's issue tracker.