Lines Matching refs:e

62 static void event_clean(struct wps_event_ *e)  in event_clean()  argument
64 if (e->s->current_event == e) in event_clean()
65 e->s->current_event = NULL; in event_clean()
66 http_client_free(e->http_event); in event_clean()
67 e->http_event = NULL; in event_clean()
74 static void event_delete(struct wps_event_ *e) in event_delete() argument
76 wpa_printf(MSG_DEBUG, "WPS UPnP: Delete event %p", e); in event_delete()
77 event_clean(e); in event_delete()
78 wpabuf_free(e->data); in event_delete()
79 os_free(e); in event_delete()
88 struct wps_event_ *e; in event_dequeue() local
89 e = dl_list_first(&s->event_queue, struct wps_event_, list); in event_dequeue()
90 if (e) { in event_dequeue()
92 "subscription %p", e, s); in event_dequeue()
93 dl_list_del(&e->list); in event_dequeue()
95 return e; in event_dequeue()
102 struct wps_event_ *e; in wps_upnp_event_delete_all() local
103 while ((e = event_dequeue(s)) != NULL) in wps_upnp_event_delete_all()
104 event_delete(e); in wps_upnp_event_delete_all()
117 static void event_retry(struct wps_event_ *e, int do_next_address) in event_retry() argument
119 struct subscription *s = e->s; in event_retry()
123 e, s); in event_retry()
124 event_clean(e); in event_retry()
128 e->retry++; in event_retry()
129 wpa_printf(MSG_DEBUG, "WPS UPnP: Try address %d", e->retry); in event_retry()
131 if (e->retry >= dl_list_len(&s->addr_list)) { in event_retry()
133 "for %s", e->addr->domain_and_port); in event_retry()
134 event_delete(e); in event_retry()
140 dl_list_add(&s->event_queue, &e->list); in event_retry()
145 static struct wpabuf * event_build_message(struct wps_event_ *e) in event_build_message() argument
150 buf = wpabuf_alloc(1000 + os_strlen(e->addr->path) + in event_build_message()
151 wpabuf_len(e->data)); in event_build_message()
154 wpabuf_printf(buf, "NOTIFY %s HTTP/1.1\r\n", e->addr->path); in event_build_message()
156 wpabuf_printf(buf, "HOST: %s\r\n", e->addr->domain_and_port); in event_build_message()
162 uuid_bin2str(e->s->uuid, b, 80); in event_build_message()
165 wpabuf_printf(buf, "SEQ: %u\r\n", e->subscriber_sequence); in event_build_message()
167 (int) wpabuf_len(e->data)); in event_build_message()
169 wpabuf_put_buf(buf, e->data); in event_build_message()
174 static void event_addr_failure(struct wps_event_ *e) in event_addr_failure() argument
176 struct subscription *s = e->s; in event_addr_failure()
178 e->addr->num_failures++; in event_addr_failure()
181 e, e->addr->domain_and_port, e->addr->num_failures); in event_addr_failure()
183 if (e->addr->num_failures < MAX_FAILURES) { in event_addr_failure()
185 event_retry(e, 1); in event_addr_failure()
194 "address %s due to errors", s, e->addr->domain_and_port); in event_addr_failure()
195 dl_list_del(&e->addr->list); in event_addr_failure()
196 subscr_addr_delete(e->addr); in event_addr_failure()
197 e->addr = NULL; in event_addr_failure()
209 event_retry(e, 0); in event_addr_failure()
216 struct wps_event_ *e = ctx; in event_http_cb() local
217 struct subscription *s = e->s; in event_http_cb()
220 "event=%d", e, c, event); in event_http_cb()
225 e, e->addr->domain_and_port); in event_http_cb()
226 e->addr->num_failures = 0; in event_http_cb()
228 event_delete(e); in event_http_cb()
236 event_addr_failure(e); in event_http_cb()
240 event_addr_failure(e); in event_http_cb()
244 event_addr_failure(e); in event_http_cb()
272 struct wps_event_ *e; in event_send_start() local
285 s->current_event = e = event_dequeue(s); in event_send_start()
289 dl_list_for_each(e->addr, &s->addr_list, struct subscr_addr, list) in event_send_start()
290 if (itry++ == e->retry) in event_send_start()
292 if (itry < e->retry) in event_send_start()
295 buf = event_build_message(e); in event_send_start()
297 event_addr_failure(e); in event_send_start()
301 e->http_event = http_client_addr(&e->addr->saddr, buf, 0, in event_send_start()
302 event_http_cb, e); in event_send_start()
303 if (e->http_event == NULL) { in event_send_start()
305 event_addr_failure(e); in event_send_start()
377 struct wps_event_ *e; in wps_upnp_event_add() local
388 e = event_dequeue(s); in wps_upnp_event_add()
389 if (!e) in wps_upnp_event_add()
391 event_delete(e); in wps_upnp_event_add()
405 e = os_zalloc(sizeof(*e)); in wps_upnp_event_add()
406 if (e == NULL) in wps_upnp_event_add()
408 dl_list_init(&e->list); in wps_upnp_event_add()
409 e->s = s; in wps_upnp_event_add()
410 e->data = wpabuf_dup(data); in wps_upnp_event_add()
411 if (e->data == NULL) { in wps_upnp_event_add()
412 os_free(e); in wps_upnp_event_add()
415 e->subscriber_sequence = s->next_subscriber_sequence++; in wps_upnp_event_add()
419 "(queue len %u)", e, s, len + 1); in wps_upnp_event_add()
420 dl_list_add_tail(&s->event_queue, &e->list); in wps_upnp_event_add()