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.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 8d5d89e6db164590482827b0677e366d07bddbb2
User & Date: drh 2012-11-10 12:38:19.321
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
Side-by-Side Diff Ignore Whitespace Patch
Changes to misc/althttpd.c.
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
157
158
159
160
161
162
163













164
165
166
167
168
169
170







-
-
-
-
-
-
-
-
-
-
-
-
-







static void FixupUserAgent(void){
  int i;
  if( zAgent==0 || zAgent[0]==0 ) zAgent = "*";
  for(i=0; zAgent[i]; i++){
    int c = zAgent[i];
    if( c<'!' || c>'~'  ){ zAgent[i] = '_'; }
  }
#if 0
  if( strncmp(zAgent,"msnbot",6)==0 ){
    exit(0);
  }
#endif
  for(i=0; zAgent[i]; i++){
    if( zAgent[i]=='W' && strncmp(&zAgent[i],"Windows_9",9)==0 ){
      exit(0);
    }
    if( zAgent[i]=='D' && strncmp(&zAgent[i],"Download_Master",15)==0 ){
      exit(0);
    }
  }
}

/*
** Make an entry in the log file.  If the HTTP connection should be
** closed, then terminate this process.  Otherwise return.
*/
static void MakeLogEntry(int a){
977
978
979
980
981
982
983
984










985
986
987
988
989
990
991
964
965
966
967
968
969
970

971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987







-
+
+
+
+
+
+
+
+
+
+







        zServerPort = StrDup(zRealPort);
      }
    }else if( strcasecmp(zFieldName,"Authorization:")==0 ){
      zAuthType = GetFirstElement(StrDup(zVal), &zAuthArg);
    }
  }

  /* Disallow referring from certain servers */
  /* Disallow referring from certain clients */
  if( zAgent ){
    if( strstr(zAgent, "Windows_9")!=0
     || strstr(zAgent, "Download_Master")!=0
    ){
      strcpy(zReplyStatus, "997");
      closeConnection = 1;
      MakeLogEntry(0);
    }
  }
#if 0
  if( zReferer ){
    static const char *azDisallow[] = {
      "skidrowcrack.com",
      "hoshiyuugi.tistory.com",
      "skidrowgames.net",
    };