view contrib/sample.hgrc @ 18885:cf1304fbc184

smtp: add the class to verify the certificate of the SMTP server for STARTTLS Original "smtplib.SMTP" has no route to pass "ca_certs" and "cert_reqs" arguments to underlying SSL socket creation. This causes that "getpeercert()" on SSL socket returns empty dict, so the peer certificate for STARTTLS can't be verified. This patch introduces the "STARTTLS" class derived from "smtplib.SMTP" to pass "ca_certs" and "cert_reqs" arguments to underlying SSL socket creation. Almost all code of "starttls()" in this class is imported from "smtplib.SMTP" of Python 2.7.3, but it differs from original code in points below: - "self.ehlo_or_helo_if_needed()" invocation is omitted, because: - "ehlo_or_helo_if_needed()" is available with Python 2.6 or later, and - "ehlo()" is explicitly invoked in "mercurial.mail._smtp()" - "if not _have_ssl:" check is omitted, because: - "_have_ssl" is available with Python 2.6 or later, and - same checking is done in "mercurial.sslutil.ssl_wrap_socket()" - "ssl.wrap_socket()" is replaced by "sslutil.ssl_wrap_socket()" for compatibility between Python versions - use "sock.recv()" also as "sock.read()", if "sock" doesn't have "read()" method with Python 2.5.x or earlier, "sslutil.ssl_wrap_socket()" returns "httplib.FakeSocket"-ed object, and it doesn't have "read()" method, which is invoked via "smtplib.SSLFakeFile".
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Tue, 26 Mar 2013 02:27:23 +0900
parents 5f01fd602542
children 216d3d85372b
line wrap: on
line source

### --- User interface

[ui]

### show changed files and be a bit more verbose if True

# verbose = True

### username data to appear in comits
### it usually takes the form: Joe User <joe.user@host.com>

# username = Joe User <j.user@example.com>

### --- Extensions

[extensions]

### each extension has its own 'extension_name=path' line
### the default python library path is used when path is left blank
### the hgext dir is used when 'hgext.extension_name=' is written

### acl - Access control lists
### hg help acl

# hgext.acl =

### bisect - binary search changesets to detect bugs
### hg help bisect

# hgext.hbisect =

### bugzilla - update bugzilla bugs when changesets mention them
### hg help bugzilla

# hgext.bugzilla =

### extdiff - Use external diff application instead of builtin one

# hgext.extdiff =

### gpg - GPG checks and signing
### hg help gpg

# hgext.gpg =

### graphlog - ASCII graph log
### hg help glog

# hgext.graphlog =

### hgk - GUI repository browser
### hg help view

# hgext.hgk =

### mq - Mercurial patch queues
### hg help mq

# hgext.mq =

### notify - Template driven e-mail notifications
### hg help notify

# hgext.notify =

### patchbomb - send changesets as a series of patch emails
### hg help email

# hgext.patchbomb =

### churn - create a graph showing who changed the most lines
### hg help churn

# hgext.churn = /home/user/hg/hg/contrib/churn.py

### eol - automatic management of line endings

# hgext.eol =

### --- hgk additional configuration

[hgk]

### set executable path

# path = /home/user/hg/hg/contrib/hgk

### --- Hook to Mercurial actions - See hgrc man page for avaliable hooks

[hooks]

### Example notify hooks (load hgext.notify extension before use)

# incoming.notify = python:hgext.notify.hook
# changegroup.notify = python:hgext.notify.hook

### Email configuration for the notify and patchbomb extensions

[email]

### Your email address

# from = user@example.com

### Method to send email - smtp or /usr/sbin/sendmail or other program name

# method = smtp

### smtp server to send email to

[smtp]

# host = mail
# port = 25
# tls = false
# username = user
# password = blivet
# local_hostname = myhost

### --- Email notification hook for server

[notify]
### multiple sources can be specified as a whitespace or comma separated list

# sources = serve push pull bundle

### set this to False when you're ready for mail to start sending

# test = True

### path to config file with names of subscribers

# config = /path/to/subscription/file