diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2010-06-13 21:08:34 +0300 |
---|---|---|
committer | Felipe Contreras <felipe.contreras@gmail.com> | 2010-06-14 03:33:25 +0300 |
commit | c030eccc7f613e736852ac2d8c9d1120fca67862 (patch) | |
tree | e5835018e8f1bb3991e5f60b24601007ea399e99 | |
parent | e0f2ff68e46fe2b3360908f3fa5f69d6f65f86bb (diff) |
test: add error handling
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
-rw-r--r-- | test.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -6,6 +6,15 @@ static GMainLoop *loop; static void +error_cb(struct pn_session *session, + GError **error) +{ + g_message("error: %s", (*error)->message); + g_clear_error(error); + g_main_loop_quit(loop); +} + +static void signal_handler(int signal) { g_main_loop_quit(loop); @@ -14,6 +23,7 @@ signal_handler(int signal) int main(int argc, char *argv[]) { struct pn_session *session; + gulong error_handler; g_type_init(); pn_core_init(); @@ -22,12 +32,14 @@ int main(int argc, char *argv[]) loop = g_main_loop_new(NULL, FALSE); session = pn_session_new(argv[1], argv[2]); + error_handler = g_signal_connect(session, "error", G_CALLBACK(error_cb), NULL); pn_session_connect(session, "messenger.hotmail.com", 1863); g_message("connecting"); g_main_loop_run(loop); + g_signal_handler_disconnect(session, error_handler); pn_session_free(session); g_main_loop_unref(loop); |