Ejemplo n.º 1
0
//retrieve the kolmogorov skewness, kolmogorov constant
void retr_skewness_structure_functions(
	int		*n,
	double 	*v,
	int		*retr_n,
	int		*periodic,
	double	*retr_skewness,
	double	*retr_constant
		)
{
	int i1, i2, nok;
	int ni, ni_2, ni_2m;
	
	double *lst_skewness 	= malloc(*retr_n * sizeof(double));
	double *lst_const 		= malloc(*retr_n * sizeof(double));
	
	int j;
	double avg;
	    
	for (i1 = 0; i1 < *n; i1 = i1 + *retr_n ) {
		i2 = i1 + (*retr_n -1);

		if (i2 >= *n) {
			i2 = *n -1;
			i1 = fmax(0, i2 - (*retr_n - 1));
		}
		ni = i2 + 1 - i1;
		ni_2 = ni/2.;
		ni_2m = ni_2 - 1;
		
		//Kolmogorov skewness:
		//6.89: S = DLLL(t) / (DLL(t) ** 3/2)
		//Kolmogorov constant C:
		//6.90: C = (-4 / (5 S)) ** (2/3)
		kolmogorov_skewness(&ni, v + i1, lst_skewness, periodic);

		for (j = 1; j < ni_2; j++ ) {
			lst_const[j] = pow(fabs(-4. / (5. * lst_skewness[j])) , 2. / 3.);
		}
			
		calc_avg(&ni_2m, v + 1, &avg, &nok);
		for (j = i1; j <= i2; j++ ) {            
			retr_skewness[j] = avg;
		}
		
		calc_avg(&ni_2m, lst_const + 1, &avg, &nok);
		for (j = i1; j <= i2; j++ ) {
			retr_constant[j] = avg;
		}
	}
	
	free(lst_skewness);    
	free(lst_const);    
}
Ejemplo n.º 2
0
float calc_rating(KINGDOM_DATA * kingdom)
{
	if(!kingdom)
		return 0;
	if(kingdom->id == 0)
		return -1;
	return (calc_kd(kingdom) * calc_avg(kingdom));
}
Ejemplo n.º 3
0
Archivo: 12.c Proyecto: jnksu/CPP
int main(void)
{
	double stuff[ROWS][COLS];
	int row;
	
	for(row = 0; row < ROWS; row++)
	{
		printf("Enter %d numbers for row %d\n", COLS, row + 1);
		store(*(stuff + row), COLS);
	}
	
	printf("array contents:\n");
	show_arr(stuff, ROWS);
	
	for(row = 0; row < ROWS; row++)
		printf("average value of row %d = %g\n", row + 1, calc_avg(*(stuff + row), COLS));
	printf("average value of all rows = %g\n", calc_all_avg(stuff, ROWS));
	printf("largest value = %g\n", seek_max(stuff, ROWS));
	printf("Bye!\n");
	return 0;
}
Ejemplo n.º 4
0
static void test_ciphersuite_kx(const char *cipher_prio, unsigned pk)
{
	/* Server stuff. */
	gnutls_anon_server_credentials_t s_anoncred;
	gnutls_session_t server;
	int sret, cret;
	const char *str;
	char *suite = NULL;
	/* Client stuff. */
	gnutls_anon_client_credentials_t c_anoncred;
	gnutls_certificate_credentials_t c_certcred, s_certcred;
	gnutls_session_t client;
	/* Need to enable anonymous KX specifically. */
	int ret;
	struct benchmark_st st;
	struct timespec tr_start, tr_stop;
	double avg, sstddev;
	gnutls_priority_t priority_cache;

	total_diffs_size = 0;

	/* Init server */
	gnutls_certificate_allocate_credentials(&s_certcred);
	gnutls_anon_allocate_server_credentials(&s_anoncred);

	ret = 0;
	if (pk == GNUTLS_PK_RSA_PSS)
		ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_rsa_pss_cert,
						    &server_key,
						    GNUTLS_X509_FMT_PEM);
	else if (pk == GNUTLS_PK_RSA)
		ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_cert,
						    &server_key,
						    GNUTLS_X509_FMT_PEM);
	if (ret < 0) {
		fprintf(stderr, "Error in %d: %s\n", __LINE__,
			gnutls_strerror(ret));
		exit(1);
	}

	ret = 0;
	if (pk == GNUTLS_PK_ECDSA)
		ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_ecc_cert,
						    &server_ecc_key,
						    GNUTLS_X509_FMT_PEM);
	else if (pk == GNUTLS_PK_EDDSA_ED25519)
		ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_ed25519_cert,
						    &server_ed25519_key,
						    GNUTLS_X509_FMT_PEM);
	if (ret < 0) {
		fprintf(stderr, "Error in %d: %s\n", __LINE__,
			gnutls_strerror(ret));
		exit(1);
	}

	/* Init client */
	gnutls_anon_allocate_client_credentials(&c_anoncred);
	gnutls_certificate_allocate_credentials(&c_certcred);

	start_benchmark(&st);

	ret = gnutls_priority_init(&priority_cache, cipher_prio, &str);
	if (ret < 0) {
		fprintf(stderr, "Error in %s\n", str);
		exit(1);
	}

	do {

		gnutls_init(&server, GNUTLS_SERVER);
		ret =
		    gnutls_priority_set(server, priority_cache);
		if (ret < 0) {
			fprintf(stderr, "Error in setting priority: %s\n", gnutls_strerror(ret));
			exit(1);
		}
		gnutls_credentials_set(server, GNUTLS_CRD_ANON,
				       s_anoncred);
		gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
				       s_certcred);
		gnutls_transport_set_push_function(server, server_push);
		gnutls_transport_set_pull_function(server, server_pull);
		gnutls_transport_set_ptr(server,
					 (gnutls_transport_ptr_t) server);
		reset_buffers();

		gnutls_init(&client, GNUTLS_CLIENT);

		ret =
		    gnutls_priority_set(client, priority_cache);
		if (ret < 0) {
			fprintf(stderr, "Error in setting priority: %s\n", gnutls_strerror(ret));
			exit(1);
		}
		gnutls_credentials_set(client, GNUTLS_CRD_ANON,
				       c_anoncred);
		gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
				       c_certcred);

		gnutls_transport_set_push_function(client, client_push);
		gnutls_transport_set_pull_function(client, client_pull);
		gnutls_transport_set_ptr(client,
					 (gnutls_transport_ptr_t) client);

		gettime(&tr_start);

		HANDSHAKE(client, server);

		gettime(&tr_stop);

		if (suite == NULL)
			suite =
			    gnutls_session_get_desc(server);

		gnutls_deinit(client);
		gnutls_deinit(server);

		total_diffs[total_diffs_size++] = timespec_sub_ms(&tr_stop, &tr_start);
		if (total_diffs_size > sizeof(total_diffs)/sizeof(total_diffs[0]))
			abort();

		st.size += 1;
	}
	while (benchmark_must_finish == 0);

	fprintf(stdout, "%38s  ", suite);
	gnutls_free(suite);
	stop_benchmark(&st, "transactions", 1);
	gnutls_priority_deinit(priority_cache);

	avg = calc_avg(total_diffs, total_diffs_size);
	sstddev = calc_sstdev(total_diffs, total_diffs_size, avg);

	printf("%32s %.2f ms, sample variance: %.2f)\n",
	       "(avg. handshake time:", avg, sstddev);

	gnutls_anon_free_client_credentials(c_anoncred);
	gnutls_anon_free_server_credentials(s_anoncred);
}
Ejemplo n.º 5
0
//retrieve the fraction S, kolmogorov constant
void retr_factor_wind_components(
	int		*n,
	double	*u,
	double	*v,
	double 	*w,
	int		*retr_n,
	int		*periodic,
	double	*retr_frachor,	//retrieved factor between components
	double 	*retr_fracver	//retrieved factor between components
	)
{
	int order = 2;
	int i1, i2, nok;
	int ni, ni_2, ni_2m;

	double *u_dir 		= malloc(*n * sizeof(double));

	double *u_lon 		= malloc(*n * sizeof(double));
	double *u_tra1 		= malloc(*n * sizeof(double));
	double *u_tra2 		= malloc(*n * sizeof(double));

	double *dll_lon 	= malloc(*n * sizeof(double));
	double *dll_tra1 	= malloc(*n * sizeof(double));
	double *dll_tra2 	= malloc(*n * sizeof(double));

	double *lst_frac 	= malloc(*n * sizeof(double));
	
	int j;
	double avg;
	    
	//Calculate longitudinal and transverse components of the wind.
	for (j = 0; j <= *n; j++ ) {            
		//wind vector direction w.r.t. east (u-direction)
		u_dir[j] = atan2(v[j], u[j]);
		//now calculate longitudinal component
		u_lon[j] = (cos(u_dir[j]) * u[j]) + (sin(u_dir[j]) * v[j]);

		//and transverse componenents			
		u_tra1[j] = (sin(u_dir[j]) * u[j]) + (sin(u_dir[j]) * v[j]);
		u_tra2[j] = w[j];
	}
            

	for (i1 = 0; i1 < *n; i1 = i1 + *retr_n ) {
		i2 = i1 + (*retr_n -1);

		if (i2 >= *n) {
			i2 = *n -1;
			i1 = fmax(0, i2 - (*retr_n - 1));
		}
		ni = i2 + 1 - i1;
		ni_2 = ni/2.;
		ni_2m = ni_2 - 1;

		//calculate second order structure function.
		structure_function(&ni, u_lon + i1, dll_lon, &order, periodic);
		structure_function(&ni, u_tra1 + i1, dll_tra1, &order, periodic);
		structure_function(&ni, u_tra2 + i1, dll_tra2, &order, periodic);
		
		//using horizontal components
		for (j = 0; j < ni_2; j++ ) {
			lst_frac[j] = dll_lon[j] / dll_tra1[j];  //in theory 4/3
        }
                    
        calc_avg(&ni_2, lst_frac, &avg, &nok);
        for (j = i1; j <= i2; j++ ) {            
			retr_frachor[j] = avg;
		}
        
		//using horizontal + vertical components
		for (j = 0; j < ni_2; j++ ) {
			lst_frac[j] = dll_lon[j] / dll_tra2[j];  //in theory 4/3
        }
        calc_avg(&ni_2, lst_frac, &avg, &nok);
        for (j = i1; j <= i2; j++ ) {            
			retr_fracver[j] = avg;
		}
	}

	free(u_dir);
	
	free(u_lon);
	free(u_tra1);
	free(u_tra2);

	free(dll_lon);
	free(dll_tra1);
	free(dll_tra2);

	free(lst_frac);
}
Ejemplo n.º 6
0
void main (void)
{
    sec_counter=0;
    ADCON0 = 0x01;
    ADCON1 = 0x0E;
    ADCON2 = 0xFF;
    T0CON = 0x80;
    INTCON = 0xE0;
    T1CON = 0x11;
    PIR1bits.TMR1IF = 0;
    PIE1bits.TMR1IE = 1;
    OSCCON = 0x70;
    TRISD = 0;
    TRISE = 0;
    LATE = 0;
    LATD = 0;
    BTN_T = 1;
    LEDR_T = 0;
    LEDY_T = 0;
    LEDG_T = 0;
    disp_array[0] = 0;
    disp_array[1] = 1;
    disp_array[2] = 2;
    temp_array_pointer = 0;
    FET = 0;
    FET_T = 0;
    state  = 1;
    state_count = 5;
    minutes_set = 1;
    beeper = 0;
    err_counter = 0;
    BEEPER_T = 0;
    BEEPER = 0;
    temper_val=0;
    while (1)
    {
        temper = temp_read();
        if ((temper>2)&(temper<200))
        {
            Delay10KTCYx(10);
            err_counter = 0;
            temp_array[temp_array_pointer] = temper;
            temp_array_pointer++;
            if (temp_array_pointer==TEMP_ARRAY_SIZE) temp_array_pointer = 0;
            temper = calc_avg(temp_array,TEMP_ARRAY_SIZE);
            if (temper<temp_set)
            {
                LEDR = 1;
                FET = 1;
            }
            else
            {
                FET = 0;
                LEDR = 0;
            }
            if (state==0)
            {
                LEDG = 1;
                LEDY = 0;
                disp_array[0] = temper/100;
                disp_array[1] = (temper - (disp_array[0]*100))/10;
                disp_array[2] = temper - (disp_array[0]*100) - (disp_array[1]*10);
                state_count = 0;
                if (BTN==0)
                {
                    state = 2;
                    if (temper_val<(TEMPER_VAL_MAX-1))
                        temper_val++;
                    else
                        temper_val=0;
                }
            }
            temp_set = temperatures[temper_val];
            if (state==1)
            {
                LEDG = 0;
                LEDY = 1;
                if (state_count>0)
                    state_count--;
                else
                    state = 0;
                disp_array[0] = temp_set/100;
                disp_array[1] = (temp_set - (disp_array[0]*100))/10;
                disp_array[2] = temp_set - (disp_array[0]*100) - (disp_array[1]*10);
            }
            if (state==2)
            {
                LEDG = 0;
                LEDY = 0;
                disp_array[0] = temp_set/100;
                disp_array[1] = (temp_set - (disp_array[0]*100))/10;
                disp_array[2] = temp_set - (disp_array[0]*100) - (disp_array[1]*10);
                state_count = 5;
                if (BTN==1)
                    state = 1;
            }
        }
        else
        {
        }


    }

}
void Frameset::normalize_stat(struct abbrev_stat *stat, __u64 count)
{
    stat->sum = (__u64)calc_avg(stat->sum, count);
    stat->sos = (__u64)calc_avg(stat->sos, count);
}
Ejemplo n.º 8
0
void do_klist(CHAR_DATA * ch, char *argument)
{
	KINGDOM_DATA *kingdom;
	char buf[MAX_STRING_LENGTH];
	long i = 0, iw = 0;
	long highest = 0;

	if(is_number(argument))
	{
		buf[0] = '\0';

		if((kingdom = get_kingdom(atoi(argument))) == &kingdom_default)
		{
			send_to_char("There is no kingdom with that ID.\n\r", ch);
			return;
		}
		kingdom = get_kingdom(atoi(argument));

		sprintf(buf + strlen(buf), " Leader: %-25s     Name: %s\n\r", kingdom->leader, kingdom->name);
		sprintf(buf + strlen(buf), "    PKS: %-25li      PDS: %li\n\r", kingdom->pks, kingdom->pds);
		sprintf(buf + strlen(buf), "    K/D: %-25.2f\n\r", calc_kd(kingdom));
		sprintf(buf + strlen(buf), " Points: %-25li    Total: %li\n\r", kingdom->points, kingdom->realpoints);
		sprintf(buf + strlen(buf), " Rating: %-25.2f      AVG: %.2f\n\r", calc_rating(kingdom), calc_avg(kingdom));
		sprintf(buf + strlen(buf), "Members:\n\r%s\n\r", kingdom->members);
		sprintf(buf + strlen(buf), "Trustees:\n\r%s\n\r", kingdom->trustees);
		sprintf(buf + strlen(buf), "Treaties:\n\r");
		for(i = 0; i < kingdom->treaties[i]; i++)
		{
			sprintf(buf + strlen(buf), "%-25s     %s",
				get_kingdom(kingdom->treaties[i]) !=
				0 ? get_kingdom(kingdom->treaties[i])->name : "Null", (i + 1) % 2 == 0 ? "\n\r" : "");
		}
		if((i + 1) % 2 == 0)
			sprintf(buf + strlen(buf), "\n\r");

		sprintf(buf + strlen(buf), "Wars:\n\r");
		for(i = 0; i < kingdom->wars[i]; i++)
		{
			sprintf(buf + strlen(buf), "%-25s     %s",
				get_kingdom(kingdom->wars[i]) != 0 ? get_kingdom(kingdom->wars[i])->name : "Null",
				(i + 1) % 2 == 0 ? "\n\r" : "");
		}
		if((i + 1) % 2 == 0)
			sprintf(buf + strlen(buf), "\n\r");

		sprintf(buf + strlen(buf), "\n\r\n\r");
		send_to_char(buf, ch);
		return;
	}

	buf[0] = '\0';

	if(argument[0] != '\0')
	{
		if(!str_prefix(argument, "wars"))
		{
			sprintf(buf, "{RWARS{N:\n\r");
			for(kingdom = kingdom_list; kingdom; kingdom = kingdom->next)
			{
				for(iw = 0; iw < kingdom->wars[iw]; iw++)
					sprintf(buf + strlen(buf), "%s is at {RWAR{N with %s.\n\r",
						kingdom->name, get_kingdom(kingdom->wars[iw])->name);
			}
			sprintf(buf + strlen(buf), "\n\r");
			send_to_char(buf, ch);
			return;
		}

		if(!str_prefix(argument, "treaties"))
		{
			long *kingdoms;
			long x = 0, curr = 0;
			bool already = FALSE;
			bool logged = FALSE;

			kingdoms = malloc(sizeof(long) * num_kingdoms());
			memset(kingdoms, 0, sizeof(long) * num_kingdoms());

			sprintf(buf, "{GTREATIES{N, in no particular order:\n\r");

			for(kingdom = kingdom_list; kingdom; kingdom = kingdom->next, logged = FALSE)
			{
				for(iw = 0; iw < kingdom->treaties[i]; iw++)
				{
					for(x = 0; x < num_kingdoms(); x++)
					{
						if(kingdoms[x] == kingdom->treaties[iw])
						{
							already = TRUE;
							break;
						}
					}
					if(already)
					{
						already = FALSE;
						continue;
					}
					if(!logged)
					{
						kingdoms[curr] = kingdom->id;
						curr++;
						logged = TRUE;
					}

					sprintf(buf + strlen(buf), "%s and %s have a treaty together.\n\r",
						kingdom->name, get_kingdom(kingdom->treaties[iw])->name);
				}
			}
			free(kingdoms);
			sprintf(buf + strlen(buf), "\n\r");
			send_to_char(buf, ch);
			return;
		}

	}

	sprintf(buf, "[ID] %-10s [Pks] [Pds] [Ast] [K/D] [Points] [AVG] [Rating] [Name]\n\r", "[Leader]");

	for(kingdom = kingdom_list; kingdom; kingdom = kingdom->next)
	{
		if( kingdom->id > highest )
			highest = kingdom->id;
	}
	for(i = 1, iw=0; i <= highest; i++)
	{
		if( (kingdom = get_kingdom(i)) == &kingdom_default )
			continue;
		iw++;

		sprintf(buf + strlen(buf), "%s%-4li %-10s %-5li %-5li %-5li %-5.2f %-8li %-5li %-8li %s%s\n\r",
			i % 2 == 0 ? "{Y" : "{R",
			kingdom->id,
			kingdom->leader,
			kingdom->pks,
			kingdom->pds,
			kingdom->assists,
			calc_kd(kingdom),
			kingdom->points,
			(long) calc_avg(kingdom), (long) calc_rating(kingdom), kingdom->name, iw % 2 == 0 ? "{Y" : "{R");

	}

	sprintf(buf + strlen(buf), "{N\n\r");
	send_to_char(buf, ch);
	send_to_char("To get more information about a kingdom, type: klist <id#>\n\r", ch);
}
Ejemplo n.º 9
-1
static void
client (int fd, const char* prio, unsigned int text_size, struct test_st *test)
{
  int ret;
  char buffer[MAX_BUF + 1];
  char text[text_size];
  gnutls_certificate_credentials_t x509_cred;
  gnutls_session_t session;
  struct timespec start, stop;
  static unsigned long taken = 0;
  static unsigned long measurement;
  const char* err;

  global_init ();
  
  setpriority(PRIO_PROCESS, getpid(), -15);
  
  memset(text, 0, text_size);

#ifdef DEBUG
  gnutls_global_set_log_function (client_log_func);
  gnutls_global_set_log_level (6);
#endif

  gnutls_certificate_allocate_credentials (&x509_cred);

#ifdef REHANDSHAKE
restart:
#endif

  /* Initialize TLS session
   */
  gnutls_init (&session, GNUTLS_CLIENT);
  gnutls_session_set_ptr(session, test);
  cli_session = session;

  /* Use default priorities */
  if ((ret=gnutls_priority_set_direct (session, prio, &err)) < 0) {
    fprintf(stderr, "Error in priority string %s: %s\n", gnutls_strerror(ret), err);
    exit(1);
  }

  /* put the anonymous credentials to the current session
   */
  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, x509_cred);
  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) fd);

  /* Perform the TLS handshake
   */
  do 
    {
      ret = gnutls_handshake (session);
    }
  while (ret < 0 && gnutls_error_is_fatal(ret) == 0);

  if (ret < 0)
    {
      fprintf (stderr, "client: Handshake failed\n");
      gnutls_perror (ret);
      exit(1);
    }
   
  ret = gnutls_protocol_get_version(session);
  if (ret < GNUTLS_TLS1_1)
    {
      fprintf (stderr, "client: Handshake didn't negotiate TLS 1.1 (or later)\n");
      exit(1);
    }

  gnutls_transport_set_push_function (session, push_crippled);

#ifndef REHANDSHAKE
restart:
#endif
  do {
    ret = gnutls_record_send (session, text, sizeof(text));
  } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
  /* measure peer's processing time */
  clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start);

#define TLS_RECV
#ifdef TLS_RECV
  do {
    ret = gnutls_record_recv(session, buffer, sizeof(buffer));
  } while(ret < 0 && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
#else
  do {
    ret = recv(fd, buffer, sizeof(buffer), 0);
  } while(ret == -1 && errno == EAGAIN);
#endif

  if (taken < MAX_MEASUREMENTS(test->npoints) && ret > 0)
    {
      clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &stop);
      taken++;
      measurement = timespec_sub_ns(&stop, &start);
      prev_point_ptr->measurements[prev_point_ptr->midx] = measurement;

/*fprintf(stderr, "(%u,%u): %lu\n", (unsigned) prev_point_ptr->byte1,
 (unsigned) prev_point_ptr->byte2, measurements[taken]);*/
      memcpy(&measurement, buffer, sizeof(measurement));
      prev_point_ptr->smeasurements[prev_point_ptr->midx] = measurement;
      prev_point_ptr->midx++;

      /* read server's measurement */
      
#ifdef REHANDSHAKE
      gnutls_deinit(session);
#endif      
      goto restart;
    }
#ifndef TLS_RECV
  else if (ret < 0)
    {
      fprintf(stderr, "Error in recv()\n");
      exit(1);
    }
#endif

  gnutls_transport_set_push_function (session, push);
    
  gnutls_bye (session, GNUTLS_SHUT_WR);
  
  {
    double avg2, med, savg, smed;
    unsigned i;
    FILE* fp = NULL;
    
    if (test->file)
      fp = fopen(test->file, "w");
    
    if (fp) /* point, avg, median */
     fprintf(fp, "Delta,TimeAvg,TimeMedian,ServerAvg,ServerMedian\n");

    for (i=0;i<test->npoints;i++)
      {
        qsort( test->points[i].measurements, test->points[i].midx, 
               sizeof(test->points[i].measurements[0]), compar);

        qsort( test->points[i].smeasurements, test->points[i].midx, 
               sizeof(test->points[i].smeasurements[0]), compar);
     
        avg2 = calc_avg( test->points[i].measurements, test->points[i].midx);
        /*var = calc_var( test->points[i].measurements, test->points[i].midx, avg2);*/
        med = calc_median( test->points[i].measurements, test->points[i].midx);

        savg = calc_avg( test->points[i].smeasurements, test->points[i].midx);
        /*var = calc_var( test->points[i].measurements, test->points[i].midx, avg2);*/
        smed = calc_median( test->points[i].smeasurements, test->points[i].midx);
        /*min = calc_min( test->points[i].measurements, test->points[i].midx);*/
        
        if (fp) /* point, avg, median */
          fprintf(fp, "%u,%.2lf,%.2lf,%.2lf,%.2lf\n", (unsigned)test->points[i].byte1, 
                  avg2,med,savg, smed);
        
        /*printf("(%u) Avg: %.3f nanosec, Median: %.3f, Variance: %.3f\n", (unsigned)test->points[i].byte1, 
               avg2, med, var);*/
      }

    if (fp)
      fclose(fp);
  }

  if (test->desc)
    fprintf(stderr, "Description: %s\n", test->desc);

  close (fd);

  gnutls_deinit (session);

  gnutls_certificate_free_credentials (x509_cred);

  gnutls_global_deinit ();
}