[Groonga-commit] groonga/groonga [master] call grn_timeval_now() in grn_ctx_send() even when acts as client.

Back to archive index

null+****@clear***** null+****@clear*****
2010年 7月 12日 (月) 19:27:10 JST


Daijiro MORI	2010-07-12 10:27:10 +0000 (Mon, 12 Jul 2010)

  New Revision: 1dd0bcac088d55faef38e4da4a6f3ea20d15fc4c

  Log:
    call grn_timeval_now() in grn_ctx_send() even when acts as client.

  Modified files:
    lib/ctx.c
    src/groonga.c

  Modified: lib/ctx.c (+2 -1)
===================================================================
--- lib/ctx.c    2010-07-12 09:45:09 +0000 (3ebb6e7)
+++ lib/ctx.c    2010-07-12 10:27:10 +0000 (99a233c)
@@ -977,6 +977,7 @@ grn_ctx_send(grn_ctx *ctx, const char *str, unsigned int str_len, int flags)
     if (ctx->impl->com) {
       grn_rc rc;
       grn_com_header sheader;
+      grn_timeval_now(ctx, &ctx->impl->tv);
       if ((flags & GRN_CTX_MORE)) { flags |= GRN_CTX_QUIET; }
       if (ctx->stat == GRN_CTX_QUIT) { flags |= GRN_CTX_QUIT; }
       sheader.proto = GRN_COM_PROTO_GQTP;
@@ -1064,7 +1065,7 @@ grn_ctx_recv(grn_ctx *ctx, char **str, unsigned int *str_len, int *flags)
           *flags = (header.flags & GRN_CTX_TAIL) ? 0 : GRN_CTX_MORE;
         }
         ctx->impl->output_type = header.qtype;
-        ctx->rc = header.status;
+        ctx->rc = (int16_t) header.status;
       }
       goto exit;
     } else {

  Modified: src/groonga.c (+3 -4)
===================================================================
--- src/groonga.c    2010-07-12 09:45:09 +0000 (5a9dfa9)
+++ src/groonga.c    2010-07-12 10:27:10 +0000 (596386d)
@@ -394,7 +394,7 @@ do_alone(int argc, char **argv)
 } while (0)
 
 static int
-recvput(grn_ctx *ctx)
+g_output(grn_ctx *ctx)
 {
   int flags;
   char *str;
@@ -449,7 +449,7 @@ g_client(int argc, char **argv)
           grn_ctx_send(ctx, buf, size, 0);
           rc = ctx->rc;
           if (rc) { break; }
-          if (recvput(ctx)) { goto exit; }
+          if (g_output(ctx)) { goto exit; }
           if (ctx->stat == GRN_CTX_QUIT) { break; }
         }
       } else {
@@ -458,7 +458,7 @@ g_client(int argc, char **argv)
       grn_obj_unlink(ctx, &text);
     } else {
       rc = grn_ctx_sendv(ctx, argc, argv, 0);
-      if (recvput(ctx)) { goto exit; }
+      if (g_output(ctx)) { goto exit; }
     }
   } else {
     fprintf(stderr, "grn_ctx_connect failed (%s:%d)\n", hostname, port);
@@ -1420,7 +1420,6 @@ output(grn_ctx *ctx, int flags, void *arg)
   msg->edge_id = req->edge_id;
   msg->header.proto = req->header.proto == GRN_COM_PROTO_MBREQ
     ? GRN_COM_PROTO_MBRES : req->header.proto;
-  ERRCLR(ctx);
   if (grn_msg_send(ctx, (grn_obj *)msg,
                    (flags & GRN_CTX_MORE) ? GRN_CTX_MORE : GRN_CTX_TAIL)) {
     edge->stat = EDGE_ABORT;




Groonga-commit メーリングリストの案内
Back to archive index