Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(14) |
Sep
(32) |
Oct
(85) |
Nov
(34) |
Dec
(65) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(36) |
Feb
(40) |
Mar
(179) |
Apr
(28) |
May
(37) |
Jun
(36) |
Jul
(15) |
Aug
(10) |
Sep
(12) |
Oct
(60) |
Nov
(76) |
Dec
(48) |
2003 |
Jan
(130) |
Feb
(114) |
Mar
(72) |
Apr
(7) |
May
(2) |
Jun
(3) |
Jul
(40) |
Aug
(9) |
Sep
|
Oct
(5) |
Nov
(9) |
Dec
(37) |
2004 |
Jan
(4) |
Feb
(36) |
Mar
(71) |
Apr
(97) |
May
(17) |
Jun
(11) |
Jul
(8) |
Aug
(20) |
Sep
(23) |
Oct
(7) |
Nov
(35) |
Dec
(64) |
2005 |
Jan
(49) |
Feb
(66) |
Mar
(190) |
Apr
(107) |
May
(12) |
Jun
(6) |
Jul
(13) |
Aug
(11) |
Sep
(94) |
Oct
(80) |
Nov
(26) |
Dec
(2) |
2006 |
Jan
(4) |
Feb
(5) |
Mar
(5) |
Apr
(38) |
May
(3) |
Jun
(2) |
Jul
(23) |
Aug
(65) |
Sep
(11) |
Oct
(2) |
Nov
(9) |
Dec
(4) |
2007 |
Jan
(8) |
Feb
(11) |
Mar
(35) |
Apr
(92) |
May
(15) |
Jun
(12) |
Jul
(8) |
Aug
(22) |
Sep
(10) |
Oct
(12) |
Nov
(14) |
Dec
(6) |
2008 |
Jan
(2) |
Feb
(25) |
Mar
(3) |
Apr
(1) |
May
|
Jun
(22) |
Jul
(17) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(51) |
Dec
|
2009 |
Jan
(19) |
Feb
(7) |
Mar
(12) |
Apr
|
May
|
Jun
(50) |
Jul
(40) |
Aug
(9) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(31) |
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
(2) |
2011 |
Jan
|
Feb
(6) |
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
(25) |
Aug
(14) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(1) |
Jul
(2) |
Aug
|
Sep
|
Oct
(9) |
Nov
(2) |
Dec
(2) |
2013 |
Jan
(11) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
(2) |
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
(1) |
15
|
16
|
17
|
18
|
19
|
20
(1) |
21
|
22
|
23
(3) |
24
(4) |
25
|
26
|
27
|
28
|
29
|
30
|
31
|
|
|
|
|
|
|
From: Ian Bicking <ianbicking@us...> - 2003-08-23 23:34:09
|
Update of /cvsroot/webware/Webware/WebKit In directory sc8-pr-cvs1:/tmp/cvs-serv7291 Modified Files: ThreadedAppServer.py Log Message: Get in-process HTTP server working. Index: ThreadedAppServer.py =================================================================== RCS file: /cvsroot/webware/Webware/WebKit/ThreadedAppServer.py,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** ThreadedAppServer.py 23 Jul 2003 20:13:34 -0000 1.69 --- ThreadedAppServer.py 23 Aug 2003 23:34:06 -0000 1.70 *************** *** 29,32 **** --- 29,35 ---- DefaultConfig = { 'Port': 8086, + 'Host': '127.0.0.1', + 'MonitorPort': 8085, + 'HTTPPort': 8080, 'MaxServerThreads': 20, 'MinServerThreads': 5, *************** *** 38,42 **** } - #Need to know this value for communications #Note that this limits the size of the dictionary we receive from the AppServer to 2,147,483,647 bytes --- 41,44 ---- *************** *** 74,77 **** --- 76,80 ---- """ + self._defaultConfig = None AppServer.__init__(self, path) threadCount = self.setting('StartServerThreads') *************** *** 83,87 **** # twice the number of threads we have: self._requestQueue = Queue.Queue(self._maxServerThreads * 2) ! self._addr = None self._requestID = 0 --- 86,90 ---- # twice the number of threads we have: self._requestQueue = Queue.Queue(self._maxServerThreads * 2) ! self._addr = {} self._requestID = 0 *************** *** 101,109 **** self._sockets = {} ! self.addSocketHandler(self.address(), AdapterHandler) self.readyForRequests() ! def addSocketHandler(self, serverAddress, handlerClass): """ Adds a socket handler for `serverAddress` -- `serverAddress` --- 104,112 ---- self._sockets = {} ! self.addSocketHandler(AdapterHandler) self.readyForRequests() ! def addSocketHandler(self, handlerClass, serverAddress=None): """ Adds a socket handler for `serverAddress` -- `serverAddress` *************** *** 119,123 **** for more. """ ! self._socketHandlers[serverAddress] = handlerClass self._handlerCache[serverAddress] = [] --- 122,128 ---- for more. """ ! ! if serverAddress is None: ! serverAddress = self.address(handlerClass.settingPrefix) self._socketHandlers[serverAddress] = handlerClass self._handlerCache[serverAddress] = [] *************** *** 143,146 **** --- 148,157 ---- return 1 + def defaultConfig(self): + if self._defaultConfig is None: + self._defaultConfig = AppServer.defaultConfig(self).copy() + self._defaultConfig.update(DefaultConfig) + return self._defaultConfig + def mainloop(self, timeout=1): """ *************** *** 434,438 **** """ ! def address(self): """ The address for the Adapter (Host/interface, and port), --- 445,449 ---- """ ! def address(self, settingPrefix): """ The address for the Adapter (Host/interface, and port), *************** *** 440,446 **** ``Host`` and ``Port``. """ ! if self._addr is None: ! self._addr = (self.setting('Host'), self.setting('Port')) ! return self._addr class Handler: --- 451,463 ---- ``Host`` and ``Port``. """ ! try: ! return self._addr[settingPrefix] ! except KeyError: ! host = self.setting(settingPrefix + 'Host', ! self.setting('Host')) ! self._addr[settingPrefix] = ( ! host, ! self.setting(settingPrefix + 'Port')) ! return self._addr[settingPrefix] class Handler: *************** *** 553,556 **** --- 570,574 ---- protocolName = 'monitor' + settingPrefix = 'Monitor' def handleRequest(self): *************** *** 642,645 **** --- 660,664 ---- protocolName = 'address' + settingPrefix = '' def handleRequest(self): *************** *** 716,726 **** server = ThreadedAppServer(workDir) if useMonitor: ! addr = server.address() ! server.addSocketHandler((addr[0], addr[1]-1), ! MonitorHandler) if http: from WebKit.HTTPServer import HTTPAppServerHandler ! addr = ('127.0.0.1', 8080) ! server.addSocketHandler(addr, HTTPAppServerHandler) # On NT, run mainloop in a different thread because --- 735,743 ---- server = ThreadedAppServer(workDir) if useMonitor: ! addr = server.address('Monitor') ! server.addSocketHandler(MonitorHandler) if http: from WebKit.HTTPServer import HTTPAppServerHandler ! server.addSocketHandler(HTTPAppServerHandler) # On NT, run mainloop in a different thread because |
From: Ian Bicking <ianbicking@us...> - 2003-08-23 23:15:56
|
Update of /cvsroot/webware/Webware/WebKit/Adapters In directory sc8-pr-cvs1:/tmp/cvs-serv4471/Adapters Modified Files: HTTPAdapter.py Log Message: Fixed HTTPAdapter Index: HTTPAdapter.py =================================================================== RCS file: /cvsroot/webware/Webware/WebKit/Adapters/HTTPAdapter.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** HTTPAdapter.py 27 Jan 2003 16:06:09 -0000 1.2 --- HTTPAdapter.py 23 Aug 2003 23:15:40 -0000 1.3 *************** *** 37,40 **** --- 37,41 ---- pass + import BaseHTTPServer, threading, socket *************** *** 43,47 **** ############################################################ ! from WebKit.HTTPServer import HTTPHandler, run class HTTPAdapter(HTTPHandler, Adapter): --- 44,48 ---- ############################################################ ! from WebKit.HTTPServer import HTTPHandler class HTTPAdapter(HTTPHandler, Adapter): *************** *** 102,106 **** ! def run(serverAddress, klass=HTTPHandler): httpd = ThreadedHTTPServer(serverAddress, klass) httpd.serve_forever() --- 103,107 ---- ! def run(serverAddress, klass=HTTPAdapter): httpd = ThreadedHTTPServer(serverAddress, klass) httpd.serve_forever() *************** *** 126,132 **** opts, args = getopt.getopt(sys.argv[1:], 'p:h:d', ['port=', 'host=', 'daemon']) ! except getopt.GetoptErrro: print usage sys.exit(2) for o, a in opts: if o in ('-p', '--port'): --- 127,136 ---- opts, args = getopt.getopt(sys.argv[1:], 'p:h:d', ['port=', 'host=', 'daemon']) ! except getopt.GetoptError: print usage sys.exit(2) + daemon = 0 + host = 'localhost' + port = 8080 for o, a in opts: if o in ('-p', '--port'): *************** *** 140,144 **** sys.exit(0) print "PS: This adapter is experimental and should not be used in\na production environment" ! run() if __name__ == '__main__': --- 144,161 ---- sys.exit(0) print "PS: This adapter is experimental and should not be used in\na production environment" ! run((host, port)) ! ! def shutDown(arg1, arg2): ! """ ! We have to have a shutdown handler, because ThreadedAppServer ! installs one that we have to overwrite. ! """ ! import sys ! print 'Shutting down.' ! sys.exit() ! ! import signal ! signal.signal(signal.SIGINT, shutDown) ! signal.signal(signal.SIGTERM, shutDown) if __name__ == '__main__': |
From: Ian Bicking <ianbicking@us...> - 2003-08-23 23:15:56
|
Update of /cvsroot/webware/Webware/WebKit In directory sc8-pr-cvs1:/tmp/cvs-serv4471 Modified Files: HTTPServer.py Log Message: Fixed HTTPAdapter Index: HTTPServer.py =================================================================== RCS file: /cvsroot/webware/Webware/WebKit/HTTPServer.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** HTTPServer.py 27 Jan 2003 16:06:08 -0000 1.2 --- HTTPServer.py 23 Aug 2003 23:15:40 -0000 1.3 *************** *** 5,9 **** from StringIO import StringIO import threading, socket ! from WebKit.NewThreadedAppServer import Handler from WebKit.ASStreamOut import ASStreamOut import time --- 5,9 ---- from StringIO import StringIO import threading, socket ! from WebKit.ThreadedAppServer import Handler from WebKit.ASStreamOut import ASStreamOut import time *************** *** 34,38 **** ## SERVER_ADMIN (?) ! def doRequest(self): """ Actually performs the request, creating the environment and --- 34,38 ---- ## SERVER_ADMIN (?) ! def handleRequest(self): """ Actually performs the request, creating the environment and *************** *** 60,68 **** self.doTransaction(env, myInput) ! do_GET = do_POST = do_HEAD = doRequest # These methods are used in WebDAV requests: ! do_OPTIONS = do_PUT = do_DELETE = doRequest ! do_MKCOL = do_COPY = do_MOVE = doRequest ! do_PROPFIND = doRequest def headersToEnviron(self, headers, env): --- 60,68 ---- self.doTransaction(env, myInput) ! do_GET = do_POST = do_HEAD = handleRequest # These methods are used in WebDAV requests: ! do_OPTIONS = do_PUT = do_DELETE = handleRequest ! do_MKCOL = do_COPY = do_MOVE = handleRequest ! do_PROPFIND = handleRequest def headersToEnviron(self, headers, env): |