return 0;
}
-int esp_send_probes(struct openconnect_info *vpninfo)
-{
- struct pkt *pkt;
- int pktlen;
-
- if (vpninfo->dtls_fd == -1) {
- int fd = udp_connect(vpninfo);
- if (fd < 0)
- return fd;
-
- /* We are not connected until we get an ESP packet back */
- vpninfo->dtls_state = DTLS_SLEEPING;
- vpninfo->dtls_fd = fd;
- monitor_fd_new(vpninfo, dtls);
- monitor_read_fd(vpninfo, dtls);
- monitor_except_fd(vpninfo, dtls);
- }
-
- pkt = malloc(sizeof(*pkt) + 1 + vpninfo->pkt_trailer);
- if (!pkt)
- return -ENOMEM;
-
- pkt->len = 1;
- pkt->data[0] = 0;
- pktlen = encrypt_esp_packet(vpninfo, pkt);
- if (pktlen >= 0)
- send(vpninfo->dtls_fd, (void *)&pkt->esp, pktlen, 0);
-
- pkt->len = 1;
- pkt->data[0] = 0;
- pktlen = encrypt_esp_packet(vpninfo, pkt);
- if (pktlen >= 0)
- send(vpninfo->dtls_fd, (void *)&pkt->esp, pktlen, 0);
-
- free(pkt);
-
- vpninfo->dtls_times.last_tx = time(&vpninfo->new_dtls_started);
-
- return 0;
-};
-
-int esp_catch_probe(struct openconnect_info *vpninfo, struct pkt *pkt)
-{
- return (pkt->len == 1 && pkt->data[0] == 0);
-}
-
int esp_setup(struct openconnect_info *vpninfo, int dtls_attempt_period)
{
if (vpninfo->dtls_state == DTLS_DISABLED ||
.udp_mainloop = esp_mainloop,
.udp_close = esp_close,
.udp_shutdown = esp_shutdown,
- .udp_send_probes = esp_send_probes,
- .udp_catch_probe = esp_catch_probe,
+ .udp_send_probes = oncp_esp_send_probes,
+ .udp_catch_probe = oncp_esp_catch_probe,
#endif
},
{ /* NULL */ }
free(res_buf);
return ret;
}
+
+#ifdef HAVE_ESP
+int oncp_esp_send_probes(struct openconnect_info *vpninfo)
+{
+ struct pkt *pkt;
+ int pktlen;
+
+ if (vpninfo->dtls_fd == -1) {
+ int fd = udp_connect(vpninfo);
+ if (fd < 0)
+ return fd;
+
+ /* We are not connected until we get an ESP packet back */
+ vpninfo->dtls_state = DTLS_SLEEPING;
+ vpninfo->dtls_fd = fd;
+ monitor_fd_new(vpninfo, dtls);
+ monitor_read_fd(vpninfo, dtls);
+ monitor_except_fd(vpninfo, dtls);
+ }
+
+ pkt = malloc(sizeof(*pkt) + 1 + vpninfo->pkt_trailer);
+ if (!pkt)
+ return -ENOMEM;
+
+ pkt->len = 1;
+ pkt->data[0] = 0;
+ pktlen = encrypt_esp_packet(vpninfo, pkt);
+ if (pktlen >= 0)
+ send(vpninfo->dtls_fd, (void *)&pkt->esp, pktlen, 0);
+
+ pkt->len = 1;
+ pkt->data[0] = 0;
+ pktlen = encrypt_esp_packet(vpninfo, pkt);
+ if (pktlen >= 0)
+ send(vpninfo->dtls_fd, (void *)&pkt->esp, pktlen, 0);
+
+ free(pkt);
+
+ vpninfo->dtls_times.last_tx = time(&vpninfo->new_dtls_started);
+
+ return 0;
+};
+
+int oncp_esp_catch_probe(struct openconnect_info *vpninfo, struct pkt *pkt)
+{
+ return (pkt->len == 1 && pkt->data[0] == 0);
+}
+#endif /* HAVE_ESP */
int oncp_connect(struct openconnect_info *vpninfo);
int oncp_mainloop(struct openconnect_info *vpninfo, int *timeout);
int oncp_bye(struct openconnect_info *vpninfo, const char *reason);
+int oncp_esp_send_probes(struct openconnect_info *vpninfo);
+int oncp_esp_catch_probe(struct openconnect_info *vpninfo, struct pkt *pkt);
/* lzs.c */
int lzs_decompress(unsigned char *dst, int dstlen, const unsigned char *src, int srclen);
void esp_close(struct openconnect_info *vpninfo);
void esp_shutdown(struct openconnect_info *vpninfo);
int print_esp_keys(struct openconnect_info *vpninfo, const char *name, struct esp *esp);
-int esp_send_probes(struct openconnect_info *vpninfo);
-int esp_catch_probe(struct openconnect_info *vpninfo, struct pkt *pkt);
/* {gnutls,openssl}-esp.c */
int setup_esp_keys(struct openconnect_info *vpninfo, int new_keys);