Jump to content

PunKeD_GuRu

Members
  • Posts

    63
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by PunKeD_GuRu

  1. When i try to lauch the mangos-realmd

    It says:

    MaNGOS realmd can not bind to 192.168.0.2:3724

    terminate called after throwing an instance of 'std::runtime_error'

    what(): Dead Reference

    Aborted

    Put original realmd.conf in, and changed DB stuff.

    MaNGOS realmd can not bind to 0.0.0.0:3724

    terminate called after throwing an instance of 'std::runtime_error'

    what(): Dead Reference

    Aborted

    Seems to have happened today.

    Every week or so I do an update, been updaing fine for a couple of months...

    Running Ubuntu 8.04.

    Downloaded mangos today (30th june(rev 10124))

    Any help would be greatly appreciated.

  2. On the Wiki section, the Ubuntu install.

    2nd requirement.

    2.Your using 32-bit Ubuntu Server 8.04 / 8.10 or Debian 5.0

    Does this mean that the install guide that follows it would not work on a 64Bit Ubuntu?

    I've run the server on win vista x64 without problems.

    Would like to take advantage of the servers CPU and use the 64Bit...

    Takes advantage of an extra 2GB memory stick i have somewhere aswel...

    Has anyone else setup a server on Ubuntu x64?

    Thanks for any feedback.

  3. Perhaps this could be of use to some of you. It's a plug-in to phpBBs authentication system that should allow MaNGOS to phpBB and vice-versa. I haven't yet been able to test it, but when I do I'll post back with results.

    http://www.phpbb.com/community/viewtopic.php?f=71&t=1598865

    <?php
    /**
    * External Database auth plugin for phpBB3
    * Based on phpbb's ldap auth plugin.
    * Pedro Dias - [email][email protected][/email]
    * [url]http://pedrodiasgeekyblog.blogspot.com/2008/11/external-database-authentication-for.html[/url]
    */
    
    /*
    Credit goes to Pedro for posting the example on his blog. I made some changes to the script,
    since I was getting a connections error. The changes I made will help people who install
    phpbb3 into its own separate database.
    I can assist with some help pm acctman on phpbb3
    p.s. I am not Pedro, I'm just giving him credit for his work. I modified the script to make
    it work better.
    */
    
    /**
    * @ignore
    */
    if (!defined('IN_PHPBB'))
    {
    exit;
    }
    
    function login_extdb(&$username, &$password)
    {
    global $db, $config, $user;
    
    if (!$password)
    {
     return array(
      'status' => LOGIN_ERROR_PASSWORD,
      'error_msg' => 'NO_PASSWORD_SUPPLIED',
      'user_row' => array('user_id' => ANONYMOUS),
     );
    }
    
    if (!$username)
    {
     return array(
      'status' => LOGIN_ERROR_USERNAME,
      'error_msg' => 'LOGIN_ERROR_USERNAME',
      'user_row' => array('user_id' => ANONYMOUS),
     );
    }
    
    //// START HERE //// change where you see FILL IN
    
    /// This is the connection for my existing member database
    $dbhost1 = 'localhost';
    $dbuser1 = 'FILL IN'; //this is the mysql login for your existing member db
    $dbpass1 = 'FILL IN';
    $dbname1 = 'FILL IN';
    
    $conn = mysql_connect($dbhost1, $dbuser1, $dbpass1) or die ('Error connecting to mysql');
    
    mysql_select_db($dbname1);
    
    // We need to select the required fields, check you member table and write down the 
    // following USERNAME, PASSWORD, EMAIL field names. Example my existing member fields are called
    // m_user, m_pass and m_email yours will be different. If you're lazy you can also do a SELECT *
    // I would replace with SELECT  m_user, m_pass, m_email
    // This is how my query looks:
    // $query  = "SELECT m_user,m_pass,m_email FROM rate_members WHERE m_user = '".$username."'";
    
    $query  = "SELECT * FROM FILL_IN_MEMBER-TABLE WHERE FILL_IN_USERNAME_FIELD = '".$username."'";
    $result = mysql_query($query);
    
    $num_rows = mysql_num_rows($result);
    
    if($num_rows == 1){
     $row = mysql_fetch_array($result, MYSQL_ASSOC);
     $extuser = $row['FILL IN']; //user field from existing db member table
     $extpass = $row['FILL IN']; //pass field from existing db member table
     $extmail = $row['FILL IN']; //email field from existing db member table
    }
    
    if ($num_rows == 1)
    {
     if (strcmp($extuser,$username) == 0 && strcmp($extpass,md5($password)) == 0)
     {
    
    /// This is the connection for phpBB3's database. The next 6 lines can be removed only if you've installed phpBB3 into you existing site db.
    /// I decided to keep things separate to make it easier to backup/restore.
    $dbhost = 'localhost';
    $dbuser = 'FILL IN'; // you can get the info from the config.php file in your forum root
    $dbpass = 'FILL IN';
    $dbname = 'FILL IN';
    
    //// END HERE //// you do not have to change anything else for the script to work
    
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');     
    mysql_select_db($dbname);
    
      $sql ='SELECT user_id, username, user_password, user_passchg, user_email, user_type
                   FROM phpbb_users' . "
       WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
      $result = $db->sql_query($sql);
      $row = $db->sql_fetchrow($result);
      $db->sql_freeresult($result);
    
      if ($row)
      {
       if ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE)
       {
        return array(
         'status'  => LOGIN_ERROR_ACTIVE,
         'error_msg'  => 'ACTIVE_ERROR',
         'user_row'  => $row,
        );
       }
    
       return array(
        'status'  => LOGIN_SUCCESS,
        'error_msg'  => false,
        'user_row'  => $row,
       );
      }
      else
      {
       $sql = 'SELECT group_id
        FROM ' . GROUPS_TABLE . "
        WHERE group_name = '" . $db->sql_escape('REGISTERED') . "'
         AND group_type = " . GROUP_SPECIAL;
       $result = $db->sql_query($sql);
       $row = $db->sql_fetchrow($result);
       $db->sql_freeresult($result);
    
       if (!$row)
       {
        trigger_error('NO_GROUP');
       }
    
       $extdb_user_row = array(
        'username'  => $username,
        'user_password' => phpbb_hash($password),
        'user_email' => $extmail,
        'group_id'  => (int) $row['group_id'],
        'user_type'  => USER_NORMAL,
        'user_ip'  => $user->ip,
       );
    
       return array(
        'status'  => LOGIN_SUCCESS_CREATE_PROFILE,
        'error_msg'  => false,
        'user_row'  => $extdb_user_row,
       );
      }
     }
     else
     {
      return array(
       'status'  => LOGIN_ERROR_PASSWORD,
       'error_msg'  => 'LOGIN_ERROR_PASSWORD',
       'user_row'  => array('user_id' => ANONYMOUS),
      );
     }
    }
    
    return array(
     'status' => LOGIN_ERROR_USERNAME,
     'error_msg' => 'LOGIN_ERROR_USERNAME',
     'user_row' => array('user_id' => ANONYMOUS),
    );
    }
    ?>
    

    and for the SHA1 passwords:

    <?php
    /**
    * External MySQL auth plug-in for phpBB3
    *
    * Authentication plug-ins is largely down to Sergey Kanareykin, our thanks to him.
    *
    * @package login
    * @version $Id: auth_dbext.php 8602 2009-04-09 16:38:27Z nzeyimana $
    * @copyright NONE: use as you see fit but no guarantees
    * @license NONE: use as you see fit but no guarantees
    *
    */
    
    /**
    * @ignore
    */
    if (!defined('IN_PHPBB'))
    {
       exit;
    }
    
    /**
    *
    * @return boolean|string false if the user is identified and else an error message
    */
    
    function init_dbext()
    {
       // TODO: do any needed initialization
    }
    
    /**
    * Login function
    */
    function login_dbext(&$username, &$password)
    {
       global $db;
    
       // do not allow empty password
       if (!$password)
       {
           return array(
               'status'    => LOGIN_ERROR_PASSWORD,
               'error_msg'    => 'NO_PASSWORD_SUPPLIED',
               'user_row'    => array('user_id' => ANONYMOUS),
           );
       }
    
       if (!$username)
       {
           return array(
               'status'    => LOGIN_ERROR_USERNAME,
               'error_msg'    => 'LOGIN_ERROR_USERNAME',
               'user_row'    => array('user_id' => ANONYMOUS),
           );
       }
    
       /////////////////////////////////////////////////////////////////////////////////////////////////////////////
       // Note: on my systems, I include these following lines from an external file that is not web-accessible 
       /////////////////////////////////////////////////////////////////////////////////////////////////////////////
       $db_host      = "localhost"; // Here goes the MySQL server address, hostname or IP
       $db_user      = "username";  // Here goes the MySQL user allowed to read the table below (GRANT SELECT ON ....)
       $db_password  = "passwd";    // Here should go the password associated with the above user
       $db_database  = "dbName";    // Here goes the Database containing the table below
       $db_table     = "tblUsers";  // Here will goes the table list users allowed to login into PHPBB   
       ////////////////////////////////////////////////////////////////////////////////////////////////////////////
       $col_username = "username";
       $col_password = "password";
       $hashMethod   = "sha1"; // Can be one of:  md5, sha1, plain
                               // In case you choose to use a non-standard hashing function, be 
                               // sure to change below where the $hashedPassword variable is created
    
       $objMySqli = new mysqli($db_host, $db_user, $db_password, $db_database);
    
       /* check connection */
       if (mysqli_connect_errno()) 
       {
           return array(
               'status'    => LOGIN_ERROR_EXTERNAL_AUTH ,
               'error_msg'    => 'LOGIN_ERROR_EXTERNAL_AUTH ',
               'user_row'    => array('user_id' => ANONYMOUS),
           );
       }
    
       // Check the User/Password
       if($hashMethod == 'sha1')
       {
           $hashedPassword = sha1($password);
       } elseif($hashMethod == 'md5') {
           $hashedPassword = md5($password);
       } else {
           $hashedPassword = $password;
       }
       $sql = 
           "SELECT 11 as ID 
           FROM " . $db_table . " 
           WHERE 
               " . $col_username . " = '" . mysqli_real_escape_string($username)          . "' AND 
               " . $col_password . " = '" . mysqli_real_escape_string($hashedPassword) . "' 
               ";
    
       if ( $result = $objMySqli->query($sql) )
       {
           if ( $result->num_rows <= 0 )
           {
               return array(
                   'status'    => LOGIN_ERROR_USERNAME,
                   'error_msg'    => 'LOGIN_ERROR_USERNAME',
                   'user_row'    => array('user_id' => ANONYMOUS),
               );
           }
    
           $sql = 'SELECT user_id, username, user_password, user_passchg, user_email, user_type
               FROM ' . USERS_TABLE . "
               WHERE username = '" . $db->sql_escape($username) . "'";
           $result = $db->sql_query($sql);
           $row = $db->sql_fetchrow($result);
           $db->sql_freeresult($result);
    
           if ($row)
           {
               // User inactive...
               if ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE)
               {
                   return array(
                       'status'        => LOGIN_ERROR_ACTIVE,
                       'error_msg'        => 'ACTIVE_ERROR',
                       'user_row'        => $row,
                   );
               }
    
               // Successful login...
               return array(
                   'status'        => LOGIN_SUCCESS,
                   'error_msg'        => false,
                   'user_row'        => $row,
               );
           }
    
           // this is the user's first login so create an empty profile
           return array(
               'status'        => LOGIN_SUCCESS_CREATE_PROFILE,
               'error_msg'        => false,
               'user_row'        => user_row_dbext($username, sha1($password)),
           );
       } else {
           // TODO: Handle this situation
       }
    
       // Not logged in using the external DB
       return array(
           'status'        => LOGIN_ERROR_EXTERNAL_AUTH,
           'error_msg'        => 'LOGIN_ERROR_EXTERNAL_AUTH',
           'user_row'        => array('user_id' => ANONYMOUS),
       );
    }
    
    /**
    * This function generates an array which can be passed to the user_add function in order to create a user
    */
    function user_row_dbext($username, $password)
    {
       global $db, $config, $user;
       // first retrieve default group id
       $sql = 'SELECT group_id
           FROM ' . GROUPS_TABLE . "
           WHERE group_name = '" . $db->sql_escape('REGISTERED') . "'
               AND group_type = " . GROUP_SPECIAL;
       $result = $db->sql_query($sql);
       $row = $db->sql_fetchrow($result);
       $db->sql_freeresult($result);
    
       if (!$row)
       {
           trigger_error('NO_GROUP');
       }
    
       // generate user account data
       return array(
           'username'        => $username,
           'user_password'    => phpbb_hash($password), // Note: on my side, I don't use this because I want all passwords to remain on the remote system
           'user_email'    => '', // You can retrieve this Email at the time the user is authenticated from the external table
           'group_id'        => (int) $row['group_id'],
           'user_type'        => USER_NORMAL,
           'user_ip'        => $user->ip,
       );
    }
    
    ?>
    

  4. Id love to know how to do this aswel!

    I have a phpbb3 forum setup on the same server

    along with file sharing

    just so all the uni folks have access to my movies/music/a forum to request/and a forum for bugs on the wow server

    currently i create each account manually as the mmfm seems to have stopped updating and im not good enough at this kinda stuff to do it myself =(

    if someone was to share how they have theirs i could prob smooth of some corners on it! =)

  5. I run 7 Realms, across 4 pcs

    1. Database PC 7 Realms db's 7 Character DB, 7 SD2 DB, 1 LOGON, Website, Forums, Armory, ECT ect ect.

    2. Web Server PC port 80,443/ Logon Server port 3724

    3. Dual Quad Zeons 16Gb Ram with 4 realms ports 8085, 8086, 8087, 8088

    4. Dual Quad Zeons 16GB Ramwith 3 Realms ports 8089, 8090, 8091, DOL Server (DAOC EMU) port 5984

    all behind router and syslog system and firebox vpn.

    with no problems,

    oh wait i am a ATM Network engineer. :rolleyes:

    and you guy's confused me up there for a sec.

    :eek:

    U host multiple realm databases?

    seems like a waste unless u have seperate logins for each realm.

  6. a lil question...

    this is for pcs in lan right?

    coz i tried in my friend's pc and mine with this and nothing always says cannot connect to database.

    have some idea how i can do this?

    ~ Greetins ;)

    this is behind a a router, pretty much one sided.

    having the database port forwarded can be a high security risk.

    however if ur using the standard MySQL setup simply forward port 3306. (this is fo MySQL)

  7. Nice guide, however it does not address 2 comps 2 servers 1 router

    port forewarding is a must with wow

    3724, 6112 and 6881-6999 are ports that need mapping

    the router can only have one port 3724 mapped

    I have a desktop running Trinity my friends connect through a DNS server that maps to my real ip address

    port 8085 is also mapped ( ex )

    Name port port router address

    wow1 3724 3724 192.168.1.105

    wow1 8085 8085 192.168.1.105

    realmlist table has id 1, dns server addy , port 8085

    conf file all work fine

    This config works works Trinity

    Now I have a 2nd comp which I want to run Mangos

    this is where i loose it I am not sure about the router config yet

    I will attemp to use 127.0.0.1 to test the servers functionality

    I would appreciate any suggestions to try

    u cant forward the same port to 2 computers behind 1 IP

    so 1 router, 2 LAN IP's same port cannot be forwarded to both.

    Mangos servers only require 2 ports to be forwarded,

    3724 and 8085*

    *Unless you have selected custom ports,

    in which case simply forward those ports.

    im not familiar atall with trinity.

    I hosted 2 realms

    my server had the login and a realm

    my desktop had another realm.

    behind 1 router, which friends where able to connect to both realms without problems simply by having 8086 forwarded for the second realm.

  8. based on the code i read above would it be possible to have one login server pointing to two different wow servers like stated above but one of the servers being at another site

    example: i have a wow server and i my buddy sets one up could we share the same log in server? As long as we both have Mangos?

    yeah, simply have the realmd database accessable to both servers

    this allows multiple computers (part of the thread title)

  9. within the mangos code there is a line that checks the DB versions...

    this code will make sure that you have a certain game client

    this code needs to be removed.

    You should have said you wanted to run different clients

    not

    i want to run classic wow, tbc and wotlk

    3.x can still be run as "classic wow" if both expansions are disabled (expansion = 0 )

  10. can i have wotlk 3.0.9, burning crusade and wow classic server with the same databse on the same pc?

    i already have wotlk 3.0.9 server running on the pc

    Yes.

    Each realm is controlled by its own mangos.conf file.

    Therefor each realm can be of different rates, different settings, different language...

    and different expansion.

    Unless u know how to change the C++ coding to check...

    then you must have only 1 client version (currently 3.0.9)

  11. these are all simply guides....

    so far every guide on this site is missing information which people need to read between the lines

    i kinda think it was dumbbed down enough as it is

    so i dont plan to dumb it down anymore...

    some things people need to learn...

    dont get me wrong, it slipped my knowledge the first time of merging...

    but yeah...

    mangos is a learning project....

    not just a follow the dumbass guide to host ur own server.

  12. I understand I should be and I am using the master branch. But what if master does not show up on the "Merge Into HEAD" -> "Tracking Branch" list for merge? Is this what happens if there are no updates? I think this is why I got confused and choose 310.

    I think this falls under the category of a little knowledge (or is it too little) can be a dangerous thing.

    if you fetch and merge, master isnt listed...

    this means u have the latest head revision.

  13. mangos is designed to be a good solid server

    not so much about having new features u dont see already

    but i have been looking into something similiar for some time!

    myself and a couple of others are looking at games like "EVE Online"

    these games are huge MMORPG's etc

    but alot of the game could be implemented web based

    several websites like InstantAction.c and quakelive.c

    also have web based exeecutables, using active x...

    id like to be able to create something that allows you to play parts of the game web based, and other parts using the actual client

    eve online is a good example

    because the whole marketplace, along with skill training etc, building ur ship, bla bla bla

    could easily be done web based rather than using the client

    alot of the similiar programing only varying form the actual game itself is different

    but im limited to my own head, and dont really know much about these websites that have active x web based executables such as IA and QL =/

  14. i have hosted realms on mates pc's that dont reach the minimum requirements for windows xp (SP2)...

    and they have run servers with a couple of mates attached....

    If the server is empty, it doesnt take up much resources atall....

    compiling the server takes awhiel on lower spec'd pc's.

    but just wait i suppose =/

    same with the begining bit of loading the server up... takes "awhile" with lower spec'd pc's.

    I think you need some kind of "Milestone" requirements

    so for 10 people to join a server

    100 people...

    200... etc

    varied by vmaps aswel.

    another biggie is peoples upload speeds...

    for the people that get a dedicated line etc, not so bad

    and for the people on LANs like mine that are 10/100/1000...

    the 1000 really helps

    on the university network here:

    1 pc...

    Windows Vista x64 SP1.

    Running in performance mode, with all visual effects disabled etc.

    also running for background program performance.

    4 x 2gb DDRII 800Mhz Ram (Dual Channeled)

    Primary HDD: SataII 250gb Maxtor, (nothing fancy like raptors)

    Secondary HDD: SataII 1Tb Maxtor (this stores loads of videos etc, which are also shared across the network)

    Third HDD: SataII 1Tb Maxtor (stores music etc...)

    Network:

    Onboard connects to the Uni network

    using a 10/100/1000 Cat-5 Cable... (Uni network is pretty immense)

    PCI - 10/100/1000 Cat-6 direct to my pc...

    I update mangos 2-4 times a week

    i also run SD2, and minimanager website.

    its rare for more than 200 students to attempt to get on...

    but ive never seen the latency peek 40 for anyone. (and the person to have 40 was coz she was also downloading some other stuff neway.

    I admire your effort in doing this, but you will struggle as it varies on so many different variables.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use