home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: Mailbox/MIME Entity
(archive/mbox).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Mailbox/MIME Entity (archive/mbox)
| magic
| Supported |
100%
| dexvert
| Python Source (text/pythonSource)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| Python script text executable
| default (weak)
| |
99%
| file
| Python script, ASCII text executable
| default (weak)
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/950 MIME Email (1.0)
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 23 20 53 6f 75 72 63 65 | 20 47 65 6e 65 72 61 74 |# Source| Generat|
|00000010| 65 64 20 77 69 74 68 20 | 44 65 63 6f 6d 70 79 6c |ed with |Decompyl|
|00000020| 65 2b 2b 0a 23 20 46 69 | 6c 65 3a 20 69 6e 2e 70 |e++.# Fi|le: in.p|
|00000030| 79 63 20 28 50 79 74 68 | 6f 6e 20 32 2e 35 29 0a |yc (Pyth|on 2.5).|
|00000040| 0a 5f 5f 76 65 72 73 69 | 6f 6e 5f 5f 20 3d 20 27 |.__versi|on__ = '|
|00000050| 39 2e 31 27 0a 5f 5f 74 | 69 74 6c 65 5f 5f 20 3d |9.1'.__t|itle__ =|
|00000060| 20 27 53 65 72 76 69 63 | 65 73 20 61 6e 64 20 53 | 'Servic|es and S|
|00000070| 74 61 74 75 73 20 44 61 | 65 6d 6f 6e 27 0a 5f 5f |tatus Da|emon'.__|
|00000080| 64 6f 63 5f 5f 20 3d 20 | 27 50 72 6f 76 69 64 65 |doc__ = |'Provide|
|00000090| 73 20 70 65 72 73 69 73 | 74 65 6e 74 20 64 61 74 |s persis|tent dat|
|000000a0| 61 20 61 6e 64 20 65 76 | 65 6e 74 20 73 65 72 76 |a and ev|ent serv|
|000000b0| 69 63 65 73 20 74 6f 20 | 48 50 4c 49 50 20 63 6c |ices to |HPLIP cl|
|000000c0| 69 65 6e 74 20 61 70 70 | 6c 69 63 61 74 69 6f 6e |ient app|lication|
|000000d0| 73 2e 27 0a 69 6d 70 6f | 72 74 20 73 79 73 0a 69 |s.'.impo|rt sys.i|
|000000e0| 6d 70 6f 72 74 20 73 6f | 63 6b 65 74 0a 69 6d 70 |mport so|cket.imp|
|000000f0| 6f 72 74 20 6f 73 0a 69 | 6d 70 6f 72 74 20 6f 73 |ort os.i|mport os|
|00000100| 2e 70 61 74 68 20 61 73 | 20 6f 73 0a 69 6d 70 6f |.path as| os.impo|
|00000110| 72 74 20 73 69 67 6e 61 | 6c 0a 69 6d 70 6f 72 74 |rt signa|l.import|
|00000120| 20 67 65 74 6f 70 74 0a | 69 6d 70 6f 72 74 20 67 | getopt.|import g|
|00000130| 6c 6f 62 0a 69 6d 70 6f | 72 74 20 74 69 6d 65 0a |lob.impo|rt time.|
|00000140| 69 6d 70 6f 72 74 20 73 | 65 6c 65 63 74 0a 69 6d |import s|elect.im|
|00000150| 70 6f 72 74 20 70 6f 70 | 65 6e 32 0a 69 6d 70 6f |port pop|en2.impo|
|00000160| 72 74 20 74 68 72 65 61 | 64 69 6e 67 0a 69 6d 70 |rt threa|ding.imp|
|00000170| 6f 72 74 20 72 65 0a 69 | 6d 70 6f 72 74 20 66 63 |ort re.i|mport fc|
|00000180| 6e 74 6c 0a 69 6d 70 6f | 72 74 20 70 77 64 0a 69 |ntl.impo|rt pwd.i|
|00000190| 6d 70 6f 72 74 20 74 65 | 6d 70 66 69 6c 65 0a 66 |mport te|mpfile.f|
|000001a0| 72 6f 6d 20 65 72 72 6e | 6f 20 69 6d 70 6f 72 74 |rom errn|o import|
|000001b0| 20 45 41 4c 52 45 41 44 | 59 2c 20 45 49 4e 50 52 | EALREAD|Y, EINPR|
|000001c0| 4f 47 52 45 53 53 2c 20 | 45 57 4f 55 4c 44 42 4c |OGRESS, |EWOULDBL|
|000001d0| 4f 43 4b 2c 20 45 43 4f | 4e 4e 52 45 53 45 54 2c |OCK, ECO|NNRESET,|
|000001e0| 20 45 4e 4f 54 43 4f 4e | 4e 2c 20 45 53 48 55 54 | ENOTCON|N, ESHUT|
|000001f0| 44 4f 57 4e 2c 20 45 49 | 4e 54 52 2c 20 45 49 53 |DOWN, EI|NTR, EIS|
|00000200| 43 4f 4e 4e 0a 66 72 6f | 6d 20 62 61 73 65 2e 67 |CONN.fro|m base.g|
|00000210| 20 69 6d 70 6f 72 74 20 | 2a 0a 66 72 6f 6d 20 62 | import |*.from b|
|00000220| 61 73 65 2e 63 6f 64 65 | 73 20 69 6d 70 6f 72 74 |ase.code|s import|
|00000230| 20 2a 0a 66 72 6f 6d 20 | 62 61 73 65 2e 6d 73 67 | *.from |base.msg|
|00000240| 20 69 6d 70 6f 72 74 20 | 2a 0a 66 72 6f 6d 20 62 | import |*.from b|
|00000250| 61 73 65 20 69 6d 70 6f | 72 74 20 75 74 69 6c 73 |ase impo|rt utils|
|00000260| 2c 20 64 65 76 69 63 65 | 0a 66 72 6f 6d 20 62 61 |, device|.from ba|
|00000270| 73 65 2e 61 73 79 6e 63 | 20 69 6d 70 6f 72 74 20 |se.async| import |
|00000280| 64 69 73 70 61 74 63 68 | 65 72 2c 20 6c 6f 6f 70 |dispatch|er, loop|
|00000290| 0a 66 72 6f 6d 20 70 72 | 6e 74 20 69 6d 70 6f 72 |.from pr|nt impor|
|000002a0| 74 20 63 75 70 73 0a 61 | 6c 65 72 74 73 20 3d 20 |t cups.a|lerts = |
|000002b0| 7b 20 7d 0a 66 61 78 5f | 66 69 6c 65 20 3d 20 7b |{ }.fax_|file = {|
|000002c0| 20 7d 0a 66 61 78 5f 66 | 69 6c 65 5f 72 65 61 64 | }.fax_f|ile_read|
|000002d0| 79 20 3d 20 7b 20 7d 0a | 66 61 78 5f 6d 65 74 61 |y = { }.|fax_meta|
|000002e0| 5f 64 61 74 61 20 3d 20 | 7b 20 7d 0a 64 65 76 69 |_data = |{ }.devi|
|000002f0| 63 65 73 20 3d 20 7b 20 | 7d 0a 73 6f 63 6b 65 74 |ces = { |}.socket|
|00000300| 5f 6d 61 70 20 3d 20 7b | 20 7d 0a 6c 6f 6f 70 62 |_map = {| }.loopb|
|00000310| 61 63 6b 5f 74 72 69 67 | 67 65 72 20 3d 20 4e 6f |ack_trig|ger = No|
|00000320| 6e 65 0a 0a 63 6c 61 73 | 73 20 53 65 72 76 65 72 |ne..clas|s Server|
|00000330| 44 65 76 69 63 65 28 6f | 62 6a 65 63 74 29 3a 0a |Device(o|bject):.|
|00000340| 20 20 20 20 0a 20 20 20 | 20 64 65 66 20 5f 5f 69 | . | def __i|
|00000350| 6e 69 74 5f 5f 28 73 65 | 6c 66 2c 20 6d 6f 64 65 |nit__(se|lf, mode|
|00000360| 6c 20 3d 20 27 27 29 3a | 0a 20 20 20 20 20 20 20 |l = ''):|. |
|00000370| 20 73 65 6c 66 2e 68 69 | 73 74 6f 72 79 20 3d 20 | self.hi|story = |
|00000380| 75 74 69 6c 73 2e 52 69 | 6e 67 42 75 66 66 65 72 |utils.Ri|ngBuffer|
|00000390| 28 70 72 6f 70 2e 68 69 | 73 74 6f 72 79 5f 73 69 |(prop.hi|story_si|
|000003a0| 7a 65 29 0a 20 20 20 20 | 20 20 20 20 73 65 6c 66 |ze). | self|
|000003b0| 2e 6d 6f 64 65 6c 20 3d | 20 64 65 76 69 63 65 2e |.model =| device.|
|000003c0| 6e 6f 72 6d 61 6c 69 7a | 65 4d 6f 64 65 6c 4e 61 |normaliz|eModelNa|
|000003d0| 6d 65 28 6d 6f 64 65 6c | 29 0a 20 20 20 20 20 20 |me(model|). |
|000003e0| 20 20 73 65 6c 66 2e 63 | 61 63 68 65 20 3d 20 7b | self.c|ache = {|
|000003f0| 20 7d 0a 0a 0a 0a 63 6c | 61 73 73 20 68 70 73 73 | }....cl|ass hpss|
|00000400| 64 5f 73 65 72 76 65 72 | 28 64 69 73 70 61 74 63 |d_server|(dispatc|
|00000410| 68 65 72 29 3a 0a 20 20 | 20 20 0a 20 20 20 20 64 |her):. | . d|
|00000420| 65 66 20 5f 5f 69 6e 69 | 74 5f 5f 28 73 65 6c 66 |ef __ini|t__(self|
|00000430| 2c 20 69 70 2c 20 70 6f | 72 74 29 3a 0a 20 20 20 |, ip, po|rt):. |
|00000440| 20 20 20 20 20 73 65 6c | 66 2e 69 70 20 3d 20 69 | sel|f.ip = i|
|00000450| 70 0a 20 20 20 20 20 20 | 20 20 73 65 6c 66 2e 73 |p. | self.s|
|00000460| 65 6e 64 5f 65 76 65 6e | 74 73 20 3d 20 46 61 6c |end_even|ts = Fal|
|00000470| 73 65 0a 20 20 20 20 20 | 20 20 20 69 66 20 70 6f |se. | if po|
|00000480| 72 74 20 21 3d 20 30 3a | 0a 20 20 20 20 20 20 20 |rt != 0:|. |
|00000490| 20 20 20 20 20 73 65 6c | 66 2e 70 6f 72 74 20 3d | sel|f.port =|
|000004a0| 20 70 6f 72 74 0a 20 20 | 20 20 20 20 20 20 65 6c | port. | el|
|000004b0| 73 65 3a 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |se:. | |
|000004c0| 73 65 6c 66 2e 70 6f 72 | 74 20 3d 20 73 6f 63 6b |self.por|t = sock|
|000004d0| 65 74 2e 68 74 6f 6e 73 | 28 30 29 0a 20 20 20 20 |et.htons|(0). |
|000004e0| 20 20 20 20 64 69 73 70 | 61 74 63 68 65 72 2e 5f | disp|atcher._|
|000004f0| 5f 69 6e 69 74 5f 5f 28 | 73 65 6c 66 29 0a 20 20 |_init__(|self). |
|00000500| 20 20 20 20 20 20 73 65 | 6c 66 2e 74 79 70 20 3d | se|lf.typ =|
|00000510| 20 27 73 65 72 76 65 72 | 27 0a 20 20 20 20 20 20 | 'server|'. |
|00000520| 20 20 73 65 6c 66 2e 63 | 72 65 61 74 65 5f 73 6f | self.c|reate_so|
|00000530| 63 6b 65 74 28 73 6f 63 | 6b 65 74 2e 41 46 5f 49 |cket(soc|ket.AF_I|
|00000540| 4e 45 54 2c 20 73 6f 63 | 6b 65 74 2e 53 4f 43 4b |NET, soc|ket.SOCK|
|00000550| 5f 53 54 52 45 41 4d 29 | 0a 20 20 20 20 20 20 20 |_STREAM)|. |
|00000560| 20 73 65 6c 66 2e 73 65 | 74 5f 72 65 75 73 65 5f | self.se|t_reuse_|
|00000570| 61 64 64 72 28 29 0a 20 | 20 20 20 20 20 20 20 0a |addr(). | .|
|00000580| 20 20 20 20 20 20 20 20 | 74 72 79 3a 0a 20 20 20 | |try:. |
|00000590| 20 20 20 20 20 20 20 20 | 20 73 65 6c 66 2e 62 69 | | self.bi|
|000005a0| 6e 64 28 28 69 70 2c 20 | 70 6f 72 74 29 29 0a 20 |nd((ip, |port)). |
|000005b0| 20 20 20 20 20 20 20 65 | 78 63 65 70 74 20 73 6f | e|xcept so|
|000005c0| 63 6b 65 74 2e 65 72 72 | 6f 72 3a 0a 20 20 20 20 |cket.err|or:. |
|000005d0| 20 20 20 20 20 20 20 20 | 72 61 69 73 65 20 45 72 | |raise Er|
|000005e0| 72 6f 72 28 45 52 52 4f | 52 5f 55 4e 41 42 4c 45 |ror(ERRO|R_UNABLE|
|000005f0| 5f 54 4f 5f 42 49 4e 44 | 5f 53 4f 43 4b 45 54 29 |_TO_BIND|_SOCKET)|
|00000600| 0a 0a 20 20 20 20 20 20 | 20 20 70 72 6f 70 2e 68 |.. | prop.h|
|00000610| 70 73 73 64 5f 70 6f 72 | 74 20 3d 20 73 65 6c 66 |pssd_por|t = self|
|00000620| 2e 70 6f 72 74 20 3d 20 | 73 65 6c 66 2e 73 6f 63 |.port = |self.soc|
|00000630| 6b 65 74 2e 67 65 74 73 | 6f 63 6b 6e 61 6d 65 28 |ket.gets|ockname(|
|00000640| 29 5b 31 5d 0a 20 20 20 | 20 20 20 20 20 73 65 6c |)[1]. | sel|
|00000650| 66 2e 6c 69 73 74 65 6e | 28 35 29 0a 0a 20 20 20 |f.listen|(5).. |
|00000660| 20 0a 20 20 20 20 64 65 | 66 20 77 72 69 74 61 62 | . de|f writab|
|00000670| 6c 65 28 73 65 6c 66 29 | 3a 0a 20 20 20 20 20 20 |le(self)|:. |
|00000680| 20 20 72 65 74 75 72 6e | 20 46 61 6c 73 65 0a 0a | return| False..|
|00000690| 20 20 20 20 0a 20 20 20 | 20 64 65 66 20 72 65 61 | . | def rea|
|000006a0| 64 61 62 6c 65 28 73 65 | 6c 66 29 3a 0a 20 20 20 |dable(se|lf):. |
|000006b0| 20 20 20 20 20 72 65 74 | 75 72 6e 20 73 65 6c 66 | ret|urn self|
|000006c0| 2e 61 63 63 65 70 74 69 | 6e 67 0a 0a 20 20 20 20 |.accepti|ng.. |
|000006d0| 0a 20 20 20 20 64 65 66 | 20 68 61 6e 64 6c 65 5f |. def| handle_|
|000006e0| 61 63 63 65 70 74 28 73 | 65 6c 66 29 3a 0a 20 20 |accept(s|elf):. |
|000006f0| 20 20 20 20 20 20 0a 20 | 20 20 20 20 20 20 20 74 | . | t|
|00000700| 72 79 3a 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ry:. | |
|00000710| 28 63 6f 6e 6e 2c 20 61 | 64 64 72 29 20 3d 20 73 |(conn, a|ddr) = s|
|00000720| 65 6c 66 2e 61 63 63 65 | 70 74 28 29 0a 20 20 20 |elf.acce|pt(). |
|00000730| 20 20 20 20 20 20 20 20 | 20 6c 6f 67 2e 64 65 62 | | log.deb|
|00000740| 75 67 28 27 43 6f 6e 6e | 65 63 74 65 64 20 74 6f |ug('Conn|ected to|
|00000750| 20 63 6c 69 65 6e 74 3a | 20 25 73 3a 25 64 20 28 | client:| %s:%d (|
|00000760| 25 64 29 27 20 25 20 28 | 61 64 64 72 5b 30 5d 2c |%d)' % (|addr[0],|
|00000770| 20 61 64 64 72 5b 31 5d | 2c 20 73 65 6c 66 2e 5f | addr[1]|, self._|
|00000780| 66 69 6c 65 6e 6f 29 29 | 0a 20 20 20 20 20 20 20 |fileno))|. |
|00000790| 20 65 78 63 65 70 74 20 | 73 6f 63 6b 65 74 2e 65 | except |socket.e|
|000007a0| 72 72 6f 72 3a 0a 20 20 | 20 20 20 20 20 20 20 20 |rror:. | |
|000007b0| 20 20 6c 6f 67 2e 65 72 | 72 6f 72 28 27 53 6f 63 | log.er|ror('Soc|
|000007c0| 6b 65 74 20 65 72 72 6f | 72 20 6f 6e 20 61 63 63 |ket erro|r on acc|
|000007d0| 65 70 74 28 29 27 29 0a | 20 20 20 20 20 20 20 20 |ept()').| |
|000007e0| 20 20 20 20 72 65 74 75 | 72 6e 20 4e 6f 6e 65 0a | retu|rn None.|
|000007f0| 20 20 20 20 20 20 20 20 | 65 78 63 65 70 74 20 54 | |except T|
|00000800| 79 70 65 45 72 72 6f 72 | 3a 0a 20 20 20 20 20 20 |ypeError|:. |
|00000810| 20 20 20 20 20 20 6c 6f | 67 2e 65 72 72 6f 72 28 | lo|g.error(|
|00000820| 27 45 57 4f 55 4c 44 42 | 4c 4f 43 4b 20 65 78 63 |'EWOULDB|LOCK exc|
|00000830| 65 70 74 69 6f 6e 20 6f | 6e 20 61 63 63 65 70 74 |eption o|n accept|
|00000840| 28 29 27 29 0a 20 20 20 | 20 20 20 20 20 20 20 20 |()'). | |
|00000850| 20 72 65 74 75 72 6e 20 | 4e 6f 6e 65 0a 0a 20 20 | return |None.. |
|00000860| 20 20 20 20 20 20 68 61 | 6e 64 6c 65 72 20 3d 20 | ha|ndler = |
|00000870| 68 70 73 73 64 5f 68 61 | 6e 64 6c 65 72 28 63 6f |hpssd_ha|ndler(co|
|00000880| 6e 6e 2c 20 61 64 64 72 | 2c 20 73 65 6c 66 29 0a |nn, addr|, self).|
|00000890| 0a 20 20 20 20 0a 20 20 | 20 20 64 65 66 20 68 61 |. . | def ha|
|000008a0| 6e 64 6c 65 5f 63 6c 6f | 73 65 28 73 65 6c 66 29 |ndle_clo|se(self)|
|000008b0| 3a 0a 20 20 20 20 20 20 | 20 20 64 69 73 70 61 74 |:. | dispat|
|000008c0| 63 68 65 72 2e 68 61 6e | 64 6c 65 5f 63 6c 6f 73 |cher.han|dle_clos|
|000008d0| 65 28 73 65 6c 66 29 0a | 0a 0a 0a 63 6c 61 73 73 |e(self).|...class|
|000008e0| 20 68 70 73 73 64 5f 68 | 61 6e 64 6c 65 72 28 64 | hpssd_h|andler(d|
|000008f0| 69 73 70 61 74 63 68 65 | 72 29 3a 0a 20 20 20 20 |ispatche|r):. |
|00000900| 0a 20 20 20 20 64 65 66 | 20 5f 5f 69 6e 69 74 5f |. def| __init_|
|00000910| 5f 28 73 65 6c 66 2c 20 | 63 6f 6e 6e 2c 20 61 64 |_(self, |conn, ad|
|00000920| 64 72 2c 20 73 65 72 76 | 65 72 29 3a 0a 20 20 20 |dr, serv|er):. |
|00000930| 20 20 20 20 20 64 69 73 | 70 61 74 63 68 65 72 2e | dis|patcher.|
|00000940| 5f 5f 69 6e 69 74 5f 5f | 28 73 65 6c 66 2c 20 73 |__init__|(self, s|
|00000950| 6f 63 6b 20 3d 20 63 6f | 6e 6e 29 0a 20 20 20 20 |ock = co|nn). |
|00000960| 20 20 20 20 73 65 6c 66 | 2e 61 64 64 72 20 3d 20 | self|.addr = |
|00000970| 61 64 64 72 0a 20 20 20 | 20 20 20 20 20 73 65 6c |addr. | sel|
|00000980| 66 2e 69 6e 5f 62 75 66 | 66 65 72 20 3d 20 27 27 |f.in_buf|fer = ''|
|00000990| 0a 20 20 20 20 20 20 20 | 20 73 65 6c 66 2e 6f 75 |. | self.ou|
|000009a0| 74 5f 62 75 66 66 65 72 | 20 3d 20 27 27 0a 20 20 |t_buffer| = ''. |
|000009b0| 20 20 20 20 20 20 73 65 | 6c 66 2e 73 65 72 76 65 | se|lf.serve|
|000009c0| 72 20 3d 20 73 65 72 76 | 65 72 0a 20 20 20 20 20 |r = serv|er. |
|000009d0| 20 20 20 73 65 6c 66 2e | 66 69 65 6c 64 73 20 3d | self.|fields =|
|000009e0| 20 7b 20 7d 0a 20 20 20 | 20 20 20 20 20 73 65 6c | { }. | sel|
|000009f0| 66 2e 70 61 79 6c 6f 61 | 64 20 3d 20 27 27 0a 20 |f.payloa|d = ''. |
|00000a00| 20 20 20 20 20 20 20 73 | 65 6c 66 2e 73 69 67 6e | s|elf.sign|
|00000a10| 61 6c 5f 65 78 69 74 20 | 3d 20 46 61 6c 73 65 0a |al_exit |= False.|
|00000a20| 20 20 20 20 20 20 20 20 | 73 65 6c 66 2e 74 79 70 | |self.typ|
|00000a30| 20 3d 20 27 27 0a 20 20 | 20 20 20 20 20 20 73 65 | = ''. | se|
|00000a40| 6c 66 2e 73 65 6e 64 5f | 65 76 65 6e 74 73 20 3d |lf.send_|events =|
|00000a50| 20 46 61 6c 73 65 0a 20 | 20 20 20 20 20 20 20 73 | False. | s|
|00000a60| 65 6c 66 2e 75 73 65 72 | 6e 61 6d 65 20 3d 20 27 |elf.user|name = '|
|00000a70| 27 0a 20 20 20 20 20 20 | 20 20 73 65 6c 66 2e 68 |'. | self.h|
|00000a80| 61 6e 64 6c 65 72 73 20 | 3d 20 7b 0a 20 20 20 20 |andlers |= {. |
|00000a90| 20 20 20 20 20 20 20 20 | 27 73 65 74 61 6c 65 72 | |'setaler|
|00000aa0| 74 73 27 3a 20 73 65 6c | 66 2e 68 61 6e 64 6c 65 |ts': sel|f.handle|
|00000ab0| 5f 73 65 74 61 6c 65 72 | 74 73 2c 0a 20 20 20 20 |_setaler|ts,. |
|00000ac0| 20 20 20 20 20 20 20 20 | 27 74 65 73 74 65 6d 61 | |'testema|
|00000ad0| 69 6c 27 3a 20 73 65 6c | 66 2e 68 61 6e 64 6c 65 |il': sel|f.handle|
|00000ae0| 5f 74 65 73 74 5f 65 6d | 61 69 6c 2c 0a 20 20 20 |_test_em|ail,. |
|00000af0| 20 20 20 20 20 20 20 20 | 20 27 71 75 65 72 79 68 | | 'queryh|
|00000b00| 69 73 74 6f 72 79 27 3a | 20 73 65 6c 66 2e 68 61 |istory':| self.ha|
|00000b10| 6e 64 6c 65 5f 71 75 65 | 72 79 68 69 73 74 6f 72 |ndle_que|ryhistor|
|00000b20| 79 2c 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 27 |y,. | '|
|00000b30| 73 65 74 76 61 6c 75 65 | 27 3a 20 73 65 6c 66 2e |setvalue|': self.|
|00000b40| 68 61 6e 64 6c 65 5f 73 | 65 74 76 61 6c 75 65 2c |handle_s|etvalue,|
|00000b50| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 27 67 65 |. | 'ge|
|00000b60| 74 76 61 6c 75 65 27 3a | 20 73 65 6c 66 2e 68 61 |tvalue':| self.ha|
|00000b70| 6e 64 6c 65 5f 67 65 74 | 76 61 6c 75 65 2c 0a 20 |ndle_get|value,. |
|00000b80| 20 20 20 20 20 20 20 20 | 20 20 20 27 65 76 65 6e | | 'even|
|00000b90| 74 27 3a 20 73 65 6c 66 | 2e 68 61 6e 64 6c 65 5f |t': self|.handle_|
|00000ba0| 65 76 65 6e 74 2c 0a 20 | 20 20 20 20 20 20 20 20 |event,. | |
|00000bb0| 20 20 20 27 72 65 67 69 | 73 74 65 72 67 75 69 65 | 'regi|sterguie|
|00000bc0| 76 65 6e 74 27 3a 20 73 | 65 6c 66 2e 68 61 6e 64 |vent': s|elf.hand|
|00000bd0| 6c 65 5f 72 65 67 69 73 | 74 65 72 67 75 69 65 76 |le_regis|terguiev|
|00000be0| 65 6e 74 2c 0a 20 20 20 | 20 20 20 20 20 20 20 20 |ent,. | |
|00000bf0| 20 27 75 6e 72 65 67 69 | 73 74 65 72 67 75 69 65 | 'unregi|sterguie|
|00000c00| 76 65 6e 74 27 3a 20 73 | 65 6c 66 2e 68 61 6e 64 |vent': s|elf.hand|
|00000c10| 6c 65 5f 75 6e 72 65 67 | 69 73 74 65 72 67 75 69 |le_unreg|istergui|
|00000c20| 65 76 65 6e 74 2c 0a 20 | 20 20 20 20 20 20 20 20 |event,. | |
|00000c30| 20 20 20 27 65 78 69 74 | 65 76 65 6e 74 27 3a 20 | 'exit|event': |
|00000c40| 73 65 6c 66 2e 68 61 6e | 64 6c 65 5f 65 78 69 74 |self.han|dle_exit|
|00000c50| 2c 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 27 68 |,. | 'h|
|00000c60| 70 66 61 78 62 65 67 69 | 6e 27 3a 20 73 65 6c 66 |pfaxbegi|n': self|
|00000c70| 2e 68 61 6e 64 6c 65 5f | 68 70 66 61 78 62 65 67 |.handle_|hpfaxbeg|
|00000c80| 69 6e 2c 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |in,. | |
|00000c90| 27 68 70 66 61 78 64 61 | 74 61 27 3a 20 73 65 6c |'hpfaxda|ta': sel|
|00000ca0| 66 2e 68 61 6e 64 6c 65 | 5f 68 70 66 61 78 64 61 |f.handle|_hpfaxda|
|00000cb0| 74 61 2c 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ta,. | |
|00000cc0| 27 68 70 66 61 78 65 6e | 64 27 3a 20 73 65 6c 66 |'hpfaxen|d': self|
|00000cd0| 2e 68 61 6e 64 6c 65 5f | 68 70 66 61 78 65 6e 64 |.handle_|hpfaxend|
|00000ce0| 2c 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 27 66 |,. | 'f|
|00000cf0| 61 78 67 65 74 64 61 74 | 61 27 3a 20 73 65 6c 66 |axgetdat|a': self|
|00000d00| 2e 68 61 6e 64 6c 65 5f | 66 61 78 67 65 74 64 61 |.handle_|faxgetda|
|00000d10| 74 61 2c 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ta,. | |
|00000d20| 27 66 61 78 63 68 65 63 | 6b 27 3a 20 73 65 6c 66 |'faxchec|k': self|
|00000d30| 2e 68 61 6e 64 6c 65 5f | 66 61 78 63 68 65 63 6b |.handle_|faxcheck|
|00000d40| 2c 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 27 75 |,. | 'u|
|00000d50| 6e 6b 6e 6f 77 6e 27 3a | 20 73 65 6c 66 2e 68 61 |nknown':| self.ha|
|00000d60| 6e 64 6c 65 5f 75 6e 6b | 6e 6f 77 6e 20 7d 0a 0a |ndle_unk|nown }..|
|00000d70| 20 20 20 20 0a 20 20 20 | 20 64 65 66 20 68 61 6e | . | def han|
|00000d80| 64 6c 65 5f 72 65 61 64 | 28 73 65 6c 66 29 3a 0a |dle_read|(self):.|
|00000d90| 20 20 20 20 20 20 20 20 | 6c 6f 67 2e 64 65 62 75 | |log.debu|
|00000da0| 67 28 27 52 65 61 64 69 | 6e 67 20 64 61 74 61 20 |g('Readi|ng data |
|00000db0| 6f 6e 20 63 68 61 6e 6e | 65 6c 20 28 25 64 29 27 |on chann|el (%d)'|
|00000dc0| 20 25 20 73 65 6c 66 2e | 5f 66 69 6c 65 6e 6f 29 | % self.|_fileno)|
|00000dd0| 0a 20 20 20 20 20 20 20 | 20 73 65 6c 66 2e 69 6e |. | self.in|
|00000de0| 5f 62 75 66 66 65 72 20 | 3d 20 73 65 6c 66 2e 72 |_buffer |= self.r|
|00000df0| 65 63 76 28 70 72 6f 70 | 2e 6d 61 78 5f 6d 65 73 |ecv(prop|.max_mes|
|00000e00| 73 61 67 65 5f 72 65 61 | 64 29 0a 20 20 20 20 20 |sage_rea|d). |
|00000e10| 20 20 20 69 66 20 6e 6f | 74 20 73 65 6c 66 2e 69 | if no|t self.i|
|00000e20| 6e 5f 62 75 66 66 65 72 | 3a 0a 20 20 20 20 20 20 |n_buffer|:. |
|00000e30| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 46 61 6c | re|turn Fal|
|00000e40| 73 65 0a 20 20 20 20 20 | 20 20 20 0a 20 20 20 20 |se. | . |
|00000e50| 20 20 20 20 6c 6f 67 2e | 64 65 62 75 67 28 72 65 | log.|debug(re|
|00000e60| 70 72 28 73 65 6c 66 2e | 69 6e 5f 62 75 66 66 65 |pr(self.|in_buffe|
|00000e70| 72 29 29 0a 20 20 20 20 | 20 20 20 20 72 65 6d 61 |r)). | rema|
|00000e80| 69 6e 69 6e 67 5f 6d 73 | 67 20 3d 20 73 65 6c 66 |ining_ms|g = self|
|00000e90| 2e 69 6e 5f 62 75 66 66 | 65 72 0a 20 20 20 20 20 |.in_buff|er. |
|00000ea0| 20 20 20 77 68 69 6c 65 | 20 54 72 75 65 3a 0a 20 | while| True:. |
|00000eb0| 20 20 20 20 20 20 20 20 | 20 20 20 0a 20 20 20 20 | | . |
|00000ec0| 20 20 20 20 20 20 20 20 | 74 72 79 3a 0a 20 20 20 | |try:. |
|00000ed0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 73 65 | | (se|
|00000ee0| 6c 66 2e 66 69 65 6c 64 | 73 2c 20 73 65 6c 66 2e |lf.field|s, self.|
|00000ef0| 70 61 79 6c 6f 61 64 2c | 20 72 65 6d 61 69 6e 69 |payload,| remaini|
|00000f00| 6e 67 5f 6d 73 67 29 20 | 3d 20 70 61 72 73 65 4d |ng_msg) |= parseM|
|00000f10| 65 73 73 61 67 65 28 72 | 65 6d 61 69 6e 69 6e 67 |essage(r|emaining|
|00000f20| 5f 6d 73 67 29 0a 20 20 | 20 20 20 20 20 20 20 20 |_msg). | |
|00000f30| 20 20 65 78 63 65 70 74 | 20 45 72 72 6f 72 3a 0a | except| Error:.|
|00000f40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000f50| 65 20 3d 20 4e 6f 6e 65 | 0a 20 20 20 20 20 20 20 |e = None|. |
|00000f60| 20 20 20 20 20 20 20 20 | 20 65 72 72 20 3d 20 65 | | err = e|
|00000f70| 2e 6f 70 74 0a 20 20 20 | 20 20 20 20 20 20 20 20 |.opt. | |
|00000f80| 20 20 20 20 20 6c 6f 67 | 2e 77 61 72 6e 28 27 4d | log|.warn('M|
|00000f90| 65 73 73 61 67 65 20 70 | 61 72 73 69 6e 67 20 65 |essage p|arsing e|
|00000fa0| 72 72 6f 72 3a 20 25 73 | 20 28 25 64 29 27 20 25 |rror: %s| (%d)' %|
|00000fb0| 20 28 65 2e 6d 73 67 2c | 20 65 72 72 29 29 0a 20 | (e.msg,| err)). |
|00000fc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 73 | | s|
|00000fd0| 65 6c 66 2e 6f 75 74 5f | 62 75 66 66 65 72 20 3d |elf.out_|buffer =|
|00000fe0| 20 73 65 6c 66 2e 68 61 | 6e 64 6c 65 5f 75 6e 6b | self.ha|ndle_unk|
|00000ff0| 6e 6f 77 6e 28 65 72 72 | 29 0a 20 20 20 20 20 20 |nown(err|). |
|00001000| 20 20 20 20 20 20 20 20 | 20 20 6c 6f 67 2e 64 65 | | log.de|
|00001010| 62 75 67 28 73 65 6c 66 | 2e 6f 75 74 5f 62 75 66 |bug(self|.out_buf|
|00001020| 66 65 72 29 0a 20 20 20 | 20 20 20 20 20 20 20 20 |fer). | |
|00001030| 20 20 20 20 20 72 65 74 | 75 72 6e 20 54 72 75 65 | ret|urn True|
|00001040| 0a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 6d 73 |.. | ms|
|00001050| 67 5f 74 79 70 65 20 3d | 20 73 65 6c 66 2e 66 69 |g_type =| self.fi|
|00001060| 65 6c 64 73 2e 67 65 74 | 28 27 6d 73 67 27 2c 20 |elds.get|('msg', |
|00001070| 27 75 6e 6b 6e 6f 77 6e | 27 29 2e 6c 6f 77 65 72 |'unknown|').lower|
|00001080| 28 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 6c |(). | l|
|00001090| 6f 67 2e 64 65 62 75 67 | 28 27 48 61 6e 64 6c 69 |og.debug|('Handli|
|000010a0| 6e 67 3a 20 25 73 20 25 | 73 20 25 73 27 20 25 20 |ng: %s %|s %s' % |
|000010b0| 28 27 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |('******|********|
|000010c0| 2a 2a 2a 2a 2a 2a 27 2c | 20 6d 73 67 5f 74 79 70 |******',| msg_typ|
|000010d0| 65 2c 20 27 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |e, '****|********|
|000010e0| 2a 2a 2a 2a 2a 2a 2a 2a | 27 29 29 0a 20 20 20 20 |********|')). |
|000010f0| 20 20 20 20 20 20 20 20 | 6c 6f 67 2e 64 65 62 75 | |log.debu|
|00001100| 67 28 72 65 70 72 28 73 | 65 6c 66 2e 69 6e 5f 62 |g(repr(s|elf.in_b|
|00001110| 75 66 66 65 72 29 29 0a | 20 20 20 20 20 20 20 20 |uffer)).| |
|00001120| 20 20 20 20 0a 20 20 20 | 20 20 20 20 20 20 20 20 | . | |
|00001130| 20 74 72 79 3a 0a 20 20 | 20 20 20 20 20 20 20 20 | try:. | |
|00001140| 20 20 20 20 20 20 73 65 | 6c 66 2e 68 61 6e 64 6c | se|lf.handl|
|00001150| 65 72 73 2e 67 65 74 28 | 6d 73 67 5f 74 79 70 65 |ers.get(|msg_type|
|00001160| 2c 20 73 65 6c 66 2e 68 | 61 6e 64 6c 65 5f 75 6e |, self.h|andle_un|
|00001170| 6b 6e 6f 77 6e 29 28 29 | 0a 20 20 20 20 20 20 20 |known)()|. |
|00001180| 20 20 20 20 20 65 78 63 | 65 70 74 20 45 72 72 6f | exc|ept Erro|
|00001190| 72 3a 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |r:. | |
|000011a0| 20 20 20 6c 6f 67 2e 65 | 72 72 6f 72 28 27 55 6e | log.e|rror('Un|
|000011b0| 68 61 6e 64 6c 65 64 20 | 65 78 63 65 70 74 69 6f |handled |exceptio|
|000011c0| 6e 20 64 75 72 69 6e 67 | 20 70 72 6f 63 65 73 73 |n during| process|
|000011d0| 69 6e 67 3a 27 29 0a 20 | 20 20 20 20 20 20 20 20 |ing:'). | |
|000011e0| 20 20 20 20 20 20 20 6c | 6f 67 2e 65 78 63 65 70 | l|og.excep|
|000011f0| 74 69 6f 6e 28 29 0a 0a | 20 20 20 20 20 20 20 20 |tion()..| |
|00001200| 20 20 20 20 0a 20 20 20 | 20 20 20 20 20 20 20 20 | . | |
|00001210| 20 74 72 79 3a 0a 20 20 | 20 20 20 20 20 20 20 20 | try:. | |
|00001220| 20 20 20 20 20 20 73 65 | 6c 66 2e 68 61 6e 64 6c | se|lf.handl|
|00001230| 65 5f 77 72 69 74 65 28 | 29 0a 20 20 20 20 20 20 |e_write(|). |
|00001240| 20 20 20 20 20 20 65 78 | 63 65 70 74 20 73 6f 63 | ex|cept soc|
|00001250| 6b 65 74 2e 65 72 72 6f | 72 3a 0a 20 20 20 20 20 |ket.erro|r:. |
|00001260| 20 20 20 20 20 20 20 20 | 20 20 20 77 68 79 20 3d | | why =|
|00001270| 20 4e 6f 6e 65 0a 20 20 | 20 20 20 20 20 20 20 20 | None. | |
|00001280| 20 20 20 20 20 20 6c 6f | 67 2e 65 72 72 6f 72 28 | lo|g.error(|
|00001290| 27 53 6f 63 6b 65 74 20 | 65 72 72 6f 72 3a 20 25 |'Socket |error: %|
|000012a0| 73 27 20 25 20 77 68 79 | 29 0a 0a 20 20 20 20 20 |s' % why|).. |
|000012b0| 20 20 20 20 20 20 20 69 | 66 20 6e 6f 74 20 72 65 | i|f not re|
|000012c0| 6d 61 69 6e 69 6e 67 5f | 6d 73 67 3a 0a 20 20 20 |maining_|msg:. |
|000012d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 72 65 | | bre|
|000012e0| 61 6b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ak. | |
|000012f0| 20 20 20 63 6f 6e 74 69 | 6e 75 65 0a 20 20 20 20 | conti|nue. |
|00001300| 20 20 20 20 72 65 74 75 | 72 6e 20 54 72 75 65 0a | retu|rn True.|
|00001310| 0a 20 20 20 20 0a 20 20 | 20 20 64 65 66 20 68 61 |. . | def ha|
|00001320| 6e 64 6c 65 5f 75 6e 6b | 6e 6f 77 6e 28 73 65 6c |ndle_unk|nown(sel|
|00001330| 66 2c 20 65 72 72 20 3d | 20 45 52 52 4f 52 5f 49 |f, err =| ERROR_I|
|00001340| 4e 56 41 4c 49 44 5f 4d | 53 47 5f 54 59 50 45 29 |NVALID_M|SG_TYPE)|
|00001350| 3a 0a 20 20 20 20 20 20 | 20 20 70 61 73 73 0a 0a |:. | pass..|
|00001360| 20 20 20 20 0a 20 20 20 | 20 64 65 66 20 68 61 6e | . | def han|
|00001370| 64 6c 65 5f 77 72 69 74 | 65 28 73 65 6c 66 29 3a |dle_writ|e(self):|
|00001380| 0a 20 20 20 20 20 20 20 | 20 69 66 20 6e 6f 74 20 |. | if not |
|00001390| 73 65 6c 66 2e 6f 75 74 | 5f 62 75 66 66 65 72 3a |self.out|_buffer:|
|000013a0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 72 65 74 |. | ret|
|000013b0| 75 72 6e 20 4e 6f 6e 65 | 0a 20 20 20 20 20 20 20 |urn None|. |
|000013c0| 20 0a 20 20 20 20 20 20 | 20 20 6c 6f 67 2e 64 65 | . | log.de|
|000013d0| 62 75 67 28 27 53 65 6e | 64 69 6e 67 20 64 61 74 |bug('Sen|ding dat|
|000013e0| 61 20 6f 6e 20 63 68 61 | 6e 6e 65 6c 20 28 25 64 |a on cha|nnel (%d|
|000013f0| 29 27 20 25 20 73 65 6c | 66 2e 5f 66 69 6c 65 6e |)' % sel|f._filen|
|00001400| 6f 29 0a 20 20 20 20 20 | 20 20 20 6c 6f 67 2e 64 |o). | log.d|
|00001410| 65 62 75 67 28 72 65 70 | 72 28 73 65 6c 66 2e 6f |ebug(rep|r(self.o|
|00001420| 75 74 5f 62 75 66 66 65 | 72 29 29 0a 20 20 20 20 |ut_buffe|r)). |
|00001430| 20 20 20 20 77 68 69 6c | 65 20 73 65 6c 66 2e 6f | whil|e self.o|
|00001440| 75 74 5f 62 75 66 66 65 | 72 3a 0a 20 20 20 20 20 |ut_buffe|r:. |
|00001450| 20 20 20 20 20 20 20 73 | 65 6e 74 20 3d 20 73 65 | s|ent = se|
|00001460| 6c 66 2e 73 65 6e 64 28 | 73 65 6c 66 2e 6f 75 74 |lf.send(|self.out|
|00001470| 5f 62 75 66 66 65 72 29 | 0a 20 20 20 20 20 20 20 |_buffer)|. |
|00001480| 20 20 20 20 20 73 65 6c | 66 2e 6f 75 74 5f 62 75 | sel|f.out_bu|
|00001490| 66 66 65 72 20 3d 20 73 | 65 6c 66 2e 6f 75 74 5f |ffer = s|elf.out_|
|000014a0| 62 75 66 66 65 72 5b 73 | 65 6e 74 3a 5d 0a 20 20 |buffer[s|ent:]. |
|000014b0| 20 20 20 20 20 20 69 66 | 20 73 65 6c 66 2e 73 69 | if| self.si|
|000014c0| 67 6e 61 6c 5f 65 78 69 | 74 3a 0a 20 20 20 20 20 |gnal_exi|t:. |
|000014d0| 20 20 20 20 20 20 20 73 | 65 6c 66 2e 68 61 6e 64 | s|elf.hand|
|000014e0| 6c 65 5f 63 6c 6f 73 65 | 28 29 0a 20 20 20 20 20 |le_close|(). |
|000014f0| 20 20 20 0a 0a 20 20 20 | 20 0a 20 20 20 20 64 65 | .. | . de|
|00001500| 66 20 5f 5f 63 68 65 63 | 6b 64 65 76 69 63 65 28 |f __chec|kdevice(|
|00001510| 73 65 6c 66 2c 20 64 65 | 76 69 63 65 5f 75 72 69 |self, de|vice_uri|
|00001520| 29 3a 0a 20 20 20 20 20 | 20 20 20 0a 20 20 20 20 |):. | . |
|00001530| 20 20 20 20 74 72 79 3a | 0a 20 20 20 20 20 20 20 | try:|. |
|00001540| 20 20 20 20 20 64 65 76 | 69 63 65 73 5b 64 65 76 | dev|ices[dev|
|00001550| 69 63 65 5f 75 72 69 5d | 0a 20 20 20 20 20 20 20 |ice_uri]|. |
|00001560| 20 65 78 63 65 70 74 20 | 4b 65 79 45 72 72 6f 72 | except |KeyError|
|00001570| 3a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 6c 6f |:. | lo|
|00001580| 67 2e 64 65 62 75 67 28 | 27 4e 65 77 20 64 65 76 |g.debug(|'New dev|
|00001590| 69 63 65 3a 20 25 73 27 | 20 25 20 64 65 76 69 63 |ice: %s'| % devic|
|000015a0| 65 5f 75 72 69 29 0a 20 | 20 20 20 20 20 20 20 20 |e_uri). | |
|000015b0| 20 20 20 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | . | |
|000015c0| 74 72 79 3a 0a 20 20 20 | 20 20 20 20 20 20 20 20 |try:. | |
|000015d0| 20 20 20 20 20 28 62 61 | 63 6b 5f 65 6e 64 2c 20 | (ba|ck_end, |
|000015e0| 69 73 5f 68 70 2c 20 62 | 75 73 2c 20 6d 6f 64 65 |is_hp, b|us, mode|
|000015f0| 6c 2c 20 73 65 72 69 61 | 6c 2c 20 64 65 76 5f 66 |l, seria|l, dev_f|
|00001600| 69 6c 65 2c 20 68 6f 73 | 74 2c 20 70 6f 72 74 29 |ile, hos|t, port)|
|00001610| 20 3d 20 64 65 76 69 63 | 65 2e 70 61 72 73 65 44 | = devic|e.parseD|
|00001620| 65 76 69 63 65 55 52 49 | 28 64 65 76 69 63 65 5f |eviceURI|(device_|
|00001630| 75 72 69 29 0a 20 20 20 | 20 20 20 20 20 20 20 20 |uri). | |
|00001640| 20 65 78 63 65 70 74 20 | 45 72 72 6f 72 3a 0a 20 | except |Error:. |
|00001650| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 6c | | l|
|00001660| 6f 67 2e 65 72 72 6f 72 | 28 27 49 6e 76 61 6c 69 |og.error|('Invali|
|00001670| 64 20 64 65 76 69 63 65 | 20 55 52 49 27 29 0a 20 |d device| URI'). |
|00001680| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 72 | | r|
|00001690| 65 74 75 72 6e 20 45 52 | 52 4f 52 5f 49 4e 56 41 |eturn ER|ROR_INVA|
|000016a0| 4c 49 44 5f 44 45 56 49 | 43 45 5f 55 52 49 0a 0a |LID_DEVI|CE_URI..|
|000016b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 64 65 76 69 | | devi|
|000016c0| 63 65 73 5b 64 65 76 69 | 63 65 5f 75 72 69 5d 20 |ces[devi|ce_uri] |
|000016d0| 3d 20 53 65 72 76 65 72 | 44 65 76 69 63 65 28 6d |= Server|Device(m|
|000016e0| 6f 64 65 6c 29 0a 0a 20 | 20 20 20 20 20 20 20 72 |odel).. | r|
|000016f0| 65 74 75 72 6e 20 45 52 | 52 4f 52 5f 53 55 43 43 |eturn ER|ROR_SUCC|
|00001700| 45 53 53 0a 0a 20 20 20 | 20 0a 20 20 20 20 64 65 |ESS.. | . de|
|00001710| 66 20 68 61 6e 64 6c 65 | 5f 67 65 74 76 61 6c 75 |f handle|_getvalu|
|00001720| 65 28 73 65 6c 66 29 3a | 0a 20 20 20 20 20 20 20 |e(self):|. |
|00001730| 20 64 65 76 69 63 65 5f | 75 72 69 20 3d 20 73 65 | device_|uri = se|
|00001740| 6c 66 2e 66 69 65 6c 64 | 73 2e 67 65 74 28 27 64 |lf.field|s.get('d|
|00001750| 65 76 69 63 65 2d 75 72 | 69 27 2c 20 27 27 29 2e |evice-ur|i', '').|
|00001760| 72 65 70 6c 61 63 65 28 | 27 68 70 66 61 78 3a 27 |replace(|'hpfax:'|
|00001770| 2c 20 27 68 70 3a 27 29 | 0a 20 20 20 20 20 20 20 |, 'hp:')|. |
|00001780| 20 76 61 6c 75 65 20 3d | 20 27 27 0a 20 20 20 20 | value =| ''. |
|00001790| 20 20 20 20 6b 65 79 20 | 3d 20 73 65 6c 66 2e 66 | key |= self.f|
|000017a0| 69 65 6c 64 73 2e 67 65 | 74 28 27 6b 65 79 27 2c |ields.ge|t('key',|
|000017b0| 20 27 27 29 0a 20 20 20 | 20 20 20 20 20 72 65 73 | ''). | res|
|000017c0| 75 6c 74 5f 63 6f 64 65 | 20 3d 20 73 65 6c 66 2e |ult_code| = self.|
|000017d0| 5f 68 70 73 73 64 5f 68 | 61 6e 64 6c 65 72 5f 5f |_hpssd_h|andler__|
|000017e0| 63 68 65 63 6b 64 65 76 | 69 63 65 28 64 65 76 69 |checkdev|ice(devi|
|000017f0| 63 65 5f 75 72 69 29 0a | 20 20 20 20 20 20 20 20 |ce_uri).| |
|00001800| 69 66 20 72 65 73 75 6c | 74 5f 63 6f 64 65 20 3d |if resul|t_code =|
|00001810| 3d 20 45 52 52 4f 52 5f | 53 55 43 43 45 53 53 3a |= ERROR_|SUCCESS:|
|00001820| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 0a 20 20 |. | . |
|00001830| 20 20 20 20 20 20 20 20 | 20 20 74 72 79 3a 0a 20 | | try:. |
|00001840| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 76 | | v|
|00001850| 61 6c 75 65 20 3d 20 64 | 65 76 69 63 65 73 5b 64 |alue = d|evices[d|
|00001860| 65 76 69 63 65 5f 75 72 | 69 5d 2e 63 61 63 68 65 |evice_ur|i].cache|
|00001870| 5b 6b 65 79 5d 0a 20 20 | 20 20 20 20 20 20 20 20 |[key]. | |
|00001880| 20 20 65 78 63 65 70 74 | 20 4b 65 79 45 72 72 6f | except| KeyErro|
|00001890| 72 3a 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |r:. | |
|000018a0| 20 20 20 76 61 6c 75 65 | 20 3d 20 27 27 0a 20 20 | value| = ''. |
|000018b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 72 65 | | re|
|000018c0| 73 75 6c 74 5f 63 6f 64 | 65 20 3d 20 45 52 52 4f |sult_cod|e = ERRO|
|000018d0| 52 5f 49 4e 54 45 52 4e | 41 4c 0a 20 20 20 20 20 |R_INTERN|AL. |
|000018e0| 20 20 20 20 20 20 20 65 | 78 63 65 70 74 3a 0a 20 | e|xcept:. |
|000018f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4e | | N|
|00001900| 6f 6e 65 3c 45 58 43 45 | 50 54 49 4f 4e 20 4d 41 |one<EXCE|PTION MA|
|00001910| 54 43 48 3e 4b 65 79 45 | 72 72 6f 72 0a 20 20 20 |TCH>KeyE|rror. |
|00001920| 20 20 20 20 20 20 20 20 | 20 0a 0a 20 20 20 20 20 | | .. |
|00001930| 20 20 20 4e 6f 6e 65 3c | 45 58 43 45 50 54 49 4f | None<|EXCEPTIO|
|00001940| 4e 20 4d 41 54 43 48 3e | 4b 65 79 45 72 72 6f 72 |N MATCH>|KeyError|
|00001950| 0a 20 20 20 20 20 20 20 | 20 73 65 6c 66 2e 6f 75 |. | self.ou|
|00001960| 74 5f 62 75 66 66 65 72 | 20 3d 20 62 75 69 6c 64 |t_buffer| = build|
|00001970| 52 65 73 75 6c 74 4d 65 | 73 73 61 67 65 28 27 47 |ResultMe|ssage('G|
|00001980| 65 74 56 61 6c 75 65 52 | 65 73 75 6c 74 27 2c 20 |etValueR|esult', |
|00001990| 76 61 6c 75 65 2c 20 72 | 65 73 75 6c 74 5f 63 6f |value, r|esult_co|
|000019a0| 64 65 29 0a 0a 20 20 20 | 20 0a 20 20 20 20 64 65 |de).. | . de|
|000019b0| 66 20 68 61 6e 64 6c 65 | 5f 73 65 74 76 61 6c 75 |f handle|_setvalu|
|000019c0| 65 28 73 65 6c 66 29 3a | 0a 20 20 20 20 20 20 20 |e(self):|. |
|000019d0| 20 64 65 76 69 63 65 5f | 75 72 69 20 3d 20 73 65 | device_|uri = se|
|000019e0| 6c 66 2e 66 69 65 6c 64 | 73 2e 67 65 74 28 27 64 |lf.field|s.get('d|
|000019f0| 65 76 69 63 65 2d 75 72 | 69 27 2c 20 27 27 29 2e |evice-ur|i', '').|
|00001a00| 72 65 70 6c 61 63 65 28 | 27 68 70 66 61 78 3a 27 |replace(|'hpfax:'|
|00001a10| 2c 20 27 68 70 3a 27 29 | 0a 20 20 20 20 20 20 20 |, 'hp:')|. |
|00001a20| 20 6b 65 79 20 3d 20 73 | 65 6c 66 2e 66 69 65 6c | key = s|elf.fiel|
|00001a30| 64 73 2e 67 65 74 28 27 | 6b 65 79 27 2c 20 27 27 |ds.get('|key', ''|
|00001a40| 29 0a 20 20 20 20 20 20 | 20 20 76 61 6c 75 65 20 |). | value |
|00001a50| 3d 20 73 65 6c 66 2e 66 | 69 65 6c 64 73 2e 67 65 |= self.f|ields.ge|
|00001a60| 74 28 27 76 61 6c 75 65 | 27 2c 20 27 27 29 0a 20 |t('value|', ''). |
|00001a70| 20 20 20 20 20 20 20 72 | 65 73 75 6c 74 5f 63 6f | r|esult_co|
|00001a80| 64 65 20 3d 20 73 65 6c | 66 2e 5f 68 70 73 73 64 |de = sel|f._hpssd|
|00001a90| 5f 68 61 6e 64 6c 65 72 | 5f 5f 63 68 65 63 6b 64 |_handler|__checkd|
|00001aa0| 65 76 69 63 65 28 64 65 | 76 69 63 65 5f 75 72 69 |evice(de|vice_uri|
|00001ab0| 29 0a 20 20 20 20 20 20 | 20 20 69 66 20 72 65 73 |). | if res|
|00001ac0| 75 6c 74 5f 63 6f 64 65 | 20 3d 3d 20 45 52 52 4f |ult_code| == ERRO|
|00001ad0| 52 5f 53 55 43 43 45 53 | 53 3a 0a 20 20 20 20 20 |R_SUCCES|S:. |
|00001ae0| 20 20 20 20 20 20 20 64 | 65 76 69 63 65 73 5b 64 | d|evices[d|
|00001af0| 65 76 69 63 65 5f 75 72 | 69 5d 2e 63 61 63 68 65 |evice_ur|i].cache|
|00001b00| 5b 6b 65 79 5d 20 3d 20 | 76 61 6c 75 65 0a 20 20 |[key] = |value. |
|00001b10| 20 20 20 20 20 20 0a 20 | 20 20 20 20 20 20 20 73 | . | s|
|00001b20| 65 6c 66 2e 6f 75 74 5f | 62 75 66 66 65 72 20 3d |elf.out_|buffer =|
|00001b30| 20 62 75 69 6c 64 52 65 | 73 75 6c 74 4d 65 73 73 | buildRe|sultMess|
|00001b40| 61 67 65 28 27 53 65 74 | 56 61 6c 75 65 52 65 73 |age('Set|ValueRes|
|00001b50| 75 6c 74 27 2c 20 4e 6f | 6e 65 2c 20 45 52 52 4f |ult', No|ne, ERRO|
|00001b60| 52 5f 53 55 43 43 45 53 | 53 29 0a 0a 20 20 20 20 |R_SUCCES|S).. |
|00001b70| 0a 20 20 20 20 64 65 66 | 20 68 61 6e 64 6c 65 5f |. def| handle_|
|00001b80| 71 75 65 72 79 68 69 73 | 74 6f 72 79 28 73 65 6c |queryhis|tory(sel|
|00001b90| 66 29 3a 0a 20 20 20 20 | 20 20 20 20 64 65 76 69 |f):. | devi|
|00001ba0| 63 65 5f 75 72 69 20 3d | 20 73 65 6c 66 2e 66 69 |ce_uri =| self.fi|
|00001bb0| 65 6c 64 73 2e 67 65 74 | 28 27 64 65 76 69 63 65 |elds.get|('device|
|00001bc0| 2d 75 72 69 27 2c 20 27 | 27 29 2e 72 65 70 6c 61 |-uri', '|').repla|
|00001bd0| 63 65 28 27 68 70 66 61 | 78 3a 27 2c 20 27 68 70 |ce('hpfa|x:', 'hp|
|00001be0| 3a 27 29 0a 20 20 20 20 | 20 20 20 20 70 61 79 6c |:'). | payl|
|00001bf0| 6f 61 64 20 3d 20 27 27 | 0a 20 20 20 20 20 20 20 |oad = ''|. |
|00001c00| 20 72 65 73 75 6c 74 5f | 63 6f 64 65 20 3d 20 73 | result_|code = s|
|00001c10| 65 6c 66 2e 5f 68 70 73 | 73 64 5f 68 61 6e 64 6c |elf._hps|sd_handl|
|00001c20| 65 72 5f 5f 63 68 65 63 | 6b 64 65 76 69 63 65 28 |er__chec|kdevice(|
|00001c30| 64 65 76 69 63 65 5f 75 | 72 69 29 0a 20 20 20 20 |device_u|ri). |
|00001c40| 20 20 20 20 73 65 6c 66 | 2e 6f 75 74 5f 62 75 66 | self|.out_buf|
|00001c50| 66 65 72 20 3d 20 62 75 | 69 6c 64 52 65 73 75 6c |fer = bu|ildResul|
|00001c60| 74 4d 65 73 73 61 67 65 | 28 27 51 75 65 72 79 48 |tMessage|('QueryH|
|00001c70| 69 73 74 6f 72 79 52 65 | 73 75 6c 74 27 2c 20 70 |istoryRe|sult', p|
|00001c80| 61 79 6c 6f 61 64 2c 20 | 72 65 73 75 6c 74 5f 63 |ayload, |result_c|
|00001c90| 6f 64 65 29 0a 0a 20 20 | 20 20 0a 20 20 20 20 64 |ode).. | . d|
|00001ca0| 65 66 20 68 61 6e 64 6c | 65 5f 73 65 74 61 6c 65 |ef handl|e_setale|
|00001cb0| 72 74 73 28 73 65 6c 66 | 29 3a 0a 20 20 20 20 20 |rts(self|):. |
|00001cc0| 20 20 20 72 65 73 75 6c | 74 5f 63 6f 64 65 20 3d | resul|t_code =|
|00001cd0| 20 45 52 52 4f 52 5f 53 | 55 43 43 45 53 53 0a 20 | ERROR_S|UCCESS. |
|00001ce0| 20 20 20 20 20 20 20 75 | 73 65 72 6e 61 6d 65 20 | u|sername |
|00001cf0| 3d 20 73 65 6c 66 2e 66 | 69 65 6c 64 73 2e 67 65 |= self.f|ields.ge|
|00001d00| 74 28 27 75 73 65 72 6e | 61 6d 65 27 2c 20 27 27 |t('usern|ame', ''|
|00001d10| 29 0a 20 20 20 20 20 20 | 20 20 61 6c 65 72 74 73 |). | alerts|
|00001d20| 5b 75 73 65 72 6e 61 6d | 65 5d 20 3d 20 7b 0a 20 |[usernam|e] = {. |
|00001d30| 20 20 20 20 20 20 20 20 | 20 20 20 27 65 6d 61 69 | | 'emai|
|00001d40| 6c 2d 61 6c 65 72 74 73 | 27 3a 20 75 74 69 6c 73 |l-alerts|': utils|
|00001d50| 2e 74 6f 5f 62 6f 6f 6c | 28 73 65 6c 66 2e 66 69 |.to_bool|(self.fi|
|00001d60| 65 6c 64 73 2e 67 65 74 | 28 27 65 6d 61 69 6c 2d |elds.get|('email-|
|00001d70| 61 6c 65 72 74 73 27 2c | 20 27 30 27 29 29 2c 0a |alerts',| '0')),.|
|00001d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 27 65 6d 61 | | 'ema|
|00001d90| 69 6c 2d 66 72 6f 6d 2d | 61 64 64 72 65 73 73 27 |il-from-|address'|
|00001da0| 3a 20 73 65 6c 66 2e 66 | 69 65 6c 64 73 2e 67 65 |: self.f|ields.ge|
|00001db0| 74 28 27 65 6d 61 69 6c | 2d 66 72 6f 6d 2d 61 64 |t('email|-from-ad|
|00001dc0| 64 72 65 73 73 27 2c 20 | 27 27 29 2c 0a 20 20 20 |dress', |''),. |
|00001dd0| 20 20 20 20 20 20 20 20 | 20 27 65 6d 61 69 6c 2d | | 'email-|
|00001de0| 74 6f 2d 61 64 64 72 65 | 73 73 65 73 27 3a 20 73 |to-addre|sses': s|
|00001df0| 65 6c 66 2e 66 69 65 6c | 64 73 2e 67 65 74 28 27 |elf.fiel|ds.get('|
|00001e00| 65 6d 61 69 6c 2d 74 6f | 2d 61 64 64 72 65 73 73 |email-to|-address|
|00001e10| 65 73 27 2c 20 27 27 29 | 20 7d 0a 20 20 20 20 20 |es', '')| }. |
|00001e20| 20 20 20 73 65 6c 66 2e | 6f 75 74 5f 62 75 66 66 | self.|out_buff|
|00001e30| 65 72 20 3d 20 62 75 69 | 6c 64 52 65 73 75 6c 74 |er = bui|ldResult|
|00001e40| 4d 65 73 73 61 67 65 28 | 27 53 65 74 41 6c 65 72 |Message(|'SetAler|
|00001e50| 74 73 52 65 73 75 6c 74 | 27 2c 20 4e 6f 6e 65 2c |tsResult|', None,|
|00001e60| 20 72 65 73 75 6c 74 5f | 63 6f 64 65 29 0a 0a 20 | result_|code).. |
|00001e70| 20 20 20 0a 20 20 20 20 | 64 65 66 20 68 61 6e 64 | . |def hand|
|00001e80| 6c 65 5f 72 65 67 69 73 | 74 65 72 67 75 69 65 76 |le_regis|terguiev|
|00001e90| 65 6e 74 28 73 65 6c 66 | 29 3a 0a 20 20 20 20 20 |ent(self|):. |
|00001ea0| 20 20 20 75 73 65 72 6e | 61 6d 65 20 3d 20 73 65 | usern|ame = se|
|00001eb0| 6c 66 2e 66 69 65 6c 64 | 73 2e 67 65 74 28 27 75 |lf.field|s.get('u|
|00001ec0| 73 65 72 6e 61 6d 65 27 | 2c 20 27 27 29 0a 20 20 |sername'|, ''). |
|00001ed0| 20 20 20 20 20 20 74 79 | 70 20 3d 20 73 65 6c 66 | ty|p = self|
|00001ee0| 2e 66 69 65 6c 64 73 2e | 67 65 74 28 27 74 79 70 |.fields.|get('typ|
|00001ef0| 65 27 2c 20 27 75 6e 6b | 6e 6f 77 6e 27 29 0a 20 |e', 'unk|nown'). |
|00001f00| 20 20 20 20 20 20 20 73 | 65 6c 66 2e 74 79 70 20 | s|elf.typ |
|00001f10| 3d 20 74 79 70 0a 20 20 | 20 20 20 20 20 20 73 65 |= typ. | se|
|00001f20| 6c 66 2e 75 73 65 72 6e | 61 6d 65 20 3d 20 75 73 |lf.usern|ame = us|
|00001f30| 65 72 6e 61 6d 65 0a 20 | 20 20 20 20 20 20 20 73 |ername. | s|
|00001f40| 65 6c 66 2e 73 65 6e 64 | 5f 65 76 65 6e 74 73 20 |elf.send|_events |
|00001f50| 3d 20 54 72 75 65 0a 20 | 20 20 20 20 20 20 20 6c |= True. | l|
|00001f60| 6f 67 2e 64 65 62 75 67 | 28 27 52 65 67 69 73 74 |og.debug|('Regist|
|00001f70| 65 72 69 6e 67 20 47 55 | 49 20 66 6f 72 20 65 76 |ering GU|I for ev|
|00001f80| 65 6e 74 73 3a 20 28 25 | 73 2c 20 25 73 2c 20 25 |ents: (%|s, %s, %|
|00001f90| 64 29 27 20 25 20 28 75 | 73 65 72 6e 61 6d 65 2c |d)' % (u|sername,|
|00001fa0| 20 74 79 70 2c 20 73 65 | 6c 66 2e 5f 66 69 6c 65 | typ, se|lf._file|
|00001fb0| 6e 6f 29 29 0a 0a 20 20 | 20 20 0a 20 20 20 20 64 |no)).. | . d|
|00001fc0| 65 66 20 68 61 6e 64 6c | 65 5f 75 6e 72 65 67 69 |ef handl|e_unregi|
|00001fd0| 73 74 65 72 67 75 69 65 | 76 65 6e 74 28 73 65 6c |sterguie|vent(sel|
|00001fe0| 66 29 3a 0a 20 20 20 20 | 20 20 20 20 75 73 65 72 |f):. | user|
|00001ff0| 6e 61 6d 65 20 3d 20 73 | 65 6c 66 2e 66 69 65 6c |name = s|elf.fiel|
|00002000| 64 73 2e 67 65 74 28 27 | 75 73 65 72 6e 61 6d 65 |ds.get('|username|
|00002010| 27 2c 20 27 27 29 0a 20 | 20 20 20 20 20 20 20 73 |', ''). | s|
|00002020| 65 6c 66 2e 73 65 6e 64 | 5f 65 76 65 6e 74 73 20 |elf.send|_events |
|00002030| 3d 20 46 61 6c 73 65 0a | 0a 20 20 20 20 0a 20 20 |= False.|. . |
|00002040| 20 20 64 65 66 20 68 61 | 6e 64 6c 65 5f 74 65 73 | def ha|ndle_tes|
|00002050| 74 5f 65 6d 61 69 6c 28 | 73 65 6c 66 29 3a 0a 20 |t_email(|self):. |
|00002060| 20 20 20 20 20 20 20 72 | 65 73 75 6c 74 5f 63 6f | r|esult_co|
|00002070| 64 65 20 3d 20 45 52 52 | 4f 52 5f 53 55 43 43 45 |de = ERR|OR_SUCCE|
|00002080| 53 53 0a 20 20 20 20 20 | 20 20 20 75 73 65 72 6e |SS. | usern|
|00002090| 61 6d 65 20 3d 20 73 65 | 6c 66 2e 66 69 65 6c 64 |ame = se|lf.field|
|000020a0| 73 2e 67 65 74 28 27 75 | 73 65 72 6e 61 6d 65 27 |s.get('u|sername'|
|000020b0| 2c 20 70 72 6f 70 2e 75 | 73 65 72 6e 61 6d 65 29 |, prop.u|sername)|
|000020c0| 0a 20 20 20 20 20 20 20 | 20 6d 65 73 73 61 67 65 |. | message|
|000020d0| 20 3d 20 64 65 76 69 63 | 65 2e 71 75 65 72 79 53 | = devic|e.queryS|
|000020e0| 74 72 69 6e 67 28 27 65 | 6d 61 69 6c 5f 74 65 73 |tring('e|mail_tes|
|000020f0| 74 5f 6d 65 73 73 61 67 | 65 27 29 0a 20 20 20 20 |t_messag|e'). |
|00002100| 20 20 20 20 73 75 62 6a | 65 63 74 20 3d 20 64 65 | subj|ect = de|
|00002110| 76 69 63 65 2e 71 75 65 | 72 79 53 74 72 69 6e 67 |vice.que|ryString|
|00002120| 28 27 65 6d 61 69 6c 5f | 74 65 73 74 5f 73 75 62 |('email_|test_sub|
|00002130| 6a 65 63 74 27 29 0a 20 | 20 20 20 20 20 20 20 72 |ject'). | r|
|00002140| 65 73 75 6c 74 5f 63 6f | 64 65 20 3d 20 73 65 6c |esult_co|de = sel|
|00002150| 66 2e 73 65 6e 64 45 6d | 61 69 6c 28 75 73 65 72 |f.sendEm|ail(user|
|00002160| 6e 61 6d 65 2c 20 73 75 | 62 6a 65 63 74 2c 20 6d |name, su|bject, m|
|00002170| 65 73 73 61 67 65 2c 20 | 54 72 75 65 29 0a 20 20 |essage, |True). |
|00002180| 20 20 20 20 20 20 73 65 | 6c 66 2e 6f 75 74 5f 62 | se|lf.out_b|
|00002190| 75 66 66 65 72 20 3d 20 | 62 75 69 6c 64 52 65 73 |uffer = |buildRes|
|000021a0| 75 6c 74 4d 65 73 73 61 | 67 65 28 27 54 65 73 74 |ultMessa|ge('Test|
|000021b0| 45 6d 61 69 6c 52 65 73 | 75 6c 74 27 2c 20 4e 6f |EmailRes|ult', No|
|000021c0| 6e 65 2c 20 72 65 73 75 | 6c 74 5f 63 6f 64 65 29 |ne, resu|lt_code)|
|000021d0| 0a 0a 20 20 20 20 0a 20 | 20 20 20 64 65 66 20 63 |.. . | def c|
|000021e0| 72 65 61 74 65 48 69 73 | 74 6f 72 79 28 73 65 6c |reateHis|tory(sel|
|000021f0| 66 2c 20 64 65 76 69 63 | 65 5f 75 72 69 2c 20 63 |f, devic|e_uri, c|
|00002200| 6f 64 65 2c 20 6a 6f 62 | 69 64 20 3d 20 30 2c 20 |ode, job|id = 0, |
|00002210| 75 73 65 72 6e 61 6d 65 | 20 3d 20 70 72 6f 70 2e |username| = prop.|
|00002220| 75 73 65 72 6e 61 6d 65 | 29 3a 0a 20 20 20 20 20 |username|):. |
|00002230| 20 20 20 72 65 73 75 6c | 74 5f 63 6f 64 65 20 3d | resul|t_code =|
|00002240| 20 73 65 6c 66 2e 5f 68 | 70 73 73 64 5f 68 61 6e | self._h|pssd_han|
|00002250| 64 6c 65 72 5f 5f 63 68 | 65 63 6b 64 65 76 69 63 |dler__ch|eckdevic|
|00002260| 65 28 64 65 76 69 63 65 | 5f 75 72 69 29 0a 20 20 |e(device|_uri). |
|00002270| 20 20 20 20 20 20 69 66 | 20 72 65 73 75 6c 74 5f | if| result_|
|00002280| 63 6f 64 65 20 3d 3d 20 | 45 52 52 4f 52 5f 53 55 |code == |ERROR_SU|
|00002290| 43 43 45 53 53 3a 0a 20 | 20 20 20 20 20 20 20 20 |CCESS:. | |
|000022a0| 20 20 20 68 69 73 74 6f | 72 79 20 3d 20 64 65 76 | histo|ry = dev|
|000022b0| 69 63 65 73 5b 64 65 76 | 69 63 65 5f 75 72 69 5d |ices[dev|ice_uri]|
|000022c0| 2e 68 69 73 74 6f 72 79 | 2e 67 65 74 28 29 0a 20 |.history|.get(). |
|000022d0| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 68 69 | | if hi|
|000022e0| 73 74 6f 72 79 20 61 6e | 64 20 68 69 73 74 6f 72 |story an|d histor|
|000022f0| 79 5b 2d 31 5d 5b 31 31 | 5d 20 3d 3d 20 63 6f 64 |y[-1][11|] == cod|
|00002300| 65 3a 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |e:. | |
|00002310| 20 20 20 64 65 76 69 63 | 65 73 5b 64 65 76 69 63 | devic|es[devic|
|00002320| 65 5f 75 72 69 5d 2e 68 | 69 73 74 6f 72 79 2e 72 |e_uri].h|istory.r|
|00002330| 65 70 6c 61 63 65 28 74 | 75 70 6c 65 28 74 69 6d |eplace(t|uple(tim|
|00002340| 65 2e 6c 6f 63 61 6c 74 | 69 6d 65 28 29 29 20 2b |e.localt|ime()) +|
|00002350| 20 28 6a 6f 62 69 64 2c | 20 75 73 65 72 6e 61 6d | (jobid,| usernam|
|00002360| 65 2c 20 63 6f 64 65 29 | 29 0a 20 20 20 20 20 20 |e, code)|). |
|00002370| 20 20 20 20 20 20 20 20 | 20 20 72 65 74 75 72 6e | | return|
|00002380| 20 54 72 75 65 0a 20 20 | 20 20 20 20 20 20 20 20 | True. | |
|00002390| 20 20 65 6c 73 65 3a 0a | 20 20 20 20 20 20 20 20 | else:.| |
|000023a0| 20 20 20 20 20 20 20 20 | 64 65 76 69 63 65 73 5b | |devices[|
|000023b0| 64 65 76 69 63 65 5f 75 | 72 69 5d 2e 68 69 73 74 |device_u|ri].hist|
|000023c0| 6f 72 79 2e 61 70 70 65 | 6e 64 28 74 75 70 6c 65 |ory.appe|nd(tuple|
|000023d0| 28 74 69 6d 65 2e 6c 6f | 63 61 6c 74 69 6d 65 28 |(time.lo|caltime(|
|000023e0| 29 29 20 2b 20 28 6a 6f | 62 69 64 2c 20 75 73 65 |)) + (jo|bid, use|
|000023f0| 72 6e 61 6d 65 2c 20 63 | 6f 64 65 29 29 0a 20 20 |rname, c|ode)). |
|00002400| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 72 65 | | re|
|00002410| 74 75 72 6e 20 46 61 6c | 73 65 0a 20 20 20 20 20 |turn Fal|se. |
|00002420| 20 20 20 0a 0a 20 20 20 | 20 0a 20 20 20 20 64 65 | .. | . de|
|00002430| 66 20 68 61 6e 64 6c 65 | 5f 68 70 66 61 78 62 65 |f handle|_hpfaxbe|
|00002440| 67 69 6e 28 73 65 6c 66 | 29 3a 0a 20 20 20 20 20 |gin(self|):. |
|00002450| 20 20 20 75 73 65 72 6e | 61 6d 65 20 3d 20 73 65 | usern|ame = se|
|00002460| 6c 66 2e 66 69 65 6c 64 | 73 2e 67 65 74 28 27 75 |lf.field|s.get('u|
|00002470| 73 65 72 6e 61 6d 65 27 | 2c 20 70 72 6f 70 2e 75 |sername'|, prop.u|
|00002480| 73 65 72 6e 61 6d 65 29 | 0a 20 20 20 20 20 20 20 |sername)|. |
|00002490| 20 6a 6f 62 5f 69 64 20 | 3d 20 73 65 6c 66 2e 66 | job_id |= self.f|
|000024a0| 69 65 6c 64 73 2e 67 65 | 74 28 27 6a 6f 62 2d 69 |ields.ge|t('job-i|
|000024b0| 64 27 2c 20 30 29 0a 20 | 20 20 20 20 20 20 20 70 |d', 0). | p|
|000024c0| 72 69 6e 74 65 72 5f 6e | 61 6d 65 20 3d 20 73 65 |rinter_n|ame = se|
|000024d0| 6c 66 2e 66 69 65 6c 64 | 73 2e 67 65 74 28 27 70 |lf.field|s.get('p|
|000024e0| 72 69 6e 74 65 72 27 2c | 20 27 27 29 0a 20 20 20 |rinter',| ''). |
|000024f0| 20 20 20 20 20 64 65 76 | 69 63 65 5f 75 72 69 20 | dev|ice_uri |
|00002500| 3d 20 73 65 6c 66 2e 66 | 69 65 6c 64 73 2e 67 65 |= self.f|ields.ge|
|00002510| 74 28 27 64 65 76 69 63 | 65 2d 75 72 69 27 2c 20 |t('devic|e-uri', |
|00002520| 27 27 29 2e 72 65 70 6c | 61 63 65 28 27 68 70 3a |'').repl|ace('hp:|
|00002530| 27 2c 20 27 68 70 66 61 | 78 3a 27 29 0a 20 20 20 |', 'hpfa|x:'). |
|00002540| 20 20 20 20 20 74 69 74 | 6c 65 20 3d 20 73 65 6c | tit|le = sel|
|00002550| 66 2e 66 69 65 6c 64 73 | 2e 67 65 74 28 27 74 69 |f.fields|.get('ti|
|00002560| 74 6c 65 27 2c 20 27 27 | 29 0a 20 20 20 20 20 20 |tle', ''|). |
|00002570| 20 20 6c 6f 67 2e 64 65 | 62 75 67 28 27 43 72 65 | log.de|bug('Cre|
|00002580| 61 74 69 6e 67 20 64 61 | 74 61 20 73 74 6f 72 65 |ating da|ta store|
|00002590| 20 66 6f 72 20 25 73 3a | 25 64 27 20 25 20 28 75 | for %s:|%d' % (u|
|000025a0| 73 65 72 6e 61 6d 65 2c | 20 6a 6f 62 5f 69 64 29 |sername,| job_id)|
|000025b0| 29 0a 20 20 20 20 20 20 | 20 20 66 61 78 5f 66 69 |). | fax_fi|
|000025c0| 6c 65 5b 28 75 73 65 72 | 6e 61 6d 65 2c 20 6a 6f |le[(user|name, jo|
|000025d0| 62 5f 69 64 29 5d 20 3d | 20 74 65 6d 70 66 69 6c |b_id)] =| tempfil|
|000025e0| 65 2e 4e 61 6d 65 64 54 | 65 6d 70 6f 72 61 72 79 |e.NamedT|emporary|
|000025f0| 46 69 6c 65 28 70 72 65 | 66 69 78 20 3d 20 27 68 |File(pre|fix = 'h|
|00002600| 70 66 61 78 27 29 0a 20 | 20 20 20 20 20 20 20 66 |pfax'). | f|
|00002610| 61 78 5f 66 69 6c 65 5f | 72 65 61 64 79 5b 28 75 |ax_file_|ready[(u|
|00002620| 73 65 72 6e 61 6d 65 2c | 20 6a 6f 62 5f 69 64 29 |sername,| job_id)|
|00002630| 5d 20 3d 20 46 61 6c 73 | 65 0a 20 20 20 20 20 20 |] = Fals|e. |
|00002640| 20 20 66 61 78 5f 6d 65 | 74 61 5f 64 61 74 61 5b | fax_me|ta_data[|
|00002650| 28 75 73 65 72 6e 61 6d | 65 2c 20 6a 6f 62 5f 69 |(usernam|e, job_i|
|00002660| 64 29 5d 20 3d 20 7b 0a | 20 20 20 20 20 20 20 20 |d)] = {.| |
|00002670| 20 20 20 20 27 75 73 65 | 72 6e 61 6d 65 27 3a 20 | 'use|rname': |
|00002680| 75 73 65 72 6e 61 6d 65 | 2c 0a 20 20 20 20 20 20 |username|,. |
|00002690| 20 20 20 20 20 20 27 6a | 6f 62 2d 69 64 27 3a 20 | 'j|ob-id': |
|000026a0| 6a 6f 62 5f 69 64 2c 0a | 20 20 20 20 20 20 20 20 |job_id,.| |
|000026b0| 20 20 20 20 27 74 69 74 | 6c 65 27 3a 20 74 69 74 | 'tit|le': tit|
|000026c0| 6c 65 2c 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |le,. | |
|000026d0| 27 70 72 69 6e 74 65 72 | 27 3a 20 70 72 69 6e 74 |'printer|': print|
|000026e0| 65 72 5f 6e 61 6d 65 2c | 0a 20 20 20 20 20 20 20 |er_name,|. |
|000026f0| 20 20 20 20 20 27 64 65 | 76 69 63 65 2d 75 72 69 | 'de|vice-uri|
|00002700| 27 3a 20 64 65 76 69 63 | 65 5f 75 72 69 2c 0a 20 |': devic|e_uri,. |
|00002710| 20 20 20 20 20 20 20 20 | 20 20 20 27 73 69 7a 65 | | 'size|
|00002720| 27 3a 20 30 20 7d 0a 20 | 20 20 20 20 20 20 20 6c |': 0 }. | l|
|00002730| 6f 67 2e 64 65 62 75 67 | 28 27 46 61 78 20 6a 6f |og.debug|('Fax jo|
|00002740| 62 20 25 64 20 66 6f 72 | 20 75 73 65 72 20 25 73 |b %d for| user %s|
|00002750| 20 73 74 6f 72 65 64 20 | 69 6e 20 74 65 6d 70 20 | stored |in temp |
|00002760| 66 69 6c 65 20 25 73 2e | 27 20 25 20 28 6a 6f 62 |file %s.|' % (job|
|00002770| 5f 69 64 2c 20 75 73 65 | 72 6e 61 6d 65 2c 20 66 |_id, use|rname, f|
|00002780| 61 78 5f 66 69 6c 65 5b | 28 75 73 65 72 6e 61 6d |ax_file[|(usernam|
|00002790| 65 2c 20 6a 6f 62 5f 69 | 64 29 5d 2e 6e 61 6d 65 |e, job_i|d)].name|
|000027a0| 29 29 0a 20 20 20 20 20 | 20 20 20 73 65 6c 66 2e |)). | self.|
|000027b0| 6f 75 74 5f 62 75 66 66 | 65 72 20 3d 20 62 75 69 |out_buff|er = bui|
|000027c0| 6c 64 52 65 73 75 6c 74 | 4d 65 73 73 61 67 65 28 |ldResult|Message(|
|000027d0| 27 48 50 46 61 78 42 65 | 67 69 6e 52 65 73 75 6c |'HPFaxBe|ginResul|
|000027e0| 74 27 2c 20 4e 6f 6e 65 | 2c 20 45 52 52 4f 52 5f |t', None|, ERROR_|
|000027f0| 53 55 43 43 45 53 53 29 | 0a 0a 20 20 20 20 0a 20 |SUCCESS)|.. . |
|00002800| 20 20 20 64 65 66 20 68 | 61 6e 64 6c 65 5f 68 70 | def h|andle_hp|
|00002810| 66 61 78 64 61 74 61 28 | 73 65 6c 66 29 3a 0a 20 |faxdata(|self):. |
|00002820| 20 20 20 20 20 20 20 75 | 73 65 72 6e 61 6d 65 20 | u|sername |
|00002830| 3d 20 73 65 6c 66 2e 66 | 69 65 6c 64 73 2e 67 65 |= self.f|ields.ge|
|00002840| 74 28 27 75 73 65 72 6e | 61 6d 65 27 2c 20 70 72 |t('usern|ame', pr|
|00002850| 6f 70 2e 75 73 65 72 6e | 61 6d 65 29 0a 20 20 20 |op.usern|ame). |
|00002860| 20 20 20 20 20 6a 6f 62 | 5f 69 64 20 3d 20 73 65 | job|_id = se|
|00002870| 6c 66 2e 66 69 65 6c 64 | 73 2e 67 65 74 28 27 6a |lf.field|s.get('j|
|00002880| 6f 62 2d 69 64 27 2c 20 | 30 29 0a 20 20 20 20 20 |ob-id', |0). |
|00002890| 20 20 20 69 66 20 73 65 | 6c 66 2e 70 61 79 6c 6f | if se|lf.paylo|
|000028a0| 61 64 20 61 6e 64 20 28 | 75 73 65 72 6e 61 6d 65 |ad and (|username|
|000028b0| 2c 20 6a 6f 62 5f 69 64 | 29 20 69 6e 20 66 61 78 |, job_id|) in fax|
|000028c0| 5f 66 69 6c 65 20 61 6e | 64 20 6e 6f 74 20 66 61 |_file an|d not fa|
|000028d0| 78 5f 66 69 6c 65 5f 72 | 65 61 64 79 5b 28 75 73 |x_file_r|eady[(us|
|000028e0| 65 72 6e 61 6d 65 2c 20 | 6a 6f 62 5f 69 64 29 5d |ername, |job_id)]|
|000028f0| 3a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 66 61 |:. | fa|
|00002900| 78 5f 66 69 6c 65 5b 28 | 75 73 65 72 6e 61 6d 65 |x_file[(|username|
|00002910| 2c 20 6a 6f 62 5f 69 64 | 29 5d 2e 77 72 69 74 65 |, job_id|)].write|
|00002920| 28 73 65 6c 66 2e 70 61 | 79 6c 6f 61 64 29 0a 20 |(self.pa|yload). |
|00002930| 20 20 20 20 20 20 20 0a | 20 20 20 20 20 20 20 20 | .| |
|00002940| 73 65 6c 66 2e 6f 75 74 | 5f 62 75 66 66 65 72 20 |self.out|_buffer |
|00002950| 3d 20 62 75 69 6c 64 52 | 65 73 75 6c 74 4d 65 73 |= buildR|esultMes|
|00002960| 73 61 67 65 28 27 48 50 | 46 61 78 44 61 74 61 52 |sage('HP|FaxDataR|
|00002970| 65 73 75 6c 74 27 2c 20 | 4e 6f 6e 65 2c 20 45 52 |esult', |None, ER|
|00002980| 52 4f 52 5f 53 55 43 43 | 45 53 53 29 0a 0a 20 20 |ROR_SUCC|ESS).. |
|00002990| 20 20 0a 20 20 20 20 64 | 65 66 20 68 61 6e 64 6c | . d|ef handl|
|000029a0| 65 5f 68 70 66 61 78 65 | 6e 64 28 73 65 6c 66 29 |e_hpfaxe|nd(self)|
|000029b0| 3a 0a 20 20 20 20 20 20 | 20 20 75 73 65 72 6e 61 |:. | userna|
|000029c0| 6d 65 20 3d 20 73 65 6c | 66 2e 66 69 65 6c 64 73 |me = sel|f.fields|
|000029d0| 2e 67 65 74 28 27 75 73 | 65 72 6e 61 6d 65 27 2c |.get('us|ername',|
|000029e0| 20 27 27 29 0a 20 20 20 | 20 20 20 20 20 6a 6f 62 | ''). | job|
|000029f0| 5f 69 64 20 3d 20 73 65 | 6c 66 2e 66 69 65 6c 64 |_id = se|lf.field|
|00002a00| 73 2e 67 65 74 28 27 6a | 6f 62 2d 69 64 27 2c 20 |s.get('j|ob-id', |
|00002a10| 30 29 0a 20 20 20 20 20 | 20 20 20 70 72 69 6e 74 |0). | print|
|00002a20| 65 72 5f 6e 61 6d 65 20 | 3d 20 73 65 6c 66 2e 66 |er_name |= self.f|
|00002a30| 69 65 6c 64 73 2e 67 65 | 74 28 27 70 72 69 6e 74 |ields.ge|t('print|
|00002a40| 65 72 27 2c 20 27 27 29 | 0a 20 20 20 20 20 20 20 |er', '')|. |
|00002a50| 20 64 65 76 69 63 65 5f | 75 72 69 20 3d 20 73 65 | device_|uri = se|
|00002a60| 6c 66 2e 66 69 65 6c 64 | 73 2e 67 65 74 28 27 64 |lf.field|s.get('d|
|00002a70| 65 76 69 63 65 2d 75 72 | 69 27 2c 20 27 27 29 2e |evice-ur|i', '').|
|00002a80| 72 65 70 6c 61 63 65 28 | 27 68 70 3a 27 2c 20 27 |replace(|'hp:', '|
|00002a90| 68 70 66 61 78 3a 27 29 | 0a 20 20 20 20 20 20 20 |hpfax:')|. |
|00002aa0| 20 74 69 74 6c 65 20 3d | 20 73 65 6c 66 2e 66 69 | title =| self.fi|
|00002ab0| 65 6c 64 73 2e 67 65 74 | 28 27 74 69 74 6c 65 27 |elds.get|('title'|
|00002ac0| 2c 20 27 27 29 0a 20 20 | 20 20 20 20 20 20 6a 6f |, ''). | jo|
|00002ad0| 62 5f 73 69 7a 65 20 3d | 20 73 65 6c 66 2e 66 69 |b_size =| self.fi|
|00002ae0| 65 6c 64 73 2e 67 65 74 | 28 27 6a 6f 62 2d 73 69 |elds.get|('job-si|
|00002af0| 7a 65 27 2c 20 30 29 0a | 20 20 20 20 20 20 20 20 |ze', 0).| |
|00002b00| 66 61 78 5f 66 69 6c 65 | 5b 28 75 73 65 72 6e 61 |fax_file|[(userna|
|00002b10| 6d 65 2c 20 6a 6f 62 5f | 69 64 29 5d 2e 73 65 65 |me, job_|id)].see|
|00002b20| 6b 28 30 29 0a 20 20 20 | 20 20 20 20 20 66 61 78 |k(0). | fax|
|00002b30| 5f 66 69 6c 65 5f 72 65 | 61 64 79 5b 28 75 73 65 |_file_re|ady[(use|
|00002b40| 72 6e 61 6d 65 2c 20 6a | 6f 62 5f 69 64 29 5d 20 |rname, j|ob_id)] |
|00002b50| 3d 20 54 72 75 65 0a 20 | 20 20 20 20 20 20 20 66 |= True. | f|
|00002b60| 61 78 5f 6d 65 74 61 5f | 64 61 74 61 5b 28 75 73 |ax_meta_|data[(us|
|00002b70| 65 72 6e 61 6d 65 2c 20 | 6a 6f 62 5f 69 64 29 5d |ername, |job_id)]|
|00002b80| 5b 27 6a 6f 62 2d 73 69 | 7a 65 27 5d 20 3d 20 6a |['job-si|ze'] = j|
|00002b90| 6f 62 5f 73 69 7a 65 0a | 20 20 20 20 20 20 20 20 |ob_size.| |
|00002ba0| 73 65 6c 66 2e 6f 75 74 | 5f 62 75 66 66 65 72 20 |self.out|_buffer |
|00002bb0| 3d 20 62 75 69 6c 64 52 | 65 73 75 6c 74 4d 65 73 |= buildR|esultMes|
|00002bc0| 73 61 67 65 28 27 48 50 | 46 61 78 45 6e 64 52 65 |sage('HP|FaxEndRe|
|00002bd0| 73 75 6c 74 27 2c 20 4e | 6f 6e 65 2c 20 45 52 52 |sult', N|one, ERR|
|00002be0| 4f 52 5f 53 55 43 43 45 | 53 53 29 0a 0a 20 20 20 |OR_SUCCE|SS).. |
|00002bf0| 20 0a 20 20 20 20 64 65 | 66 20 68 61 6e 64 6c 65 | . de|f handle|
|00002c00| 5f 66 61 78 63 68 65 63 | 6b 28 73 65 6c 66 29 3a |_faxchec|k(self):|
|00002c10| 0a 20 20 20 20 20 20 20 | 20 75 73 65 72 6e 61 6d |. | usernam|
|00002c20| 65 20 3d 20 73 65 6c 66 | 2e 66 69 65 6c 64 73 2e |e = self|.fields.|
|00002c30| 67 65 74 28 27 75 73 65 | 72 6e 61 6d 65 27 2c 20 |get('use|rname', |
|00002c40| 27 27 29 0a 20 20 20 20 | 20 20 20 20 72 65 73 75 |''). | resu|
|00002c50| 6c 74 5f 63 6f 64 65 20 | 3d 20 45 52 52 4f 52 5f |lt_code |= ERROR_|
|00002c60| 4e 4f 5f 44 41 54 41 5f | 41 56 41 49 4c 41 42 4c |NO_DATA_|AVAILABL|
|00002c70| 45 0a 20 20 20 20 20 20 | 20 20 6f 74 68 65 72 5f |E. | other_|
|00002c80| 66 69 65 6c 64 73 20 3d | 20 7b 20 7d 0a 20 20 20 |fields =| { }. |
|00002c90| 20 20 20 20 20 66 6f 72 | 20 66 20 69 6e 20 66 61 | for| f in fa|
|00002ca0| 78 5f 66 69 6c 65 3a 0a | 20 20 20 20 20 20 20 20 |x_file:.| |
|00002cb0| 20 20 20 20 28 75 73 65 | 72 2c 20 6a 6f 62 5f 69 | (use|r, job_i|
|00002cc0| 64 29 20 3d 20 66 0a 20 | 20 20 20 20 20 20 20 20 |d) = f. | |
|00002cd0| 20 20 20 69 66 20 75 73 | 65 72 20 3d 3d 20 75 73 | if us|er == us|
|00002ce0| 65 72 6e 61 6d 65 3a 0a | 20 20 20 20 20 20 20 20 |ername:.| |
|00002cf0| 20 20 20 20 20 20 20 20 | 6f 74 68 65 72 5f 66 69 | |other_fi|
|00002d00| 65 6c 64 73 20 3d 20 66 | 61 78 5f 6d 65 74 61 5f |elds = f|ax_meta_|
|00002d10| 64 61 74 61 5b 28 75 73 | 65 72 6e 61 6d 65 2c 20 |data[(us|ername, |
|00002d20| 6a 6f 62 5f 69 64 29 5d | 0a 20 20 20 20 20 20 20 |job_id)]|. |
|00002d30| 20 20 20 20 20 20 20 20 | 20 69 66 20 66 61 78 5f | | if fax_|
|00002d40| 66 69 6c 65 5f 72 65 61 | 64 79 5b 66 5d 3a 0a 20 |file_rea|dy[f]:. |
|00002d50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002d60| 20 20 20 72 65 73 75 6c | 74 5f 63 6f 64 65 20 3d | resul|t_code =|
|00002d70| 20 45 52 52 4f 52 5f 46 | 41 58 5f 52 45 41 44 59 | ERROR_F|AX_READY|
|00002d80| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002d90| 20 65 6c 73 65 3a 0a 20 | 20 20 20 20 20 20 20 20 | else:. | |
|00002da0| 20 20 20 20 20 20 20 20 | 20 20 20 72 65 73 75 6c | | resul|
|00002db0| 74 5f 63 6f 64 65 20 3d | 20 45 52 52 4f 52 5f 46 |t_code =| ERROR_F|
|00002dc0| 41 58 5f 50 52 4f 43 45 | 53 53 49 4e 47 0a 20 20 |AX_PROCE|SSING. |
|00002dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 62 72 | | br|
|00002de0| 65 61 6b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |eak. | |
|00002df0| 20 20 20 20 63 6f 6e 74 | 69 6e 75 65 0a 20 20 20 | cont|inue. |
|00002e00| 20 20 20 20 20 0a 20 20 | 20 20 20 20 20 20 73 65 | . | se|
|00002e10| 6c 66 2e 6f 75 74 5f 62 | 75 66 66 65 72 20 3d 20 |lf.out_b|uffer = |
|00002e20| 62 75 69 6c 64 52 65 73 | 75 6c 74 4d 65 73 73 61 |buildRes|ultMessa|
|00002e30| 67 65 28 27 46 61 78 43 | 68 65 63 6b 52 65 73 75 |ge('FaxC|heckResu|
|00002e40| 6c 74 27 2c 20 4e 6f 6e | 65 2c 20 72 65 73 75 6c |lt', Non|e, resul|
|00002e50| 74 5f 63 6f 64 65 2c 20 | 6f 74 68 65 72 5f 66 69 |t_code, |other_fi|
|00002e60| 65 6c 64 73 29 0a 0a 20 | 20 20 20 0a 20 20 20 20 |elds).. | . |
|00002e70| 64 65 66 20 68 61 6e 64 | 6c 65 5f 66 61 78 67 65 |def hand|le_faxge|
|00002e80| 74 64 61 74 61 28 73 65 | 6c 66 29 3a 0a 20 20 20 |tdata(se|lf):. |
|00002e90| 20 20 20 20 20 72 65 73 | 75 6c 74 5f 63 6f 64 65 | res|ult_code|
|00002ea0| 20 3d 20 45 52 52 4f 52 | 5f 53 55 43 43 45 53 53 | = ERROR|_SUCCESS|
|00002eb0| 0a 20 20 20 20 20 20 20 | 20 75 73 65 72 6e 61 6d |. | usernam|
|00002ec0| 65 20 3d 20 73 65 6c 66 | 2e 66 69 65 6c 64 73 2e |e = self|.fields.|
|00002ed0| 67 65 74 28 27 75 73 65 | 72 6e 61 6d 65 27 2c 20 |get('use|rname', |
|00002ee0| 27 27 29 0a 20 20 20 20 | 20 20 20 20 6a 6f 62 5f |''). | job_|
|00002ef0| 69 64 20 3d 20 73 65 6c | 66 2e 66 69 65 6c 64 73 |id = sel|f.fields|
|00002f00| 2e 67 65 74 28 27 6a 6f | 62 2d 69 64 27 2c 20 30 |.get('jo|b-id', 0|
|00002f10| 29 0a 20 20 20 20 20 20 | 20 20 0a 20 20 20 20 20 |). | . |
|00002f20| 20 20 20 74 72 79 3a 0a | 20 20 20 20 20 20 20 20 | try:.| |
|00002f30| 20 20 20 20 66 61 78 5f | 66 69 6c 65 5b 28 75 73 | fax_|file[(us|
|00002f40| 65 72 6e 61 6d 65 2c 20 | 6a 6f 62 5f 69 64 29 5d |ername, |job_id)]|
|00002f50| 0a 20 20 20 20 20 20 20 | 20 65 78 63 65 70 74 20 |. | except |
|00002f60| 4b 65 79 45 72 72 6f 72 | 3a 0a 20 20 20 20 20 20 |KeyError|:. |
|00002f70| 20 20 20 20 20 20 72 65 | 73 75 6c 74 5f 63 6f 64 | re|sult_cod|
|00002f80| 65 20 3d 20 45 52 52 4f | 52 5f 4e 4f 5f 44 41 54 |e = ERRO|R_NO_DAT|
|00002f90| 41 5f 41 56 41 49 4c 41 | 42 4c 45 0a 20 20 20 20 |A_AVAILA|BLE. |
|00002fa0| 20 20 20 20 20 20 20 20 | 64 61 74 61 20 3d 20 27 | |data = '|
|00002fb0| 27 0a 0a 20 20 20 20 20 | 20 20 20 69 66 20 66 61 |'.. | if fa|
|00002fc0| 78 5f 66 69 6c 65 5f 72 | 65 61 64 79 5b 28 75 73 |x_file_r|eady[(us|
|00002fd0| 65 72 6e 61 6d 65 2c 20 | 6a 6f 62 5f 69 64 29 5d |ername, |job_id)]|
|00002fe0| 3a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 64 61 |:. | da|
|00002ff0| 74 61 20 3d 20 66 61 78 | 5f 66 69 6c 65 5b 28 75 |ta = fax|_file[(u|
|00003000| 73 65 72 6e 61 6d 65 2c | 20 6a 6f 62 5f 69 64 29 |sername,| job_id)|
|00003010| 5d 2e 72 65 61 64 28 70 | 72 6f 70 2e 6d 61 78 5f |].read(p|rop.max_|
|00003020| 6d 65 73 73 61 67 65 5f | 6c 65 6e 29 0a 20 20 20 |message_|len). |
|00003030| 20 20 20 20 20 20 20 20 | 20 69 66 20 6e 6f 74 20 | | if not |
|00003040| 64 61 74 61 3a 0a 20 20 | 20 20 20 20 20 20 20 20 |data:. | |
|00003050| 20 20 20 20 20 20 72 65 | 73 75 6c 74 5f 63 6f 64 | re|sult_cod|
|00003060| 65 20 3d 20 45 52 52 4f | 52 5f 4e 4f 5f 44 41 54 |e = ERRO|R_NO_DAT|
|00003070| 41 5f 41 56 41 49 4c 41 | 42 4c 45 0a 20 20 20 20 |A_AVAILA|BLE. |
|00003080| 20 20 20 20 20 20 20 20 | 20 20 20 20 6c 6f 67 2e | | log.|
|00003090| 64 65 62 75 67 28 27 44 | 65 6c 65 74 69 6e 67 20 |debug('D|eleting |
|000030a0| 64 61 74 61 20 73 74 6f | 72 65 20 66 6f 72 20 25 |data sto|re for %|
|000030b0| 73 3a 25 64 27 20 25 20 | 28 75 73 65 72 6e 61 6d |s:%d' % |(usernam|
|000030c0| 65 2c 20 6a 6f 62 5f 69 | 64 29 29 0a 20 20 20 20 |e, job_i|d)). |
|000030d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 64 65 6c 20 | | del |
|000030e0| 66 61 78 5f 66 69 6c 65 | 5b 28 75 73 65 72 6e 61 |fax_file|[(userna|
|000030f0| 6d 65 2c 20 6a 6f 62 5f | 69 64 29 5d 0a 20 20 20 |me, job_|id)]. |
|00003100| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 64 65 6c | | del|
|00003110| 20 66 61 78 5f 66 69 6c | 65 5f 72 65 61 64 79 5b | fax_fil|e_ready[|
|00003120| 28 75 73 65 72 6e 61 6d | 65 2c 20 6a 6f 62 5f 69 |(usernam|e, job_i|
|00003130| 64 29 5d 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |d)]. | |
|00003140| 20 20 20 20 64 65 6c 20 | 66 61 78 5f 6d 65 74 61 | del |fax_meta|
|00003150| 5f 64 61 74 61 5b 28 75 | 73 65 72 6e 61 6d 65 2c |_data[(u|sername,|
|00003160| 20 6a 6f 62 5f 69 64 29 | 5d 0a 20 20 20 20 20 20 | job_id)|]. |
|00003170| 20 20 20 20 20 20 0a 20 | 20 20 20 20 20 20 20 65 | . | e|
|00003180| 6c 73 65 3a 0a 20 20 20 | 20 20 20 20 20 20 20 20 |lse:. | |
|00003190| 20 72 65 73 75 6c 74 5f | 63 6f 64 65 20 3d 20 45 | result_|code = E|
|000031a0| 52 52 4f 52 5f 4e 4f 5f | 44 41 54 41 5f 41 56 41 |RROR_NO_|DATA_AVA|
|000031b0| 49 4c 41 42 4c 45 0a 20 | 20 20 20 20 20 20 20 20 |ILABLE. | |
|000031c0| 20 20 20 64 61 74 61 20 | 3d 20 27 27 0a 20 20 20 | data |= ''. |
|000031d0| 20 20 20 20 20 73 65 6c | 66 2e 6f 75 74 5f 62 75 | sel|f.out_bu|
|000031e0| 66 66 65 72 20 3d 20 62 | 75 69 6c 64 52 65 73 75 |ffer = b|uildResu|
|000031f0| 6c 74 4d 65 73 73 61 67 | 65 28 27 46 61 78 47 65 |ltMessag|e('FaxGe|
|00003200| 74 44 61 74 61 52 65 73 | 75 6c 74 27 2c 20 64 61 |tDataRes|ult', da|
|00003210| 74 61 2c 20 72 65 73 75 | 6c 74 5f 63 6f 64 65 29 |ta, resu|lt_code)|
|00003220| 0a 0a 20 20 20 20 0a 20 | 20 20 20 64 65 66 20 68 |.. . | def h|
|00003230| 61 6e 64 6c 65 5f 65 76 | 65 6e 74 28 73 65 6c 66 |andle_ev|ent(self|
|00003240| 29 3a 0a 20 20 20 20 20 | 20 20 20 28 67 75 69 5f |):. | (gui_|
|00003250| 70 6f 72 74 2c 20 67 75 | 69 5f 68 6f 73 74 29 20 |port, gu|i_host) |
|00003260| 3d 20 28 4e 6f 6e 65 2c | 20 4e 6f 6e 65 29 0a 20 |= (None,| None). |
|00003270| 20 20 20 20 20 20 20 65 | 76 65 6e 74 5f 74 79 70 | e|vent_typ|
|00003280| 65 20 3d 20 73 65 6c 66 | 2e 66 69 65 6c 64 73 2e |e = self|.fields.|
|00003290| 67 65 74 28 27 65 76 65 | 6e 74 2d 74 79 70 65 27 |get('eve|nt-type'|
|000032a0| 2c 20 27 65 76 65 6e 74 | 27 29 0a 20 20 20 20 20 |, 'event|'). |
|000032b0| 20 20 20 65 76 65 6e 74 | 5f 63 6f 64 65 20 3d 20 | event|_code = |
|000032c0| 73 65 6c 66 2e 66 69 65 | 6c 64 73 2e 67 65 74 28 |self.fie|lds.get(|
|000032d0| 27 65 76 65 6e 74 2d 63 | 6f 64 65 27 2c 20 30 29 |'event-c|ode', 0)|
|000032e0| 0a 20 20 20 20 20 20 20 | 20 64 65 76 69 63 65 5f |. | device_|
|000032f0| 75 72 69 20 3d 20 73 65 | 6c 66 2e 66 69 65 6c 64 |uri = se|lf.field|
|00003300| 73 2e 67 65 74 28 27 64 | 65 76 69 63 65 2d 75 72 |s.get('d|evice-ur|
|00003310| 69 27 2c 20 27 27 29 2e | 72 65 70 6c 61 63 65 28 |i', '').|replace(|
|00003320| 27 68 70 66 61 78 3a 27 | 2c 20 27 68 70 3a 27 29 |'hpfax:'|, 'hp:')|
|00003330| 0a 20 20 20 20 20 20 20 | 20 6c 6f 67 2e 64 65 62 |. | log.deb|
|00003340| 75 67 28 27 44 65 76 69 | 63 65 20 55 52 49 3a 20 |ug('Devi|ce URI: |
|00003350| 25 73 27 20 25 20 64 65 | 76 69 63 65 5f 75 72 69 |%s' % de|vice_uri|
|00003360| 29 0a 20 20 20 20 20 20 | 20 20 65 72 72 6f 72 5f |). | error_|
|00003370| 73 74 72 69 6e 67 5f 73 | 68 6f 72 74 20 3d 20 64 |string_s|hort = d|
|00003380| 65 76 69 63 65 2e 71 75 | 65 72 79 53 74 72 69 6e |evice.qu|eryStrin|
|00003390| 67 28 73 74 72 28 65 76 | 65 6e 74 5f 63 6f 64 65 |g(str(ev|ent_code|
|000033a0| 29 2c 20 30 29 0a 20 20 | 20 20 20 20 20 20 65 72 |), 0). | er|
|000033b0| 72 6f 72 5f 73 74 72 69 | 6e 67 5f 6c 6f 6e 67 20 |ror_stri|ng_long |
|000033c0| 3d 20 64 65 76 69 63 65 | 2e 71 75 65 72 79 53 74 |= device|.querySt|
|000033d0| 72 69 6e 67 28 73 74 72 | 28 65 76 65 6e 74 5f 63 |ring(str|(event_c|
|000033e0| 6f 64 65 29 2c 20 31 29 | 0a 20 20 20 20 20 20 20 |ode), 1)|. |
|000033f0| 20 6c 6f 67 2e 64 65 62 | 75 67 28 27 53 68 6f 72 | log.deb|ug('Shor|
|00003400| 74 2f 4c 6f 6e 67 3a 20 | 25 73 2f 25 73 27 20 25 |t/Long: |%s/%s' %|
|00003410| 20 28 65 72 72 6f 72 5f | 73 74 72 69 6e 67 5f 73 | (error_|string_s|
|00003420| 68 6f 72 74 2c 20 65 72 | 72 6f 72 5f 73 74 72 69 |hort, er|ror_stri|
|00003430| 6e 67 5f 6c 6f 6e 67 29 | 29 0a 20 20 20 20 20 20 |ng_long)|). |
|00003440| 20 20 6a 6f 62 5f 69 64 | 20 3d 20 73 65 6c 66 2e | job_id| = self.|
|00003450| 66 69 65 6c 64 73 2e 67 | 65 74 28 27 6a 6f 62 2d |fields.g|et('job-|
|00003460| 69 64 27 2c 20 30 29 0a | 20 20 20 20 20 20 20 20 |id', 0).| |
|00003470| 0a 20 20 20 20 20 20 20 | 20 74 72 79 3a 0a 20 20 |. | try:. |
|00003480| 20 20 20 20 20 20 20 20 | 20 20 75 73 65 72 6e 61 | | userna|
|00003490| 6d 65 20 3d 20 73 65 6c | 66 2e 66 69 65 6c 64 73 |me = sel|f.fields|
|000034a0| 5b 27 75 73 65 72 6e 61 | 6d 65 27 5d 0a 20 20 20 |['userna|me']. |
|000034b0| 20 20 20 20 20 65 78 63 | 65 70 74 20 4b 65 79 45 | exc|ept KeyE|
|000034c0| 72 72 6f 72 3a 0a 20 20 | 20 20 20 20 20 20 20 20 |rror:. | |
|000034d0| 20 20 69 66 20 6a 6f 62 | 5f 69 64 20 3d 3d 20 30 | if job|_id == 0|
|000034e0| 3a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |:. | |
|000034f0| 20 20 75 73 65 72 6e 61 | 6d 65 20 3d 20 70 72 6f | userna|me = pro|
|00003500| 70 2e 75 73 65 72 6e 61 | 6d 65 0a 20 20 20 20 20 |p.userna|me. |
|00003510| 20 20 20 20 20 20 20 65 | 6c 73 65 3a 0a 20 20 20 | e|lse:. |
|00003520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 6a 6f 62 | | job|
|00003530| 73 20 3d 20 63 75 70 73 | 2e 67 65 74 41 6c 6c 4a |s = cups|.getAllJ|
|00003540| 6f 62 73 28 29 0a 20 20 | 20 20 20 20 20 20 20 20 |obs(). | |
|00003550| 20 20 20 20 20 20 66 6f | 72 20 6a 20 69 6e 20 6a | fo|r j in j|
|00003560| 6f 62 73 3a 0a 20 20 20 | 20 20 20 20 20 20 20 20 |obs:. | |
|00003570| 20 20 20 20 20 20 20 20 | 20 69 66 20 6a 2e 69 64 | | if j.id|
|00003580| 20 3d 3d 20 6a 6f 62 5f | 69 64 3a 0a 20 20 20 20 | == job_|id:. |
|00003590| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000035a0| 20 20 20 20 75 73 65 72 | 6e 61 6d 65 20 3d 20 6a | user|name = j|
|000035b0| 2e 75 73 65 72 0a 20 20 | 20 20 20 20 20 20 20 20 |.user. | |
|000035c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 62 72 | | br|
|000035d0| 65 61 6b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |eak. | |
|000035e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 63 6f 6e 74 | | cont|
|000035f0| 69 6e 75 65 0a 20 20 20 | 20 20 20 20 20 20 20 20 |inue. | |
|00003600| 20 20 20 20 20 65 6c 73 | 65 3a 0a 20 20 20 20 20 | els|e:. |
|00003610| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 75 | | u|
|00003620| 73 65 72 6e 61 6d 65 20 | 3d 20 70 72 6f 70 2e 75 |sername |= prop.u|
|00003630| 73 65 72 6e 61 6d 65 0a | 20 20 20 20 20 20 20 20 |sername.| |
|00003640| 65 78 63 65 70 74 3a 0a | 20 20 20 20 20 20 20 20 |except:.| |
|00003650| 20 20 20 20 6a 6f 62 5f | 69 64 20 3d 3d 20 30 0a | job_|id == 0.|
|00003660| 0a 20 20 20 20 20 20 20 | 20 6e 6f 5f 66 77 64 20 |. | no_fwd |
|00003670| 3d 20 75 74 69 6c 73 2e | 74 6f 5f 62 6f 6f 6c 28 |= utils.|to_bool(|
|00003680| 73 65 6c 66 2e 66 69 65 | 6c 64 73 2e 67 65 74 28 |self.fie|lds.get(|
|00003690| 27 6e 6f 2d 66 77 64 27 | 2c 20 27 30 27 29 29 0a |'no-fwd'|, '0')).|
|000036a0| 20 20 20 20 20 20 20 20 | 6c 6f 67 2e 64 65 62 75 | |log.debu|
|000036b0| 67 28 27 55 73 65 72 6e | 61 6d 65 20 28 6a 6f 62 |g('Usern|ame (job|
|000036c0| 69 64 29 3a 20 25 73 20 | 28 25 64 29 27 20 25 20 |id): %s |(%d)' % |
|000036d0| 28 75 73 65 72 6e 61 6d | 65 2c 20 6a 6f 62 5f 69 |(usernam|e, job_i|
|000036e0| 64 29 29 0a 20 20 20 20 | 20 20 20 20 72 65 74 72 |d)). | retr|
|000036f0| 79 5f 74 69 6d 65 6f 75 | 74 20 3d 20 73 65 6c 66 |y_timeou|t = self|
|00003700| 2e 66 69 65 6c 64 73 2e | 67 65 74 28 27 72 65 74 |.fields.|get('ret|
|00003710| 72 79 2d 74 69 6d 65 6f | 75 74 27 2c 20 30 29 0a |ry-timeo|ut', 0).|
|00003720| 20 20 20 20 20 20 20 20 | 75 73 65 72 5f 61 6c 65 | |user_ale|
|00003730| 72 74 73 20 3d 20 61 6c | 65 72 74 73 2e 67 65 74 |rts = al|erts.get|
|00003740| 28 75 73 65 72 6e 61 6d | 65 2c 20 7b 20 7d 29 0a |(usernam|e, { }).|
|00003750| 20 20 20 20 20 20 20 20 | 64 75 70 5f 65 76 65 6e | |dup_even|
|00003760| 74 20 3d 20 46 61 6c 73 | 65 0a 20 20 20 20 20 20 |t = Fals|e. |
|00003770| 20 20 69 66 20 65 76 65 | 6e 74 5f 63 6f 64 65 20 | if eve|nt_code |
|00003780| 3c 3d 20 45 56 45 4e 54 | 5f 4d 41 58 5f 55 53 45 |<= EVENT|_MAX_USE|
|00003790| 52 5f 45 56 45 4e 54 3a | 0a 20 20 20 20 20 20 20 |R_EVENT:|. |
|000037a0| 20 20 20 20 20 64 75 70 | 5f 65 76 65 6e 74 20 3d | dup|_event =|
|000037b0| 20 73 65 6c 66 2e 63 72 | 65 61 74 65 48 69 73 74 | self.cr|eateHist|
|000037c0| 6f 72 79 28 64 65 76 69 | 63 65 5f 75 72 69 2c 20 |ory(devi|ce_uri, |
|000037d0| 65 76 65 6e 74 5f 63 6f | 64 65 2c 20 6a 6f 62 5f |event_co|de, job_|
|000037e0| 69 64 2c 20 75 73 65 72 | 6e 61 6d 65 29 0a 20 20 |id, user|name). |
|000037f0| 20 20 20 20 20 20 0a 20 | 20 20 20 20 20 20 20 69 | . | i|
|00003800| 66 20 6e 6f 74 20 6e 6f | 5f 66 77 64 3a 0a 20 20 |f not no|_fwd:. |
|00003810| 20 20 20 20 20 20 20 20 | 20 20 69 66 20 65 76 65 | | if eve|
|00003820| 6e 74 5f 63 6f 64 65 20 | 3c 3d 20 45 56 45 4e 54 |nt_code |<= EVENT|
|00003830| 5f 4d 41 58 5f 55 53 45 | 52 5f 45 56 45 4e 54 20 |_MAX_USE|R_EVENT |
|00003840| 61 6e 64 20 75 73 65 72 | 5f 61 6c 65 72 74 73 2e |and user|_alerts.|
|00003850| 67 65 74 28 27 65 6d 61 | 69 6c 2d 61 6c 65 72 74 |get('ema|il-alert|
|00003860| 73 27 2c 20 46 61 6c 73 | 65 29 20 61 6e 64 20 65 |s', Fals|e) and e|
|00003870| 76 65 6e 74 5f 74 79 70 | 65 20 3d 3d 20 27 65 72 |vent_typ|e == 'er|
|00003880| 72 6f 72 27 20 61 6e 64 | 20 6e 6f 74 20 64 75 70 |ror' and| not dup|
|00003890| 5f 65 76 65 6e 74 3a 0a | 20 20 20 20 20 20 20 20 |_event:.| |
|000038a0| 20 20 20 20 20 20 20 20 | 73 75 62 6a 65 63 74 20 | |subject |
|000038b0| 3d 20 64 65 76 69 63 65 | 2e 71 75 65 72 79 53 74 |= device|.querySt|
|000038c0| 72 69 6e 67 28 27 65 6d | 61 69 6c 5f 61 6c 65 72 |ring('em|ail_aler|
|000038d0| 74 5f 73 75 62 6a 65 63 | 74 27 29 20 2b 20 64 65 |t_subjec|t') + de|
|000038e0| 76 69 63 65 5f 75 72 69 | 0a 20 20 20 20 20 20 20 |vice_uri|. |
|000038f0| 20 20 20 20 20 20 20 20 | 20 6d 65 73 73 61 67 65 | | message|
|00003900| 20 3d 20 27 5c 6e 27 2e | 6a 6f 69 6e 28 5b 0a 20 | = '\n'.|join([. |
|00003910| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003920| 20 20 20 64 65 76 69 63 | 65 5f 75 72 69 2c 0a 20 | devic|e_uri,. |
|00003930| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003940| 20 20 20 74 69 6d 65 2e | 73 74 72 66 74 69 6d 65 | time.|strftime|
|00003950| 28 27 25 61 2c 20 25 64 | 20 25 62 20 25 59 20 25 |('%a, %d| %b %Y %|
|00003960| 48 3a 25 4d 3a 25 53 27 | 2c 20 74 69 6d 65 2e 6c |H:%M:%S'|, time.l|
|00003970| 6f 63 61 6c 74 69 6d 65 | 28 29 29 2c 0a 20 20 20 |ocaltime|()),. |
|00003980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003990| 20 65 72 72 6f 72 5f 73 | 74 72 69 6e 67 5f 73 68 | error_s|tring_sh|
|000039a0| 6f 72 74 2c 0a 20 20 20 | 20 20 20 20 20 20 20 20 |ort,. | |
|000039b0| 20 20 20 20 20 20 20 20 | 20 65 72 72 6f 72 5f 73 | | error_s|
|000039c0| 74 72 69 6e 67 5f 6c 6f | 6e 67 2c 0a 20 20 20 20 |tring_lo|ng,. |
|000039d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000039e0| 73 74 72 28 65 76 65 6e | 74 5f 63 6f 64 65 29 5d |str(even|t_code)]|
|000039f0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00003a00| 20 20 73 65 6c 66 2e 73 | 65 6e 64 45 6d 61 69 6c | self.s|endEmail|
|00003a10| 28 75 73 65 72 6e 61 6d | 65 2c 20 73 75 62 6a 65 |(usernam|e, subje|
|00003a20| 63 74 2c 20 6d 65 73 73 | 61 67 65 2c 20 46 61 6c |ct, mess|age, Fal|
|00003a30| 73 65 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |se). | |
|00003a40| 0a 20 20 20 20 20 20 20 | 20 0a 0a 20 20 20 20 0a |. | .. .|
|00003a50| 20 20 20 20 64 65 66 20 | 73 65 6e 64 45 6d 61 69 | def |sendEmai|
|00003a60| 6c 28 73 65 6c 66 2c 20 | 75 73 65 72 6e 61 6d 65 |l(self, |username|
|00003a70| 2c 20 73 75 62 6a 65 63 | 74 2c 20 6d 65 73 73 61 |, subjec|t, messa|
|00003a80| 67 65 2c 20 77 61 69 74 | 29 3a 0a 20 20 20 20 20 |ge, wait|):. |
|00003a90| 20 20 20 6d 73 67 20 3d | 20 63 53 74 72 69 6e 67 | msg =| cString|
|00003aa0| 49 4f 2e 53 74 72 69 6e | 67 49 4f 28 29 0a 20 20 |IO.Strin|gIO(). |
|00003ab0| 20 20 20 20 20 20 72 65 | 73 75 6c 74 5f 63 6f 64 | re|sult_cod|
|00003ac0| 65 20 3d 20 45 52 52 4f | 52 5f 53 55 43 43 45 53 |e = ERRO|R_SUCCES|
|00003ad0| 53 0a 20 20 20 20 20 20 | 20 20 75 73 65 72 5f 61 |S. | user_a|
|00003ae0| 6c 65 72 74 73 20 3d 20 | 61 6c 65 72 74 73 2e 67 |lerts = |alerts.g|
|00003af0| 65 74 28 75 73 65 72 6e | 61 6d 65 2c 20 7b 20 7d |et(usern|ame, { }|
|00003b00| 29 0a 20 20 20 20 20 20 | 20 20 66 72 6f 6d 5f 61 |). | from_a|
|00003b10| 64 64 72 65 73 73 20 3d | 20 75 73 65 72 5f 61 6c |ddress =| user_al|
|00003b20| 65 72 74 73 2e 67 65 74 | 28 27 65 6d 61 69 6c 2d |erts.get|('email-|
|00003b30| 66 72 6f 6d 2d 61 64 64 | 72 65 73 73 27 2c 20 27 |from-add|ress', '|
|00003b40| 27 29 0a 20 20 20 20 20 | 20 20 20 74 6f 5f 61 64 |'). | to_ad|
|00003b50| 64 72 65 73 73 65 73 20 | 3d 20 75 73 65 72 5f 61 |dresses |= user_a|
|00003b60| 6c 65 72 74 73 2e 67 65 | 74 28 27 65 6d 61 69 6c |lerts.ge|t('email|
|00003b70| 2d 74 6f 2d 61 64 64 72 | 65 73 73 65 73 27 2c 20 |-to-addr|esses', |
|00003b80| 66 72 6f 6d 5f 61 64 64 | 72 65 73 73 29 0a 20 20 |from_add|ress). |
|00003b90| 20 20 20 20 20 20 74 20 | 3d 20 74 69 6d 65 2e 73 | t |= time.s|
|00003ba0| 74 72 66 74 69 6d 65 28 | 27 25 61 2c 20 25 64 20 |trftime(|'%a, %d |
|00003bb0| 25 62 20 25 59 20 25 48 | 3a 25 4d 3a 25 53 20 2b |%b %Y %H|:%M:%S +|
|00003bc0| 30 30 30 30 27 2c 20 74 | 69 6d 65 2e 67 6d 74 69 |0000', t|ime.gmti|
|00003bd0| 6d 65 28 29 29 0a 20 20 | 20 20 20 20 20 20 55 55 |me()). | UU|
|00003be0| 49 44 20 3d 20 66 69 6c | 65 28 27 2f 70 72 6f 63 |ID = fil|e('/proc|
|00003bf0| 2f 73 79 73 2f 6b 65 72 | 6e 65 6c 2f 72 61 6e 64 |/sys/ker|nel/rand|
|00003c00| 6f 6d 2f 75 75 69 64 27 | 29 2e 72 65 61 64 6c 69 |om/uuid'|).readli|
|00003c10| 6e 65 28 29 2e 72 73 74 | 72 69 70 28 27 5c 6e 27 |ne().rst|rip('\n'|
|00003c20| 29 0a 20 20 20 20 20 20 | 20 20 6d 73 67 2e 77 72 |). | msg.wr|
|00003c30| 69 74 65 28 27 44 61 74 | 65 3a 20 25 73 5c 6e 27 |ite('Dat|e: %s\n'|
|00003c40| 20 25 20 74 29 0a 20 20 | 20 20 20 20 20 20 6d 73 | % t). | ms|
|00003c50| 67 2e 77 72 69 74 65 28 | 27 46 72 6f 6d 3a 20 3c |g.write(|'From: <|
|00003c60| 25 73 3e 5c 6e 27 20 25 | 20 66 72 6f 6d 5f 61 64 |%s>\n' %| from_ad|
|00003c70| 64 72 65 73 73 29 0a 20 | 20 20 20 20 20 20 20 6d |dress). | m|
|00003c80| 73 67 2e 77 72 69 74 65 | 28 27 54 6f 3a 20 25 73 |sg.write|('To: %s|
|00003c90| 5c 6e 27 20 25 20 74 6f | 5f 61 64 64 72 65 73 73 |\n' % to|_address|
|00003ca0| 65 73 29 0a 20 20 20 20 | 20 20 20 20 6d 73 67 2e |es). | msg.|
|00003cb0| 77 72 69 74 65 28 27 4d | 65 73 73 61 67 65 2d 49 |write('M|essage-I|
|00003cc0| 64 3a 20 3c 25 73 20 25 | 73 3e 5c 6e 27 20 25 20 |d: <%s %|s>\n' % |
|00003cd0| 28 55 55 49 44 2c 20 74 | 29 29 0a 20 20 20 20 20 |(UUID, t|)). |
|00003ce0| 20 20 20 6d 73 67 2e 77 | 72 69 74 65 28 27 43 6f | msg.w|rite('Co|
|00003cf0| 6e 74 65 6e 74 2d 54 79 | 70 65 3a 20 74 65 78 74 |ntent-Ty|pe: text|
|00003d00| 2f 70 6c 61 69 6e 5c 6e | 27 29 0a 20 20 20 20 20 |/plain\n|'). |
|00003d10| 20 20 20 6d 73 67 2e 77 | 72 69 74 65 28 27 43 6f | msg.w|rite('Co|
|00003d20| 6e 74 65 6e 74 2d 54 72 | 61 6e 73 66 65 72 2d 45 |ntent-Tr|ansfer-E|
|00003d30| 6e 63 6f 64 69 6e 67 3a | 20 37 62 69 74 5c 6e 27 |ncoding:| 7bit\n'|
|00003d40| 29 0a 20 20 20 20 20 20 | 20 20 6d 73 67 2e 77 72 |). | msg.wr|
|00003d50| 69 74 65 28 27 4d 69 6d | 65 2d 56 65 72 73 69 6f |ite('Mim|e-Versio|
|00003d60| 6e 3a 20 31 2e 30 5c 6e | 27 29 0a 20 20 20 20 20 |n: 1.0\n|'). |
|00003d70| 20 20 20 6d 73 67 2e 77 | 72 69 74 65 28 27 53 75 | msg.w|rite('Su|
|00003d80| 62 6a 65 63 74 3a 20 25 | 73 5c 6e 27 20 25 20 73 |bject: %|s\n' % s|
|00003d90| 75 62 6a 65 63 74 29 0a | 20 20 20 20 20 20 20 20 |ubject).| |
|00003da0| 6d 73 67 2e 77 72 69 74 | 65 28 27 5c 6e 27 29 0a |msg.writ|e('\n').|
|00003db0| 20 20 20 20 20 20 20 20 | 6d 73 67 2e 77 72 69 74 | |msg.writ|
|00003dc0| 65 28 6d 65 73 73 61 67 | 65 29 0a 20 20 20 20 20 |e(messag|e). |
|00003dd0| 20 20 20 65 6d 61 69 6c | 5f 6d 65 73 73 61 67 65 | email|_message|
|00003de0| 20 3d 20 6d 73 67 2e 67 | 65 74 76 61 6c 75 65 28 | = msg.g|etvalue(|
|00003df0| 29 0a 20 20 20 20 20 20 | 20 20 6c 6f 67 2e 64 65 |). | log.de|
|00003e00| 62 75 67 28 72 65 70 72 | 28 65 6d 61 69 6c 5f 6d |bug(repr|(email_m|
|00003e10| 65 73 73 61 67 65 29 29 | 0a 20 20 20 20 20 20 20 |essage))|. |
|00003e20| 20 6d 74 20 3d 20 4d 61 | 69 6c 54 68 72 65 61 64 | mt = Ma|ilThread|
|00003e30| 28 65 6d 61 69 6c 5f 6d | 65 73 73 61 67 65 2c 20 |(email_m|essage, |
|00003e40| 66 72 6f 6d 5f 61 64 64 | 72 65 73 73 29 0a 20 20 |from_add|ress). |
|00003e50| 20 20 20 20 20 20 6d 74 | 2e 73 74 61 72 74 28 29 | mt|.start()|
|00003e60| 0a 20 20 20 20 20 20 20 | 20 69 66 20 77 61 69 74 |. | if wait|
|00003e70| 3a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 6d 74 |:. | mt|
|00003e80| 2e 6a 6f 69 6e 28 29 0a | 20 20 20 20 20 20 20 20 |.join().| |
|00003e90| 20 20 20 20 72 65 73 75 | 6c 74 5f 63 6f 64 65 20 | resu|lt_code |
|00003ea0| 3d 20 6d 74 2e 72 65 73 | 75 6c 74 0a 20 20 20 20 |= mt.res|ult. |
|00003eb0| 20 20 20 20 0a 20 20 20 | 20 20 20 20 20 72 65 74 | . | ret|
|00003ec0| 75 72 6e 20 72 65 73 75 | 6c 74 5f 63 6f 64 65 0a |urn resu|lt_code.|
|00003ed0| 0a 20 20 20 20 0a 20 20 | 20 20 64 65 66 20 68 61 |. . | def ha|
|00003ee0| 6e 64 6c 65 5f 65 78 69 | 74 28 73 65 6c 66 29 3a |ndle_exi|t(self):|
|00003ef0| 0a 20 20 20 20 20 20 20 | 20 73 65 6c 66 2e 73 69 |. | self.si|
|00003f00| 67 6e 61 6c 5f 65 78 69 | 74 20 3d 20 54 72 75 65 |gnal_exi|t = True|
|00003f10| 0a 0a 20 20 20 20 0a 20 | 20 20 20 64 65 66 20 68 |.. . | def h|
|00003f20| 61 6e 64 6c 65 5f 6d 65 | 73 73 61 67 65 65 72 72 |andle_me|ssageerr|
|00003f30| 6f 72 28 73 65 6c 66 29 | 3a 0a 20 20 20 20 20 20 |or(self)|:. |
|00003f40| 20 20 70 61 73 73 0a 0a | 20 20 20 20 0a 20 20 20 | pass..| . |
|00003f50| 20 64 65 66 20 77 72 69 | 74 61 62 6c 65 28 73 65 | def wri|table(se|
|00003f60| 6c 66 29 3a 0a 20 20 20 | 20 20 20 20 20 69 66 20 |lf):. | if |
|00003f70| 6e 6f 74 20 28 73 65 6c | 66 2e 6f 75 74 5f 62 75 |not (sel|f.out_bu|
|00003f80| 66 66 65 72 29 3a 0a 20 | 20 20 20 20 20 20 20 20 |ffer):. | |
|00003f90| 20 20 20 70 61 73 73 0a | 20 20 20 20 20 20 20 20 | pass.| |
|00003fa0| 72 65 74 75 72 6e 20 6e | 6f 74 20 28 73 65 6c 66 |return n|ot (self|
|00003fb0| 2e 63 6f 6e 6e 65 63 74 | 65 64 29 0a 0a 20 20 20 |.connect|ed).. |
|00003fc0| 20 0a 20 20 20 20 64 65 | 66 20 68 61 6e 64 6c 65 | . de|f handle|
|00003fd0| 5f 63 6c 6f 73 65 28 73 | 65 6c 66 29 3a 0a 20 20 |_close(s|elf):. |
|00003fe0| 20 20 20 20 20 20 6c 6f | 67 2e 64 65 62 75 67 28 | lo|g.debug(|
|00003ff0| 27 43 6c 6f 73 69 6e 67 | 20 63 68 61 6e 6e 65 6c |'Closing| channel|
|00004000| 20 28 25 64 29 27 20 25 | 20 73 65 6c 66 2e 5f 66 | (%d)' %| self._f|
|00004010| 69 6c 65 6e 6f 29 0a 20 | 20 20 20 20 20 20 20 73 |ileno). | s|
|00004020| 65 6c 66 2e 63 6f 6e 6e | 65 63 74 65 64 20 3d 20 |elf.conn|ected = |
|00004030| 46 61 6c 73 65 0a 20 20 | 20 20 20 20 20 20 73 65 |False. | se|
|00004040| 6c 66 2e 63 6c 6f 73 65 | 28 29 0a 0a 0a 0a 63 6c |lf.close|()....cl|
|00004050| 61 73 73 20 4d 61 69 6c | 54 68 72 65 61 64 28 74 |ass Mail|Thread(t|
|00004060| 68 72 65 61 64 69 6e 67 | 2e 54 68 72 65 61 64 29 |hreading|.Thread)|
|00004070| 3a 0a 20 20 20 20 0a 20 | 20 20 20 64 65 66 20 5f |:. . | def _|
|00004080| 5f 69 6e 69 74 5f 5f 28 | 73 65 6c 66 2c 20 6d 65 |_init__(|self, me|
|00004090| 73 73 61 67 65 2c 20 66 | 72 6f 6d 5f 61 64 64 72 |ssage, f|rom_addr|
|000040a0| 65 73 73 29 3a 0a 20 20 | 20 20 20 20 20 20 74 68 |ess):. | th|
|000040b0| 72 65 61 64 69 6e 67 2e | 54 68 72 65 61 64 2e 5f |reading.|Thread._|
|000040c0| 5f 69 6e 69 74 5f 5f 28 | 73 65 6c 66 29 0a 20 20 |_init__(|self). |
|000040d0| 20 20 20 20 20 20 73 65 | 6c 66 2e 6d 65 73 73 61 | se|lf.messa|
|000040e0| 67 65 20 3d 20 6d 65 73 | 73 61 67 65 0a 20 20 20 |ge = mes|sage. |
|000040f0| 20 20 20 20 20 73 65 6c | 66 2e 66 72 6f 6d 5f 61 | sel|f.from_a|
|00004100| 64 64 72 65 73 73 20 3d | 20 66 72 6f 6d 5f 61 64 |ddress =| from_ad|
|00004110| 64 72 65 73 73 0a 20 20 | 20 20 20 20 20 20 73 65 |dress. | se|
|00004120| 6c 66 2e 72 65 73 75 6c | 74 20 3d 20 45 52 52 4f |lf.resul|t = ERRO|
|00004130| 52 5f 53 55 43 43 45 53 | 53 0a 0a 20 20 20 20 0a |R_SUCCES|S.. .|
|00004140| 20 20 20 20 64 65 66 20 | 72 75 6e 28 73 65 6c 66 | def |run(self|
|00004150| 29 3a 0a 20 20 20 20 20 | 20 20 20 6c 6f 67 2e 64 |):. | log.d|
|00004160| 65 62 75 67 28 27 53 74 | 61 72 74 69 6e 67 20 4d |ebug('St|arting M|
|00004170| 61 69 6c 20 54 68 72 65 | 61 64 2e 2e 2e 27 29 0a |ail Thre|ad...').|
|00004180| 20 20 20 20 20 20 20 20 | 73 65 6e 64 6d 61 69 6c | |sendmail|
|00004190| 20 3d 20 75 74 69 6c 73 | 2e 77 68 69 63 68 28 27 | = utils|.which('|
|000041a0| 73 65 6e 64 6d 61 69 6c | 27 29 0a 20 20 20 20 20 |sendmail|'). |
|000041b0| 20 20 20 69 66 20 73 65 | 6e 64 6d 61 69 6c 3a 0a | if se|ndmail:.|
|000041c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 73 65 6e 64 | | send|
|000041d0| 6d 61 69 6c 20 3d 20 6f | 73 2e 70 61 74 68 2e 6a |mail = o|s.path.j|
|000041e0| 6f 69 6e 28 73 65 6e 64 | 6d 61 69 6c 2c 20 27 73 |oin(send|mail, 's|
|000041f0| 65 6e 64 6d 61 69 6c 27 | 29 0a 20 20 20 20 20 20 |endmail'|). |
|00004200| 20 20 20 20 20 20 73 65 | 6e 64 6d 61 69 6c 20 2b | se|ndmail +|
|00004210| 3d 20 27 20 2d 74 20 2d | 72 20 25 73 27 20 25 20 |= ' -t -|r %s' % |
|00004220| 73 65 6c 66 2e 66 72 6f | 6d 5f 61 64 64 72 65 73 |self.fro|m_addres|
|00004230| 73 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 6c 6f |s. | lo|
|00004240| 67 2e 64 65 62 75 67 28 | 73 65 6e 64 6d 61 69 6c |g.debug(|sendmail|
|00004250| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 28 73 |). | (s|
|00004260| 74 64 5f 6f 75 74 2c 20 | 73 74 64 5f 69 6e 2c 20 |td_out, |std_in, |
|00004270| 73 74 64 5f 65 72 72 29 | 20 3d 20 70 6f 70 65 6e |std_err)| = popen|
|00004280| 32 2e 70 6f 70 65 6e 33 | 28 73 65 6e 64 6d 61 69 |2.popen3|(sendmai|
|00004290| 6c 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 6c |l). | l|
|000042a0| 6f 67 2e 64 65 62 75 67 | 28 72 65 70 72 28 73 65 |og.debug|(repr(se|
|000042b0| 6c 66 2e 6d 65 73 73 61 | 67 65 29 29 0a 20 20 20 |lf.messa|ge)). |
|000042c0| 20 20 20 20 20 20 20 20 | 20 73 74 64 5f 69 6e 2e | | std_in.|
|000042d0| 77 72 69 74 65 28 73 65 | 6c 66 2e 6d 65 73 73 61 |write(se|lf.messa|
|000042e0| 67 65 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ge). | |
|000042f0| 73 74 64 5f 69 6e 2e 63 | 6c 6f 73 65 28 29 0a 20 |std_in.c|lose(). |
|00004300| 20 20 20 20 20 20 20 20 | 20 20 20 28 72 2c 20 77 | | (r, w|
|00004310| 2c 20 65 29 20 3d 20 73 | 65 6c 65 63 74 2e 73 65 |, e) = s|elect.se|
|00004320| 6c 65 63 74 28 5b 0a 20 | 20 20 20 20 20 20 20 20 |lect([. | |
|00004330| 20 20 20 20 20 20 20 73 | 74 64 5f 65 72 72 5d 2c | s|td_err],|
|00004340| 20 5b 5d 2c 20 5b 5d 2c | 20 32 29 0a 20 20 20 20 | [], [],| 2). |
|00004350| 20 20 20 20 20 20 20 20 | 69 66 20 72 3a 0a 20 20 | |if r:. |
|00004360| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 65 72 | | er|
|00004370| 72 20 3d 20 73 74 64 5f | 65 72 72 2e 72 65 61 64 |r = std_|err.read|
|00004380| 28 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |(). | |
|00004390| 20 20 20 69 66 20 65 72 | 72 3a 0a 20 20 20 20 20 | if er|r:. |
|000043a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 6c | | l|
|000043b0| 6f 67 2e 65 72 72 6f 72 | 28 72 65 70 72 28 65 72 |og.error|(repr(er|
|000043c0| 72 29 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |r)). | |
|000043d0| 20 20 20 20 20 20 20 20 | 73 65 6c 66 2e 72 65 73 | |self.res|
|000043e0| 75 6c 74 20 3d 20 45 52 | 52 4f 52 5f 54 45 53 54 |ult = ER|ROR_TEST|
|000043f0| 5f 45 4d 41 49 4c 5f 46 | 41 49 4c 45 44 0a 20 20 |_EMAIL_F|AILED. |
|00004400| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 0a 20 | | . |
|00004410| 20 20 20 20 20 20 20 20 | 20 20 20 0a 20 20 20 20 | | . |
|00004420| 20 20 20 20 65 6c 73 65 | 3a 0a 20 20 20 20 20 20 | else|:. |
|00004430| 20 20 20 20 20 20 6c 6f | 67 2e 65 72 72 6f 72 28 | lo|g.error(|
|00004440| 27 4d 61 69 6c 20 73 65 | 6e 64 20 66 61 69 6c 65 |'Mail se|nd faile|
|00004450| 64 2e 20 73 65 6e 64 6d | 61 69 6c 20 6e 6f 74 20 |d. sendm|ail not |
|00004460| 66 6f 75 6e 64 2e 27 29 | 0a 20 20 20 20 20 20 20 |found.')|. |
|00004470| 20 20 20 20 20 73 65 6c | 66 2e 72 65 73 75 6c 74 | sel|f.result|
|00004480| 20 3d 20 45 52 52 4f 52 | 5f 54 45 53 54 5f 45 4d | = ERROR|_TEST_EM|
|00004490| 41 49 4c 5f 46 41 49 4c | 45 44 0a 20 20 20 20 20 |AIL_FAIL|ED. |
|000044a0| 20 20 20 6c 6f 67 2e 64 | 65 62 75 67 28 27 45 78 | log.d|ebug('Ex|
|000044b0| 69 74 69 6e 67 20 6d 61 | 69 6c 20 74 68 72 65 61 |iting ma|il threa|
|000044c0| 64 27 29 0a 0a 0a 0a 64 | 65 66 20 72 65 49 6e 69 |d')....d|ef reIni|
|000044d0| 74 28 29 3a 0a 20 20 20 | 20 70 61 73 73 0a 0a 0a |t():. | pass...|
|000044e0| 64 65 66 20 68 61 6e 64 | 6c 65 53 49 47 48 55 50 |def hand|leSIGHUP|
|000044f0| 28 73 69 67 6e 6f 2c 20 | 66 72 61 6d 65 29 3a 0a |(signo, |frame):.|
|00004500| 20 20 20 20 6c 6f 67 2e | 69 6e 66 6f 28 27 53 49 | log.|info('SI|
|00004510| 47 48 55 50 27 29 0a 20 | 20 20 20 72 65 49 6e 69 |GHUP'). | reIni|
|00004520| 74 28 29 0a 0a 0a 64 65 | 66 20 65 78 69 74 41 6c |t()...de|f exitAl|
|00004530| 6c 47 55 49 73 28 29 3a | 0a 20 20 20 20 70 61 73 |lGUIs():|. pas|
|00004540| 73 0a 0a 55 53 41 47 45 | 20 3d 20 5b 0a 20 20 20 |s..USAGE| = [. |
|00004550| 20 28 5f 5f 64 6f 63 5f | 5f 2c 20 27 27 2c 20 27 | (__doc_|_, '', '|
|00004560| 6e 61 6d 65 27 2c 20 54 | 72 75 65 29 2c 0a 20 20 |name', T|rue),. |
|00004570| 20 20 28 27 55 73 61 67 | 65 3a 20 68 70 73 73 64 | ('Usag|e: hpssd|
|00004580| 2e 70 79 20 5b 4f 50 54 | 49 4f 4e 53 5d 27 2c 20 |.py [OPT|IONS]', |
|00004590| 27 27 2c 20 27 73 75 6d | 6d 61 72 79 27 2c 20 54 |'', 'sum|mary', T|
|000045a0| 72 75 65 29 2c 0a 20 20 | 20 20 75 74 69 6c 73 2e |rue),. | utils.|
|000045b0| 55 53 41 47 45 5f 4f 50 | 54 49 4f 4e 53 2c 0a 20 |USAGE_OP|TIONS,. |
|000045c0| 20 20 20 28 27 44 6f 20 | 6e 6f 74 20 64 61 65 6d | ('Do |not daem|
|000045d0| 6f 6e 69 7a 65 3a 27 2c | 20 27 2d 78 27 2c 20 27 |onize:',| '-x', '|
|000045e0| 6f 70 74 69 6f 6e 27 2c | 20 46 61 6c 73 65 29 2c |option',| False),|
|000045f0| 0a 20 20 20 20 28 27 50 | 6f 72 74 20 74 6f 20 6c |. ('P|ort to l|
|00004600| 69 73 74 65 6e 20 6f 6e | 3a 27 2c 20 27 2d 70 3c |isten on|:', '-p<|
|00004610| 70 6f 72 74 3e 20 6f 72 | 20 2d 2d 70 6f 72 74 3d |port> or| --port=|
|00004620| 3c 70 6f 72 74 3e 20 28 | 6f 76 65 72 72 69 64 65 |<port> (|override|
|00004630| 73 20 76 61 6c 75 65 20 | 69 6e 20 2f 65 74 63 2f |s value |in /etc/|
|00004640| 68 70 2f 68 70 6c 69 70 | 2e 63 6f 6e 66 29 27 2c |hp/hplip|.conf)',|
|00004650| 20 27 6f 70 74 69 6f 6e | 27 2c 20 46 61 6c 73 65 | 'option|', False|
|00004660| 29 2c 0a 20 20 20 20 75 | 74 69 6c 73 2e 55 53 41 |),. u|tils.USA|
|00004670| 47 45 5f 4c 4f 47 47 49 | 4e 47 31 2c 0a 20 20 20 |GE_LOGGI|NG1,. |
|00004680| 20 75 74 69 6c 73 2e 55 | 53 41 47 45 5f 4c 4f 47 | utils.U|SAGE_LOG|
|00004690| 47 49 4e 47 32 2c 0a 20 | 20 20 20 28 27 52 75 6e |GING2,. | ('Run|
|000046a0| 20 69 6e 20 64 65 62 75 | 67 20 6d 6f 64 65 3a 27 | in debu|g mode:'|
|000046b0| 2c 20 27 2d 67 20 28 73 | 61 6d 65 20 61 73 20 6f |, '-g (s|ame as o|
|000046c0| 70 74 69 6f 6e 73 3a 20 | 2d 6c 64 65 62 75 67 20 |ptions: |-ldebug |
|000046d0| 2d 78 29 27 2c 20 27 6f | 70 74 69 6f 6e 27 2c 20 |-x)', 'o|ption', |
|000046e0| 46 61 6c 73 65 29 2c 0a | 20 20 20 20 75 74 69 6c |False),.| util|
|000046f0| 73 2e 55 53 41 47 45 5f | 48 45 4c 50 5d 0a 0a 64 |s.USAGE_|HELP]..d|
|00004700| 65 66 20 75 73 61 67 65 | 28 74 79 70 20 3d 20 27 |ef usage|(typ = '|
|00004710| 74 65 78 74 27 29 3a 0a | 20 20 20 20 69 66 20 74 |text'):.| if t|
|00004720| 79 70 20 3d 3d 20 27 74 | 65 78 74 27 3a 0a 20 20 |yp == 't|ext':. |
|00004730| 20 20 20 20 20 20 75 74 | 69 6c 73 2e 6c 6f 67 5f | ut|ils.log_|
|00004740| 74 69 74 6c 65 28 5f 5f | 74 69 74 6c 65 5f 5f 2c |title(__|title__,|
|00004750| 20 5f 5f 76 65 72 73 69 | 6f 6e 5f 5f 29 0a 20 20 | __versi|on__). |
|00004760| 20 20 0a 20 20 20 20 75 | 74 69 6c 73 2e 66 6f 72 | . u|tils.for|
|00004770| 6d 61 74 5f 74 65 78 74 | 28 55 53 41 47 45 2c 20 |mat_text|(USAGE, |
|00004780| 74 79 70 2c 20 5f 5f 74 | 69 74 6c 65 5f 5f 2c 20 |typ, __t|itle__, |
|00004790| 27 68 70 73 73 64 2e 70 | 79 27 2c 20 5f 5f 76 65 |'hpssd.p|y', __ve|
|000047a0| 72 73 69 6f 6e 5f 5f 29 | 0a 20 20 20 20 73 79 73 |rsion__)|. sys|
|000047b0| 2e 65 78 69 74 28 30 29 | 0a 0a 0a 64 65 66 20 6d |.exit(0)|...def m|
|000047c0| 61 69 6e 28 61 72 67 73 | 29 3a 0a 20 20 20 20 6c |ain(args|):. l|
|000047d0| 6f 67 2e 73 65 74 5f 6d | 6f 64 75 6c 65 28 27 68 |og.set_m|odule('h|
|000047e0| 70 73 73 64 27 29 0a 20 | 20 20 20 70 72 6f 70 2e |pssd'). | prop.|
|000047f0| 70 72 6f 67 20 3d 20 73 | 79 73 2e 61 72 67 76 5b |prog = s|ys.argv[|
|00004800| 30 5d 0a 20 20 20 20 70 | 72 6f 70 2e 64 61 65 6d |0]. p|rop.daem|
|00004810| 6f 6e 69 7a 65 20 3d 20 | 54 72 75 65 0a 20 20 20 |onize = |True. |
|00004820| 20 0a 20 20 20 20 74 72 | 79 3a 0a 20 20 20 20 20 | . tr|y:. |
|00004830| 20 20 20 28 6f 70 74 73 | 2c 20 61 72 67 73 29 20 | (opts|, args) |
|00004840| 3d 20 67 65 74 6f 70 74 | 2e 67 65 74 6f 70 74 28 |= getopt|.getopt(|
|00004850| 73 79 73 2e 61 72 67 76 | 5b 31 3a 5d 2c 20 27 6c |sys.argv|[1:], 'l|
|00004860| 3a 78 68 70 3a 67 27 2c | 20 5b 0a 20 20 20 20 20 |:xhp:g',| [. |
|00004870| 20 20 20 20 20 20 20 27 | 6c 65 76 65 6c 3d 27 2c | '|level=',|
|00004880| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 27 68 65 |. | 'he|
|00004890| 6c 70 27 2c 0a 20 20 20 | 20 20 20 20 20 20 20 20 |lp',. | |
|000048a0| 20 27 68 65 6c 70 2d 6d | 61 6e 27 2c 0a 20 20 20 | 'help-m|an',. |
|000048b0| 20 20 20 20 20 20 20 20 | 20 27 68 65 6c 70 2d 72 | | 'help-r|
|000048c0| 65 73 74 27 2c 0a 20 20 | 20 20 20 20 20 20 20 20 |est',. | |
|000048d0| 20 20 27 70 6f 72 74 3d | 27 2c 0a 20 20 20 20 20 | 'port=|',. |
|000048e0| 20 20 20 20 20 20 20 27 | 68 65 6c 70 2d 64 65 73 | '|help-des|
|000048f0| 63 27 5d 29 0a 20 20 20 | 20 65 78 63 65 70 74 20 |c']). | except |
|00004900| 67 65 74 6f 70 74 2e 47 | 65 74 6f 70 74 45 72 72 |getopt.G|etoptErr|
|00004910| 6f 72 3a 0a 20 20 20 20 | 20 20 20 20 75 73 61 67 |or:. | usag|
|00004920| 65 28 29 0a 0a 20 20 20 | 20 69 66 20 6f 73 2e 67 |e().. | if os.g|
|00004930| 65 74 65 6e 76 28 27 48 | 50 4c 49 50 5f 44 45 42 |etenv('H|PLIP_DEB|
|00004940| 55 47 27 29 3a 0a 20 20 | 20 20 20 20 20 20 6c 6f |UG'):. | lo|
|00004950| 67 2e 73 65 74 5f 6c 65 | 76 65 6c 28 27 64 65 62 |g.set_le|vel('deb|
|00004960| 75 67 27 29 0a 20 20 20 | 20 0a 20 20 20 20 66 6f |ug'). | . fo|
|00004970| 72 20 6f 2c 20 61 20 69 | 6e 20 6f 70 74 73 3a 0a |r o, a i|n opts:.|
|00004980| 20 20 20 20 20 20 20 20 | 69 66 20 6f 20 69 6e 20 | |if o in |
|00004990| 28 27 2d 6c 27 2c 20 27 | 2d 2d 6c 6f 67 67 69 6e |('-l', '|--loggin|
|000049a0| 67 27 29 3a 0a 20 20 20 | 20 20 20 20 20 20 20 20 |g'):. | |
|000049b0| 20 6c 6f 67 5f 6c 65 76 | 65 6c 20 3d 20 61 2e 6c | log_lev|el = a.l|
|000049c0| 6f 77 65 72 28 29 2e 73 | 74 72 69 70 28 29 0a 20 |ower().s|trip(). |
|000049d0| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 6e 6f | | if no|
|000049e0| 74 20 6c 6f 67 2e 73 65 | 74 5f 6c 65 76 65 6c 28 |t log.se|t_level(|
|000049f0| 6c 6f 67 5f 6c 65 76 65 | 6c 29 3a 0a 20 20 20 20 |log_leve|l):. |
|00004a00| 20 20 20 20 20 20 20 20 | 20 20 20 20 75 73 61 67 | | usag|
|00004a10| 65 28 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |e(). | |
|00004a20| 0a 20 20 20 20 20 20 20 | 20 65 6c 69 66 20 6f 20 |. | elif o |
|00004a30| 3d 3d 20 27 2d 67 27 3a | 0a 20 20 20 20 20 20 20 |== '-g':|. |
|00004a40| 20 20 20 20 20 6c 6f 67 | 2e 73 65 74 5f 6c 65 76 | log|.set_lev|
|00004a50| 65 6c 28 27 64 65 62 75 | 67 27 29 0a 20 20 20 20 |el('debu|g'). |
|00004a60| 20 20 20 20 20 20 20 20 | 70 72 6f 70 2e 64 61 65 | |prop.dae|
|00004a70| 6d 6f 6e 69 7a 65 20 3d | 20 46 61 6c 73 65 0a 20 |monize =| False. |
|00004a80| 20 20 20 20 20 20 20 65 | 6c 69 66 20 6f 20 69 6e | e|lif o in|
|00004a90| 20 28 27 2d 78 27 2c 29 | 3a 0a 20 20 20 20 20 20 | ('-x',)|:. |
|00004aa0| 20 20 20 20 20 20 70 72 | 6f 70 2e 64 61 65 6d 6f | pr|op.daemo|
|00004ab0| 6e 69 7a 65 20 3d 20 46 | 61 6c 73 65 0a 20 20 20 |nize = F|alse. |
|00004ac0| 20 20 20 20 20 65 6c 69 | 66 20 6f 20 69 6e 20 28 | eli|f o in (|
|00004ad0| 27 2d 68 27 2c 20 27 2d | 2d 68 65 6c 70 27 29 3a |'-h', '-|-help'):|
|00004ae0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 75 73 61 |. | usa|
|00004af0| 67 65 28 29 0a 20 20 20 | 20 20 20 20 20 65 6c 69 |ge(). | eli|
|00004b00| 66 20 6f 20 3d 3d 20 27 | 2d 2d 68 65 6c 70 2d 72 |f o == '|--help-r|
|00004b10| 65 73 74 27 3a 0a 20 20 | 20 20 20 20 20 20 20 20 |est':. | |
|00004b20| 20 20 75 73 61 67 65 28 | 27 72 65 73 74 27 29 0a | usage(|'rest').|
|00004b30| 20 20 20 20 20 20 20 20 | 65 6c 69 66 20 6f 20 3d | |elif o =|
|00004b40| 3d 20 27 2d 2d 68 65 6c | 70 2d 6d 61 6e 27 3a 0a |= '--hel|p-man':.|
|00004b50| 20 20 20 20 20 20 20 20 | 20 20 20 20 75 73 61 67 | | usag|
|00004b60| 65 28 27 6d 61 6e 27 29 | 0a 20 20 20 20 20 20 20 |e('man')|. |
|00004b70| 20 65 6c 69 66 20 6f 20 | 3d 3d 20 27 2d 2d 68 65 | elif o |== '--he|
|00004b80| 6c 70 2d 64 65 73 63 27 | 3a 0a 20 20 20 20 20 20 |lp-desc'|:. |
|00004b90| 20 20 20 20 20 20 70 72 | 69 6e 74 20 5f 5f 64 6f | pr|int __do|
|00004ba0| 63 5f 5f 2c 0a 20 20 20 | 20 20 20 20 20 20 20 20 |c__,. | |
|00004bb0| 20 73 79 73 2e 65 78 69 | 74 28 30 29 0a 20 20 20 | sys.exi|t(0). |
|00004bc0| 20 20 20 20 20 65 6c 69 | 66 20 6f 20 69 6e 20 28 | eli|f o in (|
|00004bd0| 27 2d 70 27 2c 20 27 2d | 2d 70 6f 72 74 27 29 3a |'-p', '-|-port'):|
|00004be0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 0a 20 20 |. | . |
|00004bf0| 20 20 20 20 20 20 20 20 | 20 20 74 72 79 3a 0a 20 | | try:. |
|00004c00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 70 | | p|
|00004c10| 72 6f 70 2e 68 70 73 73 | 64 5f 63 66 67 5f 70 6f |rop.hpss|d_cfg_po|
|00004c20| 72 74 20 3d 20 69 6e 74 | 28 61 29 0a 20 20 20 20 |rt = int|(a). |
|00004c30| 20 20 20 20 20 20 20 20 | 65 78 63 65 70 74 20 56 | |except V|
|00004c40| 61 6c 75 65 45 72 72 6f | 72 3a 0a 20 20 20 20 20 |alueErro|r:. |
|00004c50| 20 20 20 20 20 20 20 20 | 20 20 20 6c 6f 67 2e 65 | | log.e|
|00004c60| 72 72 6f 72 28 27 50 6f | 72 74 20 6d 75 73 74 20 |rror('Po|rt must |
|00004c70| 62 65 20 61 20 6e 75 6d | 65 72 69 63 20 76 61 6c |be a num|eric val|
|00004c80| 75 65 27 29 0a 20 20 20 | 20 20 20 20 20 20 20 20 |ue'). | |
|00004c90| 20 20 20 20 20 75 73 61 | 67 65 28 29 0a 0a 20 20 | usa|ge().. |
|00004ca0| 20 20 20 20 20 20 0a 20 | 20 20 20 0a 20 20 20 20 | . | . |
|00004cb0| 75 74 69 6c 73 2e 6c 6f | 67 5f 74 69 74 6c 65 28 |utils.lo|g_title(|
|00004cc0| 5f 5f 74 69 74 6c 65 5f | 5f 2c 20 5f 5f 76 65 72 |__title_|_, __ver|
|00004cd0| 73 69 6f 6e 5f 5f 29 0a | 20 20 20 20 70 72 6f 70 |sion__).| prop|
|00004ce0| 2e 68 69 73 74 6f 72 79 | 5f 73 69 7a 65 20 3d 20 |.history|_size = |
|00004cf0| 33 32 0a 20 20 20 20 75 | 74 69 6c 73 2e 67 65 74 |32. u|tils.get|
|00004d00| 5f 70 69 64 66 69 6c 65 | 5f 6c 6f 63 6b 28 6f 73 |_pidfile|_lock(os|
|00004d10| 2e 70 61 74 68 2e 6a 6f | 69 6e 28 70 72 6f 70 2e |.path.jo|in(prop.|
|00004d20| 72 75 6e 5f 64 69 72 2c | 20 27 68 70 73 73 64 2e |run_dir,| 'hpssd.|
|00004d30| 70 69 64 27 29 29 0a 20 | 20 20 20 69 66 20 70 72 |pid')). | if pr|
|00004d40| 6f 70 2e 64 61 65 6d 6f | 6e 69 7a 65 3a 0a 20 20 |op.daemo|nize:. |
|00004d50| 20 20 20 20 20 20 75 74 | 69 6c 73 2e 64 61 65 6d | ut|ils.daem|
|00004d60| 6f 6e 69 7a 65 28 29 0a | 20 20 20 20 0a 20 20 20 |onize().| . |
|00004d70| 20 72 65 49 6e 69 74 28 | 29 0a 20 20 20 20 0a 20 | reInit(|). . |
|00004d80| 20 20 20 74 72 79 3a 0a | 20 20 20 20 20 20 20 20 | try:.| |
|00004d90| 73 65 72 76 65 72 20 3d | 20 68 70 73 73 64 5f 73 |server =| hpssd_s|
|00004da0| 65 72 76 65 72 28 70 72 | 6f 70 2e 68 70 73 73 64 |erver(pr|op.hpssd|
|00004db0| 5f 68 6f 73 74 2c 20 70 | 72 6f 70 2e 68 70 73 73 |_host, p|rop.hpss|
|00004dc0| 64 5f 63 66 67 5f 70 6f | 72 74 29 0a 20 20 20 20 |d_cfg_po|rt). |
|00004dd0| 65 78 63 65 70 74 20 45 | 72 72 6f 72 3a 0a 20 20 |except E|rror:. |
|00004de0| 20 20 20 20 20 20 65 20 | 3d 20 4e 6f 6e 65 0a 20 | e |= None. |
|00004df0| 20 20 20 20 20 20 20 6c | 6f 67 2e 65 72 72 6f 72 | l|og.error|
|00004e00| 28 27 53 65 72 76 65 72 | 20 65 78 69 74 65 64 20 |('Server| exited |
|00004e10| 77 69 74 68 20 65 72 72 | 6f 72 3a 20 25 73 27 20 |with err|or: %s' |
|00004e20| 25 20 65 2e 6d 73 67 29 | 0a 20 20 20 20 20 20 20 |% e.msg)|. |
|00004e30| 20 73 79 73 2e 65 78 69 | 74 28 31 29 0a 0a 20 20 | sys.exi|t(1).. |
|00004e40| 20 20 6f 73 2e 75 6d 61 | 73 6b 28 39 31 29 0a 20 | os.uma|sk(91). |
|00004e50| 20 20 20 66 69 6c 65 28 | 6f 73 2e 70 61 74 68 2e | file(|os.path.|
|00004e60| 6a 6f 69 6e 28 70 72 6f | 70 2e 72 75 6e 5f 64 69 |join(pro|p.run_di|
|00004e70| 72 2c 20 27 68 70 73 73 | 64 2e 70 6f 72 74 27 29 |r, 'hpss|d.port')|
|00004e80| 2c 20 27 77 27 29 2e 77 | 72 69 74 65 28 27 25 64 |, 'w').w|rite('%d|
|00004e90| 5c 6e 27 20 25 20 70 72 | 6f 70 2e 68 70 73 73 64 |\n' % pr|op.hpssd|
|00004ea0| 5f 70 6f 72 74 29 0a 20 | 20 20 20 6f 73 2e 75 6d |_port). | os.um|
|00004eb0| 61 73 6b 28 36 33 29 0a | 20 20 20 20 6c 6f 67 2e |ask(63).| log.|
|00004ec0| 64 65 62 75 67 28 27 70 | 6f 72 74 3d 25 64 27 20 |debug('p|ort=%d' |
|00004ed0| 25 20 70 72 6f 70 2e 68 | 70 73 73 64 5f 70 6f 72 |% prop.h|pssd_por|
|00004ee0| 74 29 0a 20 20 20 20 6c | 6f 67 2e 69 6e 66 6f 28 |t). l|og.info(|
|00004ef0| 27 4c 69 73 74 65 6e 69 | 6e 67 20 6f 6e 20 25 73 |'Listeni|ng on %s|
|00004f00| 3a 25 64 27 20 25 20 28 | 70 72 6f 70 2e 68 70 73 |:%d' % (|prop.hps|
|00004f10| 73 64 5f 68 6f 73 74 2c | 20 70 72 6f 70 2e 68 70 |sd_host,| prop.hp|
|00004f20| 73 73 64 5f 70 6f 72 74 | 29 29 0a 20 20 20 20 73 |ssd_port|)). s|
|00004f30| 69 67 6e 61 6c 2e 73 69 | 67 6e 61 6c 28 73 69 67 |ignal.si|gnal(sig|
|00004f40| 6e 61 6c 2e 53 49 47 48 | 55 50 2c 20 68 61 6e 64 |nal.SIGH|UP, hand|
|00004f50| 6c 65 53 49 47 48 55 50 | 29 0a 20 20 20 20 0a 20 |leSIGHUP|). . |
|00004f60| 20 20 20 74 72 79 3a 0a | 20 20 20 20 20 20 20 20 | try:.| |
|00004f70| 6c 6f 67 2e 64 65 62 75 | 67 28 27 53 74 61 72 74 |log.debu|g('Start|
|00004f80| 69 6e 67 20 61 73 79 6e | 63 20 6c 6f 6f 70 2e 2e |ing asyn|c loop..|
|00004f90| 2e 27 29 0a 20 20 20 20 | 20 20 20 20 0a 20 20 20 |.'). | . |
|00004fa0| 20 20 20 20 20 74 72 79 | 3a 0a 20 20 20 20 20 20 | try|:. |
|00004fb0| 20 20 20 20 20 20 6c 6f | 6f 70 28 74 69 6d 65 6f | lo|op(timeo|
|00004fc0| 75 74 20 3d 20 35 29 0a | 20 20 20 20 20 20 20 20 |ut = 5).| |
|00004fd0| 65 78 63 65 70 74 20 4b | 65 79 62 6f 61 72 64 49 |except K|eyboardI|
|00004fe0| 6e 74 65 72 72 75 70 74 | 3a 0a 20 20 20 20 20 20 |nterrupt|:. |
|00004ff0| 20 20 20 20 20 20 6c 6f | 67 2e 77 61 72 6e 28 27 | lo|g.warn('|
|00005000| 43 74 72 6c 2d 43 20 68 | 69 74 2c 20 65 78 69 74 |Ctrl-C h|it, exit|
|00005010| 69 6e 67 2e 2e 2e 27 29 | 0a 20 20 20 20 20 20 20 |ing...')|. |
|00005020| 20 65 78 63 65 70 74 20 | 45 78 63 65 70 74 69 6f | except |Exceptio|
|00005030| 6e 3a 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 6c |n:. | l|
|00005040| 6f 67 2e 65 78 63 65 70 | 74 69 6f 6e 28 29 0a 0a |og.excep|tion()..|
|00005050| 20 20 20 20 20 20 20 20 | 6c 6f 67 2e 64 65 62 75 | |log.debu|
|00005060| 67 28 27 43 6c 65 61 6e | 69 6e 67 20 75 70 2e 2e |g('Clean|ing up..|
|00005070| 2e 27 29 0a 20 20 20 20 | 66 69 6e 61 6c 6c 79 3a |.'). |finally:|
|00005080| 0a 20 20 20 20 20 20 20 | 20 6f 73 2e 72 65 6d 6f |. | os.remo|
|00005090| 76 65 28 6f 73 2e 70 61 | 74 68 2e 6a 6f 69 6e 28 |ve(os.pa|th.join(|
|000050a0| 70 72 6f 70 2e 72 75 6e | 5f 64 69 72 2c 20 27 68 |prop.run|_dir, 'h|
|000050b0| 70 73 73 64 2e 70 69 64 | 27 29 29 0a 20 20 20 20 |pssd.pid|')). |
|000050c0| 20 20 20 20 6f 73 2e 72 | 65 6d 6f 76 65 28 6f 73 | os.r|emove(os|
|000050d0| 2e 70 61 74 68 2e 6a 6f | 69 6e 28 70 72 6f 70 2e |.path.jo|in(prop.|
|000050e0| 72 75 6e 5f 64 69 72 2c | 20 27 68 70 73 73 64 2e |run_dir,| 'hpssd.|
|000050f0| 70 6f 72 74 27 29 29 0a | 20 20 20 20 20 20 20 20 |port')).| |
|00005100| 73 65 72 76 65 72 2e 63 | 6c 6f 73 65 28 29 0a 20 |server.c|lose(). |
|00005110| 20 20 20 20 20 20 20 72 | 65 74 75 72 6e 20 30 0a | r|eturn 0.|
|00005120| 0a 0a 69 66 20 5f 5f 6e | 61 6d 65 5f 5f 20 3d 3d |..if __n|ame__ ==|
|00005130| 20 27 5f 5f 6d 61 69 6e | 5f 5f 27 3a 0a 20 20 20 | '__main|__':. |
|00005140| 20 73 79 73 2e 65 78 69 | 74 28 6d 61 69 6e 28 73 | sys.exi|t(main(s|
|00005150| 79 73 2e 61 72 67 76 5b | 31 3a 5d 29 29 0a 0a |ys.argv[|1:])).. |
+--------+-------------------------+-------------------------+--------+--------+