1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.directory.server.ntp.service;
22
23
24 import org.apache.directory.server.ntp.NtpService;
25 import org.apache.directory.server.ntp.messages.LeapIndicatorType;
26 import org.apache.directory.server.ntp.messages.ModeType;
27 import org.apache.directory.server.ntp.messages.NtpMessage;
28 import org.apache.directory.server.ntp.messages.NtpMessageModifier;
29 import org.apache.directory.server.ntp.messages.NtpTimeStamp;
30 import org.apache.directory.server.ntp.messages.ReferenceIdentifier;
31 import org.apache.directory.server.ntp.messages.StratumType;
32
33
34
35
36
37
38 public class NtpServiceImpl implements NtpService
39 {
40 public NtpMessage getReplyFor( NtpMessage request )
41 {
42 NtpMessageModifier modifier = new NtpMessageModifier();
43
44 modifier.setLeapIndicator( LeapIndicatorType.NO_WARNING );
45 modifier.setVersionNumber( 4 );
46 modifier.setMode( ModeType.SERVER );
47 modifier.setStratum( StratumType.PRIMARY_REFERENCE );
48 modifier.setPollInterval( ( byte ) 0x04 );
49 modifier.setPrecision( ( byte ) 0xFA );
50 modifier.setRootDelay( 0 );
51 modifier.setRootDispersion( 0 );
52 modifier.setReferenceIdentifier( ReferenceIdentifier.LOCL );
53
54 NtpTimeStamp now = new NtpTimeStamp();
55
56 modifier.setReferenceTimestamp( now );
57 modifier.setOriginateTimestamp( request.getTransmitTimestamp() );
58 modifier.setReceiveTimestamp( request.getReceiveTimestamp() );
59 modifier.setTransmitTimestamp( now );
60
61 return modifier.getNtpMessage();
62 }
63 }