XMMS2
src/xmms/compat/statfs_netbsd.c
Go to the documentation of this file.
00001 /*  XMMS2 - X Music Multiplexer System
00002  *  Copyright (C) 2003-2011 XMMS2 Team
00003  *
00004  *  PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!!
00005  *
00006  *  This library is free software; you can redistribute it and/or
00007  *  modify it under the terms of the GNU Lesser General Public
00008  *  License as published by the Free Software Foundation; either
00009  *  version 2.1 of the License, or (at your option) any later version.
00010  *
00011  *  This library is distributed in the hope that it will be useful,
00012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  *  Lesser General Public License for more details.
00015  */
00016 
00017 
00018 /** @file
00019  *  NetBSD statfs
00020  */
00021 
00022 /* struct statfs was changed to struct statvfs in NetBSD3*/
00023 
00024 #include <stdio.h>
00025 #include <unistd.h>
00026 #include <stdlib.h>
00027 #include <glib.h>
00028 
00029 
00030 #include <sys/param.h>
00031 #include <sys/mount.h>
00032 
00033 #include "xmms/xmms_log.h"
00034 #include "xmmspriv/xmms_statfs.h"
00035 
00036 /**
00037  * This function uses the statvfs() call to
00038  * check if the path is on a remote filesystem
00039  * or not.
00040  *
00041  * @returns TRUE if path is on a remote filesystem
00042  */
00043 gboolean
00044 xmms_statfs_is_remote (const gchar *path)
00045 {
00046     struct statvfs st;
00047 
00048     if (statvfs (path, &st) == -1) {
00049         xmms_log_error ("Failed to run statfs, will not guess.");
00050         return FALSE;
00051     }
00052 
00053     if ((g_ascii_strcasecmp (st.f_fstypename, "nfs") == 0) ||
00054         (g_ascii_strcasecmp (st.f_fstypename, "smb") == 0)) {
00055         return TRUE;
00056     }
00057 
00058     return FALSE;
00059 }