Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • selsky/ntpsec
  • armbiant/gnome-ntpsec
  • smallm/ntpsec
  • devicenull/ntpsec
  • paelzer/ntpsec
  • mvangund/ntpsec
  • fe051/ntpsec
  • ollie314/ntpsec
  • rlaager/ntpsec
  • fhgwright/ntpsec
  • phirephly/ntpsec
  • Omnifarious/ntpsec
  • ghane/ntpsec
  • antranigv/ntpsec
  • pakarsolusitelematika/ntpsec
  • ianbruene/ntpsec
  • wingel/ntpsec
  • katyaBeck/ntpsec
  • akumiszcza/ntpsec
  • rouing/ntpsec
  • NTPsec/ntpsec
  • mlichvar/ntpsec
  • ktims/ntpsec
  • fararano.kevin/ntpsec
  • phillipcharleshart/ntpsec
  • SPACE001/ntpsec
  • thomasdstewart/ntpsec
  • testsleeek/ntpsec
  • NeatNerdPrime/ntpsec
  • marcinbrodowski35/ntpsec
  • AbbasDev/ntpsec
  • jurgen.xhelo/ntpsec
  • Wan10/ntpsec
  • BrnoPCmaniak/ntpsec
  • anastrophe/ntpsec
  • georgyo/ntpsec
  • mikie.simpson/ntpsec
  • OptimalRanging/ntpsec
  • toofishes/ntpsec
  • Jandrusk/ntpsec
  • sdwalker/ntpsec
  • mnordhoff/ntpsec
  • cjmayo/ntpsec
  • micromax/ntpsec
  • tychotithonus/ntpsec
  • ddrown/ntpsec
  • brendanbank/ntpsec
  • jh23453/ntpsec
  • samifarin/ntpsec
  • miller24joseph/ntpsec
  • AZDNice/ntpsec
  • lnceballos/ntpsec
  • gabriel-ku/ntpsec
  • psreport/ntpsec
  • thesamesam/ntpsec
  • alexk7/ntpsec
  • RRZEFox/ntpsec
  • m_by/ntpsec
  • jameshilliard/ntpsec
  • daemoneye/ntpsec
  • xgerault/ntpsec
  • permanent-vacations/ntpsec
  • o.zeynalpour/ntpsec
  • ravi.love.nippy/ntpsec
  • jhamlin96/ntpsec
  • abaehr/ntpsec
  • accidentallythecable-public/forks/ntpsec
  • james.jstroud/ntpsec
  • youwt19821020/ntpsec-no-root
  • jamesb_fe80/ntpsec
  • demsjf8/ntpsec
  • yegorich/ntpsec
  • 1963bib/ntpsec
  • armbiant/gnome-ntp
  • chucalu/ntpsec
  • folkertvanheusden/ntpsec
  • mktyler/ntpsec
  • 19bcs2794/ntpsec
  • LOCNNIL/ntpsec
  • lifeofguenter/ntpsec
  • trv-n/ntpsec-trimble-3
  • szepeviktor/ntpsec
  • lightswitch05/ntpsec
  • m_msft/ntpsec
  • chucalu0822/ntpsec
  • saprsanadhya/ntpsec
86 results
Show changes
Commits on Source (3)
......@@ -331,6 +331,7 @@ DEFSTIMEOUT = 3000
# The maximum keyid for authentication, keyid is a 16-bit field
MAX_KEYID = 0xFFFF
class Packet:
"Encapsulate an NTP fragment"
# The following two methods are copied from macros in includes/control.h
......@@ -1140,9 +1141,8 @@ class ControlSession:
% (f, len(fragments)), 1)
break
else:
self.response = polybytes(
"".join([polystr(frag.extension) \
for frag in fragments]))
tempfraglist = [polystr(f.extension) for f in fragments]
self.response = polybytes("".join(tempfraglist))
warndbg("Fragment collection ends. %d bytes "
" in %d fragments\n"
% (len(self.response), len(fragments)), 1)
......
......@@ -12,6 +12,11 @@ import shutil
import socket
import sys
import time
import ntp.ntpc
import ntp.version
import ntp.magic
import ntp.control
if "get_terminal_size" not in dir(shutil):
# used by termsize() on python 2.x systems
......@@ -22,10 +27,6 @@ if "get_terminal_size" not in dir(shutil):
else:
PY3 = True
import ntp.ntpc
import ntp.version
import ntp.magic
import ntp.control
# Old CTL_PST defines for version 2.
OLD_CTL_PST_CONFIG = 0x80
......@@ -488,11 +489,14 @@ def monoclock():
except AttributeError:
return time.time()
class Cache:
"Simple time-based cache"
ttl = 300
def __init__(self):
self._cache = {}
def get(self, key):
if key in self._cache:
value, settime = self._cache[key]
......@@ -500,12 +504,15 @@ class Cache:
return value
else: # key expired, delete it
del self._cache[key]
def set(self, key, value):
self._cache[key] = (value, monoclock())
# A hack to avoid repeatedly hammering on DNS when ntpmon runs.
canonicalization_cache = Cache()
def canonicalize_dns(inhost, family=socket.AF_UNSPEC):
"Canonicalize a hostname or numeric IP address."
resname = canonicalization_cache.get(inhost)
......@@ -519,7 +526,7 @@ def canonicalize_dns(inhost, family=socket.AF_UNSPEC):
try:
ai = socket.getaddrinfo(hostname, None, family, 0, 0,
socket.AI_CANONNAME)
except socket.gaierror as e:
except socket.gaierror:
return "DNSFAIL:%s" % hostname
(family, socktype, proto, canonname, sockaddr) = ai[0]
try:
......@@ -533,8 +540,10 @@ def canonicalize_dns(inhost, family=socket.AF_UNSPEC):
canonicalization_cache.set(inhost, result)
return result
TermSize = collections.namedtuple("TermSize", ["width", "height"])
def termsize():
"Return the current terminal size."
# Alternatives at http://stackoverflow.com/questions/566746
......@@ -1089,7 +1098,6 @@ class MRUSummary:
header = " lstint avgint rstr r m v count rport remote address"
def summary(self, entry):
width = ntp.util.termsize().width - 1
last = ntp.ntpc.lfptofloat(entry.last)
if self.now:
lstint = int(self.now - last + 0.5)
......@@ -1132,12 +1140,11 @@ class MRUSummary:
confirmed = False
try:
ai = socket.getaddrinfo(dns, None)
for (family, socktype, proto, canonname, sockaddr) in \
ai:
for (_, _, _, _, sockaddr) in ai:
if sockaddr and sockaddr[0] == ip:
confirmed = True
break
except socket.gaierror as e:
except socket.gaierror:
pass
canonicalization_cache.set(dns, confirmed)
if not confirmed:
......@@ -1251,6 +1258,7 @@ class IfstatsSummary:
return ''
return s
try:
from collections import OrderedDict
except ImportError:
......
......@@ -7,6 +7,7 @@ import socket
import select
import os.path
class FileJig:
def __init__(self, returns=[""]):
self.data = []
......@@ -274,7 +275,8 @@ class ShutilModuleJig:
def get_terminal_size(self, default=(80, 24)):
self.gts_calls.append(default)
return self.gts_returns.pop(0)
class TimeModuleJig:
def __init__(self):
self.time_calls = 0
......@@ -302,5 +304,5 @@ class GlobModuleJig:
def glob(self, pathname):
self.glob_calls.append(pathname)
ret = self.glob_returns.pop(0)
ret = self.glob_returns.pop(0)
return ret
......@@ -12,8 +12,7 @@ import socket
import select
import sys
import getpass
from jigs import *
import jigs
odict = ntp.util.OrderedDict
......@@ -308,7 +307,7 @@ class TestSyncPacket(unittest.TestCase):
self.assertEqual(cls.rescaled, True)
self.assertEqual(cls.root_delay, 2)
self.assertEqual(cls.root_dispersion, 2)
self.assertEqual(cls.reference_timestamp, -2208988800 )
self.assertEqual(cls.reference_timestamp, -2208988800)
self.assertEqual(cls.origin_timestamp, -2208988800)
self.assertEqual(cls.receive_timestamp, -2208988800)
self.assertEqual(cls.transmit_timestamp, -2208988800)
......@@ -436,7 +435,7 @@ class TestMisc(unittest.TestCase):
def test_dump_hex_printable(self):
f = ntpp.dump_hex_printable
fp = FileJig()
fp = jigs.FileJig()
data = "\x00\x01\x02\x03\x04\x05\x06\x07" \
"\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F"
# Test a single line
......@@ -648,7 +647,7 @@ class TestControlSession(unittest.TestCase):
def test_close(self):
# Init
sockjig = SocketJig()
sockjig = jigs.SocketJig()
cls = self.target()
cls.sock = sockjig
# Test
......@@ -666,9 +665,9 @@ class TestControlSession(unittest.TestCase):
self.assertEqual(cls.havehost(), True)
def test___lookuphost(self):
logjig = FileJig()
logjig = jigs.FileJig()
try:
fakesockmod = SocketModuleJig()
fakesockmod = jigs.SocketModuleJig()
ntpp.socket = fakesockmod
# Init
cls = self.target()
......@@ -757,9 +756,9 @@ class TestControlSession(unittest.TestCase):
else:
return [("family", "socktype", "protocol", "canon",
("1.2.3.4", 80)), ]
logjig = FileJig()
logjig = jigs.FileJig()
try:
fakesockmod = SocketModuleJig()
fakesockmod = jigs.SocketModuleJig()
ntpp.socket = fakesockmod
# Init
cls = self.target()
......@@ -829,12 +828,12 @@ class TestControlSession(unittest.TestCase):
ntpp.socket = socket
def test_password(self):
iojig = FileJig()
fakegetpmod = GetpassModuleJig()
iojig = jigs.FileJig()
fakegetpmod = jigs.GetpassModuleJig()
# Init
cls = self.target()
try:
tempauth = ntpp.Authenticator()
tempauth = ntpp.Authenticator
ntpp.Authenticator = AuthenticatorJig
ntpp.getpass = fakegetpmod
tempstdin = sys.stdin
......@@ -880,8 +879,8 @@ class TestControlSession(unittest.TestCase):
sys.stdout = tempstdout
def test_sendpkt(self):
logjig = FileJig()
sockjig = SocketJig()
logjig = jigs.FileJig()
sockjig = jigs.SocketJig()
# Init
cls = self.target()
......@@ -902,7 +901,7 @@ class TestControlSession(unittest.TestCase):
"Write to None failed\n"])
def test_sendrequest(self):
logjig = FileJig()
logjig = jigs.FileJig()
try:
tempcpkt = ntpp.ControlPacket
ntpp.ControlPacket = ControlPacketJig
......@@ -945,9 +944,9 @@ class TestControlSession(unittest.TestCase):
ntpp.Authenticator = tempauth
def test_getresponse(self):
logjig = FileJig()
sockjig = SocketJig()
fakeselectmod = SelectModuleJig()
logjig = jigs.FileJig()
sockjig = jigs.SocketJig()
fakeselectmod = jigs.SelectModuleJig()
# Init
cls = self.target()
cls.debug = 3
......@@ -1033,7 +1032,7 @@ class TestControlSession(unittest.TestCase):
ntpp.select = select
def test___validate_packet(self):
logjig = FileJig()
logjig = jigs.FileJig()
# Init
cls = self.target()
cls.debug = 5
......@@ -1305,7 +1304,8 @@ class TestControlSession(unittest.TestCase):
"16000.00 16000.00 16000.00 16000.00",
"16000.00 16000.00 16000.00 16000.00 "
"16000.00 16000.00 16000.00 16000.00")),
("novalue", ("", "")), ("blankvalue", ("", "")),
("novalue", ("", "")),
("blankvalue", ("", "")),
("quotedvalue", ("jabber", "jabber")))))
def test_readvar(self):
......@@ -1374,7 +1374,7 @@ class TestControlSession(unittest.TestCase):
def doquery_jig(opcode, associd=0, qdata="", auth=False):
queries.append((opcode, associd, qdata, auth))
# Init
filefp = FileJig()
filefp = jigs.FileJig()
cls = self.target()
cls.doquery = doquery_jig
# Test success
......@@ -1427,7 +1427,7 @@ class TestControlSession(unittest.TestCase):
raise ctlerr("foo", errorcode=code)
if len(query_results) > 0:
setresponse(query_results.pop(0))
logjig = FileJig()
logjig = jigs.FileJig()
# Init
cls = self.target()
cls.fetch_nonce = fetch_nonce_jig
......@@ -1717,7 +1717,7 @@ class TestAuthenticator(unittest.TestCase):
def openjig(self, filename):
self.open_calls.append(filename)
fd = FileJig()
fd = jigs.FileJig()
fd.readline_return = self.open_data
self.open_files.append(fd)
return fd
......@@ -1786,7 +1786,7 @@ class TestAuthenticator(unittest.TestCase):
f = self.target.compute_mac
try:
temphash = ntpp.hashlib
fakehashlibmod = HashlibModuleJig()
fakehashlibmod = jigs.HashlibModuleJig()
ntpp.hashlib = fakehashlibmod
# Test no digest
self.assertEqual(f(None, None, None, None), None)
......@@ -1812,7 +1812,7 @@ class TestAuthenticator(unittest.TestCase):
bad_pkt = "foobar\xDE\xAD\xDE\xAFblahblahblah"
try:
temphash = ntpp.hashlib
fakehashlibmod = HashlibModuleJig()
fakehashlibmod = jigs.HashlibModuleJig()
ntpp.hashlib = fakehashlibmod
# Test good
self.assertEqual(cls.verify_mac(good_pkt), True)
......
......@@ -231,7 +231,7 @@ class TestNTPStats(unittest.TestCase):
faketimemod.time_returns = [TDP * 2]
fakesockmod.getfqdn_returns = ["jabber"]
fakeosmod.path.isdir_returns = [True]
open_returns = [None]
self.open_returns = [None]
fakeglobmod.glob_returns = [([]), ([]), ([]), ([]), ([]), ([])]
fakeosmod.path.getmtime_returns = []
cls = self.target("/foo/bar", "ntpstats", 100, 50, 150)
......@@ -251,7 +251,7 @@ class TestNTPStats(unittest.TestCase):
ntp.statfiles.socket = socktemp
ntp.statfiles.os = ostemp
ntp.statfiles.time = timetemp
ntp.statfiles.glob = fakeglobmod
ntp.statfiles.glob = globtemp
ntp.statfiles.open = opentemp
sys.stderr = errtemp
......@@ -341,7 +341,7 @@ class TestNTPStats(unittest.TestCase):
ntp.statfiles.socket = socktemp
ntp.statfiles.os = ostemp
ntp.statfiles.time = timetemp
ntp.statfiles.glob = fakeglobmod
ntp.statfiles.glob = globtemp
ntp.statfiles.open = opentemp
sys.stderr = errtemp
......@@ -422,7 +422,7 @@ class TestNTPStats(unittest.TestCase):
ntp.statfiles.socket = socktemp
ntp.statfiles.os = ostemp
ntp.statfiles.time = timetemp
ntp.statfiles.glob = fakeglobmod
ntp.statfiles.glob = globtemp
ntp.statfiles.open = opentemp
sys.stderr = errtemp
......@@ -510,7 +510,7 @@ class TestNTPStats(unittest.TestCase):
ntp.statfiles.socket = socktemp
ntp.statfiles.os = ostemp
ntp.statfiles.time = timetemp
ntp.statfiles.glob = fakeglobmod
ntp.statfiles.glob = globtemp
ntp.statfiles.open = opentemp
sys.stderr = errtemp
......
......@@ -790,9 +790,9 @@ class TestPylibUtilMethods(unittest.TestCase):
self.assertEqual(f(data, showunits=True),
"rootdelay=0ms, rootdisp=1ms, offset=2ms, "
"sys_jitter=3ms, clk_jitter=4ms,\n"
"leapsmearoffset=5ms, authdelay=6ms, koffset=7ms, "
"kmaxerr=8ms, kesterr=9ms,\nkprecis=10ms, "
"kppsjitter=11ms, fuzz=12ms, "
"leapsmearoffset=5ms, authdelay=6ms, "
"koffset=7ms, kmaxerr=8ms, kesterr=9ms,\n"
"kprecis=10ms, kppsjitter=11ms, fuzz=12ms, "
"clk_wander_threshold=13ms,\ntick=14ms, in=15ms, "
"out=16ms, bias=17ms, delay=18ms, jitter=19ms,\n"
"dispersion=20ms, fudgetime1=21ms, "
......