/* global stuff here */
int resume;
-const char *hostname = NULL;
+char *hostname = NULL;
int port;
int record_max_size;
int fingerprint;
i = 0;
printf("GnuTLS debug client %s\n", gnutls_check_version(NULL));
+
+ canonicalize_host(hostname, portname, sizeof(portname));
printf("Checking %s:%s\n", hostname, portname);
do {
gnutls_init(&state, GNUTLS_CLIENT | GNUTLS_NO_EXTENSIONS);
- gnutls_transport_set_ptr(state, (gnutls_transport_ptr_t)
- gl_fd_to_handle(hd.fd));
+ gnutls_transport_set_int(state, hd.fd);
set_read_funcs(state);
if (hostname && is_ip(hostname) == 0)
gnutls_server_name_set(state, GNUTLS_NAME_DNS,
static void cmd_parser(int argc, char **argv)
{
- const char *rest = NULL;
+ char *rest = NULL;
+ static char lh[] = "localhost";
int optct = optionProcess(&gnutls_cli_debugOptions, argc, argv);
argc -= optct;
argv += optct;
}
if (rest == NULL)
- hostname = "localhost";
+ hostname = lh;
else
hostname = rest;
/* global stuff here */
int resume, starttls, insecure, ranges, rehandshake, udp, mtu,
inline_commands;
-const char *hostname = NULL;
+char *hostname = NULL;
char service[32]="";
int record_max_size;
int fingerprint;
printf("- Disconnecting\n");
socket_bye(hd);
+ canonicalize_host(hostname, service, sizeof(service));
+
printf
("\n\n- Connecting again- trying to resume previous session\n");
socket_open(hd, hostname, service, udp, CONNECT_MSG);
init_global_tls_stuff();
+ canonicalize_host(hostname, service, sizeof(service));
+
socket_open(&hd, hostname, service, udp, CONNECT_MSG);
hd.verbose = verbose;
static void cmd_parser(int argc, char **argv)
{
- const char *rest = NULL;
+ char *rest = NULL;
int optct = optionProcess(&gnutls_cliOptions, argc, argv);
argc -= optct;
socket->secure = 0;
}
+/* Handle host:port format.
+ */
+void canonicalize_host(char *hostname, char *service, unsigned service_size)
+{
+ char *p;
+ unsigned char buf[sizeof(struct in6_addr)];
+
+ p = strchr(hostname, ':');
+ if (p == NULL)
+ return;
+
+ if (inet_pton(AF_INET6, hostname, buf) == 1)
+ return;
+
+ *p = 0;
+ snprintf(service, service_size, "%s", p+1);
+}
+
void
socket_open(socket_st * hd, const char *hostname, const char *service,
int udp, const char *msg)
int starttls_proto_to_port(const char *app_proto);
const char *starttls_proto_to_service(const char *app_proto);
+void canonicalize_host(char *hostname, char *service, unsigned service_size);
+
#define CONNECT_MSG "Connecting to"