send-email: be explicit with SSL certificate verification

When initiating an SSL connection without explicitly specifying the
SSL certificate verification mode, Net::SMTP::SSL defaults to no
verification, but recent versions of the module gives a warning
against this use of the default.

Enable certificate verification by default, using /etc/ssl/certs as
the default path for certificates of certificate authorities.  This
path can be overriden by the --smtp-ssl-cert-path command line
option and the sendemail.smtpSSLCertPath configuration variable.

Passing an empty string as the path for CA certificates path disables
the SSL certificate verification explicitly, which does not trigger
the warning from recent versions of Net::SMTP::SSL.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Helped-by: Brian M. Carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 files changed
tree: 8cd36b1fccfd9414cb6d71de1793016d4c77deb9
  1. block-sha1/
  2. builtin/
  3. compat/
  4. contrib/
  5. Documentation/
  6. git-gui/
  7. git_remote_helpers/
  8. gitk-git/
  9. gitweb/
  10. mergetools/
  11. perl/
  12. po/
  13. ppc/
  14. t/
  15. templates/
  16. vcs-svn/
  17. xdiff/
  18. .gitattributes
  19. .gitignore
  20. .mailmap
  21. abspath.c
  22. aclocal.m4
  23. advice.c
  24. advice.h
  25. alias.c
  26. alloc.c
  27. archive-tar.c
  28. archive-zip.c
  29. archive.c
  30. archive.h
  31. argv-array.c
  32. argv-array.h
  33. attr.c
  34. attr.h
  35. base85.c
  36. bisect.c
  37. bisect.h
  38. blob.c
  39. blob.h
  40. branch.c
  41. branch.h
  42. builtin.h
  43. bulk-checkin.c
  44. bulk-checkin.h
  45. bundle.c
  46. bundle.h
  47. cache-tree.c
  48. cache-tree.h
  49. cache.h
  50. check-builtins.sh
  51. check-racy.c
  52. check_bindir
  53. color.c
  54. color.h
  55. column.c
  56. column.h
  57. combine-diff.c
  58. command-list.txt
  59. commit.c
  60. commit.h
  61. config.c
  62. config.mak.in
  63. config.mak.uname
  64. configure.ac
  65. connect.c
  66. connected.c
  67. connected.h
  68. convert.c
  69. convert.h
  70. copy.c
  71. COPYING
  72. credential-cache--daemon.c
  73. credential-cache.c
  74. credential-store.c
  75. credential.c
  76. credential.h
  77. csum-file.c
  78. csum-file.h
  79. ctype.c
  80. daemon.c
  81. date.c
  82. decorate.c
  83. decorate.h
  84. delta.h
  85. diff-delta.c
  86. diff-lib.c
  87. diff-no-index.c
  88. diff.c
  89. diff.h
  90. diffcore-break.c
  91. diffcore-delta.c
  92. diffcore-order.c
  93. diffcore-pickaxe.c
  94. diffcore-rename.c
  95. diffcore.h
  96. dir.c
  97. dir.h
  98. editor.c
  99. entry.c
  100. environment.c
  101. exec_cmd.c
  102. exec_cmd.h
  103. fast-import.c
  104. fetch-pack.c
  105. fetch-pack.h
  106. fmt-merge-msg.h
  107. fsck.c
  108. fsck.h
  109. generate-cmdlist.sh
  110. gettext.c
  111. gettext.h
  112. git-add--interactive.perl
  113. git-am.sh
  114. git-archimport.perl
  115. git-bisect.sh
  116. git-compat-util.h
  117. git-cvsexportcommit.perl
  118. git-cvsimport.perl
  119. git-cvsserver.perl
  120. git-difftool--helper.sh
  121. git-difftool.perl
  122. git-filter-branch.sh
  123. git-instaweb.sh
  124. git-lost-found.sh
  125. git-merge-octopus.sh
  126. git-merge-one-file.sh
  127. git-merge-resolve.sh
  128. git-mergetool--lib.sh
  129. git-mergetool.sh
  130. git-p4.py
  131. git-parse-remote.sh
  132. git-pull.sh
  133. git-quiltimport.sh
  134. git-rebase--am.sh
  135. git-rebase--interactive.sh
  136. git-rebase--merge.sh
  137. git-rebase.sh
  138. git-relink.perl
  139. git-remote-testgit
  140. git-remote-testpy.py
  141. git-repack.sh
  142. git-request-pull.sh
  143. git-send-email.perl
  144. git-sh-i18n.sh
  145. git-sh-setup.sh
  146. git-stash.sh
  147. git-submodule.sh
  148. git-svn.perl
  149. GIT-VERSION-GEN
  150. git-web--browse.sh
  151. git.c
  152. git.spec.in
  153. gpg-interface.c
  154. gpg-interface.h
  155. graph.c
  156. graph.h
  157. grep.c
  158. grep.h
  159. hash.c
  160. hash.h
  161. help.c
  162. help.h
  163. hex.c
  164. http-backend.c
  165. http-fetch.c
  166. http-push.c
  167. http-walker.c
  168. http.c
  169. http.h
  170. ident.c
  171. imap-send.c
  172. INSTALL
  173. kwset.c
  174. kwset.h
  175. levenshtein.c
  176. levenshtein.h
  177. LGPL-2.1
  178. list-objects.c
  179. list-objects.h
  180. ll-merge.c
  181. ll-merge.h
  182. lockfile.c
  183. log-tree.c
  184. log-tree.h
  185. mailmap.c
  186. mailmap.h
  187. Makefile
  188. match-trees.c
  189. merge-blobs.c
  190. merge-blobs.h
  191. merge-recursive.c
  192. merge-recursive.h
  193. merge.c
  194. mergesort.c
  195. mergesort.h
  196. name-hash.c
  197. notes-cache.c
  198. notes-cache.h
  199. notes-merge.c
  200. notes-merge.h
  201. notes.c
  202. notes.h
  203. object.c
  204. object.h
  205. pack-check.c
  206. pack-refs.c
  207. pack-refs.h
  208. pack-revindex.c
  209. pack-revindex.h
  210. pack-write.c
  211. pack.h
  212. pager.c
  213. parse-options-cb.c
  214. parse-options.c
  215. parse-options.h
  216. patch-delta.c
  217. patch-ids.c
  218. patch-ids.h
  219. path.c
  220. pathspec.c
  221. pathspec.h
  222. pkt-line.c
  223. pkt-line.h
  224. preload-index.c
  225. pretty.c
  226. progress.c
  227. progress.h
  228. prompt.c
  229. prompt.h
  230. quote.c
  231. quote.h
  232. reachable.c
  233. reachable.h
  234. read-cache.c
  235. README
  236. reflog-walk.c
  237. reflog-walk.h
  238. refs.c
  239. refs.h
  240. remote-curl.c
  241. remote-testsvn.c
  242. remote.c
  243. remote.h
  244. replace_object.c
  245. rerere.c
  246. rerere.h
  247. resolve-undo.c
  248. resolve-undo.h
  249. revision.c
  250. revision.h
  251. run-command.c
  252. run-command.h
  253. send-pack.c
  254. send-pack.h
  255. sequencer.c
  256. sequencer.h
  257. server-info.c
  258. setup.c
  259. sh-i18n--envsubst.c
  260. sha1-array.c
  261. sha1-array.h
  262. sha1-lookup.c
  263. sha1-lookup.h
  264. sha1_file.c
  265. sha1_name.c
  266. shallow.c
  267. shell.c
  268. shortlog.h
  269. show-index.c
  270. sideband.c
  271. sideband.h
  272. sigchain.c
  273. sigchain.h
  274. strbuf.c
  275. strbuf.h
  276. streaming.c
  277. streaming.h
  278. string-list.c
  279. string-list.h
  280. submodule.c
  281. submodule.h
  282. symlinks.c
  283. tag.c
  284. tag.h
  285. tar.h
  286. test-chmtime.c
  287. test-ctype.c
  288. test-date.c
  289. test-delta.c
  290. test-dump-cache-tree.c
  291. test-genrandom.c
  292. test-index-version.c
  293. test-line-buffer.c
  294. test-match-trees.c
  295. test-mergesort.c
  296. test-mktemp.c
  297. test-parse-options.c
  298. test-path-utils.c
  299. test-regex.c
  300. test-revision-walking.c
  301. test-run-command.c
  302. test-scrap-cache-tree.c
  303. test-sha1.c
  304. test-sha1.sh
  305. test-sigchain.c
  306. test-string-list.c
  307. test-subprocess.c
  308. test-svn-fe.c
  309. test-wildmatch.c
  310. thread-utils.c
  311. thread-utils.h
  312. trace.c
  313. transport-helper.c
  314. transport.c
  315. transport.h
  316. tree-diff.c
  317. tree-walk.c
  318. tree-walk.h
  319. tree.c
  320. tree.h
  321. unimplemented.sh
  322. unix-socket.c
  323. unix-socket.h
  324. unpack-trees.c
  325. unpack-trees.h
  326. upload-pack.c
  327. url.c
  328. url.h
  329. usage.c
  330. userdiff.c
  331. userdiff.h
  332. utf8.c
  333. utf8.h
  334. varint.c
  335. varint.h
  336. version.c
  337. version.h
  338. walker.c
  339. walker.h
  340. wildmatch.c
  341. wildmatch.h
  342. wrap-for-bin.sh
  343. wrapper.c
  344. write_or_die.c
  345. ws.c
  346. wt-status.c
  347. wt-status.h
  348. xdiff-interface.c
  349. xdiff-interface.h
  350. zlib.c