diff options
Diffstat (limited to 'eperd/evsslgetcert.c')
-rw-r--r-- | eperd/evsslgetcert.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/eperd/evsslgetcert.c b/eperd/evsslgetcert.c new file mode 100644 index 0000000..e23936a --- /dev/null +++ b/eperd/evsslgetcert.c @@ -0,0 +1,53 @@ +/* Standalone version of the event-based sslgetcert. */ + +#include "libbb.h" +#include <syslog.h> +#include <event2/event.h> +#include <event2/event_struct.h> +#include <event2/dns.h> + +#include "eperd.h" + +static void done(void *state UNUSED_PARAM) +{ + fprintf(stderr, "And we are done\n"); + exit(0); +} + +int evsslgetcert_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int evsslgetcert_main(int argc UNUSED_PARAM, char **argv) +{ + int r; + void *state; + + /* Create libevent event base */ + EventBase= event_base_new(); + if (!EventBase) + { + fprintf(stderr, "evsslgetcert_base_new failed\n"); + exit(1); + } + DnsBase= evdns_base_new(EventBase, 1 /*initialize*/); + if (!DnsBase) + { + fprintf(stderr, "evdns_base_new failed\n"); + exit(1); + } + + state= sslgetcert_ops.init(argc, argv, done); + if (!state) + { + fprintf(stderr, "evsslgetcert: sslgetcert_ops.init failed\n"); + exit(1); + } + sslgetcert_ops.start(state); + + r= event_base_loop(EventBase, 0); + if (r != 0) + { + fprintf(stderr, "evsslgetcert: event_base_loop failed\n"); + exit(1); + } + return 0; /* not reached */ +} + |