Add hostname (%h) and version (%v) templates for the servername parameter

This commit is contained in:
Ron Pedde 2006-10-16 03:52:45 +00:00
parent 2f0dafba61
commit 325c86073b
2 changed files with 71 additions and 6 deletions

View File

@ -1635,19 +1635,79 @@ char *conf_get_filename(void) {
*/
char *conf_get_servername(void) {
char *retval;
char newname[HOST_NAME_MAX + 1 + 16]; /* " Firefly Server" */
char *default_name = "firefly %v on %h";
char hostname[HOST_NAME_MAX + 1]; /* " Firefly Server" */
char *template, *src, *dst;
int len;
gethostname(newname,HOST_NAME_MAX);
retval = strchr(newname,'.');
gethostname(hostname,HOST_NAME_MAX);
retval = strchr(hostname,'.');
if(retval) *retval = '\0';
retval = newname;
retval = hostname;
while(*retval) {
*retval = tolower(*retval);
retval++;
}
strcat(newname," Firefly Server");
template = conf_alloc_string("general","servername",default_name);
src = template;
len = 0;
while(*src) {
if(*src == '%') {
src++;
switch(*src) {
case 'h':
len += strlen(hostname);
src++;
break;
case 'v':
len += strlen(VERSION);
src++;
break;
default:
len += 2;
src++;
break;
}
} else {
len++;
src++;
}
}
return conf_alloc_string("general","servername",newname);
retval = (char*)malloc(len+1);
if(!retval) DPRINTF(E_FATAL,L_MISC,"malloc");
memset(retval,0,len+1);
dst = retval;
src = template;
while(*src) {
if(*src == '%') {
src++;
switch(*src) {
case 'h':
strcat(dst,hostname);
dst += strlen(hostname);
src ++;
break;
case 'v':
strcat(dst,VERSION);
dst += strlen(VERSION);
src++;
break;
default:
*dst++ = '%';
*dst++ = *src++;
break;
}
} else {
*dst++ = *src++;
}
}
return retval;
}

View File

@ -132,6 +132,11 @@ void txt_add(char *txtrecord, char *fmt, ...) {
va_end(ap);
len = (int)strlen(buff);
if(len + strlen(txtrecord) > 255) {
DPRINTF(E_FATAL,L_MAIN,"dns-sd text string too long. Try a shorter "
"share name.\n");
}
end = txtrecord + strlen(txtrecord);
*end = len;
strcpy(end+1,buff);