# This patch file was generated by NetBeans IDE
# This patch can be applied using context Tools: Apply Diff Patch action on respective folder.
# It uses platform neutral UTF-8 encoding.
# Above lines and this line are ignored by the patching process.
--- /home/daniel/Desktop/Dev/modules/old/bbb/includes/api.bbb.inc
+++ /home/daniel/Desktop/Dev/modules/api.bbb.inc
@@ -54,10 +54,16 @@
  *     meeting). If you did not supply one, BBB will assign a random password.
  *
  * @see http://code.google.com/p/bigbluebutton/wiki/API#Create_Meeting_(create)
+ * 
+ * djones1844: Modified to support change in api requireing prepending command 
+ *             to checksum calculation.
+ * ref: http://code.google.com/p/bigbluebutton/issues/detail?id=487
+ * ref: http://drupal.org/node/1065686
  */
 function bbb_api_create($params = array()) {
-  $query_string = bbb_api_generate_querystring($params);
+  $query_string = bbb_api_generate_querystring($params, 'create');
   $request = BIGBLUEBUTTON_BASE_URL . BIGBLUEBUTTON_CREATE_URL . '?' . $query_string;
+//  $request = BIGBLUEBUTTON_BASE_URL . BIGBLUEBUTTON_CREATE_URL . '?' . $query_string . '&checksum=' . sha1('create' . $query_string . BIGBLUEBUTTON_SECURITY_SALT); 	
   $xml = @simplexml_load_file($request);
   $response = bbb_api_parse_response($xml);
 
@@ -100,7 +106,7 @@
  *   into the conference.
  */
 function bbb_api_join($params) {
-  $query_string = bbb_api_generate_querystring($params);
+  $query_string = bbb_api_generate_querystring($params, 'join');
   return BIGBLUEBUTTON_BASE_URL . BIGBLUEBUTTON_JOIN_URL . '?' . $query_string;
 }
 
@@ -122,7 +128,7 @@
  *   this ID or token is currently running.
  */
 function bbb_api_isMeetingRunning($params) {
-  $query_string = bbb_api_generate_querystring($params);
+  $query_string = bbb_api_generate_querystring($params, 'isMeetingRunning');
   $request = BIGBLUEBUTTON_BASE_URL . BIGBLUEBUTTON_IS_MEETING_RUNNING_URL . '?' . $query_string;
   $xml = @simplexml_load_file($request);
   $response = bbb_api_parse_response($xml);
@@ -159,7 +165,7 @@
  */
 // TODO: this call is not yet implemented.
 function bbb_api_endMeeting($params) {
-  $query_string = bbb_api_generate_querystring($params);
+  $query_string = bbb_api_generate_querystring($params, 'endMeeting');
   $request = BIGBLUEBUTTON_BASE_URL . BIGBLUEBUTTON_END_MEETING_URL . '?' . $query_string;
   $xml = @simplexml_load_file($request);
   $response = bbb_api_parse_response($xml);
@@ -195,7 +201,7 @@
  */
 // TODO: this call is not yet implemented.
 function bbb_api_getMeetingInfo($params) {
-  $query_string = bbb_api_generate_querystring($params);
+  $query_string = bbb_api_generate_querystring($params, 'getMeetingInfo');
   $request = BIGBLUEBUTTON_BASE_URL . BIGBLUEBUTTON_GET_MEETING_INFO_URL . '?' . $query_string;
   $xml = @simplexml_load_file($request);
   $response = bbb_api_parse_response($xml);
@@ -215,7 +221,7 @@
 /**
  * Generate a signed query string
  */
-function bbb_api_generate_querystring($params = array()) {
+function bbb_api_generate_querystring($params = array(), $command = null) {
   $query = array();
   // URL encoding the parameters
   foreach ($params as $key => $value) {
@@ -224,7 +230,7 @@
   // Putting it together
   $query_string = implode('&', $query);
   // Adding the checksum to query string and return
-  $query_string = $query_string . '&checksum=' . sha1($query_string . BIGBLUEBUTTON_SECURITY_SALT);
+  $query_string = $query_string . '&checksum=' . sha1($command . $query_string . BIGBLUEBUTTON_SECURITY_SALT);
   return $query_string;
 }
 
