mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 20:23:06 +00:00
optimize SOCKET_WARNING msg
This commit is contained in:
@@ -98,6 +98,9 @@ skynet_socket_poll() {
|
||||
case SOCKET_UDP:
|
||||
forward_message(SKYNET_SOCKET_TYPE_UDP, false, &result);
|
||||
break;
|
||||
case SOCKET_WARNING:
|
||||
forward_message(SKYNET_SOCKET_TYPE_WARNING, false, &result);
|
||||
break;
|
||||
default:
|
||||
skynet_error(NULL, "Unknown socket message type %d.",type);
|
||||
return -1;
|
||||
@@ -108,31 +111,14 @@ skynet_socket_poll() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
check_wsz(struct skynet_context *ctx, int id, void *buffer, int64_t wsz) {
|
||||
if (wsz < 0) {
|
||||
return -1;
|
||||
} else if (wsz > 1024 * 1024) {
|
||||
struct skynet_socket_message tmp;
|
||||
tmp.type = SKYNET_SOCKET_TYPE_WARNING;
|
||||
tmp.id = id;
|
||||
tmp.ud = (int)(wsz / 1024);
|
||||
tmp.buffer = NULL;
|
||||
skynet_send(ctx, 0, skynet_context_handle(ctx), PTYPE_SOCKET, 0 , &tmp, sizeof(tmp));
|
||||
// skynet_error(ctx, "%d Mb bytes on socket %d need to send out", (int)(wsz / (1024 * 1024)), id);
|
||||
}
|
||||
return 0;
|
||||
int
|
||||
skynet_socket_send(struct skynet_context *ctx, int id, void *buffer, int sz) {
|
||||
return socket_server_send(SOCKET_SERVER, id, buffer, sz);
|
||||
}
|
||||
|
||||
int
|
||||
skynet_socket_send(struct skynet_context *ctx, int id, void *buffer, int sz) {
|
||||
int64_t wsz = socket_server_send(SOCKET_SERVER, id, buffer, sz);
|
||||
return check_wsz(ctx, id, buffer, wsz);
|
||||
}
|
||||
|
||||
void
|
||||
skynet_socket_send_lowpriority(struct skynet_context *ctx, int id, void *buffer, int sz) {
|
||||
socket_server_send_lowpriority(SOCKET_SERVER, id, buffer, sz);
|
||||
return socket_server_send_lowpriority(SOCKET_SERVER, id, buffer, sz);
|
||||
}
|
||||
|
||||
int
|
||||
@@ -189,8 +175,7 @@ skynet_socket_udp_connect(struct skynet_context *ctx, int id, const char * addr,
|
||||
|
||||
int
|
||||
skynet_socket_udp_send(struct skynet_context *ctx, int id, const char * address, const void *buffer, int sz) {
|
||||
int64_t wsz = socket_server_udp_send(SOCKET_SERVER, id, (const struct socket_udp_address *)address, buffer, sz);
|
||||
return check_wsz(ctx, id, (void *)buffer, wsz);
|
||||
return socket_server_udp_send(SOCKET_SERVER, id, (const struct socket_udp_address *)address, buffer, sz);
|
||||
}
|
||||
|
||||
const char *
|
||||
|
||||
Reference in New Issue
Block a user