diff --git a/exec/gopherservice.js b/exec/gopherservice.js index 852401ce59d951f5871ddca8b13c7e62a2f9436d..6a83923c39ddbcd93746b5e66492d07a3393bafd 100644 --- a/exec/gopherservice.js +++ b/exec/gopherservice.js @@ -10,7 +10,7 @@ load("sbbsdefs.js"); load("nodedefs.js"); const VERSION = "1.00 Alpha"; -const GOPHER_PORT = 70; +const GOPHER_PORT = client.socket.local_port; var debug = false; var no_anonymous = false; @@ -24,7 +24,7 @@ for(i=0;i<argc;i++) function write(str) { if(0 && debug) - log(format("rsp: %s",str)); + log("rsp: " + str); client.socket.send(str); } @@ -62,7 +62,7 @@ if(request==null) { exit(); } -log(format("client request: '%s'",request)); +log("client request: '" + request + "'"); var gopher_plus=false; if((term=request.indexOf("\t+"))>=0) { @@ -73,12 +73,10 @@ if((term=request.indexOf("\t+"))>=0) { if(request=="" || request=='/') { /* "root" */ for(g in msg_area.grp_list) - writeln(format("1%s\tgrp:%s\t%s\t%u" - ,msg_area.grp_list[g].description - ,msg_area.grp_list[g].name.toLowerCase() - ,system.inetaddr - ,GOPHER_PORT - )); + writeln("1" + msg_area.grp_list[g].description + + "\tgrp:" + msg_area.grp_list[g].name.toLowerCase() + + "\t" + system.inetaddr + + "\t" + GOPHER_PORT); /** to-do for(l in file_area.lib_list) writeln(format("1%s\tlib:%s\t%s\t%u" @@ -88,24 +86,15 @@ if(request=="" || request=='/') { /* "root" */ ,GOPHER_PORT )); **/ - writeln(format("0%s\t%s\t%s\t%u" - ,"Node List" - ,"nodelist" - ,system.inetaddr - ,GOPHER_PORT - )); - writeln(format("0%s\t%s\t%s\t%u" - ,"Logon List" - ,"logonlist" - ,system.inetaddr - ,GOPHER_PORT - )); - writeln(format("0%s\t%s\t%s\t%u" - ,"Auto-Message" - ,"automsg" - ,system.inetaddr - ,GOPHER_PORT - )); + writeln("0Node List\tnodelist" + +"\t" + system.inetaddr + +"\t" + GOPHER_PORT); + writeln("0Logon List\tlogonlist" + +"\t" + system.inetaddr + +"\t" + GOPHER_PORT); + writeln("0Auto-Message\tautomsg" + +"\t" + system.inetaddr + +"\t" + GOPHER_PORT); exit(); } @@ -117,9 +106,10 @@ switch(request) { write(format("Node %2d ",n+1)); if(system.node_list[n].status==NODE_INUSE) { user.number=system.node_list[n].useron; - write(format("%s (%u %s) ", user.alias, user.age, user.gender)); + //write(format("%s (%u %s) ", user.alias, user.age, user.gender)); + write(user.alias + " (" + user.age + " " + user.gender +") "); if(system.node_list[n].action==NODE_XTRN && system.node_list[n].aux) - write(format("running %s",user.curxtrn)); + write("running %s" + user.curxtrn); else write(format(NodeAction[system.node_list[n].action],system.node_list[n].aux)); } else @@ -143,13 +133,15 @@ switch(field[0]) { for(g in msg_area.grp_list) if(msg_area.grp_list[g].name.toLowerCase()==field[1]) { for(s in msg_area.grp_list[g].sub_list) - writeln(format("1[%s] %s\tsub:%s\t%s\t%u" - ,msg_area.grp_list[g].name - ,msg_area.grp_list[g].sub_list[s].description - ,msg_area.grp_list[g].sub_list[s].code.toLowerCase() - ,system.inetaddr - ,GOPHER_PORT - )); + writeln("1[" + msg_area.grp_list[g].name + "] " + + msg_area.grp_list[g].sub_list[s].description + + "\tsub:" + + msg_area.grp_list[g].sub_list[s].code.toLowerCase() + + "\t" + + system.inetaddr + + "\t" + + GOPHER_PORT + ); break; } break; @@ -169,14 +161,19 @@ switch(field[0]) { break; case "sub": msgbase = new MsgBase(field[1]); + if(msgbase.open!=undefined && msgbase.open()==false) { + writeln("!ERROR " + msgbase.last_error); + break; + } + if(Number(field[2])) { hdr=msgbase.get_msg_header(false,Number(field[2])); if(hdr.attr&MSG_DELETE) break; - writeln(format("Subj : %s",hdr.subject)); - writeln(format("To : %s",hdr.to)); - writeln(format("From : %s",hdr.from)); - writeln(format("Date : %s",system.timestr(hdr.when_written_time))); + writeln("Subj : " + hdr.subject); + writeln("To : " + hdr.to); + writeln("From : " + hdr.from); + writeln("Date : " + system.timestr(hdr.when_written_time)); writeln(""); body=msgbase.get_msg_body(false,Number(field[2]),true) writeln(body); @@ -198,19 +195,18 @@ switch(field[0]) { continue; if(hdr.attr&MSG_DELETE) continue; + date = system.timestr(hdr.when_written_time); msginfo=format("%-25.25s %-25.25s %-25.25s %s" ,hdr.subject ,hdr.from ,hdr.to - ,system.timestr(hdr.when_written_time) + ,date + ); + writeln("0" + msginfo + "\tsub:" + + field[1] + ":" + i + "\t" + + system.inetaddr + "\t" + + GOPHER_PORT ); - writeln(format("0%s\tsub:%s:%u\t%s\t%u" - ,msginfo - ,field[1] - ,i - ,system.inetaddr - ,GOPHER_PORT - )); } msgbase.close(); break;