Lines Matching defs:login
11 #include "master-login.h"
12 #include "master-login-auth.h"
25 struct master_login *login;
64 struct master_login *login;
69 login = i_new(struct master_login, 1);
70 login->service = service;
71 login->callback = set->callback;
72 login->failure_callback = set->failure_callback;
73 login->auth = master_login_auth_init(set->auth_socket_path,
75 login->postlogin_socket_path = i_strdup(set->postlogin_socket_path);
76 login->postlogin_timeout_secs = set->postlogin_timeout_secs;
78 i_assert(service->login == NULL);
79 service->login = login;
80 return login;
85 struct master_login *login = *_login;
89 i_assert(login->service->login == login);
90 login->service->login = NULL;
92 master_login_auth_deinit(&login->auth);
93 while (login->conns != NULL) {
94 struct master_login_connection *conn = login->conns;
99 i_free(login->postlogin_socket_path);
100 i_free(login);
183 /* this client failed (login callback wasn't called).
185 i_set_failure_prefix("%s: ", client->conn->login->service->name);
202 struct master_login *login = client->conn->login;
203 struct master_service *service = login->service;
210 login->callback(client, auth_args[0], auth_args+1);
214 i_assert(master_login_auth_request_count(login->auth) == 0);
215 master_login_auth_disconnect(login->auth);
218 } else if (login->stopping) {
220 master_login_stop(login);
249 /* post-login script replaced fd */
271 i_info("Post-login script denied access to user %s",
286 i_error("%s: Timeout waiting for post-login script to finish, aborting",
297 struct master_login *login = client->conn->login;
313 str_printfa(str, "VERSION\tscript-login\t1\t0\n"
339 pl->to = timeout_add(login->postlogin_timeout_secs * 1000,
373 i_error("login client: Username missing from auth reply");
376 conn->login->failure_callback(client, errormsg);
380 i_set_failure_prefix("%s(%s): ", client->conn->login->service->name,
385 postlogin_socket_path = conn->login->postlogin_socket_path;
391 so disconnect it (before login process disconnects us and
396 /* execute post-login scripts before finishing auth */
407 struct master_login *login = conn->login;
441 master_login_auth_request(login->auth, &req,
445 void master_login_add(struct master_login *login, int fd)
451 conn->login = login;
457 DLLIST_PREPEND(&login->conns, conn);
467 DLLIST_REMOVE(&conn->login->conns, conn);
472 i_error("close(master login) failed: %m");
490 master_service_client_connection_destroyed(conn->login->service);
494 void master_login_stop(struct master_login *login)
496 login->stopping = TRUE;
497 if (master_login_auth_request_count(login->auth) == 0) {
498 master_login_auth_disconnect(login->auth);
499 master_service_close_config_fd(login->service);