Changeset 5408:c6d31c2e4a51 in roaraudio
- Timestamp:
- 02/13/12 22:17:17 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
configure
r5398 r5408 1636 1636 test_lib_defmake ROAR_HAVE_H_LINUX_REBOOT % linux/reboot.h c -- linux/reboot.h 1637 1637 test_lib_defmake ROAR_HAVE_H_WINDOWS % windows.h c -- windows.h 1638 test_lib_defmake ROAR_HAVE_H_WINSOCK % winsock.h c -- winsock.h 1638 1639 test_lib_defmake ROAR_HAVE_H_WINSOCK2 % winsock2.h c -- winsock2.h 1639 1640 MINIMAL=$OLD_MINIMAL … … 1830 1831 test_func_defmake ROAR_HAVE_STAT stat 'stat((char*)0, (void*)0)' -- sys/types.h sys/stat.h unistd.h 1831 1832 test_func_defmake ROAR_HAVE_SYSTEM system 'system("")' -- stdlib.h 1832 test_func_defmake ROAR_HAVE_GETSOCKNAME getsockname 'getsockname(0, 0, 0)' -- sys/socket.h1833 test_func_defmake ROAR_HAVE_GETPEERNAME getpeername 'getpeername(0, 0, 0)' -- sys/socket.h1833 test_func_defmake ROAR_HAVE_GETSOCKNAME getsockname 'getsockname(0, 0, 0)' $lib_wsock32 -- sys/socket.h winsock.h 1834 test_func_defmake ROAR_HAVE_GETPEERNAME getpeername 'getpeername(0, 0, 0)' $lib_wsock32 -- sys/socket.h winsock.h 1834 1835 test_func_defmake ROAR_HAVE_GETSOCKOPT getsockopt 'getsockopt(0, 0, 0, (void*)0, (void*)0)' -- sys/types.h sys/socket.h 1835 1836 test_func_defmake ROAR_HAVE_SETSOCKOPT setsockopt 'setsockopt(0, 0, 0, (void*)0, (void*)0)' -- sys/types.h sys/socket.h -
libroar/vio.c
r5391 r5408 93 93 ssize_t ret; 94 94 95 ROAR_DBG("roar_vio_write(vio=%p, buf=%p, count=%u) = ?", vio, buf, (unsigned int)count); 95 // This function MUST NOT call ROAR_{DBG,WARN,ERR,INFO}() because that would result 96 // in an infinit loop. 96 97 97 98 if ( vio == NULL ) { … … 148 149 int ret; 149 150 150 ROAR_DBG("roar_vio_sync(vio=%p) = ?", vio); 151 // This function MUST NOT call ROAR_{DBG,WARN,ERR,INFO}() because that would result 152 // in an infinit loop. 151 153 152 154 if ( vio == NULL ) { … … 170 172 int ret; 171 173 172 ROAR_DBG("roar_vio_ctl(vio=%p, cmd=%i , data=%p) = ?", vio, cmd, data);174 ROAR_DBG("roar_vio_ctl(vio=%p, cmd=%i(0x%.8x), data=%p) = ?", vio, cmd, cmd, data); 173 175 174 176 if ( vio == NULL ) { … … 514 516 515 517 if ( cmd == ROAR_VIO_CTL_GET_SOCKNAME ) { 518 ROAR_DBG("roar_vio_basic_ctl(vio=%p, cmd=ROAR_VIO_CTL_GET_SOCKNAME, data=%p) = ?", vio, data); 516 519 #ifdef ROAR_HAVE_GETSOCKNAME 517 520 tmp = getsockname(roar_vio_get_fh(vio), &(sockaddr.sa), &socklen); … … 521 524 #endif 522 525 } else if ( cmd == ROAR_VIO_CTL_GET_PEERNAME ) { 526 ROAR_DBG("roar_vio_basic_ctl(vio=%p, cmd=ROAR_VIO_CTL_GET_PEERNAME, data=%p) = ?", vio, data); 523 527 #ifdef ROAR_HAVE_GETPEERNAME 524 528 tmp = getpeername(roar_vio_get_fh(vio), &(sockaddr.sa), &socklen); … … 534 538 } 535 539 540 ROAR_DBG("roar_vio_basic_ctl(vio=%p, cmd=0x%.8x, data=%p): tmp=%i", vio, cmd, data, tmp); 536 541 if ( tmp == -1 ) 537 542 return -1; -
libroar/vio_dstr.c
r5388 r5408 336 336 #endif 337 337 338 ROAR_DBG("_open_file(calls=%p, filename='%s', flags=0x%x, mode=%i) = ?", calls, filename, flags, (int)mode); 338 339 roar_err_clear_all(); 339 340 if ( (fh = open(filename, flags, mode)) == -1 ) { -
libroar/vio_stream.c
r5381 r5408 183 183 int socks[2]; // for socketpair() 184 184 #endif 185 struct roar_sockname sockname; 185 186 186 187 // make valgrind happy … … 190 191 #endif 191 192 193 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = ?", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer); 194 192 195 if ( config != NULL ) { 193 196 if ( config->workaround.workarounds & ROAR_LIBROAR_CONFIG_WAS_USE_EXECED ) { … … 196 199 } 197 200 198 #ifdef ROAR_HAVE_BSDSOCKETS 201 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = ?", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer); 202 199 203 roar_libroar_nowarn(); 200 if ( getsockname(roar_get_connection_fh(con), (struct sockaddr *)&socket_addr, &len) == -1 ) {204 if ( roar_vio_ctl(roar_get_connection_vio2(con), ROAR_VIO_CTL_GET_SOCKNAME, &sockname) == -1 ) { 201 205 roar_libroar_warn(); 202 return -1; 206 #ifdef ROAR_OS_OPENBSD 207 sockname.type = ROAR_SOCKET_TYPE_UNIX; 208 #else 209 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = -1", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer); 210 211 return -1; 212 #endif 203 213 } 204 214 roar_libroar_warn(); 205 #else 206 return -1; 207 #endif 208 209 if ( len == 0 ) { 210 #ifdef ROAR_OS_OPENBSD 211 ROAR_WARN("roar_simple_new_stream_obj(*): Unknown address family: guess AF_UNIX because OS is OpenBSD"); 212 ((struct sockaddr*)&socket_addr)->sa_family = AF_UNIX; 213 #else 214 return -1; 215 #endif 216 } 217 218 switch (((struct sockaddr*)&socket_addr)->sa_family) { 219 #ifdef ROAR_HAVE_UNIX 220 case AF_UNIX: type = ROAR_SOCKET_TYPE_UNIX; break; 221 #endif 222 #ifdef ROAR_HAVE_IPV4 223 case AF_INET: type = ROAR_SOCKET_TYPE_INET; break; 224 #endif 225 #ifdef ROAR_HAVE_LIBDNET 226 case AF_DECnet: type = ROAR_SOCKET_TYPE_DECNET; break; 227 #endif 228 default: 229 return -1; 230 break; 231 } 232 233 if ( type == ROAR_SOCKET_TYPE_DECNET ) { 215 216 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = ?", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer); 217 218 if ( sockname.type == ROAR_SOCKET_TYPE_DECNET ) { 234 219 if ( roar_socket_get_local_nodename() ) { 235 220 snprintf(file, 24, "%s::roar$TMP%04x%02x", roar_socket_get_local_nodename(), getpid(), count++); … … 243 228 } 244 229 245 if ( type != ROAR_SOCKET_TYPE_UNIX ) {246 if ( (listen = roar_socket_listen( type, file, port)) == -1 ) {230 if ( sockname.type != ROAR_SOCKET_TYPE_UNIX ) { 231 if ( (listen = roar_socket_listen(sockname.type, file, port)) == -1 ) { 247 232 return -1; 248 233 } 249 234 } 250 235 251 if ( type == ROAR_SOCKET_TYPE_INET ) {236 if ( sockname.type == ROAR_SOCKET_TYPE_INET ) { 252 237 #ifdef ROAR_HAVE_IPV4 253 238 setsockopt(listen, SOL_SOCKET, SO_REUSEADDR, (void*)&opt, sizeof(int)); … … 262 247 return -1; 263 248 #endif 264 } else if ( type == ROAR_SOCKET_TYPE_DECNET ) {249 } else if ( sockname.type == ROAR_SOCKET_TYPE_DECNET ) { 265 250 #ifdef ROAR_HAVE_LIBDNET 266 251 setsockopt(listen, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)); … … 278 263 } 279 264 280 if ( type != ROAR_SOCKET_TYPE_UNIX ) {265 if ( sockname.type != ROAR_SOCKET_TYPE_UNIX ) { 281 266 #ifdef ROAR_HAVE_SELECT 282 if ( roar_stream_connect_to_ask(con, s, type, file, port) != -1 ) {267 if ( roar_stream_connect_to_ask(con, s, sockname.type, file, port) != -1 ) { 283 268 284 269 FD_ZERO(&fds); … … 354 339 return -1; 355 340 #endif 356 } else { // this is type == ROAR_SOCKET_TYPE_UNIX341 } else { // this is sockname.type == ROAR_SOCKET_TYPE_UNIX 357 342 #ifdef ROAR_HAVE_UNIX 358 343 if ( socketpair(AF_UNIX, SOCK_STREAM, 0, socks) == -1 ) { … … 388 373 s->fh = fh; 389 374 375 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = %i", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer, fh); 390 376 return fh; 391 377 } -
libroar/vio_winsock.c
r5407 r5408 128 128 return shutdown(_get_fh(vio), tmp); 129 129 break; 130 case ROAR_VIO_CTL_GET_SOCKNAME: 131 case ROAR_VIO_CTL_GET_PEERNAME: 132 return roar_vio_basic_ctl(vio, cmd, data); 133 break; 130 134 } 131 135
Note: See TracChangeset
for help on using the changeset viewer.