예제 #1
0
ssize_t send(int sockfd, const void *buf, size_t len, int flags) {
    bw_bytes += len;

    if (bw_mustDrop()) 
        return len;

    
    printf("bytes sent: %d\n",len);
    return __libc_send(sockfd, buf, len, flags);
}
예제 #2
0
ssize_t
__sock_send_r(int fd, const void *buf, size_t len, int flags)
{
	ssize_t ret = -1;

	pthread_cleanup_push_defer_np(__sock_putuser, &fd);
	if (__sock_getuser(fd)) {
		if ((ret = __sock_send(fd, buf, len, flags)) == -1)
			pthread_testcancel();
		__sock_putuser(&fd);
	} else {
		if ((ret = __libc_send(fd, buf, len, flags)) == -1)
			pthread_testcancel();
	}
	pthread_cleanup_pop_restore_np(0);
	return (ret);
}