From b4a80f69edc156b91cd19c2175078b7cc940ed0f Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sat, 22 Dec 2007 19:52:35 +0000 Subject: [PATCH] insufficient rights always produces 51x response Organization: Straylight/Edgeware From: rjk@greenend.org.uk <> --- doc/disorder_protocol.5.in | 3 +++ server/server.c | 16 ++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/doc/disorder_protocol.5.in b/doc/disorder_protocol.5.in index 6bb2857..7cb69a7 100644 --- a/doc/disorder_protocol.5.in +++ b/doc/disorder_protocol.5.in @@ -320,6 +320,9 @@ The second digit breaks down the origin of the response: Generic responses not specific to the handling of the command. Mostly this is parse errors. .TP +.B 1 +51x errors indicate that the user had insufficient rights for the command. +.TP .B 3 Authentication responses. .TP diff --git a/server/server.c b/server/server.c index dfea91e..8d49193 100644 --- a/server/server.c +++ b/server/server.c @@ -248,7 +248,7 @@ static int c_remove(struct conn *c, char **vec, r = RIGHT_REMOVE_RANDOM; if(!(c->rights & r)) { sink_writes(ev_writer_sink(c->w), - "550 Not authorized to remove that track\n"); + "510 Not authorized to remove that track\n"); return 1; } queue_remove(q, c->who); @@ -286,7 +286,7 @@ static int c_scratch(struct conn *c, r = RIGHT_SCRATCH_RANDOM; if(!(c->rights & r)) { sink_writes(ev_writer_sink(c->w), - "550 Not authorized to scratch that track\n"); + "510 Not authorized to scratch that track\n"); return 1; } scratch(c->who, nvec == 1 ? vec[0] : 0); @@ -754,7 +754,7 @@ static int c_volume(struct conn *c, } rights = set ? RIGHT_VOLUME : RIGHT_READ; if(!(c->rights & rights)) { - sink_writes(ev_writer_sink(c->w), "530 Prohibited\n"); + sink_writes(ev_writer_sink(c->w), "510 Prohibited\n"); return 1; } if(mixer_control(&l, &r, set)) @@ -877,7 +877,7 @@ static int c_move(struct conn *c, } if(!has_move_rights(c, &q, 1)) { sink_writes(ev_writer_sink(c->w), - "550 Not authorized to move that track\n"); + "510 Not authorized to move that track\n"); return 1; } n = queue_move(q, atoi(vec[1]), c->who); @@ -911,7 +911,7 @@ static int c_moveafter(struct conn *c, } if(!has_move_rights(c, qs, nvec)) { sink_writes(ev_writer_sink(c->w), - "550 Not authorized to move those tracks\n"); + "510 Not authorized to move those tracks\n"); return 1; } queue_moveafter(q, nvec, qs, c->who); @@ -1121,7 +1121,7 @@ static int c_edituser(struct conn *c, else sink_writes(ev_writer_sink(c->w), "250 OK\n"); } else - sink_writes(ev_writer_sink(c->w), "550 Restricted to administrators\n"); + sink_writes(ev_writer_sink(c->w), "510 Restricted to administrators\n"); return 1; } @@ -1145,7 +1145,7 @@ static int c_userinfo(struct conn *c, else sink_writes(ev_writer_sink(c->w), "550 No such user\n"); } else - sink_writes(ev_writer_sink(c->w), "550 Restricted to administrators\n"); + sink_writes(ev_writer_sink(c->w), "510 Restricted to administrators\n"); return 1; } @@ -1309,7 +1309,7 @@ static int command(struct conn *c, char *line) { else { if(commands[n].rights && !(c->rights & commands[n].rights)) { - sink_writes(ev_writer_sink(c->w), "530 Prohibited\n"); + sink_writes(ev_writer_sink(c->w), "510 Prohibited\n"); return 1; } ++vec; -- [mdw]