Lines Matching defs:httpsdate
67 struct httpsdate *
71 int httpsdate_request(struct httpsdate *, struct timeval *, int);
83 struct httpsdate {
913 struct httpsdate *
917 struct httpsdate *httpsdate = NULL;
919 if ((httpsdate = calloc(1, sizeof(*httpsdate))) == NULL)
925 if ((httpsdate->tls_addr = strdup(addr)) == NULL ||
926 (httpsdate->tls_port = strdup(port)) == NULL ||
927 (httpsdate->tls_hostname = strdup(hostname)) == NULL ||
928 (httpsdate->tls_path = strdup(path)) == NULL)
931 if (asprintf(&httpsdate->tls_request,
933 httpsdate->tls_path, httpsdate->tls_hostname) == -1)
936 if ((httpsdate->tls_config = tls_config_new()) == NULL)
938 if (tls_config_set_ca_mem(httpsdate->tls_config, ca, ca_len) == -1)
948 tls_config_insecure_noverifytime(httpsdate->tls_config);
951 return (httpsdate);
954 httpsdate_free(httpsdate);
961 struct httpsdate *httpsdate = arg;
962 if (httpsdate == NULL)
964 if (httpsdate->tls_ctx)
965 tls_close(httpsdate->tls_ctx);
966 tls_free(httpsdate->tls_ctx);
967 tls_config_free(httpsdate->tls_config);
968 free(httpsdate->tls_addr);
969 free(httpsdate->tls_port);
970 free(httpsdate->tls_hostname);
971 free(httpsdate->tls_path);
972 free(httpsdate->tls_request);
973 free(httpsdate);
977 httpsdate_request(struct httpsdate *httpsdate, struct timeval *when, int synced)
986 if ((httpsdate->tls_ctx = tls_client()) == NULL)
989 if (tls_configure(httpsdate->tls_ctx, httpsdate->tls_config) == -1)
998 if (tls_connect_servername(httpsdate->tls_ctx, httpsdate->tls_addr,
999 httpsdate->tls_port, httpsdate->tls_hostname) == -1) {
1001 httpsdate->tls_addr, httpsdate->tls_hostname,
1002 tls_error(httpsdate->tls_ctx));
1006 buf = httpsdate->tls_request;
1007 len = strlen(httpsdate->tls_request);
1009 ret = tls_write(httpsdate->tls_ctx, buf, len);
1014 httpsdate->tls_addr, httpsdate->tls_hostname,
1015 tls_error(httpsdate->tls_ctx));
1022 while ((line = tls_readline(httpsdate->tls_ctx, &outlen,
1040 &httpsdate->tls_tm) == NULL) {
1051 if (httpsdate->tls_tm.tm_year == 0)
1063 notbefore = tls_peer_cert_notbefore(httpsdate->tls_ctx);
1064 notafter = tls_peer_cert_notafter(httpsdate->tls_ctx);
1065 if ((httptime = timegm(&httpsdate->tls_tm)) == -1)
1073 &httpsdate->tls_tm) == 0)
1076 "not before %s, now %s", httpsdate->tls_addr,
1077 httpsdate->tls_hostname, timebuf1, timebuf2);
1086 &httpsdate->tls_tm) == 0)
1089 "not after %s, now %s", httpsdate->tls_addr,
1090 httpsdate->tls_hostname, timebuf1, timebuf2);
1097 httpsdate_free(httpsdate);
1106 struct httpsdate *httpsdate;
1110 if ((httpsdate = httpsdate_init(addr, port, hostname, path,
1114 if (httpsdate_request(httpsdate, &when, synced) == -1)
1118 t = timegm(&httpsdate->tls_tm);
1128 return (httpsdate);