(args, stdin=None)
| 385 | |
| 386 | |
| 387 | def pfctl(args, stdin=None): |
| 388 | argv = ['pfctl'] + shlex.split(args) |
| 389 | debug1('>> %s' % ' '.join(argv)) |
| 390 | p = ssubprocess.Popen(argv, stdin=ssubprocess.PIPE, |
| 391 | stdout=ssubprocess.PIPE, |
| 392 | stderr=ssubprocess.PIPE, |
| 393 | env=get_env()) |
| 394 | o = p.communicate(stdin) |
| 395 | if p.returncode: |
| 396 | log('%r returned %d, stdout and stderr follows: ' % |
| 397 | (argv, p.returncode)) |
| 398 | log("stdout:\n%s" % o[0].decode("ascii")) |
| 399 | log("stderr:\n%s" % o[1].decode("ascii")) |
| 400 | raise Fatal('%r returned %d' % (argv, p.returncode)) |
| 401 | |
| 402 | return o |
| 403 | |
| 404 | |
| 405 | def pf_get_dev(): |
no test coverage detected