summaryrefslogtreecommitdiffstats
path: root/.graveyard
diff options
context:
space:
mode:
authormakefu <root@pigstarter.de>2013-12-10 19:49:34 +0100
committermakefu <root@pigstarter.de>2013-12-10 19:49:34 +0100
commite847dd73730eb638d75e2d0cbc36340be7bb517e (patch)
tree26aa0e70c803ffb4d643e6f63ea05f8336668c57 /.graveyard
parent9baf5c9a0a86cb94469eea069e984cc7253635b8 (diff)
parent93649c0d464de3b62dfd7fbc717386e6905bbbd2 (diff)
Merge branch 'master' of https://github.com/krebscode/painload
Diffstat (limited to '.graveyard')
-rwxr-xr-x.graveyard/autowifi/autowifi212
-rw-r--r--.graveyard/autowifi/confdir/blacklist2
-rwxr-xr-x.graveyard/autowifi/confdir/cracks/00profile11
-rwxr-xr-x.graveyard/autowifi/confdir/cracks/01open6
-rwxr-xr-x.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up2
-rwxr-xr-x.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac5
-rw-r--r--.graveyard/cholerab-live/README6
-rw-r--r--.graveyard/cholerab-live/chol_net.py82
-rw-r--r--.graveyard/cholerab-live/chol_net.pycbin0 -> 4361 bytes
-rwxr-xr-x.graveyard/cholerab-live/cholerab.py36
-rwxr-xr-x.graveyard/cholerab-live/live.sh88
-rw-r--r--.graveyard/cholerab-live/makefu/README6
-rw-r--r--.graveyard/cholerab-live/makefu/chol_net.py82
-rwxr-xr-x.graveyard/cholerab-live/makefu/cholerab.py36
-rw-r--r--.graveyard/cholerab-live/makefu/view.py112
-rwxr-xr-x.graveyard/cholerab-live/ttycnser.sh27
-rw-r--r--.graveyard/cholerab-live/view.py112
-rw-r--r--.graveyard/noise/Makefile18
-rw-r--r--.graveyard/noise/TODO60
-rwxr-xr-x.graveyard/noise/cron/bin/zeit18
-rwxr-xr-x.graveyard/noise/init.d/noise48
-rwxr-xr-x.graveyard/noise/modules/cat14
-rwxr-xr-x.graveyard/noise/modules/chat33
-rwxr-xr-x.graveyard/noise/modules/date6
-rwxr-xr-x.graveyard/noise/modules/echo6
-rwxr-xr-x.graveyard/noise/modules/ein_mal_eins37
-rwxr-xr-x.graveyard/noise/modules/espeak34
-rwxr-xr-x.graveyard/noise/modules/help24
-rwxr-xr-x.graveyard/noise/modules/join15
-rwxr-xr-x.graveyard/noise/modules/lang22
l---------.graveyard/noise/modules/licht1
-rwxr-xr-x.graveyard/noise/modules/mpc14
-rwxr-xr-x.graveyard/noise/modules/names22
-rwxr-xr-x.graveyard/noise/modules/nick10
-rwxr-xr-x.graveyard/noise/modules/overlord14
-rwxr-xr-x.graveyard/noise/modules/part15
-rwxr-xr-x.graveyard/noise/modules/ping24
-rwxr-xr-x.graveyard/noise/modules/play36
-rwxr-xr-x.graveyard/noise/modules/pong26
-rwxr-xr-x.graveyard/noise/modules/query23
-rwxr-xr-x.graveyard/noise/modules/send_to_channel17
-rwxr-xr-x.graveyard/noise/modules/sendmail55
-rwxr-xr-x.graveyard/noise/modules/shackstatus104
-rwxr-xr-x.graveyard/noise/modules/sleep10
-rwxr-xr-x.graveyard/noise/modules/stream2
-rwxr-xr-x.graveyard/noise/modules/temp50
-rwxr-xr-x.graveyard/noise/modules/test13
-rwxr-xr-x.graveyard/noise/modules/twitter125
-rwxr-xr-x.graveyard/noise/modules/vvs17
-rwxr-xr-x.graveyard/noise/modules/wall8
-rwxr-xr-x.graveyard/noise/modules/zeit19
-rwxr-xr-x.graveyard/noise/noise186
-rwxr-xr-x.graveyard/noise/noise-as-user4
-rwxr-xr-x.graveyard/noise/noise-server4
-rw-r--r--.graveyard/temper/.gitignore1
-rw-r--r--.graveyard/temper/99-tempsensor.rules1
-rw-r--r--.graveyard/temper/Makefile20
-rwxr-xr-x.graveyard/temper/collectd-temper.sh9
-rw-r--r--.graveyard/temper/temper.c277
-rw-r--r--.graveyard/temper/temper.h39
60 files changed, 2306 insertions, 0 deletions
diff --git a/.graveyard/autowifi/autowifi b/.graveyard/autowifi/autowifi
new file mode 100755
index 00000000..5bdbde22
--- /dev/null
+++ b/.graveyard/autowifi/autowifi
@@ -0,0 +1,212 @@
+#!/bin/sh -x
+
+confdir=${confdir:-"$(dirname $0)/confdir"}
+interface="wlan0"
+
+exists() { type "$1" >/dev/null 2>/dev/null; }
+
+start_wpa_supplicant(){
+ killall wpa_supplicant
+ sleep 1
+cat>wpa.conf<<EOF
+ctrl_interface=/var/run/wpa_supplicant
+EOF
+ wpa_supplicant -i wlan0 -c wpa.conf -B
+ sleep 4
+}
+
+connect(){
+ #mac ssid encryption key
+ wpa_cli reconfigure
+
+ #INTERFACE PRE CONNECT HOOKS
+ for hook in $(find $confdir/hooks/$interface/pre -type f | sort -u); do
+ $hook $@
+ done
+
+ #PROFILE PRE CONNECT HOOKS
+ for hook in $(find "$confdir/hooks/$2/pre" -type f | sort -u); do
+ $hook $@
+ done
+
+ int=$(wpa_cli add_network | tail -1)
+ wpa_cli set_network $int ssid \"$2\"
+ wpa_cli set_network $int bssid $1
+ #wpa_cli set_network $int ap_scan 1
+ if [ "$3" = "[ESS]" ]; then
+ wpa_cli set_network $int key_mgmt NONE
+ else
+ wpa_cli set_network $int key_mgmt WPA-PSK
+ wpa_cli set_network $int psk \"$4\"
+ fi
+ wpa_cli enable_network $int
+
+ if exists dhcpcd; then
+ dhcpcd -x $interface
+ dhcpcd -w -A $interface
+ elif exists dhclient; then
+ dhclient $interface
+ fi
+
+ if check_gateway && check_internet; then
+ echo yay internet
+ #INTERFACE POST CONNECT HOOKS
+ for hook in $(find $confdir/hooks/$interface/post -type f | sort -u); do
+ $hook $@
+ done
+
+ #PROFILE POST CONNECT HOOKS
+ for hook in $(find "$confdir/hooks/$2/post" -type f | sort -u); do
+ $hook $@
+ done
+
+
+ bandw=$(check_bandwidth)
+ (cat $confdir/wifi_stats | grep -v "|$1|" ; echo "$2|$1|$bandw|$4" ) | sort | uniq > $confdir/wifi_stats2
+ mv $confdir/wifi_stats2 $confdir/wifi_stats
+ return 0
+ fi
+ return 1
+
+}
+print_iwlist_env(){
+ # takes environment:
+ # MAC
+ # FREQ
+ # QUALITY
+ # ENCRYPTION
+ # ESSID
+ for i in MAC FREQ QUALITY ENCRYPTION ESSID;do
+ eval echo ${i}_${count}=\\\"\$"${i}"\\\"
+ done
+}
+
+iwlist_scan(){
+ # usage: iwlist_scan $wifi-itf
+
+ count=0
+ wpa_cli scan >/dev/null
+ sleep 10
+
+ wpa_cli scan_results 2>/dev/null | grep -E "^??:" | sed 's/ / /g' | (while IFS=' ' read MAC FREQ QUALITY ENCRYPTION ESSID
+ do
+ : $((count+=1))
+ print_iwlist_env
+
+ done; echo WIFI_COUNT=$count)
+}
+
+find_count_of_ssid(){
+ c=0
+ for i in `seq 1 $WIFI_COUNT`; do
+ eval SSID=\${ESSID_${i}}
+ if [ "$SSID" = $1 ]; then
+ c+=1
+ echo $i
+ fi
+ done
+ if [ $c -eq 0 ];then
+ exit 1
+ fi
+ exit 0
+}
+
+find_unscanned_networks(){
+ for i in `seq 1 $WIFI_COUNT`; do
+ eval SSID=\${ESSID_${i}}
+ eval MAC=\${MAC_${i}}
+ cat $confdir/wifi_stats 2>/dev/null | (while IFS='|' read SSID MAC BANDW KEY; do
+ if [ "$1" = "$SSID" -a "$2" = "$MAC" ]; then
+ continue
+ fi
+ done; echo $i)
+ done
+ exit 0
+}
+
+connect_to_network_by_ssid(){
+ find_count_of_ssid "$1" | (while read i
+ do
+ loop_over_cracks $i
+ done;exit 1)
+ if [ $? -eq 0 ]; then
+ exit 0
+ fi
+ echo "no network found :("
+ exit 1
+}
+
+connect_with_pw(){
+ find_count_of_ssid "$1" | (while read i
+ do
+ KEY="$2"
+ eval connect \"\${MAC_${i}}\" \"\${ESSID_${i}}\" \${ENCRYPTION_${i}} \"\${KEY}\"
+ if [ $? -eq 0 ]; then
+ exit 0
+ fi
+ done;exit 1)
+}
+
+loop_over_networks(){
+ for i in `seq 1 $WIFI_COUNT`; do
+ loop_over_cracks $i
+ if [ $? -eq 0 ]; then
+ exit 0
+ fi
+ done
+}
+
+loop_over_cracks(){
+ i=$1
+ KEY=''
+ for crack in $(find $confdir/cracks -type f | sort -u); do
+ KEY="$(eval root=$confdir \$crack \"\${ESSID_${i}}\" \"\${MAC_${i}}\" \${FREQ_${i}} \${ENCRYPTION_${i}})"
+ if [ $? -eq 0 ]; then
+ eval connect \"\${MAC_${i}}\" \"\${ESSID_${i}}\" \${ENCRYPTION_${i}} \"\${KEY}\"
+ if [ $? -eq 0 ]; then
+ return 0
+ fi
+ fi
+ done
+ return 1
+}
+
+scan_all(){
+ for i in `seq 1 $WIFI_COUNT`; do
+ loop_over_cracks $i
+ done
+}
+
+scan_unscanned(){
+ find_unscanned_networks | (while read i
+ do
+ loop_over_cracks $i
+ done)
+}
+
+
+check_gateway(){
+ echo ping -c 1 -w 5 $(ip route | grep $interface | awk '/default/{print $3}')
+}
+
+check_internet(){
+ ping -c 1 -w 5 8.8.8.8
+}
+
+check_bandwidth(){
+ echo $(printf "%.16d\n" $(curl ftp://ftp.microsoft.com/Products/mspress/library/ANIMAT.ZIP -w "%{speed_download}" -o /dev/null 2>/dev/null | sed 's/\..*//'))
+}
+
+start_wpa_supplicant
+iwlist_scan > /tmp/$interface.scan
+. /tmp/$interface.scan
+if [ -n "$2" ]; then
+ echo connecting to $1 with pw $2
+ connect_with_pw "$1" "$2"
+elif [ -n "$1" ]; then
+ echo connecting to $1
+ connect_to_network_by_ssid "$1"
+else
+ echo looping network now
+ loop_over_networks
+fi
diff --git a/.graveyard/autowifi/confdir/blacklist b/.graveyard/autowifi/confdir/blacklist
new file mode 100644
index 00000000..f0e5c6a1
--- /dev/null
+++ b/.graveyard/autowifi/confdir/blacklist
@@ -0,0 +1,2 @@
+02:25:9c:41:c6:89
+02:25:9c:41:c4:cc
diff --git a/.graveyard/autowifi/confdir/cracks/00profile b/.graveyard/autowifi/confdir/cracks/00profile
new file mode 100755
index 00000000..c2ad6ec7
--- /dev/null
+++ b/.graveyard/autowifi/confdir/cracks/00profile
@@ -0,0 +1,11 @@
+#!/bin/sh -x
+#ESSID MAC CHANNEL ENCRYPTION WPA WPA2
+# ENV:
+# root (default: /)
+root=${root:-/}
+cat $root/wifi_stats 2>/dev/null | (while IFS='|' read SSID MAC BANDW KEY; do
+ if [ "$1" = "$SSID" -a "$2" = "$MAC" ]; then
+ echo $KEY
+ exit 0
+ fi
+done; exit 1)
diff --git a/.graveyard/autowifi/confdir/cracks/01open b/.graveyard/autowifi/confdir/cracks/01open
new file mode 100755
index 00000000..7bd98e20
--- /dev/null
+++ b/.graveyard/autowifi/confdir/cracks/01open
@@ -0,0 +1,6 @@
+#!/bin/sh -x
+#ESSID MAC CHANNEL ENCRYPTION WPA WPA2
+if [ "$4" = "[ESS]" ]; then
+ exit 0
+fi
+exit 1
diff --git a/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up b/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up
new file mode 100755
index 00000000..3fd786e4
--- /dev/null
+++ b/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up
@@ -0,0 +1,2 @@
+#!/bin/sh
+tincd -n retiolum -kALRM
diff --git a/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac b/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac
new file mode 100755
index 00000000..c3e0632f
--- /dev/null
+++ b/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac
@@ -0,0 +1,5 @@
+#!/bin/sh
+ifconfig wlan0 down
+sleep 1
+macchanger -r wlan0
+ifconfig wlan0 up
diff --git a/.graveyard/cholerab-live/README b/.graveyard/cholerab-live/README
new file mode 100644
index 00000000..b778b98c
--- /dev/null
+++ b/.graveyard/cholerab-live/README
@@ -0,0 +1,6 @@
+
+view.py: contains view classes for cholerab
+cholerab.py: main file
+
+start with :
+python cholerab.py
diff --git a/.graveyard/cholerab-live/chol_net.py b/.graveyard/cholerab-live/chol_net.py
new file mode 100644
index 00000000..ee0f5378
--- /dev/null
+++ b/.graveyard/cholerab-live/chol_net.py
@@ -0,0 +1,82 @@
+from socket import socket, AF_INET,SOCK_DGRAM,IPPROTO_UDP,SOL_SOCKET,SO_REUSEADDR,IP_MULTICAST_TTL,IP_MULTICAST_LOOP,INADDR_ANY,inet_aton,IP_ADD_MEMBERSHIP,IPPROTO_IP
+import struct
+import threading
+import logging
+log = None
+from select import select
+GROUP = '224.110.42.23'
+PORT = 42023
+log = logging.getLogger('CholerabNet')
+class CholerabMulicastNet(threading.Thread):
+ def __init__(self,cholerab,group=GROUP,port=PORT):
+ threading.Thread.__init__(self)
+ self.cholerab=cholerab
+ self.group=group
+ self.port=port
+ self.initSocket()
+ def send_char(self,x,y,char):
+ """ translates given params into network message """
+ self.send_mc("%s %d %d" %(str(ord(char)),x,y))
+ def send_mc(self,arg):
+ """ Sends message via multicast"""
+ try:
+ log.debug("Sending '%s' to %s:%d" % (arg,self.group,self.port))
+ self.ignore_next += 1# we need this to work together correctly with reused sockets
+ self.s.sendto("%s" % arg,0,(self.group,self.port))
+ except Exception ,e:
+ self.ignore_next -=1
+ log.error("IN send_mc:%s"%str(e))
+
+ def initSocket (self,rcv=1):
+ ''' Initializes a Multicast socket '''
+ host = ''
+ log.debug("Setting up Multicast Socket")
+ self.s = socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP)
+ self.s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
+ self.s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, 32)
+ self.s.setsockopt(IPPROTO_IP,IP_MULTICAST_LOOP,1) # we do not want our own packets to be replayed
+ if rcv==1:
+ log.debug("Configuring for Read AND Write")
+ self.s.bind((host,PORT))
+ mreq = struct.pack("4sl", inet_aton(GROUP), INADDR_ANY)
+ self.s.setsockopt(IPPROTO_IP,IP_ADD_MEMBERSHIP,mreq)
+ def run(self):
+ self.running = 1
+ self.ignore_next = 0
+ while self.running:
+ # break if we do not want to loop on
+ ready,output,exception = select([self.s],[],[],1) # try every second
+ for r in ready:
+ if r == self.s:
+ log.debug(str(self.ignore_next))
+ (data,addr) = self.s.recvfrom(1024)
+ if not self.ignore_next:
+ log.debug("Received Data from %s, data %s"%(str(addr),str(data)))
+ self.receive_net(addr,data)
+ else:
+ self.ignore_next -= 1
+
+ def send_stupid(self,addr):
+ """ sends YOU ARE MADE OF STUPID to the right host """
+ #TODO implement me
+ pass
+
+ def receive_net(self,addr,data):
+ """ resolves which nick sent the message
+ TODO handle user resolution in mulicast """
+ try:
+ address,port = addr
+ arr = str(data).split()
+ char = arr[0]
+ x = arr[1]
+ y = arr[2]
+ self.cholerab.write_char(int(x),int(y),chr(int(char)))
+ except Exception, e:
+ log.error("Triggered YOU ARE MADE OF STUPID: %s" % str(e))
+ self.send_stupid(addr)
+
+ def stop(self):
+ '''
+ stops the whole treading stuff gracefully
+ '''
+ self.running=0
diff --git a/.graveyard/cholerab-live/chol_net.pyc b/.graveyard/cholerab-live/chol_net.pyc
new file mode 100644
index 00000000..0694ad6d
--- /dev/null
+++ b/.graveyard/cholerab-live/chol_net.pyc
Binary files differ
diff --git a/.graveyard/cholerab-live/cholerab.py b/.graveyard/cholerab-live/cholerab.py
new file mode 100755
index 00000000..eb9e66df
--- /dev/null
+++ b/.graveyard/cholerab-live/cholerab.py
@@ -0,0 +1,36 @@
+#!/usr/bin/python2
+# -*- coding: utf-8 -*-
+import curses,time
+from view import CursesView
+from chol_net import CholerabMulicastNet
+import logging
+logging.basicConfig(filename='here.log',level=logging.DEBUG)
+log = logging.getLogger('main')
+class Cholerab:
+ def __init__(self):
+ self.view = CursesView(cholerab=self)
+ self.transport = CholerabMulicastNet(cholerab=self)
+ def send_char(self,x,y,char):
+ log.info("Sending %s at (%d,%d) to connected peers" %(char,x,y))
+ self.transport.send_char(x,y,char)
+
+ def write_char(self,x,y,char):
+ log.info("Writing %s at (%d,%d) to view" %(char,x,y))
+ self.view.write_char(x,y,char,user=2)
+ def stop(self):
+ self.view.stop()
+ self.transport.stop()
+ def main(self):
+ self.view.start()
+ self.transport.start()
+ self.view.join()
+ #after view dies, kill the transport as well
+ self.transport.stop()
+ self.transport.join()
+def main():
+ log.debug('started main')
+ chol = Cholerab()
+ chol.main()
+
+if __name__ == "__main__":
+ main()
diff --git a/.graveyard/cholerab-live/live.sh b/.graveyard/cholerab-live/live.sh
new file mode 100755
index 00000000..62a2c3cf
--- /dev/null
+++ b/.graveyard/cholerab-live/live.sh
@@ -0,0 +1,88 @@
+#! /bin/sh
+set -euf
+stty cbreak -echo
+
+go() {
+ state=$1
+ wr 7
+ wr " " >&2
+ wr "state=$state" >&2
+ wr 8
+ $1
+}
+
+rd() {
+ dd bs=1 count=1 2>/dev/null
+}
+
+bufrd() {
+ buf="`rd`"
+ bufinfowr
+}
+
+bufrda() {
+ buf="$buf`rd`"
+ bufinfowr
+}
+
+bufinfowr() {
+ wr 7
+ wr " " >&2
+ wr " " >&2
+ case "$buf" in
+ () wr '^[' >&2;;
+ (*) wr "$buf" >&2;;
+ esac
+ wr "`wr "$buf" | xxd -p`" >&2
+ wr 8
+}
+
+wr() {
+ echo -n "$1"
+}
+
+C0="`echo C0 | xxd -r -p`"; DF="`echo DF | xxd -r -p`"
+E0="`echo E0 | xxd -r -p`"; EF="`echo EF | xxd -r -p`"
+F0="`echo F0 | xxd -r -p`"; F7="`echo F7 | xxd -r -p`"
+S() {
+ bufrd
+ case "$buf" in
+ () go ESC;;
+ () wr ' '; go S;;
+ ([$C0-$DF]) go U1;;
+ ([$E0-$EF]) go U2;;
+ ([$F0-$F7]) go U3;;
+ (*) wr "$buf"; go S;;
+ esac
+}
+
+U1() { buf="$buf`rd`"; wr "$buf"; go S; }
+U2() { buf="$buf`rd`"; go U1; }
+U3() { buf="$buf`rd`"; go U2; }
+
+
+ESC() {
+ bufrda
+ case "$buf" in
+ ('[') go ESC_OSQRB;;
+ (*)
+ wr '^['
+ go S
+ ;;
+ esac
+}
+
+ESC_OSQRB() {
+ bufrda
+ case "$buf" in
+ (''|''|''|'') wr "$buf"; go S;;
+ (*)
+ wr '^[['
+ go S
+ ;;
+ esac
+}
+
+
+wr 'c'
+go S
diff --git a/.graveyard/cholerab-live/makefu/README b/.graveyard/cholerab-live/makefu/README
new file mode 100644
index 00000000..b778b98c
--- /dev/null
+++ b/.graveyard/cholerab-live/makefu/README
@@ -0,0 +1,6 @@
+
+view.py: contains view classes for cholerab
+cholerab.py: main file
+
+start with :
+python cholerab.py
diff --git a/.graveyard/cholerab-live/makefu/chol_net.py b/.graveyard/cholerab-live/makefu/chol_net.py
new file mode 100644
index 00000000..ee0f5378
--- /dev/null
+++ b/.graveyard/cholerab-live/makefu/chol_net.py
@@ -0,0 +1,82 @@
+from socket import socket, AF_INET,SOCK_DGRAM,IPPROTO_UDP,SOL_SOCKET,SO_REUSEADDR,IP_MULTICAST_TTL,IP_MULTICAST_LOOP,INADDR_ANY,inet_aton,IP_ADD_MEMBERSHIP,IPPROTO_IP
+import struct
+import threading
+import logging
+log = None
+from select import select
+GROUP = '224.110.42.23'
+PORT = 42023
+log = logging.getLogger('CholerabNet')
+class CholerabMulicastNet(threading.Thread):
+ def __init__(self,cholerab,group=GROUP,port=PORT):
+ threading.Thread.__init__(self)
+ self.cholerab=cholerab
+ self.group=group
+ self.port=port
+ self.initSocket()
+ def send_char(self,x,y,char):
+ """ translates given params into network message """
+ self.send_mc("%s %d %d" %(str(ord(char)),x,y))
+ def send_mc(self,arg):
+ """ Sends message via multicast"""
+ try:
+ log.debug("Sending '%s' to %s:%d" % (arg,self.group,self.port))
+ self.ignore_next += 1# we need this to work together correctly with reused sockets
+ self.s.sendto("%s" % arg,0,(self.group,self.port))
+ except Exception ,e:
+ self.ignore_next -=1
+ log.error("IN send_mc:%s"%str(e))
+
+ def initSocket (self,rcv=1):
+ ''' Initializes a Multicast socket '''
+ host = ''
+ log.debug("Setting up Multicast Socket")
+ self.s = socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP)
+ self.s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
+ self.s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, 32)
+ self.s.setsockopt(IPPROTO_IP,IP_MULTICAST_LOOP,1) # we do not want our own packets to be replayed
+ if rcv==1:
+ log.debug("Configuring for Read AND Write")
+ self.s.bind((host,PORT))
+ mreq = struct.pack("4sl", inet_aton(GROUP), INADDR_ANY)
+ self.s.setsockopt(IPPROTO_IP,IP_ADD_MEMBERSHIP,mreq)
+ def run(self):
+ self.running = 1
+ self.ignore_next = 0
+ while self.running:
+ # break if we do not want to loop on
+ ready,output,exception = select([self.s],[],[],1) # try every second
+ for r in ready:
+ if r == self.s:
+ log.debug(str(self.ignore_next))
+ (data,addr) = self.s.recvfrom(1024)
+ if not self.ignore_next:
+ log.debug("Received Data from %s, data %s"%(str(addr),str(data)))
+ self.receive_net(addr,data)
+ else:
+ self.ignore_next -= 1
+
+ def send_stupid(self,addr):
+ """ sends YOU ARE MADE OF STUPID to the right host """
+ #TODO implement me
+ pass
+
+ def receive_net(self,addr,data):
+ """ resolves which nick sent the message
+ TODO handle user resolution in mulicast """
+ try:
+ address,port = addr
+ arr = str(data).split()
+ char = arr[0]
+ x = arr[1]
+ y = arr[2]
+ self.cholerab.write_char(int(x),int(y),chr(int(char)))
+ except Exception, e:
+ log.error("Triggered YOU ARE MADE OF STUPID: %s" % str(e))
+ self.send_stupid(addr)
+
+ def stop(self):
+ '''
+ stops the whole treading stuff gracefully
+ '''
+ self.running=0
diff --git a/.graveyard/cholerab-live/makefu/cholerab.py b/.graveyard/cholerab-live/makefu/cholerab.py
new file mode 100755
index 00000000..eb9e66df
--- /dev/null
+++ b/.graveyard/cholerab-live/makefu/cholerab.py
@@ -0,0 +1,36 @@
+#!/usr/bin/python2
+# -*- coding: utf-8 -*-
+import curses,time
+from view import CursesView
+from chol_net import CholerabMulicastNet
+import logging
+logging.basicConfig(filename='here.log',level=logging.DEBUG)
+log = logging.getLogger('main')
+class Cholerab:
+ def __init__(self):
+ self.view = Curs