]> code.citadel.org Git - citadel.git/blobdiff - citadel/serv_bio.c
* extract_token() now expects to be supplied with the size of the
[citadel.git] / citadel / serv_bio.c
index a8313a62e3231b494b8221a621b2c95bd448d324..0331b13e19e7aab644eceb06ae9855e74c19d3d8 100644 (file)
@@ -55,19 +55,22 @@ void cmd_ebio(char *cmdbuf) {
        char buf[SIZ];
        FILE *fp;
 
+       unbuffer_output();
+
        if (!(CC->logged_in)) {
-               cprintf("%d Not logged in.\n",ERROR+NOT_LOGGED_IN);
+               cprintf("%d Not logged in.\n",ERROR + NOT_LOGGED_IN);
                return;
        }
 
        snprintf(buf, sizeof buf, "./bio/%ld",CC->user.usernum);
        fp = fopen(buf,"w");
        if (fp == NULL) {
-               cprintf("%d Cannot create file\n",ERROR);
+               cprintf("%d Cannot create file: %s\n", ERROR + INTERNAL_ERROR,
+                               strerror(errno));
                return;
        }
        cprintf("%d  \n",SEND_LISTING);
-       while(client_gets(buf), strcmp(buf,"000")) {
+       while(client_getln(buf, sizeof buf), strcmp(buf,"000")) {
                if (ftell(fp) < config.c_maxmsglen) {
                        fprintf(fp,"%s\n",buf);
                }
@@ -81,12 +84,12 @@ void cmd_ebio(char *cmdbuf) {
 void cmd_rbio(char *cmdbuf)
 {
        struct ctdluser ruser;
-       char buf[SIZ];
+       char buf[256];
        FILE *fp;
 
-       extract(buf,cmdbuf,0);
-       if (getuser(&ruser,buf)!=0) {
-               cprintf("%d No such user.\n",ERROR+NO_SUCH_USER);
+       extract_token(buf, cmdbuf, 0, '|', sizeof buf);
+       if (getuser(&ruser, buf) != 0) {
+               cprintf("%d No such user.\n",ERROR + NO_SUCH_USER);
                return;
        }
        snprintf(buf, sizeof buf, "./bio/%ld",ruser.usernum);
@@ -98,7 +101,7 @@ void cmd_rbio(char *cmdbuf)
        if (fp == NULL)
                cprintf("%s has no bio on file.\n", ruser.fullname);
        else {
-               while (fgets(buf,256,fp)!=NULL) cprintf("%s",buf);
+               while (fgets(buf, sizeof buf, fp) != NULL) cprintf("%s",buf);
                fclose(fp);
        }
        cprintf("000\n");
@@ -108,20 +111,20 @@ void cmd_rbio(char *cmdbuf)
  * list of users who have entered bios
  */
 void cmd_lbio(char *cmdbuf) {
-       char buf[SIZ];
+       char buf[256];
        FILE *ls;
        struct ctdluser usbuf;
 
-       ls=popen("cd ./bio; ls","r");
-       if (ls==NULL) {
-               cprintf("%d Cannot open listing.\n",ERROR+FILE_NOT_FOUND);
+       ls = popen("cd ./bio; ls", "r");
+       if (ls == NULL) {
+               cprintf("%d Cannot open listing.\n", ERROR + FILE_NOT_FOUND);
                return;
        }
 
-       cprintf("%d\n",LISTING_FOLLOWS);
-       while (fgets(buf,sizeof buf,ls)!=NULL)
+       cprintf("%d\n", LISTING_FOLLOWS);
+       while (fgets(buf, sizeof buf, ls)!=NULL)
                if (getuserbynumber(&usbuf,atol(buf))==0)
-                       cprintf("%s\n",usbuf.fullname);
+                       cprintf("%s\n", usbuf.fullname);
        pclose(ls);
        cprintf("000\n");
 }