chiark / gitweb /
+ * In answers, quote everything except alphanums and - _ / + and document
[adns.git] / src / parse.c
index 9a4e0c7483498daad8ed12180398cd31fe68dccd..59fe7b51fd7a71ca9715a04777cbca7c1fb64435 100644 (file)
@@ -35,13 +35,12 @@ int vbuf__append_quoted1035(vbuf *vb, const byte *buf, int len) {
     qbuf[0]= 0;
     for (i=0; i<len; i++) {
       ch= buf[i];
-      if (ch == '.' || ch == '"' || ch == '(' || ch == ')' ||
-         ch == '@' || ch == ';' || ch == '$' || ch == '\\') {
-       sprintf(qbuf,"\\%c",ch);
-       break;
-      } else if (ch <= ' ' || ch >= 127) {
+      if (ch <= ' ' || ch >= 127) {
        sprintf(qbuf,"\\%03o",ch);
        break;
+      } else if (!ctype_domainunquoted(ch)) {
+       sprintf(qbuf,"\\%c",ch);
+       break;
       }
     }
     if (!adns__vbuf_append(vb,buf,i) || !adns__vbuf_append(vb,qbuf,strlen(qbuf)))