Anope IRC Services

Please login or register.

Login with username, password and session length
Advanced search  

News:

Pages: [1]   Go Down

Author Topic: /ns id nick pass change you nick  (Read 6784 times)

0 Members and 1 Guest are viewing this topic.

thangkho

  • Guest
/ns id nick pass change you nick
« on: January 18, 2008, 06:54:06 AM »

i have this code fo ns_identify i try to make it complete one time with /ns id nick pass but i can't if any one have ane idea ti share with thi code you have enter  two time with /ns id nick pass

 int do_identify(User * u)
{
   char *buf = moduleGetLastBuffer();
   char *nick =strtok(NULL," ");
   char *pass = strtok(NULL, " ");
       NickAlias *na;
       NickRequest *nr;
   User *u2;
   char *argv[1];
       int res;
       char tsbuf[16];
       char modes[512];
       int len;
    if (!nick){
        syntax_error(s_NickServ, u, "IDENTIFY", NICK_IDENTIFY_SYNTAX);
    } else if (nickIsServices(nick, 1)) {

      notice_lang(s_NickServ, u, NICK_X_IS_SERVICES, nick);

   }
    else if (!(u2 = finduser(nick))) {

         anope_cmd_svsnick(u->nick, nick, time(NULL));

         argv[0] = nick;
   }else if (!pass) {
        syntax_error(s_NickServ, u, "IDENTIFY", NICK_IDENTIFY_SYNTAX);
    } else if (!(na = u->na)) {
        if ((nr = findrequestnick(u->nick))) {
            notice_lang(s_NickServ, u, NICK_IS_PREREG);
        } else {
            notice_lang(s_NickServ, u, NICK_NOT_REGISTERED);
        }
    } else if (na->status & NS_VERBOTEN) {
        notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick);
    } else if (na->nc->flags & NI_SUSPENDED) {
        notice_lang(s_NickServ, u, NICK_X_SUSPENDED, na->nick);
    } else if (nick_identified(u)) {
        notice_lang(s_NickServ, u, NICK_ALREADY_IDENTIFIED);
    } else if (!(res = enc_check_password(pass, na->nc->pass))) {
        alog("%s: Failed IDENTIFY for %s!%s@%s", s_NickServ, u->nick,
             u->username, u->host);
        notice_lang(s_NickServ, u, PASSWORD_INCORRECT);
        bad_password(u);
    } else if (res == -1) {
        notice_lang(s_NickServ, u, NICK_IDENTIFY_FAILED);
    } else {
        if (!(na->status & NS_IDENTIFIED) && !(na->status & NS_RECOGNIZED)) {
            if (na->last_usermask)
                free(na->last_usermask);
            na->last_usermask =
                scalloc(strlen(common_get_vident(u)) +
                        strlen(common_get_vhost(u)) + 2, 1);
            sprintf(na->last_usermask, "%s@%s", common_get_vident(u),
                    common_get_vhost(u));
            if (na->last_realname)
                free(na->last_realname);
            na->last_realname = sstrdup(u->realname);
        }

        na->status |= NS_IDENTIFIED;
        na->last_seen = time(NULL);
        snprintf(tsbuf, sizeof(tsbuf), "%lu",
                 (unsigned long int) u->timestamp);

        if (ircd->modeonreg) {
            len = strlen(ircd->modeonreg);
       strncpy(modes,ircd->modeonreg,512);
       if(ircd->rootmodeonid && is_services_root(u)) {
                strncat(modes,ircd->rootmodeonid,512-len);
       } else if(ircd->adminmodeonid && is_services_admin(u)) {
                strncat(modes,ircd->adminmodeonid,512-len);
       } else if(ircd->opermodeonid && is_services_oper(u)) {
                strncat(modes,ircd->opermodeonid,512-len);
       }
            if (ircd->tsonmode) {
                common_svsmode(u, modes, tsbuf);
            } else {
                common_svsmode(u, modes, "");
            }
        }
        send_event(EVENT_NICK_IDENTIFY, 1, u->nick);
        alog("%s: %s!%s@%s identified for nick %s", s_NickServ, u->nick,
             u->username, u->host, u->nick);
        notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED);
        if (ircd->vhost) {
            do_on_id(u);
        }
        if (NSModeOnID) {
            do_setmodes(u);
        }

        if (NSForceEmail && u->na && !u->na->nc->email) {
            notice_lang(s_NickServ, u, NICK_IDENTIFY_EMAIL_REQUIRED);
            notice_help(s_NickServ, u, NICK_IDENTIFY_EMAIL_HOWTO);
        }

        if (!(na->status & NS_RECOGNIZED))
            check_memos(u);

        /* Enable nick tracking if enabled */
        if (NSNickTracking)
            nsStartNickTracking(u);

        /* Clear any timers */
        if (na->nc->flags & NI_KILLPROTECT) {
            del_ns_timeout(na, TO_COLLIDE);
        }

    }
    return MOD_CONT;
}
Logged

Jobe

  • Contributor
  • *
  • Offline Offline
  • Gender: Male
  • Posts: 1023
    • Anope IRC Services
(No subject)
« Reply #1 on: January 18, 2008, 04:16:48 PM »

Let me get this straight? You're trying to modify Anope's core source code?

If so, we do NOT in any way support source modifications.

Such a feature can be achieved with a module anyway. So try posting a request for it in the modules forum.
Logged
Your IP: ()
My IRC Status:

Come along and visit http://www.anopequotes.org/

katsklaw

  • Guest
(No subject)
« Reply #2 on: January 18, 2008, 10:06:02 PM »

Actually I doubt it can be fully supported even as a module since Anope doesn't support remote ID in the first place.

Sure you would get Identify to work, but Services requires users to use the identified nick to perform commands and doesn't solely check if the user is identified.
Logged

Jobe

  • Contributor
  • *
  • Offline Offline
  • Gender: Male
  • Posts: 1023
    • Anope IRC Services
(No subject)
« Reply #3 on: January 19, 2008, 07:11:55 PM »

Could you not override the identify command yourself and perform some of the identify procedure yourself in the module?
Logged
Your IP: ()
My IRC Status:

Come along and visit http://www.anopequotes.org/

katsklaw

  • Guest
(No subject)
« Reply #4 on: January 19, 2008, 10:50:18 PM »

yes you can .. but that doesn't affect other potions of Anope other than identify that relies on you using a specific nick, like say, OS access.
Logged
Pages: [1]   Go Up