From 8a304871323fd8c0ab81b81a9082f07d03a1fa0c Mon Sep 17 00:00:00 2001
From: Iain Patterson <me@iain.cx>
Date: Wed, 22 Apr 2009 14:39:01 -0400
Subject: [PATCH] Generic handling of SSH_FORWARDED overrides.

Check if the remote IP address matches a regular expression from
~/.ssh/forwarded and append " (from <hostname>)" to the PROMPT_COMMAND
only if not.
---
 .profile.d/prompt.bashrc | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/.profile.d/prompt.bashrc b/.profile.d/prompt.bashrc
index a80c615..6398e3d 100644
--- a/.profile.d/prompt.bashrc
+++ b/.profile.d/prompt.bashrc
@@ -1,13 +1,18 @@
-# Set the title of an xterm to the hostname.
-#
-
-SSH_FORWARDED=$(get_remote_ip -n)
+# Set the title of an xterm to the hostname unless the remote IP is matched by 
+# a regular expression in ~/.ssh/forwarded.
+SSH_FORWARDED=$(get_remote_ip)
 if [ ! -z "$SSH_FORWARDED" ]; then
-  if [ ! "$SSH_FORWARDED" = "62.189.242.202" -a ! "$SSH_FORWARDED" = "62.189.241.202" -a ! "$SSH_FORWARDED" = "193.128.72.68" -a ! "$SSH_FORWARDED" = "localhost" ]; then
-    SSH_FORWARDED=" (from $SSH_FORWARDED)"
-  else
+  if [ "$SSH_FORWARDED" = "localhost" ]; then
     SSH_FORWARDED=
+  elif [ -f ~/.ssh/forwarded ]; then
+    for forwarded in $(< ~/.ssh/forwarded); do
+      if echo "$SSH_FORWARDED" | grep "$forwarded" &>/dev/null; then
+        SSH_FORWARDED=
+      fi
+    done
+    unset forwarded
   fi
+  [ ! -z "$SSH_FORWARDED" ] && SSH_FORWARDED=" (from $(get_remote_ip -n))"
 fi
 
 # Unscientific check for grid jobs.
-- 
2.20.1