Quellcode durchsuchen

Make canonical (sorted) strings from data

htlogr::data will now sort data by keys before assembling it all into
message so that order will not differ between invocations.

Added to both Perl and Python implementations.
Alois Mahdal vor 11 Jahren
Ursprung
Commit
e997867b14
2 geänderte Dateien mit 3 neuen und 2 gelöschten Zeilen
  1. 1
    1
      lib/htlogr.pm
  2. 2
    1
      lib/htlogr.py

+ 1
- 1
lib/htlogr.pm Datei anzeigen

@@ -67,7 +67,7 @@ sub data {
67 67
     carp("data must be a hash reference") unless ref $data == 'HASH';
68 68
 
69 69
     my @fields;
70
-    foreach (keys %$data) {
70
+    foreach (sort keys %$data) {
71 71
         push @fields, join $DIV_VALUE, $_, $data->$_;
72 72
     }
73 73
 

+ 2
- 1
lib/htlogr.py Datei anzeigen

@@ -40,7 +40,8 @@ class htlogr:
40 40
 
41 41
     def _serialize(self, data):
42 42
         fields = []
43
-        for key, value in data.iteritems():
43
+        for key in sorted(data.keys()):
44
+            value = data[key]
44 45
             fields.append("%s%s%s" % (key, self.DIV_VALUE, value))
45 46
         return self.DIV_FIELD.join(fields)
46 47