X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Fmodules%2Fimage%2Fserv_image.c;fp=citadel%2Fmodules%2Fimage%2Fserv_image.c;h=2c7647f3fdca996b7b7c0628b615aeaf7362e246;hp=a6a3728bbb54b3ee44ad70deeb1f4ebf46fdb10a;hb=7c9aaf224d62b53292cf736de0a4cb0c154a05d5;hpb=28440382d35fe8c81e5c881f50b339dd4c1e5d75 diff --git a/citadel/modules/image/serv_image.c b/citadel/modules/image/serv_image.c index a6a3728bb..2c7647f3f 100644 --- a/citadel/modules/image/serv_image.c +++ b/citadel/modules/image/serv_image.c @@ -68,9 +68,9 @@ void cmd_ului(char *cmdbuf) if (CtdlAccessCheck(ac_logged_in_or_guest)) return; - if ( (num_parms(cmdbuf) < 2) || (num_parms(cmdbuf) > 3) ) + if (num_parms(cmdbuf) < 2) { - cprintf("%d Usage error.\n", ERROR + ILLEGAL_VALUE); + cprintf("%d Usage error\n", ERROR + ILLEGAL_VALUE); return; } @@ -97,7 +97,27 @@ void cmd_ului(char *cmdbuf) cprintf("%d Higher access required to change another user's photo.\n", ERROR + HIGHER_ACCESS_REQUIRED); } - cprintf("500 nope not yet, I am %s , modifying %s , data length is %ld\n", CC->curr_user, username, data_length); + // Check to make sure the user exists + // FIXME do this + struct ctdluser usbuf; + if (CtdlGetUser(&usbuf, username) != 0) { // check for existing user, don't lock it yet + cprintf("%d %s not found.\n", ERROR + NO_SUCH_USER , username); + return; + } + + char *unencoded_data = malloc(data_length + 1); + if (!unencoded_data) { + cprintf("%d Could not allocate %ld bytes of memory\n", ERROR + INTERNAL_ERROR , data_length); + return; + } + + cprintf("%d %ld\n", SEND_BINARY, data_length); + client_read(unencoded_data, data_length); + + // We've got the data read from the client, now save it. + // FIXME do this + + free(unencoded_data); }