summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2008-07-08 14:22:11 -0400
committerDave Brolley <brolley@redhat.com>2008-07-08 14:22:11 -0400
commitb7278cda1ffbe3f1e711adb40577ad12f3527260 (patch)
tree9957df6965fac4cee1d2444745029ce378e6e461
parentff7b8b4a8fbcba5e78e72617753fd33f6f3ebc07 (diff)
downloadsystemtap-steved-b7278cda1ffbe3f1e711adb40577ad12f3527260.tar.gz
systemtap-steved-b7278cda1ffbe3f1e711adb40577ad12f3527260.tar.xz
systemtap-steved-b7278cda1ffbe3f1e711adb40577ad12f3527260.zip
Use `uname -rvm` for checking system compatibility. Generate
a finale response from the server to allow for error checking.
-rw-r--r--ChangeLog10
-rwxr-xr-xstap-client16
-rwxr-xr-xstap-server7
-rwxr-xr-xstap-serverd5
4 files changed, 30 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 871b5096..99fbfc51 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-07-08 <brolley@redhat.com>
+
+ * stap-client (client_sysinfo): Use `uname -rvm`.
+ (receive_response): Wait for "done:" from the server. Clear server_ip
+ when the server is incompatible.
+ * stap-server (check_request): Quote "`server_sysinfo`".
+ (server_sysinfo): Use `uname -rvm`.
+ (send_response): Send "done:".
+ * stap-serverd (advertise_presence): Use `uname -rvm`. Quote "$txt".
+
2008-07-07 Mark Wielaard <mwielaard@redhat.com>
* stapex.5.in: Add section on installed examples, samples and demos
diff --git a/stap-client b/stap-client
index 515cab92..8c3607ae 100755
--- a/stap-client
+++ b/stap-client
@@ -315,7 +315,7 @@ function create_request {
function client_sysinfo {
if test "X$sysinfo_client" = "X"; then
# Add some info from uname
- sysinfo_client="`uname -r`"
+ sysinfo_client="`uname -rvm`"
fi
echo $sysinfo_client
}
@@ -348,7 +348,6 @@ function package_request {
# the tar file will expand to.
function send_request {
echo "request:" >&3
-
# Get the server's response.
read <&3
local line=$REPLY
@@ -368,7 +367,19 @@ function send_request {
# function: receive_response
#
# Wait for a response from the server indicating the results of our request.
+# protocol is:
+# server -> "done:"
+# server -> $tar_server
function receive_response {
+ # Get the server's response.
+ read <&3
+ local line=$REPLY
+ check_server_error $line
+
+ # Check for the proper response.
+ test "$line" = "done:" || \
+ fatal "ERROR: server response, '$line', is incorrect"
+
# Make a place to receive the response file.
tar_server=`mktemp -t $tmpdir_prefix_client.server.tgz.XXXXXX` || \
fatal "ERROR: cannot create temporary file " $tar_server
@@ -522,6 +533,7 @@ function match_server {
# It is a stap server, but is it compatible?
if test "$sysinfo_server" != "`client_sysinfo`"; then
+ server_ip=
continue
fi
diff --git a/stap-server b/stap-server
index 11d6d81d..16ffe8ee 100755
--- a/stap-server
+++ b/stap-server
@@ -111,7 +111,7 @@ function check_request {
client_sysinfo=`read_data_file sysinfo`
test "X$client_sysinfo" != "X" || exit 1
- check_compatibility "$client_sysinfo" `server_sysinfo`
+ check_compatibility "$client_sysinfo" "`server_sysinfo`"
}
# function server_sysinfo
@@ -120,7 +120,7 @@ function check_request {
function server_sysinfo {
if test "X$sysinfo_server" = "X"; then
# Add some info from uname
- sysinfo_server="`uname -r`"
+ sysinfo_server="`uname -rvm`"
fi
echo $sysinfo_server
}
@@ -365,9 +365,10 @@ function package_response {
# Notify the client that $tar_server is ready and wait for the client to take
# it.
# The protocol is:
-# server -> "sending: $tmpdir_server $tmpdir_stap"
+# server -> "done:"
# server -> $tar_server
function send_response {
+ echo "done:"
# Now send it
nc -l $port < $tar_server > /dev/null
}
diff --git a/stap-serverd b/stap-serverd
index 2c0743c0..eaaeda00 100755
--- a/stap-serverd
+++ b/stap-serverd
@@ -34,13 +34,12 @@ function initialization {
function advertise_presence {
# Build up a string representing our server's properties.
# TODO: this needs fleshing out.
-
- local sysinfo=`uname -r`
+ local sysinfo=`uname -rvm`
local txt="$sysinfo"
# Call avahi-publish-service to advertise our presence.
avahi-publish-service "Systemtap Compile Server on `uname -n`" \
- $avahi_type $port $txt > /dev/null 2>&1 &
+ $avahi_type $port "$txt" > /dev/null 2>&1 &
echo "Systemtap Compile Server on `uname -n` listening on port $port"
}