11const udp = require ( 'dgram' ) ;
22const { debuglog } = require ( 'util' ) ;
3- const EventEmitter = require ( 'events' ) ;
43const Packet = require ( './packet' ) ;
54
65const debug = debuglog ( 'tftp2:server' ) ;
76
8- class Connection extends EventEmitter {
7+ class Connection extends udp . Socket {
98 constructor ( rinfo ) {
109 super ( 'udp4' ) ;
10+ this . socket = this ;
1111 this . setRemoteDescription ( rinfo ) ;
1212 }
1313 setRemoteDescription ( rinfo ) {
1414 return Object . assign ( this , this . rinfo = rinfo ) ;
1515 }
16- send ( data ) {
16+ sendPacket ( data ) {
1717 const { rinfo } = this ;
1818 if ( data instanceof Packet )
1919 data = data . toBuffer ( ) ;
@@ -26,19 +26,19 @@ class Connection extends EventEmitter {
2626 }
2727 sendRequest ( opcode , filename ) {
2828 const packet = Packet . createRequest ( opcode , filename ) ;
29- return this . send ( packet ) ;
29+ return this . sendPacket ( packet ) ;
3030 } ;
3131 sendAck ( block ) {
3232 const { rinfo } = this ;
3333 const packet = Packet . createAck ( block ) ;
3434 debug ( 'send ack block %s to %s:%s' , block , rinfo . address , rinfo . port ) ;
35- return this . send ( packet ) ;
35+ return this . sendPacket ( packet ) ;
3636 }
3737 sendBlock ( block , data ) {
3838 const { rinfo } = this ;
3939 const packet = Packet . createData ( block , data ) ;
4040 debug ( 'send block %s size %s, to %s:%s' , block , data . length , rinfo . address , rinfo . port ) ;
41- return this . send ( packet ) ;
41+ return this . sendPacket ( packet ) ;
4242 }
4343 wait ( fn ) {
4444 return new Promise ( ( resolve , reject ) => {
0 commit comments