Exemplo n.º 1
0
ub_val_t clubby_proto_create_frame_base(struct ub_ctx *ctx, const char *dst) {
  ub_val_t frame = ub_create_object(ctx);
  ub_add_prop(ctx, frame, "src",
              ub_create_string(ctx, get_cfg()->clubby.device_id));
  ub_add_prop(ctx, frame, "key",
              ub_create_string(ctx, get_cfg()->clubby.device_psk));
  ub_add_prop(ctx, frame, "dst", ub_create_string(ctx, dst));

  return frame;
}
Exemplo n.º 2
0
ub_val_t clubby_proto_create_frame_base(struct ub_ctx *ctx,
                                        ub_val_t frame_proto, int64_t id,
                                        const char *device_id,
                                        const char *device_psk,
                                        const char *dst) {
  ub_val_t ret;
  if (frame_proto.kind == UBJSON_TYPE_UNDEFINED) {
    ret = ub_create_object(ctx);
  } else {
    ret = frame_proto;
  }

  ub_add_prop(ctx, ret, "v", ub_create_number(2));
  ub_add_prop(ctx, ret, "src", ub_create_string(ctx, device_id));
  ub_add_prop(ctx, ret, "key", ub_create_string(ctx, device_psk));
  if (dst != NULL) {
    ub_add_prop(ctx, ret, "dst", ub_create_string(ctx, dst));
  }
  ub_add_prop(ctx, ret, "id", ub_create_number(id));
  return ret;
}
Exemplo n.º 3
0
static void console_make_clubby_call(struct v7 *v7, char *logs) {
  clubby_handle_t clubby_h = console_get_current_clubby(v7);
  struct ub_ctx *ctx = ub_ctx_new();
  ub_val_t log_cmd_args = ub_create_object(ctx);
  /*
   * TODO(alashkin): we need ub_create_string_n for non-zero terminated
   * strings
   */
  ub_add_prop(ctx, log_cmd_args, "msg", ub_create_string(ctx, logs));
  /* TODO(alashkin): set command timeout */
  s_waiting_for_resp = 1;
  sj_clubby_call(clubby_h, NULL, "/v1/Log.Log", ctx, log_cmd_args, 0, clubby_cb,
                 v7);
}
Exemplo n.º 4
0
ub_val_t clubby_proto_create_resp(struct ub_ctx *ctx, const char *dst,
                                  int64_t id, int status,
                                  const char *status_msg) {
  ub_val_t frame = clubby_proto_create_frame_base(ctx, dst);
  ub_val_t resp = ub_create_array(ctx);
  ub_add_prop(ctx, frame, "resp", resp);
  ub_val_t respv = ub_create_object(ctx);
  ub_array_push(ctx, resp, respv);
  ub_add_prop(ctx, respv, "id", ub_create_number(id));
  ub_add_prop(ctx, respv, "status", ub_create_number(status));

  if (status_msg != 0) {
    ub_add_prop(ctx, respv, "status_msg", ub_create_string(ctx, status_msg));
  }

  return frame;
}
Exemplo n.º 5
0
ub_val_t clubby_proto_create_frame(struct ub_ctx *ctx, int64_t id,
                                   const char *device_id,
                                   const char *device_psk, const char *dst,
                                   const char *method, ub_val_t args,
                                   uint32_t timeout, time_t deadline) {
  ub_val_t frame = clubby_proto_create_frame_base(ctx, CLUBBY_UNDEFINED, id,
                                                  device_id, device_psk, dst);
  ub_add_prop(ctx, frame, "method", ub_create_string(ctx, method));

  if (args.kind != UBJSON_TYPE_UNDEFINED) {
    ub_add_prop(ctx, frame, "args", args);
  }

  if (timeout != 0) {
    ub_add_prop(ctx, frame, "timeout", ub_create_number(timeout));
  }

  if (deadline != 0) {
    ub_add_prop(ctx, frame, "deadline", ub_create_number(deadline));
  }

  return frame;
}