예제 #1
0
void CDBUriConnParams::ParseServer(const string& params, size_t cur_pos)
{
    string::size_type pos = 0;
    pos = params.find_first_of(":/?", cur_pos);

    if (pos != string::npos) {
        string param_pairs;
        string server_name = params.substr(cur_pos, pos - cur_pos);
        SetServerName(server_name);

        switch (params[pos]) {
            case ':':
                cur_pos = pos + 1;
                pos = params.find_first_of("/?", cur_pos);

                if (pos != string::npos) {
                    string port = params.substr(cur_pos, pos - cur_pos);
                    SetPort(static_cast<Uint2>(NStr::StringToInt(port)));

                    switch (params[pos]) {
                        case '/':
                            cur_pos = pos + 1;
                            ParseSlash(params, cur_pos);

                            break;
                        case '?':
                            param_pairs = params.substr(cur_pos);
                            break;
                    }
                } else {
                    string port = params.substr(cur_pos);
                    SetPort(static_cast<Uint2>(NStr::StringToInt(port)));
                }

                break;
            case '/':
                cur_pos = pos + 1;
                ParseSlash(params, cur_pos);

                break;
            case '?':
                param_pairs = params.substr(cur_pos);

                break;
            default:
                break;
        }
    } else {
        string server_name = params.substr(cur_pos);
        SetServerName(server_name);
        // No parameter pairs. We are at the end ...
    }
}
예제 #2
0
void CDB_ODBC_ConnParams::x_MapPairToParam(const string& key, const string& value)
{
    // MS SQL Server related attributes ...
    if (NStr::Equal(key, "SERVER", NStr::eNocase)) {
        SetServerName(value);
    } else if (NStr::Equal(key, "UID", NStr::eNocase)) {
        SetUserName(value);
    } else if (NStr::Equal(key, "PWD", NStr::eNocase)) {
        SetPassword(value);
    } else if (NStr::Equal(key, "DRIVER", NStr::eNocase)) {
        SetDriverName(value);
    } else if (NStr::Equal(key, "DATABASE", NStr::eNocase)) {
        SetDatabaseName(value);
    } else if (NStr::Equal(key, "ADDRESS", NStr::eNocase)) {
        string host;
        string port;

        NStr::SplitInTwo(value, ",", host, port);
        NStr::TruncateSpacesInPlace(host);
        NStr::TruncateSpacesInPlace(port);

        // SetHost(host);
        SetPort(static_cast<Uint2>(NStr::StringToInt(port)));
    } else {
        SetParam(key, value);
    }
}
예제 #3
0
CDBDefaultConnParams::CDBDefaultConnParams(
        const string&   srv_name,
        const string&   user_name,
        const string&   passwd,
        I_DriverContext::TConnectionMode mode,
        bool            reusable,
        const string&   pool_name)
{
    SetServerName(srv_name);
    SetUserName(user_name);
    SetPassword(passwd);

    SetParam(
        "pool_name",
        pool_name
        );

    SetParam(
        "secure_login",
        ((mode & I_DriverContext::fPasswordEncrypted) != 0) ? "true" : "false"
        );

    SetParam(
        "is_pooled",
        reusable ? "true" : "false"
        );

    SetParam(
        "do_not_connect",
        (mode & I_DriverContext::fDoNotConnect) != 0 ? "true" : "false"
        );
}
예제 #4
0
CServers::CServers( size_t uiID, const CServers& p )
: m_uiID( uiID ), m_eType( p.GetType() ), m_usPort( p.GetServerPort() ), m_ucGame( p.GetGameID() ), m_bLocked( p.GetLocked() ), m_ucServerPlayers( p.GetServerPlayers() ), 
m_ucServerMaxPlayers( p.GetServerMaxPlayers() ), m_usServerPing( p.GetServerPing() ), m_cQueryTime(0)
{
	str_cpy( m_szIP, p.GetServerIP(), sizeof( m_szIP ) );

	SetServerName( p.GetServerName() );
	SetServerMode( p.GetServerMode() );
	SetServerMap( p.GetServerMap() );
	SetServerPass( p.GetServerPass() );

	// Favs List
	m_uiListItem[ E_LT_FAV ] = p.GetListItem( E_LT_FAV );
	// Internet List
	m_uiListItem[ E_LT_INTERNET ] = p.GetListItem( E_LT_INTERNET );
	// Official List
	m_uiListItem[ E_LT_OFFICIAL ] = p.GetListItem( E_LT_OFFICIAL );
	// History List
	m_uiListItem[ E_LT_HISTORY ] = p.GetListItem( E_LT_HISTORY );
	// LAN List
	m_uiListItem[ E_LT_LAN ] = p.GetListItem( E_LT_LAN );

	for ( size_t ui = 0; ui < MAX_PLAYERS; ui++ )
		m_pPlayerList[ ui ] = p.GetPlayer( ui );
}
예제 #5
0
파일: dumbgame.c 프로젝트: QrackEE/avrcraft
uint8_t ClientHandleChat( char * chat, uint8_t chatlen )
{
	if( chat[0] == '/' )
	{
		if( strncmp( &chat[1], "title", 5 ) == 0 && chatlen > 8 )
		{
			chat[chatlen] = 0;
			SetServerName( &chat[7] );
			return 0;
		}
	}
	return chatlen;
}
예제 #6
0
CServers::CServers( size_t uiID )
: m_uiID( uiID ), m_eType( E_ST_NONE ), m_usPort( 0 ), m_szPass( 0 ), m_ucGame( 0 ), m_bLocked( false ), m_ucServerPlayers( 0 ), 
m_szServerName( 0 ), m_szServerMode( 0 ), m_szServerMap( 0 ), m_ucServerMaxPlayers( 0 ), m_usServerPing( 9999 ), m_cQueryTime(0)
{
	*m_szIP = 0;

	SetServerName( "Unknown Server" );

	// Favs List
	m_uiListItem[ E_LT_FAV ] = -1;
	// Internet List
	m_uiListItem[ E_LT_INTERNET ] = -1;
	// Official List
	m_uiListItem[ E_LT_OFFICIAL ] = -1;
	// History List
	m_uiListItem[ E_LT_HISTORY ] = -1;
	// LAN List
	m_uiListItem[ E_LT_LAN ] = -1;

	for ( size_t ui = 0; ui < MAX_PLAYERS; ui++ )
		m_pPlayerList[ ui ] = 0;
}