diff --git a/service-src/databuffer.h b/service-src/databuffer.h index 1563466c..5fbc79d0 100644 --- a/service-src/databuffer.h +++ b/service-src/databuffer.h @@ -62,7 +62,7 @@ _return_message(struct databuffer *db, struct messagepool *mp) { } static void -databuffer_read(struct databuffer *db, struct messagepool *mp, void * buffer, int sz) { +databuffer_read(struct databuffer *db, struct messagepool *mp, char * buffer, int sz) { assert(db->size >= sz); db->size -= sz; for (;;) { diff --git a/service-src/service_gate.c b/service-src/service_gate.c index 0a7f6c8e..35fa3ea6 100644 --- a/service-src/service_gate.c +++ b/service-src/service_gate.c @@ -175,13 +175,13 @@ _forward(struct gate *g, struct connection * c, int size) { } if (g->broker) { void * temp = skynet_malloc(size); - databuffer_read(&c->buffer,&g->mp,temp, size); + databuffer_read(&c->buffer,&g->mp,(char *)temp, size); skynet_send(ctx, 0, g->broker, g->client_tag | PTYPE_TAG_DONTCOPY, fd, temp, size); return; } if (c->agent) { void * temp = skynet_malloc(size); - databuffer_read(&c->buffer,&g->mp,temp, size); + databuffer_read(&c->buffer,&g->mp,(char *)temp, size); skynet_send(ctx, c->client, c->agent, g->client_tag | PTYPE_TAG_DONTCOPY, fd , temp, size); } else if (g->watchdog) { char * tmp = skynet_malloc(size + 32);