#include "tincctl.h"
#include "top.h"
+#ifndef MSG_NOSIGNAL
+#define MSG_NOSIGNAL 0
+#endif
+
static char **orig_argv;
static int orig_argc;
Generate a public/private ECDSA keypair, and ask for a file to store
them in.
*/
-static bool ecdsa_keygen(bool ask) {
+bool ecdsa_keygen(bool ask) {
ecdsa_t *key;
FILE *f;
char *pubname, *privname;
Generate a public/private RSA keypair, and ask for a file to store
them in.
*/
-static bool rsa_keygen(int bits, bool ask) {
+bool rsa_keygen(int bits, bool ask) {
rsa_t *key;
FILE *f;
char *pubname, *privname;
blen++;
while(blen) {
- int result = send(fd, p, blen, 0);
+ int result = send(fd, p, blen, MSG_NOSIGNAL);
if(result == -1 && errno == EINTR)
continue;
else if(result <= 0)
freeaddrinfo(res);
#endif
+#ifdef SO_NOSIGPIPE
+ static const int one = 1;
+ setsockopt(c, SOL_SOCKET, SO_NOSIGPIPE, (void *)&one, sizeof one);
+#endif
+
char data[4096];
int version;