-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: urcd
action: commit
revision:
path_from:
revision_from: 40c800a36508a961afa1898f2e18062839bbd063:
path_to:
revision_to:

git.thebackupbox.net

urcd

git://git.thebackupbox.net/urcd

commit 40c800a36508a961afa1898f2e18062839bbd063
Author: root <root@d3v11.ano>
Date:   Sun Dec 30 05:21:32 2012 +0000

    [urcd] support for curvecp server2server

diff --git a/README b/README

index 6c6b24442bc0ff5e0088b33436f61311fb5b5b16..

index ..ad06e6884d09a522ca7b635c0bd7a3be1afe703a 100644

--- a/README
+++ b/README
@@ -1,16 +1,14 @@
 urcd:
-  af_unix relay chat daemons
+  af_unix relay chat daemon and
+  af_unix relay chat daemon accessories...

 depends:
   ucspi-tcp, python(>=2.6), daemontools,
-  sh
+  nacl, sh

 recommends:
   cython(>=0.16), gcc

-todo:
-  curvecp
-
 install:
   # python2.6
   ./Make.sh
@@ -32,7 +30,19 @@ install:
   svstat /service/urcd

 server2server:
-  ./bin/add-tcprecv irc.daemon.ano 1234 /service/urcd/socket/
+  ./bin/add-tcprecv your.urcd.ano 1234 /service/urcd/socket/
+
+  # your peers can link their server using:
+  ./bin/add-tcpsend your.urcd.ano 1234 /service/urcd/socket/
+
+  # you will need to link to your peer's server:
+  ./bin/add-tcpsend peer.urcd.ano 4321 /service/urcd/socket/
+
+curvecp server2server:
+  ./bin/add-curvecprecv your.urcd.ano 1234 /service/urcd/socket/

   # your peers can link their server using:
-  ./bin/add-tcpsend irc.daemon.ano 1234 /service/urcd/socket/
+  ./bin/add-curvecpsend your.urcd.ano 1234 /service/urcd/socket/ your.urcd.ano $your_pubkey
+
+  # you will need to link to your peer's server:
+  ./bin/add-curvecpsend peer.urcd.ano 4321 /service/urcd/socket/ peer.urcd.ano $peer_pubkey
diff --git a/bin/add-curvecprecv b/bin/add-curvecprecv
new file mode 100755
index 0000000000000000000000000000000000000000..d10033547113485e28bb4fb752b72f749b97d0c7
--- /dev/null
+++ b/bin/add-curvecprecv
@@ -0,0 +1,31 @@
+#!/bin/sh
+[ -z $3 ] && \
+  echo $0' <addr> <port> </path/to/socket/>' 1>&2 && \
+  exit 64
+
+mkdir -p /services/urcd-curvecprecv-"$1:$2" || exit 1
+
+test -L /services/urcd-curvecprecv-"$1:$2"/serv || \
+  ln -s `pwd`/env/serv /services/urcd-curvecprecv-"$1:$2"/serv || \
+  exit 1
+
+curvecpmakekey /services/urcd-curvecprecv-"$1:$2"/curvecp || exit 1
+
+printf \
+"#!/bin/sh -e
+exec curvecpserver \`cat serv\` curvecp $1 $2 01110101011100100110001101100100 curvecpmessage ./urcrecv $3\n" > \
+/services/urcd-curvecprecv-"$1:$2"/run || exit
+
+chmod +x /services/urcd-curvecprecv-"$1:$2"/run || exit 1
+
+test -L /services/urcd-curvecprecv-"$1:$2"/urcrecv || \
+  ln -s `pwd`/urcrecv /services/urcd-curvecprecv-"$1:$2"/urcrecv || \
+  exit 1
+
+test -L /service/urcd-curvecprecv-"$1:$2" || \
+  ln -s /services/urcd-curvecprecv-"$1:$2" \
+    /service/urcd-curvecprecv-"$1:$2" || \
+    exit 1
+
+printf \
+"PUBKEY: `curvecpprintkey /services/urcd-curvecprecv-"$1:$2"/curvecp`\n"
diff --git a/bin/add-curvecpsend b/bin/add-curvecpsend
new file mode 100755
index 0000000000000000000000000000000000000000..64caab13520bf85bf01123683981fa65770037f8
--- /dev/null
+++ b/bin/add-curvecpsend
@@ -0,0 +1,27 @@
+#!/bin/sh
+[ -z $5 ] && \
+  echo $0' <addr> <port> </path/to/socket/> <serv> <pubkey>' 1>&2 && \
+  exit 64
+
+mkdir -p /services/urcd-curvecpsend-"$1:$2" || exit 1
+
+printf $4 > /services/urcd-curvecpsend-"$1:$2"/serv || exit 1
+
+printf $5 > /services/urcd-curvecpsend-"$1:$2"/pubkey || exit 1
+
+printf \
+"#!/bin/sh -e
+export CURVECPCLIENT=1
+exec curvecpclient \`cat serv\` \`cat pubkey\` $1 $2 01110101011100100110001101100100 curvecpmessage ./urcsend $3\n" > \
+/services/urcd-curvecpsend-"$1:$2"/run || exit
+
+chmod +x /services/urcd-curvecpsend-"$1:$2"/run || exit 1
+
+test -L /services/urcd-curvecpsend-"$1:$2"/urcsend || \
+  ln -s `pwd`/urcsend /services/urcd-curvecpsend-"$1:$2"/urcsend || \
+  exit 1
+
+test -L /service/urcd-curvecpsend-"$1:$2" || \
+  ln -s /services/urcd-curvecpsend-"$1:$2" \
+    /service/urcd-curvecpsend-"$1:$2" || \
+    exit 1
diff --git a/bin/add-tcprecv b/bin/add-tcprecv

index 2457500ba67bbf55748a5c640b98914b52697092..

index ..57a8879ab3065853fd49f6fe740d663e4b8ee048 100755

--- a/bin/add-tcprecv
+++ b/bin/add-tcprecv
@@ -1,5 +1,5 @@
 #!/bin/sh
-[ -z $2 ] && \
+[ -z $3 ] && \
   echo $0' <addr> <port> </path/to/socket/>' 1>&2 && \
   exit 64

diff --git a/bin/add-tcpsend b/bin/add-tcpsend

index 0980100e1e9d6ced26c7bae5bd6cc7903f9d5cdb..

index ..99a23cfebadbffd13a79d8db65b1113035f66a9b 100755

--- a/bin/add-tcpsend
+++ b/bin/add-tcpsend
@@ -1,5 +1,5 @@
 #!/bin/sh
-[ -z $2 ] && \
+[ -z $3 ] && \
   echo $0' <addr> <port> </path/to/socket/>' 1>&2 && \
   exit 64

diff --git a/src/urcsend.pyx b/src/urcsend.pyx

index 114cbb4b8cae3904da11b94d6b4cd5e315f1c51b..

index ..a424403d6b2aa26c429ee47ff3f4c945db165075 100644

--- a/src/urcsend.pyx
+++ b/src/urcsend.pyx
@@ -4,6 +4,8 @@ import signal
 import sys
 import os

+fd = int(os.getenv('CURVECPCLIENT',7))
+
 def sock_close(sn,sf):
   try:
     os.remove(str(os.getpid()))
@@ -30,9 +32,7 @@ while 1:
     continue

   try:
-    if not os.write(7,buffer):
-      break
+    if not os.write(fd,buffer):
+      sock_close(15,0)
   except:
-    break
-
-sock_close(0,0)
+    sock_close(15,0)

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 16:58:52 2024