~brianaker/gearmand/warning-usage

« back to all changes in this revision

Viewing changes to libgearman/server_options.cc

  • Committer: Brian Aker
  • Date: 2013-02-20 20:06:42 UTC
  • mto: (621.49.2 1.0-build)
  • mto: This revision was merged to the branch mainline in revision 704.
  • Revision ID: brian@tangent.org-20130220200642-n55r0d3sauhfj8lt
Update for cleaning up server_options, and pushing core over to build elsewhere.

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
 */
43
43
 
44
44
#include "gear_config.h"
45
 
#include <libgearman/common.h>
46
 
 
47
 
#include "libgearman/server_options.hpp"
 
45
 
 
46
#include "libgearman/common.h"
 
47
 
 
48
#include <memory>
 
49
 
 
50
bool gearman_request_option(gearman_universal_st &universal,
 
51
                            gearman_string_t &option)
 
52
{
 
53
  char* option_str_cpy = (char*) malloc(gearman_size(option));
 
54
 
 
55
  if (option_str_cpy == NULL)
 
56
  {
 
57
    gearman_error(universal, GEARMAN_MEMORY_ALLOCATION_FAILURE, "malloc()");
 
58
    return false;
 
59
  }
 
60
 
 
61
  strncpy(option_str_cpy, gearman_c_str(option), gearman_size(option));
 
62
 
 
63
  gearman_server_options_st *server_options = new (std::nothrow) gearman_server_options_st(universal, option_str_cpy, gearman_size(option));
 
64
  if (server_options == NULL)
 
65
  {
 
66
    free(option_str_cpy);
 
67
    gearman_error(universal, GEARMAN_MEMORY_ALLOCATION_FAILURE, "new gearman_server_options_st()");
 
68
    return false;
 
69
  }
 
70
 
 
71
  return true;
 
72
}
48
73
 
49
74
gearman_server_options_st::gearman_server_options_st(gearman_universal_st &universal_arg,
50
75
                                                     const char* option_arg, const size_t option_arg_size) : 
51
 
  next(NULL), prev(NULL), option(option_arg), 
52
 
  option_length(option_arg_size),
 
76
  _option(option_arg), _option_length(option_arg_size),
 
77
  next(NULL), prev(NULL),
53
78
  universal(universal_arg)
54
79
{
55
80
  if (universal.server_options_list)
62
87
 
63
88
gearman_server_options_st::~gearman_server_options_st()
64
89
{
65
 
  if (option)
 
90
  if (_option)
66
91
  {
67
 
    free((void*)option);
 
92
    free((void*)_option);
68
93
  }
69
94
 
70
95
  { // Remove from universal list