/[mod_czs]/mod_czs.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /mod_czs.c

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

revision 1.1 by dpavlin, Wed Aug 9 06:54:43 2000 UTC revision 1.8 by dpavlin, Wed Aug 9 21:09:50 2000 UTC
# Line 28  Line 28 
28  #include "http_config.h"  #include "http_config.h"
29  #include "http_log.h"  #include "http_log.h"
30  #include "http_protocol.h"  #include "http_protocol.h"
31    #include "translate.c"
32    
33  module MODULE_VAR_EXPORT mod_czs;  module MODULE_VAR_EXPORT mod_czs;
34    
# Line 50  static int czs_handler(request_rec *r) { Line 51  static int czs_handler(request_rec *r) {
51                  ap_log_reason("file permissions deny server access", r->filename, r);                  ap_log_reason("file permissions deny server access", r->filename, r);
52                  return FORBIDDEN;                      return FORBIDDEN;    
53          }          }
54    #ifdef DEBUG
55          if(r->args != 0 || do_czs) {          if(r->args != 0 || do_czs) {
56                  ap_table_setn(r->headers_out, "X-czs_filename", r->filename);                  ap_table_setn(r->headers_out, "X-czs_filename", r->filename);
57                  ap_table_setn(r->headers_out, "X-czs_args", r->args);                  if (r->args != 0) {
58                            ap_table_setn(r->headers_out, "X-czs_args", r->args);
59                    }
60          }          }
61    #endif
         r->content_type = "text/html";  /* hm? */  
62    
63          ap_soft_timeout("send", r);          ap_soft_timeout("send", r);
64          ap_send_http_header(r);          ap_send_http_header(r);
# Line 68  static int czs_handler(request_rec *r) { Line 71  static int czs_handler(request_rec *r) {
71    
72  #ifdef TEST_QUERYSTRING  #ifdef TEST_QUERYSTRING
73          if(r->args == 0 && !do_czs) {          if(r->args == 0 && !do_czs) {
74    #else
75            if(!do_czs) {
76    #endif
77                  ap_send_fd(in, r);                  ap_send_fd(in, r);
78          } else {          } else {
79  #endif  
80          while(fgets(buffer,MAX_STRING_LEN,in)) {                  while(fgets(buffer,MAX_STRING_LEN,in)) {
81                  for(i=0; i<MAX_STRING_LEN && buffer[i]; i++) {                          for(i=0; i<MAX_STRING_LEN && buffer[i]; i++) {
82                          switch ( buffer[i] ) {                                  switch ( buffer[i] ) {
83                          case '¹': buffer[i]='s'; break;                                  case '¹': buffer[i]='s'; break;
84                          case 'ð': buffer[i]='d'; break;                                  case 'ð': buffer[i]='d'; break;
85                          case 'è': buffer[i]='c'; break;                                  case 'è': buffer[i]='c'; break;
86                          case 'æ': buffer[i]='c'; break;                                  case 'æ': buffer[i]='c'; break;
87                          case '¾': buffer[i]='z'; break;                                  case '¾': buffer[i]='z'; break;
88                          case '©': buffer[i]='S'; break;                                  case '©': buffer[i]='S'; break;
89                          case 'Ð': buffer[i]='D'; break;                                  case 'Ð': buffer[i]='D'; break;
90                          case 'È': buffer[i]='C'; break;                                  case 'È': buffer[i]='C'; break;
91                          case 'Æ': buffer[i]='C'; break;                                  case 'Æ': buffer[i]='C'; break;
92                          case '®': buffer[i]='Z'; break;                                  case '®': buffer[i]='Z'; break;
93                                    }
94                          }                          }
95                            ap_rprintf(r,"%s",buffer);
96                  }                  }
                 ap_rprintf(r,"%s",buffer);  
         }  
 #ifdef TEST_QUERYSTRING  
97          }          }
 #endif  
98    
99          ap_kill_timeout(r);          ap_kill_timeout(r);
100          ap_pfclose(r->pool, in);          ap_pfclose(r->pool, in);
101          return OK;          return OK;
102  }  }
103    
 int translate_path(request_rec *r) {  
         char *uri = r->uri;  
         request_rec *subr;  
   
         if (uri[0]=='/' && uri[1]=='_' && uri[2]=='/') {  
 #if 0  
                 ap_table_setn(r->headers_out, "Location", ap_pstrcat(r->pool, uri+2, "?czs", NULL));  
                 return REDIRECT;  
 #endif  
                 subr = (request_rec *) ap_sub_req_lookup_uri(r->uri+2, r);  
                 r->filename=ap_pstrdup(r->pool, subr->filename);  
                 ap_destroy_sub_req(subr);  
                 do_czs=1;  
                 return OK;  
         }  
   
         return DECLINED;  
 }  
       
104  /* Dispatch list of content handlers */  /* Dispatch list of content handlers */
105  static const handler_rec czs_handlers[] = {  static const handler_rec czs_handlers[] = {
106    { "czs", czs_handler },    { "czs", czs_handler },
# Line 143  module MODULE_VAR_EXPORT czs_module = { Line 128  module MODULE_VAR_EXPORT czs_module = {
128      NULL,               /* child_init                          */      NULL,               /* child_init                          */
129      NULL,               /* child_exit                          */      NULL,               /* child_exit                          */
130      NULL                /* [#0] post read-request              */      NULL                /* [#0] post read-request              */
131    #ifdef EAPI
132       ,NULL,               /* EAPI: add_module                    */
133        NULL,               /* EAPI: remove_module                 */
134        NULL,               /* EAPI: rewrite_command               */
135        NULL                /* EAPI: new_connection                */
136    #endif
137  };  };
138    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.26