Sender adress kludge for Exchane and Kleopatra.
authorWerner Koch <wk@gnupg.org>
Fri, 28 Aug 2009 18:20:29 +0000 (18:20 +0000)
committerWerner Koch <wk@gnupg.org>
Fri, 28 Aug 2009 18:20:29 +0000 (18:20 +0000)
Comment cleanups.

ChangeLog
NEWS
configure.ac
src/ChangeLog
src/mapihelp.cpp
src/mimemaker.c

index 66cdcaf..946bfab 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-08-28  Werner Koch  <wk@g10code.com>
+
+       * configure.ac [GCC]: Test for -Wno-pointer-sign.
+
 2009-06-18  Werner Koch  <wk@g10code.com>
 
        Release 1.0.0.
@@ -22,7 +26,7 @@
 
 2008-10-27  Werner Koch  <wk@g10code.com>
 
-       * forms/gpgol-cs_de.cfg: New. 
+       * forms/gpgol-cs_de.cfg: New.
 
 2008-08-06  Werner Koch  <wk@g10code.com>
 
diff --git a/NEWS b/NEWS
index dc403ff..44756dc 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+Noteworthy changes for version 1.0.1 (not released)
+===================================================
+
+
 Noteworthy changes for version 1.0.0 (2009-06-18)
 =================================================
 
index d8e4592..a4d67e4 100644 (file)
@@ -16,8 +16,8 @@ min_automake_version="1.9.4"
 # Remember to change the version number immediately *after* a release.
 # Set my_issvn to "yes" for non-released code.  Remember to run an
 # "svn up" and "autogen.sh" right before creating a distribution.
-m4_define([my_version], [1.0.0])
-m4_define([my_issvn], [no])
+m4_define([my_version], [1.0.1])
+m4_define([my_issvn], [yes])
 
 m4_define([svn_revision], m4_esyscmd([echo -n $( (svn info 2>/dev/null \
             || echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q;}')]))
@@ -206,10 +206,23 @@ if test "$GCC" = yes; then
         AC_MSG_RESULT($_gcc_mfi)
         CFLAGS=$_gcc_cflags_save;
         if test x"$_gcc_mfi" = xyes ; then
-          CFLAGS="$CFLAGS  -Wno-missing-field-initializers"
+          CFLAGS="$CFLAGS -Wno-missing-field-initializers"
           CXXFLAGS="$CXXFLAGS -Wno-missing-field-initializers"
         fi
     fi
+
+    AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign])
+    _gcc_cflags_save=$CFLAGS
+    CFLAGS="-Wno-pointer-sign"
+    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),_gcc_psign=yes,_gcc_psign=no)
+    AC_MSG_RESULT($_gcc_psign)
+    CFLAGS=$_gcc_cflags_save;
+    if test x"$_gcc_psign" = xyes ; then
+       CFLAGS="$CFLAGS -Wno-pointer-sign"
+       CXXFLAGS="$CXXFLAGS -Wno-pointer-sign"
+    fi
+
+
 fi
 
 AC_SUBST(W32LIBS)
index 8ad237a..94529a3 100644 (file)
@@ -1,3 +1,11 @@
+2009-08-28  Werner Koch  <wk@g10code.com>
+
+       * mimemaker.c (do_mime_sign): Comment cleanup.
+
+2009-08-27  Werner Koch  <wk@g10code.com>
+
+       * mapihelp.cpp (mapi_get_sender): Add hack for Kleopatra.
+
 2009-08-21  Werner Koch  <wk@g10code.com>
 
        * engine-assuan.c (async_worker_thread): Disable the use of
index 454df66..0385bed 100644 (file)
@@ -1451,6 +1451,17 @@ mapi_get_sender (LPMESSAGE message)
     {
       log_debug ("%s:%s: orig address is `%s'\n", SRCNAME, __func__, buf);
       memmove (buf, p+4, strlen (p+4)+1);
+      if (!strchr (buf, '@'))
+        {
+          /* Some Exchange accounts return only the accoutn name and
+             no rfc821 mail address.  Kleopatra chokes on that, thus
+             we append a domain name.  Thisis a bad hack.  */
+          char *newbuf = (char *)xmalloc (strlen (buf) + 6 + 1);
+          strcpy (stpcpy (newbuf, buf), "@local");
+          xfree (buf);
+          buf = newbuf;
+        }
+      
     }
   log_debug ("%s:%s: address is `%s'\n", SRCNAME, __func__, buf);
   return buf;
index 41b1986..c370bda 100644 (file)
@@ -806,7 +806,7 @@ write_part (sink_t sink, const char *data, size_t datalen,
   if (filename)
     {
       /* If there is a filename strip the directory part.  Take care
-         that there might be slashes of backslashes.  */
+         that there might be slashes or backslashes.  */
       const char *s1 = strrchr (filename, '/');
       const char *s2 = strrchr (filename, '\\');
       
@@ -1297,15 +1297,26 @@ do_mime_sign (LPMESSAGE message, HWND hwnd, protocol_t protocol,
   if ((rc = write_boundary (sink, boundary, 0)))
     goto failure;
 
-  if ((rc=write_string (sink, 
-                        (protocol == PROTOCOL_OPENPGP
-                         ? "Content-Type: application/pgp-signature\r\n"
-                         : ("Content-Transfer-Encoding: base64\r\n"
-                            "Content-Type: application/pkcs7-signature\r\n")
-                         ))))
-    goto failure;
+  if (protocol == PROTOCOL_OPENPGP)
+    {
+      rc = write_string (sink,
+                         "Content-Type: application/pgp-signature\r\n");
+    }
+  else
+    {
+      rc = write_string (sink,
+                         "Content-Transfer-Encoding: base64\r\n"
+                         "Content-Type: application/pkcs7-signature\r\n");
+      /* rc = write_string (sink, */
+      /*                    "Content-Type: application/x-pkcs7-signature\r\n" */
+      /*                    "\tname=\"smime.p7s\"\r\n" */
+      /*                    "Content-Transfer-Encoding: base64\r\n" */
+      /*                    "Content-Disposition: attachment;\r\n" */
+      /*                    "\tfilename=\"smime.p7s\"\r\n"); */
 
-  /* If we would add "Content-Transfer-Encoding: 7bit\r\n" to this
+    }
+  /* About the above code:
+     If we would add "Content-Transfer-Encoding: 7bit\r\n" to this
      attachment, Outlooks does not proceed with sending and even does
      not return any error.  A wild guess is that while OL adds this
      header itself, it detects that it already exists and somehow gets
@@ -1315,6 +1326,8 @@ do_mime_sign (LPMESSAGE message, HWND hwnd, protocol_t protocol,
      Note, that this only holds for OpenPGP; for S/MIME we need to set
      set CTE.  We even write it before the CT because that is the same
      as Outlook would do it for a missing CTE. */
+  if (rc)
+    goto failure;
 
   if ((rc = write_string (sink, "\r\n")))
     goto failure;