package obus

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file nm_settings.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
(*
 * nm_settings.ml
 * --------------
 * Copyright : (c) 2010, Jeremie Dimino <jeremie@dimino.org>
 * Licence   : BSD3
 *)

open Lwt

include OBus_proxy.Private

open Nm_interfaces.Org_freedesktop_NetworkManagerSettings

let user () =
  let%lwt bus = OBus_bus.session () in
  return (OBus_proxy.make
            (OBus_peer.make bus "org.freedesktop.NetworkManagerUserSettings")
            [ "org"; "freedesktop"; "NetworkManagerSettings" ])

let system () =
  let%lwt bus = OBus_bus.system () in
  return (OBus_proxy.make
            (OBus_peer.make bus "org.freedesktop.NetworkManagerSystemSettings")
            [ "org"; "freedesktop"; "NetworkManagerSettings" ])

module Connection =
struct
  include OBus_proxy.Private

  open Nm_interfaces.Org_freedesktop_NetworkManagerSettings_Connection

  let update proxy ~properties =
    OBus_method.call m_Update proxy properties

  let delete proxy =
    OBus_method.call m_Delete proxy ()

  let get_settings proxy =
    OBus_method.call m_GetSettings proxy ()

  let updated proxy =
    OBus_signal.make s_Updated proxy

  let removed proxy =
    OBus_signal.make s_Removed proxy

  module Secrets =
  struct
    open Nm_interfaces.Org_freedesktop_NetworkManagerSettings_Connection_Secrets

    let get_secrets proxy ~setting_name ~hints ~request_new =
      OBus_method.call m_GetSecrets proxy (setting_name, hints, request_new)
  end
end

module System =
struct
  open Nm_interfaces.Org_freedesktop_NetworkManagerSettings_System

  let save_hostname proxy ~hostname =
    OBus_method.call m_SaveHostname proxy hostname

  let hostname proxy =
    OBus_property.make ~monitor:Nm_monitor.monitor p_Hostname proxy

  let can_modify proxy =
    OBus_property.make ~monitor:Nm_monitor.monitor p_CanModify proxy

  let properties_changed proxy =
    OBus_signal.make s_PropertiesChanged proxy

  let check_permissions proxy =
    OBus_signal.make s_CheckPermissions proxy

  let get_permissions proxy =
    let%lwt permissions = OBus_method.call m_GetPermissions proxy () in
    let permissions = Int32.to_int permissions in
    return permissions
end

let list_connections proxy =
  let%lwt (context, connections) = OBus_method.call_with_context m_ListConnections proxy () in
  return (
    List.map
      (fun path ->
         Connection.of_proxy
           (OBus_proxy.make (OBus_context.sender context) path))
      connections
  )

let add_connection proxy ~connection =
  OBus_method.call m_AddConnection proxy connection

let new_connection proxy =
  OBus_signal.map_with_context
    (fun context connection ->
       Connection.of_proxy (OBus_proxy.make (OBus_context.sender context) connection))
    (OBus_signal.make s_NewConnection proxy)
OCaml

Innovation. Community. Security.