Exemplo n.º 1
0
extern char const * account_get_ladder_last_time(t_account * account, char const * clienttag, t_ladder_id id)
{
    char key[256];
    
    if (!clienttag || strlen(clienttag)!=4)
    {
	eventlog(eventlog_level_error,"account_get_ladder_last_time","got bad clienttag");
	return NULL;
    }
    sprintf(key,"Record\\%s\\%d\\last game",clienttag,(int)id);
    return account_get_strattr(account,key);
}
Exemplo n.º 2
0
Arquivo: mail.c Projeto: 91D2/pvpgn
static int get_mail_quota(t_account * user) {
   int quota;
   char const * user_quota;

   user_quota=account_get_strattr(user,"BNET\\auth\\mailquota");
   if (user_quota==NULL) quota=prefs_get_mail_quota();
   else {
      quota=atoi(user_quota);
      if (quota<1) quota=1;
      if (quota>MAX_MAIL_QUOTA) quota=MAX_MAIL_QUOTA;
   }
   return quota;
}
Exemplo n.º 3
0
extern char const * account_get_friends(t_account * account)
{
    char const * temp;
    
    if (!account)
    {
	eventlog(eventlog_level_error,"account_get_friends","got NULL account");
	return NULL;
    }
    if (!(temp = account_get_strattr(account,"BNET\\acct\\friends")))
	return "";
    return temp;
}
Exemplo n.º 4
0
extern char const * account_get_desc(t_account * account)
{
    char const * temp;
    
    if (!account)
    {
	eventlog(eventlog_level_error,"account_get_desc","got NULL account");
	return NULL;
    }
    
    if (!(temp = account_get_strattr(account,"profile\\description")))
	return "";
    return temp;
}
Exemplo n.º 5
0
		/* Get account attribute value */
		extern int __account_get_attr(lua_State* L)
		{
			const char *username, *attrkey;
			int attrtype;
			std::string attrvalue;
			std::map<std::string, std::string> o_account;

			try
			{
				lua::stack st(L);
				// get args
				st.at(1, username);
				st.at(2, attrkey);
				st.at(3, attrtype);

				if (t_account *account = accountlist_find_account(username))
				{
					switch ((t_attr_type)attrtype)
					{
					case attr_type_str:
						attrvalue = account_get_strattr(account, attrkey);
						break;
					case attr_type_num:
						attrvalue = std_to_string(account_get_numattr(account, attrkey));
						break;
					case attr_type_bool:
						attrvalue = account_get_boolattr(account, attrkey) == 0 ? "false" : "true";
						break;
					case attr_type_raw:
						attrvalue = account_get_rawattr(account, attrkey);
						break;
					}
				}

				st.push(attrvalue);
			}
			catch (const std::exception& e)
			{
				eventlog(eventlog_level_error, __FUNCTION__, e.what());
			}
			catch (...)
			{
				eventlog(eventlog_level_error, __FUNCTION__, "lua exception\n");
			}

			return 1;
		}
Exemplo n.º 6
0
/* Get account attribute value */
extern int __account_get_attr(lua_State* L)
{
    const char *username, *attrkey;
    int attrtype;

    try
    {
        lua::stack st(L);
        // get args
        st.at(1, username);
        st.at(2, attrkey);
        st.at(3, attrtype);

        if (t_account *account = accountlist_find_account(username))
        {
            switch ((t_attr_type)attrtype)
            {
            case attr_type_str:
                if (const char * val = account_get_strattr(account, attrkey))
                    st.push(val);
                break;
            case attr_type_num:
                st.push(account_get_numattr(account, attrkey));
                break;
            case attr_type_bool:
                st.push(account_get_boolattr(account, attrkey));
                break;
            case attr_type_raw:
                if (const char * val = account_get_rawattr(account, attrkey))
                    st.push(val);
                break;
            }
        }
    }
    catch (const std::exception& e)
    {
        eventlog(eventlog_level_error, __FUNCTION__, e.what());
    }
    catch (...)
    {
        eventlog(eventlog_level_error, __FUNCTION__, "lua exception\n");
    }
    return 1;
}
Exemplo n.º 7
0
extern char const * account_get_name(t_account * account)
#endif
{
    char const * temp;
        
    if (!account)
    {
#ifdef DEBUG_ACCOUNT
	eventlog(eventlog_level_error,"account_get_name","got NULL account (from %s:%u)",fn,ln);
#else
	eventlog(eventlog_level_error,"account_get_name","got NULL account");
#endif
	return NULL; /* FIXME: places assume this can't fail */
    }
			    
    if (!(temp = account_get_strattr(account,"BNET\\acct\\username")))
        eventlog(eventlog_level_error,"account_get_name","account has no username");
    return temp;
}
Exemplo n.º 8
0
extern int account_get_boolattr(t_account * account, char const * key)
#endif
{
    char const * temp;
    
    if (!account)
    {
#ifdef DEBUG_ACCOUNT
	eventlog(eventlog_level_error,"account_get_boolattr","got NULL account (from %s:%u)",fn,ln);
#else
	eventlog(eventlog_level_error,"account_get_boolattr","got NULL account");
#endif
	return -1;
    }
    if (!key)
    {
#ifdef DEBUG_ACCOUNT
	eventlog(eventlog_level_error,"account_get_boolattr","got NULL key (from %s:%u)",fn,ln);
#else
	eventlog(eventlog_level_error,"account_get_boolattr","got NULL key");
#endif
	return -1;
    }
    
    if (!(temp = account_get_strattr(account,key)))
	return -1;
    
    switch (str_get_bool(temp))
    {
    case 1:
	account_unget_strattr(temp);
	return 1;
    case 0:
	account_unget_strattr(temp);
	return 0;
    default:
	account_unget_strattr(temp);
	eventlog(eventlog_level_error,"account_get_boolattr","bad boolean value \"%s\" for key \"%s\"",temp,key);
	return -1;
    }
}
Exemplo n.º 9
0
extern unsigned int account_get_numattr(t_account * account, char const * key)
#endif
{
    char const * temp;
    unsigned int val;
    
    if (!account)
    {
#ifdef DEBUG_ACCOUNT
	eventlog(eventlog_level_error,"account_get_numattr","got NULL account (from %s:%u)",fn,ln);
#else
	eventlog(eventlog_level_error,"account_get_numattr","got NULL account");
#endif
	return 0;
    }
    if (!key)
    {
#ifdef DEBUG_ACCOUNT
	eventlog(eventlog_level_error,"account_get_numattr","got NULL key (from %s:%u)",fn,ln);
#else
	eventlog(eventlog_level_error,"account_get_numattr","got NULL key");
#endif
	return 0;
    }
    
    if (!(temp = account_get_strattr(account,key)))
	return 0;
    
    if (str_to_uint(temp,&val)<0)
    {
	eventlog(eventlog_level_error,"account_get_numattr","not a numeric string \"%s\" for key \"%s\"",temp,key);
	account_unget_strattr(temp);
	return 0;
    }
    account_unget_strattr(temp);
    
    return val;
}
Exemplo n.º 10
0
extern char const * account_get_ll_cdkey(t_account * account)
{
    return account_get_strattr(account,"BNET\\acct\\lastlogin_cdkey");
}
Exemplo n.º 11
0
extern char const * account_get_ll_owner(t_account * account)
{
    return account_get_strattr(account,"BNET\\acct\\lastlogin_owner");
}
Exemplo n.º 12
0
extern char const * account_get_fl_user(t_account * account)
{
    return account_get_strattr(account,"BNET\\acct\\firstlogin_user");
}
Exemplo n.º 13
0
extern char const * account_get_fl_clienttag(t_account * account)
{
    return account_get_strattr(account,"BNET\\acct\\firstlogin_clienttag");
}
Exemplo n.º 14
0
extern char const * account_get_pass(t_account * account)
{
    return account_get_strattr(account,"BNET\\acct\\passhash1");
}