Browse code
refactor dual control create
Showing 4 changed files
... | ... |
@@ -29,6 +29,7 @@ int dual_control_ifc::setcred ( const pam_request &request) |
29 | 29 |
return PAM_SERVICE_ERR; |
30 | 30 |
} |
31 | 31 |
|
32 |
+namespace { |
|
32 | 33 |
class impl : public dual_control_ifc |
33 | 34 |
{ |
34 | 35 |
private: |
... | ... |
@@ -61,8 +62,8 @@ int impl::authenticate (const pam_request &request) |
61 | 62 |
logger_.log (auth_result, input.user_name, input.token); |
62 | 63 |
return auth_result; |
63 | 64 |
} |
64 |
- |
|
65 |
-dual_control create_dual_control (const dual_control_configuration |
|
65 |
+} |
|
66 |
+dual_control dual_control::create (const dual_control_configuration |
|
66 | 67 |
&configuration) |
67 | 68 |
{ |
68 | 69 |
return dual_control (std::shared_ptr<dual_control_ifc> (new impl ( |
... | ... |
@@ -56,11 +56,11 @@ public: |
56 | 56 |
{ |
57 | 57 |
return delegate_->setcred (request); |
58 | 58 |
} |
59 |
+ static dual_control create (const dual_control_configuration |
|
60 |
+ &configuration); |
|
59 | 61 |
|
60 | 62 |
}; |
61 | 63 |
|
62 |
-dual_control create_dual_control (const dual_control_configuration |
|
63 |
- &configuration); |
|
64 | 64 |
|
65 | 65 |
#endif |
66 | 66 |
|
... | ... |
@@ -20,7 +20,14 @@ |
20 | 20 |
#include "request.h" |
21 | 21 |
#include "dual_control.h" |
22 | 22 |
|
23 |
-dual_control dc; |
|
23 |
+namespace { |
|
24 |
+ dual_control initialize() { |
|
25 |
+ dual_control_configuration configuration; |
|
26 |
+ // .... |
|
27 |
+ return dual_control::create(configuration); |
|
28 |
+ } |
|
29 |
+ dual_control dc = initialize(); |
|
30 |
+} |
|
24 | 31 |
|
25 | 32 |
PAM_EXTERN int pam_sm_authenticate (pam_handle_t *pamh, int flags, int argc, |
26 | 33 |
const char **argv) |
... | ... |
@@ -107,7 +107,7 @@ int setcred_returns_success() |
107 | 107 |
{ |
108 | 108 |
//given |
109 | 109 |
dual_control_configuration configuration; |
110 |
- dual_control dc (create_dual_control (configuration)); |
|
110 |
+ dual_control dc (dual_control::create (configuration)); |
|
111 | 111 |
|
112 | 112 |
//when |
113 | 113 |
int result = dc.setcred (req()); |
... | ... |
@@ -126,7 +126,7 @@ int authenticate_validates_with_received_token() |
126 | 126 |
std::string token ("token"); |
127 | 127 |
use_validator (configuration, new fake_validator (user, token)); |
128 | 128 |
use_conversation (configuration, new fake_conversation (user, token)); |
129 |
- dual_control dc (create_dual_control (configuration)); |
|
129 |
+ dual_control dc (dual_control::create (configuration)); |
|
130 | 130 |
pam_handle_t *handle (0); |
131 | 131 |
std::vector<const std::string> arguments; |
132 | 132 |
|
... | ... |
@@ -146,7 +146,7 @@ int authenticate_fails_with_wrong_user() |
146 | 146 |
use_validator (configuration, new fake_validator ("user", token)); |
147 | 147 |
use_conversation (configuration, new fake_conversation ("wrong user", |
148 | 148 |
token)); |
149 |
- dual_control dc (create_dual_control (configuration)); |
|
149 |
+ dual_control dc (dual_control::create (configuration)); |
|
150 | 150 |
|
151 | 151 |
// when |
152 | 152 |
int actual = dc.authenticate (req()); |
... | ... |
@@ -164,7 +164,7 @@ int authenticate_fails_with_wrong_token() |
164 | 164 |
use_validator (configuration, new fake_validator (user, "token")); |
165 | 165 |
use_conversation (configuration, new fake_conversation (user, |
166 | 166 |
"wrong token")); |
167 |
- dual_control dc (create_dual_control (configuration)); |
|
167 |
+ dual_control dc (dual_control::create (configuration)); |
|
168 | 168 |
|
169 | 169 |
// when |
170 | 170 |
int actual = dc.authenticate (req()); |
... | ... |
@@ -184,7 +184,7 @@ int logs_authentication() |
184 | 184 |
use_conversation (configuration, new fake_conversation (user, token)); |
185 | 185 |
mock_logger *test_logger; |
186 | 186 |
use_logger (configuration, test_logger = new mock_logger); |
187 |
- dual_control dc (create_dual_control (configuration)); |
|
187 |
+ dual_control dc (dual_control::create (configuration)); |
|
188 | 188 |
|
189 | 189 |
//when |
190 | 190 |
dc.authenticate (req()); |
... | ... |
@@ -210,7 +210,7 @@ int logs_authentication_failure() |
210 | 210 |
use_conversation (configuration, new fake_conversation (user, token)); |
211 | 211 |
mock_logger *test_logger; |
212 | 212 |
use_logger (configuration, test_logger = new mock_logger); |
213 |
- dual_control dc (create_dual_control (configuration)); |
|
213 |
+ dual_control dc (dual_control::create (configuration)); |
|
214 | 214 |
|
215 | 215 |
//when |
216 | 216 |
dc.authenticate (req()); |