/[graveman]/graveman/current/src/matos.c
ViewVC logotype

Diff of /graveman/current/src/matos.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.34 by scresto, Sun May 15 17:37:21 2005 UTC revision 1.35 by scresto, Tue May 17 01:16:34 2005 UTC
# Line 118  void get_current_matos(gboolean *Areadcd Line 118  void get_current_matos(gboolean *Areadcd
118    }    }
119  }  }
120    
121  void insert_or_update_drive(gchar *Adev, gchar *Amarque, gchar *Amodel, gchar *Aquoi, Tsearchdrive *Adrivedesc)  void matos_insert_or_update_drive(gchar *Adev, gchar *Amarque, gchar *Amodel, gchar *Aquoi, Tsearchdrive *Adrivedesc)
122  {  {
123    /* on commence par construire l'identifiant */    /* on commence par construire l'identifiant */
124    gchar *Lident = g_strdup_printf("%s %s %s", Amarque, Amodel, Aquoi);    gchar *Lident = g_strdup_printf("%s %s %s", Amarque, Amodel, Aquoi);
# Line 764  GSList *manage_mediarequis(GSList *Acurl Line 764  GSList *manage_mediarequis(GSList *Acurl
764    
765  /* try to umount device when it's mounted  /* try to umount device when it's mounted
766   * scan /etc/ftab file to do this */   * scan /etc/ftab file to do this */
767  gboolean umount_device(Tdriveinfo *Adevice, Tgrave *Ag)  gboolean matos_umount_device(Tdriveinfo *Adrive, GError **Aerror)
768  {  {
769        gchar *Lcontent = NULL;
770      gint i;
771      gchar **Larrbuf, *Lcur, *s, *Lcurdev = NULL;
772      gchar Lcommand[_BUF_SIZE];
773      GSList *Llistdev;
774      gboolean Lfind = FALSE, Lstatus = FALSE;
775    
776      if (!g_file_get_contents("/etc/mtab", &Lcontent, NULL, Aerror) || !Lcontent) return FALSE;
777      Larrbuf = g_strsplit(Lcontent, "\n", 0);
778    
779      for (i=0; Larrbuf[i] && !Lfind; i++) {
780        s = Lcur = Larrbuf[i];
781        if (!*Lcur) continue;
782    
783      _DEB("deb => [%s]", Lcur);
784    
785        while (g_ascii_isalnum(*s) || *s=='/') s++;
786        *s=0;
787        if ((s=strchr(Lcur, '='))) Lcur=s+1;
788    
789        for (Llistdev = Adrive->dev; Llistdev; Llistdev = g_slist_next(Llistdev)) {
790          Lcurdev = (gchar *) Llistdev->data;
791    _DEB("comp de [%s] et [%s]", Lcurdev,Lcur);
792          if (!strcmp(Lcurdev, Lcur)) {
793            Lfind = TRUE;
794            break;
795          }
796        }
797      }
798    
799      if (Lfind && Lcurdev) {
800        g_snprintf(Lcommand, sizeof(Lcommand)-1, "/sbin/umount %s", Lcurdev);
801    
802        _DEB("try to umount [%s]", Lcommand);
803    
804        Lstatus = g_spawn_command_line_async(Lcommand, Aerror);
805      }
806    
807      g_strfreev(Larrbuf);
808      g_free(Lcontent);
809    
810      return Lstatus;
811    }
812    
813    gboolean matos_maj_drive_info(Tdriveinfo *Adrive, gchar *Adev, GError **Aerror)
814    {
815      Adrive->type = 0;
816    
817      cdrecord_maj_drive_info(Adrive, Adev, Aerror);
818    
819      /* use /proc/sys/dev/cdrom/info with linux to find DVD capability */
820      proc_maj_drive_info(Adrive, Aerror);
821    
822      return TRUE;
823  }  }
824    
825  /*  /*

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26