소스 검색

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 11 년 전
부모
커밋
e997867b14
2개의 변경된 파일3개의 추가작업 그리고 2개의 파일을 삭제
  1. 1
    1
      lib/htlogr.pm
  2. 2
    1
      lib/htlogr.py

+ 1
- 1
lib/htlogr.pm 파일 보기

@@ -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 파일 보기

@@ -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