From 87f9e6893385954aae2a53ccb030bdd457d5dcc7 Mon Sep 17 00:00:00 2001 From: Bob Mottram <bob@robotics.uk.to> Date: Fri, 12 Aug 2016 21:42:23 +0100 Subject: [PATCH] ipfs avahi for mesh --- src/freedombone-image-mesh | 11 +++++------ src/freedombone-mesh-batman | 4 +--- src/zeronetavahi | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/freedombone-image-mesh b/src/freedombone-image-mesh index ed55eee5d..e6945d2d1 100755 --- a/src/freedombone-image-mesh +++ b/src/freedombone-image-mesh @@ -728,19 +728,19 @@ function setup_ipfs { IPFS_KEY_LENGTH=2048 su -c "$IPFS_PATH/jsipfs init -b $IPFS_KEY_LENGTH" - $MY_USERNAME - if [ ! -d ${rootdir}/home/$MY_USERNAME/.ipfs ]; then + if [ ! -d /home/$MY_USERNAME/.ipfs ]; then echo "IPFS could not be initialised for user $MY_USERNAME" >> $INSTALL_LOG exit 7358 fi - TEMP_IPFS_ID=/tmp/ipfsid - su -c "echo $($IPFS_PATH/jsipfs id | grep '\"ID\":' | awk -F '\"' '{print $4}') > $TEMP_IPFS_ID" - $MY_USERNAME - if [ ! -f $TEMP_IPFS_ID ]; then + MY_IPFS_ID=/home/$MY_USERNAME/.ipfs-id + su -c "echo $($IPFS_PATH/jsipfs id | grep '\"ID\":' | awk -F '\"' '{print $4}') > $MY_IPFS_ID" - $MY_USERNAME + if [ ! -f $MY_IPFS_ID ]; then echo 'No IPFS identity was created' >> $INSTALL_LOG exit 37895 fi - IPFS_PEER_ID=$(cat $TEMP_IPFS_ID) + IPFS_PEER_ID=$(cat $MY_IPFS_ID) if [ ${#IPFS_PEER_ID} -lt 10 ]; then echo 'Invalid IPFS peer ID' >> $INSTALL_LOG echo "$IPFS_PEER_ID" >> $INSTALL_LOG @@ -749,7 +749,6 @@ function setup_ipfs { # TODO in avahi service for ipfs replace IPFS_PEER_ID - rm $TEMP_IPFS_ID echo 'IPFS installed with ID $IPFS_PEER_ID' >> $INSTALL_LOG } diff --git a/src/freedombone-mesh-batman b/src/freedombone-mesh-batman index 3b99417cb..6baae0e46 100755 --- a/src/freedombone-mesh-batman +++ b/src/freedombone-mesh-batman @@ -62,7 +62,6 @@ sed -i "s|Wifi channel:.*|Wifi channel:${CHANNEL}|g" $COMPLETION_FILE ZERONET_PORT=15441 IPFS_PORT=4001 -SYNCTHING_PORT=22000 # Ethernet bridge definition (bridged to bat0) BRIDGE=br-mesh @@ -134,8 +133,7 @@ function stop { iptables -D INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT iptables -D INPUT -p udp --dport $ZERONET_PORT -j ACCEPT iptables -D INPUT -p tcp --dport $IPFS_PORT -j ACCEPT - iptables -D INPUT -p udp --dport $SYNCTHING_PORT -j ACCEPT - iptables -D INPUT -p tcp --dport $SYNCTHING_PORT -j ACCEPT + iptables -D INPUT -p udp --dport $IPFS_PORT -j ACCEPT systemctl restart network-manager } diff --git a/src/zeronetavahi b/src/zeronetavahi index a927d623e..2a44d2275 100755 --- a/src/zeronetavahi +++ b/src/zeronetavahi @@ -458,6 +458,32 @@ function zeronet_update_config { fi } +function avahi_ipfs { + MY_IPFS_ID=/home/$MESH_USERNAME/.ipfs-id + if [ ! -f $MY_IPFS_ID ]; then + return + fi + + service_name='ipfs' + service_type='IPFS' + service_protocol='tcp' + service_port=$IPFS_PORT + service_description=$(cat $MY_IPFS_ID) + + echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /etc/avahi/services/${service_name}.service + echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /etc/avahi/services/${service_name}.service + echo '<service-group>' >> /etc/avahi/services/${service_name}.service + echo " <name replace-wildcards=\"yes\">%h ${service_type}</name>" >> /etc/avahi/services/${service_name}.service + echo ' <service>' >> /etc/avahi/services/${service_name}.service + echo " <type>_${service_type}._${service_protocol}</type>" >> /etc/avahi/services/${service_name}.service + echo " <port>${service_port}</port>" >> /etc/avahi/services/${service_name}.service + if [ "$service_description" ]; then + echo " <txt-record>$service_description</txt-record>" >> /tmp/zeronet-blog.service + fi + echo ' </service>' >> /etc/avahi/services/${service_name}.service + echo '</service-group>' >> /etc/avahi/services/${service_name}.service +} + if [ ! -d /etc/avahi ]; then exit 0 fi @@ -472,6 +498,7 @@ if [ $ENABLE_ZERONET ]; then zeronet_update_config fi +avahi_ipfs ipfs_bootstrap #detect_tox_users avahi_remove_info -- GitLab