|
36 | 36 | #include "esosip.h"
|
37 | 37 |
|
38 | 38 | typedef struct app_s {
|
39 |
| - struct event_config *cfg; |
40 |
| - struct event_base *base; |
41 |
| - struct event *evsig; |
| 39 | + struct event_config * cfg; |
| 40 | + struct event_base * base; |
| 41 | + struct event * evsig; |
42 | 42 |
|
43 |
| - /* osip stack */ |
44 |
| - es_osip_t *osipCtx; |
| 43 | + /* osip stack */ |
| 44 | + es_osip_t * osipCtx; |
45 | 45 | } app_t;
|
46 | 46 |
|
47 |
| -static void log_cb( |
48 |
| - int severity, |
49 |
| - const char *msg) |
| 47 | +static void libevent_log_cb(int severity, const char * msg) |
50 | 48 | {
|
51 |
| - ESIP_TRACE(ESIP_LOG_DEBUG, "%s", msg); |
| 49 | + ESIP_TRACE(ESIP_LOG_INFO, "[libevent]- %s", msg); |
52 | 50 | }
|
53 | 51 |
|
54 |
| -static void signal_cb( |
55 |
| - evutil_socket_t fd, |
56 |
| - short event, |
57 |
| - void *arg) |
| 52 | +static void signal_cb(evutil_socket_t fd, short event, void * arg) |
58 | 53 | {
|
59 |
| - app_t *ctx = (app_t *)arg; |
60 |
| - ESIP_TRACE(ESIP_LOG_INFO, "Terminate %s", PACKAGE); |
61 |
| - (void)event_base_loopexit(ctx->base, NULL); |
| 54 | + app_t * ctx = (app_t *)arg; |
| 55 | + ESIP_TRACE(ESIP_LOG_INFO, "Terminate %s", PACKAGE); |
| 56 | + (void)event_base_loopexit(ctx->base, NULL); |
| 57 | + |
| 58 | + /* TODO: free all allocated mem */ |
| 59 | + //free(ctx); |
62 | 60 | }
|
63 | 61 |
|
64 |
| -int main(const int argc, const char *argv[]) |
| 62 | +int main(const int argc, const char * argv[]) |
65 | 63 | {
|
66 |
| - app_t ctx; |
67 |
| - int ret = EXIT_SUCCESS; |
| 64 | + app_t ctx; |
| 65 | + int ret = EXIT_SUCCESS; |
68 | 66 |
|
69 |
| - ESIP_TRACE(ESIP_LOG_INFO, "Starting %s v%s", PACKAGE, VERSION); |
| 67 | + ESIP_TRACE(ESIP_LOG_INFO, "Starting %s v%s", PACKAGE, VERSION); |
70 | 68 |
|
71 |
| - event_set_log_callback(log_cb); |
| 69 | + event_set_log_callback(libevent_log_cb); |
72 | 70 |
|
73 |
| - //event_enable_debug_logging(0xffffffffu); |
| 71 | + //event_enable_debug_logging(0xffffffffu); |
74 | 72 |
|
75 |
| - ctx.cfg = event_config_new(); |
76 |
| - if (event_config_avoid_method(ctx.cfg, "select") != 0) { |
77 |
| - ESIP_TRACE(ESIP_LOG_ERROR, "Can not avoid select methode"); |
78 |
| - } |
| 73 | + ctx.cfg = event_config_new(); |
| 74 | + if (event_config_avoid_method(ctx.cfg, "select") != 0) { |
| 75 | + ESIP_TRACE(ESIP_LOG_ERROR, "Can not avoid select methode"); |
| 76 | + } |
79 | 77 |
|
80 |
| - ctx.base = event_base_new_with_config(ctx.cfg); |
81 |
| - if (ctx.base == NULL) { |
82 |
| - ESIP_TRACE(ESIP_LOG_ERROR, "Can not create event Config"); |
83 |
| - goto ERROR_EXIT; |
84 |
| - } |
| 78 | + ctx.base = event_base_new_with_config(ctx.cfg); |
| 79 | + if (ctx.base == NULL) { |
| 80 | + ESIP_TRACE(ESIP_LOG_ERROR, "Can not create event Config"); |
| 81 | + goto ERROR_EXIT; |
| 82 | + } |
85 | 83 |
|
86 |
| - /* free cfg */ |
87 |
| - event_config_free(ctx.cfg); |
88 |
| - ctx.cfg = NULL; |
| 84 | + /* free cfg */ |
| 85 | + event_config_free(ctx.cfg); |
| 86 | + ctx.cfg = NULL; |
89 | 87 |
|
90 |
| - /* Set MAX priority */ |
91 |
| - if (event_base_priority_init(ctx.base, 2) != 0) { |
92 |
| - ESIP_TRACE(ESIP_LOG_ERROR, "Can not set MAX priority in event loop"); |
93 |
| - } |
| 88 | + /* Set MAX priority */ |
| 89 | + if (event_base_priority_init(ctx.base, 2) != 0) { |
| 90 | + ESIP_TRACE(ESIP_LOG_ERROR, "Can not set MAX priority in event loop"); |
| 91 | + } |
94 | 92 |
|
95 |
| - ctx.evsig = evsignal_new(ctx.base, SIGINT, &signal_cb, (void *)&ctx); |
96 |
| - if (ctx.evsig == NULL) { |
97 |
| - ESIP_TRACE(ESIP_LOG_ERROR, "Can not create event for signal"); |
98 |
| - goto ERROR_EXIT; |
99 |
| - } |
| 93 | + ctx.evsig = evsignal_new(ctx.base, SIGINT, &signal_cb, (void *)&ctx); |
| 94 | + if (ctx.evsig == NULL) { |
| 95 | + ESIP_TRACE(ESIP_LOG_ERROR, "Can not create event for signal"); |
| 96 | + goto ERROR_EXIT; |
| 97 | + } |
100 | 98 |
|
101 |
| - if (evsignal_add(ctx.evsig, NULL) != 0) { |
102 |
| - ESIP_TRACE(ESIP_LOG_ERROR, "Can not make Signal event pending"); |
103 |
| - goto ERROR_EXIT; |
104 |
| - } |
| 99 | + if (evsignal_add(ctx.evsig, NULL) != 0) { |
| 100 | + ESIP_TRACE(ESIP_LOG_ERROR, "Can not make Signal event pending"); |
| 101 | + goto ERROR_EXIT; |
| 102 | + } |
105 | 103 |
|
106 |
| - /* Init OSip Stack */ |
107 |
| - if (es_osip_init(&ctx.osipCtx, ctx.base) != ES_OK) { |
108 |
| - ESIP_TRACE(ESIP_LOG_ERROR, "Can not initialize OSip stack"); |
109 |
| - goto ERROR_EXIT; |
110 |
| - } |
| 104 | + /* Init OSip Stack */ |
| 105 | + if (es_osip_init(&ctx.osipCtx, ctx.base) != ES_OK) { |
| 106 | + ESIP_TRACE(ESIP_LOG_ERROR, "Can not initialize OSip stack"); |
| 107 | + goto ERROR_EXIT; |
| 108 | + } |
111 | 109 |
|
112 |
| - ESIP_TRACE(ESIP_LOG_DEBUG, "Starting %s v%s main loop", PACKAGE, VERSION); |
113 |
| - if (event_base_dispatch(ctx.base) != 0) { |
114 |
| - ESIP_TRACE(ESIP_LOG_EMERG, "Can not start main event lopp"); |
115 |
| - goto ERROR_EXIT; |
116 |
| - } |
| 110 | + ESIP_TRACE(ESIP_LOG_DEBUG, "Starting %s v%s main loop", PACKAGE, VERSION); |
| 111 | + if (event_base_dispatch(ctx.base) != 0) { |
| 112 | + ESIP_TRACE(ESIP_LOG_EMERG, "Can not start main event lopp"); |
| 113 | + goto ERROR_EXIT; |
| 114 | + } |
117 | 115 |
|
118 |
| - goto EXIT; |
| 116 | + goto EXIT; |
119 | 117 |
|
120 | 118 | ERROR_EXIT:
|
121 |
| - ESIP_TRACE(ESIP_LOG_EMERG, "%s fatal error: stoped.", PACKAGE); |
122 |
| - ret = EXIT_FAILURE; |
| 119 | + ESIP_TRACE(ESIP_LOG_EMERG, "%s fatal error: stoped.", PACKAGE); |
| 120 | + ret = EXIT_FAILURE; |
123 | 121 |
|
124 | 122 | EXIT:
|
125 |
| - event_free(ctx.evsig); |
126 |
| - event_base_free(ctx.base); |
| 123 | + event_free(ctx.evsig); |
| 124 | + event_base_free(ctx.base); |
127 | 125 |
|
128 |
| - //libevent_global_shutdown(); |
129 |
| - return ret; |
| 126 | + //libevent_global_shutdown(); |
| 127 | + return ret; |
130 | 128 | }
|
0 commit comments