Changeset 4414:7a363907e859 in roaraudio


Ignore:
Timestamp:
10/05/10 18:50:32 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added SLP support to server enum

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r4413 r4414  
    22        * Implemented a very general test for types. Needed by win32 port. 
    33        * Added support to enum servers with roarctl. 
     4        * Improved server eunm. 
    45 
    56v. 0.4beta0 - Fri Oct 01 2010 13:36 CEST 
  • include/libroar/roarslp.h

    r3811 r4414  
    4646#define ROAR_SLP_URL_TYPE_ESD_LEN  24 
    4747#define ROAR_SLP_URL_TYPE          ROAR_SLP_URL_TYPE_ROAR 
    48 #define ROAR_SLP_URL_TYPE_LEN      ROAR_SLP_URL_TYPE_ESD_LEN 
     48#define ROAR_SLP_URL_TYPE_LEN      ROAR_SLP_URL_TYPE_ROAR_LEN 
    4949 
    5050#ifndef ROAR_HAVE_LIBSLP 
  • libroar/enumdev.c

    r4356 r4414  
    103103} 
    104104 
     105static 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 
    105145struct locmed { 
    106146 int supflags; 
     
    109149 
    110150static 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} 
    112153}; 
    113154 
Note: See TracChangeset for help on using the changeset viewer.