if StrBuf_ServGetln() is called in a loop, its return value has to be checked for...
[citadel.git] / webcit / preferences.c
index 379fa6509dec76ee80bd5aaa28faff8f42088389..1007811725f85efe9399b90edcd2cae801c3a1bd 100644 (file)
@@ -157,7 +157,8 @@ void ParsePref(HashList **List, StrBuf *ReadBuf)
        Preference *LastData = NULL;
                                
        while (!Done) {
-               StrBuf_ServGetln(ReadBuf);
+               if (StrBuf_ServGetln(ReadBuf) < 0)
+                       break;
                if ( (StrLength(ReadBuf)==3) && 
                     !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;
@@ -224,7 +225,7 @@ void load_preferences(void)
                serv_puts("000");
        }
        while (!Done &&
-              StrBuf_ServGetln(ReadBuf)) {
+              (StrBuf_ServGetln(ReadBuf) >= 0)) {
                if ( (StrLength(ReadBuf)==3) && 
                     !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;
@@ -237,7 +238,7 @@ void load_preferences(void)
                serv_printf("MSG0 %ld", msgnum);
                StrBuf_ServGetln(ReadBuf);
                if (GetServerStatus(ReadBuf, NULL) == 1) {
-                       while (StrBuf_ServGetln(ReadBuf),
+                       while ((StrBuf_ServGetln(ReadBuf) >= 0) && 
                               (strcmp(ChrPtr(ReadBuf), "text") && 
                                strcmp(ChrPtr(ReadBuf), "000"))) {
                        }
@@ -378,7 +379,7 @@ void save_preferences(void)
                serv_puts("000");
        }
        while (!Done &&
-              StrBuf_ServGetln(ReadBuf)) {
+              (StrBuf_ServGetln(ReadBuf) >= 0)) {
                if ( (StrLength(ReadBuf)==3) && 
                     !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;