Browse Source

Fix linux bugs

xcbosa-itx 2 years ago
parent
commit
0bcdb6eb8a
3 changed files with 7 additions and 7 deletions
  1. 5 5
      frp.cpp
  2. 1 1
      httpserver/ClientConnection.cpp
  3. 1 1
      utils/TextResponseData.cpp

+ 5 - 5
frp.cpp

@@ -125,12 +125,11 @@ namespace xc::frp {
         }
         }
 
 
         int getRunningPid() {
         int getRunningPid() {
-            ::FILE *psStdoutFd = popen("ps -ef", "r");
+            ::FILE *psStdoutFd = popen("ps -ef --columns 1000 | grep frpc | grep -v grep", "r");
             ostringstream oss;
             ostringstream oss;
-            while (true) {
-                int ch = ::fgetc(psStdoutFd);
-                if (ch == -1) break;
-                oss << (char) ch;
+            char buff[1024];
+            while (::fgets(buff, sizeof(buff), psStdoutFd)) {
+                oss << buff;
             }
             }
             ::pclose(psStdoutFd);
             ::pclose(psStdoutFd);
             string str = oss.str();
             string str = oss.str();
@@ -198,6 +197,7 @@ namespace xc::frp {
     }
     }
 
 
     void frpDaemon() {
     void frpDaemon() {
+        ::system("killall frpc");
         char readBuff[1024];
         char readBuff[1024];
         vector<FrpProcessWrapper *> frpProcesses;
         vector<FrpProcessWrapper *> frpProcesses;
         while (true) {
         while (true) {

+ 1 - 1
httpserver/ClientConnection.cpp

@@ -65,7 +65,7 @@ namespace xc {
                 bool isHeader = true;
                 bool isHeader = true;
                 bool lastLineIsEmpty = false;
                 bool lastLineIsEmpty = false;
                 bool lastLineEmptyAndZero = false;
                 bool lastLineEmptyAndZero = false;
-                while (::fgets(requestBuff, urlRequestBuffSize, clRead)) {
+                while (bzero(requestBuff, urlRequestBuffSize), ::fgets(requestBuff, urlRequestBuffSize, clRead)) {
                     if (method == "GET") {
                     if (method == "GET") {
                         if (strcmp(requestBuff, "\r\n") == 0) {
                         if (strcmp(requestBuff, "\r\n") == 0) {
                             break;
                             break;

+ 1 - 1
utils/TextResponseData.cpp

@@ -89,7 +89,7 @@ namespace xc {
                 ::fprintf(fp, "\r\n");
                 ::fprintf(fp, "\r\n");
                 cursor += writeSize;
                 cursor += writeSize;
             }
             }
-            ::fprintf(fp, "0\r\n\r\n");
+            ::fprintf(fp, "0\r\n\r\n\r\n");
             ::fflush(fp);
             ::fflush(fp);
         }
         }