[Phonehome-commits] r51 - trunk/client/src

pamadio at garage.maemo.org pamadio at garage.maemo.org
Sat Oct 18 18:02:46 EEST 2008


Author: pamadio
Date: 2008-10-18 18:02:45 +0300 (Sat, 18 Oct 2008)
New Revision: 51

Modified:
   trunk/client/src/dsk_mgr.c
Log:
adding test_xmlrpc login function

Modified: trunk/client/src/dsk_mgr.c
===================================================================
--- trunk/client/src/dsk_mgr.c	2008-10-18 14:47:25 UTC (rev 50)
+++ trunk/client/src/dsk_mgr.c	2008-10-18 15:02:45 UTC (rev 51)
@@ -495,8 +495,78 @@
 
 }
 
+
+gboolean test_xmlrpc_login(){
+  SoupSession*  soup_session;
+  char *uri = xmlrpc_server;
+  //soup_session=soup_session_sync_new_with_options(SOUP_SESSION_MAX_CONNS,5);
+  soup_session=soup_session_sync_new();
+  SoupXmlrpcMessage *msg;
+  SoupXmlrpcResponse *rpc_response;
+  guint rpc_status;
+  SoupXmlrpcValue *value;
+  msg = soup_xmlrpc_message_new (uri);
+  if (!msg) {
+    g_print("Could not create web service request to '%s'\n", uri);
+    return FALSE;
+  }
+  soup_xmlrpc_message_start_call(msg,"test_login");
+  soup_xmlrpc_message_start_param (msg);
+  soup_xmlrpc_message_write_string (msg,xmlrpc_id);
+  soup_xmlrpc_message_end_param (msg);
+
+  soup_xmlrpc_message_start_param (msg);
+  soup_xmlrpc_message_write_string (msg,xmlrpc_password);
+  soup_xmlrpc_message_end_param (msg);
+
+  soup_xmlrpc_message_end_call (msg);
+  soup_xmlrpc_message_persist (msg);
+  rpc_status=soup_session_send_message(soup_session, SOUP_MESSAGE(msg));
+
+  g_print("rpc_status=%i\n",rpc_status);
+  if(rpc_status!=200){
+    g_print("Problem with XMLRPC communication\n");
+    return FALSE;
+  }
+
+  rpc_response=soup_xmlrpc_message_parse_response (SOUP_XMLRPC_MESSAGE (msg));
+  if (!rpc_response) {
+    g_print("Could not parse XMLRPC response\n");
+    g_object_unref(msg);
+    return FALSE;
+  }
+
+  value = soup_xmlrpc_response_get_value (rpc_response);
+  if (!value) {
+    g_print("No response value in XMLRPC response\n");
+    g_object_unref(msg);
+    return FALSE;
+  }
+  
+  gboolean *b;
+  b=g_malloc(sizeof(gboolean));
+  soup_xmlrpc_value_get_boolean(value,b);
+  g_object_unref(msg);
+
+  if(*b==TRUE){
+    g_print("OK\n");
+    g_free(b);
+    return TRUE;
+  } else {
+    g_print("NOPE\n");
+    g_free(b);
+    return FALSE;
+  }
+
+
+}
+
 void connection_available(){
   g_print("connection available !\n");
+  if (test_xmlrpc_login()!=TRUE){
+    g_print("xmlrpc connexion not successfull\n");
+    return;
+  }
   send_gps_infos();
   take_photo();
 }
@@ -937,7 +1007,7 @@
   gps_device = g_object_new (LOCATION_TYPE_GPS_DEVICE, NULL);
   g_signal_connect (gps_device, "changed", G_CALLBACK (location_changed), (gpointer) gps_positions);
 
-  g_timeout_add(5000,my_timeout,(gpointer) mainloop);
+  //g_timeout_add(5000,my_timeout,(gpointer) mainloop);
   g_timeout_add(5*60*1000,monitor_connection,NULL);
   //fill_gps_positions_with_fake();
   //save_positions_to_file();



More information about the Phonehome-commits mailing list