Mercurial > dovecot > core-2.2
annotate src/lib-oauth2/oauth2-private.h @ 21738:29066a72703a
lib-oauth2: Fix memory leak if HTTP URL parsing fails.
Also delay calling the callback. The callers don't necessarily expect an
immediate callback (auth/db-oauth2.c doesn't).
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 16 Mar 2017 01:12:57 +0200 |
parents | f6d27a985066 |
children | cb108f786fb4 |
rev | line source |
---|---|
21575
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
1 /* Copyright (c) 2017 Dovecot authors, see the included COPYING file */ |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
2 #ifndef OAUTH2_PRIVATE_H |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
3 #define OAUTH2_PRIVATE_H 1 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
4 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
5 struct oauth2_request { |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
6 pool_t pool; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
7 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
8 const struct oauth2_settings *set; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
9 struct http_client_request *req; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
10 struct json_parser *parser; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
11 struct istream *is; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
12 struct io *io; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
13 |
21738
29066a72703a
lib-oauth2: Fix memory leak if HTTP URL parsing fails.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
21575
diff
changeset
|
14 const char *delayed_error; |
29066a72703a
lib-oauth2: Fix memory leak if HTTP URL parsing fails.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
21575
diff
changeset
|
15 struct timeout *to_delayed_error; |
29066a72703a
lib-oauth2: Fix memory leak if HTTP URL parsing fails.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
21575
diff
changeset
|
16 |
21575
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
17 const char *username; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
18 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
19 void (*json_parsed_cb)(struct oauth2_request*, bool success, |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
20 const char *error); |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
21 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
22 ARRAY_TYPE(oauth2_field) fields; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
23 char *field_name; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
24 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
25 oauth2_token_validation_callback_t *tv_callback; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
26 void *tv_context; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
27 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
28 oauth2_introspection_callback_t *is_callback; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
29 void *is_context; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
30 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
31 oauth2_refresh_callback_t *re_callback; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
32 void *re_context; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
33 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
34 /* indicates whether token is valid */ |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
35 bool valid:1; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
36 }; |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
37 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
38 void oauth2_request_set_headers(struct oauth2_request *req, |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
39 const struct oauth2_request_input *input); |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
40 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
41 void oauth2_request_free_internal(struct oauth2_request *req); |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
42 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
43 void oauth2_parse_json(struct oauth2_request *req); |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
44 |
f6d27a985066
lib-oauth2: Add support library for OAUTH2
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
45 #endif |