[Pyobjc-dev] Calling SMJobBless with valid AuthorizationRef
Brought to you by:
ronaldoussoren
|
From: Kunal P. <kun...@gm...> - 2012-11-05 01:59:14
|
I'm getting an error when calling SMJobBless - "ValueError: depythonifying
'pointer', got 'LP_c_void_p'". I've tried a few things without luck. Any
help will be appreciated.
Here's my code -
from ServiceManagement import (
kSMDomainSystemLaunchd,
SMJobBless,
)
security = ctypes.cdll.LoadLibrary(ctypes.util.find_library('Security'))
class AuthorizationItem(ctypes.Structure):
_fields_ = [
('name', ctypes.c_char_p),
('valueLength', ctypes.c_uint32),
('value', ctypes.c_void_p),
('flags', ctypes.c_uint32),
]
class AuthorizationRights(ctypes.Structure):
_fields_ = [
('count', ctypes.c_uint32),
('items', ctypes.POINTER(AuthorizationItem)),
]
authorization_item = AuthorizationItem(
name='com.apple.ServiceManagement.blesshelper',
valueLength=0,
value=None,
flags=0,
)
authorization_rights = AuthorizationRights(
count=1,
items=ctypes.pointer(authorization_item),
)
authorization_flags = 19
authorization_ref = ctypes.POINTER(ctypes.c_void_p)()
status = security.AuthorizationCreate(
ctypes.pointer(authorization_rights),
None,
authorization_flags,
ctypes.pointer(authorization_ref),
)
SMJobBless(
kSMDomainSystemLaunchd,
'app.helper',
authorization_ref,
None,
)
|