[wireless-regdb] [PATCH] wireless-regdb: Support db.txt files with DFS CAC times

Jean-Pierre Tosoni jp.tosoni at acksys.fr
Mon Apr 13 01:29:23 PDT 2015


Hi Seth,

>From my testing the syntax accepted by reglib.c needs a comma after the CAC,
so you should skip that comma. Below is your patch with two lines added.

De : wireless-regdb [mailto:wireless-regdb-bounces at lists.infradead.org] De
la part de Seth Forshee
Envoyé : mercredi 8 avril 2015 15:18
À : wireless-regdb at lists.infradead.org
Cc : Jean-Pierre TOSONI
Objet : [wireless-regdb] [PATCH] wireless-regdb: Support db.txt files with
DFS CAC times

CRDA now supports db.txt files with DFS CAC times in country rules, but
dbparse.py chokes on such files. We can't do anything useful with CAC times
right now since the CRDA binary format doesn't support them, so add code to
parse CAC times and emit a warning that they are being ignored.

Signed-off-by: Seth Forshee <seth.forshee at canonical.com>
---

I'm throwing this out there in case anyone wants to build regulatory.bin
files from their own db.txt files which contain CAC times. If so, let me
know and I can apply this.

--- dbparse.py	2015-03-13 18:17:34.000000000 +0100
+++ dbparsejp.py	2015-04-13 10:22:52.000000000 +0200
@@ -273,23 +273,44 @@ class DBParser(object):
 
         if line[0] == '(':
             items = line.split('),', 1)
+            pname = items[0]
             if len(items) == 1:
-                pname = items[0]
                 line = ''
                 if not pname[-1] == ')':
                     self._syntax_error("Badly parenthesised power
definition")
                 pname = pname[:-1]
-                flags = []
             else:
-                pname = items[0]
-                flags = items[1].split(',')
+                line = items[1]
             power = pname[1:]
             pname = 'UNNAMED %d' % self._lineno
             self._parse_power_def(pname, power, dupwarn=False)
         else:
-            line = line.split(',')
-            pname = line[0]
-            flags = line[1:]
+            items = line.split(',', 1)
+            pname = items[0]
+            if len(items) == 1:
+                line = ''
+            else:
+                line = items[1]
+
+        if len(line) != 0 and line[0] == '(':
+            self._warn("Ignoring DFS CAC time definition")
+            items = line.split(')', 1)
+            cactime = items[0]
+            if len(items) == 1:
+                line = ''
+                if not cactime[-1] == ')':
+                    self._syntax_error("Badly parenthesised CAC time")
+                cactime = cactime[:-1]
+            else:
+                line = items[1]
+            cactime = cactime[1:]
+
+        if len(line) == 0:
+            flags = []
+        else:
+	    if line[0] == ',':
+	        line = line[1:]
+            flags = line.split(',')
 
         if not bname in self._bands:
             self._syntax_error("band does not exist")
--





More information about the wireless-regdb mailing list