29 lines
624 B
C
29 lines
624 B
C
|
|
#include <stdio.h>
|
|
#include <errno.h>
|
|
|
|
#include "mock_socket.h"
|
|
|
|
int mock_socket_send_mode;
|
|
|
|
static int sockets[256] = {0};
|
|
static int n_sockets = 0;
|
|
|
|
int mock_socket(int domain, int type, int protocol) {
|
|
printf("SOCKET\n");
|
|
return (n_sockets++) + 100;
|
|
}
|
|
|
|
ssize_t mock_send(int fd, const void *buf, size_t n, int flags) {
|
|
printf("SEND\n");
|
|
if (mock_socket_send_mode == MOCK_SOCKET_MODE_EINTR) {
|
|
errno = EINTR;
|
|
return rand() % ((ssize_t) n) - 1;
|
|
} else if (mock_socket_send_mode == MOCK_SOCKET_MODE_CLOSED) {
|
|
errno = 0; // TODO
|
|
return -1;
|
|
}
|
|
|
|
return (ssize_t) n;
|
|
}
|