repositories
/
deb_shairplay.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for password digests.
[deb_shairplay.git]
/
src
/
lib
/
dnssd.m
diff --git
a/src/lib/dnssd.m
b/src/lib/dnssd.m
index ef69178707817830f58508cce1218df499a448dc..37ba32f30408e5f88fb3fd69984204214c507558 100644
(file)
--- a/
src/lib/dnssd.m
+++ b/
src/lib/dnssd.m
@@
-24,32
+24,22
@@
#define MAX_SERVNAME 256
struct dnssd_s {
#define MAX_SERVNAME 256
struct dnssd_s {
- char hwaddr[MAX_HWADDR_LEN];
- int hwaddrlen;
-
NSNetService *raopService;
NSNetService *airplayService;
};
dnssd_t *
NSNetService *raopService;
NSNetService *airplayService;
};
dnssd_t *
-dnssd_init(
const char *hwaddr, int hwaddrlen,
int *error)
+dnssd_init(int *error)
{
dnssd_t *dnssd;
if (error) *error = DNSSD_ERROR_NOERROR;
{
dnssd_t *dnssd;
if (error) *error = DNSSD_ERROR_NOERROR;
- if (hwaddrlen > MAX_HWADDR_LEN) {
- if (error) *error = DNSSD_ERROR_HWADDRLEN;
- return NULL;
- }
dnssd = calloc(1, sizeof(dnssd_t));
if (!dnssd) {
if (error) *error = DNSSD_ERROR_OUTOFMEM;
return NULL;
}
dnssd = calloc(1, sizeof(dnssd_t));
if (!dnssd) {
if (error) *error = DNSSD_ERROR_OUTOFMEM;
return NULL;
}
- memcpy(dnssd->hwaddr, hwaddr, hwaddrlen);
- dnssd->hwaddrlen = hwaddrlen;
-
return dnssd;
}
return dnssd;
}
@@
-60,7
+50,7
@@
dnssd_destroy(dnssd_t *dnssd)
}
int
}
int
-dnssd_register_raop(dnssd_t *dnssd, const char *name, unsigned short port)
+dnssd_register_raop(dnssd_t *dnssd, const char *name, unsigned short port
, const char *hwaddr, int hwaddrlen, int password
)
{
char hwaddrstr[MAX_SERVNAME];
NSString *serviceString;
{
char hwaddrstr[MAX_SERVNAME];
NSString *serviceString;
@@
-75,7
+65,7
@@
dnssd_register_raop(dnssd_t *dnssd, const char *name, unsigned short port)
}
/* Convert the hardware address to string */
}
/* Convert the hardware address to string */
- ret = utils_hwaddr_raop(hwaddrstr, sizeof(hwaddrstr),
dnssd->hwaddr, dnssd->
hwaddrlen);
+ ret = utils_hwaddr_raop(hwaddrstr, sizeof(hwaddrstr),
hwaddr,
hwaddrlen);
if (ret < 0) {
return -2;
}
if (ret < 0) {
return -2;
}
@@
-90,7
+80,11
@@
dnssd_register_raop(dnssd_t *dnssd, const char *name, unsigned short port)
[txtDict setValue:[NSString stringWithUTF8String:RAOP_DA] forKey:@"da"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_SR] forKey:@"sr"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_SS] forKey:@"ss"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_DA] forKey:@"da"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_SR] forKey:@"sr"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_SS] forKey:@"ss"];
- [txtDict setValue:[NSString stringWithUTF8String:RAOP_PW] forKey:@"pw"];
+ if (password) {
+ [txtDict setValue:@"true" forKey:@"pw"];
+ } else {
+ [txtDict setValue:@"false" forKey:@"pw"];
+ }
[txtDict setValue:[NSString stringWithUTF8String:RAOP_VN] forKey:@"vn"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_TP] forKey:@"tp"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_MD] forKey:@"md"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_VN] forKey:@"vn"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_TP] forKey:@"tp"];
[txtDict setValue:[NSString stringWithUTF8String:RAOP_MD] forKey:@"md"];
@@
-110,7
+104,7
@@
dnssd_register_raop(dnssd_t *dnssd, const char *name, unsigned short port)
}
int
}
int
-dnssd_register_airplay(dnssd_t *dnssd, const char *name, unsigned short port)
+dnssd_register_airplay(dnssd_t *dnssd, const char *name, unsigned short port
, const char *hwaddr, int hwaddrlen
)
{
NSMutableDictionary *txtDict;
NSData *txtData;
{
NSMutableDictionary *txtDict;
NSData *txtData;
@@
-125,7
+119,7
@@
dnssd_register_airplay(dnssd_t *dnssd, const char *name, unsigned short port)
}
/* Convert hardware address to string */
}
/* Convert hardware address to string */
- ret = utils_hwaddr_airplay(deviceid, sizeof(deviceid),
dnssd->hwaddr, dnssd->
hwaddrlen);
+ ret = utils_hwaddr_airplay(deviceid, sizeof(deviceid),
hwaddr,
hwaddrlen);
if (ret < 0) {
return -2;
}
if (ret < 0) {
return -2;
}