summaryrefslogtreecommitdiff
path: root/src/hostserv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/hostserv.c')
-rw-r--r--src/hostserv.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/hostserv.c b/src/hostserv.c
index 38ee8dea7..e6cf50f86 100644
--- a/src/hostserv.c
+++ b/src/hostserv.c
@@ -1035,8 +1035,23 @@ int do_del(User * u)
/*************************************************************************/
int do_off(User * u)
{
- /* put any generic code here... :) */
- anope_cmd_vhost_off(u);
+ NickAlias *na;
+ char *vhost;
+ char *vident = NULL;
+ if ((na = findnick(u->nick))) {
+ if (na->status & NS_IDENTIFIED) {
+ vhost = getvHost(u->nick);
+ vident = getvIdent(u->nick);
+ if (vhost == NULL && vident == NULL)
+ notice_lang(s_HostServ, u, HOST_NOT_ASSIGNED);
+ else
+ anope_cmd_vhost_off(u);
+ } else {
+ notice_lang(s_HostServ, u, HOST_ID);
+ }
+ } else {
+ notice_lang(s_HostServ, u, HOST_NOT_REGED);
+ }
return MOD_CONT;
}