[BACK]Return to cgi.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/cgi.c between version 1.97 and 1.100

version 1.97, 2014/09/14 19:44:28 version 1.100, 2014/10/28 17:36:19
Line 376  resp_begin_html(int code, const char *msg)
Line 376  resp_begin_html(int code, const char *msg)
   
         resp_begin_http(code, msg);          resp_begin_http(code, msg);
   
         printf("<!DOCTYPE HTML PUBLIC "          printf("<!DOCTYPE html>\n"
                " \"-//W3C//DTD HTML 4.01//EN\""  
                " \"http://www.w3.org/TR/html4/strict.dtd\">\n"  
                "<HTML>\n"                 "<HTML>\n"
                "<HEAD>\n"                 "<HEAD>\n"
                "<META HTTP-EQUIV=\"Content-Type\""                 "<META CHARSET=\"UTF-8\" />\n"
                " CONTENT=\"text/html; charset=utf-8\">\n"  
                "<LINK REL=\"stylesheet\" HREF=\"%s/man-cgi.css\""                 "<LINK REL=\"stylesheet\" HREF=\"%s/man-cgi.css\""
                " TYPE=\"text/css\" media=\"all\">\n"                 " TYPE=\"text/css\" media=\"all\">\n"
                "<LINK REL=\"stylesheet\" HREF=\"%s/man.css\""                 "<LINK REL=\"stylesheet\" HREF=\"%s/man.css\""
Line 827  static void
Line 824  static void
 format(const struct req *req, const char *file)  format(const struct req *req, const char *file)
 {  {
         struct mparse   *mp;          struct mparse   *mp;
           struct mchars   *mchars;
         struct mdoc     *mdoc;          struct mdoc     *mdoc;
         struct man      *man;          struct man      *man;
         void            *vp;          void            *vp;
Line 840  format(const struct req *req, const char *file)
Line 838  format(const struct req *req, const char *file)
                 return;                  return;
         }          }
   
           mchars = mchars_alloc();
         mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_FATAL, NULL,          mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_FATAL, NULL,
             req->q.manpath);              mchars, req->q.manpath);
         rc = mparse_readfd(mp, fd, file);          rc = mparse_readfd(mp, fd, file);
         close(fd);          close(fd);
   
Line 867  format(const struct req *req, const char *file)
Line 866  format(const struct req *req, const char *file)
                     req->q.manpath, file);                      req->q.manpath, file);
                 pg_error_internal();                  pg_error_internal();
                 mparse_free(mp);                  mparse_free(mp);
                   mchars_free(mchars);
                 return;                  return;
         }          }
   
         vp = html_alloc(opts);          vp = html_alloc(mchars, opts);
   
         if (NULL != mdoc)          if (NULL != mdoc)
                 html_mdoc(vp, mdoc);                  html_mdoc(vp, mdoc);
Line 879  format(const struct req *req, const char *file)
Line 879  format(const struct req *req, const char *file)
   
         html_free(vp);          html_free(vp);
         mparse_free(mp);          mparse_free(mp);
           mchars_free(mchars);
         free(opts);          free(opts);
 }  }
   
Line 1036  main(void)
Line 1037  main(void)
   
         /* Poor man's ReDoS mitigation. */          /* Poor man's ReDoS mitigation. */
   
         itimer.it_value.tv_sec = 1;          itimer.it_value.tv_sec = 2;
         itimer.it_value.tv_usec = 0;          itimer.it_value.tv_usec = 0;
         itimer.it_interval.tv_sec = 1;          itimer.it_interval.tv_sec = 2;
         itimer.it_interval.tv_usec = 0;          itimer.it_interval.tv_usec = 0;
         if (setitimer(ITIMER_VIRTUAL, &itimer, NULL) == -1) {          if (setitimer(ITIMER_VIRTUAL, &itimer, NULL) == -1) {
                 fprintf(stderr, "setitimer: %s\n", strerror(errno));                  fprintf(stderr, "setitimer: %s\n", strerror(errno));

Legend:
Removed from v.1.97  
changed lines
  Added in v.1.100

CVSweb