/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to DBUS-API

  • Committer: Teddy Hogeborn
  • Date: 2016-03-09 21:23:21 UTC
  • Revision ID: teddy@recompile.se-20160309212321-2qlkzj9tecepc8xq
Server: Add Python 3 compatibility

Add Python 3 compatibility by not using the python-avahi module.  Also
fix miscellaneous things which differs in Python 3.  Especially hard
to fix is loading and saving clients data between Python 3 and 2,
since pickle formats have problems with strings.

* INSTALL: Remove python-avahi (and change python-gobject to
  python-gi, which is preferred now).
* debian/control (Source: mandos/Build-Depends-Indep): Remove
  "python-avahi".
* mandos: Wrap future_builtins import in try-except clause.  Do not
  import avahi module.  Use codecs.decode(..., "base64) instead of
  .decode("base64).  Use .keys(), .values(), and .items() instead of
  .iterkeys(), .itervalues(), and .iteritems().
  (alternate_dbus_interfaces/wrapper): Python 3 still requires the
  "black magic", but luckily it still works.  The Python 3 type()
  constructor requires first argument to be a string, not a byte
  string.
  (copy_function): New.  Use throughout.
  (Avahi, avahi): New class and global variable.
  (GnuTLS._need_version): Changed to be a byte string.
  (main): Decode byte strings loaded from pickle file.
  (main/cleanup): Dump using pickle prototoc 2 which Python 2 can
  read.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
    Removes a client
28
28
   
29
29
** Signals:
30
 
*** ClientNotFound(s: KeyID, s: Address)
31
 
    A client connected from Address using KeyID, but was
32
 
    rejected because it was not found in the server.  The key ID
 
30
*** ClientNotFound(s: Fingerprint, s: Address)
 
31
    A client connected from Address using Fingerprint, but was
 
32
    rejected because it was not found in the server.  The fingerprint
33
33
    is represented as a string of hexadecimal digits.  The address is
34
34
    an IPv4 or IPv6 address in its normal string format.
35
35
 
55
55
   
56
56
   | Name                    | Type | Access     | clients.conf        |
57
57
   |-------------------------+------+------------+---------------------|
 
58
   | ApprovedByDefault       | b    | Read/Write | approved_by_default |
58
59
   | ApprovalDelay (a)       | t    | Read/Write | approval_delay      |
59
60
   | ApprovalDuration (a)    | t    | Read/Write | approval_duration   |
60
61
   | ApprovalPending (b)     | b    | Read       | N/A                 |
61
 
   | ApprovedByDefault       | b    | Read/Write | approved_by_default |
62
62
   | Checker                 | s    | Read/Write | checker             |
63
63
   | CheckerRunning (c)      | b    | Read/Write | N/A                 |
64
64
   | Created (d)             | s    | Read       | N/A                 |
68
68
   | Fingerprint             | s    | Read       | fingerprint         |
69
69
   | Host                    | s    | Read/Write | host                |
70
70
   | Interval (a)            | t    | Read/Write | interval            |
71
 
   | KeyID                   | s    | Read       | key_id              |
72
71
   | LastApprovalRequest (g) | s    | Read       | N/A                 |
73
72
   | LastCheckedOK (h)       | s    | Read/Write | N/A                 |
74
73
   | LastCheckerStatus (i)   | n    | Read       | N/A                 |
131
130
 
132
131
* Copyright
133
132
 
134
 
    Copyright © 2010-2020 Teddy Hogeborn
135
 
    Copyright © 2010-2020 Björn Påhlsson
 
133
    Copyright © 2010-2016 Teddy Hogeborn
 
134
    Copyright © 2010-2016 Björn Påhlsson
136
135
  
137
136
** License:
138
 
 
139
 
   This file is part of Mandos.
140
 
 
141
 
   Mandos is free software: you can redistribute it and/or modify it
142
 
   under the terms of the GNU General Public License as published by
143
 
   the Free Software Foundation, either version 3 of the License, or
144
 
   (at your option) any later version.
145
 
 
146
 
   Mandos is distributed in the hope that it will be useful, but
 
137
   
 
138
   This program is free software: you can redistribute it and/or
 
139
   modify it under the terms of the GNU General Public License as
 
140
   published by the Free Software Foundation, either version 3 of the
 
141
   License, or (at your option) any later version.
 
142
 
 
143
   This program is distributed in the hope that it will be useful, but
147
144
   WITHOUT ANY WARRANTY; without even the implied warranty of
148
145
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
149
146
   General Public License for more details.
150
147
 
151
148
   You should have received a copy of the GNU General Public License
152
 
   along with Mandos.  If not, see <http://www.gnu.org/licenses/>.
 
149
   along with this program.  If not, see
 
150
   <http://www.gnu.org/licenses/>.
153
151
 
154
152
 
155
153
#+STARTUP: showall