Changeset 3652:b5d0c4533431 in roaraudio for libroaross
- Timestamp:
- 03/29/10 16:36:09 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroaross/libroaross.c
r3639 r3652 244 244 245 245 static struct session * _open_session (char * server, char * name) { 246 struct session * ses = &_session; 247 int new_session = getenv("ROAR_OSS_NEW_SESSION") == NULL ? 0 : 1; 248 246 249 ROAR_DBG("_open_session(server='%s', name='%s') = ?", server, name); 247 250 ROAR_DBG("_open_session(server='%s', name='%s'): _session.refc=%i", server, name, _session.refc); 248 251 249 if ( _session.refc == 0 ) { 252 if ( new_session ) { 253 ses = malloc(sizeof(struct session)); 254 if ( ses == NULL ) 255 return NULL; 256 257 memset(ses, 0, sizeof(struct session)); 258 } 259 260 if ( ses->refc == 0 ) { 250 261 251 262 if ( name == NULL ) … … 255 266 name = "libroaross client"; 256 267 257 if ( roar_simple_connect(&(_session.con), server, name) == -1 ) 268 if ( roar_simple_connect(&(ses->con), server, name) == -1 ) { 269 if ( new_session ) 270 free(ses); 271 258 272 return NULL; 259 260 _find_volume_sid(&_session); 261 262 if ( getenv("ROAR_OSS_KEEP_SESSION") != NULL ) 263 _session.refc++; 264 } 265 266 _session.refc++; 267 268 ROAR_DBG("_open_session(server='%s', name='%s') = %p", server, name, &_session); 269 return &_session; 273 } 274 275 _find_volume_sid(ses); 276 277 if ( !new_session ) { 278 if ( getenv("ROAR_OSS_KEEP_SESSION") != NULL ) 279 ses->refc++; 280 } 281 } 282 283 ses->refc++; 284 285 ROAR_DBG("_open_session(server='%s', name='%s') = %p", server, name, ses); 286 return ses; 270 287 } 271 288 … … 281 298 roar_disconnect(&(session->con)); 282 299 } 300 301 if ( session != &_session ) 302 free(session); 283 303 } 284 304
Note: See TracChangeset
for help on using the changeset viewer.