~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_connect.cc

  • Committer: Brian Aker
  • Date: 2008-12-16 06:33:48 UTC
  • Revision ID: brian@tangent.org-20081216063348-fe9j7ys729o9eb32
Refactor out char* strdup for string class in user.

Show diffs side-by-side

added added

removed removed

Lines of Context:
105
105
 
106
106
  if (passwd_len != 0 && passwd_len != SCRAMBLE_LENGTH)
107
107
  {
108
 
    my_error(ER_HANDSHAKE_ERROR, MYF(0), session->main_security_ctx.ip);
 
108
    my_error(ER_HANDSHAKE_ERROR, MYF(0), session->security_ctx.ip.c_str());
109
109
    return(1);
110
110
  }
111
111
 
114
114
  if (is_authenticated != true)
115
115
  {
116
116
    my_error(ER_ACCESS_DENIED_ERROR, MYF(0),
117
 
             session->main_security_ctx.user,
118
 
             session->main_security_ctx.ip,
 
117
             session->security_ctx.user.c_str(),
 
118
             session->security_ctx.ip.c_str(),
119
119
             passwd_len ? ER(ER_YES) : ER(ER_NO));
120
120
 
121
121
    return 1;
123
123
 
124
124
 
125
125
  USER_RESOURCES ur;
126
 
  session->security_ctx->skip_grants();
 
126
  session->security_ctx.skip_grants();
127
127
  memset(&ur, 0, sizeof(USER_RESOURCES));
128
128
 
129
129
  if (check_count)
242
242
 
243
243
    if (net_peer_addr(net, ip, &session->peer_port, NI_MAXHOST))
244
244
    {
245
 
      my_error(ER_BAD_HOST_ERROR, MYF(0), session->main_security_ctx.ip);
 
245
      my_error(ER_BAD_HOST_ERROR, MYF(0), session->security_ctx.ip.c_str());
246
246
      return 1;
247
247
    }
248
 
    if (!(session->main_security_ctx.ip= strdup(ip)))
249
 
      return 1; /* The error is set by strdup(). */
 
248
 
 
249
    session->security_ctx.ip.assign(ip);
250
250
  }
251
251
  net_keepalive(net, true);
252
252
 
299
299
        pkt_len < MIN_HANDSHAKE_SIZE)
300
300
    {
301
301
      my_error(ER_HANDSHAKE_ERROR, MYF(0),
302
 
               session->main_security_ctx.ip);
 
302
               session->security_ctx.ip.c_str());
303
303
      return 1;
304
304
    }
305
305
  }
324
324
  if (end >= (char*) net->read_pos+ pkt_len +2)
325
325
  {
326
326
 
327
 
    my_error(ER_HANDSHAKE_ERROR, MYF(0), session->main_security_ctx.ip);
 
327
    my_error(ER_HANDSHAKE_ERROR, MYF(0), session->security_ctx.ip.c_str());
328
328
    return 1;
329
329
  }
330
330
 
361
361
 
362
362
  if (passwd + passwd_len + db_len > (char *)net->read_pos + pkt_len)
363
363
  {
364
 
    my_error(ER_HANDSHAKE_ERROR, MYF(0), session->main_security_ctx.ip);
 
364
    my_error(ER_HANDSHAKE_ERROR, MYF(0), session->security_ctx.ip.c_str());
365
365
    return 1;
366
366
  }
367
367
 
388
388
    user_len-= 2;
389
389
  }
390
390
 
391
 
  if (session->main_security_ctx.user)
392
 
    if (session->main_security_ctx.user)
393
 
      free(session->main_security_ctx.user);
394
 
  if (!(session->main_security_ctx.user= strdup(user)))
395
 
    return 1; /* The error is set by strdup(). */
 
391
  session->security_ctx.user.assign(user);
 
392
 
396
393
  return check_user(session, passwd, passwd_len, db, true);
397
394
}
398
395
 
486
483
  {
487
484
    if (!session->killed && session->variables.log_warnings > 1)
488
485
    {
489
 
      Security_context *sctx= session->security_ctx;
 
486
      Security_context *sctx= &session->security_ctx;
490
487
 
491
488
      sql_print_warning(ER(ER_NEW_ABORTING_CONNECTION),
492
489
                        session->thread_id,(session->db ? session->db : "unconnected"),
493
 
                        sctx->user ? sctx->user : "unauthenticated",
494
 
                        sctx->ip,
 
490
                        sctx->user.empty() == false ? sctx->user.c_str() : "unauthenticated",
 
491
                        sctx->ip.c_str(),
495
492
                        (session->main_da.is_error() ? session->main_da.message() :
496
493
                         ER(ER_UNKNOWN_ERROR)));
497
494
    }
505
502
 
506
503
void prepare_new_connection_state(Session* session)
507
504
{
508
 
  Security_context *sctx= session->security_ctx;
 
505
  Security_context *sctx= &session->security_ctx;
509
506
 
510
507
  if (session->variables.max_join_size == HA_POS_ERROR)
511
508
    session->options |= OPTION_BIG_SELECTS;
532
529
      session->killed= Session::KILL_CONNECTION;
533
530
      sql_print_warning(ER(ER_NEW_ABORTING_CONNECTION),
534
531
                        session->thread_id,(session->db ? session->db : "unconnected"),
535
 
                        sctx->user ? sctx->user : "unauthenticated",
536
 
                        sctx->ip, "init_connect command failed");
 
532
                        sctx->user.empty() == false ? sctx->user.c_str() : "unauthenticated",
 
533
                        sctx->ip.c_str(), "init_connect command failed");
537
534
      sql_print_warning("%s", session->main_da.message());
538
535
    }
539
536
    session->set_proc_info(0);