+
+ if ((p = qd_getmp(qd)) == 0) goto fail;
+ qd_delim(qd, ','); if ((q = qd_getmp(qd)) == 0) goto fail;
+ qd_delim(qd, ','); if ((g = qd_getmp(qd)) == 0) goto fail;
+ dp->p = p; dp->q = q; dp->g = g;
+ return (0);
+fail:
+ mp_drop(p); mp_drop(q); mp_drop(g);
+ return (-1);
+}
+
+int dh_parse(qd_parse *qd, dh_param *dp)
+{