Documentation Source Text

Check-in [8d5d89e6db]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Change the way that user-agent restrictions are handled in althttpd.c.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 8d5d89e6db164590482827b0677e366d07bddbb2
User & Date: drh 2012-11-10 12:38:19
Context
2012-11-10
14:43
althttpd.c changes: Send a 403 response to unauthorized agents. Add Ezoom to the list of unauthorized agents. Do not log timeouts if the first line of the HTTP request was never received. check-in: d61bcab9f4 user: drh tags: trunk
12:38
Change the way that user-agent restrictions are handled in althttpd.c. check-in: 8d5d89e6db user: drh tags: trunk
12:23
Disallow the "Download Master" user agent in althttpd.c. check-in: e6b47e0290 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to misc/althttpd.c.

   157    157   static void FixupUserAgent(void){
   158    158     int i;
   159    159     if( zAgent==0 || zAgent[0]==0 ) zAgent = "*";
   160    160     for(i=0; zAgent[i]; i++){
   161    161       int c = zAgent[i];
   162    162       if( c<'!' || c>'~'  ){ zAgent[i] = '_'; }
   163    163     }
   164         -#if 0
   165         -  if( strncmp(zAgent,"msnbot",6)==0 ){
   166         -    exit(0);
   167         -  }
   168         -#endif
   169         -  for(i=0; zAgent[i]; i++){
   170         -    if( zAgent[i]=='W' && strncmp(&zAgent[i],"Windows_9",9)==0 ){
   171         -      exit(0);
   172         -    }
   173         -    if( zAgent[i]=='D' && strncmp(&zAgent[i],"Download_Master",15)==0 ){
   174         -      exit(0);
   175         -    }
   176         -  }
   177    164   }
   178    165   
   179    166   /*
   180    167   ** Make an entry in the log file.  If the HTTP connection should be
   181    168   ** closed, then terminate this process.  Otherwise return.
   182    169   */
   183    170   static void MakeLogEntry(int a){
................................................................................
   977    964           zServerPort = StrDup(zRealPort);
   978    965         }
   979    966       }else if( strcasecmp(zFieldName,"Authorization:")==0 ){
   980    967         zAuthType = GetFirstElement(StrDup(zVal), &zAuthArg);
   981    968       }
   982    969     }
   983    970   
   984         -  /* Disallow referring from certain servers */
          971  +  /* Disallow referring from certain clients */
          972  +  if( zAgent ){
          973  +    if( strstr(zAgent, "Windows_9")!=0
          974  +     || strstr(zAgent, "Download_Master")!=0
          975  +    ){
          976  +      strcpy(zReplyStatus, "997");
          977  +      closeConnection = 1;
          978  +      MakeLogEntry(0);
          979  +    }
          980  +  }
   985    981   #if 0
   986    982     if( zReferer ){
   987    983       static const char *azDisallow[] = {
   988    984         "skidrowcrack.com",
   989    985         "hoshiyuugi.tistory.com",
   990    986         "skidrowgames.net",
   991    987       };