/[tewi]/Server/server.c
ViewVC logotype

Diff of /Server/server.c

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

Revision 1.1 by nishi, Thu Oct 17 09:53:39 2024 UTC Revision 1.9 by nishi, Mon Oct 28 00:12:13 2024 UTC
# Line 107  uint16_t htons(uint16_t n) { return ((n Line 107  uint16_t htons(uint16_t n) { return ((n
107  #endif  #endif
108  #endif  #endif
109    
110  #if defined(_PSP) || defined(__ps2sdk__)  #if defined(_PSP) || defined(__ps2sdk__) || defined(__bsdi__)
111  #include "strptime.h"  #include "strptime.h"
112  #endif  #endif
113    
# Line 343  void _tw_process_page(SSL* ssl, int sock Line 343  void _tw_process_page(SSL* ssl, int sock
343          incr = 0;          incr = 0;
344          while(1) {          while(1) {
345                  if(f != NULL) {                  if(f != NULL) {
346                          char buffer[128];                          char buffer[512];
347                          fread(buffer, size < 128 ? size : 128, 1, f);                          int st;
348                          tw_write(ssl, sock, buffer, size < 128 ? size : 128);                          fread(buffer, size < 512 ? size : 512, 1, f);
349                            if((st = tw_write(ssl, sock, buffer, size < 512 ? size : 512)) <= 0) break;
350                  } else {                  } else {
351                          tw_write(ssl, sock, (unsigned char*)doc + incr, size < 128 ? size : 128);                          if(tw_write(ssl, sock, (unsigned char*)doc + incr, size < 512 ? size : 512) <= 0) break;
352                  }                  }
353                  incr += 128;                  incr += 512;
354                  if(size <= 128) break;                  if(size <= 512) break;
355                  size -= 128;                  size -= 512;
356          }          }
357  }  }
358    
# Line 620  int tw_server_pass(void* ptr) { Line 621  int tw_server_pass(void* ptr) {
621                                          time_t t;                                          time_t t;
622                                          struct tm* btm;                                          struct tm* btm;
623                                          strptime(req.headers[i + 1], "%a, %d %b %Y %H:%M:%S GMT", &tm);                                          strptime(req.headers[i + 1], "%a, %d %b %Y %H:%M:%S GMT", &tm);
624  #if defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__USLC__) || defined(__NeXT__)  #if defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__USLC__) || defined(__NeXT__) || defined(__bsdi__)
625                                          t = 0;                                          t = 0;
626                                          btm = localtime(&t);                                          btm = localtime(&t);
627                                          cmtime = mktime(&tm);                                          cmtime = mktime(&tm);
# Line 640  int tw_server_pass(void* ptr) { Line 641  int tw_server_pass(void* ptr) {
641                                  host[i] = 0;                                  host[i] = 0;
642                                  port = atoi(host + i + 1);                                  port = atoi(host + i + 1);
643                                  break;                                  break;
644                            }else if(vhost[i] == '['){
645                                    for(; vhost[i] != 0 && vhost[i] != ']'; i++);
646                          }                          }
647                  }                  }
648                  name = host;                  name = host;
# Line 791  int tw_server_pass(void* ptr) { Line 794  int tw_server_pass(void* ptr) {
794                                                          addstring(&str, "                       <tr>\n");                                                          addstring(&str, "                       <tr>\n");
795                                                          addstring(&str, "                               <th></th>\n");                                                          addstring(&str, "                               <th></th>\n");
796                                                          addstring(&str, "                               <th>Filename</th>\n");                                                          addstring(&str, "                               <th>Filename</th>\n");
797                                                            addstring(&str, "                               <th>Last-modified</th>\n");
798                                                          addstring(&str, "                               <th>MIME</th>\n");                                                          addstring(&str, "                               <th>MIME</th>\n");
799                                                          addstring(&str, "                               <th>Size</th>\n");                                                          addstring(&str, "                               <th>Size</th>\n");
800                                                          addstring(&str, "                       </tr>\n");                                                          addstring(&str, "                       </tr>\n");
# Line 808  int tw_server_pass(void* ptr) { Line 812  int tw_server_pass(void* ptr) {
812                                                                          char* fpth = cm_strcat3(path, "/", items[i]);                                                                          char* fpth = cm_strcat3(path, "/", items[i]);
813                                                                          struct stat s;                                                                          struct stat s;
814                                                                          char size[512];                                                                          char size[512];
815                                                                            char date[512];
816                                                                          char* showmime;                                                                          char* showmime;
817                                                                          char* mime;                                                                          char* mime;
818                                                                            struct tm* tm;
819                                                                          size[0] = 0;                                                                          size[0] = 0;
820                                                                          stat(fpth, &s);                                                                          stat(fpth, &s);
821                                                                            tm = localtime(&s.st_mtime);
822                                                                            strftime(date, 512, "%a, %d %b %Y %H:%M:%S %Z", tm);
823                                                                          if(phase == 0 && !S_ISDIR(s.st_mode)) {                                                                          if(phase == 0 && !S_ISDIR(s.st_mode)) {
824                                                                                  free(fpth);                                                                                  free(fpth);
825                                                                                  continue;                                                                                  continue;
# Line 885  int tw_server_pass(void* ptr) { Line 893  int tw_server_pass(void* ptr) {
893                                                                          addstring(&str, "<tr>\n");                                                                          addstring(&str, "<tr>\n");
894                                                                          addstring(&str, "       <td><img src=\"%s\" alt=\"icon\"></td>\n", icon);                                                                          addstring(&str, "       <td><img src=\"%s\" alt=\"icon\"></td>\n", icon);
895                                                                          addstring(&str, "       <td><a href=\"%l\"><code>%h</code></a></td>\n", items[i], itm);                                                                          addstring(&str, "       <td><a href=\"%l\"><code>%h</code></a></td>\n", items[i], itm);
896                                                                            addstring(&str, "       <td><code>  %h  </code></td>\n", date);
897                                                                          addstring(&str, "       <td><code>  %h  </code></td>\n", showmime);                                                                          addstring(&str, "       <td><code>  %h  </code></td>\n", showmime);
898                                                                          addstring(&str, "       <td><code>  %s  </code></td>\n", size);                                                                          addstring(&str, "       <td><code>  %s  </code></td>\n", size);
899                                                                          addstring(&str, "</tr>\n");                                                                          addstring(&str, "</tr>\n");
# Line 1013  void tw_server_loop(void) { Line 1022  void tw_server_loop(void) {
1022          fd_set fdset;          fd_set fdset;
1023          struct timeval tv;          struct timeval tv;
1024  #endif  #endif
1025  #if defined(__MINGW32__) || defined(__HAIKU__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__NETWARE__))  #if defined(__MINGW32__) || defined(__HAIKU__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__NETWARE__) && !defined(__DOS__))
1026          struct thread_entry threads[2048];          struct thread_entry threads[2048];
1027          for(i = 0; i < sizeof(threads) / sizeof(threads[0]); i++) {          for(i = 0; i < sizeof(threads) / sizeof(threads[0]); i++) {
1028                  threads[i].used = false;                  threads[i].used = false;


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

nishi@chaotic.ninja
ViewVC Help
Powered by ViewVC 1.3.0-dev