Changeset 4414:7a363907e859 in roaraudio for libroar/enumdev.c
- Timestamp:
- 10/05/10 18:50:32 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/enumdev.c
r4356 r4414 103 103 } 104 104 105 static ssize_t _esl_slp(int flags, int dir, int socktype, char ** servers, size_t maxlen) { 106 struct roar_slp_cookie cookie; 107 int offset; 108 char * url; 109 size_t i; 110 ssize_t ret = 0; 111 112 if ( roar_slp_cookie_init(&cookie, NULL) == -1 ) 113 return -1; 114 115 if ( roar_slp_search(&cookie, ROAR_SLP_URL_TYPE) == -1 ) 116 return -1; 117 118 if ( cookie.matchcount == 0 ) 119 return -1; 120 121 ROAR_DBG("_esl_slp(*): cookie.matchcount=%i", (int)cookie.matchcount); 122 123 for (i = 0; i < (size_t)cookie.matchcount && (ssize_t)maxlen > ret; i++) { 124 url = cookie.match[i].url; 125 ROAR_DBG("_esl_slp(*): cookie.match[%i].url='%s'", (int)i, url); 126 127 offset = 0; 128 129 if ( !strncmp(url, ROAR_SLP_URL_TYPE "://", ROAR_SLP_URL_TYPE_LEN + 3) ) 130 offset = ROAR_SLP_URL_TYPE_LEN + 3; 131 132 ROAR_DBG("_esl_slp(*): url=%p, offset=%i", url, offset); 133 url = &(url[offset]); 134 ROAR_DBG("_esl_slp(*): url='%s'", url); 135 136 if ( *url == 0 ) 137 continue; 138 139 _add(url); 140 } 141 142 return ret; 143 } 144 105 145 struct locmed { 106 146 int supflags; … … 109 149 110 150 static struct locmed _libroar_locmod[] = { 111 {ROAR_ENUM_FLAG_NONBLOCK|ROAR_ENUM_FLAG_HARDNONBLOCK, _esl_defaults} 151 {ROAR_ENUM_FLAG_NONBLOCK|ROAR_ENUM_FLAG_HARDNONBLOCK, _esl_defaults}, 152 {ROAR_ENUM_FLAG_NONE, _esl_slp} 112 153 }; 113 154
Note: See TracChangeset
for help on using the changeset viewer.