summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INSTALL71
-rw-r--r--LICENSE274
-rw-r--r--README24
-rw-r--r--online.module212
-rw-r--r--online.mysql9
5 files changed, 0 insertions, 590 deletions
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index 115fe79..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,71 +0,0 @@
-Readme
-------
-This Drupal 4.0 module tracks how many users and guests are currently
-accessing your web site. The module is fully configurable once installed
-via the "site configuration" administration page.
-
-Configurable options:
- - How long ago a user/guest must have been active to be "online"
- - How many user names to list in "Who's online" block
- - Maximum characters to display in user's name
- - How often to flush "inactive" IP addresses (guests/users)
- - Definition of throttle levels (# of online users)
-
-This module adds 1 database query for each page that is displayed to log
-the current visitor's IP address, user ID (if any) and the current time.
-(2 database queries if it's the first time the visitor has hit your site).
-
-For efficiency, online.module requires the mysql_affected_rows()
-function, currently tieing it to MySQL. (A generic db_affected_rows()
-needs to be added to Drupal to solve this dependancy)
-
-Requirements
-------------
-Drupal 4.0 or higher
-
-
-Installation
-------------
-1) To use this module you need to create the 'online' MySQL table.
- The easiest way to do this is with the included 'online.mysql'
- script. Type something like:
-
- mysql -u<username> -p<password> <database> < online.mysql
-
- If you'd prefer to add the table manually, you can cut and paste the
- following lines into the MySQL command line:
-
- DROP TABLE IF EXISTS online;
- CREATE TABLE online (
- addr varchar(16) UNIQUE NOT NULL,
- uid int(10) UNSIGNED DEFAULT NULL,
- timestamp int(11) UNSIGNED DEFAULT '0' NOT NULL,
- PRIMARY KEY (addr),
- INDEX (uid),
- INDEX (timestamp)
- );
-
-2. Copy this module to the Drupal modules/ directory. Drupal should
- automatically detect it. Then enable the module in
- site configuration -> modules
-
-3. Configure the module in
- site configuration -> online
- (the default values are fine if you're unsure what to change)
-
-4. If you wish a user roll to be able to see a list of who's actually
- online, give the 'access userlist' permissions to that roll in
- user management -> user permissions
-
-5. Enable the "Who's currently online" block in
- blocks
-
-
-Credits
-----------
-Jeremy Andrews <jeremy@kerneltrap.org>
-
-
-TO DO (contributions welcome)
------------
- - add generic mysql_affected_rows() function call to Drupal
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 2c095c8..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,274 +0,0 @@
-GNU GENERAL PUBLIC LICENSE
-
- Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
-Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
-verbatim copies of this license document, but changing it is not allowed.
-
- Preamble
-
-The licenses for most software are designed to take away your freedom to
-share and change it. By contrast, the GNU General Public License is
-intended to guarantee your freedom to share and change free software--to
-make sure the software is free for all its users. This General Public License
-applies to most of the Free Software Foundation's software and to any other
-program whose authors commit to using it. (Some other Free Software
-Foundation software is covered by the GNU Library General Public License
-instead.) You can apply it to your programs, too.
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the
-freedom to distribute copies of free software (and charge for this service if
-you wish), that you receive source code or can get it if you want it, that you
-can change the software or use pieces of it in new free programs; and that
-you know you can do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have. You must make
-sure that they, too, receive or can get the source code. And you must show
-them these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute
-and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software. If the
-software is modified by someone else and passed on, we want its recipients
-to know that what they have is not the original, so that any problems
-introduced by others will not reflect on the original authors' reputations.
-
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will individually
-obtain patent licenses, in effect making the program proprietary. To prevent
-this, we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification
-follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
- MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms
-of this General Public License. The "Program", below, refers to any such
-program or work, and a "work based on the Program" means either the
-Program or any derivative work under copyright law: that is to say, a work
-containing the Program or a portion of it, either verbatim or with
-modifications and/or translated into another language. (Hereinafter, translation
-is included without limitation in the term "modification".) Each licensee is
-addressed as "you".
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program is
-not restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made
-by running the Program). Whether that is true depends on what the Program
-does.
-
-1. You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the
-Program a copy of this License along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you
-may at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it,
-thus forming a work based on the Program, and copy and distribute such
-modifications or work under the terms of Section 1 above, provided that you
-also meet all of these conditions:
-
-a) You must cause the modified files to carry prominent notices stating that
-you changed the files and the date of any change.
-
-b) You must cause any work that you distribute or publish, that in whole or in
-part contains or is derived from the Program or any part thereof, to be
-licensed as a whole at no charge to all third parties under the terms of this
-License.
-
-c) If the modified program normally reads commands interactively when run,
-you must cause it, when started running for such interactive use in the most
-ordinary way, to print or display an announcement including an appropriate
-copyright notice and a notice that there is no warranty (or else, saying that
-you provide a warranty) and that users may redistribute the program under
-these conditions, and telling the user how to view a copy of this License.
-(Exception: if the Program itself is interactive but does not normally print such
-an announcement, your work based on the Program is not required to print
-an announcement.)
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be
-reasonably considered independent and separate works in themselves, then
-this License, and its terms, do not apply to those sections when you distribute
-them as separate works. But when you distribute the same sections as part
-of a whole which is a work based on the Program, the distribution of the
-whole must be on the terms of this License, whose permissions for other
-licensees extend to the entire whole, and thus to each and every part
-regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your rights to
-work written entirely by you; rather, the intent is to exercise the right to
-control the distribution of derivative or collective works based on the
-Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of a
-storage or distribution medium does not bring the other work under the scope
-of this License.
-
-3. You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of Sections 1
-and 2 above provided that you also do one of the following:
-
-a) Accompany it with the complete corresponding machine-readable source
-code, which must be distributed under the terms of Sections 1 and 2 above
-on a medium customarily used for software interchange; or,
-
-b) Accompany it with a written offer, valid for at least three years, to give
-any third party, for a charge no more than your cost of physically performing
-source distribution, a complete machine-readable copy of the corresponding
-source code, to be distributed under the terms of Sections 1 and 2 above on
-a medium customarily used for software interchange; or,
-
-c) Accompany it with the information you received as to the offer to distribute
-corresponding source code. (This alternative is allowed only for
-noncommercial distribution and only if you received the program in object
-code or executable form with such an offer, in accord with Subsection b
-above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source code
-means all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation and
-installation of the executable. However, as a special exception, the source
-code distributed need not include anything that is normally distributed (in
-either source or binary form) with the major components (compiler, kernel,
-and so on) of the operating system on which the executable runs, unless that
-component itself accompanies the executable.
-
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the
-source code from the same place counts as distribution of the source code,
-even though third parties are not compelled to copy the source along with the
-object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy,
-modify, sublicense or distribute the Program is void, and will automatically
-terminate your rights under this License. However, parties who have received
-copies, or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the
-Program or its derivative works. These actions are prohibited by law if you
-do not accept this License. Therefore, by modifying or distributing the
-Program (or any work based on the Program), you indicate your acceptance
-of this License to do so, and all its terms and conditions for copying,
-distributing or modifying the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these terms and
-conditions. You may not impose any further restrictions on the recipients'
-exercise of the rights granted herein. You are not responsible for enforcing
-compliance by third parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues), conditions
-are imposed on you (whether by court order, agreement or otherwise) that
-contradict the conditions of this License, they do not excuse you from the
-conditions of this License. If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Program at all.
-For example, if a patent license would not permit royalty-free redistribution
-of the Program by all those who receive copies directly or indirectly through
-you, then the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and
-the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose
-that choice.
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original copyright
-holder who places the Program under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded. In such
-case, this License incorporates the limitation as if written in the body of this
-License.
-
-9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will be
-similar in spirit to the present version, but may differ in detail to address new
-problems or concerns.
-
-Each version is given a distinguishing version number. If the Program specifies
-a version number of this License which applies to it and "any later version",
-you have the option of following the terms and conditions either of that
-version or of any later version published by the Free Software Foundation. If
-the Program does not specify a version number of this License, you may
-choose any version ever published by the Free Software Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software
-Foundation, write to the Free Software Foundation; we sometimes make
-exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
-PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
-STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
-AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
-ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
-LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE
-PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
-OR DATA BEING RENDERED INACCURATE OR LOSSES
-SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
-PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
-IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
diff --git a/README b/README
deleted file mode 100644
index 7d7ce4f..0000000
--- a/README
+++ /dev/null
@@ -1,24 +0,0 @@
-Readme
-------
-This Drupal 4.0 module tracks how many users and guests are currently
-accessing your web site. The module is fully configurable once installed
-via the "site configuration" administration page.
-
-Configurable options:
- - How long ago a user/guest must have been active to be "online"
- - How many user names to list in "Who's online" block
- - Maximum characters to display in user's name
- - How often to flush "inactive" IP addresses (guests/users)
- - Definition of throttle levels (# of online users)
-
-This module adds 1 database query for each page that is displayed to log
-the current visitor's IP address, user ID (if any) and the current time.
-(2 database queries if it's the first time the visitor has hit your site).
-
-For efficiency, online.module requires the mysql_affected_rows()
-function, currently tieing it to MySQL. (A generic db_affected_rows()
-needs to be added to Drupal to solve this dependancy)
-
-Requirements
-------------
-Drupal 4.0 or higher \ No newline at end of file
diff --git a/online.module b/online.module
deleted file mode 100644
index d0799c8..0000000
--- a/online.module
+++ /dev/null
@@ -1,212 +0,0 @@
-<?php
- /*********************************************************************
- * Description: This module is just a proof of concept. It counts
- * how many people are currently accessing your site.
- * Requirements: Drupal 4.x
- * Created: September 2, 2002 - Jeremy Andrews - jeremy@kerneltrap.org
- * Modified:
- * 9/2/02 - JA - Added awareness of users vs. guests
- * 9/3/02 - JA - Added auto-throttle functionality
- * 9/6/02 - JA - Pass id instead of name/link to user's drupal page
- * - Fully configurable (from "site configuration")
- *********************************************************************/
-
-global $user, $online_throttle, $throttle_limits, $throttle_levels;
-
-$throttle_limits_table = array(1 => array(0,1,2,3,4,5), 2 => array(0,20,40,60,80,100), 3 => array(0,50,100,150,200,250), 4 => array(0,200,400,600,800,1000), 5 => array(0,500,1000,1500,2000,2500), 6 => array(0,1000,2000,3000,4000,5000), 7 => array(0,2000,4000,6000,8000,10000));
-
-/* number of users to reach each throttle level, 0-5 */
-$throttle_limits = $throttle_limits_table[variable_get("online throttle limits",5)];
-
-/* number of throttle levels - don't modify this! */
-$throttle_levels = 5;
-
-/* this module's throttle level - don't modify this! */
-$online_throttle = $throttle_levels; // must be highest level
-
-/* throttle-aware; disable stat-collection when throttle all the way up */
-if( throttle_status() < $online_throttle ) {
- if( $remote_addr = getenv("REMOTE_ADDR")) {
- /* update remote_addr timestamp & uid to reflect current activity */
- @db_query("UPDATE online SET timestamp='%s', uid='%s' WHERE addr = '%s'", time(), $user->uid, $remote_addr);
- if( !mysql_affected_rows()) {
- /* failed to update timestamp, must be new remote_addr; add it */
- @db_query("INSERT INTO online (addr,uid,timestamp) VALUES('%s','%s','%s')", $remote_addr, $user->uid, time());
- }
- }
-}
-
-
-/* System hook, sets description of module */
-function online_system($field){
- $system["description"] = t("Counts how many users are currently online.");
- return $system[$field];
-}
-
-
-/* Permissions hook, defines module's permissions */
-function online_perm() {
- return array("access userlist" );
-}
-
-
-/* cron hook, performs automatic functions */
-function online_cron() {
- global $throttle_levels;
-
- /* remove user access logs older than 259200 seconds (3 days) */
- db_query("DELETE FROM online WHERE ". time() ." - timestamp > ". variable_get("online flush addr",259200) );
-
- $throttle = variable_get("throttle",5);
- if( $throttle == $throttle_levels ) {
- /* If throttle is all the way up, back off one notch to test server load */
- variable_set("throttle",($throttle-1));
- if( function_exists(watchdog) ) {
- watchdog("warning", "warning: decreasing throttle to level '". ($throttle-1) ."' to test server load.");
- }
- }
-}
-
-
-/* This displays the online block */
-function online_displayblock() {
- global $id, $online_throttle, $throttle_limits;
-
- $throttle = throttle_status();
- /* disable all database lookups if site is throttled from extreme activity */
- if( $throttle < $online_throttle ) {
- $seconds_online = variable_get("online active time",2700);
-
- /* count users with activity in the past 30 minutes */
- $result = db_query("SELECT COUNT(addr) AS count FROM online WHERE ". time() ." - timestamp < ". $seconds_online ." AND uid != ''");
- $users = db_fetch_array($result);
-
- $result = db_query("SELECT COUNT(addr) AS count FROM online WHERE ". time() ." - timestamp < ". $seconds_online ." AND uid = ''");
- $guests = db_fetch_array($result);
-
- if( $users[count] == 1 ) {
- $output = "There is currently ";
- } else {
- $output = "There are currently ";
- }
- $output .= format_plural($users[count], " user", " users");
- $output .= " and ";
- $output .= format_plural($guests[count], " guest", " guests");
- $output .= " online.";
-
- $total_users = $guests[count] + $users[count];
- if( ($throttle_limits[$throttle+1]) &&
- ($total_users >= $throttle_limits[$throttle+1]) ) {
- /* The site is getting busier! Crank up the throttle... */
- throttle_increase($total_users);
- } else if( ($throttle_limits[$throttle]) &&
- ($total_users < $throttle_limits[$throttle]) ) {
- /* The site is less busy. Back off on the throttle... */
- throttle_decrease($total_users);
- }
-
- if( user_access("access userlist") && $users[count] ) {
- $result = db_query("SELECT uid FROM online WHERE uid != '' AND ". time() ." - timestamp < ". $seconds_online ." ORDER BY timestamp DESC LIMIT %s", variable_get("online users list",10));
- if( $result ) {
- $output .= "<br /><br />\n<b>Online users:</b><br />\n";
- while( $uid = db_fetch_array($result) ) {
- $user = user_load(array("uid" => $uid[uid]));
- $output .= " - ". lm((strlen($user->name) > 15 ? substr($user->name, 0, 15) . '...' : $user->name), array("mod" => "user", "op" => "view", "id" => $user->uid)) ."<br />";
- }
- }
- }
-
- } else {
- /* throttled due to extreme activity */
- $output = "There are currently more than ". $throttle_limits[$throttle] ." guests and users online!";
- }
-
- return $output;
-}
-
-
-/* This is the hook that calls the code to display the online block */
-function online_block() {
-
- $block[0]["subject"] = "Who's online";
- $block[0]["content"] = online_displayblock();
- $block[0]["info"] = "Who's currently online";
-
- return $block;
-}
-
-
-function online_settings() {
-
- /* define 'online' */
- $period = array(30 => format_interval(30), 60 => format_interval(60), 120 => format_interval(120), 180 => format_interval(180), 300 => format_interval(300), 600 => format_interval(600), 900 => format_interval(900), 1800 => format_interval(1800), 2700 => format_interval(2700), 3600 => format_interval(3600), 5400 => format_interval(5400), 7200 => format_interval(7200), 10800 => format_interval(10800), 21600 => format_interval(21600), 43200 => format_interval(43200), 86400 => format_interval(86400));
- $output .= form_select(t("User 'online' if active in past"), "online active time", variable_get("online active time",2700), $period, "How long ago a user (or guest) must have been active to be considered as 'online'.");
-
- /* How many users to list */
- $output .= form_select(t("How many online users to list"), "online users list", variable_get("online users list",10), array("0" => "0", "1" => "1", "2" => "2", "3" => "3", "4" => "4", "5" => "5", "6" => "6", "7" => "7", "8" => "8", "9" => "9", "10" => "10", "15" => "15", "20" => "20", "50" => "50", "100" => "100"), "How many online user's names to list in \"Who's online\" block.");
-
- /* How many characters of user's name to display */
- $output .= form_select(t("Maximum characters of user's name to display"), "online name length", variable_get("online name length",15), array("1" => "1", "5" => "5", "10" => "10", "15" => "15", "20" => "20", "25" => "25", "30" => "30", "35" => "35", "40" => "40", "45" => "45", "50" => "50", "55" => "55", "60" => "60"), "What is the maximum characters of a user's name to to display in \"Who's online\" block.");
-
- /* How often to flush MySQL table */
- $period = array(3600 => format_interval(3600), 7200 => format_interval(7200), 10800 => format_interval(10800), 21600 => format_interval(21600), 43200 => format_interval(43200), 86400 => format_interval(86400), 129600 => format_interval(129600), 172800 => format_interval(172800), 259200 => format_interval(259200), 432000 => format_interval(432000), 604800 => format_interval(604800), 1209600 => format_interval(1209600), 1814400 => format_interval(1814400));
- $output .= form_select(t("Flush addresses after"), "online flush addr", variable_get("online flush addr",259200), $period, "Flush logged IP addresses from database table after defined period of inactivity. Requires cron.");
-
- /* Define throttle levels */
- /* ($throttles absolutely must match ordering of '$throttle_limits_table') */
- $throttles = array(1 => "0,1,2,3,4,5", 2 => "0,20,40,60,80,100", 3 => "0,50,100,150,200,250", 4 => "0,200,400,600,800,1000", 5 => "0,500,1000,1500,2000,2500", 6 => "0,1000,2000,3000,4000,5000", 7 => "0,2000,4000,6000,8000,10000");
- $output .= form_select(t("Auto-throttle user limits"), "online throttle limits", variable_get("online throttle limits",5), $throttles, "Defines how many user's are online to trigger each throttle level.");
-
- return $output;
-}
-
-
-/***********************************
- * Auto-throttle helper functions *
- ***********************************/
-
-/* external - API */
-function throttle_status() {
- return( variable_get("throttle",0) );
-}
-
-
-/* internal - do not call these function from other modules */
-function throttle_increase($total_users) {
- global $throttle_limits, $throttle_levels;
-
- for( $i = 0; $i <= $throttle_levels; $i++ ) {
- if( $total_users >= $throttle_limits[$i] ) {
- $throttle = $i;
- }
- }
-
- /* adjust the current throttle level */
- variable_set("throttle",$throttle);
-
- /* log the change in the watchdog */
- if( function_exists(watchdog) ) {
- watchdog("warning", "warning: '". $total_users ."' users online; throttle increased to level '". $throttle ."'");
- }
-}
-
-
-function throttle_decrease($total_users) {
- global $throttle_limits, $throttle_levels;
-
- for( $i = $throttle_levels; $i >= 0; $i-- ) {
- if( $total_users < $throttle_limits[$i] ) {
- $throttle = $i-1;
- }
- }
-
- /* adjust the current throttle level */
- variable_set("throttle",$throttle);
-
- /* log the change in the watchdog */
- if( function_exists(watchdog) ) {
- watchdog("message", "message: '". $total_users ."' users online; throttle decreased to level '". $throttle ."'");
- }
-}
-
-?>
diff --git a/online.mysql b/online.mysql
deleted file mode 100644
index 2da5f38..0000000
--- a/online.mysql
+++ /dev/null
@@ -1,9 +0,0 @@
-DROP TABLE IF EXISTS online;
-CREATE TABLE online (
- addr varchar(16) UNIQUE NOT NULL,
- uid int(10) UNSIGNED DEFAULT NULL,
- timestamp int(11) UNSIGNED DEFAULT '0' NOT NULL,
- PRIMARY KEY (addr),
- INDEX (uid),
- INDEX (timestamp)
-);