Changeset 60:d1fa94aadc08 in roaraudio for roard/roard.c
- Timestamp:
- 07/12/08 12:19:08 (16 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/roard.c
r44 r60 2 2 3 3 #include "roard.h" 4 5 char * server = ROAR_DEFAULT_SOCK_GLOBAL; // global server address 4 6 5 7 void usage (void) { … … 32 34 " -b --bind - IP/Hostname to bind to\n" 33 35 " -s --sock - Filename for UNIX Domain Socket\n" 36 " -G GROUP - Sets the group for the UNIX Domain Socket, (default: audio)\n" 37 " You need the permittions to change the GID\n" 34 38 ); 35 39 // printf("\n Options:\n\n"); … … 40 44 int i; 41 45 char * k; 46 char user_sock[80] = {0}; 42 47 struct roar_audio_info sa; 43 48 char * driver = NULL; 44 49 char * device = NULL; 45 50 char * opts = NULL; 46 char * server = ROAR_DEFAULT_HOST;51 // char * server = ROAR_DEFAULT_SOCK_GLOBAL; 47 52 int port = ROAR_DEFAULT_PORT; 48 53 int drvid; … … 51 56 char * s_opt = NULL; 52 57 int s_prim = 0; 58 char * sock_grp = "audio"; 59 struct group * grp; 53 60 DRIVER_USERDATA_T drvinst; 54 61 struct roar_client * self = NULL; … … 63 70 64 71 g_sa = &sa; 72 73 74 if ( getuid() != 0 && getenv("HOME") ) { 75 snprintf(user_sock, 79, "%s/%s", getenv("HOME"), ROAR_DEFAULT_SOCK_USER); 76 server = user_sock; 77 } 65 78 66 79 if ( sources_init() == -1 ) { … … 113 126 } else if ( strcmp(k, "-b") == 0 || strcmp(k, "--bind") == 0 ) { 114 127 server = argv[++i]; 128 } else if ( strcmp(k, "-G") == 0 ) { 129 sock_grp = argv[++i]; 115 130 116 131 } else { … … 128 143 } 129 144 145 if ( *server == '/' ) { 146 if ( (grp = getgrnam(sock_grp)) == NULL ) { 147 ROAR_ERR("Can not get GID for group %s: %s", sock_grp, strerror(errno)); 148 } else { 149 chown(server, -1, grp->gr_gid); 150 if ( getuid() == 0 ) 151 chmod(server, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP); 152 } 153 } 154 130 155 if ( output_buffer_init(&sa) == -1 ) { 131 156 ROAR_ERR("Can not init output buffer!"); … … 185 210 void clean_quit_prep (void) { 186 211 close(g_listen_socket); 212 213 if ( *server == '/' ) 214 unlink(server); 215 216 187 217 sources_free(); 188 218 streams_free();
Note: See TracChangeset
for help on using the changeset viewer.