+# In general, this sets the Connection's options to what is in the
+# task's option hash and sets the option-hash entry to the
+# Connection's old value of the option: this means that calling this
+# twice restores the state to how it was before. (That's not quite
+# true as its impossible to unset an option that was previously set:
+# such options are instead set to the empty string.)
+#
+# As a special case, options in the task's option-hash whose names
+# begin with an asterisk are taken to be persistent: they are set into
+# the Connection (with the leading hash removed) and deleted from the
+# task's option-hash so that they will NOT be reset the next time this
+# function is called.
+#