Standard Input Server

Miscellaneous programs and scripts, opensource or not, and sometimes, random mathematical stuff.
User avatar
Gamall
Hic sunt dracones
Posts: 4124
Joined: Fri May 26, 2006 11:09 pm
Contact:

Standard Input Server

Postby Gamall » Sat Mar 15, 2008 3:59 pm

In answer to -> this problem:

Standard-Input-Server.zip
(1.57 MiB) Downloaded 396 times

Also on filefront.

Code: Select all

*****************************************************************
**                    Standard Input Server                    **
*****************************************************************
 
  #-----------------------------------------------------------# 
  #            TITLE : Standard Input Server (SIS)            # 
  #                   TYPE : Server Utility                   # 
  #                       VERSION : 0.1                       # 
  #               AUTHOR : Gamall Wednesday Ida               # 
  #               E-MAIL : gamall.ida@gmail.com               # 
  #              WEBSITE : http://gamall-ida.com              # 
  #                                                           # 
  #                    FILESIZE : ~1600 Ko                    # 
  #            OS Server: GNU/Linux & other Unixes            # 
  #                      OS Client: Any                       # 
  #                 RELEASE DATE : March 2008                 # 
  #-----------------------------------------------------------# 
 
 
 
+   READ ME! (CONTACT)                                           
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 
 Should  you  want to contact me, please do NOT jump on my email
 or spam filefront  comments  or  anything,  you  won't  get  an
 answer.  And  if  you  do  it  won't  be  what  you expected...
                                                                 
 Read the "CONTACT" section near the end of  that  file  instead
 ;-).                                                           
 
 
+   TECHNICAL DESCRIPTION                                       
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 
 
   -   Terse Description                                         
   -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o          -
 
 SIS is a basic server for telnet clients, which retransmits its
 standard    input    to   all   connected   clients.   Password
 authentification can be required. Connections and deconnections
 are logged by IP (and username when  applicable).  Packets  are
 not encrypted.                                                 
 
 
   -   Why use it?                                               
   -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o          -
 
 I  suppose  you  could use it as a very crude instant messaging
 system or whatnot, but that's not what it  was  written  for...
 
 Let   S   be  a  server  application  (or  any  other  kind  of
 application) running on a remote computer (of IP address A).  S
 prints  useful  information  I  on  its  standard output (or on
 stderr, or both). You want to be able to read I as it is  being
 written,  from  a  computer  C. You have at least remote access
 (SSH for instance) to S. But you want other people, without any
 kind of access to S, to be able to read I from  anywhere.  That
 is what SIS is for.                                             
 
 Note: I think this kind of situation is quite common, but oddly
 enough I couldn't find any software solving that problem when I
 needed  one.  So  I wrote SIS. Maybe I have just reinvented the
 wheel, maybe not. If you happen to stumble on a  similar  tool,
 or  if  I  have missed some standard unix trick doing that job,
 please tell me.                                                 
 
 
   -   How to use it?                                           
   -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o          -
 
 Of course, 'sis  --help'  displays  the  command-line  options.
 You'll get something along those lines:                         
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       $ ./sis --help
       
       usage: sis [options]
       
        -port <int>                 : set the netport of the service    (default 1337)
        -user <str name> <str pass> : add user and activates access restriction
        -name                       : name for the server, displayed to the clients
        -disp                       : stdin is displayed on stdout
        -silent                     : logs will not be displayed on stdout
        -pipe                       : pipe mode (for filter chains)
        -delay    <int>             : waiting time, in microseconds    (default 10000)
        -delaysec <int>             : the same in seconds              (default     1)
        --no-logs                   : logs will not be used at all
        --logs-path <str>           : path to the log file
        --lazy-logs                 : log writing will be buffered
        --help                      : display this help page
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
 The  obvious  way to get it running is to use a pipe to connect
 the standard output of S to the standard input of SIS. Assuming
 the S and SIS executables are both in the PATH:                 
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       S | sis -port P
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
 will open the SIS server on port P. Now, from any  computer,  a
 telnet client can be connected to A on port P, and will display
 I.                                                             
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       telnet A P
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
 You  can  control  who  has access to I by setting up users and
 passwords. Then any client  has  to  enter  a  username  and  a
 password  in  order  to  be  able  to use SIS. That username is
 logged,   alongside   the   IP   address   of   each    client.
 
 Example session:                                               
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       ./mess | ./sis -user Gamall test
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       $ telnet localhost 1337
       Trying 127.0.0.1...
       Connected to localhost.
       Escape character is '^]'.
       
       ** Standard Input Server v0.1
       ** by Gamall Wednesday Ida
       ** email : gamall.ida@gmail.com
       ** web   : gamall-ida.com
       
       
       --> SIS Client (127.0.0.1:45200)
       --> SIS Server 'Test SIS' (0.0.0.0:1337).
       
       Authentification is required.
       Please enter your username:
       Gamall
       Please enter your password :
       test
       Access granted (Gamall)
       
       READING DATA:
       ================================================================================
       MESSAGE 8
       MESSAGE 9
       MESSAGE 10
       MESSAGE 11
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
 
   -   Some Basic Unix Tips                                     
   -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o          -
 
 NOTE: Some sample programs and their source code are shipped to
 let  you  test  SIS  locally:  can  can  just run the following
 samples and see what happens.                                   
 
 STDERR: You may want  to  use  stderr,  and  not  just  stdout.
 Depending  on the kind of shell on your system, the syntax will
 be different. A syntax to get both stdout and stderr  is  this:
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       ./mess 2>&1| ./sis
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
 And  if  you  want  to  get  stderr  alone,  you  can  do this:
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       ./mess 3>&1 1>&2 2>&3 | ./sis
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
 FILTERS: SIS retransmits its standard input  just  the  way  it
 receives  it.  That  does  not prevent you from controlling the
 information, though. Just write  a  filter  F  (ie.  a  program
 taking  its  data from stdin and sending the results to stdout)
 and put it between S and SIS. ('S | F | sis'). I have  provided
 tiny filters to illustrate that: see `toup.ml' and `tostar.ml'.
 
 CHAINED  FILTERS:  You may want to run several SIS servers from
 the same source, but  offering  content  altered  by  different
 filters.  SIS  lets  you  chain  several filters very easily by
 using the  -pipe  option.  The  following  example  runs  three
 different  servers  offering three distinct views from the same
 source. (remove line breaks, of course)                         
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       ./mess | ./sis -pipe -p 1337
              | ./toup | ./sis  -pipe -p 1338
              | ./tostar | ./sis -p 1339
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
 Note that in `real life', you may want  to  use  different  log
 files  for  these three servers. In this example they all share
 the default log file, which is messy.                           
 
 
   -   The Source Code                                           
   -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o          -
 
 The source code for SIS  is  released  under  the  GNU  General
 Public License.                                                 
 
 SIS  is  written in Objective Caml. Plus three or four lines of
 C, for good measure...                                         
 
 
   -   The Binaries                                             
   -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o          -
 
 SIS is shipped with statically compiled binaries, which may  or
 may  not  work  on your own system. If they don't you will just
 have to compile it from source. You will need an OCaml compiler
 and a C compiler. In most cases, you will just need to run  the
 build script in the /src directory.                             
 
 
+   APPLICATION TO JKA & JK2 (AND OTHER GAMES)                   
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 
 The  initial  reason  for  which  I  wrote  SIS  was to make it
 possible for JKA server admins to chat with the players  inside
 the  server  via RCon. The fact that RCon can send messages but
 not retrive the answers (or simply allow the admin  to  spy  on
 their   unsuspecting   flock)   is   a   long-time   annoyance.
 
 Of course, using SIS requires access to the  dedicated  server,
 and this server must be some flavour of Unix.                   
 
 Assuming  that,  you either run jampded (or jk2ded or whatever)
 directly from the command line, or through some kind  of  shell
 script.  Find  it  and  simply  add  '|  sis'  (or '| ./sis' or
 whatever path works) at the end of the line launching the  game
 server.                                                         
 
 Needless  to  say,  if  there  is  already  a  standard  output
 redirection in this line, probably  for  logs  writing,  use  a
 'tee' to duplicate the stream.                                 
 
 Then  you  can  use  telnet  to  see  what is happening in your
 server.                                                         
 
 
+   CONTACT                                                     
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 
 If you need  help,  or  have  suggestions,  comments,  insults,
 praise  or  in  general, anything to say about this program you
 expect me to read and answer to, please post on  the  program's
 topic on my website:                                           
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
       http://gamall-ida.com/f/viewtopic.php?f=3&t=390
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 
 
+   END OF FILE                                                 
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 




























  +-----------------------------+
  | File generated with 'GaTeX',|
  | an ASCII typesetting system |
  | by  Gamall  Wednesday  Ida. |
  |   http://gamall-ida.com     |
  +-----------------------------+
  Build: Sat Mar 15 16:13:01 2008
  File : F:readme-sis.GaTeX.source
{<§ Gamall Wednesday Ida §>}
{ Mods and Programs - Mods TES-IV Oblivion }

User avatar
Gamall
Hic sunt dracones
Posts: 4124
Joined: Fri May 26, 2006 11:09 pm
Contact:

Re: Standard Input Server

Postby Gamall » Sat Mar 15, 2008 7:23 pm

Release 0.1
{<§ Gamall Wednesday Ida §>}
{ Mods and Programs - Mods TES-IV Oblivion }

User avatar
Jc61990
Posts: 13
Joined: Wed Feb 13, 2008 6:30 pm
Location: New York
Contact:

Re: Standard Input Server

Postby Jc61990 » Mon Mar 17, 2008 5:53 pm

awesome, downloading and testing now... this works with linux right, i just migrated over to Ubuntu

ok so basicly i just need to put this on my server and on the command line to start it i would add it where on this command line?

Code: Select all

./jk2ded +set dedicated "2" +set com_hunkmegs 64 +set net_port 28071 +set fs_game academy +exec academy.cfg +exec saber.cfg +exec power_plant.cfg +exec vstr.cfg
Image
Image

User avatar
Gamall
Hic sunt dracones
Posts: 4124
Joined: Fri May 26, 2006 11:09 pm
Contact:

Re: Standard Input Server

Postby Gamall » Mon Mar 17, 2008 7:34 pm

THE README wrote:Find it and simply add '| sis' (or '| ./sis' or
whatever path works) at the end of the line launching the game
server.


The `end of the line' being what it is, it should become

Code: Select all

./jk2ded +set dedicated "2" +set com_hunkmegs 64 +set net_port 28071 +set fs_game academy +exec academy.cfg +exec saber.cfg +exec power_plant.cfg +exec vstr.cfg | ./sis


Of course the "./" assumes sis is in the same directory as jk2ded.

Note that sis will be on the port 1337 by default. Check sis --help for options :huhu .
{<§ Gamall Wednesday Ida §>}
{ Mods and Programs - Mods TES-IV Oblivion }

User avatar
Jc61990
Posts: 13
Joined: Wed Feb 13, 2008 6:30 pm
Location: New York
Contact:

Re: Standard Input Server

Postby Jc61990 » Wed Mar 19, 2008 4:49 pm

the folders are in a bin and src, do i just put the bin and src in the home folder of the user account for the server or do i extract the files within the zip the the root of the home folder?
Image
Image

User avatar
Gamall
Hic sunt dracones
Posts: 4124
Joined: Fri May 26, 2006 11:09 pm
Contact:

Re: Standard Input Server

Postby Gamall » Wed Mar 19, 2008 5:45 pm

bin folder:

Contains the executables, statically compiled on an Ubuntu 7.10. They should work on your system. All you need is one file in this folder: the sis executable. Put it either somewhere in the $PATH of your system, or in the same directory as jk2ded.


src folder:

Contains the source code, compiling and packaging scripts for sis and the example filters. You won't need anything in that folder unless the executables don't work on your system, in which case you would need these sources to build a sis executable suitable for your computer.
{<§ Gamall Wednesday Ida §>}
{ Mods and Programs - Mods TES-IV Oblivion }

User avatar
Jc61990
Posts: 13
Joined: Wed Feb 13, 2008 6:30 pm
Location: New York
Contact:

Re: Standard Input Server

Postby Jc61990 » Wed Mar 19, 2008 5:54 pm

oh ok cool
Image
Image

User avatar
Kafou
Poulidor Gnomonique
Posts: 1501
Joined: Sun Aug 19, 2007 7:17 pm
Location: dans son labo
Contact:

Re: Standard Input Server

Postby Kafou » Wed Mar 19, 2008 11:29 pm

Note that sis will be on the port 1337 by default.

Haha :love

User avatar
Maikoru
Jedi Perpétuellement Affamé
Posts: 480
Joined: Sun Aug 27, 2006 11:15 pm

Re: Standard Input Server

Postby Maikoru » Thu Mar 20, 2008 9:29 am

:haha
"..." -- Link


Return to “Freewares, game mods, Java, C++, OCaml & Maths”

Who is online

Users browsing this forum: Bing [Bot] and 64 guests