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 public class NtpServiceImpl implements NtpService
38 {
39 public NtpMessage getReplyFor( NtpMessage request )
40 {
41 NtpMessageModifier modifier = new NtpMessageModifier();
42
43 modifier.setLeapIndicator( LeapIndicatorType.NO_WARNING );
44 modifier.setVersionNumber( 4 );
45 modifier.setMode( ModeType.SERVER );
46 modifier.setStratum( StratumType.PRIMARY_REFERENCE );
47 modifier.setPollInterval( ( byte ) 0x04 );
48 modifier.setPrecision( ( byte ) 0xFA );
49 modifier.setRootDelay( 0 );
50 modifier.setRootDispersion( 0 );
51 modifier.setReferenceIdentifier( ReferenceIdentifier.LOCL );
52
53 NtpTimeStamp now = new NtpTimeStamp();
54
55 modifier.setReferenceTimestamp( now );
56 modifier.setOriginateTimestamp( request.getTransmitTimestamp() );
57 modifier.setReceiveTimestamp( request.getReceiveTimestamp() );
58 modifier.setTransmitTimestamp( now );
59
60 return modifier.getNtpMessage();
61 }
62 }