Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <signal.h>
- #include <sys/wait.h>
- #include <stdio.h>
- #include <fcntl.h>
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <string.h>
- #include <stdlib.h>
- #include <netdb.h>
- #include <errno.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <sys/time.h>
- #include "dropsendto.h"
- ssize_t dropsendto (int __fd, const void *__buf, size_t __n, int __flags, __CONST_SOCKADDR_ARG __addr, socklen_t __addr_len, int *global_count, int *lossnum_count, int lossnum, int loss_mod){
- if(lossnum == 0){
- int val2 = sendto( __fd, __buf, __n, __flags, __addr, __addr_len);
- //printf("sent %d\t", *global_count);
- (*global_count)++;
- return val2;
- }
- int t = (*global_count);
- if ((t%loss_mod) != 0){
- int val = sendto( __fd, __buf, __n, __flags, __addr, __addr_len);
- printf("sent %d\t", t - 1);
- (*global_count)++;
- return val;
- }
- else{
- if((*lossnum_count) > 0){
- (*lossnum_count)--;
- if ((*lossnum_count) == 0){
- (*global_count) = 1;
- (*lossnum_count) = lossnum;
- return 1;
- }
- (*global_count) = loss_mod;
- return 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement