Ejemplo n.º 1
0
static char *test_pkt_create() {
  packet p = pkt_create(ERROR, 1, 2, 3, 4);
  mu_assert("FAIL: test_pkt_create [1]", pkt_get_type(p) == ERROR);
  mu_assert("FAIL: test_pkt_create [2]", pkt_get_source(p) == 1);
  mu_assert("FAIL: test_pkt_create [3]", pkt_get_arg_pos(p) == 2);
  mu_assert("FAIL: test_pkt_create [4]", pkt_get_sub(p) == 3);
  mu_assert("FAIL: test_pkt_create [6]", pkt_get_payload(p) == 4);
  return NULL;
}
Ejemplo n.º 2
0
void receiver(int socket, char *filename)
{
	fd_set read, write;
	char readed[520];
	int f;
	if(filename==NULL)
		f=STDOUT_FILENO;
	else
		f=open(filename,O_WRONLY|O_CREAT|O_TRUNC);
	while(1){
	FD_ZERO(&read);
	FD_ZERO(&write);
	FD_SET(socket,&write);
	FD_SET(socket,&read);
	FD_SET(f,&write);
	if(select(socket+1,&read,&write, NULL,NULL)==-1)
	{
		fprintf(stderr,"Error selectreceiver\n");
		return;
	}

	if(FD_ISSET(socket,&write) && FD_ISSET(socket,&read))
	{
		printf("receiver readwritesocket\n");
		int rd=readSocket(socket,readed,520);
		if(rd>=0)
		{
			pkt_t *pkt=pkt_new();
			pkt_status_code errdec=pkt_decode((const char *)readed,(size_t)rd,pkt);
printf("lu : %s\n",pkt_get_payload(pkt));
			if(errdec==PKT_OK)
			{
				if(pkt_get_type(pkt)==PTYPE_DATA)
				{
					printf("On doit créer ACK/NACK\n");
				}
			}
			else
			{
				fprintf(stderr,"Error receiver decode\n");
				return;
			}
			pkt_del(pkt);
	printf("after del\n");
		}	
	}
	else if(FD_ISSET(f,&write))
	{
		printf("Write file\n");
		break;
	}
	}
}
Ejemplo n.º 3
0
 *
 *
 *
 * */
int getAmountOfRealloc(const pkt_t *pkt) {
    int res_mod = (pkt_get_length(pkt))%4;
    if(res_mod==0) {
        return 0;
    } else {
        return 4-res_mod;
    }
}


char * try(const pkt_t *pkt) {
    uint8_t type = pkt_get_type(pkt) << 5;
    uint8_t window = pkt_get_window(pkt);
    uint8_t tw = type | window;
    uint8_t seqnum = pkt_get_seqnum(pkt);
    uint16_t length = pkt_get_length(pkt);
    char *test = malloc(sizeof(int));
    memcpy((void *)test, (void *)&tw,1);
    memcpy((void *)&test[1], (void *)&seqnum,1);
    memcpy((void *)&test[2], (void *)&length,2);
    int tryr = 0;
    memcpy((void *)&tryr,(void *)test,4);
    printf("VALUE:%d\n",tryr);
    return test;
}

/*
Ejemplo n.º 4
0
static char *test_pkt_get_type() {
  packet p = pkt_create(REFERENCE, 1, 2, 3, 4);
  mu_assert("FAIL: test_pkt_get_type [1]", pkt_get_type(p) == REFERENCE);
  return NULL;
}