~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/main.cc

  • Committer: Brian Aker
  • Date: 2011-08-16 01:07:54 UTC
  • mfrom: (2363.1.8 drizzle-trunk)
  • mto: This revision was merged to the branch mainline in revision 2399.
  • Revision ID: brian@tangent.org-20110816010754-14sxcxr7r9jczh6a
Fixes for --help work.

Show diffs side-by-side

added added

removed removed

Lines of Context:
252
252
  /* Function generates error messages before abort */
253
253
  error_handler_hook= my_message_sql;
254
254
 
255
 
  /* init_common_variables must get basic settings such as data_home_dir
256
 
     and plugin_load_list. */
257
 
  if (init_basic_variables(argc, argv))
258
 
    unireg_abort(1);                            // Will do exit
 
255
  /* init_common_variables must get basic settings such as data_home_dir and plugin_load_list. */
 
256
  if (not init_variables_before_daemonizing(argc, argv))
 
257
  {
 
258
    unireg_abort << "init_variables_before_daemonizing() failed";                               // Will do exit
 
259
  }
259
260
 
260
 
  if (opt_daemon)
 
261
  if (opt_daemon and was_help_requested() == false)
261
262
  {
262
263
    if (signal(SIGHUP, SIG_IGN) == SIG_ERR)
263
264
    {
265
266
    }
266
267
    if (daemonize())
267
268
    {
268
 
      fprintf(stderr, "failed to daemon() in order to daemonize\n");
269
 
      exit(EXIT_FAILURE);
 
269
      unireg_abort << "--daemon failed";
270
270
    }
271
271
  }
272
272
 
273
 
  if (init_remaining_variables(modules))
274
 
    unireg_abort(1);                            // Will do exit
 
273
  if (not init_variables_after_daemonizing(modules))
 
274
  {
 
275
    unireg_abort << "init_variables_after_daemonizing() failed";                                // Will do exit
 
276
  }
 
277
 
275
278
 
276
279
  /*
277
280
    init signals & alarm
280
283
  init_signals();
281
284
 
282
285
 
283
 
  select_thread=pthread_self();
 
286
  select_thread= pthread_self();
284
287
  select_thread_in_use=1;
285
288
 
286
 
  if (not opt_help)
 
289
  if (was_help_requested() == false)
287
290
  {
288
291
    if (chdir(getDataHome().file_string().c_str()))
289
292
    {
290
 
      errmsg_printf(error::ERROR,
291
 
                    _("Data directory %s does not exist\n"),
292
 
                    getDataHome().file_string().c_str());
293
 
      unireg_abort(1);
 
293
      unireg_abort << "Data directory " << getDataHome().file_string() << " does not exist";
294
294
    }
295
295
 
296
296
    ifstream old_uuid_file ("server.uuid");
297
297
    if (old_uuid_file.is_open())
298
298
    {
299
 
      getline (old_uuid_file, server_uuid);
 
299
      getline(old_uuid_file, server_uuid);
300
300
      old_uuid_file.close();
301
301
    } 
302
302
    else 
311
311
      server_uuid= string(uuid_string);
312
312
    }
313
313
 
314
 
    if (mkdir("local", 0700))
 
314
    if (mkdir("local", 0700) == -1)
315
315
    {
316
 
      /* We don't actually care */
 
316
      switch (errno)
 
317
      {
 
318
      case EEXIST:
 
319
        break;
 
320
 
 
321
      case EACCES:
 
322
        {
 
323
          char cwd[1024];
 
324
          unireg_abort << "Could not create local catalog, permission denied in directory:" << getcwd(cwd, sizeof(cwd));
 
325
        }
 
326
 
 
327
      default:
 
328
        {
 
329
          char cwd[1024];
 
330
          unireg_abort << "Could not create local catalog, in directory:" << getcwd(cwd, sizeof(cwd)) << " system error was:" << strerror(errno);
 
331
        }
 
332
      }
317
333
    }
318
 
    if (chdir("local"))
 
334
 
 
335
    if (chdir("local") == -1)
319
336
    {
320
 
      errmsg_printf(error::ERROR,
321
 
                    _("Local catalog %s/local does not exist\n"),
322
 
                    getDataHome().file_string().c_str());
323
 
      unireg_abort(1);
 
337
      unireg_abort << "Local catalog does not exist, was unable to chdir() to " << getDataHome().file_string();
324
338
    }
325
339
 
326
340
    setFullDataHome(boost::filesystem::system_complete(getDataHome()));
344
358
    cout << _("In File: ") << *::boost::get_error_info<boost::throw_file>(ex) << endl;
345
359
    cout << _("On Line: ") << *::boost::get_error_info<boost::throw_line>(ex) << endl;
346
360
#endif
347
 
    unireg_abort(1);
 
361
    unireg_abort << "init_server_components() failed";
348
362
  }
349
363
 
350
364
 
362
376
  (void) ReplicationServices::evaluateRegisteredPlugins();
363
377
 
364
378
  if (plugin::Listen::setup())
365
 
    unireg_abort(1);
 
379
  {
 
380
    unireg_abort << "Failed plugin::Listen::setup()";
 
381
  }
366
382
 
367
383
  assert(plugin::num_trx_monitored_objects > 0);
368
384
  drizzle_rm_tmp_tables();
377
393
  }
378
394
 
379
395
  if (opt_daemon)
 
396
  {
380
397
    daemon_is_ready();
 
398
  }
381
399
 
382
400
  /*
383
401
    Listen for new connections and start new session for each connection