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

Seth Forshee seth.forshee at canonical.com
Mon Apr 13 13:02:20 PDT 2015


On Mon, Apr 13, 2015 at 08:18:46AM -0500, Seth Forshee wrote:
> On Mon, Apr 13, 2015 at 10:29:23AM +0200, Jean-Pierre Tosoni wrote:
> > 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.
> 
> Ah, okay, I based it off of what you said in your email, which shows no
> comma:
> 
>   (freq - freq @ bw), (eirp [mW]), [(CACtime)] [flags...]
> 
> I thought it was weird that there was no comma, should have double
> checked against CRDA. Thanks for testing and the update, I can't try it
> out right this moment but will do so soon.

I don't think we need to consider the syntax without a comma following
CACtime as being valid, so we can make it simpler than in your changes.
Try the patch below, and if it works for you then I'll apply it. I'm
also thinking about removing the warning ...

---

diff --git a/dbparse.py b/dbparse.py
index b735b6a..baca3dd 100755
--- a/dbparse.py
+++ b/dbparse.py
@@ -273,23 +273,42 @@ 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:
+            flags = line.split(',')
 
         if not bname in self._bands:
             self._syntax_error("band does not exist")



More information about the wireless-regdb mailing list