(n)
| 27 | |
| 28 | |
| 29 | def ipfw_rule_exists(n): |
| 30 | argv = ['ipfw', 'list', '%d' % n] |
| 31 | p = ssubprocess.Popen(argv, stdout=ssubprocess.PIPE, env=get_env()) |
| 32 | |
| 33 | found = False |
| 34 | for line in p.stdout: |
| 35 | if line.startswith(b'%05d ' % n): |
| 36 | if 'check-state :sshuttle' not in line: |
| 37 | log('non-sshuttle ipfw rule: %r' % line.strip()) |
| 38 | raise Fatal('non-sshuttle ipfw rule #%d already exists!' % n) |
| 39 | found = True |
| 40 | break |
| 41 | rv = p.wait() |
| 42 | if rv: |
| 43 | raise Fatal('%r returned %d' % (argv, rv)) |
| 44 | return found |
| 45 | |
| 46 | |
| 47 | _oldctls = {} |