Exemplo n.º 1
0
void
BeatBoard::AuthApiService::readDrizzleRow()
{
  drizzle_field_t field;
  size_t offset;
  size_t size;
  size_t total;

  while ( drizzle_row_read(&response.result, &response.ret) != 0 && response.ret == DRIZZLE_RETURN_OK )
  {
    std::cout << "start read" << std::endl;
    while (1)
    {
      field= drizzle_field_read(&response.result, &offset, &size, &total, &response.ret);
      if (response.ret == DRIZZLE_RETURN_ROW_END)
      {
        std::cout << "row end" << std::endl;
        break;
      }
      else if (response.ret != DRIZZLE_RETURN_OK)
      {
        std::cout << "row ng" << std::endl;
        std::cout << "drizzle_field_read: " << client->client_error() << std::endl;
        return;
      }
    }
  }
  //ret = client->select(select_list, from_clause, where_clause, response);
}
Exemplo n.º 2
0
bool
BeatBoard::AuthApiService::checkAccountExist( const std::string& username )
{
  bool ret = false;

  std::string select_list = "*";
  std::string from_clause = table_name;
  std::string where_clause = "where username = \'" + username + "\' limit 1";

  ret = client->select(select_list, from_clause, where_clause, response);
  if (response.ret == DRIZZLE_RETURN_OK)
  {
    std::cerr << "drizzle return ok" << std::endl;
  }
  else
  {
    std::cerr << "drizzle db error" << std::endl;
    return ret;
  }
    //ret = drizzle_column_skip(&response.result);
  if (drizzle_row_read(&response.result, &response.ret) != 0)
  {
    std::cerr << "account already exist" << std::endl;
    readDrizzleRow();
    ret = true;
  }
  else
  {
    std::cerr << "account not exist" << std::endl;
    ret = false;
  }

  return ret;
}
Exemplo n.º 3
0
bool
BeatBoard::AuthApiService::verifyAccountFromDB( const std::string& username, 
                                                const std::string& password,
                                                std::string& result )
{
  bool ret = false;

  std::string select_list = "password";
  std::string from_clause = table_name;
  std::string where_clause = "where username = \'" + username + "\' limit 1";

  ret = client->select(select_list, from_clause, where_clause, response);
  if (response.ret == DRIZZLE_RETURN_OK)
  {
    std::cerr << "drizzle return ok" << std::endl;
  }
  else
  {
    std::cerr << "drizzle db error" << std::endl;
    return ret;
  }

  if (drizzle_row_read(&response.result, &response.ret) != 0)
  {
    std::string _password;
    bool read_ret = getPasswordFromField(_password);
    if (read_ret)
    {
      std::cerr << _password << ":" << password << std::endl;
      std::cerr << _password.size() << ":" << password.size() << std::endl;
      std::cerr << (password == _password) << std::endl;
      if (password == _password)
      {
        result = "password correct";
        std::cerr << result << std::endl;
        ret = true;
      }
      else
      {
        result = "password incorrect";
        std::cerr << result << std::endl;
        ret = false;
      }
    }
    else
    {
      ret = false;
    }
  }
  else
  {
    std::cerr << "account not exist" << std::endl;
    ret = false;
  }
  
  return ret;
}
Exemplo n.º 4
0
Arquivo: row.c Projeto: ezaze/youku
drizzle_row_t drizzle_row_buffer(drizzle_result_st *result,
                                 drizzle_return_t *ret_ptr)
{
  size_t total;
  drizzle_field_t field;
  drizzle_row_t row;

  if (result->row == NULL)
  {
    if (drizzle_row_read(result, ret_ptr) == 0 || *ret_ptr != DRIZZLE_RETURN_OK)
      return NULL;

    result->row= malloc((sizeof(drizzle_field_t) + sizeof(size_t)) *
                        result->column_count);
    if (result->row == NULL)
    {
      drizzle_set_error(result->con->drizzle, "drizzle_row_buffer", "malloc");
      *ret_ptr= DRIZZLE_RETURN_MEMORY;
      return NULL;
    }

    result->field_sizes= (size_t *)(result->row + result->column_count);
  }

  while (1)
  {
    field= drizzle_field_buffer(result, &total, ret_ptr);
    if (*ret_ptr == DRIZZLE_RETURN_ROW_END)
      break;
    if (*ret_ptr != DRIZZLE_RETURN_OK)
    {
      if (*ret_ptr != DRIZZLE_RETURN_IO_WAIT)
      {
        free(result->row);
        result->row= NULL;
        result->field_sizes= NULL;
      }

      return NULL;
    }

    result->row[result->field_current - 1]= field;
    result->field_sizes[result->field_current - 1]= total;
  }

  *ret_ptr= DRIZZLE_RETURN_OK;
  row= result->row;
  result->row= NULL;

  return row;
}
Exemplo n.º 5
0
bool
BeatBoard::SearchApiService::drizzleResultToJson( std::string& result )
{
  bool ret = false;
  struct json_object *my_object = json_object_new_object();
  struct json_object *my_array = json_object_new_array();
  char label[] = "messages";

  while ( drizzle_row_read(&drizzle_response.result, &drizzle_response.ret) != 0 && drizzle_response.ret == DRIZZLE_RETURN_OK )
  {
    //ret = readDrizzleField( my_object );
    ret = readDrizzleField( my_array );
  }
  json_object_object_add(my_object, label, my_array);
  result = std::string(json_object_to_json_string(my_object));
  json_object_put(my_object);
  return ret;
}
Exemplo n.º 6
0
static int
read_row(drizzle_con_st *con, drizzle_result_st *result)
{
    int status = 1;    
    uint64_t read_row = 0;
    drizzle_return_t ret;
    PyObject *field = NULL;

    while(status){
        read_row = drizzle_row_read(result, &ret);
        status = io_wait(con, ret);
        if (status == -1){
            goto error;
        }
    }
    if (read_row == 0) {
        return 0;
    }
    field = read_fields(con, result);

    return 1;
error:
    return -1;
}