示例#1
0
文件: instashare.py 项目: rep/pwrcall
def main(options, action, args):
    n = Node(cert=CERTPATH)

    if action == 'listen':
        ic = Instaclient(n)
        loop()
    elif action == 'send':
        targetcap, fp = args

        if not (os.path.exists(fp) and os.path.isfile(fp)):
            print fp, 'not a file'
            return 1

        im = n.establish(MASTERURL)

        def established(rim):
            p = rim.call('open', targetcap)

            def donecb(r):
                print 'done:', r
                n.shutdown()
                unloop()

            def prsink(r):
                print 'sink:', r
                r.notify('init', os.path.basename(fp))
                fs = Filestreamer(open(fp, 'rb'), r, rim.conn)
                fs.p._when(donecb)
                fs.p._except(donecb)

            def prexcept(e):
                print 'Error:', e
                n.shutdown()
                unloop()

            p._when(prsink)
            p._except(prexcept)

        im._when(established)
        loop()

    return 0
示例#2
0
文件: instashare.py 项目: rep/pwrcall
def main(options, action, args):
	n = Node(cert=CERTPATH)

	if action == 'listen':
		ic = Instaclient(n)
		loop()
	elif action == 'send':
		targetcap, fp = args

		if not (os.path.exists(fp) and os.path.isfile(fp)):
			print fp, 'not a file'
			return 1

		im = n.establish(MASTERURL)

		def established(rim):
			p = rim.call('open', targetcap)

			def donecb(r):
				print 'done:', r
				n.shutdown()
				unloop()

			def prsink(r):
				print 'sink:' , r
				r.notify('init', os.path.basename(fp))
				fs = Filestreamer(open(fp, 'rb'), r, rim.conn)
				fs.p._when(donecb)
				fs.p._except(donecb)

			def prexcept(e):
				print 'Error:', e
				n.shutdown()
				unloop()

			p._when(prsink)
			p._except(prexcept)

		im._when(established)
		loop()

	return 0
示例#3
0
class ClientClass(object):
	def __init__(self):
		self.n = Node(cert=CERT)
		self.rpcconn = None
		self.connect()
		
	def connect(self, reason=''):
		#self.rc = self.n.connect(HOST, PORT)
		conn_promise = self.n.establish(PURL)
		conn_promise._when(self.established)
		conn_promise._except(self.notestablished)

	def established(self, rpcconn):
		def delay(reason): later(3.0, self.connect)
		rpcconn.conn._on('close', delay)

		print 'now we are connected!', rpcconn
		self.rpcconn = rpcconn

	def notestablished(self, error):
		later(3.0, self.connect)
示例#4
0
class ClientClass(object):
    def __init__(self):
        self.n = Node(cert=CERT)
        self.rpcconn = None
        self.connect()

    def connect(self, reason=''):
        #self.rc = self.n.connect(HOST, PORT)
        conn_promise = self.n.establish(PURL)
        conn_promise._when(self.established)
        conn_promise._except(self.notestablished)

    def established(self, rpcconn):
        def delay(reason):
            later(3.0, self.connect)

        rpcconn.conn._on('close', delay)

        print 'now we are connected!', rpcconn
        self.rpcconn = rpcconn

    def notestablished(self, error):
        later(3.0, self.connect)
示例#5
0
文件: cli.py 项目: rep/pwrcall
import sys
from pwrcall import loop, unloop, Node, expose
from evnet import later

n = Node(cert='clientside.pem')
math = n.establish(sys.argv[1])

def printexception(r):
	print 'exc:', r
	n.shutdown()
	unloop()

def printresult(result):
	print 'printresult:', result

def close(r=None):
	n.shutdown()
	unloop()

math._except(printexception)
p = math.call('new', './module/', 'test')
p._when(printresult)

ap = p.call('add', 4, 5)
ap._when(printresult)

lp = math.call('list')
lp._when(printresult)

later(5.0,close)
示例#6
0
文件: mathcli.py 项目: rep/pwrcall
import sys
from pwrcall import loop, unloop, Node, expose
import logging
logging.basicConfig(level=logging.DEBUG)

n = Node(cert='clientside.pem')
math = n.establish(sys.argv[1])
#math2 = n.connect('127.0.0.1', 10000).rootobj().call('get', sys.argv[1].split('/')[-1])

def printexception(r):
	print 'exc:', r
	n.shutdown()
	unloop()

math._except(printexception)
p = math.call('add', 11, 17)

def printresult(result):
	print 'printresult:', result
	n.shutdown()
	unloop()

p._when(printresult)

loop()

示例#7
0
文件: giftcli.py 项目: rep/pwrcall
import sys
from pwrcall import loop, unloop, Node, expose, util

n = Node(cert='clientside.pem')
math = n.establish(sys.argv[1])
giftr = n.establish(sys.argv[2])
#math2 = n.connect('127.0.0.1', 10000).rootobj().call('get', sys.argv[1].split('/')[-1])


def printexception(r, msg):
    print 'exc', msg, ':', r
    n.shutdown()
    unloop()


def printresult(result):
    print 'printresult:', result


def revokedone(res):
    print 'revokedone', res


def doneusing(result, m, ccapp):
    print 'giftreceiver is done using object:', result
    fp, hints, cap = util.parse_url(ccapp)
    print 'asking the owner to revoke the cap...'
    revokep = m.conn.call('$node', 'revoke', cap)
    revokep._when(revokedone)
    revokep._except(printexception, 'revoking')
示例#8
0
文件: giftcli.py 项目: rep/pwrcall
import sys
from pwrcall import loop, unloop, Node, expose, util

n = Node(cert='clientside.pem')
math = n.establish(sys.argv[1])
giftr = n.establish(sys.argv[2])
#math2 = n.connect('127.0.0.1', 10000).rootobj().call('get', sys.argv[1].split('/')[-1])

def printexception(r, msg):
	print 'exc', msg, ':', r
	n.shutdown()
	unloop()

def printresult(result):
	print 'printresult:', result

def revokedone(res):
	print 'revokedone', res

def doneusing(result, m, ccapp):
	print 'giftreceiver is done using object:', result
	fp, hints, cap = util.parse_url(ccapp)
	print 'asking the owner to revoke the cap...'
	revokep = m.conn.call('$node', 'revoke', cap)
	revokep._when(revokedone)
	revokep._except(printexception, 'revoking')

def gotclonecap(ccapp, m):
	print 'got clone cap:', ccapp
	rp = giftr.call('donate', ccapp)
	rp._when(doneusing, m, ccapp)