emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Network Manager


From: Michael Albinus
Subject: Re: Network Manager
Date: Fri, 14 Dec 2012 09:21:48 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Ian D <address@hidden> writes:

> Emacs Developers,

Hi Ian,

>       I've been working on a network manager for Emacs.  It uses a
>       backend, which at the moment is either NetworkManager or Wicd,
>       which it accesses through D-Bus.  I haven't gotten it up to the
>       Emacs Lisp Coding Standards, but it is functional, if anyone is
>       interested.  As I am new to this mailing list, I'm not sure how I
>       should send the source.

It would be helpful, if you could explain in the ;;; Commentary: section,
that one needs to add to ~/.emacs

--8<---------------cut here---------------start------------->8---
(enwc-setup)
--8<---------------cut here---------------end--------------->8---

On an Ubuntu 12.04 machine, running NetworkManager 0.9.4.0, I get after
applying "M-x enwc-scan"

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (dbus-error "Method \"RequestScan\" with 
signature \"a{sv}\" on interface 
\"org.freedesktop.NetworkManager.Device.Wireless\" doesn't exist
")
  signal(dbus-error ("Method \"RequestScan\" with signature \"a{sv}\" on 
interface \"org.freedesktop.NetworkManager.Device.Wireless\" doesn't exist\n"))
  (progn (signal (car err) (cdr err)))
  (if (or dbus-debug (= dbus-message-type-error (nth 2 event))) (progn (signal 
(car err) (cdr err))))
  (condition-case err (let (result) (dbus-check-event event) (if (= 
dbus-message-type-error (nth 2 event)) (progn (signal (quote dbus-error) 
(nthcdr 9 event)))) (setq result (apply (nth 8 event) (nthcdr 9 event))) (if (= 
dbus-message-type-method-call (nth 2 event)) (progn (condition-case err (progn 
(if (eq result :ignore) (dbus-method-return-internal ... ... ...) (apply ... 
... ... ... ...))) (dbus-error (if dbus-debug (progn ...))))))) (dbus-error (if 
(= dbus-message-type-method-call (nth 2 event)) (progn (condition-case err 
(progn (dbus-method-error-internal (nth 1 event) (nth 4 event) (nth 3 event) 
(cadr err))) (dbus-error (if dbus-debug (progn ...)))))) (run-hook-with-args 
(quote dbus-event-error-functions) event err) (if (or dbus-debug (= 
dbus-message-type-error (nth 2 event))) (progn (signal (car err) (cdr err))))))
  dbus-handle-event((dbus-event :system 3 3747 ":1.11" nil nil nil 
dbus-call-method-handler "Method \"RequestScan\" with signature \"a{sv}\" on 
interface \"org.freedesktop.NetworkManager.Device.Wireless\" doesn't exist\n"))
  call-interactively(dbus-handle-event nil [(dbus-event :system 3 3747 ":1.11" 
nil nil nil dbus-call-method-handler "Method \"RequestScan\" with signature 
\"a{sv}\" on interface \"org.freedesktop.NetworkManager.Device.Wireless\" 
doesn't exist\n")])
  read-event(nil nil 0.1)
  (let (unread-command-events) (read-event nil nil 0.1))
  (let ((event (let (unread-command-events) (read-event nil nil 0.1)))) (if 
(and event (not (condition-case nil (progn (dbus-check-event event)) (error 
nil)))) (progn (setq unread-command-events (append unread-command-events (list 
event))))))
  (while (eq (gethash key dbus-return-values-table :ignore) :ignore) (let 
((event (let (unread-command-events) (read-event nil nil 0.1)))) (if (and event 
(not (condition-case nil (progn (dbus-check-event event)) (error nil)))) (progn 
(setq unread-command-events (append unread-command-events (list event)))))))
  (progn (while (eq (gethash key dbus-return-values-table :ignore) :ignore) 
(let ((event (let (unread-command-events) (read-event nil nil 0.1)))) (if (and 
event (not (condition-case nil (progn ...) (error nil)))) (progn (setq 
unread-command-events (append unread-command-events (list event))))))))
  (unwind-protect (progn (while (eq (gethash key dbus-return-values-table 
:ignore) :ignore) (let ((event (let (unread-command-events) (read-event nil nil 
0.1)))) (if (and event (not (condition-case nil ... ...))) (progn (setq 
unread-command-events (append unread-command-events ...))))))) (cancel-timer 
-with-timeout-timer-))
  (let* ((-with-timeout-timer- (run-with-timer (if timeout (/ timeout 1000.0) 
25) nil (function (lambda nil (throw (quote timeout) (quote timeout)))))) 
(with-timeout-timers (cons -with-timeout-timer- with-timeout-timers))) 
(unwind-protect (progn (while (eq (gethash key dbus-return-values-table 
:ignore) :ignore) (let ((event (let ... ...))) (if (and event (not ...)) (progn 
(setq unread-command-events ...)))))) (cancel-timer -with-timeout-timer-)))
  (catch (quote timeout) (let* ((-with-timeout-timer- (run-with-timer (if 
timeout (/ timeout 1000.0) 25) nil (function (lambda nil (throw ... ...))))) 
(with-timeout-timers (cons -with-timeout-timer- with-timeout-timers))) 
(unwind-protect (progn (while (eq (gethash key dbus-return-values-table 
:ignore) :ignore) (let ((event ...)) (if (and event ...) (progn ...))))) 
(cancel-timer -with-timeout-timer-))))
  (let ((-with-timeout-value- (catch (quote timeout) (let* 
((-with-timeout-timer- (run-with-timer ... nil ...)) (with-timeout-timers (cons 
-with-timeout-timer- with-timeout-timers))) (unwind-protect (progn (while ... 
...)) (cancel-timer -with-timeout-timer-)))))) (if (eq -with-timeout-value- 
(quote timeout)) (progn) -with-timeout-value-))
  (let ((timeout (plist-get args :timeout)) (key (apply (quote 
dbus-message-internal) dbus-message-type-method-call bus service path interface 
method (quote dbus-call-method-handler) args))) (let ((-with-timeout-value- 
(catch (quote timeout) (let* ((-with-timeout-timer- ...) (with-timeout-timers 
...)) (unwind-protect (progn ...) (cancel-timer -with-timeout-timer-)))))) (if 
(eq -with-timeout-value- (quote timeout)) (progn) -with-timeout-value-)) (prog1 
(gethash key dbus-return-values-table) (remhash key dbus-return-values-table)))
  dbus-call-method(:system "org.freedesktop.NetworkManager" 
"/org/freedesktop/NetworkManager/Devices/0" 
"org.freedesktop.NetworkManager.Device.Wireless" "RequestScan" :timeout 25000 
(:array :signature "{sv}"))
  enwc-nm-scan()
  funcall(enwc-nm-scan)
  enwc-do-scan()
  (let* ((scan-ret (enwc-do-scan)) (enwc-access-points (enwc-get-nw)) (cur-id 
0) networks) (message "Scanning... Done") (setq enwc-essid-width 5) (mapcar 
(function (lambda (x) (let ((ret-itm (cons ... nil))) (setq cur-id (1+ cur-id)) 
(progn (let (... det) (while --dolist-tail-- ... ... ...))) ret-itm))) 
enwc-access-points))
  enwc-scan-internal-wireless()
  (if enwc-using-wired (enwc-scan-internal-wired) (enwc-scan-internal-wireless))
  enwc-scan-internal()
  (setq enwc-last-scan (enwc-scan-internal))
  enwc-scan()
  call-interactively(enwc-scan record nil)
  command-execute(enwc-scan record)
  execute-extended-command(nil "enwc-scan")
  call-interactively(execute-extended-command nil nil)
--8<---------------cut here---------------end--------------->8---

The wireless card on "/org/freedesktop/NetworkManager/Devices/0" offers
an "org.freedesktop.NetworkManager.Device.Wireless" interface, but there
is no "RequestScan" method:

--8<---------------cut here---------------start------------->8---
(dbus-introspect-get-interface :system "org.freedesktop.NetworkManager"
 "/org/freedesktop/NetworkManager/Devices/0"
 "org.freedesktop.NetworkManager.Device.Wireless")

=> (interface ((name . org.freedesktop.NetworkManager.Device.Wireless))
     (method ((name . GetAccessPoints))
       (arg ((name . access_points) (type . ao) (direction . out))))
     (signal ((name . AccessPointRemoved))
       (arg ((type . o))))
     (signal ((name . AccessPointAdded))
       (arg ((type . o))))
     (signal ((name . PropertiesChanged))
       (arg ((type . a{sv}))))
     (property ((name . WirelessCapabilities) (type . u) (access . read)))
     (property ((name . ActiveAccessPoint) (type . o) (access . read)))
     (property ((name . Bitrate) (type . u) (access . read)))
     (property ((name . Mode) (type . u) (access . read)))
     (property ((name . PermHwAddress) (type . s) (access . read)))
     (property ((name . HwAddress) (type . s) (access . read))))
--8<---------------cut here---------------end--------------->8---

> Ian D

Best regards, Michael.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]