~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/chat.py

  • Committer: Matt Giuca
  • Date: 2009-12-01 04:27:58 UTC
  • mfrom: (1164.2.46 sphinx-docs)
  • Revision ID: matt.giuca@gmail.com-20091201042758-wuxd9bdec00c283i
Merged sphinx-docs branch. This adds Sphinx documentation for the entire IVLE system (for system administrators and developers), and removes all of our random old document files (all either irrelevant, or moved into the Sphinx docs nicely). Currently incomplete, but ready to merge.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
import cjson
23
23
import cStringIO
24
 
import md5
 
24
import hashlib
25
25
import sys
26
26
import os
27
27
import socket
53
53
            os._exit(0) # kill off parent again.
54
54
        os.umask(077)
55
55
 
 
56
        try:
 
57
            MAXFD = os.sysconf("SC_OPEN_MAX")
 
58
        except:
 
59
            MAXFD = 256
 
60
 
 
61
        # Close all file descriptors, except the socket.
 
62
        for i in xrange(MAXFD):
 
63
            if i == s.fileno():
 
64
                continue
 
65
            try:
 
66
                os.close(i)
 
67
            except OSError:
 
68
                pass
 
69
 
 
70
        si = os.open(os.devnull, os.O_RDONLY)
 
71
        os.dup2(si, sys.stdin.fileno())
 
72
 
 
73
        so = os.open(os.devnull, os.O_WRONLY)
 
74
        os.dup2(so, sys.stdout.fileno())
 
75
 
 
76
        se = os.open(os.devnull, os.O_WRONLY)
 
77
        os.dup2(se, sys.stderr.fileno())
 
78
 
56
79
    if initializer:
57
80
        initializer()
58
81
 
74
97
            env = cjson.decode(inp)
75
98
            
76
99
            # Check that the message is 
77
 
            digest = md5.new(env['content'] + magic).digest().encode('hex')
 
100
            digest = hashlib.md5(env['content'] + magic).hexdigest()
78
101
            if env['digest'] != digest:
79
102
                conn.close()
80
103
                continue
111
134
    sok = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
112
135
    sok.connect((host, port))
113
136
    content = cjson.encode(msg)
114
 
    digest = md5.new(content + magic).digest().encode("hex")
 
137
    digest = hashlib.md5(content + magic).hexdigest()
115
138
    env = {'digest':digest,'content':content}
116
139
    sok.send(cjson.encode(env))
117
140