+ return dequote(disorder_simple(c, valuep, "get-global", key, (char *)0),
+ valuep);
+}
+
+int disorder_rtp_address(disorder_client *c, char **addressp, char **portp) {
+ char *r;
+ int rc, n;
+ char **vec;
+
+ if((rc = disorder_simple(c, &r, "rtp-address", (char *)0)))
+ return rc;
+ vec = split(r, &n, SPLIT_QUOTES, 0, 0);
+ if(n != 2) {
+ error(0, "malformed rtp-address reply");
+ return -1;
+ }
+ *addressp = vec[0];
+ *portp = vec[1];
+ return 0;
+}
+
+int disorder_adduser(disorder_client *c,
+ const char *user, const char *password) {
+ return disorder_simple(c, 0, "adduser", user, password, (char *)0);
+}
+
+int disorder_deluser(disorder_client *c, const char *user) {
+ return disorder_simple(c, 0, "deluser", user, (char *)0);
+}
+
+int disorder_userinfo(disorder_client *c, const char *user, const char *key,
+ char **valuep) {
+ return dequote(disorder_simple(c, valuep, "userinfo", user, key, (char *)0),
+ valuep);
+}
+
+int disorder_edituser(disorder_client *c, const char *user,
+ const char *key, const char *value) {
+ return disorder_simple(c, 0, "edituser", user, key, value, (char *)0);