cd2cf6eb23ffbb1bb4943906365823aa090813d6
Default timeout was 1 millisecond and it consumed CPU by running the loop in xmpp_run(). The CPU usage was unacceptable and thus xmpp_run() was not used by users. Also user can set the timeout by xmpp_ctx_set_timeout() now. Event loop already handles the situation when there is a timed handler which needs to be run before the timeout is reached. Also system awakes event loop when data arrives to socket. The only drawback is when timed handler sends data it will be actually sent after select(2) returns. But this situation can be handled easily by adding socket to wfds when xmpp_conn_t contains data in sending queue.
libstrophe [](https://travis-ci.org/strophe/libstrophe)
==========
libstrophe is a lightweight XMPP client library written in C. It has
minimal dependencies and is configurable for various environments. It
runs well on Linux, Unix and Windows based platforms.
Its goals are:
- usable quickly
- well documented
- reliable
Build Instructions
------------------
If you are building from a source control checkout, run:
./bootstrap.sh
to generate the `configure` script.
From the top-level directory, run the following commands:
./configure
make
The public API is defined in `strophe.h` which is in the
top-level directory.
The `examples` directory contains some examples of how to
use the library; these may be helpful in addition to the
API documentation
To install on your system, as root (or using sudo):
make install
Note, the default install path is `/usr/local/`, to specify
another path use the `--prefix` option during configure, e.g.:
./configure --prefix=/usr
### Android
Run script `build-android.sh` and follow the instructions. You will
need expat sources and android-ndk.
Requirements
------------
libstrophe requires:
- expat or libxml2 - expat is the default; use --with-libxml2 to
switch
- openssl on UNIX systems
To build libstrophe using autotools you will need autoconf, automake,
libtool and pkg-config.
Installation
------------
libstrophe package has been added to popular Linux distributions,
BSD systems and OSX package managers.
Documentation
-------------
API documentation is inline with the code and conforms to Doxygen
standards. You can generate an HTML version of the API documentation
by running:
doxygen
Then open `docs/html/index.html`.
Description
Languages
C
95.1%
M4
2.9%
Makefile
1.7%
Shell
0.3%