*/
#include "platform.h"
#include "gnunet_arm_service.h"
-#include "gnunet_client_lib.h"
-#include "gnunet_getopt_lib.h"
-#include "gnunet_os_lib.h"
+#include "gnunet_util_lib.h"
#include "gnunet_protocols.h"
-#include "gnunet_server_lib.h"
#include "arm.h"
#define LOG(kind,...) GNUNET_log_from (kind, "arm-api",__VA_ARGS__)
{
struct RequestContext *pos = cls;
struct GNUNET_OS_Process *proc;
+ char *cbinary;
char *binary;
char *config;
char *loprefix;
lopostfix = GNUNET_strdup ("");
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_string (pos->h->cfg, "arm", "BINARY",
- &binary))
+ &cbinary))
{
- LOG (GNUNET_ERROR_TYPE_WARNING,
- _
- ("Configuration failes to specify option `%s' in section `%s'!\n"),
- "BINARY", "arm");
+ GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING,
+ "arm", "BINARY");
if (pos->callback != NULL)
pos->callback (pos->cls, GNUNET_ARM_PROCESS_UNKNOWN);
GNUNET_free (pos);
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_filename (pos->h->cfg, "arm", "CONFIG",
&config))
- {
- LOG (GNUNET_ERROR_TYPE_WARNING,
- _("Configuration fails to specify option `%s' in section `%s'!\n"),
- "CONFIG", "arm");
- if (pos->callback != NULL)
- pos->callback (pos->cls, GNUNET_ARM_PROCESS_UNKNOWN);
- GNUNET_free (binary);
- GNUNET_free (pos);
- GNUNET_free (loprefix);
- GNUNET_free (lopostfix);
- return;
- }
+ config = NULL;
+ binary = GNUNET_OS_get_libexec_binary_path (cbinary);
+ GNUNET_free (cbinary);
if ((GNUNET_YES ==
GNUNET_CONFIGURATION_have_value (pos->h->cfg, "TESTING", "WEAKRANDOM"))
&& (GNUNET_YES ==
{
/* Means we are ONLY running locally */
/* we're clearly running a test, don't daemonize */
- proc = do_start_process (GNUNET_NO, pos->std_inheritance,
- NULL, loprefix, binary, "-c", config,
- /* no daemonization! */
- lopostfix, NULL);
+ if (NULL == config)
+ proc = do_start_process (GNUNET_NO, pos->std_inheritance,
+ NULL, loprefix, binary,
+ /* no daemonization! */
+ lopostfix, NULL);
+ else
+ proc = do_start_process (GNUNET_NO, pos->std_inheritance,
+ NULL, loprefix, binary, "-c", config,
+ /* no daemonization! */
+ lopostfix, NULL);
}
else
{
- proc = do_start_process (GNUNET_NO, pos->std_inheritance,
- NULL, loprefix, binary, "-c", config,
- "-d", lopostfix, NULL);
+ if (NULL == config)
+ proc = do_start_process (GNUNET_NO, pos->std_inheritance,
+ NULL, loprefix, binary,
+ "-d", lopostfix, NULL);
+ else
+ proc = do_start_process (GNUNET_NO, pos->std_inheritance,
+ NULL, loprefix, binary, "-c", config,
+ "-d", lopostfix, NULL);
}
GNUNET_free (binary);
- GNUNET_free (config);
+ GNUNET_free_non_null (config);
GNUNET_free (loprefix);
GNUNET_free (lopostfix);
- if (proc == NULL)
- {
- if (pos->callback != NULL)
- pos->callback (pos->cls, GNUNET_ARM_PROCESS_FAILURE);
- GNUNET_free (pos);
- return;
- }
+ if (NULL == proc)
+ {
+ if (pos->callback != NULL)
+ pos->callback (pos->cls, GNUNET_ARM_PROCESS_FAILURE);
+ GNUNET_free (pos);
+ return;
+ }
if (pos->callback != NULL)
pos->callback (pos->cls, GNUNET_ARM_PROCESS_STARTING);
GNUNET_free (proc);
if ((msg == NULL) ||
(ntohs (msg->size) != sizeof (struct GNUNET_ARM_ResultMessage)))
{
- LOG (GNUNET_ERROR_TYPE_WARNING,
- _
- ("Error receiving response to `%s' request from ARM for service `%s'\n"),
- (sc->type == GNUNET_MESSAGE_TYPE_ARM_START) ? "START" : "STOP",
- (const char *) &sc[1]);
+ GNUNET_break (0);
GNUNET_CLIENT_disconnect (sc->h->client);
sc->h->client = GNUNET_CLIENT_connect ("arm", sc->h->cfg);
GNUNET_assert (NULL != sc->h->client);
LOG (GNUNET_ERROR_TYPE_DEBUG,
(type ==
GNUNET_MESSAGE_TYPE_ARM_START) ?
- _("Requesting start of service `%s'.\n") :
- _("Requesting termination of service `%s'.\n"), service_name);
+ "Requesting start of service `%s'.\n" :
+ "Requesting termination of service `%s'.\n", service_name);
sctx = GNUNET_malloc (sizeof (struct RequestContext) + slen);
sctx->h = h;
sctx->callback = cb;
(sctx->timeout), GNUNET_YES,
&handle_response, sctx))
{
- LOG (GNUNET_ERROR_TYPE_WARNING,
- (type ==
- GNUNET_MESSAGE_TYPE_ARM_START)
- ? _("Error while trying to transmit request to start `%s' to ARM\n")
- : _("Error while trying to transmit request to stop `%s' to ARM\n"),
- (const char *) &service_name);
+ GNUNET_break (0);
if (cb != NULL)
cb (cb_cls, GNUNET_SYSERR);
GNUNET_free (sctx);
size_t slen;
LOG (GNUNET_ERROR_TYPE_DEBUG,
- _("Asked to start service `%s' within %llu ms\n"), service_name,
- (unsigned long long) timeout.rel_value);
+ "Asked to start service `%s' within %s\n", service_name,
+ GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO));
if (0 == strcasecmp ("arm", service_name))
{
slen = strlen ("arm") + 1;
if (arm_shutdown_ctx->cb != NULL)
arm_shutdown_ctx->cb (arm_shutdown_ctx->cb_cls, reason);
-
GNUNET_free (arm_shutdown_ctx);
}
struct ARM_ShutdownContext *arm_shutdown_ctx;
struct GNUNET_CLIENT_Connection *client;
- LOG (GNUNET_ERROR_TYPE_INFO, _("Stopping service `%s' within %llu ms\n"),
- service_name, (unsigned long long) timeout.rel_value);
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Stopping service `%s' within %s\n",
+ service_name,
+ GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO));
if (h->client == NULL)
{
client = GNUNET_CLIENT_connect ("arm", h->cfg);
if (NULL == msg)
{
- LOG (GNUNET_ERROR_TYPE_WARNING,
- "Error receiving response to LIST request from ARM\n");
+ GNUNET_break (0);
GNUNET_CLIENT_disconnect (sc->h->client);
sc->h->client = GNUNET_CLIENT_connect ("arm", sc->h->cfg);
GNUNET_assert (NULL != sc->h->client);
client = GNUNET_CLIENT_connect ("arm", h->cfg);
if (client == NULL)
{
- LOG (GNUNET_ERROR_TYPE_DEBUG,
- "arm_api, GNUNET_CLIENT_connect returned NULL\n");
+ GNUNET_break (0);
cb (cb_cls, GNUNET_ARM_PROCESS_COMMUNICATION_ERROR, 0, NULL);
return;
}
- LOG (GNUNET_ERROR_TYPE_DEBUG,
- "arm_api, GNUNET_CLIENT_connect returned non-NULL\n");
h->client = client;
}
msg.type = htons (GNUNET_MESSAGE_TYPE_ARM_LIST);
LOG (GNUNET_ERROR_TYPE_DEBUG,
- "Requesting LIST from ARM service with timeout: %llu ms\n",
- (unsigned long long)timeout.rel_value);
+ "Requesting LIST from ARM service with timeout: %s\n",
+ GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_YES));
if (GNUNET_OK !=
GNUNET_CLIENT_transmit_and_get_response (sctx->h->client,
&handle_list_response,
sctx))
{
- LOG (GNUNET_ERROR_TYPE_WARNING,
- "Error while trying to transmit request to list services to ARM\n");
+ GNUNET_break (0);
if (cb != NULL)
cb (cb_cls, GNUNET_SYSERR, 0, NULL);
GNUNET_free (sctx);