chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Quote responses. Unfortunately this is a major protocol change. I've
[disorder]
/
server
/
server.c
diff --git
a/server/server.c
b/server/server.c
index b2045131c0f8ea5357b8a6ca75e7ea7226b378ae..7c0d3b39cd6908f9e7320200ef363d2e080dc135 100644
(file)
--- a/
server/server.c
+++ b/
server/server.c
@@
-607,7
+607,7
@@
static int c_get(struct conn *c,
const char *v;
if(vec[1][0] != '_' && (v = trackdb_get(vec[0], vec[1])))
const char *v;
if(vec[1][0] != '_' && (v = trackdb_get(vec[0], vec[1])))
- sink_printf(ev_writer_sink(c->w), "252 %s\n",
v
);
+ sink_printf(ev_writer_sink(c->w), "252 %s\n",
quoteutf8(v)
);
else
sink_writes(ev_writer_sink(c->w), "555 not found\n");
return 1;
else
sink_writes(ev_writer_sink(c->w), "555 not found\n");
return 1;
@@
-623,7
+623,7
@@
static int c_length(struct conn *c,
return 1;
}
if((v = trackdb_get(track, "_length")))
return 1;
}
if((v = trackdb_get(track, "_length")))
- sink_printf(ev_writer_sink(c->w), "252 %s\n",
v
);
+ sink_printf(ev_writer_sink(c->w), "252 %s\n",
quoteutf8(v)
);
else
sink_writes(ev_writer_sink(c->w), "550 not found\n");
return 1;
else
sink_writes(ev_writer_sink(c->w), "550 not found\n");
return 1;
@@
-925,7
+925,7
@@
static int c_part(struct conn *c,
char **vec,
int attribute((unused)) nvec) {
sink_printf(ev_writer_sink(c->w), "252 %s\n",
char **vec,
int attribute((unused)) nvec) {
sink_printf(ev_writer_sink(c->w), "252 %s\n",
-
trackdb_getpart(vec[0], vec[1], vec[2]
));
+
quoteutf8(trackdb_getpart(vec[0], vec[1], vec[2])
));
return 1;
}
return 1;
}
@@
-938,7
+938,7
@@
static int c_resolve(struct conn *c,
sink_writes(ev_writer_sink(c->w), "550 cannot resolve track\n");
return 1;
}
sink_writes(ev_writer_sink(c->w), "550 cannot resolve track\n");
return 1;
}
- sink_printf(ev_writer_sink(c->w), "252 %s\n",
track
);
+ sink_printf(ev_writer_sink(c->w), "252 %s\n",
quoteutf8(track)
);
return 1;
}
return 1;
}
@@
-975,7
+975,7
@@
static int c_get_global(struct conn *c,
const char *s = trackdb_get_global(vec[0]);
if(s)
const char *s = trackdb_get_global(vec[0]);
if(s)
- sink_printf(ev_writer_sink(c->w), "252 %s\n",
s
);
+ sink_printf(ev_writer_sink(c->w), "252 %s\n",
quoteutf8(s)
);
else
sink_writes(ev_writer_sink(c->w), "555 not found\n");
return 1;
else
sink_writes(ev_writer_sink(c->w), "555 not found\n");
return 1;
@@
-1352,7
+1352,8
@@
static int listen_callback(ev_source *ev,
c->l = l;
c->rights = 0;
gcry_randomize(c->nonce, sizeof c->nonce, GCRY_STRONG_RANDOM);
c->l = l;
c->rights = 0;
gcry_randomize(c->nonce, sizeof c->nonce, GCRY_STRONG_RANDOM);
- sink_printf(ev_writer_sink(c->w), "231 %s %s\n",
+ sink_printf(ev_writer_sink(c->w), "231 %d %s %s\n",
+ 2,
config->authorization_algorithm,
hex(c->nonce, sizeof c->nonce));
return 0;
config->authorization_algorithm,
hex(c->nonce, sizeof c->nonce));
return 0;