pid_t get_pid(bool error_is_ok)
{
- if (not pid_file().empty())
+ if (pid_file().empty() == false)
{
Wait wait(pid_file(), 0);
bool ping()
{
gearman_client_st *client= gearman_client_create(NULL);
- if (not client)
+ if (client == NULL)
{
Error << "Could not allocate memory for gearman_client_create()";
return false;
}
- gearman_client_set_timeout(client, 1000);
+ gearman_client_set_timeout(client, 3000);
if (gearman_success(gearman_client_add_server(client, hostname().c_str(), port())))
{
gearman_client_free(client);
return true;
}
+#if 0
+ Error << hostname().c_str() << ":" << port() << " was " << gearman_strerror(rc) << " extended: " << gearman_client_error(client);
+#endif
+ }
+ else
+ {
+ Error << "gearman_client_add_server() " << gearman_client_error(client);
}
gearman_client_free(client);
return GEARMAND_BINARY;
}
- const char *pid_file_option()
- {
- return "--pid-file=";
- }
-
const char *daemon_file_option()
{
return "--daemon";
}
- const char *log_file_option()
+ void log_file_option(Application& app, const std::string& arg)
{
- return "-vvvvv --log-file=";
+ if (arg.empty() == false)
+ {
+ std::string buffer("--log-file=");
+ buffer+= arg;
+ app.add_option("--verbose=DEBUG");
+ app.add_option(buffer);
+ }
}
- const char *port_option()
+ bool has_log_file_option() const
{
- return "--port=";
+ return true;
}
bool is_libtool()
return true;
}
- bool build(int argc, const char *argv[]);
+ bool has_syslog() const
+ {
+ return true;
+ }
+
+ bool has_port_option() const
+ {
+ return true;
+ }
+
+ bool build(size_t argc, const char *argv[]);
};
-bool Gearmand::build(int argc, const char *argv[])
+bool Gearmand::build(size_t argc, const char *argv[])
{
std::stringstream arg_buffer;
if (getuid() == 0 or geteuid() == 0)
{
- arg_buffer << " -u root ";
+ add_option("-u", "root");
}
- arg_buffer << " --listen=127.0.0.1 ";
+ add_option("--listen=localhost");
- for (int x= 1 ; x < argc ; x++)
+ for (size_t x= 0 ; x < argc ; x++)
{
- arg_buffer << " " << argv[x] << " ";
+ add_option(argv[x]);
}
- set_extra_args(arg_buffer.str());
-
return true;
}