Bläddra i källkod

add kamgroup config to set group ownership of the file created at path

fixes #4
Victor Seva 5 år sedan
förälder
incheckning
120ebf9a85
2 ändrade filer med 13 tillägg och 1 borttagningar
  1. 11 0
      kamcli/iorpc.py
  2. 2 1
      kamcli/kamcli.ini

+ 11 - 0
kamcli/iorpc.py

@@ -1,12 +1,14 @@
 import os
 import os
 import os.path
 import os.path
 import sys
 import sys
+import shutil
 import socket
 import socket
 import stat
 import stat
 import time
 import time
 import threading
 import threading
 import json
 import json
 from random import randint
 from random import randint
+from configparser import NoOptionError
 
 
 ##
 ##
 # enable yaml output format if the lib can be loaded
 # enable yaml output format if the lib can be loaded
@@ -214,6 +216,10 @@ def command_jsonrpc_fifo(ctx, dryrun, sndpath, rcvname, oformat, cmd, params=[],
 
 
     os.mkfifo(rcvpath, 0o666)
     os.mkfifo(rcvpath, 0o666)
     os.chmod(rcvpath, 0o666)
     os.chmod(rcvpath, 0o666)
+    try:
+        shutil.chown(rcvpath, group=ctx.gconfig.get('jsonrpc', 'kamgroup'))
+    except NoOptionError:
+        pass
     # create new thread to read from reply fifo
     # create new thread to read from reply fifo
     tiofifo = IOFifoThread(ctx, rcvpath, oformat)
     tiofifo = IOFifoThread(ctx, rcvpath, oformat)
     # start new threadd
     # start new threadd
@@ -327,6 +333,11 @@ def command_jsonrpc_socket(ctx, dryrun, srvaddr, rcvaddr, oformat, cmd, params=[
             ctx.vlog("unix socket reply: " + rcvaddr)
             ctx.vlog("unix socket reply: " + rcvaddr)
             sockclient.bind( rcvaddr )
             sockclient.bind( rcvaddr )
             os.chmod(rcvaddr, 0o660)
             os.chmod(rcvaddr, 0o660)
+            try:
+                shutil.chown(
+                    rcvaddr, group=ctx.gconfig.get('jsonrpc', 'kamgroup'))
+            except NoOptionError:
+                pass
             #sockclient.connect( srvaddr )
             #sockclient.connect( srvaddr )
             #sockclient.send( scmd )
             #sockclient.send( scmd )
             sockclient.sendto( scmd.encode(), srvaddr )
             sockclient.sendto( scmd.encode(), srvaddr )

+ 2 - 1
kamcli/kamcli.ini

@@ -31,7 +31,8 @@ rourl=%(type)s+%(driver)s://%(rouser)s:%(ropassword)s@%(host)s/%(dbname)s
 [ctl]
 [ctl]
 ; type - can be: jsonrpc
 ; type - can be: jsonrpc
 type=jsonrpc
 type=jsonrpc
-
+; kamgroup - group of the running kamailio server process
+kamgroup=kamailio
 
 
 ### jsonrpc settings
 ### jsonrpc settings
 [jsonrpc]
 [jsonrpc]