[1314] in Moira

home help back first fref pref prev next nref lref last post

Allow / in email address

daemon@ATHENA.MIT.EDU (Robert A Basch)
Thu Feb 3 18:36:59 2000

Message-Id: <200002032336.SAA11681@aupair.mit.edu>
To: moiradev@MIT.EDU
Date: Thu, 03 Feb 2000 18:36:51 -0500
From: Robert A Basch <rbasch@MIT.EDU>

[I showed this to Dan the other day, but haven't checked it in yet, so...]

This fixes the first item in the current ~moiradev/bugs list.  It allows
a '/' in an email address, except as the first character, for Lotus Notes
addresses, etc.

This server change seems to be all that is needed; I tested the chpobox,
blanche, and moira clients, as well as mailhub.gen (I assume there's no
problem with '/' in an address in aliases).


Index: qsupport.pc
===================================================================
RCS file: /afs/athena.mit.edu/astaff/project/moiradev/repository/moira/server/qsupport.pc,v
retrieving revision 2.19
diff -c -r2.19 qsupport.pc
*** qsupport.pc	2000/01/28 00:31:58	2.19
--- qsupport.pc	2000/01/28 23:28:08
***************
*** 76,82 ****
      }
    else if (!strcmp(argv[1], "SMTP") || !strcmp(argv[1], "SPLIT"))
      {
!       if (strchr(box, '/') || strchr(box, '|'))
  	return MR_BAD_CHAR;
        status = name_to_id(box, STRINGS_TABLE, &id);
        if (status == MR_NO_MATCH)
--- 76,83 ----
      }
    else if (!strcmp(argv[1], "SMTP") || !strcmp(argv[1], "SPLIT"))
      {
!       /* Allow '/' in middle (but not start) of address. */
!       if (*box == '/' || strchr(box, '|'))
  	return MR_BAD_CHAR;
        status = name_to_id(box, STRINGS_TABLE, &id);
        if (status == MR_NO_MATCH)
***************
*** 202,208 ****
        status = id_to_name(mid, STRINGS_TABLE, &buf);
        if (status)
  	return status;
!       if (strchr(buf, '/') || strchr(buf, '|'))
  	{
  	  free(buf);
  	  return MR_BAD_CHAR;
--- 203,210 ----
        status = id_to_name(mid, STRINGS_TABLE, &buf);
        if (status)
  	return status;
!       /* Allow '/' in middle (but not start) of address. */
!       if (*buf == '/' || strchr(buf, '|'))
  	{
  	  free(buf);
  	  return MR_BAD_CHAR;

home help back first fref pref prev next nref lref last post