Changeset 5387:ec00c0a72024 in roaraudio for libroar


Ignore:
Timestamp:
01/16/12 18:33:43 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added function to get serverinfo for library as well as libinfo command for roarctl to list those infos

Location:
libroar
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libroar/Makefile

    r5367 r5387  
    1616#DEFINES+= -D_LIBROAR_NOATTR_WARNINGS 
    1717INCLUDE = -I../include -I../include/libroar 
    18 CFLAGS += -g -Wall $(OPTI_O) $(DEFINES) $(INCLUDE) $(INCPATH) $(SHARED_CF) $(fPIC) 
     18CFLAGS += -g -Wall $(OPTI_O) $(DEFINES) $(PKGDEFINES) $(INCLUDE) $(INCPATH) $(SHARED_CF) $(fPIC) 
    1919LDFLAGS+= -g -Wall $(SHARED) $(LDPATH) 
    2020LIBS    = $(LIBROAR_NS) 
  • libroar/serverinfo.c

    r5381 r5387  
    3636#include "libroar.h" 
    3737 
     38// include for uname() used by roar_library_info() 
     39#ifdef ROAR_HAVE_UNAME 
     40#include <sys/utsname.h> 
     41#endif 
     42 
    3843struct ie { 
    3944 int type; 
     
    7176} 
    7277 
     78#ifdef ROAR_HAVE_GETHOSTID 
     79#define _HOSTID_BUFLEN 64 
     80#else 
     81#define _HOSTID_BUFLEN 0 
     82#endif 
     83struct roar_server_info * roar_library_info(void) { 
     84 struct roar_server_info * ret = roar_mm_malloc(sizeof(struct roar_server_info) + _HOSTID_BUFLEN); 
     85#ifdef ROAR_HAVE_UNAME 
     86 static struct utsname utsname; 
     87 static int utsname_inited = 0; 
     88#endif 
     89#ifdef ROAR_HAVE_GETHOSTID 
     90 long hostid; 
     91 char * hostidbuf = ((void*)ret) + sizeof(*ret); 
     92#endif 
     93 
     94 if ( ret == NULL ) 
     95  return NULL; 
     96 
     97 memset(ret, 0, sizeof(struct roar_server_info)); 
     98 
     99#if 0 
     100+ const char * version; 
     101X const char * location; 
     102X const char * description; 
     103X const char * contact; 
     104X const char * serial; 
     105X const char * address; 
     106X const char * uiurl; 
     107 const char * hostid; 
     108+ const char * license; 
     109+ const char * build; 
     110+ struct { 
     111+  const char * sysname; 
     112+  const char * release; 
     113+  const char * nodename; 
     114+  const char * machine; 
     115+ } un; 
     116#endif 
     117 
     118 if ( DISTRIBUTION_VERSION_STRING[0] == 0 ) { 
     119  ret->version = "libroar/" PACKAGE_VERSION " <" DEVICE_VENDOR_STRING ">"; 
     120 } else { 
     121  ret->version = "libroar/" PACKAGE_VERSION " <" DEVICE_VENDOR_STRING "> (" DISTRIBUTION_VERSION_STRING ")"; 
     122 } 
     123#ifdef ROAR_HAVE_GETHOSTID 
     124 hostid = gethostid(); 
     125 snprintf(hostidbuf, _HOSTID_BUFLEN, sizeof(long) == 8 ? "0x%.16lx" : "0x%.8lx", hostid); 
     126 ret->hostid = hostidbuf; 
     127#endif 
     128 ret->license = ROAR_LICENSE_GPLv3_0; 
     129 ret->build   = ROAR_BUILD_STAMP; 
     130 
     131#ifdef ROAR_HAVE_UNAME 
     132 if ( !utsname_inited ) 
     133  if ( uname(&utsname) == 0 ) 
     134   utsname_inited = 1; 
     135 
     136 if ( utsname_inited ) { 
     137  ret->un.sysname  = utsname.sysname; 
     138  ret->un.release  = utsname.release; 
     139  ret->un.nodename = utsname.nodename; 
     140  ret->un.machine  = utsname.machine; 
     141 } 
     142#endif 
     143#ifdef ROAR_HAVE_GETVERSIONEX 
     144 ret->un.sysname = "Windows"; 
     145#endif 
     146 
     147 return ret; 
     148} 
     149 
    73150int roar_server_info_free(struct roar_server_info * info) { 
    74  if ( info == NULL ) 
     151 if ( info == NULL ) { 
     152  roar_err_set(ROAR_ERROR_FAULT); 
    75153  return -1; 
     154 } 
    76155 
    77156 roar_mm_free(info); 
Note: See TracChangeset for help on using the changeset viewer.