mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
report too long message error, instead of assert
This commit is contained in:
@@ -562,12 +562,19 @@ _filter_args(struct skynet_context * context, int type, int *session, void ** da
|
||||
*data = msg;
|
||||
}
|
||||
|
||||
assert((*sz & HANDLE_MASK) == *sz);
|
||||
*sz |= type << HANDLE_REMOTE_SHIFT;
|
||||
}
|
||||
|
||||
int
|
||||
skynet_send(struct skynet_context * context, uint32_t source, uint32_t destination , int type, int session, void * data, size_t sz) {
|
||||
if ((sz & HANDLE_MASK) != sz) {
|
||||
skynet_error(context, "The message to %x is too large (sz = %lu)", destination, sz);
|
||||
if (session != 0) {
|
||||
skynet_send(context, destination, source, PTYPE_ERROR, session, NULL, 0);
|
||||
}
|
||||
skynet_free(data);
|
||||
return -1;
|
||||
}
|
||||
_filter_args(context, type, &session, (void **)&data, &sz);
|
||||
|
||||
if (source == 0) {
|
||||
|
||||
Reference in New Issue
Block a user