mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Issue #6598: Increased time precision and random number range in
email.utils.make_msgid() to strengthen the uniqueness of the message ID.
This commit is contained in:
		
							parent
							
								
									315e104d11
								
							
						
					
					
						commit
						ae760c0a2c
					
				
					 3 changed files with 31 additions and 6 deletions
				
			
		|  | @ -202,24 +202,23 @@ def format_datetime(dt, usegmt=False): | |||
| def make_msgid(idstring=None, domain=None): | ||||
|     """Returns a string suitable for RFC 2822 compliant Message-ID, e.g: | ||||
| 
 | ||||
|     <20020201195627.33539.96671@nightshade.la.mastaler.com> | ||||
|     <142480216486.20800.16526388040877946887@nightshade.la.mastaler.com> | ||||
| 
 | ||||
|     Optional idstring if given is a string used to strengthen the | ||||
|     uniqueness of the message id.  Optional domain if given provides the | ||||
|     portion of the message id after the '@'.  It defaults to the locally | ||||
|     defined hostname. | ||||
|     """ | ||||
|     timeval = time.time() | ||||
|     utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval)) | ||||
|     timeval = int(time.time()*100) | ||||
|     pid = os.getpid() | ||||
|     randint = random.randrange(100000) | ||||
|     randint = random.getrandbits(64) | ||||
|     if idstring is None: | ||||
|         idstring = '' | ||||
|     else: | ||||
|         idstring = '.' + idstring | ||||
|     if domain is None: | ||||
|         domain = socket.getfqdn() | ||||
|     msgid = '<%s.%s.%s%s@%s>' % (utcdate, pid, randint, idstring, domain) | ||||
|     msgid = '<%d.%d.%d%s@%s>' % (timeval, pid, randint, idstring, domain) | ||||
|     return msgid | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Serhiy Storchaka
						Serhiy Storchaka