+#========== server for approving updates ==========
+
+proc remote-serv-log {pirate event} {
+ set t [clock format [clock seconds] -format {%Y-%m-%d %H:%M:%S %Z}]
+ set s [format "%s %15s %s" $t $pirate $event]
+}
+
+proc remote-serv/list {} {
+ global dropdir
+ foreach file [glob -nocomplain -type f -directory $dropdir _update.*.rdy] {
+ puts yes
+ puts $file
+ set f [open $file]
+ set d [read $f]
+ close $f
+ puts [string length $d]
+ puts -nonewline $d
+ }
+ puts end
+}
+
+proc remote-serv/take {f args} {
+ global dropdir rows reqkind
+ set rows ""
+ manyset $args yesno file pirate reqkind rows
+ read_counted stdin desc
+ read_counted stdin key
+ read_counted stdin val
+ if {$yesno} {
+ read_database
+ set database($key) $val
+ write_database
+ }
+ set ar [lindex {reject approve} $yesno]
+ remote-serv-log $pirate "$ar $reqkind $rows $desc"
+ file remove $file
+}
+
+proc main/remoteserv {} {
+ global argv dropdir
+ manyset $argv dropdir
+ while 1 {
+ puts {ypp-sc-tools pctb remote-server v1}
+ if {[gets stdin l] < 0} break
+ eval remote-serv/$l
+ }
+}
+