+ if(FlagHas(&auth->flags, AR_ZOMBIE_RECOVER)) {
+ /* check if able to recover connection */
+ if(!IsAccount(auth->client) || ircd_strcmp(cli_user(auth->client)->account, cli_user(auth->recover_client)->account)) {
+ send_reply(auth->client, ERR_RECOVERDENIED, cli_name(auth->recover_client), "auth missmatch");
+
+ /* reset nickname */
+ FlagSet(&auth->flags, AR_NEEDS_NICK);
+ send_reply(auth->client, ERR_NICKNAMEINUSE, cli_name(auth->recover_client));
+ hRemClient(auth->client);
+ (cli_name(auth->client))[0] = '\0';
+ return 0;
+ }
+ }