Author: vlendec
Date: 2006-08-02 09:32:18 +0000 (Wed, 02 Aug 2006)
New Revision: 17375

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17375

Log:
If a field containts only whitespace, we need to do base64 as well.

Volker
Modified:
   branches/SAMBA_3_0/source/utils/net_rpc_samsync.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/net_rpc_samsync.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_rpc_samsync.c   2006-08-02 08:53:22 UTC 
(rev 17374)
+++ branches/SAMBA_3_0/source/utils/net_rpc_samsync.c   2006-08-02 09:32:18 UTC 
(rev 17375)
@@ -1433,6 +1433,7 @@
        va_list ap;
        char *value, *p, *base64;
        DATA_BLOB base64_blob;
+       BOOL do_base64 = False;
        int res;
 
        va_start(ap, fmt);
@@ -1443,12 +1444,29 @@
 
        for (p=value; *p; p++) {
                if (*p & 0x80) {
+                       do_base64 = True;
                        break;
                }
        }
 
-       if (*p == 0) {
-               /* Found no high bit set */
+       if (!do_base64) {
+               BOOL only_whitespace = True;
+               for (p=value; *p; p++) {
+                       /*
+                        * I know that this not multibyte safe, but we break
+                        * on the first non-whitespace character anyway.
+                        */
+                       if (!isspace(*p)) {
+                               only_whitespace = False;
+                               break;
+                       }
+               }
+               if (only_whitespace) {
+                       do_base64 = True;
+               }
+       }
+
+       if (!do_base64) {
                res = fprintf(add_fd, "%s: %s\n", attr_name, value);
                TALLOC_FREE(value);
                return res;

Reply via email to