~ubuntu-branches/ubuntu/oneiric/inspircd/oneiric-security

« back to all changes in this revision

Viewing changes to src/modules/m_jumpserver.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Bhavani Shankar
  • Date: 2008-11-15 20:39:50 UTC
  • mfrom: (1.1.4 upstream) (3.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20081115203950-uv1pf98x2vkon7se
Tags: 1.1.21+dfsg-1ubuntu1
* Merge from debian unstable, remaining changes: (LP: #298418)
  - debian/patches/04_include-limits-h.dpatch:
    + Explicitly include limits.h for gcc 4.3.

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
                port = 0;
66
66
                redirect_to.clear();
67
67
 
68
 
                for (const char* n = parameters[2]; *n; n++)
69
 
                {
70
 
                        switch (*n)
71
 
                        {
72
 
                                case '+':
73
 
                                        direction = true;
74
 
                                break;
75
 
                                case '-':
76
 
                                        direction = false;
77
 
                                break;
78
 
                                case 'a':
79
 
                                        redirect_all_immediately = direction;
80
 
                                break;
81
 
                                case 'n':
82
 
                                        redirect_new_users = direction;
83
 
                                break;
84
 
                        }
85
 
                }
86
 
 
87
 
                if (redirect_all_immediately)
88
 
                {
89
 
                        /* Redirect everyone but the oper sending the command */
90
 
                        for (std::vector<userrec*>::const_iterator i = ServerInstance->local_users.begin(); i != ServerInstance->local_users.end(); i++)
91
 
                        {
92
 
                                userrec* t = *i;
93
 
                                if (!IS_OPER(t))
94
 
                                {
95
 
                                        t->WriteServ("010 %s %s %s :Please use this Server/Port instead", user->nick, parameters[0], parameters[1]);
96
 
                                        userrec::QuitUser(ServerInstance, t, reason);
97
 
                                        n_done++;
98
 
                                }
99
 
                        }
100
 
                        if (n_done)
101
 
                        {
102
 
                                n_done_s = ConvToStr(n_done);
103
 
                        }
104
 
                }
105
 
 
106
 
                if (redirect_new_users)
107
 
                {
108
 
                        redirect_to = parameters[0];
109
 
                        port = atoi(parameters[1]);
110
 
                }
111
 
 
112
 
                user->WriteServ("NOTICE %s :*** Set jumpserver to server '%s' port '%s', flags '+%s%s'%s%s%s: %s", user->nick, parameters[0], parameters[1],
113
 
                                redirect_all_immediately ? "a" : "",
114
 
                                redirect_new_users ? "n" : "",
115
 
                                n_done ? " (" : "",
116
 
                                n_done ? n_done_s.c_str() : "",
117
 
                                n_done ? " user(s) redirected)" : "",
118
 
                                reason.c_str());
 
68
                if (pcnt >= 3)
 
69
                {
 
70
                        for (const char* n = parameters[2]; *n; n++)
 
71
                        {
 
72
                                switch (*n)
 
73
                                {
 
74
                                        case '+':
 
75
                                                direction = true;
 
76
                                        break;
 
77
                                        case '-':
 
78
                                                direction = false;
 
79
                                        break;
 
80
                                        case 'a':
 
81
                                                redirect_all_immediately = direction;
 
82
                                        break;
 
83
                                        case 'n':
 
84
                                                redirect_new_users = direction;
 
85
                                        break;
 
86
                                }
 
87
                        }
 
88
 
 
89
                        if (redirect_all_immediately)
 
90
                        {
 
91
                                /* Redirect everyone but the oper sending the command */
 
92
                                for (std::vector<userrec*>::const_iterator i = ServerInstance->local_users.begin(); i != ServerInstance->local_users.end(); i++)
 
93
                                {
 
94
                                        userrec* t = *i;
 
95
                                        if (!IS_OPER(t))
 
96
                                        {
 
97
                                                t->WriteServ("010 %s %s %s :Please use this Server/Port instead", user->nick, parameters[0], parameters[1]);
 
98
                                                userrec::QuitUser(ServerInstance, t, reason);
 
99
                                                n_done++;
 
100
                                        }
 
101
                                }
 
102
                                if (n_done)
 
103
                                {
 
104
                                        n_done_s = ConvToStr(n_done);
 
105
                                }
 
106
                        }
 
107
 
 
108
                        if (redirect_new_users)
 
109
                        {
 
110
                                redirect_to = parameters[0];
 
111
                                port = atoi(parameters[1]);
 
112
                        }
 
113
 
 
114
                        user->WriteServ("NOTICE %s :*** Set jumpserver to server '%s' port '%s', flags '+%s%s'%s%s%s: %s", user->nick, parameters[0], parameters[1],
 
115
                                        redirect_all_immediately ? "a" : "",
 
116
                                        redirect_new_users ? "n" : "",
 
117
                                        n_done ? " (" : "",
 
118
                                        n_done ? n_done_s.c_str() : "",
 
119
                                        n_done ? " user(s) redirected)" : "",
 
120
                                        reason.c_str());
 
121
        
 
122
                }
119
123
 
120
124
                return CMD_LOCALONLY;
121
125
        }