avoid warnings

This commit is contained in:
Cloud Wu
2021-09-27 08:52:23 +08:00
parent edbed9f980
commit 9cbab6f5ec

View File

@@ -67,11 +67,12 @@ struct write_buffer {
char *ptr;
size_t sz;
bool userobject;
uint8_t udp_address[UDP_ADDRESS_SIZE];
};
#define SIZEOF_TCPBUFFER (offsetof(struct write_buffer, udp_address[0]))
#define SIZEOF_UDPBUFFER (sizeof(struct write_buffer))
struct write_buffer_udp {
struct write_buffer buffer;
uint8_t udp_address[UDP_ADDRESS_SIZE];
};
struct wb_list {
struct write_buffer * head;
@@ -777,8 +778,9 @@ static int
send_list_udp(struct socket_server *ss, struct socket *s, struct wb_list *list, struct socket_message *result) {
while (list->head) {
struct write_buffer * tmp = list->head;
struct write_buffer_udp * udp = (struct write_buffer_udp *)tmp;
union sockaddr_all sa;
socklen_t sasz = udp_socket_address(s, tmp->udp_address, &sa);
socklen_t sasz = udp_socket_address(s, udp->udp_address, &sa);
if (sasz == 0) {
skynet_error(NULL, "socket-server : udp (%d) type mismatch.", s->id);
drop_udp(ss, s, list, tmp);
@@ -920,7 +922,7 @@ send_buffer(struct socket_server *ss, struct socket *s, struct socket_lock *l, s
return -1; // blocked by direct write, send later.
if (s->dw_buffer) {
// add direct write buffer before high.head
struct write_buffer * buf = MALLOC(SIZEOF_TCPBUFFER);
struct write_buffer * buf = MALLOC(sizeof(*buf));
struct send_object so;
buf->userobject = send_object_init(ss, &so, (void *)s->dw_buffer, s->dw_size);
buf->ptr = (char*)so.buffer+s->dw_offset;
@@ -965,20 +967,20 @@ append_sendbuffer_(struct socket_server *ss, struct wb_list *s, struct request_s
static inline void
append_sendbuffer_udp(struct socket_server *ss, struct socket *s, int priority, struct request_send * request, const uint8_t udp_address[UDP_ADDRESS_SIZE]) {
struct wb_list *wl = (priority == PRIORITY_HIGH) ? &s->high : &s->low;
struct write_buffer *buf = append_sendbuffer_(ss, wl, request, SIZEOF_UDPBUFFER);
struct write_buffer_udp *buf = (struct write_buffer_udp *)append_sendbuffer_(ss, wl, request, sizeof(*buf));
memcpy(buf->udp_address, udp_address, UDP_ADDRESS_SIZE);
s->wb_size += buf->sz;
s->wb_size += buf->buffer.sz;
}
static inline void
append_sendbuffer(struct socket_server *ss, struct socket *s, struct request_send * request) {
struct write_buffer *buf = append_sendbuffer_(ss, &s->high, request, SIZEOF_TCPBUFFER);
struct write_buffer *buf = append_sendbuffer_(ss, &s->high, request, sizeof(*buf));
s->wb_size += buf->sz;
}
static inline void
append_sendbuffer_low(struct socket_server *ss,struct socket *s, struct request_send * request) {
struct write_buffer *buf = append_sendbuffer_(ss, &s->low, request, SIZEOF_TCPBUFFER);
struct write_buffer *buf = append_sendbuffer_(ss, &s->low, request, sizeof(*buf));
s->wb_size += buf->sz;
}
@@ -1749,8 +1751,9 @@ static void
send_request(struct socket_server *ss, struct request_package *request, char type, int len) {
request->header[6] = (uint8_t)type;
request->header[7] = (uint8_t)len;
const char * req = (const char *)request + offsetof(struct request_package, header[6]);
for (;;) {
ssize_t n = write(ss->sendctrl_fd, &request->header[6], len+2);
ssize_t n = write(ss->sendctrl_fd, req, len+2);
if (n<0) {
if (errno != EINTR) {
skynet_error(NULL, "socket-server : send ctrl command error %s.", strerror(errno));