1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-16 09:50:25 +00:00

* lisp/net/net-utils.el: Small improvements.

(net-utils--executable-find-sbin): New function.
(ifconfig-program): Check sbin directories.
Fallback to "ip".  (Bug#22091)
(ifconfig-program-options): Check the actual program in use.
(arp-program): Check sbin directories.
This commit is contained in:
Glenn Morris 2015-12-04 19:49:07 -05:00
parent 15b050eca9
commit 156ad50b91

View File

@ -35,15 +35,19 @@
;; * Support connections to HOST/PORT, generally for debugging and the like.
;; In other words, for doing much the same thing as "telnet HOST PORT", and
;; then typing commands.
;;
;; PATHS
;;
;; On some systems, some of these programs are not in normal user path,
;; but rather in /sbin, /usr/sbin, and so on.
;;; Code:
;; On some systems, programs like ifconfig are not in normal user
;; path, but rather in /sbin, /usr/sbin, etc (but non-root users can
;; still use them for queries). Actually the trend these
;; day is for /sbin to be a symlink to /usr/sbin, but we still need to
;; search both for older systems.
(defun net-utils--executable-find-sbin (command)
"Return absolute name of COMMAND if found in an sbin directory."
(let ((exec-path '("/sbin" "/usr/sbin" "/usr/local/sbin")))
(executable-find command)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Customization Variables
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -85,10 +89,13 @@ These options can be used to limit how many ICMP packets are emitted."
(define-obsolete-variable-alias 'ipconfig-program 'ifconfig-program "22.2")
(defcustom ifconfig-program
(if (eq system-type 'windows-nt)
"ipconfig"
"ifconfig")
(cond ((eq system-type 'windows-nt) "ipconfig")
((executable-find "ifconfig") "ifconfig")
((net-utils--executable-find-sbin "ifconfig"))
((net-utils--executable-find-sbin "ip"))
(t "ip"))
"Program to print network configuration information."
:version "25.1" ; add ip
:group 'net-utils
:type 'string)
@ -96,10 +103,12 @@ These options can be used to limit how many ICMP packets are emitted."
'ifconfig-program-options "22.2")
(defcustom ifconfig-program-options
(list
(if (eq system-type 'windows-nt)
"/all" "-a"))
(cond ((string-match "ipconfig\\'" ifconfig-program) '("/all"))
((string-match "ifconfig\\'" ifconfig-program) '("-a"))
((string-match "ip\\'" ifconfig-program) '("addr")))
"Options for the ifconfig program."
:version "25.1"
:set-after '(ifconfig-program)
:group 'net-utils
:type '(repeat string))
@ -126,7 +135,7 @@ These options can be used to limit how many ICMP packets are emitted."
:group 'net-utils
:type '(repeat string))
(defcustom arp-program "arp"
(defcustom arp-program (or (net-utils--executable-find-sbin "arp") "arp")
"Program to print IP to address translation tables."
:group 'net-utils
:type 'string)