#include "cache.h"
#include "unicode.h"
#include "cookies.h"
-#include "mime.h"
+#include "base64.h"
#ifndef NONCE_SIZE
# define NONCE_SIZE 16
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);
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);
}
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))
}
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);
}
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);
return 1;
}
/* Log in */
- c->who = vec[0];
+ c->who = user;
c->cookie = vec[0];
c->rights = rights;
if(strcmp(host, "local")) {
info("S%x %s connected with cookie from %s", c->tag, user, host);
c->rights |= RIGHT__LOCAL;
}
- sink_writes(ev_writer_sink(c->w), "230 OK\n");
+ /* Response contains username so client knows who they are acting as */
+ sink_printf(ev_writer_sink(c->w), "232 %s\n", quoteutf8(user));
return 1;
}
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;
}
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;
}
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;