def __connect(self):
        self.__retryConnectionCallbackID = None
        if constants.IS_DEVELOPMENT:
            LOG_DEBUG(
                'Calling BigWorld.connect with params: {0}, serverName: {1}, inactivityTimeout: {2}, publicKeyPath: {3}'
                .format(self.__connectionData.username, self.__connectionUrl,
                        constants.CLIENT_INACTIVITY_TIMEOUT,
                        self.__connectionData.publicKeyPath))
        nextTick(lambda: BigWorld.
                 connect(self.__connectionUrl, self.__connectionData, self.
                         __serverResponseHandler))()
        if g_preDefinedHosts.predefined(
                self.__connectionUrl) or g_preDefinedHosts.roaming(
                    self.__connectionUrl):
            self.__hostItem = g_preDefinedHosts.byUrl(self.__connectionUrl)
        else:
            for server in BigWorld.serverDiscovery.servers:
                if server.serverString == self.__connectionUrl:
                    self.__hostItem = self.__hostItem._replace(
                        name=server.ownerName, shortName=server.ownerName)
                    break
            else:
                self.__hostItem = self.__hostItem._replace(
                    name=self.__connectionUrl, shortName=self.__connectionUrl)

        return
Exemple #2
0
    def updateServerList(self):

        def _serverDottedHost(ip):
            return '%d.%d.%d.%d' % (ip >> 24 & 255,
             ip >> 16 & 255,
             ip >> 8 & 255,
             ip >> 0 & 255)

        def _serverNetName(details):
            name = _serverDottedHost(details.ip)
            if details.port:
                name += ':%d' % details.port
                return name

        def _serverNiceName(details):
            name = details.hostName
            if not name:
                name = _serverNetName(details)
            elif details.port:
                name += ':%d' % details.port
            if details.ownerName:
                name += ' (' + details.ownerName + ')'
            return name

        servers = [ (_serverNiceName(server), server.serverString) for server in BigWorld.serverDiscovery.servers ]
        baseServerList = g_preDefinedHosts.shortList()
        for friendlyName, hostName in servers:
            if not g_preDefinedHosts.predefined(hostName):
                baseServerList.append((hostName,
                 friendlyName,
                 HOST_AVAILABILITY.getDefault(),
                 None))

        self._setServerList(baseServerList)
        return
Exemple #3
0
    def updateServerList(self):
        def _serverDottedHost(ip):
            return '%d.%d.%d.%d' % (ip >> 24 & 255, ip >> 16 & 255,
                                    ip >> 8 & 255, ip >> 0 & 255)

        def _serverNetName(details):
            name = _serverDottedHost(details.ip)
            if details.port:
                name += ':%d' % details.port
                return name

        def _serverNiceName(details):
            name = details.hostName
            if not name:
                name = _serverNetName(details)
            elif details.port:
                name += ':%d' % details.port
            if details.ownerName:
                name += ' (' + details.ownerName + ')'
            return name

        servers = [(_serverNiceName(server), server.serverString)
                   for server in BigWorld.serverDiscovery.servers]
        baseServerList = g_preDefinedHosts.shortList()
        for friendlyName, hostName in servers:
            if not g_preDefinedHosts.predefined(hostName):
                baseServerList.append(
                    (hostName, friendlyName,
                     g_preDefinedHosts.getDefaultCSISStatus(), None))

        self._setServerList(baseServerList)
        return
    def connect(
        self,
        url,
        login,
        password,
        publicKeyPath=None,
        nickName=None,
        token2="",
        isNeedSavingPwd=False,
        tokenLoginParams=None,
    ):
        self.disconnect()
        self.__isVersionsDiffered = False
        self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
        basicLoginParams = {"login": login, "auth_method": AUTH_METHODS.BASIC}
        loginParams = tokenLoginParams if tokenLoginParams is not None else basicLoginParams
        loginParams["session"] = md5hex(getHardwareID())
        loginParams["auth_realm"] = constants.AUTH_REALM
        loginParams["game"] = "wot"
        loginParams["temporary"] = str(int(not isNeedSavingPwd))
        if nickName is not None:
            loginParams["nickname"] = nickName
            loginParams["auto_registration"] = "true"
        if constants.IS_IGR_ENABLED:
            loginParams["is_igr"] = "1"
        if token2:
            loginParams["token2"] = token2
            loginParams["auth_method"] = AUTH_METHODS.TOKEN2
        LOG_NOTE("User authentication method: {0}".format(loginParams["auth_method"]))
        clientContext = {"lang_id": getClientLanguage()}

        class LoginInfo:
            pass

        loginInfo = LoginInfo()
        loginInfo.username = json.dumps(loginParams).encode("utf8")
        loginInfo.password = password
        loginInfo.clientContext = json.dumps(clientContext)
        loginInfo.inactivityTimeout = constants.CLIENT_INACTIVITY_TIMEOUT
        if publicKeyPath is not None:
            loginInfo.publicKeyPath = publicKeyPath
        if login and constants.IS_DEVELOPMENT and login[0] == "@":
            try:
                loginInfo.username = login[1:]
            except IndexError:
                loginInfo.username = login

        BigWorld.connect(url, loginInfo, partial(self.connectionWatcher, nickName is not None))
        self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
        self.__loginName = login
        if g_preDefinedHosts.predefined(url) or g_preDefinedHosts.roaming(url):
            self.__host = g_preDefinedHosts.byUrl(url)
        else:
            for server in BigWorld.serverDiscovery.servers:
                if server.serverString == url:
                    self.__host = self.__host._replace(name=server.ownerName)
                    break

        return
Exemple #5
0
 def steamLogin(self):
     if LoginDispatcher.IS_FIRST_RUN and g_steamAccount.isValid:
         LoginDispatcher.IS_FIRST_RUN = False
         self.__loginDataLoader.loadUserConfig()
         host = self.__loginDataLoader.host
         if not g_preDefinedHosts.predefined(host):
             host = g_preDefinedHosts.first().url
         self.onLogin('', '', host)
 def steamLogin(self):
     if LoginDispatcher.IS_FIRST_RUN and g_steamAccount.isValid:
         LoginDispatcher.IS_FIRST_RUN = False
         self.__loginDataLoader.loadUserConfig()
         host = self.__loginDataLoader.host
         if not g_preDefinedHosts.predefined(host):
             host = g_preDefinedHosts.first().url
         self.onLogin('', '', host)
Exemple #7
0
    def __serversFind(self, servers=None):
        list = g_preDefinedHosts.shortList()
        if servers is not None:
            for name, key in servers:
                if not g_preDefinedHosts.predefined(key):
                    list.append((key, name))

        self.onSetOptions(list, self.__loginDataLoader.host)
        return
    def __getFullServersList(self):
        serversList = g_preDefinedHosts.shortList()
        servers = self.__foundedServers
        if servers is not None:
            for name, key in servers:
                if not g_preDefinedHosts.predefined(key):
                    serversList.append((key, name, HOST_AVAILABILITY.getDefault(), None))

        return serversList
    def connect(self,
                url,
                login,
                password,
                publicKeyPath=None,
                nickName=None,
                token2='',
                isNeedSavingPwd=False,
                tokenLoginParams=None):
        self.disconnect()
        self.__isVersionsDiffered = False
        self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
        basicLoginParams = {'login': login, 'auth_method': AUTH_METHODS.BASIC}
        loginParams = tokenLoginParams if tokenLoginParams is not None else basicLoginParams
        loginParams['session'] = md5hex(getHardwareID())
        loginParams['auth_realm'] = constants.AUTH_REALM
        loginParams['game'] = 'wot'
        loginParams['temporary'] = str(int(not isNeedSavingPwd))
        if nickName is not None:
            loginParams['nickname'] = nickName
            loginParams['auto_registration'] = 'true'
        if constants.IS_IGR_ENABLED:
            loginParams['is_igr'] = '1'
        if token2:
            loginParams['token2'] = token2
            loginParams['auth_method'] = AUTH_METHODS.TOKEN2
        LOG_NOTE('User authentication method: {0}'.format(
            loginParams['auth_method']))
        clientContext = {'lang_id': getClientLanguage()}

        class LoginInfo:
            pass

        loginInfo = LoginInfo()
        loginInfo.username = json.dumps(loginParams).encode('utf8')
        loginInfo.password = password
        loginInfo.clientContext = json.dumps(clientContext)
        loginInfo.inactivityTimeout = constants.CLIENT_INACTIVITY_TIMEOUT
        if publicKeyPath is not None:
            loginInfo.publicKeyPath = publicKeyPath
        if login and constants.IS_DEVELOPMENT and login[0] == '@':
            try:
                loginInfo.username = login[1:]
            except IndexError:
                loginInfo.username = login

        BigWorld.connect(url, loginInfo,
                         partial(self.connectionWatcher, nickName is not None))
        self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
        self.__loginName = login
        if g_preDefinedHosts.predefined(url) or g_preDefinedHosts.roaming(url):
            self.__host = g_preDefinedHosts.byUrl(url)
        else:
            for server in BigWorld.serverDiscovery.servers:
                if server.serverString == url:
                    self.__host = self.__host._replace(name=server.ownerName)
                    break
    def __serversFind(self, servers=None):
        list = g_preDefinedHosts.shortList()
        if servers is not None:
            for name, key in servers:
                if not g_preDefinedHosts.predefined(key):
                    list.append((key, name))

        self.onSetOptions(list, self.__loginDataLoader.host)
        return
Exemple #11
0
    def __getFullServersList(self):
        serversList = g_preDefinedHosts.shortList()
        servers = self.__foundedServers
        if servers is not None:
            for name, key in servers:
                if not g_preDefinedHosts.predefined(key):
                    serversList.append(
                        (key, name, HOST_AVAILABILITY.getDefault(), None))

        return serversList
    def connect(self, url, login, password, publicKeyPath = None, nickName = None, token2 = '', isNeedSavingPwd = False):
        self.disconnect()
        LOG_DEBUG('url: %s; login: %s; pass: %s; name: %s; token: %s' % (url,
         login,
         password,
         nickName,
         token2))
        self.__isVersionsDiffered = False
        if len(login) > 0 and url is not None:
            self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
            authMethod = AUTH_METHODS.BASIC
            if constants.IS_VIETNAM:
                authMethod = AUTH_METHODS.EBANK
            dct = {'login': login,
             'auth_method': authMethod,
             'session': md5hex(getHardwareID())}
            if nickName is not None:
                dct['nickname'] = nickName
                dct['auto_registration'] = 'true'
            if constants.IS_IGR_ENABLED:
                dct['is_igr'] = '1'
            if token2:
                dct['token2'] = token2
                dct['auth_method'] = AUTH_METHODS.TOKEN2
            dct['auth_realm'] = constants.AUTH_REALM
            dct['game'] = 'wot'
            dct['temporary'] = str(int(not isNeedSavingPwd))

            class LoginInfo:
                pass

            loginInfo = LoginInfo()
            loginInfo.username = json.dumps(dct).encode('utf8')
            loginInfo.password = password
            loginInfo.inactivityTimeout = constants.CLIENT_INACTIVITY_TIMEOUT
            if publicKeyPath is not None:
                loginInfo.publicKeyPath = publicKeyPath
            if constants.IS_DEVELOPMENT and login[0] == '@':
                try:
                    loginInfo.username = login[1:]
                except Exception:
                    loginInfo.username = login

            BigWorld.connect(url, loginInfo, partial(self.connectionWatcher, nickName is not None))
            self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
            self.__loginName = login
            if g_preDefinedHosts.predefined(url) or g_preDefinedHosts.roaming(url):
                self.__host = g_preDefinedHosts.byUrl(url)
            else:
                for server in BigWorld.serverDiscovery.servers:
                    if server.serverString == url:
                        self.__host = self.__host._replace(name=server.ownerName)
                        break
    def __connect(self):
        self.__retryConnectionCallbackID = None
        LOG_DEBUG('Calling BigWorld.connect with params: {0}, serverName: {1}, inactivityTimeout: {2}, publicKeyPath: {3}'.format(self.__connectionData.username, self.__connectionUrl, constants.CLIENT_INACTIVITY_TIMEOUT, self.__connectionData.publicKeyPath))
        nextTick(lambda : BigWorld.connect(self.__connectionUrl, self.__connectionData, self.__serverResponseHandler))()
        if g_preDefinedHosts.predefined(self.__connectionUrl) or g_preDefinedHosts.roaming(self.__connectionUrl):
            self.__hostItem = g_preDefinedHosts.byUrl(self.__connectionUrl)
        else:
            for server in BigWorld.serverDiscovery.servers:
                if server.serverString == self.__connectionUrl:
                    self.__hostItem = self.__hostItem._replace(name=server.ownerName)
                    break

        return
    def connect(self, url, login, password, publicKeyPath = None, nickName = None, token2 = '', isNeedSavingPwd = False, tokenLoginParams = None):
        self.disconnect()
        self.__isVersionsDiffered = False
        self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
        basicLoginParams = {'login': login,
         'auth_method': AUTH_METHODS.BASIC}
        loginParams = tokenLoginParams if tokenLoginParams is not None else basicLoginParams
        loginParams['session'] = md5hex(getHardwareID())
        loginParams['auth_realm'] = constants.AUTH_REALM
        loginParams['game'] = 'wot'
        loginParams['temporary'] = str(int(not isNeedSavingPwd))
        if nickName is not None:
            loginParams['nickname'] = nickName
            loginParams['auto_registration'] = 'true'
        if constants.IS_IGR_ENABLED:
            loginParams['is_igr'] = '1'
        if token2:
            loginParams['token2'] = token2
            loginParams['auth_method'] = AUTH_METHODS.TOKEN2
        LOG_NOTE('User authentication method: {0}'.format(loginParams['auth_method']))

        class LoginInfo:
            pass

        loginInfo = LoginInfo()
        loginInfo.username = json.dumps(loginParams).encode('utf8')
        loginInfo.password = password
        loginInfo.inactivityTimeout = constants.CLIENT_INACTIVITY_TIMEOUT
        if publicKeyPath is not None:
            loginInfo.publicKeyPath = publicKeyPath
        if login and constants.IS_DEVELOPMENT and login[0] == '@':
            try:
                loginInfo.username = login[1:]
            except IndexError:
                loginInfo.username = login

        BigWorld.connect(url, loginInfo, partial(self.connectionWatcher, nickName is not None))
        self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
        self.__loginName = login
        if g_preDefinedHosts.predefined(url) or g_preDefinedHosts.roaming(url):
            self.__host = g_preDefinedHosts.byUrl(url)
        else:
            for server in BigWorld.serverDiscovery.servers:
                if server.serverString == url:
                    self.__host = self.__host._replace(name=server.ownerName)
                    break

        return
    def connect(self,
                url,
                login,
                password,
                publicKeyPath=None,
                nickName=None,
                token2=''):
        self.disconnect()
        LOG_DEBUG('url: %s; login: %s; pass: %s; name: %s; token: %s' %
                  (url, login, password, nickName, token2))
        if len(login) > 0 and url is not None:
            self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
            authMethod = AUTH_METHODS.BASIC
            if constants.IS_VIETNAM:
                authMethod = AUTH_METHODS.EBANK
            dct = {
                'login': login,
                'auth_method': authMethod,
                'session': md5hex(getHardwareID())
            }
            if nickName is not None:
                dct['nickname'] = nickName
                dct['auto_registration'] = 'true'
            if constants.IS_KOREA:
                dct['is_igr'] = '1'
            if token2:
                dct['token2'] = token2
                dct['auth_method'] = AUTH_METHODS.TOKEN2
            dct['auth_realm'] = constants.AUTH_REALM
            dct['game'] = 'wot'

            class LoginInfo:
                pass

            loginInfo = LoginInfo()
            loginInfo.username = json.dumps(dct).encode('utf8')
            loginInfo.password = password
            loginInfo.inactivityTimeout = constants.CLIENT_INACTIVITY_TIMEOUT
            if publicKeyPath is not None:
                loginInfo.publicKeyPath = publicKeyPath
            if constants.IS_DEVELOPMENT and login[0] == '@':
                try:
                    loginInfo.username = login[1:]
                except Exception:
                    loginInfo.username = login

            BigWorld.connect(
                url, loginInfo,
                partial(self.connectionWatcher, nickName is not None))
            self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
            self.__loginName = login
            if g_preDefinedHosts.predefined(url) or g_preDefinedHosts.roaming(
                    url):
                self.__host = g_preDefinedHosts.byUrl(url)
            else:
                for server in BigWorld.serverDiscovery.servers:
                    if server.serverString == url:
                        self.__host = self.__host._replace(
                            name=server.ownerName)
                        break

        return
    def connect(self,
                url,
                login,
                password,
                publicKeyPath=None,
                areaID=None,
                nickName=None,
                token2='',
                rememberPassword=False,
                authMethod=None,
                token1='',
                spaID=None):
        self.disconnect()
        LOG_DEBUG(
            'url: %s; login: %s; pass: %s; name: %s; areaID: %s; authMethod: %s; token1: %s; token2: %s; spaID: %s'
            % (url, login, password, nickName, areaID, authMethod, token1,
               token2, spaID))
        if url is not None:

            class LoginInfo:
                pass

            loginInfo = LoginInfo()
            dct = {
                'login': '',
                'auth_method': '',
                'session': md5hex(getHardwareID())
            }
            loginInfo.inactivityTimeout = CLIENT_INACTIVITY_TIMEOUT
            if publicKeyPath is not None:
                loginInfo.publicKeyPath = publicKeyPath
            if authMethod == AUTH_METHODS.TOKEN1:
                dct['temporary'] = '0'
                dct['account_id'] = spaID
                dct['ip'] = '127.0.0.1'
                dct['game'] = 'wowp'
                dct['requested_for'] = 'wowp'
                dct['token'] = token1
                dct['auth_method'] = AUTH_METHODS.TOKEN1
                loginInfo.username = json.dumps(dct).encode('utf8')
                loginInfo.password = ''
            elif len(login) > 0 or token2:
                self.__setConnectionStatus(
                    CONNECTION_STATUS.connectionInProgress)
                if nickName is not None:
                    dct['nickname'] = nickName
                    dct['auto_registration'] = 'true'
                if token2:
                    dct['login'] = ''
                    dct['token2'] = token2
                    dct['auth_method'] = AUTH_METHODS.TOKEN2
                else:
                    dct['login'] = login
                    dct['auth_method'] = AUTH_METHODS.EBANK if config_consts.IS_VIETNAM else AUTH_METHODS.BASIC
                if config_consts.IS_IGR_ENABLED:
                    dct['is_igr'] = '1'
                dct['game'] = 'wowp'
                dct['temporary'] = str(int(not rememberPassword))
                loginInfo.username = json.dumps(dct).encode('utf8')
                if not token2:
                    loginInfo.password = password
                if len(login) > 0 and IS_DEVELOPMENT and login[0] == '@':
                    try:
                        loginInfo.username = login[1:]
                    except Exception:
                        loginInfo.username = login

            else:
                return
            BigWorld.connect(
                url, loginInfo,
                partial(self.connectionWatcher, nickName is not None))
            self.__setConnectionStatus(CONNECTION_STATUS.connectionInProgress)
            self.__loginName = login
            self.__areaID = areaID
            if g_preDefinedHosts.predefined(url):
                host = g_preDefinedHosts.byUrl(url)
                self.__host = host
            else:
                for server in BigWorld.serverDiscovery.servers:
                    if server.serverString == url:
                        self.__host = self.__host._replace(
                            name=server.ownerName)
                        break

        return