Lines Matching refs:user
28 "weak user",
52 struct user *user, string_t *str)
71 if (user != NULL) {
72 if (user->weak)
73 str_append(str, ", weak user");
74 str_printfa(str, ", user refreshed %u secs ago",
75 (unsigned int)(ioloop_time - user->timestamp));
87 struct user *user;
102 user = tag == NULL ? NULL :
106 user, str);
107 if (user != NULL &&
112 user->weak = FALSE;
170 i_warning("Delaying new user requests until ring is synced");
187 director_request_existing(struct director_request *request, struct user *user)
192 if (USER_IS_BEING_KILLED(user)) {
193 /* delay processing this user's connections until
197 user->username_hash);
203 user's weakness just in case it was set to TRUE when we
205 user->weak = FALSE;
209 if (user->weak) {
210 /* wait for user to become non-weak */
216 if (!user_directory_user_is_near_expiring(user->host->tag->users, user))
219 /* user is close to being expired. another director may have
221 host = mail_host_get_by_hash(dir->mail_hosts, user->username_hash,
222 user->host->tag->name);
230 if (user->host == host) {
232 assign the user the same way regardless */
239 a) some directors think the user isn't expiring, and
240 others think the user is near expiring
242 b) some directors think the user is near expiring, and
243 others think the user has already expired
247 !c) some directors think the user isn't expiring, and
248 others think the user has already expired
250 If !c) happens, the user might get redirected to different backends.
257 2. Each director receiving USER-WEAK refreshes the user's timestamp
258 and host, but marks the user as being weak.
261 4. If a director ever receives a USER update for a weak user, the
263 5. Director doesn't let any weak user log in, until the weak-flag
270 user->weak = TRUE;
271 director_update_user_weak(dir, dir->self_host, NULL, NULL, user);
282 struct user *user;
297 user = mail_tag == NULL ? NULL :
300 if (user != NULL) {
301 i_assert(user->host->tag == mail_tag);
302 if (!director_request_existing(request, user))
304 user_directory_refresh(mail_tag->users, user);
306 request->username_hash, user->timestamp);
325 user = user_directory_add(host->tag->users,
329 request->username_hash, user->timestamp,
333 i_assert(!user->weak);
334 director_update_user(dir, dir->self_host, user);
336 request->callback(user->host, user->host->hostname,