Index: cadaver-0.23.3/src/cadaver.c =================================================================== --- cadaver-0.23.3.orig/src/cadaver.c 2008-10-29 12:35:33.000000000 +0300 +++ cadaver-0.23.3/src/cadaver.c 2014-12-11 15:48:55.970459932 +0300 @@ -99,6 +99,8 @@ int tolerant; /* tolerate DAV-enabledness failure */ +int forcecert; + /* Current output state */ static enum out_state { out_none, /* not doing anything */ @@ -129,6 +131,7 @@ " Port defaults to 80, path defaults to '/'\n" "Options:\n" " -t, --tolerant Allow cd/open into non-WebDAV enabled collection.\n" +" -F, --forcecert Do not stop on certificate errors (DANGEROUS!).\n" " -r, --rcfile=FILE Read script from FILE instead of ~/.cadaverrc.\n" " -p, --proxy=PROXY[:PORT] Use proxy host PROXY and optional proxy port PORT.\n" " -V, --version Display version information.\n" @@ -209,6 +212,11 @@ ne_ssl_cert_validity(c, from, to); printf(_("Certificate is valid from %s to %s\n"), from, to); + if (forcecert) { + printf(_("Forced certificate acceptance by commandline key.\n")); + return 0; + } + if (isatty(STDIN_FILENO)) { printf(_("Do you wish to accept the certificate? (y/n) ")); return !yesno(); @@ -440,16 +448,18 @@ { "help", no_argument, NULL, 'h' }, { "proxy", required_argument, NULL, 'p' }, { "tolerant", no_argument, NULL, 't' }, + { "forcecert", no_argument, NULL, 'F' }, { "rcfile", required_argument, NULL, 'r' }, { 0, 0, 0, 0 } }; int optc; - while ((optc = getopt_long(argc, argv, "ehtp:r:V", opts, NULL)) != -1) { + while ((optc = getopt_long(argc, argv, "ehtFp:r:V", opts, NULL)) != -1) { switch (optc) { case 'h': usage(); exit(-1); case 'V': execute_about(); exit(-1); case 'p': set_proxy(optarg); break; case 't': tolerant = 1; break; + case 'F': forcecert = 1; break; case 'r': rcfile = strdup(optarg); break; case '?': default: