Changes in server/DataAccess.cpp [60017fc:41ad8ed] in network-game


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • server/DataAccess.cpp

    r60017fc r41ad8ed  
    33#include <iostream>
    44#include <sstream>
    5 #include <cstdlib>
    65
    76using namespace std;
     
    2827   ostringstream oss;
    2928
    30    string salt = "$1$";
    31    int random;
    32    char chr;
    33    for(int i=0; i<8; i++)
    34    {
    35       random = rand() % 62;
    36       if (random < 26)
    37          chr = (char)('a'+random);
    38       else if (random < 52)
    39          chr = (char)('A'+random-26);
    40       else
    41          chr = (char)('0'+random-52);
    42       salt += chr;
    43    }
    44    salt += '$';
    45 
    46    string encrypted(crypt(password.c_str(), salt.c_str()));
    47 
    48    oss << "'" << username << "', '" << encrypted << "'";
     29   oss << "'" << username << "', '" << password << "'";
    4930
    5031   return insert("users", "name, password", oss.str());
    51 }
    52 
    53 int DataAccess::updatePlayer(string username, string password)
    54 {
    55    ostringstream values, where;
    56 
    57    values << "password='" << password << "'";
    58    
    59    where << "name='" << username << "'";
    60 
    61    return update("users", values.str(), where.str());
    6232}
    6333
     
    8151   }
    8252
    83    if ( ( row = mysql_fetch_row(result)) != NULL ) {
    84       cout << "Creating a new player" << endl;
     53   if ( ( row = mysql_fetch_row(result)) != NULL )
    8554      p = new Player(string(row[1]), string(row[2]));
    86    }else {
     55   else {
    8756      cout << "Returned no results for some reason" << endl;
    8857      p = NULL;
     
    9463}
    9564
    96 // need to make sure this list is freed
    97 // since we need to create a DataAccess class
    98 // when calling these functions,
    99 // we could free this list in the destructor
    100 list<Player*>* DataAccess::getPlayers()
     65int DataAccess::printPlayers()
    10166{
    10267   MYSQL_RES *result;
     
    10873   if (result == NULL) {
    10974      cout << mysql_error(connection) << endl;
    110       return NULL;
     75      return 1;
    11176   }
    11277
    113    list<Player*>* lstPlayers = new list<Player*>();
    11478   while ( ( row = mysql_fetch_row(result)) != NULL ) {
    11579      cout << row[0] << ", " << row[1] << ", " << row[2] << endl;
    116       lstPlayers->push_back(new Player(row[1], row[2]));
    11780   }
    11881
    11982   mysql_free_result(result);
    12083
    121    return lstPlayers;
     84   return 0;
    12285}
    12386
    124 bool DataAccess::verifyPassword(string password, string encrypted)
    125 {
    126    string test(crypt(password.c_str(), encrypted.c_str()));
    127 
    128    return encrypted.compare(test) == 0;
    129 }
    130 
    131 int DataAccess::insert(string table, string columns, string values)
     87int DataAccess::insert(string table, string rows, string values)
    13288{
    13389   int query_state;
    13490   ostringstream oss;
    13591
    136    oss << "INSERT into " << table << " (" << columns << ") VALUES (" << values << ")";
    137    cout << "query: " << oss.str() << endl;
    138 
    139    query_state = mysql_query(connection, oss.str().c_str());
    140 
    141    if (query_state != 0) {
    142       cout << mysql_error(connection) << endl;
    143       return 1;
    144    }
    145 
    146    return 0;
    147 }
    148 
    149 int DataAccess::update(string table, string values, string where)
    150 {
    151    int query_state;
    152    ostringstream oss;
    153 
    154    oss << "UPDATE " << table << " SET " << values << " WHERE " << where;
     92   oss << "INSERT into " << table << " (" << rows << ") VALUES (" << values << ")";
    15593   cout << "query: " << oss.str() << endl;
    15694
Note: See TracChangeset for help on using the changeset viewer.