Changeset 5373:8da157c10483 in roaraudio for libroar/enumdev.c
- Timestamp:
- 12/21/11 19:02:52 (12 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/enumdev.c
r5324 r5373 105 105 (void)flags, (void)dir, (void)socktype; 106 106 107 if ( maxlen < 11 ) 108 return -1; 109 110 new = roar_libroar_get_server(); 111 _add(new); 112 113 new = getenv("ROAR_SERVER"); 114 _add(new); 107 if ( maxlen < 12 ) 108 return -1; 109 110 // We can not yet test if those servers are local or reachable via network so 111 // we skip them for now. 112 // TODO: test those servers. 113 if ( !(flags & ROAR_ENUM_FLAG_LOCALONLY) ) { 114 new = roar_libroar_get_server(); 115 _add(new); 116 117 new = getenv("ROAR_SERVER"); 118 _add(new); 115 119 116 120 #ifdef ROAR_HAVE_LIBX11 117 if ( (x11con = roar_x11_connect(NULL)) != NULL ) { 118 new = roar_x11_get_prop(x11con, "ROAR_SERVER"); 119 _add(new); 120 roar_x11_disconnect(x11con); 121 } 122 #endif 123 124 new = getenv("SSH_CLIENT"); 125 if ( new == NULL ) 126 new = getenv("SSH_CONNECTION"); 127 128 if ( new != NULL ) { 129 ssh_buf = roar_mm_strdup(new); 130 if ( ssh_buf != NULL ) { 131 tmp = strstr(ssh_buf, " "); 132 if ( tmp == NULL ) { 133 // invalid format. 134 roar_mm_free(ssh_buf); 135 } else { 136 *tmp = 0; 137 servers[ret++] = ssh_buf; 121 if ( (x11con = roar_x11_connect(NULL)) != NULL ) { 122 new = roar_x11_get_prop(x11con, "ROAR_SERVER"); 123 _add(new); 124 roar_x11_disconnect(x11con); 125 } 126 #endif 127 128 new = getenv("SSH_CLIENT"); 129 if ( new == NULL ) 130 new = getenv("SSH_CONNECTION"); 131 132 if ( new != NULL ) { 133 ssh_buf = roar_mm_strdup(new); 134 if ( ssh_buf != NULL ) { 135 tmp = strstr(ssh_buf, " "); 136 if ( tmp == NULL ) { 137 // invalid format. 138 roar_mm_free(ssh_buf); 139 } else { 140 *tmp = 0; 141 servers[ret++] = ssh_buf; 142 } 138 143 } 139 144 } 140 }141 145 142 146 #if !defined(ROAR_TARGET_WIN32) && !defined(ROAR_TARGET_MICROCONTROLLER) 143 if ( (i = readlink("/etc/roarserver", buf, sizeof(buf)-1)) != -1 ) { 144 buf[i] = 0; 145 _add(buf); 146 } 147 #endif 147 if ( (i = readlink("/etc/roarserver", buf, sizeof(buf)-1)) != -1 ) { 148 buf[i] = 0; 149 _add(buf); 150 } 151 #endif 152 } 148 153 149 154 if ( (new = roar_env_get_home(0)) != NULL ) { … … 158 163 servers[ret++] = roar_mm_strdup("+abstract"); 159 164 servers[ret++] = roar_mm_strdup("/tmp/muroard"); 165 servers[ret++] = roar_mm_strdup("/dev/roar"); 160 166 161 167 return ret; … … 290 296 291 297 static struct locmed _libroar_locmod[] = { 292 {ROAR_ENUM_FLAG_NONBLOCK|ROAR_ENUM_FLAG_HARDNONBLOCK , _esl_defaults},293 {ROAR_ENUM_FLAG_NONE, _esl_slp},298 {ROAR_ENUM_FLAG_NONBLOCK|ROAR_ENUM_FLAG_HARDNONBLOCK|ROAR_ENUM_FLAG_LOCALONLY, _esl_defaults}, 299 {ROAR_ENUM_FLAG_NONE, _esl_slp}, 294 300 #ifdef ROAR_HAVE_FOPEN 295 {ROAR_ENUM_FLAG_NONBLOCK, _esl_neighbours}301 {ROAR_ENUM_FLAG_NONBLOCK, _esl_neighbours} 296 302 #endif 297 303 }; 298 304 299 305 struct roar_server * roar_enum_servers(int flags, int dir, int socktype) { 306 struct roar_libroar_config * config = roar_libroar_get_config(); 300 307 struct roar_server * ret = NULL; 301 308 struct roar_server * c; … … 304 311 size_t i, cp, unic; 305 312 ssize_t r; 306 int testflags = flags;313 int testflags; 307 314 int is_uniq; 315 316 flags |= config->serverflags; 317 testflags = flags; 308 318 309 319 if ( flags & ROAR_ENUM_FLAG_HARDNONBLOCK )
Note: See TracChangeset
for help on using the changeset viewer.