if (ret < 0) {
fprintf(stderr, "*** Handshake has failed\n");
gnutls_perror(ret);
- gnutls_deinit(&state);
+ gnutls_deinit(state);
return 1;
} else {
printf("- Handshake was completed\n");
gnutls_close(sd, state);
shutdown( sd, SHUT_WR);
close(sd);
- gnutls_deinit( &state);
+ gnutls_deinit( state);
printf("\n\n- Connecting again- trying to resume previous session\n");
sd = socket(AF_INET, SOCK_STREAM, 0);
if (ret < 0) {
fprintf(stderr, "*** Handshake failed\n");
gnutls_perror(ret);
- gnutls_deinit(&state);
+ gnutls_deinit(state);
return 1;
} else {
printf("- Handshake was completed\n");
break;
}
} else {
- printf("- Received[%d]: ", ret);
- for (ii=0;ii<ret;ii++) {
- fputc(buffer[ii], stdout);
+ if (ret==GNUTLS_E_WARNING_ALERT_RECEIVED || ret==GNUTLS_E_FATAL_ALERT_RECEIVED)
+ printf("* Received alert [%d]\n", gnutls_get_last_alert(state));
+ else {
+ if (ret > 0) {
+ printf("- Received[%d]: ", ret);
+ for (ii=0;ii<ret;ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
}
- fputs("\n", stdout);
}
if (user_term!=0) break;
}
shutdown( sd, SHUT_RDWR); /* no more receptions */
close(sd);
- gnutls_deinit(&state);
+ gnutls_deinit( state);
return 0;
}
int main()
{
- int err, listen_sd;
+ int err, listen_sd, i;
int sd, ret;
struct sockaddr_in sa_serv;
struct sockaddr_in sa_cli;
ret = gnutls_handshake(sd, state);
if (ret < 0) {
close(sd);
- gnutls_deinit(&state);
+ gnutls_deinit( state);
fprintf(stderr, "*** Handshake has failed (%d)\n", ret);
gnutls_perror(ret);
continue;
sizeof("hello client"));
if (ret < 0) {
close(sd);
- gnutls_deinit(&state);
+ gnutls_deinit( state);
gnutls_perror(ret);
continue;
}
*/
+ i = 0;
for (;;) {
bzero( buffer, MAX_BUF+1);
ret = gnutls_read(sd, state, buffer, MAX_BUF);
}
}
- gnutls_write(sd, state, buffer, strlen(buffer));
+ if (ret==GNUTLS_E_WARNING_ALERT_RECEIVED || ret==GNUTLS_E_FATAL_ALERT_RECEIVED) {
+ ret = gnutls_get_last_alert(state);
+ if (ret==GNUTLS_NO_RENEGOTIATION)
+ printf("* Received NO_RENEGOTIATION alert. Client Does not support renegotiation.\n");
+ } else
+ if (ret > 0)
+ gnutls_write(sd, state, buffer, strlen(buffer));
+
+ i++;
+ if (i==10) gnutls_send_hello_request(sd ,state);
}
fprintf(stderr, "\n");
gnutls_close(sd, state);
close(sd);
- gnutls_deinit(&state);
+ gnutls_deinit( state);
}
close(listen_sd);
return 0;