* Eberhard Mattes submitted a patch "According to RFC 4251,
a boolean value of true is encoded as 1, not as 0xff".  Servers
should accept any non-zero value.

Bug:	1703472
diff --git a/ChangeLog b/ChangeLog
index fe9db7f..0967c9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-23  James Housley <jim@thehousleys.net>
+        * Eberhard Mattes submitted a patch "According to RFC 4251,
+        a boolean value of true is encoded as 1, not as 0xff".  Servers
+        should accept any non-zero value.
+
 2007-06-22  James Housley <jim@thehousleys.net>
 	* Guenter Knauf submitted code for windows to detect
 	if the socket is blocking or not.
diff --git a/src/channel.c b/src/channel.c
index 171e330..eb9f7a7 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -363,7 +363,7 @@
         *(s++) = SSH_MSG_GLOBAL_REQUEST;
         libssh2_htonu32(s, sizeof("tcpip-forward") - 1);                    s += 4;
         memcpy(s, "tcpip-forward", sizeof("tcpip-forward") - 1);            s += sizeof("tcpip-forward") - 1;
-        *(s++) = 0xFF;      /* want_reply */
+        *(s++) = 0x01;      /* want_reply */
 
         libssh2_htonu32(s, session->fwdLstn_host_len);                      s += 4;
         memcpy(s, host ? host : "0.0.0.0", session->fwdLstn_host_len);      s += session->fwdLstn_host_len;
@@ -629,7 +629,7 @@
         libssh2_htonu32(s, sizeof("env") - 1);          s += 4;
         memcpy(s, "env", sizeof("env") - 1);            s += sizeof("env") - 1;
 
-        *(s++) = 0xFF;
+        *(s++) = 0x01;
 
         libssh2_htonu32(s, varname_len);                s += 4;
         memcpy(s, varname, varname_len);                s += varname_len;
@@ -721,7 +721,7 @@
         libssh2_htonu32(s, sizeof("pty-req") - 1);      s += 4;
         memcpy(s, "pty-req", sizeof("pty-req") - 1);    s += sizeof("pty-req") - 1;
 
-        *(s++) = 0xFF;
+        *(s++) = 0x01;
 
         libssh2_htonu32(s, term_len);                   s += 4;
         if (term) {
@@ -829,8 +829,8 @@
         libssh2_htonu32(s, sizeof("x11-req") - 1);      s += 4;
         memcpy(s, "x11-req", sizeof("x11-req") - 1);    s += sizeof("x11-req") - 1;
 
-        *(s++) = 0xFF; /* want_reply */
-        *(s++) = single_connection ? 0xFF : 0x00;
+        *(s++) = 0x01; /* want_reply */
+        *(s++) = single_connection ? 0x01 : 0x00;
 
         libssh2_htonu32(s, proto_len);                  s += 4;
         memcpy(s, auth_proto ? auth_proto : "MIT-MAGIC-COOKIE-1", proto_len);
@@ -936,7 +936,7 @@
         libssh2_htonu32(s, request_len);                    s += 4;
         memcpy(s, request, request_len);                    s += request_len;
 
-        *(s++) = 0xFF;
+        *(s++) = 0x01;
 
         if (message) {
             libssh2_htonu32(s, message_len);                s += 4;
diff --git a/src/publickey.c b/src/publickey.c
index 7587546..6eda6c3 100644
--- a/src/publickey.c
+++ b/src/publickey.c
@@ -545,14 +545,14 @@
             memcpy(pkey->add_s, name, name_len);                          pkey->add_s += name_len;
             libssh2_htonu32(pkey->add_s, blob_len);                       pkey->add_s += 4;
             memcpy(pkey->add_s, blob, blob_len);                          pkey->add_s += blob_len;
-            *(pkey->add_s++) = overwrite ? 0xFF : 0;
+            *(pkey->add_s++) = overwrite ? 0x01 : 0;
             libssh2_htonu32(pkey->add_s, num_attrs);                      pkey->add_s += 4;
             for(i = 0; i < num_attrs; i++) {
                 libssh2_htonu32(pkey->add_s, attrs[i].name_len);          pkey->add_s += 4;
                 memcpy(pkey->add_s, attrs[i].name, attrs[i].name_len);    pkey->add_s += attrs[i].name_len;
                 libssh2_htonu32(pkey->add_s, attrs[i].value_len);         pkey->add_s += 4;
                 memcpy(pkey->add_s, attrs[i].value, attrs[i].value_len);  pkey->add_s += attrs[i].value_len;
-                *(pkey->add_s++) = attrs[i].mandatory ? 0xFF : 0;
+                *(pkey->add_s++) = attrs[i].mandatory ? 0x01 : 0;
             }
         }
 
diff --git a/src/userauth.c b/src/userauth.c
index e1bc6ad..5c45957 100644
--- a/src/userauth.c
+++ b/src/userauth.c
@@ -291,7 +291,7 @@
                         libssh2_htonu32(s, sizeof("password") - 1);                     s += 4;
                         memcpy(s, "password", sizeof("password") - 1);                  s += sizeof("password") - 1;
 
-                        *s = 0xFF;                                                      s++;
+                        *s = 0x01;                                                      s++;
 
                         libssh2_htonu32(s, password_len);                               s += 4;
                         memcpy(s, password, password_len);                              s += password_len;
@@ -807,7 +807,7 @@
             return -1;
         }
 
-        *session->userauth_pblc_b = 0xFF;
+        *session->userauth_pblc_b = 0x01;
 
         libssh2_htonu32(buf, session->session_id_len);
         datavec[0].iov_base = buf;