initial commits
[random_node_code.git] / tftp / tftpd_1.js
1 var dgram = require("dgram");
2
3 var server = dgram.createSocket("udp4");
4
5 server.on("message", function (msg, rinfo) {
6         console.log("msg: ", msg);
7   console.log("server got: " + msg + " from " +
8     rinfo.address + ":" + rinfo.port);
9   parseMsg(msg);
10 });
11
12 server.on("listening", function () {
13   var address = server.address();
14   console.log("server listening " +
15       address.address + ":" + address.port);
16 });
17
18 function parseMsg(msg) {
19         var lkb = msg.readUInt16BE(0);
20         var fnamend = 0;
21         
22         for(i=2; i<(msg.length-1); i++) {
23                 if(msg[i] == 0) {
24                         fnamend = i;
25                         console.log("setname end to ", fnamend);
26                 }
27         }
28         
29         switch(lkb) {
30         case 1:
31                 console.log("read request");
32                 break;
33         case 2:
34                 console.log("write request");
35                 break;          
36         }
37         
38         var fname = msg.toString("utf8", 2, fnamend);
39         var ftype = msg.toString("utf8", fnamend+1, msg.length-1);
40         
41         console.log("fun is, '%s', '%s'", fname, ftype);
42         
43         switch(ftype) {
44         case "netascii":
45                 console.log("was netascii");
46                 break;
47         case "octet":
48                 console.log("was octet");
49                 break;
50         default:
51                 console.log("errr: '", ftype, "'");
52         }
53 }
54
55 server.bind(41234);