ipsvrd
ipsvrd
This is the background server used to access data on a Fip Server.
Normal running is in the SYSTEM file :
svrd local ipsvrd -s+ -E 20
or with some logging
svrd local ipsvrd -s+ -E 20 -l
It prefers to use a parameter file - and will warn on startup if it is not
there - which defaults to tables/wire/FIPNET.FIP
Use the parameter file to whitelist ONLY Fip servers for gaining access to your
system or to setup SSL.
Use the '-z' input switch to specify any other filename. A '.FIP' extension may
be added.
Syntax :
; comment line
default-blacklist: allow/disallow
Default is to allow all connections, use this to set the default to disallow
unless they are specified in one of more 'allow' parameters
allow: (IPaddress to allow)
disallow: (IPaddress to block)
use these to blacklist/whitelist certain addresses,
a '*' (star) can be used to indicate ALL eg 10.3.3.*
admin: (admin name)
use-ssl:yes/no
The commends are for a ftp running over SSL/TLS on the remote server
default is NO
no - normal, standard plain TCP
yes - connect (normally) and immediately start SSL on top
ssl-method: (1,2,3,23,999)
Version number to use for TLS/SSL default: 999 for current default (2 or 3)
ssl-password: (password)
ssl-passwd: (password) default: none
Optional password if the handshake requires a shared secret
ssl-key: (name of a certiticate key file) default: none
ssl-cert: (name of a certificate file) default: none
ssl-root-cert: (name of a root PEM certificate file) defaunt: none
Optional certificates are in tables/ssl unless name starts with '/'
ssl-verify: yes/no verify server certificates default: yes
ssl-ciphers: (list) acceptable ciphers
(use 'openssl ciphers' to list)
default: "HIGH:!aNULL:!kRSA:!SRP:!PSK:!CAMELLIA:!RC4:!MD5:!DSS"
ssl-display: yes/no display SSL connection details default: no
EG :
;
default-blacklist:disallow
; * is a wild card
allow:217.138.58.*
allow:7.90.77.115
--------------------------------------------------
Input switches are (all optional) :
-d : top path default: /
-D : display actions for Notes default: no
-E : maximum number of threads default: 1
up to a max of 200 (not Win2k)
Note this is also a hardware limit in that small systems may not be able to
run more than 50 or so
-g : disable SSL default: depends on 'use-ssl:yes' in parameter file
-G : display any SSL debugging infomation. default: none
-I : id of this instance default: ignored
Where there are several copies of 'ipsvrd' running (more for Win2k)
-l : log requests default: no logging
-L : log requests and connections default: no logging
-P : Port no to receive messages on default: 9140
-s : IP address or hostname to listen on default: boot address.
'-s +' will listen on ALL cards and address for this box.
-u : dump incoming data default: no
-w : adjust the timeout in secs default: 4
on slow networks, try increasing it to 10 or more
-z : Name of Parameter file default: none
-v : print version number and quit default: no
--------------------------------------------------
Notes upload version of ipsvrd is called ipnotwir
For testing, start the program in a terminal/command window and add the '-D'
input switch. This allows logging to the screen what is happening!
Parameter file for Notes is tables/notes/2NOTES (on WINNT 2NOTES.FIP)
notes-server: (hostname of the notes server)
eg notes-server:HOBBES
notes-path: (path to a local database)
notes-database: (path and name of database)
eg notes-database:editorial/CET_Edit.nsf
Where data is held locally and the database holds just a link to the files :
notes-data-drive: (letter)
notes-data-fiphdr: (fiphdr field)
notes-data-filename:/cet/\ND/\NP/\NS
notes-data-fileext:.txt
notes-data-ismac:
This just converts line ends to CR only
It does NOT convert any oither characters.
log-line: (extra logging)
For each field that needs to be filled in :
field: (Notes Field name) file:
field: (Notes Field name) file:richtext
Add the text of the file to this field
if richtext is added, it is a richtext type field
eg field:ArticleText file:
field: (Notes Field name) data:(FipSeq)
field: (Notes Field name) data:(FipSeq) type: (optional type)
Add metadata from FipHdr or system variables into Notes fields
The optional type can be the special notes types of
type:list this is a controlled list
type:time this is a date/time field
type:number this is a number
The default is a string of text
If there are spaces in the Field name or the data specification, wrap double
quotes around them
examples
; AdminDb
fixed:ND CN=LNCOV1/O=MG_REG
field:AdminDb data:\CN
; Headline
combie:QH XK|DI
field:Headline data:\QH
; no of characters in a NUMBER field
field:Character_count type:number data:\$c
; add time of insert to the Comments field
field:Comments data:"Sent From FIP - \$d-\$m-\$y at \$h:\$n:\$b"
; make sure CopyCheck is blank
field:CopyCheck data:""
field:CopyCount type:number data:1
field:Correspondent data:\SU
; TIME
field:CreatedOn type:time
On Windows, there may be a permissions problem accessing the database with the
LOCALSYSTEM account. So the 'Fip Comms Manager' service must be started by a
logon that can see/modify Notes!
--------------------------------------------------
---- Input ----
Example of Input :
<?xml version="1.0" standalone="yes"?>
<FIPAGENT>
<ACTION>DIRLIST</ACTION>
<QUEUE>/fip/spool/2edsys</QUEUE>
<LOGON>albert</LOGON>
<PASSWD>HeyJude</PASSWD>
<SIZE/>
<DATE/>
</FIPAGENT>
Note - tags are case insensitive
---- Output ----
Example of Output :
<?xml version="1.0" standalone="yes"?>
<FIPAGENT>
<REPLY>
<ACTION>DIRLIST</ACTION>
<RESULT>231</RESULT>
<DEVICE-RESULT>0</DEVICE-RESULT>
<DATALENGTH>6507</DATALENGTH>
</REPLY>
</FIPAGENT>Data follows.......
Note there is no trailing NL
---- Notes ----
Return Codes
Ok - in the range 200-299
211 - Read complete
212 - Filter returns nothing
221 - Store complete
222 - Link complete (for LINK which succeeded)
222 - Move successful
222 - Copy successful
231 - Directory List complete
241 - Delete complete
251 - Script complete
261 - Ignore complete
errors - in the range 400-499
general errors
401 - Nothing !
402 - No Action Specified
403 - No Logon Specified
404 - Password Incorrect
405 - Unknown Action Specified
406 - Timeout - incomplete Token
Read
411 - No File Specified
412 - No Such File
413 - File not Readable
Store/Append/Link
421 - No File Specified
422 - Exists but is NOT a File
423 - File exists - no overwrite selected
424 - Error Writing Zero Length File
425 - No Data Sent for new file
426 - Error Append/Prepend to File
427 - Error cannot find input data File
428 - Error Unable to write file
429 - Error Unable to Append/Prepend file
Dir List
431 - No Queue Specified
432 - Queue does NOT exist
Delete
441 - No File Specified
442 - No Such File
443 - File Permissions do not allow Delete
Script
451 - No Script Specified
452 - No Script File
453 - Not able to run Script file
454 - Script ran but errored
Ignore
no errors
NOTES-UPLOAD
461 - No File Specified
462 - No Data Sent for new file
463 - Not able to log onto the DataBase
464 - Error uploading fields, pls check parameter file.
--------------------------------------------------
Tags and SubTags
----------------
If the Action is DIRLIST :
queue - absolute queue or folder name
size/ - returns the size of each file
date/ - returns last modifcation date of each file
totals/ - returns only the number of items in the folder
If the Action is STORE :
file - filename with complete path
link - optional link - filename with complete path
unique/ - file MUST be uniquename
notunique/ - increment filename if exists
overwrite/ - overwrite texisting if exists
originals/ - save existing (if any) in /fip/originals
makequeue/ - make the queue
zerolength/ - allow/make a zero length file.
permissions - unix style permissions
script-after - Full path and all parameters - Mandatory
Note that FipHdr field DD holds the filename
tmpfile - for use with scipt-after, just use a tmp file for the data
ignore-errors - for script
if the Action is APPEND :
file - filename with complete path
link - optional link - filename with complete path
originals/ - save existing (if any) in /fip/originals
makequeue/ - make the queue
If the Action is LINK or MOVE or COPY:
file - filename with complete path
source - do NOT store the file, use this file to link to, unless the link
file does NOT exist.
unique/ - file MUST be uniquename
notunique/ - increment filename if exists
overwrite/ - overwrite existing if exists
originals/ - save existing (if any) in /fip/originals
makequeue/ - make the queue
zerolength/ - allow/make a zero length file.
permissions - unix style permissions
If the Action is READ :
file - filename - Mandatory
filter - a grep of the line
sort - sort upside down
maxitems - give me only the first 100 lines - eg log files
There are no extra tags for NOTES UPLOAD as the FipHdr is matched to Notes
fields
If the Action is SCRIPT - run Script :
script - Full path and all parameters - Mandatory
ignore-errors
If the Action is DELETE :
file - filename - Mandatory
Version Control
;1w34a 27nov99 added Notes Upload
;e 05jun00 added LINK
;f 08aug00 more error checking
;g 22aug00 redid DIRLIST a bit
;h 26mar02 added -s for -s+
;i 14jul03 added action APPEND as a type of STORE files
;j-k 19sep04 speedy
;l-m 26oct05 added script-after to store
;n-p 25oct06 cleanup and added dump -u plus more Notes stuff
;q-s 20nov06 added RichText for file data
;t 20dec06 added META for STORE (missing dec 2005 mod)
;u 31may07 redid STORE/PERMISSIONS
;v2 20sep07 added -w (;v1 added IP address to log)
;w3-5 30oct08 make notes* FipSeq ;3 unlink on store -> w and added timing -T
;5 bugette in APPEND and added PREPEND
;w6-7 30apr14 file-trace added ;7-8 added STATTIME
;w9-12 23aug17 added -I and -E for multiple instances - should improve thruput
on slow networks/systems
;w13-16 5oct17 MOVE and COPY added ;17 added useMsg and sysMsg ;18 15aug19
added blacklists ;19-26 SSL
;w27-29 17mar20 allow /data-av and data-no-av as valid fip top folders
;30-33 10oct22 pid_t and sockaddr_t ;34a added /fip/web.. + bug in auth
(copyright) 2025 and previous years FingerPost Ltd.