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
Unified 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
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){







<
<
<
<
<
<
<
<
<
<
<
<
<







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] = '_'; }
  }













}

/*
** 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
        zServerPort = StrDup(zRealPort);
      }
    }else if( strcasecmp(zFieldName,"Authorization:")==0 ){
      zAuthType = GetFirstElement(StrDup(zVal), &zAuthArg);
    }
  }

  /* Disallow referring from certain servers */









#if 0
  if( zReferer ){
    static const char *azDisallow[] = {
      "skidrowcrack.com",
      "hoshiyuugi.tistory.com",
      "skidrowgames.net",
    };







|
>
>
>
>
>
>
>
>
>







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 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",
    };