Return to oxd.sm1 CVS log | Up to [local] / OpenXM / src / kan96xx / Doc |
File: [local] / OpenXM / src / kan96xx / Doc / oxd.sm1 (download)
Revision 1.1, Sun Oct 20 13:13:36 2002 UTC (21 years, 8 months ago) by takayama
The first version of OpenXM super server oxd. Example of a session with oxd: nobuki@yama2:$ telnet localhost 8089 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ?<login method="file"/> <challenge file="/home/nobuki/.oxd12174"/> ?<done/> ?<launch> ox -ox ox_asir </launch> <bye/> Connection closed by foreign host. |
% $OpenXM: OpenXM/src/kan96xx/Doc/oxd.sm1,v 1.1 2002/10/20 13:13:36 takayama Exp $ [(parse) (oxasir.sm1) pushfile] extension % It has not yet been finished. /asirconnectr { [/in-asirconnectr /pass /peer /data /control /comm /oxd /ff /fname /nl /oxasir] pushVariables [ /nl 10 (string) dc def [(sm1.socket) (connect) [8089]] extension /oxd set [(sm1.socket) (select) [oxd 0 get -1]] extension [(sm1.socket) (read) [oxd 0 get]] extension /ff set /gg [(<login method="file"/>) nl ] cat def ff message gg message [(sm1.socket) (write) [oxd 0 get gg]] extension [(flush)] extension [(sm1.socket) (select) [oxd 0 get -1]] extension [(sm1.socket) (read) [oxd 0 get]] extension /ff set ff getFname /fname set fname message [(touch ) fname ] cat system /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def % /pass 0 (string) dc def % empty password /pass (hoge) def peer message [(ox -ox ox_asir ) ( -reverse ) ( -data ) data ( -control ) control ( -pass ) pass ] cat /comm set /gg [ (<done/>) nl ] cat def ff message gg message [(sm1.socket) (write) [oxd 0 get gg]] extension [(sm1.socket) (select) [oxd 0 get -1]] extension [(sm1.socket) (read) [oxd 0 get]] extension /ff set % read ? /gg [(<launch> ) comm ( </launch> ) nl ] cat def ff message gg message [(sm1.socket) (write) [oxd 0 get gg]] extension [(oxCreateClient2) peer 0 pass] extension /oxasir set %% 0 means connect from only localhost. oxasir asirinit /arg1 oxasir def ] pop popVariables arg1 } def /getFname { /arg1 set [/in-getFname /comm /i /comm2 /j ] pushVariables [ /comm arg1 def comm (array) dc /comm set % comm message % 34 = " /comm2 [ ] def 0 1 comm length 1 sub { /i set comm i get 34 eq { [ i 1 add 1 comm length 1 sub { /j set comm j get } for ] /comm2 set exit } { } ifelse } for comm2 /comm set % comm message [ 0 1 comm length 1 sub { /i set comm i get 34 eq { exit } { comm i get } ifelse } for ] /comm2 set comm2 {(string) dc} map cat /arg1 set ] pop popVariables arg1 } def